Bug 433900

Summary: undefined symbol: _start in libmudflapth
Product: [Fedora] Fedora Reporter: kloczek
Component: gccAssignee: Jakub Jelinek <jakub>
Status: CLOSED DUPLICATE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: urgent Docs Contact:
Priority: low    
Version: rawhide   
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2008-02-22 08:01:27 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description kloczek 2008-02-22 01:18:16 UTC
$ rpm -q libmudflap
libmudflap-4.3.0-0.10.i386

Looks like libmudflap from gcc 4.3.0-0.10 is broken:

$ LD_DEBUG=all civserver 
[..]
    28367:	symbol=_start;  lookup in file=civserver [0]
     28367:	symbol=_start;  lookup in file=/lib/libreadline.so.5 [0]
     28367:	symbol=_start;  lookup in file=/usr/lib/libbind.so.4 [0]
     28367:	symbol=_start;  lookup in file=/lib/libm.so.6 [0]
     28367:	symbol=_start;  lookup in file=/lib/libz.so.1 [0]
     28367:	symbol=_start;  lookup in file=/lib/libc.so.6 [0]
     28367:	symbol=_start;  lookup in file=/lib/libtinfo.so.5 [0]
     28367:	symbol=_start;  lookup in file=/usr/lib/libmudflapth.so.0 [0]
     28367:	symbol=_start;  lookup in file=/lib/libnsl.so.1 [0]
     28367:	symbol=_start;  lookup in file=/lib/libpthread.so.0 [0]
     28367:	symbol=_start;  lookup in file=/lib/ld-linux.so.2 [0]
     28367:	symbol=_start;  lookup in file=/lib/libdl.so.2 [0]
     28367:	symbol=_start;  lookup in file=/lib/libgcc_s.so.1 [0]
     28367:	/usr/lib/libmudflapth.so.0: error: symbol lookup error: undefined
symbol: _start (fatal)
civserver: symbol lookup error: /usr/lib/libmudflapth.so.0: undefined symbol: _start

Comment 1 Jakub Jelinek 2008-02-22 08:01:27 UTC
That would mean you have some library linked with libmudflapth, -lmudflapth must
be linked only to the binary itself.

Comment 2 kloczek 2008-02-22 09:04:35 UTC
(In reply to comment #1)
> That would mean you have some library linked with libmudflapth, -lmudflapth must
> be linked only to the binary itself.

[kloczek@localhost ~]$ objdump -x /usr/bin/civserver  | grep NEEDED
  NEEDED      libreadline.so.5
  NEEDED      libbind.so.4
  NEEDED      libm.so.6
  NEEDED      libz.so.1
  NEEDED      libc.so.6
  VERNEED     0x8049388
  VERNEEDNUM  0x2
[kloczek@localhost ~]$ ldd /usr/lib/libbind.so.4
	linux-gate.so.1 =>  (0x00110000)
	libmudflapth.so.0 => /usr/lib/libmudflapth.so.0 (0x006bb000)
	libnsl.so.1 => /lib/libnsl.so.1 (0x00cfd000)
	libpthread.so.0 => /lib/libpthread.so.0 (0x0057a000)
	libc.so.6 => /lib/libc.so.6 (0x003d7000)
	libdl.so.2 => /lib/libdl.so.2 (0x00573000)
	libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x006ab000)
	/lib/ld-linux.so.2 (0x003b4000)

As you see libmudflapth is used indirectly because it is used by libbind.
Is it really requires -lmudflapth on lining civserver binary ?
What about case when civserver will be linked with -lmudflapth and
-Wl,--as-needed ? IIRC it will still produce binary without direct libmudflapth
dependency in ELF NEEDED list (?)

Interesting but seems libmudflapth is probably used only by bind:

[root@localhost]# LANG= rpm -e libmudflap-4.3.0-0.10.i386
error: Failed dependencies:
	libmudflapth.so.0 is needed by (installed) bind-libs-9.5.0-28.b2.fc9.i386
	libmudflapth.so.0 is needed by (installed) bind-utils-9.5.0-28.b2.fc9.i386

# LANG= rpm -q --qf "%{NAME}\t%{INSTALLTIME:date}\n" freeciv bind-libs libmudflap
freeciv	        Mon Feb 11 13:57:14 2008
bind-libs	Thu Feb 21 19:45:39 2008
libmudflap	Fri Feb 21 19:44:05 2008

So looking on install time bug is observed on my system after bind-libs and
libmudflap upgrade and probably libmudflap from gcc 4.3.0-0.9 was correct (I
can't find older binaries libmudflap anf bind-libs packages for make some
regression this case on this system yum was used without enabled repackaging on
upgrade).

IIRC libmudflap is some kind of debugging/instrumentation library so is it
linking with this library any production bind binary isn't in this case bug ?
Probably libmudflap is correct but latest bind-libs was starting use libmudflap.
If yes fix for this bug can e performed by reverting use libmudflap.


Comment 3 Jakub Jelinek 2008-02-22 09:15:21 UTC
Then you need to bug bind maintainer about it.  In F9 no package in the distro
should be linked with libmudflap*, as you said correctly it is a
debugging/instrumentation library.

Comment 4 Adam Tkac 2008-02-24 13:36:13 UTC

*** This bug has been marked as a duplicate of 434159 ***