[PATCH] Fix statically linked apps dlopening AT_SYSINFO using libs
Jakub Jelinek
jakub@redhat.com
Thu Jan 16 17:36:00 GMT 2003
Hi!
When statically linked application dlopens (e.g. for NSS or iconv) libc.so
which uses %gs:0x10 ENTER_KERNEL, it segfaults the first time one of the
syscalls in the libraries is called.
The following patch fixes it.
2003-01-16 Jakub Jelinek <jakub@redhat.com>
linuxthreads/
* sysdeps/i386/tls.h (INIT_SYSINFO): Initialize head->sysinfo even
if not SHARED.
nptl/
* sysdeps/i386/tls.h (INIT_SYSINFO): Initialize _head->sysinfo even
if not SHARED.
--- libc/linuxthreads/sysdeps/i386/tls.h.jj 2002-12-31 11:46:38.000000000 +0100
+++ libc/linuxthreads/sysdeps/i386/tls.h 2003-01-16 16:29:07.000000000 +0100
@@ -1,5 +1,5 @@
/* Definition for thread-local data handling. linuxthreads/i386 version.
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2003 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -182,7 +182,7 @@ TLS_DO_MODIFY_LDT_KERNEL_CHECK(
TLS_DO_MODIFY_LDT ((descr), 0)
# endif
-#if defined NEED_DL_SYSINFO && defined SHARED
+#if defined NEED_DL_SYSINFO
# define INIT_SYSINFO \
head->sysinfo = GL(dl_sysinfo)
#else
--- libc/nptl/sysdeps/i386/tls.h.jj 2002-12-29 20:21:57.000000000 +0100
+++ libc/nptl/sysdeps/i386/tls.h 2003-01-16 16:29:49.000000000 +0100
@@ -1,5 +1,5 @@
/* Definition for thread-local data handling. nptl/i386 version.
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2003 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -161,7 +161,7 @@ union user_desc_init
# define TLS_LOAD_EBX
# endif
-#if defined NEED_DL_SYSINFO && defined SHARED
+#if defined NEED_DL_SYSINFO
# define INIT_SYSINFO \
_head->sysinfo = GL(dl_sysinfo)
#else
Jakub
More information about the Libc-hacker
mailing list