Bug 2256645 - "-z pack-relative-relocs ignored" warning on some arch but actually cause ld failure sometimes
Summary: "-z pack-relative-relocs ignored" warning on some arch but actually cause ld ...
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: redhat-rpm-config
Version: rawhide
Hardware: s390x
OS: Linux
unspecified
medium
Target Milestone: ---
Assignee: Florian Weimer
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: 2218018
TreeView+ depends on / blocked
 
Reported: 2024-01-03 15:51 UTC by Mamoru TASAKA
Modified: 2024-01-04 22:25 UTC (History)
14 users (show)

Fixed In Version: redhat-rpm-config-274-1.fc40
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2024-01-03 18:22:24 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Mamoru TASAKA 2024-01-03 15:51:34 UTC
Currently on s390x and aarch64, every gcc build shows the following warnings on s390x and aarch64,
e.g. https://koji.fedoraproject.org/koji/buildinfo?buildID=2340287

```
/usr/bin/ld: warning: -z pack-relative-relocs ignored
```

Moreover, even if this says "ignored", looks like sometimes this causes ld failure.

e.g. 
kf5-kross-interpreters-22.04.3-6.fc40: 
ld is failing with "-z pack-relative-relocs ignored":
https://koji.fedoraproject.org/koji/taskinfo?taskID=111244958
with "%undefine _ld_pack_relocs", build is successful:
https://koji.fedoraproject.org/koji/taskinfo?taskID=111245772

e.g
openbabel-3.1.1-22.fc40
same ld failure with "-z pack-relative-relocs ignored":
https://koji.fedoraproject.org/koji/taskinfo?taskID=111244359
with "%undefine _ld_pack_relocs", I try building, build is now underway, but at least the above ld error does not happen.
https://koji.fedoraproject.org/koji/taskinfo?taskID=111245910

Reproducible: Always

Comment 1 Florian Weimer 2024-01-03 16:09:31 UTC
Huh. It's there on ppc64le, but not on aarch64, s390x. I'll disable the option on aarch64 and s390x.

Comment 2 Florian Weimer 2024-01-03 18:22:24 UTC
Took longer than expected, but should be fixed with redhat-rpm-config-274-1.fc40.

Comment 3 Alessandro Astone 2024-01-04 16:44:04 UTC
This caused more damage: https://pagure.io/releng/failed-composes/issue/5773#comment-889742

The RPM ELF dependency generator missed generating the symbol versions Provides:.

I would advise anyone that built anything in rawhide on 2024/01/03 to double check their results.

Comment 4 Adam Williamson 2024-01-04 18:02:37 UTC
I'm working on getting a list of affected builds using a modified version of https://pagure.io/releng/blob/main/f/scripts/find-bad-builds.py .

Comment 5 Adam Williamson 2024-01-04 18:06:51 UTC
That list comes out as:

cockpit
egl-gbm
gutenprint
ksh
libcomps
rubygem-RedCloth
rubygem-bcrypt
rubygem-bindex
rubygem-json
rubygem-racc
xterm

sanity checking it, that looks more or less right. It's listing any build started between 2024-01-03 01:15:00 and 2024-01-03 11:00:00 (the timeframe when the bad build was tagged, with some padding) that actually had the bad build in its buildroot and also had an aarch64 build, so it's a bit over-loose - not all of those things actually have library provides.

Comment 6 Adam Williamson 2024-01-04 18:17:03 UTC
hum, seems the list is too short because builds were still getting 273-1 well after 274-1 was tagged, for some reason. will try and find a correct end bound and re-run the script.

Comment 7 Florian Weimer 2024-01-04 18:27:20 UTC
Note that the Provides: only change if something like an autoconf check goes wrong due to the warning. The warning on its own does not cause a change in linker output.

(I did test this extensively, despite running into multiple unrelated issues, but didn't watch for architecture-specific warnings.  Sorry!)

Comment 8 Adam Williamson 2024-01-04 18:41:00 UTC
Ugh, timezone issues. Here's a fixed list, again, this is just packages built with the affected redhat-rpm-config that had an aarch64 build, the script doesn't check if they had affected Provides:

Thunar
buildah
clearsilver
cockpit
curlftpfs
deepin-qt5integration
deepin-qt5platform-plugins
dislocker
dnf5
efl
egl-gbm
exim
fcitx-qt5
fcitx5-qt
fwupd
gambas3
glibc
gnome-settings-daemon
graphviz
gtk4
gutenprint
hivex
hyperestraier
initial-setup
keepassxc
ksh
libcaca
libcomps
libguestfs
libopenshot
libsbml
libselinux
libsolv
libtrash
libunicode
libyui
mapserver
marisa
nbdkit
notmuch
oath-toolkit
openwsman
os-autoinst
perl-Digest-MD5
phd2
player
podman
proxmark3
python-fastavro
python-indexed_gzip
python-qt5
python-urwid
qadwaitadecorations
qdbm
qgnomeplatform
qt5-qtwebengine
qt5-qtwebkit
qt5-qtwebview
qt5ct
rrdtool
ruby-augeas
ruby-gnome2
ruby-mecab
rubygem-RedCloth
rubygem-bcrypt
rubygem-bcrypt_pbkdf
rubygem-bindex
rubygem-bootsnap
rubygem-bson
rubygem-cairo
rubygem-cairo-gobject
rubygem-curb
rubygem-ed25519
rubygem-eventmachine
rubygem-ffi
rubygem-gio2
rubygem-glib2
rubygem-glu
rubygem-glut
rubygem-gobject-introspection
rubygem-goocanvas1
rubygem-gstreamer
rubygem-gtk2
rubygem-gtk3
rubygem-gtksourceview2
rubygem-hiredis
rubygem-http_parser.rb
rubygem-idn
rubygem-json
rubygem-krb5-auth
rubygem-levenshtein
rubygem-msgpack
rubygem-mysql2
rubygem-narray
rubygem-ncursesw
rubygem-nio4r
rubygem-nokogiri
rubygem-opengl
rubygem-ox
rubygem-pango
rubygem-pg
rubygem-posix-spawn
rubygem-puma
rubygem-racc
rubygem-rdiscount
rubygem-redcarpet
rubygem-regexp_property_values
rubygem-rmagick
rubygem-ruby-libvirt
rubygem-ruby-shadow
rubygem-rugged
rubygem-serialport
rubygem-sqlite3
rubygem-syck
rubygem-tk
rubygem-unf_ext
rubygem-unicode
rubygem-vte
rubygem-websocket-driver
rubygem-xmlparser
rubygem-zoom
schedtool
simspark
skf
tinyxml
totem-pl-parser
uwsgi
vdr
vim-command-t
vokoscreenNG
weechat
xmlsec1
xmms2
xterm

Comment 9 Adam Williamson 2024-01-04 21:55:22 UTC
OK, here's a filtered list of cases where unversioned provides differ on at least one arch between the previous build and the possibly-affected build:

Provides from initial-setup-0.3.99-1.fc40 missing in initial-setup-0.3.100-1.fc40 on arch src:
['initial-setup-gui-xorg']
Provides from initial-setup-0.3.99-1.fc40 missing in initial-setup-0.3.100-1.fc40 on arch i686:
['initial-setup-gui-xorg', 'initial-setup-gui-xorg(x86-32)']
Provides from initial-setup-0.3.99-1.fc40 missing in initial-setup-0.3.100-1.fc40 on arch x86_64:
['initial-setup-gui-xorg(x86-64)', 'initial-setup-gui-xorg']
Provides from initial-setup-0.3.99-1.fc40 missing in initial-setup-0.3.100-1.fc40 on arch aarch64:
['initial-setup-gui-xorg(aarch-64)', 'initial-setup-gui-xorg']
Provides from initial-setup-0.3.99-1.fc40 missing in initial-setup-0.3.100-1.fc40 on arch ppc64le:
['initial-setup-gui-xorg', 'initial-setup-gui-xorg(ppc-64)']
Provides from initial-setup-0.3.99-1.fc40 missing in initial-setup-0.3.100-1.fc40 on arch s390x:
['initial-setup-gui-xorg(s390-64)', 'initial-setup-gui-xorg']
Provides from vdr-2.6.4-2.fc40 missing in vdr-2.6.5-1.fc40 on arch i686:
['libvdr-rcu.so.2.6.3', 'libvdr-dvbsddevice.so.2.6.3', 'libvdr-skincurses.so.2.6.3', 'libvdr-dvbhddevice.so.2.6.3']
Provides from vdr-2.6.4-2.fc40 missing in vdr-2.6.5-1.fc40 on arch x86_64:
['libvdr-skincurses.so.2.6.3()(64bit)', 'libvdr-rcu.so.2.6.3()(64bit)', 'libvdr-dvbsddevice.so.2.6.3()(64bit)', 'libvdr-dvbhddevice.so.2.6.3()(64bit)']
Provides from vdr-2.6.4-2.fc40 missing in vdr-2.6.5-1.fc40 on arch aarch64:
['libvdr-skincurses.so.2.6.3()(64bit)', 'libvdr-rcu.so.2.6.3()(64bit)', 'libvdr-dvbsddevice.so.2.6.3()(64bit)', 'libvdr-dvbhddevice.so.2.6.3()(64bit)']
Provides from vdr-2.6.4-2.fc40 missing in vdr-2.6.5-1.fc40 on arch ppc64le:
['libvdr-skincurses.so.2.6.3()(64bit)', 'libvdr-rcu.so.2.6.3()(64bit)', 'libvdr-dvbsddevice.so.2.6.3()(64bit)', 'libvdr-dvbhddevice.so.2.6.3()(64bit)']
Provides from vdr-2.6.4-2.fc40 missing in vdr-2.6.5-1.fc40 on arch s390x:
['libvdr-skincurses.so.2.6.3()(64bit)', 'libvdr-rcu.so.2.6.3()(64bit)', 'libvdr-dvbsddevice.so.2.6.3()(64bit)', 'libvdr-dvbhddevice.so.2.6.3()(64bit)']
Provides from efl-1.27.0-1.fc40 missing in efl-1.27.0-2.fc40 on arch i686:
['libecore_sdl.so']
Provides from efl-1.27.0-1.fc40 missing in efl-1.27.0-2.fc40 on arch x86_64:
['libecore_sdl.so()(64bit)']
Provides from efl-1.27.0-1.fc40 missing in efl-1.27.0-2.fc40 on arch aarch64:
['libecore_sdl.so()(64bit)']
Provides from efl-1.27.0-1.fc40 missing in efl-1.27.0-2.fc40 on arch ppc64le:
['libecore_sdl.so()(64bit)']
Provides from efl-1.27.0-1.fc40 missing in efl-1.27.0-2.fc40 on arch s390x:
['libecore_sdl.so()(64bit)']
Provides from fwupd-1.9.10-1.fc40 missing in fwupd-1.9.11-1.fc40 on arch aarch64:
['libfwupd.so.2(LIBFWUPD_1.8.6)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.3.1)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.6.2)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.5.1)(64bit)', 'libfwupd.so.2(LIBFWUPD_0.9.2)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.0.3)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.1.1)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.8.1)(64bit)', 'libfwupd.so.2(LIBFWUPD_0.8.0)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.1.2)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.3.4)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.8.11)(64bit)', 'libfwupd.so.2(LIBFWUPD_0.9.6)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.4.5)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.7.0)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.5.6)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.0.8)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.9.8)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.3.2)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.2.10)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.5.0)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.4.6)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.9.6)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.0.4)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.9.4)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.2.4)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.2.8)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.0.7)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.9.1)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.2.5)(64bit)', 'libfwupd.so.2(LIBFWUPD_0.9.8)(64bit)', 'libfwupd.so.2(LIBFWUPD_0.7.3)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.6.0)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.2.7)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.5.2)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.2.2)(64bit)', 'libfwupd.so.2(LIBFWUPD_0.9.4)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.3.3)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.5.5)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.7.3)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.4.1)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.7.1)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.7.4)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.3.6)(64bit)', 'libfwupd.so.2(LIBFWUPD_0.9.3)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.8.8)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.7.2)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.8.7)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.2.1)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.8.0)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.2.9)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.5.8)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.8.13)(64bit)', 'libfwupd.so.2(LIBFWUPD_0.9.5)(64bit)', 'libfwupd.so.2(LIBFWUPD_0.7.1)(64bit)', 'libfwupd.so.2(LIBFWUPD_0.1.1)(64bit)', 'libfwupd.so.2(LIBFWUPD_0.9.7)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.8.3)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.1.0)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.6.1)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.8.4)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.8.2)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.9.10)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.4.0)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.7.6)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.9.3)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.0.0)(64bit)', 'libfwupd.so.2(LIBFWUPD_0.7.0)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.1.3)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.5.3)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.3.7)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.2.6)(64bit)']
Provides from fwupd-1.9.10-1.fc40 missing in fwupd-1.9.11-1.fc40 on arch s390x:
['libfwupd.so.2(LIBFWUPD_1.8.6)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.3.1)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.6.2)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.5.1)(64bit)', 'libfwupd.so.2(LIBFWUPD_0.9.2)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.0.3)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.1.1)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.8.1)(64bit)', 'libfwupd.so.2(LIBFWUPD_0.8.0)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.1.2)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.3.4)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.8.11)(64bit)', 'libfwupd.so.2(LIBFWUPD_0.9.6)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.4.5)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.7.0)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.5.6)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.0.8)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.9.8)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.3.2)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.2.10)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.5.0)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.4.6)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.9.6)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.0.4)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.9.4)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.2.4)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.2.8)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.0.7)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.9.1)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.2.5)(64bit)', 'libfwupd.so.2(LIBFWUPD_0.9.8)(64bit)', 'libfwupd.so.2(LIBFWUPD_0.7.3)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.6.0)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.2.7)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.5.2)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.2.2)(64bit)', 'libfwupd.so.2(LIBFWUPD_0.9.4)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.3.3)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.5.5)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.7.3)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.4.1)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.7.1)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.7.4)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.3.6)(64bit)', 'libfwupd.so.2(LIBFWUPD_0.9.3)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.8.8)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.7.2)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.8.7)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.2.1)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.8.0)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.2.9)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.5.8)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.8.13)(64bit)', 'libfwupd.so.2(LIBFWUPD_0.9.5)(64bit)', 'libfwupd.so.2(LIBFWUPD_0.7.1)(64bit)', 'libfwupd.so.2(LIBFWUPD_0.1.1)(64bit)', 'libfwupd.so.2(LIBFWUPD_0.9.7)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.8.3)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.1.0)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.6.1)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.8.4)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.8.2)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.9.10)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.4.0)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.7.6)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.9.3)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.0.0)(64bit)', 'libfwupd.so.2(LIBFWUPD_0.7.0)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.1.3)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.5.3)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.3.7)(64bit)', 'libfwupd.so.2(LIBFWUPD_1.2.6)(64bit)']
Provides from cockpit-307-1.fc40 missing in cockpit-308-1.fc40 on arch noarch:
['bundled(npm(@babel/runtime))', 'bundled(npm(regenerator-runtime))']

Comment 10 Adam Williamson 2024-01-04 22:25:42 UTC
Going over those manually, it looks like really only fwupd is a real problem. So I'll just rebuild fwupd and we can call it a day.


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