[PATCH 2/2] ld: Don't evaluate unneeded PROVIDE expressions.

Alan Modra amodra@gmail.com
Mon Jan 12 00:39:00 GMT 2015


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



More information about the Binutils mailing list