On Friday 27 February 2009 16:47:57 Denys Vlasenko wrote:
> > Out of curiosity, let's see what happens if I make the change, make
> > clean, make defconfig, make...
> >
> > CC libc/sysdeps/linux/common/fstat.os
> > libc/sysdeps/linux/common/fstat.c:43: error: '__EI_fstat64' aliased to
> > undefined symbol '__GI_fstat64' make: ***
> > [libc/sysdeps/linux/common/fstat.os] Error 1
> >
> > Current svn doesn't build a defconfig on Ubuntu 8.10 x86_64 is what
> > happens. (Try with 2.6.29-rc5 kernel headers? Nope, that's not it, it's
> > the .config.)
> >
> > Ok, so which config symbol controls that...
> > ./libc/sysdeps/linux/common/.fstat.os.dep:libc/sysdeps/linux/common/fstat
> >.os: libc/sysdeps/linux/common/fstat.c \
> >
> > .fstat.os.dep? Right, not the bug I'm looking for, so put a bit #if
> > 0/#endif around the entire contents of that file. Do it _again_ when
> > lstat.c breaks the same way. Do it _again_ for stat.c...
>
> Reproduced.
>
> Oh no. There is a particularly nasty hack around aliases, hidden symbols
> and such. When I see something like *this*, I know it can't be good:
Yeah, sorry for just throwing my hands up there rather than properly debugging
it, but I had _no_ clue what it was trying to accomplish.
> /* need to hide the 64bit prototype or the strong_alias()
> * will fail when __NR_stat64 doesnt exist */
> #define stat64 __hidestat64
> #include <sys/syscall.h>
> #include <unistd.h>
> ...
>
> And it indeed broke with libc_hidden_proto() removal.
>
> Please try this patch. It worked for me (two .config's tested),
> and it makes this stuff _simpler_.
Confirmed that it builds to the end for me with that patch. (It still
produced several pages of:
In file included from ./include/sys/procfs.h:32,
from
libpthread/linuxthreads.old/../linuxthreads.old_db/proc_service.h:20,
from
libpthread/linuxthreads.old/../linuxthreads.old_db/thread_dbP.h:9,
from libpthread/linuxthreads.old/internals.h:32,
from libpthread/linuxthreads.old/libc_pthread_init.c:24:
./include/sys/time.h:74: warning: asm declaration ignored due to conflict with
previous rename
./include/sys/time.h:82: warning: asm declaration ignored due to conflict with
previous rename
./include/sys/time.h:137: warning: asm declaration ignored due to conflict
with previous rename
./include/sys/time.h:144: warning: asm declaration ignored due to conflict
with previous rename
But that's just warnings, didn't prevent it from building a binary.
Your fix worked for me. Thanks,
Rob
_______________________________________________
uClibc mailing list
[email protected]
http://lists.busybox.net/mailman/listinfo/uclibc