master build breakages wrt threads with x86_64/i386

Bernhard Reutner-Fischer rep.dot.nop at gmail.com
Mon Jan 14 15:57:04 UTC 2013


On 11 January 2013 10:53, Bernhard Reutner-Fischer
<rep.dot.nop at gmail.com> wrote:
> On 10 January 2013 18:48, Florian Fainelli <florian at openwrt.org> wrote:
>> Hello Bernhard,
>>
>> I am hitting the following build failures on uclibc's master related to the
>> threads backend:
>>
>> linuxthreads.old for x86_64:
>>   LD libpthread-0.9.34-git.so
>> libpthread/linuxthreads.old/libpthread_so.a(wrapsyscall.oS): In function
>> `fcntl64':
>> wrapsyscall.c:(.text+0xd8): undefined reference to `__libc_fcntl64'
>> libpthread/linuxthreads.old/libpthread_so.a(wrapsyscall.oS): In function
>> `lseek64':
>> wrapsyscall.c:(.text+0x190): undefined reference to `__libc_lseek64'
>> libpthread/linuxthreads.old/libpthread_so.a(wrapsyscall.oS): In function
>> `pread64':
>> wrapsyscall.c:(.text+0x39c): undefined reference to `__libc_pread64'
>> collect2: error: ld returned 1 exit status
>> make: *** [lib/libpthread.so] Error 1
>
> I'll have a look at this one.

can you please check if that cures it?
thanks,
-------------- next part --------------
diff --git a/libc/sysdeps/linux/common/__syscall_fcntl64.c b/libc/sysdeps/linux/common/__syscall_fcntl64.c
index 5174d8a..eaef22b 100644
--- a/libc/sysdeps/linux/common/__syscall_fcntl64.c
+++ b/libc/sysdeps/linux/common/__syscall_fcntl64.c
@@ -13,8 +13,8 @@
 
 #if defined __NR_fcntl64 && __WORDSIZE == 32
 # include <stdarg.h>
-# include <fcntl.h>
 # include <cancel.h>
+# include <fcntl.h>
 
 # define __NR___fcntl64_nocancel __NR_fcntl64
 _syscall3(int, __NC(fcntl64), int, fd, int, cmd, long, arg)
diff --git a/libc/sysdeps/linux/common/lseek.c b/libc/sysdeps/linux/common/lseek.c
index 2c83584..3032a27 100644
--- a/libc/sysdeps/linux/common/lseek.c
+++ b/libc/sysdeps/linux/common/lseek.c
@@ -42,5 +42,6 @@ lt_libc_hidden(lseek)
 #if defined __UCLIBC_HAS_LFS__ && (__WORDSIZE == 64 || (!defined __NR__llseek && !defined __NR_llseek))
 strong_alias_untyped(__NC(lseek),__NC(lseek64))
 strong_alias_untyped(lseek,lseek64)
+lt_strong_alias(lseek64)
 lt_libc_hidden(lseek64)
 #endif
diff --git a/libc/sysdeps/linux/common/pread_write.c b/libc/sysdeps/linux/common/pread_write.c
index dd5d36c..25899d3 100644
--- a/libc/sysdeps/linux/common/pread_write.c
+++ b/libc/sysdeps/linux/common/pread_write.c
@@ -81,6 +81,8 @@ CANCELLABLE_SYSCALL(ssize_t, pwrite64, (int fd, const void *buf, size_t count, o
 #  ifdef __LINUXTHREADS_OLD__
 weak_alias(pread,pread64)
 weak_alias(pwrite,pwrite64)
+lt_strong_alias(pread64)
+lt_strong_alias(pwrite64)
 #  else
 strong_alias_untyped(pread,pread64)
 strong_alias_untyped(pwrite,pwrite64)
diff --git a/libpthread/linuxthreads.old/wrapsyscall.c b/libpthread/linuxthreads.old/wrapsyscall.c
index e276488..668b391 100644
--- a/libpthread/linuxthreads.old/wrapsyscall.c
+++ b/libpthread/linuxthreads.old/wrapsyscall.c
@@ -1,4 +1,4 @@
-/* Wrapper arpund system calls to provide cancellation points.
+/* Wrapper around system calls to provide cancellation points.
    Copyright (C) 1996,1997,1998,1999,2000,2001 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper at cygnus.com>, 1996.
@@ -80,7 +80,7 @@ CANCELABLE_SYSCALL (int, close, (int fd), (fd))
 CANCELABLE_SYSCALL_VA (int, fcntl, (int fd, int cmd, ...),
 		       (fd, cmd, va_arg (ap, long int)), cmd)
 
-#ifdef __UCLIBC_HAS_LFS__
+#if defined __UCLIBC_HAS_LFS__ && __WORDSIZE == 32
 /* fcntl64(2).  */
 CANCELABLE_SYSCALL_VA (int, fcntl64, (int fd, int cmd, ...),
 		       (fd, cmd, va_arg (ap, long int)), cmd)


More information about the uClibc mailing list