On Wednesday 26 November 2014 21:41:48 Zbigniew Jędrzejewski-Szmek wrote: > On Wed, Nov 26, 2014 at 05:24:37PM -0300, Cristian Rodríguez wrote: > > El 26/11/14 a las 15:31, Peter Wu escribió: > > > > > [1]: https://sourceware.org/bugzilla/show_bug.cgi?id=17639 > > > > > >https://bugs.freedesktop.org/show_bug.cgi?id=86666 > > >--- > > > v2: removed -ffunction-sections and -fdata-sections too, mention > > > that binutils fixed the bug. > > >--- > > > > -1 Just fix the linker and move along... not our bug IMHO.
Now that this bug is fixed, there is less need for this patch, but the options themselves do not seem to bring great benefit so might as well remove it. See also below. > Hm, with this patch the build fails for me with > > ../src/shared/ptyfwd.c:117: error: undefined reference to > 'sd_event_source_unref' > ../src/shared/ptyfwd.c:120: error: undefined reference to 'sd_event_exit' [..] > > (and many repeats for other libraries). > > $ rpm -q gcc binutils > gcc-4.9.2-1.fc21.x86_64 > binutils-2.24-21.fc21.x86_64 > > ../configure CFLAGS='-g -Og -ftrapv' CPPFLAGS=-DVALDGRIND=1 > --disable-compat-libs --disable-kdbus --sysconfdir=/etc --localstatedir=/var > --libdir=/usr/lib64 --enable-lz4 --enable-xz --enable-terminal Reproduced. I built with --enable-compat-libs. Isn't a real bug being hidden by the -Wl,--gc-sections option? id128.so uses the sd_event_source_unref symbol which is provided by libsystemd-internal, but id128 only links to libsystemd-shared. When linking with -Wl,--gc-sections, I get: $ readelf -s .libs/id128.so | grep sd_event_source_unref 1913: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND sd_event_source_unref > I think I'm with Christian here... let sleeping dogs lie. Now that a bug is released in binutils (I did not expect such a quick response, kudos to them!), I can live with this patch not being applied. But the reasoning is wrong, something was actually broken and you cannot just ignore that. As an aside, none of the files in /usr/{lib,bin} on my system were compiled with this fatal combination of flags, except for systemd. It is apparently not a common option. I was also thinking about other adopters of systemd, like Debian. They just disable gold[1] which would overcome the issue without this patch. Though if they upgrade systemd in the future they will either have to disable compat libs or otherwise run in the problem described at https://bugs.freedesktop.org/show_bug.cgi?id=86666. Hmm, strange folks, they use --enable-compat-libs but then remove[2] the libraries...? -- Kind regards, Peter https://lekensteyn.nl [1]: http://anonscm.debian.org/cgit/pkg-systemd/systemd.git/tree/debian/patches/buildsys-Don-t-default-to-gold-as-the-linker.patch [2]: http://anonscm.debian.org/cgit/pkg-systemd/systemd.git/tree/debian/rules#n129 _______________________________________________ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel