| Summary: | busybox does not build because of missing fcntl64 symbol | ||
|---|---|---|---|
| Product: | uClibc | Reporter: | Abdoulaye Walsimou Gaye <walsimou> |
| Component: | Shared Library Support | Assignee: | unassigned |
| Status: | RESOLVED WORKSFORME | ||
| Severity: | minor | CC: | raj.khem, rob, uclibc-cvs |
| Priority: | P5 | ||
| Version: | 0.9.31 | ||
| Target Milestone: | 0.9.32 | ||
| Hardware: | PC | ||
| OS: | Linux | ||
| Host: | Target: | mips64 little | |
| Build: | |||
| Attachments: | uClibc .config file | ||
|
Description
Abdoulaye Walsimou Gaye
2010-03-21 15:02:05 UTC
can you also attach preprocessed output of libbb/xfuncs.c please ? It seems fcntl is defined to fcntl64 for some reason but the syscall is missing hence uclibc does not have the function for it. it will help if you can attach the preprocessed file. Khem, preprocessed output of libbb/xfuncs.c sent directly to you, beacuse buzilla (due to its size) and uclibc ML moderator reject it. The x86_64 headers for uClibc have include/fcntl.h as: #ifndef __USE_FILE_OFFSET64 extern int fcntl (int __fd, int __cmd, ...); libc_hidden_proto(fcntl) #else # ifdef __REDIRECT extern int __REDIRECT (fcntl, (int __fd, int __cmd, ...), fcntl64); # else # define fcntl fcntl64 # endif #endif #ifdef __USE_LARGEFILE64 extern int fcntl64 (int __fd, int __cmd, ...); libc_hidden_proto(fcntl64) #endif Either the REDIRECT or the #define fcntl fcntl64 might have something to do with it. Just a thought. And while we're at it, libc/sysdeps/linux/common/__syscall_fcntl.c: #if ! defined __NR_fcntl64 && defined __UCLIBC_HAS_LFS__ strong_alias(fcntl,fcntl64) #endif Which direction should that go in? Is the new symlink the first or the second argument? I'll try swapping 'em... CC libc/sysdeps/linux/common/__syscall_fcntl64.os libc/sysdeps/linux/common/__syscall_fcntl.c:49: error: redefinition of 'fcntl' libc/sysdeps/linux/common/__syscall_fcntl.c:20: error: previous definition of 'fcntl' was here Ok, that wasn't it. I have no idea how this build system works. It's far more complicated than it has any obvious reason to be. This works fine with 0.9.33.1 or later. |