From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 8184 invoked by alias); 26 Aug 2004 12:06:42 -0000 Mailing-List: contact libc-hacker-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-hacker-owner@sources.redhat.com Received: (qmail 8156 invoked from network); 26 Aug 2004 12:06:40 -0000 Received: from unknown (HELO Cantor.suse.de) (195.135.220.2) by sourceware.org with SMTP; 26 Aug 2004 12:06:40 -0000 Received: from hermes.suse.de (hermes-ext.suse.de [195.135.221.8]) (using TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (168/168 bits)) (No client certificate requested) by Cantor.suse.de (Postfix) with ESMTP id AA26AB0398E; Thu, 26 Aug 2004 14:06:39 +0200 (CEST) Date: Thu, 26 Aug 2004 12:06:00 -0000 From: Thorsten Kukuk To: Roland McGrath Cc: libc-hacker@sources.redhat.com Subject: Re: Questions about __thread for NSS modules Message-ID: <20040826120638.GA20764@suse.de> References: <20040826095808.GA6880@suse.de> <200408261020.i7QAKVE9018030@magilla.sf.frob.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200408261020.i7QAKVE9018030@magilla.sf.frob.com> Organization: SuSE Linux AG, Nuernberg, Germany User-Agent: Mutt/1.5.6i X-SW-Source: 2004-08/txt/msg00078.txt.bz2 On Thu, Aug 26, Roland McGrath wrote: > > My question is: is this possible at all in NSS modules like libnss_nis.so? > > Sure. > > > Do I need to link against libpthread? > > No. > > > My first try ends in a unresolved "__tls_get_addr" symbol when I try to > > link the module. > > I'll assume that's actually ___tls_get_addr if you're on x86. > This suggests your dynamic linker is not built with TLS support. > It defines that symbol. I know and it is there: firun:/usr/src/packages/BUILD/glibc-2.3/cc-nptl# nm elf/ld.so |grep __tls_get_addr 0000f010 T ___tls_get_addr 0000f770 T __tls_get_addr 0000f010 t ___tls_get_addr_internal But when linking the NSS modules, I get the following error: gcc -shared -static-libgcc -Wl,-O1 -Wl,-z,defs -Wl,-dynamic-linker=/lib/ld-linux.so.2 -B/usr/src/packages/BUILD/glibc-2.3/cc-nptl/csu/ -Wl,--version-script=/usr/src/packages/BUILD/glibc-2.3/cc-nptl/libnss _nis.map -Wl,-soname=libnss_nis.so.2 -Wl,-z,combreloc -Wl,-z,relro -L/usr/src/packages/BUILD/glibc-2.3/cc-nptl -L/usr/src/packages/BUILD/glibc-2.3/cc-nptl/math -L/usr/src/packages/BUILD/glibc-2.3/cc-nptl/elf -L/usr/src/packages/BUILD/glibc-2.3/cc-nptl/dlfcn -L/usr/src/packages/BUILD/glibc-2.3/cc-nptl/nss -L/usr/src/packages/BUILD/glibc-2.3/cc-nptl/nis -L/usr/src/packages/BUILD/glibc-2.3/cc-nptl/rt -L/usr/src/packa ges/BUILD/glibc-2.3/cc-nptl/resolv -L/usr/src/packages/BUILD/glibc-2.3/cc-nptl/crypt -L/usr/src/packages/BUILD/glibc-2.3/cc-nptl/nptl -Wl,-rpath-link=/usr/src/packages/BUILD/glibc-2.3/cc-nptl:/usr/src/packages /BUILD/glibc-2.3/cc-nptl/math:/usr/src/packages/BUILD/glibc-2.3/cc-nptl/elf:/usr/src/packages/BUILD/glibc-2.3/cc-nptl/dlfcn:/usr/src/packages/BUILD/glibc-2.3/cc-nptl/nss:/usr/src/packages/BUILD/glibc-2.3/cc-np tl/nis:/usr/src/packages/BUILD/glibc-2.3/cc-nptl/rt:/usr/src/packages/BUILD/glibc-2.3/cc-nptl/resolv:/usr/src/packages/BUILD/glibc-2.3/cc-nptl/crypt:/usr/src/packages/BUILD/glibc-2.3/cc-nptl/nptl -o /usr/src/p ackages/BUILD/glibc-2.3/cc-nptl/nis/libnss_nis.so -T /usr/src/packages/BUILD/glibc-2.3/cc-nptl/shlib.lds /usr/src/packages/BUILD/glibc-2.3/cc-nptl/csu/abi-note.o /usr/src/packages/BUILD/glibc-2.3/cc-nptl/csu/s use-note.o -Wl,--whole-archive /usr/src/packages/BUILD/glibc-2.3/cc-nptl/nis/libnss_nis_pic.a -Wl,--no-whole-archive /usr/src/packages/BUILD/glibc-2.3/cc-nptl/elf/interp.os /usr/src/packages/BUILD/glibc-2.3/cc -nptl/nis/libnsl.so.1 /usr/src/packages/BUILD/glibc-2.3/cc-nptl/nss/libnss_files.so /usr/src/packages/BUILD/glibc-2.3/cc-nptl/libc.so /usr/src/packages/BUILD/glibc-2.3/cc-nptl/libc_nonshared.a /usr/src/packages/BUILD/glibc-2.3/cc-nptl/nis/libnss_nis_pic.a(nis-proto.os)(.text+0x1a): In function `internal_nis_endprotoent': nss_nis/nis-proto.c:76: undefined reference to `___tls_get_addr' /usr/src/packages/BUILD/glibc-2.3/cc-nptl/nis/libnss_nis_pic.a(nis-proto.os)(.text+0x93): In function `_nss_nis_endprotoent': nss_nis/nis-proto.c:123: undefined reference to `___tls_get_addr' /usr/src/packages/BUILD/glibc-2.3/cc-nptl/nis/libnss_nis_pic.a(nis-proto.os)(.text+0x417): In function `internal_nis_setprotoent': nss_nis/nis-proto.c:98: undefined reference to `___tls_get_addr' /usr/src/packages/BUILD/glibc-2.3/cc-nptl/nis/libnss_nis_pic.a(nis-proto.os)(.text+0x470): In function `_nss_nis_getprotoent_r': nss_nis/nis-proto.c:137: undefined reference to `___tls_get_addr' /usr/src/packages/BUILD/glibc-2.3/cc-nptl/nis/libnss_nis_pic.a(nis-proto.os)(.text+0x63e): In function `saveit': nss_nis/nis-proto.c:60: undefined reference to `___tls_get_addr' /usr/src/packages/BUILD/glibc-2.3/cc-nptl/nis/libnss_nis_pic.a(nis-proto.os)(.text+0x65c):nss_nis/nis-proto.c:64: more undefined references to `___tls_get_addr' follow collect2: ld returned 1 exit status make[2]: *** [/usr/src/packages/BUILD/glibc-2.3/cc-nptl/nis/libnss_nis.so] Error 1 -- Thorsten Kukuk http://www.suse.de/~kukuk/ kukuk@suse.de SuSE Linux AG Maxfeldstr. 5 D-90409 Nuernberg -------------------------------------------------------------------- Key fingerprint = A368 676B 5E1B 3E46 CFCE 2D97 F8FD 4E23 56C6 FB4B