OSDN Git Service

Fix __sigprocmask weak symbol resolution with gcc4.
authorPaul Mundt <lethal@linux-sh.org>
Mon, 2 May 2005 13:48:27 +0000 (13:48 -0000)
committerPaul Mundt <lethal@linux-sh.org>
Mon, 2 May 2005 13:48:27 +0000 (13:48 -0000)
This popped up during a build with gcc4:

/home/pmundt/devel/svn/buildroot/build_sh2a_nofpueb/staging_dir/bin/sh2a_nofpueb-linux-uclibc-gcc -Wall -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fstrict-aliasing -mprefergot -Os -funit-at-a-time    -mb -m2a-nofpu -fno-builtin -nostdinc -D_LIBC -I../../../../include -I. -isystem /home/pmundt/devel/svn/buildroot/build_sh2a_nofpueb/staging_dir/lib/gcc/sh2a_nofpueb-linux-uclibc/4.0.0/include -DNDEBUG -I../ -c longjmp.c -o longjmp.o
/tmp/ccWyQbux.s: Assembler messages:
/tmp/ccWyQbux.s:45: Error: Local symbol `__sigprocmask' can't be equated to undefined symbol `sigprocmask'
make[5]: *** [longjmp.o] Error 1
make[5]: Leaving directory `/home/pmundt/devel/svn/buildroot/toolchain_build_sh2a_nofpueb/uClibc/libc/sysdeps/linux/sh'

Stupid gcc.

libc/sysdeps/linux/sh/__longjmp.S
libc/sysdeps/linux/sh/longjmp.c

index 7e2b0b1..1bab16c 100644 (file)
@@ -62,3 +62,5 @@ __longjmp:
 #endif         
 .size __longjmp,.-__longjmp;
 
+.weak __sigprocmask
+__sigprocmask = sigprocmask
index dd4f684..14e32d5 100644 (file)
@@ -44,4 +44,3 @@ void __libc_siglongjmp (sigjmp_buf env, int val)
 __asm__(".weak longjmp; longjmp = __libc_siglongjmp");
 __asm__(".weak _longjmp; _longjmp = __libc_siglongjmp");
 __asm__(".weak siglongjmp; siglongjmp = __libc_siglongjmp");
-__asm__(".weak __sigprocmask; __sigprocmask = sigprocmask");