From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27805 invoked by alias); 4 Sep 2012 21:32:51 -0000 Received: (qmail 27701 invoked by uid 22791); 4 Sep 2012 21:32:49 -0000 X-SWARE-Spam-Status: No, hits=-2.9 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00,KHOP_THREADED,SARE_MLB_Stock5,TW_LG X-Spam-Check-By: sourceware.org Received: from localhost (HELO sourceware.org) (127.0.0.1) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 04 Sep 2012 21:32:34 +0000 From: "hjl.tools at gmail dot com" To: glibc-bugs@sources.redhat.com Subject: [Bug dynamic-link/14370] ld.so crashes on mismatched TLS/non-TLS symbols Date: Tue, 04 Sep 2012 21:32:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: glibc X-Bugzilla-Component: dynamic-link X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: hjl.tools at gmail dot com X-Bugzilla-Status: REOPENED X-Bugzilla-Priority: P2 X-Bugzilla-Assigned-To: unassigned at sourceware dot org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: X-Bugzilla-URL: http://sourceware.org/bugzilla/ Auto-Submitted: auto-generated Content-Type: text/plain; charset="UTF-8" MIME-Version: 1.0 Mailing-List: contact glibc-bugs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: glibc-bugs-owner@sourceware.org X-SW-Source: 2012-09/txt/msg00027.txt.bz2 http://sourceware.org/bugzilla/show_bug.cgi?id=14370 --- Comment #17 from H.J. Lu 2012-09-04 21:32:31 UTC --- Created attachment 6624 --> http://sourceware.org/bugzilla/attachment.cgi?id=6624 A patch With the patch, I got [hjl@gnu-6 pr14370]$ LD_TRACE_LOADED_OBJECTS=1 LD_WARN=yes LD_BIND_NOW=yes LD_LIBRARY_VERSION=6 ./ld.so ./pr14370.so linux-gate.so.1 (0xf7ffd000) libsds_server.so => not found libxtor_threads_boost.so => not found libaldecpli.so => not found libsvdpi_exp.so => not found libstdc++.so.6 => /lib/libstdc++.so.6 (0xf7e57000) libsce_mi.so => not found libScemiDpiBridgeApi.so => not found libm.so.6 => /lib/libm.so.6 (0xf7e2c000) libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xf7e0f000) libc.so.6 => /lib/libc.so.6 (0xf7c5c000) ./ld.so (0x56555000) TLS definition `errno' mismatches non-TLS reference in ./pr14370.so (/lib/libm.so.6) undefined symbol: svSetScope (./pr14370.so) undefined symbol: svGetScope (./pr14370.so) undefined symbol: svGetCallerInfo (./pr14370.so) undefined symbol: svGetNameFromScope (./pr14370.so) undefined symbol: svGetScopeFromName (./pr14370.so) undefined symbol: DpiApiSetCallerInfo (./pr14370.so) undefined symbol: DpiApiSvSetScope (./pr14370.so) undefined symbol: CloseServerSession (./pr14370.so) undefined symbol: DpiApiAddImportXtor (./pr14370.so) undefined symbol: DpiApiRegisterSynchronizationEventXtor (./pr14370.so) undefined symbol: DpiApiSvGetUserData (./pr14370.so) undefined symbol: _ZN11xtorThreads9PostEventEPv (./pr14370.so) undefined symbol: DpiApiRegisterGroupingImportXtor (./pr14370.so) undefined symbol: _ZN11xtorThreads13InitThreadLibENS_8thread_tE (./pr14370.so) undefined symbol: DpiApiSvGetScopeFromName (./pr14370.so) undefined symbol: DpiApiSetSvScalarVal (./pr14370.so) undefined symbol: DpiApiExitHardwareSide (./pr14370.so) undefined symbol: DpiApiGetSvBitVecVal (./pr14370.so) undefined symbol: DpiApiGetSvScalarVal (./pr14370.so) undefined symbol: DpiApiSvGetCallerInfo (./pr14370.so) undefined symbol: DpiApiEnterHardwareSide (./pr14370.so) undefined symbol: DpiApiInitialize (./pr14370.so) undefined symbol: InitialiseDebugAndTrace (./pr14370.so) undefined symbol: StopConnectionManager (./pr14370.so) undefined symbol: _ZN11xtorThreads11CreateEventEPPvNS_8thread_tE (./pr14370.so) undefined symbol: StartConnectionManager (./pr14370.so) undefined symbol: DpiApiSvPutUserData (./pr14370.so) undefined symbol: DpiApiRunExportXtor (./pr14370.so) undefined symbol: DpiApiAddScopePath (./pr14370.so) undefined symbol: DpiApiRegisterExportXtor (./pr14370.so) undefined symbol: DpiApiSvGetNameFromScope (./pr14370.so) undefined symbol: DpiApiSvGetScope (./pr14370.so) undefined symbol: OpenServerSession (./pr14370.so) undefined symbol: DpiApiRegisterSynchronizationXtor (./pr14370.so) undefined symbol: _ZN11xtorThreads9WaitEventEPv (./pr14370.so) undefined symbol: DpiApiSetSvBitVecVal (./pr14370.so) [hjl@gnu-6 pr14370]$ cat x.c #if 0 #include #else int errno = 3; #endif int bar (void) { errno = 4; return errno; } [hjl@gnu-6 pr14370]$ cat main.c #include #include int main () { void *handle; int (*func)(); handle = dlopen ("./libfoo.so", RTLD_LAZY); if (!handle) { fprintf (stderr, "%s\n", dlerror()); return 1; } func = dlsym (handle, "bar"); if (func == NULL) { fprintf (stderr, "%s\n", dlerror()); return 1; } printf ("errno: %d\n", func ()); dlclose (handle); return 0; } [hjl@gnu-6 pr14370]$ make run.dynamic gcc -m32 -c -o main.o main.c gcc -m32 -L. -nostdlib -nostartfiles -o dynamic \ -Wl,-dynamic-linker=/export/build/gnu/glibc-32bit/build-i686-linux/elf/ld-linux.so.2 \ -Wl,-z,nocombreloc \ /export/build/gnu/glibc-32bit/build-i686-linux/csu/crt1.o /export/build/gnu/glibc-32bit/build-i686-linux/csu/crti.o \ `gcc -m32 --print-file-name=crtbegin.o` \ main.o /export/build/gnu/glibc-32bit/build-i686-linux/dlfcn/libdl.so -Wl,-rpath,. \ -Wl,-rpath=/export/build/gnu/glibc-32bit/build-i686-linux:/export/build/gnu/glibc-32bit/build-i686-linux/dlfcn:/export/build/gnu/glibc-32bit/build-i686-linux/rt:/export/build/gnu/glibc-32bit/build-i686-linux/nptl \ /export/build/gnu/glibc-32bit/build-i686-linux/elf/ld-linux.so.2 \ /export/build/gnu/glibc-32bit/build-i686-linux/libc.so.6 /export/build/gnu/glibc-32bit/build-i686-linux/libc_nonshared.a \ -lgcc -lgcc_eh `gcc -m32 --print-file-name=crtend.o` \ /export/build/gnu/glibc-32bit/build-i686-linux/csu/crtn.o gcc -m32 -c -o x.o x.c ./ld -m elf_i386 -shared -o libfoo.so x.o ./dynamic ./libfoo.so: non-TLS definition `errno' mismatches TLS reference in /export/build/gnu/glibc-32bit/build-i686-linux/libc.so.6 make: *** [run.dynamic] Error 1 [hjl@gnu-6 pr14370]$ Here are before and after timings of "make all" and "make check". 1. On x32; Before: 598.89user 101.05system 2:26.71elapsed 477%CPU (0avgtext+0avgdata 113240maxresident)k 986.60user 556.24system 22:57.75elapsed 111%CPU (0avgtext+0avgdata 1048804maxresident)k After: 608.99user 99.81system 2:17.10elapsed 516%CPU (0avgtext+0avgdata 113240maxresident)k 988.58user 553.93system 22:56.45elapsed 112%CPU (0avgtext+0avgdata 1048832maxresident)k 2. On x86-64: Before 526.71user 93.03system 2:15.57elapsed 457%CPU (0avgtext+0avgdata 116028maxresident)k 974.58user 544.92system 23:13.73elapsed 109%CPU (0avgtext+0avgdata 1048760maxresident)k After: 533.58user 91.94system 2:05.10elapsed 500%CPU (0avgtext+0avgdata 116028maxresident)k 977.58user 547.24system 23:05.13elapsed 110%CPU (0avgtext+0avgdata 1048920maxresident)k 3. On ia32, Before 458.18user 84.22system 1:59.10elapsed 455%CPU (0avgtext+0avgdata 119016maxresident)k 921.42user 522.70system 21:57.64elapsed 109%CPU (0avgtext+0avgdata 1048888maxresident)k After 465.45user 85.70system 1:53.79elapsed 484%CPU (0avgtext+0avgdata 119016maxresident)k 920.35user 525.40system 21:57.62elapsed 109%CPU (0avgtext+0avgdata 1048904maxresident)k -- Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.