On Mon, Jan 22, 2018 at 4:24 PM, Florian Weimer <fweimer(a)redhat.com> wrote:
I updated redhat-rpm-config to instruct ld to reject linking shared
objects
with undefined symbols. Such undefined symbols break symbol versioning
because the are not necessarily bound to the correct symbol version at run
time. (rhbz#1535422)
### Disable strict symbol checks in the link editor (ld)
By default, the link editor will refuse to link shared objects which
contain undefined symbols. In some cases (such as when a DSO is
loaded as a plugin and is expected to bind to symbols in the main
executable), undefined symbols are expected. In this case, you can
add
%undefine _strict_symbol_defs_build
to the RPM spec file to disable these strict checks. Alternatively,
you can pass `-z undefs` to ld (written as `-Wl,-z,undefs` on the gcc
command line). The latter needs binutils 2.29.1-12.fc28 or later.
So, with this change to redhat-rpm-config, about 20 of my ~100
packages now fail / will probably fail to build due to undefined
symbols.
For the record, my affected packages are (according to koschei, and as
of the time of writing this):
- gala (internal plugins)
- maya-calendar("ceil" reference missing, ppc64 only)
- noise (internal plugins)
- pantheon-photos(internal plugins)
- scratch-text-editor(internal plugins)
- slingshot-launcher(plugin)
- switchboard-plug-onlineaccounts(internal plugins)
- wingpanel(no idea)
- wingpanel-indicator-datetime ("ceil" reference missing, ppc64 only)
I have no idea how to tell if these are really fallout from the change
to redhat-rpm-config, or if the change only uncovered bugs in the
upstream build definitions (which lead to erroneous underlinking?).
Fabio
> This is also part of the build flags documentation at:
>
>
<
https://src.fedoraproject.org/rpms/redhat-rpm-config/blob/master/f/buildf...
>
> Thanks,
> Florian
> _______________________________________________
> devel mailing list -- devel(a)lists.fedoraproject.org
> To unsubscribe send an email to devel-leave(a)lists.fedoraproject.org