From: Arjen M. <Arj...@de...> - 2017-08-02 07:07:15
|
Hi Alan, See below. Regards, Arjen > -----Original Message----- > From: Alan W. Irwin [mailto:ir...@be...] > Sent: Tuesday, August 01, 2017 9:57 AM ... > > One slightly problematic issue I noted for this platform was you put > /d/cmake3.4.3/bin first on your PATH. It appears that your script invocation used > > --cmake_command "/mingw64/bin/cmake" > > and your resulting CMakeCache.txt files found that same correct version, but > nevertheless, to remove this source of uncertainty I would highly recommend > removing this path (/d/cmake3.4.3/bin) to an incorrect (and severely dated) version > of CMake from the PATH in your launch script for this platform. > I checked that: I indeed set it explicitly in the script to run the tests. I will remove it, but that version of Cmake would not be accepted anyway - PLplot after all forces a minimum version 3.6.2. > > Thanks for that extremely useful extra bit of research. So it appears bash is not > complaining about those 1800+ characters, but make is. > > > So indeed, the non-working nondynamic case has a much longer command line > (than the working shared case (because in the nondynamic case, the driver object > code is in the shared library so _all_ driver library dependencies have to be > mentioned (for the default **transitive** linking that occurs for the MinGW- > w64/MSYS2 platform). > Using that option, the final command is shorter, but still 1200+ characters. And, more importantly, the result is the same: a Bad Address. > So for this case as well, you might want to try -DNON_TRANSITIVE=ON. > ... > > Meanwhile, assuming the fundamental issue is command-line length, I just checked, > and all Makefile*.in files in our source tree contain the following line: > > SHELL = @SH_EXECUTABLE@ > > and for your MinGW-w64/MSYS2 case > > # Check for all POSIX tool commands that have been found from the MSYS2 side > irwin@raven> find . -name CMakeCache.txt |xargs grep 'usr/bin' > ./shared/noninteractive/build_tree/CMakeCache.txt:CMAKE_MAKE_PROGRAM:FI > LEPATH=D:/mingw64/usr/bin/make.exe ... > > But I did notice that one possible issue is you simply used "make" for your > comprehensive test. > > What does "which make" give you for that platform? Does it refer to that above > D:/mingw64/usr/bin/make.exe POSIX version or something else? > 'which make' gives the answer "/usr/bin/make", but that it is the very same file as "D:/mingw64/usr/bin/make.exe". I further checked: there is only a single make.exe in the installation. ... > > But assuming that is not the issue, my working hypothesis is this command-line > length limitation is a MinGW-w64/MSYS2 bug since it does not appear to be an > issue for Cygwin's version of the POSIX make command. > > To investigate that hypothesis further, please take a look at the extremely simple > attached Makefile test case I have created. > I did not have time yet to perform this test. Hopefully today sometime. Attached is the result with -DNON_TRANSITIVE=ON Regards, Arjen DISCLAIMER: This message is intended exclusively for the addressee(s) and may contain confidential and privileged information. If you are not the intended recipient please notify the sender immediately and destroy this message. Unauthorized use, disclosure or copying of this message is strictly prohibited. The foundation 'Stichting Deltares', which has its seat at Delft, The Netherlands, Commercial Registration Number 41146461, is not liable in any way whatsoever for consequences and/or damages resulting from the improper, incomplete and untimely dispatch, receipt and/or content of this e-mail. |