This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: GENERATE_SHLIB_SCRIPT vs. EMBEDDED


On Tue, Nov 05, 2019 at 08:33:18PM +1030, Alan Modra wrote:
> On Tue, Nov 05, 2019@09:47:52AM +0100, Christophe Lyon wrote:
> > > So, this patch removes GENERATE_SHLIB_SCRIPT and GENERATE_PIE_SCRIPT
> > > in most emulparams files where EMBEDDED is set, restoring the shared
> > > lib and pie support in emulparams files that unset EMBEDDED after
> > > including a file where the support is removed.
> >
> > On my side, after your committed this patch, I've noticed many regressions on
> > aarch64*-elf and arm-none-eabi:
> > https://ci.linaro.org/job/tcwg-compare-results/9217/artifact/artifacts/logs/0-report.html
> > 
> > Aren't these targets part of the set you regularly test? Or don't they
> > regress for you?
> 
> Um, I see I only test aarch64-linux and aarch64_be-linux-gnu_ilp32 for
> aarch64 so the aarch64-elf changes weren't tested@all.  I test
> arm-linuxeabi, arm-nacl, arm-netbsdelf, arm-nto, arm-pe,
> arm-symbianelf, arm-vxworks, arm-wince-pe, and armeb-linuxeabi but
> that doesn't hit any of the arm-elf targets either.  :-(
> 
> Testsuite regressions aside, is the patch wrong for aarch64-elf and
> arm-elf targets?  That's the real question here.  Or should
> aarch64-elf and perhaps arm-elf *not* set EMBEDDED and instead
> provide the usual shared lib and PIE support?
> 
> -- 
> Alan Modra
> Australia Development Lab, IBM

For what it's worth, this breaks building the Linux kernel for me:

aarch64-linux-ld: -shared not supported
../arch/arm64/kernel/vdso/Makefile:60: recipe for target 'arch/arm64/kernel/vdso/vdso.so.dbg' failed
make[3]: *** [arch/arm64/kernel/vdso/vdso.so.dbg] Error 1
arch/arm64/Makefile:159: recipe for target 'vdso_prepare' failed
make[2]: *** [vdso_prepare] Error 2
/home/nathan/cbl/linux-next/Makefile:326: recipe for target '__build_one_by_one' failed
make[1]: *** [__build_one_by_one] Error 2
Makefile:179: recipe for target 'sub-make' failed
make: *** [sub-make] Error 2

Reverting the change to ld/emulparams/aarch64elf.sh fixes it (somewhat
obvious), which probably means that the patch is wrong for the *-elf
targets (unless *-linux* should be setting those flags themselves...).
Not really familiar with the structure of these files, just a general
observation from the couple minutes I spent glancing over them.

Cheers,
Nathan


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]