Introduce target-specific LDFLAGS, the same way we have CFLAGS for the target.
It seems to be helping gcc somewhat into telling the correct endianness to ld that sticks with little endian even when the target is big (eg armeb-unknown-linux-uclibcgnueabi).
There's still work to do, especially finish the gcc part that is not in this commit.
/trunk/scripts/functions | 9 7 2 0 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
1 Applies to both glibc-2.2.5 and glibc-2.3.2, and probably glibc cvs as of Aug 2004.
2 Needed to build glibc with linux kernels 2.4.23 or higher on ARM,
5 ../sysdeps/unix/sysv/linux/arm/ioperm.c: In function `init_iosys':
6 ../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: `BUS_ISA' undeclared (first use in this function)
7 ../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: (Each undeclared identifier is reported only once
8 ../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: for each function it appears in.)
9 ../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: initializer element is not constant
10 ../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: (near initialization for `iobase_name[1]')
11 ../sysdeps/unix/sysv/linux/arm/ioperm.c:104: error: initializer element is not constant
12 ../sysdeps/unix/sysv/linux/arm/ioperm.c:104: error: (near initialization for `ioshift_name[1]')
13 make[2]: *** [/home/dank/crosstool-0.28/build/arm-softfloat-linux-gnu/gcc-3.3.4-glibc-2.2.5/build-glibc/misc/ioperm.o] Error 1
15 cf. "[SYSCTL] BUS_ISA -> CTL_BUS_ISA", http://www.ussg.iu.edu/hypermail/linux/kernel/0311.0/0529.html
17 --- glibc-2.3.2/sysdeps/unix/sysv/linux/arm/ioperm.c.old 2003-02-20 14:22:24.000000000 -0800
18 +++ glibc-2.3.2/sysdeps/unix/sysv/linux/arm/ioperm.c 2004-01-31 16:01:50.000000000 -0800
21 #include <sys/sysctl.h>
23 +/* see http://www.ussg.iu.edu/hypermail/linux/kernel/0311.0/0529.html */
24 +#include <linux/version.h>
25 +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,4,23))
26 +#define CTL_BUS_ISA BUS_ISA /* and hope it's not the one from linux/input.h */
29 #define PATH_ARM_SYSTYPE "/etc/arm_systype"
30 #define PATH_CPUINFO "/proc/cpuinfo"
33 * Initialize I/O system. There are several ways to get the information
34 * we need. Each is tried in turn until one succeeds.
36 - * 1. Sysctl (CTL_BUS, BUS_ISA, ISA_*). This is the preferred method
37 + * 1. Sysctl (CTL_BUS, CTL_BUS_ISA, ISA_*). This is the preferred method
38 * but not all kernels support it.
40 * 2. Read the value (not the contents) of symlink PATH_ARM_SYSTYPE.
45 - static int iobase_name[] = { CTL_BUS, BUS_ISA, BUS_ISA_PORT_BASE };
46 - static int ioshift_name[] = { CTL_BUS, BUS_ISA, BUS_ISA_PORT_SHIFT };
47 + static int iobase_name[] = { CTL_BUS, CTL_BUS_ISA, BUS_ISA_PORT_BASE };
48 + static int ioshift_name[] = { CTL_BUS, CTL_BUS_ISA, BUS_ISA_PORT_SHIFT };
49 size_t len = sizeof(io.base);
51 if (! sysctl (iobase_name, 3, &io.io_base, &len, NULL, 0)
53 Signed-off-by: Robert P. J. Day <rpjday@mindspring.com>