[systemd-devel] Build errors with lto and compat-libs

Dan Horák dan at danny.cz
Thu Aug 28 01:05:09 PDT 2014


On Thu, 28 Aug 2014 09:53:27 +0200
Michael Olbrich <m.olbrich at pengutronix.de> wrote:

> On Tue, Aug 26, 2014 at 09:42:38PM +0200, Lennart Poettering wrote:
> > On Tue, 26.08.14 15:15, Michael Olbrich (m.olbrich at pengutronix.de)
> > wrote:
> > > On Mon, Aug 18, 2014 at 03:48:09PM +0200, Lennart Poettering
> > > wrote:
> > > > On Sun, 17.08.14 09:54, Michael Olbrich
> > > > (m.olbrich at pengutronix.de) wrote:
> > > > > With --enable-compat-libs building fails like this:
> > > > > 
> > > > >   CCLD     libsystemd-journal.la
> > > > > [...]
> > > > > /tmp/ccISOiYU.ltrans1.ltrans.o: In function
> > > > > `sd_journal_process': ccISOiYU.ltrans1.o:(.text+0x0):
> > > > > multiple definition of `sd_journal_process'
> > > > > libsystemd_journal_internal_la-sd-journal.o (symbol from
> > > > > plugin):(.text+0x0): first defined here [...] for all symbols
> > > > > listed in src/compat-libs/libsystemd-journal.sym
> > > > > 
> > > > > I have no idea what happens here, but making 'obsolete_lib()'
> > > > > a noop or removing lto from configure.ac 'fixes' the problem.
> > > > > 
> > > > > This is with gcc-4.8.2 and binutils-2.24 building for ARM.
> > > > > 
> > > > > Any ideas what happens here?
> > > > 
> > > > No really. But I figure LTO is not very reliable on ARM and
> > > > stuff. It's probably best to turn it off there.
> > > 
> > > Well it looks like it fails on x86 as well here, with the same
> > > compiler version. I can run configure with cc_cv_CFLAGS__flto=no
> > > here. I'm not sure, how an upstream fix should look like.
> > 
> > Hmm, I am not experiencing this here, not sure how I can help you...
> 
> That's ok. I've disabled it for now. I'll see if I can find what
> triggers the problem here.

there was a bug in ld.bfd that made impossible to use -flto, see
https://bugzilla.redhat.com/show_bug.cgi?id=1133960


		Dan


More information about the systemd-devel mailing list