Bug 810002 - bad library build: libreport_g_verbose unresolved from libabrt.so.0
Summary: bad library build: libreport_g_verbose unresolved from libabrt.so.0
Alias: None
Product: Fedora
Classification: Fedora
Component: abrt
Version: 17
Hardware: x86_64
OS: Linux
Target Milestone: ---
Assignee: abrt
QA Contact: Fedora Extras Quality Assurance
Depends On:
TreeView+ depends on / blocked
Reported: 2012-04-04 20:40 UTC by John Reiser
Modified: 2013-02-26 02:36 UTC (History)
8 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Last Closed: 2013-01-12 01:14:42 UTC
Type: Bug

Attachments (Terms of Use)

Description John Reiser 2012-04-04 20:40:01 UTC
Description of problem: In /var/log/prelink/prelink.log, prelink reports:
  /usr/sbin/prelink: Warning: /lib64/libabrt.so.0 has undefined non-weak symbols
One such symbol is libreport_g_verbose which is defined in libreport.so.0.  If an app uses libabrt without also using libreport, then the app will crash when referencing libreport_g_verbose.  libabrt relies on libreport to supply the definition of libreport_g_verbose, so libabrt should record the dependency with DT_NEED (build with "-lreport").

Version-Release number of selected component (if applicable):

How reproducible: every time

Steps to Reproduce:
1. readelf --symbols /usr/lib*/libabrt.so.0    |  grep libreport_g_verbose
   readelf --symbols /usr/lib*/libreport.so.0  |  grep libreport_g_verbose
2. ldd /usr/lib64/libabrt.so.0
Actual results:
1. UNDefined in libabrt, defined in libreport:
$ readelf --symbols /usr/lib*/libabrt.so.0    |  grep libreport_g_verbose
    51: 0000000000000000     0 NOTYPE  GLOBAL DEFAULT  UND libreport_g_verbose
$ readelf --symbols /usr/lib*/libreport.so.0  |  grep libreport_g_verbose
   162: 0000003da1615828     4 OBJECT  GLOBAL DEFAULT   24 libreport_g_verbose

2. libabrt does not DT_NEED libreport:
$ ldd /usr/lib64/libabrt.so.0
	linux-vdso.so.1 =>  (0x00007fff997ff000)
	libglib-2.0.so.0 => /lib64/libglib-2.0.so.0 (0x0000003d99000000)
	libc.so.6 => /lib64/libc.so.6 (0x0000003d97400000)
	libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003d97c00000)
	librt.so.1 => /lib64/librt.so.1 (0x0000003d98400000)
	/lib64/ld-linux-x86-64.so.2 (0x0000003d97000000)

Expected results: libabrt depends on libreport.

Additional info:

Comment 1 Nikola Pajkovsky 2012-05-15 11:32:49 UTC
commit 6c96fe597fb578f59efc36e39487dbbfc6f9e4b6
Author: Nikola Pajkovsky <npajkovs>
Date:   Tue May 15 13:27:08 2012 +0200

    libabrt: link with libreport
    Signed-off-by: Nikola Pajkovsky <npajkovs>

$ readelf --symbols /usr/lib*/libabrt.so.0 | grep libreport_g_verbose
    52: 0000000000000000     0 OBJECT  GLOBAL DEFAULT  UND libreport_g_verbose

$ ldd /usr/lib*/libabrt.so.0
	linux-vdso.so.1 =>  (0x00007fff50f55000)
	libreport.so.0 => /lib64/libreport.so.0 (0x0000003bfd400000)
	libglib-2.0.so.0 => /lib64/libglib-2.0.so.0 (0x00000037f9000000)
	libc.so.6 => /lib64/libc.so.6 (0x00000037f7000000)
	libpthread.so.0 => /lib64/libpthread.so.0 (0x00000037f7400000)
	librt.so.1 => /lib64/librt.so.1 (0x00000037f7c00000)
	libelf.so.1 => /lib64/libelf.so.1 (0x00000037f8c00000)
	/lib64/ld-linux-x86-64.so.2 (0x00000037f6c00000)

Do I missing something?

Comment 2 John Reiser 2012-05-15 15:03:43 UTC
Things look OK now because "ldd libabrt.so.0" does include the line:
 libreport.so.0 => /lib64/libreport.so.0 (0x0000003bfd400000)
which means that libreport.so.0 is required to be loaded by libabrt.so.0.

Direct confirmation would be if libreport.so.0 is listed as DT_NEEDED by libabrt:
  $ readelf --dynamic libabrt.so.0  |  grep '(NEEDED)'
    0x0000000000000001 (NEEDED)             Shared library: [libreport.so.0]

Comment 3 Fedora Update System 2012-12-20 08:53:56 UTC
abrt-2.0.20-1.fc18,btparser-0.24-1.fc18,libreport-2.0.20-1.fc18 has been submitted as an update for Fedora 18.

Comment 4 Fedora Update System 2012-12-20 09:44:31 UTC
abrt-2.0.20-1.fc17 has been submitted as an update for Fedora 17.

Comment 5 Fedora Update System 2012-12-21 01:28:00 UTC
Package abrt-2.0.20-1.fc18, btparser-0.24-1.fc18, libreport-2.0.20-1.fc18:
* should fix your issue,
* was pushed to the Fedora 18 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing abrt-2.0.20-1.fc18 btparser-0.24-1.fc18 libreport-2.0.20-1.fc18'
as soon as you are able to.
Please go to the following url:
then log in and leave karma (feedback).

Comment 6 Fedora Update System 2013-01-12 01:14:46 UTC
abrt-2.0.20-1.fc18, btparser-0.24-1.fc18, libreport-2.0.20-1.fc18 has been pushed to the Fedora 18 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 7 Fedora Update System 2013-02-26 02:36:49 UTC
abrt-2.0.20-1.fc17, btparser-0.24-1.fc17, libreport-2.0.20-1.fc17 has been pushed to the Fedora 17 stable repository.  If problems still persist, please make note of it in this bug report.

Note You need to log in before you can comment on or make changes to this bug.