Bug 2154772

Summary: binutils-devel is missing libiberty.a, but ships libiberty.h
Product: Red Hat Enterprise Linux 9 Reporter: Miloš Prchlík <mprchlik>
Component: binutilsAssignee: Nick Clifton <nickc>
binutils sub component: system-version QA Contact: Miloš Prchlík <mprchlik>
Status: CLOSED ERRATA Docs Contact:
Severity: unspecified    
Priority: unspecified CC: fweimer, mcermak, mprchlik, ohudlick, sipoyare
Version: 9.2Keywords: Bugfix, Triaged
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: binutils-2.35.2-33.el9 Doc Type: No Doc Update
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2023-05-09 08:24:17 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Miloš Prchlík 2022-12-19 08:11:05 UTC
Description of problem:

binutils-devel RPM no longer ships libiberty.a:

[root@localhost SPECS]# rpm -q --provides binutils
binutils = 2.35.2-32.el9
binutils(x86-64) = 2.35.2-32.el9
bundled(libiberty)
libbfd-2.35.2-32.el9.so()(64bit)
libctf-nobfd.so.0()(64bit)
libctf-nobfd.so.0(LIBCTF_1.0)(64bit)
libctf.so.0()(64bit)
libctf.so.0(LIBCTF_1.0)(64bit)
libopcodes-2.35.2-32.el9.so()(64bit)
[root@localhost SPECS]# 

[root@localhost SPECS]# rpm -ql binutils-devel
/usr/include/ansidecl.h
/usr/include/bfd.h
/usr/include/bfd_stdint.h
/usr/include/bfdlink.h
/usr/include/ctf-api.h
/usr/include/ctf.h
/usr/include/demangle.h
/usr/include/diagnostics.h
/usr/include/dis-asm.h
/usr/include/libiberty.h
/usr/include/plugin-api.h
/usr/include/symcat.h
/usr/lib64/libbfd.a
/usr/lib64/libbfd.so
/usr/lib64/libctf-nobfd.a
/usr/lib64/libctf-nobfd.la
/usr/lib64/libctf.a
/usr/lib64/libctf.la
/usr/lib64/libopcodes.a
/usr/lib64/libopcodes.so
[root@localhost SPECS]# 

The file seems to be missing yet announced in Provides, and it seems to be related to recent cross-binutils works. binutils-2.35.2-26 does ship it, binutils-2.35.2-27.el9 does not.

According to specfile, libiberty.a is build and installed, but then it's removed, unlike some other files:

 869 %else
 870 # For cross-binutils we drop the documentation.
 871 rm -rf %{buildroot}%{_infodir}
 872 # We keep these as one can have native + cross binutils of different versions.
 873 #rm -rf {buildroot}{_prefix}/share/locale
 874 #rm -rf {buildroot}{_mandir}
 875 rm -rf %{buildroot}%{_libdir}/libiberty.a
 876 # Remove libtool files, which reference the .so libs
 877 rm -f %{buildroot}%{_libdir}/*.la
 878 %endif


I'm not sure whether this is on purpose, in any case it might affect builds of other packages, I for one ran into this dyninst build issue:

-- ElfUtils includes: /usr/include;/usr/include/elfutils;/usr/include/elfutils
-- ElfUtils library dirs: /usr/lib64;/usr/lib64/elfutils;/usr/lib64;/usr/lib64;/usr/lib64/elfutils
-- ElfUtils libraries: /usr/lib64/libelf.so.1;/usr/lib64/libdw.so.1;/usr/lib64/libdebuginfod.so.1
CMake Error at /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
  Could NOT find LibIberty (missing: LibIberty_LIBRARIES)
Call Stack (most recent call first):
  /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE)
  cmake/Modules/FindLibIberty.cmake:64 (find_package_handle_standard_args)
  cmake/LibIberty.cmake:44 (find_package)
  CMakeLists.txt:40 (include)


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

binutils-2.35.2-32.el9


How reproducible:


Steps to Reproduce:
1.
2.
3.

Actual results:


Expected results:


Additional info:

Comment 1 Nick Clifton 2022-12-19 10:49:54 UTC
Fixed in binutils-2.35.2-33.el9

Comment 2 Miloš Prchlík 2022-12-19 12:10:09 UTC
First attempt with dyninst looks good, no more complaints about libiberty.a missing \o/ :)

Comment 7 Miloš Prchlík 2022-12-20 08:47:17 UTC
Verified with binutils-2.35.2-33.el9

Comment 9 errata-xmlrpc 2023-05-09 08:24:17 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (binutils bug fix and enhancement update), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2023:2548