Creating ARM toolchain
Dan Kegel
dank@kegel.com
Sun Aug 8 18:54:00 GMT 2004
Hinko Kocevar wrote:
>> As for your other error,
>> > eval `cat arm-softfloat.dat gcc-3.4.1-glibc-2.2.5.dat` sh all.sh
>> --notest
>> > fails with
>> > ...
>> > ../sysdeps/unix/sysv/linux/pread.c: In function `__libc_pread':
>> > ../sysdeps/unix/sysv/linux/pread.c:52: error: `__NR_pread' undeclared
>>
>> $ grep __NR_pread */*
>> finds a couple patches for a similar problem for alpha and sparc64,
>> maybe you could try using the alpha version as an example for
>> how to fix this. ...
>
> sparc64/alpha patch:
>
> +/* This is a kludge to make syscalls.list find these under the names
> + pread and pwrite, since some kernel headers define those names
> + and some define the *64 names for the same system calls. */
> +#if !defined __NR_pread && defined __NR_pread64
> +# define __NR_pread __NR_pread64
> +#endif
> +#if !defined __NR_pwrite && defined __NR_pwrite64
> +# define __NR_pwrite __NR_pwrite64
> +#endif
> +
>
> That patches deal with some name defines on 64bit CPUs, I've applied
> anyway, but it didn't solve the problem.
Er, you have to come up with a similar patch for the arm
architecture. Try the attached patch, it seems to work for me.
--- glibc-2.2.5-arm-pwrite64.patch ------
Should fix
../sysdeps/unix/sysv/linux/pread.c: In function `__libc_pread':
../sysdeps/unix/sysv/linux/pread.c:52: error: `__NR_pread' undeclared (first use in this function)
../sysdeps/unix/sysv/linux/pread.c:52: error: (Each undeclared identifier is reported only once
../sysdeps/unix/sysv/linux/pread.c:52: error: for each function it appears in.)
make[2]: *** [/home/dank/crosstool-0.28/build/arm-9tdmi-linux-gnu/gcc-3.4.1-glibc-2.2.5/build-glibc/posix/pread.o] Error 1
make[2]: Leaving directory `/home/dank/crosstool-0.28/build/arm-9tdmi-linux-gnu/gcc-3.4.1-glibc-2.2.5/glibc-2.2.5/posix'
make[1]: *** [posix/subdir_lib] Error 2
Copied from similar patch for alpha.
--- glibc-2.2.5-orig/sysdeps/unix/sysv/linux/arm/sysdep.h 2001-07-05 21:56:13.000000000 -0700
+++ glibc-2.2.5/sysdeps/unix/sysv/linux/arm/sysdep.h 2004-08-07 10:45:26.000000000 -0700
@@ -32,6 +32,15 @@
#define SWI_BASE (0x900000)
#define SYS_ify(syscall_name) (__NR_##syscall_name)
+/* This is a kludge to make syscalls.list find these under the names
+ pread and pwrite, since some kernel headers define those names
+ and some define the *64 names for the same system calls. */
+#if !defined __NR_pread && defined __NR_pread64
+# define __NR_pread __NR_pread64
+#endif
+#if !defined __NR_pwrite && defined __NR_pwrite64
+# define __NR_pwrite __NR_pwrite64
+#endif
#ifdef __ASSEMBLER__
--
My technical stuff: http://kegel.com
My politics: see http://www.misleader.org for examples of why I'm for regime change
------
Want more information? See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com
More information about the crossgcc
mailing list