This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: [PATCH 2/2] ld: Don't evaluate unneeded PROVIDE expressions.
- From: Alan Modra <amodra at gmail dot com>
- To: Andrew Burgess <andrew dot burgess at embecosm dot com>
- Cc: binutils at sourceware dot org, Hans-Peter Nilsson <hp at bitrange dot com>
- Date: Mon, 12 Jan 2015 11:08:53 +1030
- Subject: Re: [PATCH 2/2] ld: Don't evaluate unneeded PROVIDE expressions.
- Authentication-results: sourceware.org; auth=none
- References: <cover dot 1420631791 dot git dot andrew dot burgess at embecosm dot com> <3d30f0e7bfaf420b6a4d64a818db85700c4fc083 dot 1420631791 dot git dot andrew dot burgess at embecosm dot com> <alpine dot BSF dot 2 dot 02 dot 1501072022030 dot 57687 at arjuna dot pair dot com> <20150108101756 dot GG3103 at embecosm dot com> <alpine dot BSF dot 2 dot 02 dot 1501080607080 dot 20143 at arjuna dot pair dot com> <20150108200304 dot GM3103 at embecosm dot com>
On Thu, Jan 08, 2015 at 08:03:04PM +0000, Andrew Burgess wrote:
> ld/ChangeLog:
>
> * ldlang.c (print_assignment): Only evaluate the expression for a
> PROVIDE'd assignment when the destination is being defined.
> Display a special message for PROVIDE'd symbols that are not being
> provided.
This is OK.
> ld/testsuite/ChangeLog:
>
> * ld-scripts/provide-4.d: New file.
> * ld-scripts/provide-4-map.d: New file.
> * ld-scripts/provide-4.t: New file.
> * ld-scripts/provide.exp: Run the provide-4.d test.
This part isn't OK yet. You need to make sure new tests pass on more
than just Linux x86. I could see this would fail so applied your
patches and gave my usual set of targets a whirl, results below. To
fix this you can either restrict the set of targets tested (the lazy
option), or relax the .d file matching to the minimum you need to
verify the feature being tested.
aarch64-linux +FAIL: ld-scripts/provide-4 (map file check)
alpha-dec-vms +FAIL: ld-scripts/provide-4
alpha-linux +FAIL: ld-scripts/provide-4 (map file check)
alpha-linuxecoff +FAIL: ld-scripts/provide-4 (map file check)
alpha-netbsd +FAIL: ld-scripts/provide-4 (map file check)
alpha-unknown-freebsd4.7 +FAIL: ld-scripts/provide-4 (map file check)
am33_2.0-linux +FAIL: ld-scripts/provide-4 (map file check)
arc-elf +FAIL: ld-scripts/provide-4 (map file check)
arm-coff +FAIL: ld-scripts/provide-4 (map file check)
arm-coff +FAIL: ld-scripts/provide-4
arm-epoc-pe +FAIL: ld-scripts/provide-4 (map file check)
arm-epoc-pe +FAIL: ld-scripts/provide-4
arm-linuxeabi +FAIL: ld-scripts/provide-4 (map file check)
arm-nacl +FAIL: ld-scripts/provide-4 (map file check)
arm-netbsdelf +FAIL: ld-scripts/provide-4 (map file check)
arm-nto +FAIL: ld-scripts/provide-4 (map file check)
arm-pe +FAIL: ld-scripts/provide-4 (map file check)
arm-pe +FAIL: ld-scripts/provide-4
arm-symbianelf +FAIL: ld-scripts/provide-4 (map file check)
arm-symbianelf +FAIL: ld-scripts/provide-4
arm-vxworks +FAIL: ld-scripts/provide-4 (map file check)
arm-wince-pe +FAIL: ld-scripts/provide-4 (map file check)
arm-wince-pe +FAIL: ld-scripts/provide-4
avr-elf +FAIL: ld-scripts/provide-4 (map file check)
bfin-elf +FAIL: ld-scripts/provide-4 (map file check)
cr16-elf +FAIL: ld-scripts/provide-4 (map file check)
cris-elf +FAIL: ld-scripts/provide-4 (map file check)
crisv32-linux +FAIL: ld-scripts/provide-4 (map file check)
crx-elf +FAIL: ld-scripts/provide-4 (map file check)
d10v-elf +FAIL: ld-scripts/provide-4 (map file check)
d30v-elf +FAIL: ld-scripts/provide-4 (map file check)
dlx-elf +FAIL: ld-scripts/provide-4 (map file check)
fr30-elf +FAIL: ld-scripts/provide-4 (map file check)
frv-elf +FAIL: ld-scripts/provide-4 (map file check)
frv-linux +FAIL: ld-scripts/provide-4 (map file check)
frv-linux +FAIL: ld-scripts/provide-4
h8300-elf +FAIL: ld-scripts/provide-4 (map file check)
hppa64-hp-hpux11.23 +FAIL: ld-scripts/provide-4 (map file check)
hppa64-hp-hpux11.23 +FAIL: ld-scripts/provide-4
hppa64-linux +FAIL: ld-scripts/provide-4 (map file check)
hppa64-linux +FAIL: ld-scripts/provide-4
hppa-linux +FAIL: ld-scripts/provide-4 (map file check)
i370-linux +FAIL: ld-scripts/provide-4 (map file check)
i386-lynxos +FAIL: ld-scripts/provide-4 (map file check)
i386-netware +FAIL: ld-scripts/provide-4 (map file check)
i586-coff +FAIL: ld-scripts/provide-4 (map file check)
i586-coff +FAIL: ld-scripts/provide-4
i586-linux +FAIL: ld-scripts/provide-4 (map file check)
i686-nacl +FAIL: ld-scripts/provide-4 (map file check)
i686-pc-beos +FAIL: ld-scripts/provide-4 (map file check)
i686-pc-elf +FAIL: ld-scripts/provide-4 (map file check)
i686-pe +FAIL: ld-scripts/provide-4 (map file check)
i686-pe +FAIL: ld-scripts/provide-4
i860-stardent-elf +FAIL: ld-scripts/provide-4 (map file check)
i960-elf +FAIL: ld-scripts/provide-4 (map file check)
ia64-elf +FAIL: ld-scripts/provide-4 (map file check)
ia64-freebsd5 +FAIL: ld-scripts/provide-4 (map file check)
ia64-linux +FAIL: ld-scripts/provide-4 (map file check)
ia64-netbsd +FAIL: ld-scripts/provide-4 (map file check)
ip2k-elf +FAIL: ld-scripts/provide-4 (map file check)
iq2000-elf +FAIL: ld-scripts/provide-4 (map file check)
lm32-elf +FAIL: ld-scripts/provide-4 (map file check)
m32c-elf +FAIL: ld-scripts/provide-4 (map file check)
m32r-elf +FAIL: ld-scripts/provide-4 (map file check)
m68hc11-elf +FAIL: ld-scripts/provide-4 (map file check)
m68hc12-elf +FAIL: ld-scripts/provide-4 (map file check)
m68k-elf +FAIL: ld-scripts/provide-4 (map file check)
m68k-linux +FAIL: ld-scripts/provide-4 (map file check)
mcore-elf +FAIL: ld-scripts/provide-4 (map file check)
mcore-pe +FAIL: ld-scripts/provide-4 (map file check)
mcore-pe +FAIL: ld-scripts/provide-4
mep-elf +FAIL: ld-scripts/provide-4 (map file check)
microblaze-elf +FAIL: ld-scripts/provide-4 (map file check)
mips64-linux +FAIL: ld-scripts/provide-4 (map file check)
mipsel-linux-gnu +FAIL: ld-scripts/provide-4 (map file check)
mipsisa32el-linux +FAIL: ld-scripts/provide-4 (map file check)
mips-linux +FAIL: ld-scripts/provide-4 (map file check)
mmix +FAIL: ld-scripts/provide-4 (map file check)
mmix +FAIL: ld-scripts/provide-4
mn10200-elf +FAIL: ld-scripts/provide-4 (map file check)
mn10300-elf +FAIL: ld-scripts/provide-4 (map file check)
moxie-elf +FAIL: ld-scripts/provide-4 (map file check)
ms1-elf +FAIL: ld-scripts/provide-4 (map file check)
msp430-elf +FAIL: ld-scripts/provide-4 (map file check)
msp430-elf +FAIL: ld-scripts/provide-4
nios2-linux +FAIL: ld-scripts/provide-4 (map file check)
or1k-elf +FAIL: ld-scripts/provide-4 (map file check)
pj-elf +FAIL: ld-scripts/provide-4 (map file check)
powerpc64le-elf +FAIL: ld-scripts/provide-4 (map file check)
powerpc64-linux +FAIL: ld-scripts/provide-4 (map file check)
powerpc-eabisim +FAIL: ld-scripts/provide-4 (map file check)
powerpcle-cygwin +FAIL: ld-scripts/provide-4
powerpcle-elf +FAIL: ld-scripts/provide-4 (map file check)
powerpc-linux +FAIL: ld-scripts/provide-4 (map file check)
powerpc-nto +FAIL: ld-scripts/provide-4 (map file check)
powerpc-wrs-vxworks +FAIL: ld-scripts/provide-4 (map file check)
ppc-lynxos +FAIL: ld-scripts/provide-4 (map file check)
ppc-lynxos +FAIL: ld-scripts/provide-4
rl78-elf +FAIL: ld-scripts/provide-4 (map file check)
rx-elf +XPASS: overlay size (map file check)
rx-elf +FAIL: overlay size
rx-elf +FAIL: ld-scripts/provide-4 (map file check)
sh64-elf +FAIL: ld-scripts/provide-4 (map file check)
sh-linux +FAIL: ld-scripts/provide-4 (map file check)
shl-unknown-netbsdelf +FAIL: ld-scripts/provide-4 (map file check)
sh-nto +FAIL: ld-scripts/provide-4 (map file check)
sh-pe +FAIL: ld-scripts/provide-4 (map file check)
sh-pe +FAIL: ld-scripts/provide-4
sh-rtems +FAIL: ld-scripts/provide-4 (map file check)
sparc64-linux +FAIL: ld-scripts/provide-4 (map file check)
sparc-coff +FAIL: ld-scripts/provide-4 (map file check)
sparc-coff +FAIL: ld-scripts/provide-4
sparc-linux +FAIL: ld-scripts/provide-4 (map file check)
spu-elf +FAIL: ld-scripts/provide-4 (map file check)
tic30-unknown-coff +FAIL: ld-scripts/provide-4 (map file check)
tic30-unknown-coff +FAIL: ld-scripts/provide-4
tic4x-coff +FAIL: ld-scripts/provide-4 (map file check)
tic4x-coff +FAIL: ld-scripts/provide-4
tic54x-coff +FAIL: ld-scripts/provide-4
tic6x-elf +FAIL: ld-scripts/provide-4 (map file check)
tilegx-linux +FAIL: ld-scripts/provide-4 (map file check)
tilepro-linux +FAIL: ld-scripts/provide-4 (map file check)
tx39-elf +FAIL: ld-scripts/provide-4 (map file check)
v850-elf +FAIL: ld-scripts/provide-4 (map file check)
vax-netbsdelf +FAIL: ld-scripts/provide-4 (map file check)
x86_64-mingw32 +FAIL: ld-scripts/provide-4 (map file check)
x86_64-mingw32 +FAIL: ld-scripts/provide-4
xgate-elf +FAIL: ld-scripts/provide-4 (map file check)
xstormy16-elf +FAIL: ld-scripts/provide-4 (map file check)
xtensa-elf +FAIL: ld-scripts/provide-4 (map file check)
z80-coff +FAIL: ld-scripts/provide-4 (map file check)
z80-coff +FAIL: ld-scripts/provide-4
z8k-coff +FAIL: ld-scripts/provide-4 (map file check)
z8k-coff +FAIL: ld-scripts/provide-4
--
Alan Modra
Australia Development Lab, IBM