Once again, thank you very much for your contribution Hannes! For the completeness of the thread, I post the solution here. This solution is general for all compilers that fails with rdynamic (e.g. if you try to compile windows binaries in linux, where you want -shared, not -rdynamic) Apply this command in your toolchain file (replace Fortran with C and/or CXX depending on which of your compilers cannot handle this flag): SET(CMAKE_SHARED_LIBRARY_LINK_Fortran_FLAGS "")
Then the compile test works FINALLY! :D Best Regards Yngve On Thursday 23 September 2010 08:03:27 Molsen, Hannes wrote: > You could try to run cmake with --debug-trycompile parameter. Then navigate > to %BUILD%/CMakeFiles/CMakeTmp/CMakeFiles/cmTryCompileExec.dir/ and have a > look into the file flags.make > > There you can see, whether the CompilerId Test was compiled with -rdynamic or > not. If it was, you could try to set the Flags in your toolchain file "by > hand", which means, copy the ones out of the flags.make that you need, and > set them with SET(CMAKE_Fortran_FLAGS_INIT "") in your tc. > > (I don't know a better solution for sure to remove one flag from a > flag-string. But you might also want to take a look at LIST(REMOVE_ITEM > [LIST] [ITEM]), but I haven't used it for flags and I don't know if and how > this works for strings, so it's just an idea...) > > - Hannes > > > -----Original Message----- > From: cmake-boun...@cmake.org [mailto:cmake-boun...@cmake.org] On Behalf Of > Yngve Inntjore Levinsen > Sent: Dienstag, 21. September 2010 17:08 > To: cmake@cmake.org > Subject: Re: [CMake] pass compile flags to initial compiler test.. > > Hi, > > The output follows below this message. It fails because of the -rdynamic flag > I think. In the CMakeLists.txt file I can suppress this with the command > "SET(CMAKE_SKIP_RPATH ON)", but this does not seem to have any effect in the > toolchain file (?). If I try to manually compile/link without the rdynamic > flag I get this: > > $ lf95 -fPIC -Wa,--32 > > CMakeFiles/CompilerIdFortran/CMakeFortranCompilerId.F90 -L/usr/lib > > f95: warning: Invalid suboption PIC specified for -f. > > Encountered 0 errors, 0 warnings in file > > CMakeFiles/CompilerIdFortran/CMakeFortranCompilerId.F90. > > $ ls -gh > > total 28K > > -rwxr-xr-x 1 si 13K 21.09.2010 17:04 a.out* > > -rw-r--r-- 1 si 13K 21.09.2010 16:58 CMakeCache.txt > > drwxr-xr-x 6 si 2.0K 21.09.2010 16:58 CMakeFiles/ > > Best Regards > Yngve I. Levinsen > > > Output from cmake with toolchain file: > > $ cmake -DCMAKE_TOOLCHAIN_FILE=../LinuxLF95.cmake .. > > -- The C compiler identification is GNU > > -- The CXX compiler identification is GNU > > -- The Fortran compiler identification is unknown > > -- Check for working C compiler: > > /afs/cern.ch/sw/lcg/contrib/gcc/4.3.2/x86_64-slc5-gcc34-opt/bin/gcc > > -- Check for working C compiler: > > /afs/cern.ch/sw/lcg/contrib/gcc/4.3.2/x86_64-slc5-gcc34-opt/bin/gcc -- works > > -- Detecting C compiler ABI info > > -- Detecting C compiler ABI info - done > > -- Check for working CXX compiler: > > /afs/cern.ch/sw/lcg/contrib/gcc/4.3.2/x86_64-slc5-gcc34-opt/bin/g++ > > -- Check for working CXX compiler: > > /afs/cern.ch/sw/lcg/contrib/gcc/4.3.2/x86_64-slc5-gcc34-opt/bin/g++ -- works > > -- Detecting CXX compiler ABI info > > -- Detecting CXX compiler ABI info - done > > -- Check for working Fortran compiler: > > /afs/cern.ch/sw/fortran/lahey/lf9562c/bin/lf95 > > -- Check for working Fortran compiler: > > /afs/cern.ch/sw/fortran/lahey/lf9562c/bin/lf95 -- broken > > CMake Error at /usr/share/cmake/Modules/CMakeTestFortranCompiler.cmake:25 > > (MESSAGE): > > The Fortran compiler "/afs/cern.ch/sw/fortran/lahey/lf9562c/bin/lf95" is > > not able to compile a simple test program. > > > > It fails with the following output: > > > > Change Dir: > > /afs/cern.ch/user/y/ylevinse/scratch1/public/madx-cmake/buildlahey/CMakeFiles/CMakeTmp > > > > > > > > Run Build Command:/usr/bin/gmake "cmTryCompileExec/fast" > > > > /usr/bin/gmake -f CMakeFiles/cmTryCompileExec.dir/build.make > > CMakeFiles/cmTryCompileExec.dir/build > > > > gmake[1]: Entering directory > > > > `/afs/cern.ch/user/y/ylevinse/scratch1/public/madx-cmake/buildlahey/CMakeFiles/CMakeTmp' > > > > > > /usr/bin/cmake -E cmake_progress_report > > > > /afs/cern.ch/user/y/ylevinse/scratch1/public/madx-cmake/buildlahey/CMakeFiles/CMakeTmp/CMakeFiles > > 1 > > > > Building Fortran object > > CMakeFiles/cmTryCompileExec.dir/testFortranCompiler.f.o > > > > /afs/cern.ch/sw/fortran/lahey/lf9562c/bin/lf95 -o > > CMakeFiles/cmTryCompileExec.dir/testFortranCompiler.f.o -Wa,--32 -c > > > > /afs/cern.ch/user/y/ylevinse/scratch1/public/madx-cmake/buildlahey/CMakeFiles/CMakeTmp/testFortranCompiler.f > > > > > > Encountered 0 errors, 0 warnings in file > > > > /afs/cern.ch/user/y/ylevinse/scratch1/public/madx-cmake/buildlahey/CMakeFiles/CMakeTmp/testFortranCompiler.f. > > > > > > Linking Fortran executable cmTryCompileExec > > > > /usr/bin/cmake -E cmake_link_script > > CMakeFiles/cmTryCompileExec.dir/link.txt --verbose=1 > > > > /afs/cern.ch/sw/fortran/lahey/lf9562c/bin/lf95 -fPIC -Wa,--32 > > CMakeFiles/cmTryCompileExec.dir/testFortranCompiler.f.o -o > > cmTryCompileExec > > -rdynamic > > > > /usr/bin/ld: bad -rpath option > > > > gmake[1]: *** [cmTryCompileExec] Error 1 > > > > gmake[1]: Leaving directory > > > > `/afs/cern.ch/user/y/ylevinse/scratch1/public/madx-cmake/buildlahey/CMakeFiles/CMakeTmp' > > > > > > gmake: *** [cmTryCompileExec/fast] Error 2 > > > > > > > > > > > > CMake will not be able to correctly generate this project. > > Call Stack (most recent call first): > > CMakeLists.txt:3 (PROJECT) > > > > > > -- Configuring incomplete, errors occurred! > > > > > > > On Tuesday 21 September 2010 15:33:04 Molsen, Hannes wrote: > > Hi, > > > > what part of the compiler test fails? The "detect ABI" or the "check > > working" test? Could you post the output? > > Maybe it's a similar problem as I had in [1] > > > > - Hannes > > > > [1] http://www.mail-archive.com/cmake@cmake.org/msg31486.html > > > > -----Original Message----- > > From: cmake-boun...@cmake.org [mailto:cmake-boun...@cmake.org] On Behalf Of > > Yngve Inntjore Levinsen > > Sent: Dienstag, 21. September 2010 14:55 > > To: cmake@cmake.org > > Subject: Re: [CMake] pass compile flags to initial compiler test.. now an > > assembler issue > > > > Hi, > > > > Again Hannes, thank you for your help! It is very valuable to me and I'm > > learning even more about how cmake and compiling in general works! :) > > > > I added a toolchain file (did not know about this feature before), but it > > seems that the option "SET(CMAKE_SKIP_RPATH ON)" is ignored in the > > toolchain file? This means that the compiler test fails. I could skip this > > by using the command "CMAKE_FORCE_Fortran_COMPILER(lf95 Lahey)" but sadly > > this was from what I can see added in CMake 2.8.1 (for C and CXX it is > > available in 2.6.x). Since on our server we have version 2.6.4 installed, I > > find myself "very close but no sigar". > > > > Perhaps I should rather try to convince the person in charge that we don't > > need support for this compiler... > > > > Best Regards > > Yngve I. Levinsen > > > > > > On Tuesday 21 September 2010 08:23:17 Molsen, Hannes wrote: > > > Hi Yngve, > > > > > > > -----Original Message----- > > > > From: cmake-boun...@cmake.org [mailto:cmake-boun...@cmake.org] On > > > > Behalf Of Yngve Inntjore Levinsen > > > > Sent: Montag, 20. September 2010 18:38 > > > > To: cmake@cmake.org > > > > Subject: Re: [CMake] pass compile flags to initial compiler test.. now > > > > an assembler issue > > > > > > > > Hi, > > > > > > > > Thank you for your very quick response Hannes! I tried to set > > > > SET(CMAKE_Fortran_FLAGS_INIT "...") in my CMakeLists.txt, but since it > > > > didn't work I tried to dig a bit deeper. > > > > > > If you put that in your CMakeLists.txt it will not be used for the > > > initial compiler test, as the CMakeLists.txt is processed after the test. > > > You have to write it either in a toolchain / platform file [1] or add it > > > (haven't tried this myself) to your toolchain in the gui (+ add entry) [2] > > > > > > [1] http://www.paraview.org/Wiki/CMake_Cross_Compiling > > > [2] http://mash-project.eu/wiki/images/5/51/CMakeGui_Start.png > > > > > > > > > > It seems that my early assumptions were wrong, if I enter the folder > > > > CMakeFiles/CompilerIdFortran/ and try to compile manually I get the > > > > following output: > > > > $ lf95 CMakeFortranCompilerId.F > > > > Encountered 0 errors, 0 warnings in file CMakeFortranCompilerId.F. > > > > /tmp/asmHexTje.s: Assembler messages: > > > > /tmp/asmHexTje.s:51: Error: suffix or operands invalid for `push' > > > > > > > > Does anyone know what this means? I hardly know what an assembler is.. > > > > > > Just for the assembler: > > > Usually you compile your file from high language to the binary with > > > intermediate steps. The last step before the object code is the assembler > > > where mnemonics are translated into processor operation codes [3]. One of > > > these mnemonics is "push" which causes a data word to be pushed on the > > > stack. > > > > > > For me this looks like a problem regarding your compiler flags, because > > > this error message may arise if you try to push between 32 and 64 bit > > > words. I suppose you double check your compiler manual for the correct > > > flags. But I'm not really speaking from experience in this point, it's > > > more an idea what to look for than a solution :) > > > > > > [3] http://en.wikipedia.org/wiki/Assembly_language#Assembler > > > > > > > Yngve > > > > > > > > > > - Hannes > > > --- > > > This communication contains confidential information. If you are not the > > > intended recipient please return this email to the sender and delete it > > > from your records. > > > > > > Diese Nachricht enthält vertrauliche Informationen. Sollten Sie nicht der > > > beabsichtigte Empfänger dieser E-mail sein, senden Sie bitte diese an den > > > Absender zurück und löschen Sie die E-mail aus Ihrem System. > > > > > _______________________________________________ > > Powered by www.kitware.com > > > > Visit other Kitware open-source projects at > > http://www.kitware.com/opensource/opensource.html > > > > Please keep messages on-topic and check the CMake FAQ at: > > http://www.cmake.org/Wiki/CMake_FAQ > > > > Follow this link to subscribe/unsubscribe: > > http://www.cmake.org/mailman/listinfo/cmake > > > _______________________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Please keep messages on-topic and check the CMake FAQ at: > http://www.cmake.org/Wiki/CMake_FAQ > > Follow this link to subscribe/unsubscribe: > http://www.cmake.org/mailman/listinfo/cmake > _______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake