Fix for sigaction Bug
Andreas Jaeger
aj@suse.de
Mon Jul 10 05:04:00 GMT 2000
Compiling statically I received:
/builds/glibc/20000621-static/libc.a(sigaction.o): In function `__libc_sigaction':
/usr/src/cvs/libc/signal/../sysdeps/unix/sysv/linux/i386/sigaction.c:69: multiple definition of `__sigaction'
/builds/glibc/20000621-static/linuxthreads/libpthread.a(signals.o):/usr/src/cvs/libc/linuxthreads/signals.c:136: first defined here
/opt/binutils/bin/ld: Warning: size of symbol `__sigaction' changed from 231 to 470 in sigaction.o
collect2: ld returned 1 exit status
make[2]: *** [/builds/glibc/20000621-static/nscd/nscd] Error 1
make[2]: Leaving directory `/usr/src/cvs/libc/nscd'
The appended patch fixes this problem. Ok to commit?
Andreas
2000-07-10 Andreas Jaeger <aj@suse.de>
* sysdeps/unix/sysv/linux/i386/sigaction.c: Make alias weak since
it's overridden by libpthreads.
* sysdeps/unix/sysv/linux/sigaction.c: Likewise.
* sysdeps/unix/sysv/linux/arm/sigaction.c: Likewise.
* sysdeps/unix/sysv/linux/ia64/sigaction.c: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c: Likewise.
============================================================
Index: sysdeps/unix/sysv/linux/ia64/sigaction.c
--- sysdeps/unix/sysv/linux/ia64/sigaction.c 2000/07/07 02:19:05 1.3
+++ sysdeps/unix/sysv/linux/ia64/sigaction.c 2000/07/10 11:53:26
@@ -50,5 +50,5 @@
CHECK_1opt (act), CHECK_1opt (oact), _NSIG / 8);
}
-strong_alias (__libc_sigaction, __sigaction)
+weak_alias (__libc_sigaction, __sigaction)
weak_alias (__libc_sigaction, sigaction)
============================================================
Index: sysdeps/unix/sysv/linux/sigaction.c
--- sysdeps/unix/sysv/linux/sigaction.c 2000/07/10 07:11:09 1.17
+++ sysdeps/unix/sysv/linux/sigaction.c 2000/07/10 11:53:26
@@ -133,5 +133,5 @@
#endif
}
-strong_alias (__libc_sigaction, __sigaction)
+weak_alias (__libc_sigaction, __sigaction)
weak_alias (__libc_sigaction, sigaction)
============================================================
Index: sysdeps/unix/sysv/linux/arm/sigaction.c
--- sysdeps/unix/sysv/linux/arm/sigaction.c 2000/07/07 02:19:05 1.5
+++ sysdeps/unix/sysv/linux/arm/sigaction.c 2000/07/10 11:53:27
@@ -149,5 +149,5 @@
return result;
}
-strong_alias (__libc_sigaction, __sigaction)
+weak_alias (__libc_sigaction, __sigaction)
weak_alias (__libc_sigaction, sigaction)
============================================================
Index: sysdeps/unix/sysv/linux/i386/sigaction.c
--- sysdeps/unix/sysv/linux/i386/sigaction.c 2000/07/07 02:19:05 1.25
+++ sysdeps/unix/sysv/linux/i386/sigaction.c 2000/07/10 11:53:27
@@ -148,7 +148,7 @@
#endif
}
-strong_alias (__libc_sigaction, __sigaction)
+weak_alias (__libc_sigaction, __sigaction)
weak_alias (__libc_sigaction, sigaction)
/* NOTE: Please think twice before making any changes to the bits of
============================================================
Index: sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c
--- sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c 2000/07/07 00:47:17 1.11
+++ sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c 2000/07/10 11:53:27
@@ -135,7 +135,7 @@
return -1;
}
-strong_alias (__libc_sigaction, __sigaction);
+weak_alias (__libc_sigaction, __sigaction);
weak_alias (__libc_sigaction, sigaction);
static void
============================================================
Index: sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c
--- sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c 2000/07/07 02:19:06 1.6
+++ sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c 2000/07/10 11:53:27
@@ -64,7 +64,7 @@
return ret;
}
-strong_alias (__libc_sigaction, __sigaction);
+weak_alias (__libc_sigaction, __sigaction);
weak_alias (__libc_sigaction, sigaction);
static void
--
Andreas Jaeger
SuSE Labs aj@suse.de
private aj@arthur.inka.de
More information about the Libc-hacker
mailing list