On 04/18/2017 03:19 PM, Kenneth Hoste wrote: > On 13/04/2017 16:53, Markus Geimer wrote: >> Maik, >> >> As far as I can see in my build logs, this is nothing that is induced >> by EasyBuild. It seems as if the configure scripts of various math >> libraries needed to build GCC (i.e., GMP, isl, etc.) set these flags >> automatically based on the host architecture. To fix this behavior, >> you need to figure out how to convince the configure scripts to use >> a "conservative" setting and then modify the GCC easyblock accordingly. > > This is indeed not done by EasyBuild, since for installations done with > the 'dummy' toolchain the build environment (e.g. $CFLAGS etc.) is not > set up by EasyBuild, hence --optarch has no effect whatsoever. > > By default, EasyBuild performs the 3-stage bootstrap procedure for GCC, > which results in a native compiler. > > What you want to do is basically build a cross-compiler...
Not really. The bootstrap will build a native compiler, yes. But the GCC build itself does not use any instruction set optimization flags (e.g., '-march=native'). Thus, the bootstrap will generate generic code that will run on any CPU of the host architecture (e.g., x86_64). However, this is not true for the support libraries, which are optimized by default. I'd say this situation is different from building a cross-compiler where the *target* architecture or OS is different (e.g., compiling for ARM on x86). Markus >> On 04/13/2017 03:57 PM, Maik Schmidt wrote: >>> Nope, wasn't that. Even when explictly setting --optarch=GENERIC on the >>> eb call, it uses whatever the host architecture is in the second and >>> third build stages, e.g. "-march=haswell -mtune=haswell" >>> >>> Am 13.04.2017 um 11:53 schrieb Maik Schmidt: >>>> Okay, I think it might be due to the fact that GCC/GCCcore are >>>> actually built with the dummy toolchain and so my compiler-specific >>>> optarch that only includes "Intel" and "GCC" is not applied there. Can >>>> I also add "dummy" to the optarch as another toolchain? >>>> >>>> Best, >>>> Maik >>>> >>>> Am 13.04.2017 um 10:13 schrieb Maik Schmidt: >>>>> I have noticed that when doing a GCC/GCCcore build, it always uses >>>>> the HOST architecture for -march and -mtune starting in compile stage >>>>> 2, even though I have set something else via optarch. This is a real >>>>> problem for heterogenous clusters if you do not make sure that the >>>>> build host always is one with the oldest architecture, because then >>>>> it leads to the error: >>>>> >>>>> "internal compiler error: Illegal instruction" >>>>> >>>>> when the resulting GCC is used on an older node. >>>>> >>>>> Is this a known issue, or is there a way to make the GCC build >>>>> process respect what EasyBuild sets as the target architecture, even >>>>> during the later compile stages? >>>>> >>>>> Thank you kindly in advance. >>>>> >>>> >>> >> -- >> Dr. Markus Geimer >> Juelich Supercomputing Centre >> Institute for Advanced Simulation >> Forschungszentrum Juelich GmbH >> 52425 Juelich, Germany >> >> Phone: +49-2461-61-1773 >> Fax: +49-2461-61-6656 >> E-Mail: [email protected] >> WWW: http://www.fz-juelich.de/jsc >> >> >> ------------------------------------------------------------------------------------------------ >> >> ------------------------------------------------------------------------------------------------ >> >> Forschungszentrum Juelich GmbH >> 52425 Juelich >> Sitz der Gesellschaft: Juelich >> Eingetragen im Handelsregister des Amtsgerichts Dueren Nr. HR B 3498 >> Vorsitzender des Aufsichtsrats: MinDir Dr. Karl Eugen Huthmacher >> Geschaeftsfuehrung: Prof. Dr.-Ing. Wolfgang Marquardt (Vorsitzender), >> Karsten Beneke (stellv. Vorsitzender), Prof. Dr.-Ing. Harald Bolt, >> Prof. Dr. Sebastian M. Schmidt >> ------------------------------------------------------------------------------------------------ >> >> ------------------------------------------------------------------------------------------------ >> >> > -- Dr. Markus Geimer Juelich Supercomputing Centre Institute for Advanced Simulation Forschungszentrum Juelich GmbH 52425 Juelich, Germany Phone: +49-2461-61-1773 Fax: +49-2461-61-6656 E-Mail: [email protected] WWW: http://www.fz-juelich.de/jsc

