-
Notifications
You must be signed in to change notification settings - Fork 284
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
give /lib preference over /lib64 & co, enable installation of libliberty by default #1030
Conversation
…ld be built with -fPIC
…disable it when multilib is enabled
two updates:
|
It is possible to enable the libiberty default in binutils instead (that's what we do) |
@ocaisa do you think it makes sense to always enable |
I guess its a question of being consistent, if our defaults consistently only provide it in binutils then we should be safe...we could even bomb out of GCC if someone sets the configopt? |
@ocaisa is Also, why did you enable that exactly? What's the use case for |
@boegel I was having some trouble with |
Lgtm |
...at least the libiberty part ;) |
Missing a sanity check for libiberty in the binutils easyblock |
Thanks for the review @ocaisa! Tested this thoroughly using a large bunch of GCC rebuilds, and by rebuilding all existing Going in! |
|
||
if not os.path.exists(os.path.join(self.installdir, 'info', 'libiberty.texi')): | ||
copy_file(os.path.join(self.cfg['start_dir'], 'libiberty', 'libiberty.texi'), | ||
os.path.join(self.installdir, 'info', 'libiberty.texi')) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Although this has been merged already: does it really make sense to install the .texi
file? I thought that this is the input file for texinfo
to generate the actual .info
file to be installed...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@ocaisa was doing that too, but I don't mind cutting that out. Honestly, I didn't spend much time questioning it's usefulness. ;)
Its a long time since I first did this, not sure why I included that, I may have just searched for everything libiberty related...or I may have gone away and checked what was being installed with old binutils builds |
cfgfile = 'gcc/config/i386/t-linux64' | ||
multilib_osdirnames = "MULTILIB_OSDIRNAMES = m64=../lib:../lib64 m32=../lib:../lib32 mx32=../lib:../libx32" | ||
self.log.info("Patching MULTILIB_OSDIRNAMES in %s with '%s'", cfgfile, multilib_osdirnames) | ||
write_file(cfgfile, multilib_osdirnames, append=True) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@sebth it looks like this is causing problems with older GCC versions, i.e. GCC 4.7.2 and older (except for GCC 4.6.4)... GCC 4.7.3 and newer are OK.
This is the error:
/usr/lib/crti.o: could not read symbols: File in wrong format
collect2: ld returned 1 exit status
with:
$ file /usr/lib/crti.o
/usr/lib/crti.o: ELF 32-bit LSB relocatable, Intel 80386, version 1 (SYSV), not stripped
I'll add a prefer_lib_subdir = False
in those easyconfigs, but do you happen to know what the problem is?
See suggestion in #921 by @sebth on giving preference to
/lib
subdirectories, and #969 by @stachon suggesting to enable the installation oflibiberty
.I'm going to test easybuilders/easybuild-easyconfigs#3776, easybuilders/easybuild-easyconfigs#3777 and easybuilders/easybuild-easyconfigs#3778 on top of this PR.