- To: libc-gnats at gnu dot org, gnats-admin at gnu dot org
- Subject: libc/2271: sln core dumps: bugs of libc-start.c on powerpc?
- From: ekato at ees dot hokudai dot ac dot jp
- Date: Thu, 17 May 2001 17:05:02 -0400
Note: There was a bad value `' for the field `Class'.
It was set to the default value of `sw-bug'.
Note: There was a bad value `' for the field `Priority'.
It was set to the default value of `medium'.
Note: There was a bad value `' for the field `Severity'.
It was set to the default value of `serious'.
>Number: 2271
>Category: libc
>Synopsis: sln core dumps during installation of glibc-2.2.3 on ppc
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: libc-gnats
>State: open
>Quarter:
>Keywords:
>Class: sw-bug
>Submitter-Id: unknown
>Arrival-Date: Thu May 17 17:05:02 -0400 2001
>Cases:
>Originator:
>Release: libc-2.2.3
>Organization:
>
>Environment:
Host type: powerpc-redhat-linux-gnu
System: Linux hackun 2.0.39-osfmach3 #41 2001年 5月14日(月) 04時58分09秒 JST ppc unknown
Architecture: ppc
Addons: linuxthreads
Build CFLAGS: -DNDEBUG=1 -g -O2
Build CC: gcc
Compiler version: 2.95.3 19991030 (prerelease/franzo/20001030)
Kernel headers: 2.2.14
Symbol versioning: yes
Build static: yes
Build shared: yes
Build pic-default: no
Build profile: yes
Build omitfp: no
Build bounded: no
Build static-nss: no
Stdio: libio
>Description:
After all compilation of glibc-2.2.3 on powerpc linux,
installation was stopped by segmentation fault of sln. It seems
all staticaly linked binary also core dumps.
By gdb, they are segmentation faulted at atexit.
>How-To-Repeat:
>Fix:
If I change sysdeps/powerpc/elf/libc-start.c as following, it works
without problem.
--- glibc-2.2.3.orig/sysdeps/powerpc/elf/libc-start.c Fri May 18 03:51:35 2001
+++ glibc-2.2.3/sysdeps/powerpc/elf/libc-start.c Fri May 18 04:34:57 2001
@@ -90,7 +90,7 @@
/* Register the destructor of the dynamic linker if there is any. */
if (rtld_fini != NULL)
- atexit (rtld_fini);
+ __cxa_atexit ((void (*) (void *)) rtld_fini, NULL, NULL);
/* Call the initializer of the libc. */
#ifdef SHARED
@@ -101,7 +101,7 @@
/* Register the destructor of the program, if any. */
if (stinfo->fini)
- atexit (stinfo->fini);
+ __cxa_atexit ((void (*) (void *)) stinfo->fini, NULL, NULL);
/* Call the initializer of the program, if any. */
#ifdef SHARED