Hi Chris,

On 17/08/15 07:47, Christopher Samuel wrote:
Hi folks,

It turns out that if you try and build GCC 4.9.2 on a Haswell box with
--with-arch=native then the build fails because the assembler in RHEL6.7
doesn't understand some of the instructions GCC emits.

Yes, see also https://github.com/hpcugent/easybuild-easyconfigs/issues/1605 .

Apparently these are supported by binutils-2.25 and I can see that there
is a GCC-4.9.2-binutils-2.25.eb present in EB but the toolchains don't
use that.
Yet. The foss/2015b toolchain (now in develop, to be included in EasyBuild 2.2.1 (or 2.3.0) going out soon) does use it (or rather, it uses the update GCC-4.9.3-binutils-2.25.eb instead).

Is there any better way of getting any GCC build to use a version with
binutils-2.25 other than to copy all the GCC eb's and then edit them to
include a dependency on binutils-2.25?

Well, you can just include binutils as a dependency in the GCC easyconfig itself (without renaming it), that will work too. This is basically what we do in the 2015b toolchains, via the (new) subtoolchain named GNU (which bundles GCC with binutils).

Or you could go with foss/2015b instead (not sure what you're using now).

We did see --amend/--try-amend with versionsuffix=-binutils-2.25 but
instead of adding that onto the GCC-4.9.2.eb when resolving dependencies
it seems to just build GCC-4.9.2.eb as
GCC-4.9.2-binutils-2.25.eb (but without the newer binutils) which is the
opposite of what we're trying to achieve.

WIth --amend=versionsuffix=-foo, you're telling EasyBuild: please look for an easyconfig that has 'versionsuffix=-foo' that otherwise matching the one I'm specifying. This should result in GCC-4.9.2-binutils-2.25.eb being picked up (with the binutils dep included).

With --try-amend=versionsuffix=-foo, you're telling EasyBuild: please modify the specified easyconfig by including "versionsuffix = '-foo'" before building it. But this does not imply changing the list of dependencies.

Something like this *may* work, if you really want to refrain from copying and modifying the GCC-4.8.2.eb easyconfig file manually:

    eb GCC-4.8.2.eb --try-amend="dependencies=,('binutituls', '2.25')"

The ',' indicates that dependencies should be a list, and that the specified value should be appended to the existing value (which is empty for GCC, but fine).

    eb GCC-4.8.2.eb --try-amend="dependencies=,('binutituls', '2.25')"

If this doesn't work as expected, just copy the GCC-4.8.2.eb easyconfig and include this: dependencies = [('binutils', '2.25')]

Note that I'm not touching the versionsuffix here, since that would imply you need to use --try-toolchain-version=4.8.2-binutils-2.25 over and over again. Instead, I'm just assuming you're OK with installing GCC/4.8.2 with a minor site customization, i.e. including a newer binutils version as a dependency.


Shame this only popped up now but the test system I've had to play with
was Sandybridge and (unsurprisingly) that was supported fine in RHEL6.

Bad test system. ;-)


regards,

Kenneth

Reply via email to