
Hi Sascha,
Am Montag, den 02.07.2007, 21:26 +0200 schrieb Sascha Hauer:
I'm too using ld-2.17: GNU ld (GNU Binutils for Debian) 2.17.50.20070426
Here (debian/etch): GNU ld version 2.17 Debian GNU/Linux
Maybe one of your patch levels introduced CONSTANT as glue to support different pagesizes with the same linker script?
gcc version is 4.1.2.
Here: gcc version 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)
with 'ld --verbose'. Maybe a diff between yours and the one used in U-Boot can give some light?
ld --verbose
... . = ALIGN (0x1000) - ((0x1000 - .) & (0x1000 - 1)); . = DATA_SEGMENT_ALIGN (0x1000, 0x1000); ...
This is the line causing the problem. As you can see, my ld uses hardwired constants, not CONSTANT(...).
As CONSTANT() is not documented on the sourceware.org/binutils pages I presume it's a non-mainstream extension.
Maybe we can distinguish between ia64 and i386 targets and set defines appropriately in u-boot.lds.h? Or use only mainstream LD builtins for our links scripts.
Regards Carsten