[CMake] pass compile flags to initial compiler test.. now an assembler issue

Yngve Inntjore Levinsen yngve.levinsen at gmail.com
Tue Sep 21 08:54:40 EDT 2010


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-bounces at cmake.org [mailto:cmake-bounces at cmake.org] On Behalf Of Yngve Inntjore Levinsen
> > Sent: Montag, 20. September 2010 18:38
> > To: cmake at 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.
> 


More information about the CMake mailing list