This is the mail archive of the libc-hacker@sources.redhat.com mailing list for the glibc project.

Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Fix for sigaction Bug



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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]