Kenneth,

>>> What happens when building the GNU toolchain is:
>>> - Build binutils with system GCC
>>> - Build GCC using the previous binutils and system GCC
>>> - Build binutils with EB GCC
>>> - Create GNU toolchain that loads both EB GCC and the previous binutils
>> That's understood -- and I believe that this is way too complicated.
>
> We're just making sure here we don't rely on the system GCC (or its
> libraries) in any way.

You know my opinion on this: Sometimes, you are carrying things
too far.

> Using the system-provided binutils has proven to be an issue sometimes,
> for example in RHEL6 on Haswell, where the standard system binutils is
> too old to be aware of AVX2. That's why we've opted to provide our own.

That's a perfectly valid approach.  (Though one could also blame RHEL
for shipping ancient software.  Even Debian ships a recent enough
binutils... ;-))

> How sure are you that a binutils built with the system compiler doesn't
> rely on that system compiler anymore at runtime (i.e. what if the system
> compiler gets updated, or worse, disappears)?

In this particular case, I'm quite sure.  None of the binutils
binaries or libraries depends on any compiler-provided library.

> Or, that loading another (likely newer) GCC isn't going to break that
> binutils build?

See above.  If you are so concerned, let me ask a counter question:
How sure are you that simply replacing the underlying binutils in
the GNU toolchain doesn't break the GCC compiled using the binutils
compiled with the system GCC?  To be really on the "safe side", you
would have to bootstrap GCC again with the new GCC using the binutils
compiled with that GCC.

> So, basically, this boils down to changing the name of 'GNU' to 'GCC',
> while making sure that binutils is a (runtime) dep of 'GCC'.
>
> That's not too terrible to fix, except for the tedious naming to
> discriminate between a GCC build with a binutils built with the system
> compiler vs a GCC build with a binutils built with that same GCC
> (version). In the latter, there's a chicken-or-egg situation we need to
> dance around.
>
> Basically, you'd have a 'GCC' compiler (built with a binutils built with
> system GCC) and a 'GCC' toolchain (which includes a binutils built with
> the GCC compiler we've built). Since both can not be loaded at the same
> time, you'd need to rename the GCC compiler module to something else.

And you'd have to make sure that only the "right" GCC (in this case,
the toolchain) extends the modulepath in a hierarchical scheme.

> The support for the 'modaltsoftname' easyconfig parameter that was
> recently merged into develop, which you can use to specify an
> alternative software name to be used to generate the module name, can
> come in useful here. You can define "modaltsoftname = 'GCCcomp'" in the
> GCC compiler easyconfigs, in order to get a 'GCCcomp/4.9.3' module for
> example.
> Currently, this may be problematic when specifying the dependencies
> though...

This sounds like an evil hack that may turn out to backfire at
some point...

Markus

--
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
------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------

Reply via email to