| Anonymous | Login | Signup for a new account | 11-10-2008 10:58 PST |
| Main | My View | View Issues | Change Log | Docs |
| Viewing Issue Simple Details [ Jump to Notes ] | [ View Advanced ] [ Issue History ] [ Print ] | ||||||||
| ID | Category | Severity | Reproducibility | Date Submitted | Last Update | ||||
| 0000748 | [uClibc] Architecture Specific | major | always | 02-20-06 07:43 | 02-24-06 11:11 | ||||
| Reporter | jcwillia | View Status | public | ||||||
| Assigned To | |||||||||
| Priority | normal | Resolution | fixed | ||||||
| Status | closed | Product Version | 0.9.28 | ||||||
| Summary | 0000748: Compliation failure for arm due to sendfile/sendfile64 conflict | ||||||||
| Description |
When using daily snapshot with buildroot, building for StrongARM (SA1100), the file toolchain_build_arm/uClibc/libc/sysdeps/linux/common/sendfile.c fails to compile with the following errors: CC libc/sysdeps/linux/common/sendfile.os libc/sysdeps/linux/common/sendfile.c:19: error: conflicting types for 'sendfile64' ./include/sys/sendfile.h:47: error: previous declaration of 'sendfile64' was here libc/sysdeps/linux/common/sendfile.c:20: error: conflicting types for 'sendfile64' ./include/sys/sendfile.h:47: error: previous declaration of 'sendfile64' was here libc/sysdeps/linux/common/sendfile.c:21: error: conflicting types for 'sendfile64' ./include/sys/sendfile.h:47: error: previous declaration of 'sendfile64' was here libc/sysdeps/linux/common/sendfile.c:22: error: '__EI_sendfile64' aliased to undefined symbol '__GI_sendfile64' make[2]: *** [libc/sysdeps/linux/common/sendfile.os] Error 1 make[1]: *** [lib/libc.so.0] Error 2 |
||||||||
| Additional Information |
Build for mipsel and i386 on same source succeeded. commenting out the conditional block at the bottom of sendfile.c allows ARM buildroot to succeed (execution not tested on target). Suspect it's some difference between syscall.h/syscalls.h in arm architecture, but haven't found it yet. Attached is a preprocessor .i file generated from the command: /export/src/buildroot/build_arm/staging_dir/bin/arm-linux-uclibc-gcc -E libc/sysdeps/linux/common/sendfile.c -o sendfile.i -include ./include/libc-symbols.h -Wall -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -mlittle-endian -mtune=strongarm1100 -march=armv4 -fno-builtin -nostdinc -I./include -I. -fsigned-char -fstrict-aliasing -Os -funit-at-a-time -I./libpthread/linuxthreads.old/sysdeps/unix/sysv/linux/arm -I./libpthread/linuxthreads.old/sysdeps/arm -I./libpthread/linuxthreads.old/sysdeps/unix/sysv/linux -I./libpthread/linuxthreads.old/sysdeps/pthread -I./libpthread/linuxthreads.old -I./libpthread -isystem /export/src/buildroot/build_arm/staging_dir/lib/gcc/arm-linux-uclibc/4.0.2/include -DNDEBUG -fPIC |
||||||||
| Attached Files |
|
||||||||
|
|
|||||||||
Notes |
|
|
(0001124) jcwillia 02-20-06 10:46 |
forgot to mention: using gcc-4.0.2 |
|
(0001132) jcwillia 02-20-06 14:47 |
Looks like mips and i386 kernel headers define sendfile64, while arm headers do not (in an '#if 0' block). |
|
(0001133) jcwillia 02-20-06 15:08 |
Problem was that I was using 2.4.31 kernel headers. Moved to 2.6.12 headers and __NR_sendfile64 is defined, so the problematic block at the bottom of sendfile.c is avoided. |
|
(0001134) psm 02-20-06 23:11 |
could you check current svn, I hope I solved it, thx for the proper report |
|
(0001139) jcwillia 02-21-06 14:09 edited on: 02-21-06 14:09 |
I updated to latest svn: [williams@foo buildroot]$ svn update U toolchain/Config.in U toolchain/gcc/Config.in U docs/download.html Updated to revision 14166. rebuilt with 2.4.31 kernel headers. no change. Are you trying to automatically detect the problem and correct it in the Config.in? Wonder if it wouldn't be easier to undef __UCLIBC_HAS_LFS__ (but I don't know if no sendfile64 means no large file support). |
|
(0001140) psm 02-21-06 15:33 |
you need uClibc svn, sendfile.c was changed |
|
(0001141) jcwillia 02-21-06 15:37 |
doh! sorry... I'll fetch the svn tree, tar it up and feed it to buildroot |
|
(0001142) jcwillia 02-21-06 16:42 |
That did it! ARM compiles with 2.4.31 kernel headers. Thanks |
| Copyright © 2000 - 2006 Mantis Group |