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

From: Daniel Eischen <deischen_at_freebsd.org>
Date: Sun, 8 Apr 2007 00:07:48 -0400 (EDT)
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
_at__at_ -21,6 +21,7 _at__at_
  DPADD=		${LIBC_PIC}
  LDADD=		-lc_pic

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

  .if exists(${.CURDIR}/${MACHINE_ARCH}/Makefile.inc)
  .include "${.CURDIR}/${MACHINE_ARCH}/Makefile.inc"
Received on Sun Apr 08 2007 - 02:24:10 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:08 UTC