Closed Bug 14241 Opened 26 years ago Closed 26 years ago

--enable-low-fat causes debug messages in dlopen() on FreeBSD

Categories

(Core :: XPCOM, defect, P3)

x86
FreeBSD
defect

Tracking

()

RESOLVED INVALID

People

(Reporter: lennox, Assigned: mcafee)

Details

When I compile with --enable-low-fat on FreeBSD, the resulting binary spews debug messages of the form: Ignored d_tag 1879048188 Ignored d_tag 1879048189 Ignored d_tag 1879048176 Ignored d_tag 1879048188 Ignored d_tag 1879048189 Ignored d_tag 1879048176 The three values cycle forever, hundreds (at least) of times. Looking at the FreeBSD source code, this debug message comes from /usr/src/libexec/rtld-elf/rtld.c, which is where dlopen() is implemented. Specifically, the error message is printed by digest_dynamic if the d_tag field of an entry in a .dynamic section isn't of a type it recognizes. The defined values for this field range from 0 to 23. objdump does indeed show that there are bogus values in the .dynamic section, the last three: bash-2.02$ objdump --full-contents --section=.dynamic libsample.so libsample.so: file format elf32-i386 Contents of section .dynamic: 8eb4 01000000 db060000 0e000000 96120000 ................ 8ec4 0c000000 d42c0000 0d000000 c4660000 .....,.......f.. 8ed4 04000000 94000000 05000000 d4020000 ................ 8ee4 06000000 44010000 0a000000 a3120000 ....D........... 8ef4 0b000000 10000000 03000000 688e0000 ............h... 8f04 02000000 58000000 14000000 11000000 ....X........... 8f14 17000000 7c2c0000 11000000 ec150000 ....|,.......... 8f24 12000000 90160000 13000000 08000000 ................ 8f34 16000000 00000000 fcffff6f b4150000 ...........o.... 8f44 fdffff6f 02000000 f0ffff6f 80150000 ...o.......o.... 8f54 00000000 00000000 ........ All .dynamic sections have those final three entries, though the values of the first and third vary. On further investigation, it looks like these are symbol versioning tags, which don't work on FreeBSD...I think the version-script method of stripping down symbol files won't work here. Can't you just use --retain-symbols-file instead? (The output with --retain-symbols-file also seems to be significantly smaller.) bash-2.02$ ld --version GNU ld 2.9.1 Copyright 1997 Free Software Foundation, Inc. This program is free software; you may redistribute it under the terms of the GNU General Public License. This program has absolutely no warranty. Supported emulations: elf_i386 bash-2.02$ uname -a FreeBSD conrail.cs.columbia.edu 3.2-RELEASE FreeBSD 3.2-RELEASE #3: Wed May 19 19:42:12 EDT 1999 rlennox@conrail.cs.columbia.edu:/usr/cvsrc/RELENG_3/src/sys/compile/CONRAIL i386
Assignee: ramiro → mcafee
cant reproduce this on linux, and dont have freebsd to test. Reassign to mcafee.
QA Contact: beppe → dp
Target Milestone: M12
Target Milestone: M12 → M13
Move to M13.
Target Milestone: M13 → M15
M15.
Status: NEW → RESOLVED
Closed: 26 years ago
Resolution: --- → INVALID
--enable-low-fat is not in configure.in, marking invalid.
You need to log in before you can comment on or make changes to this bug.