Something's wrong with ld-elf.so.1 when SYMVER_ENABLED=true

Daniel Eischen deischen at freebsd.org
Sun Apr 8 04:24:10 UTC 2007


On Sun, 8 Apr 2007, Vladimir Kushnir wrote:

> Hi,
> Here's description. It's amd64-CURRENT. World was rebuilt last night (with 
> SYMVER_ENABLED=true set in /etc/make.conf long ago). After re-installation, 
> sudenly everything's falling on its face with segfaults, with "pam_rootok.so 
> not found", with "Can't allocate initial thread" and so on. After ld-elf.so.1 
> and ld-elf32.so.1 were replaced with old ones (from Jan 27 :-() everything 
> went and still goes on with no problems.
>
> Indeed, as simple listing (and strings) show, in new (installed => stripped) 
> ld-elf.so.1 (180 kB) vs old ld-elf.so.1.old (224 kB) lots of symbols (like 
> _DYNAMIC or .rtld_start, for one) are just absent.

I had the same problem and disabled symbol versioning in
src/libexec/rtld-elf/Makefile.  This was on i386 and caused
pam to fail and not allow any logins.

   login: in openpam_load_module(): no pam_nologin.so found
   login: pam_start(): system error

-- 
DE

Index: Makefile
===================================================================
RCS file: /opt/FreeBSD/cvs/src/libexec/rtld-elf/Makefile,v
retrieving revision 1.37
diff -u -r1.37 Makefile
--- Makefile	3 Apr 2007 19:01:06 -0000	1.37
+++ Makefile	7 Apr 2007 16:04:14 -0000
@@ -21,6 +21,7 @@
  DPADD=		${LIBC_PIC}
  LDADD=		-lc_pic

+.if 0
  .if defined(SYMVER_ENABLED)
  SYMBOL_MAPS=	${.CURDIR}/Symbol.map
  VERSION_DEF=	${.CURDIR}/Versions.def
@@ -33,6 +34,7 @@
@@ -33,6 +34,7 @@
  SYMBOL_MAPS+=	${.CURDIR}/${MACHINE_ARCH}/Symbol.map
  .endif
  .endif
+.endif

  .if exists(${.CURDIR}/${MACHINE_ARCH}/Makefile.inc)
  .include "${.CURDIR}/${MACHINE_ARCH}/Makefile.inc"



More information about the freebsd-current mailing list