Re: binutils: s390x: fails to link systemd binaries using LTO

Aurelien Jarno <[email protected]>
Newsgroups gmane.linux.debian.ports.s390
Message-ID <[email protected]>
On 2017-06-19 23:50, Michael Biebl wrote:
> On Tue, 30 May 2017 22:21:04 +0200 Michael Biebl <[email protected]> wrote:
> > Package: binutils
> > Version: 2.28-5
> > Severity: normal
> > User: [email protected]
> > Usertags: s390x
> > 
> > Hi,
> > 
> > we run into a strange issue when trying to compile systemd git master
> > using meson. The build/link failure is s390x specific so I've CCed the
> > s390x porters mailing list. The problem is easily reproducible on the
> > zelenka porterbox. with the following commands:
> > 
> > sessionid=$(schroot -b -c sid)
> > dd-schroot-cmd -c $sessionid apt-get update
> > dd-schroot-cmd -c $sessionid apt-get upgrade -y
> > dd-schroot-cmd -c $sessionid apt-get build-dep systemd -y
> > dd-schroot-cmd -c $sessionid apt-get install meson git -y
> > schroot -r -c $sessionid
> > git clone https://github.com/systemd/systemd
> > cd systemd
> > export LANG=C.UTF-8
> > meson -Db_lto=true -Dlink-udev-shared=false build
> > ninja -C build
> > 
> > This will lead to a failure to link the systemd-networkd,
> > test-network-tables and test-network binaries. I've attached the
> > relevant excerpt from the build log.
> > 
> > Since this issue seems to be arch specific, this appears to be a problem
> > in the s390x toolchain and not systemd itself.
> > 
> > We would appreciate if the s390(x) porters could have a look.

Could you please Cc the s390x porters next time? That would make us
notice the issue faster.

> Any feedback fro the s390 porters?

The problem is related to the fact that gold is not available on s390x.
It seems gold is less strict than ld in having to link with each used
library. The problem can be fully reproduced on amd64 by using ld instead
of gold:

--- a/meson.build
+++ b/meson.build
@@ -312,7 +312,7 @@ link_test_c = files('tools/meson-link-test.c')
 foreach arg : ['-Wl,-z,relro',
                '-Wl,-z,now',
                '-pie',
-               '-Wl,-fuse-ld=gold',
+               '-Wl,-fuse-ld=ld',
               ]
 
         have = run_command(check_compilation_sh,


Now to come back to the problem, the test is linked against
src/libsystemd/libsystemd.a which uses pthread_sigmask. It looks
therefore normal to add -lpthread to link it.

Regards,
Aurelien

-- 
Aurelien Jarno                          GPG: 4096R/1DDD8C9B
[email protected]                 http://www.aurel32.net
signature.asc (application/pgp-signature, 833 B)
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEd0YmQqnvlP0Pdxltupx4Bh3djJsFAllJmgoACgkQupx4Bh3d
jJulGA//UUty+LjmsSvao0/pLaqERN7viG/WfBGuE9Cum/688/NzpP8JHFoJxn0o
rrnG5Juupk431BEXqBK9Rl+Cb5Ld/CpEQc8wbacx2tdf4Gj67uT+0rbSPSoXQH/U
Fp46WGSdwyR40bh8s+PqKGazGvFb4V4+H1ZuEL0fhYMpOmVYhuospNwVmolVTx3x
aHlej6pqsLmE/etXUHO3FPpUFciWq4fUTw4VUM5DAHruyQgn0Zo8dfAi/DWrPA81
v1LGfHYh/AR02heXnN3vS3mYmSHSMjAOwgzReMcxK1mk0XZcICtf8mXK3op7ojUC
+8iqrq8mleKQpS7yms1v6LhLu68BtNv5IhLIexBBYy/4w9HCrZkeFSIhsQbm8OA2
+1Pm4U/QV8Md90cTg+43lu9ajASTDAfh7JICSUs/YvyA/dcrK+gtm4xeP5xLaNS+
NDDjkoQHa9S1zakINCWdz1mzUMwiUMYUruzuycKn1NZeEdhPD78YsT1TK65MPOyr
3hMKQkaJIyFLuu24MuAhrVNGVIf3OpTX9tY0cYMFLzYVaWpxGw5RuTdqfGGQKadZ
FdC3cxgm6xluoqxAkSQcQfNo0nc3kdADrAVCAqhTJ4xIeauxuMnzXXVzcsJ6i+SH
fYeB0SeRs3vR+07iDJMzC4iT0zyCJaOmxX9OYSrPYNCrkK0RrFA=
=syMI
-----END PGP SIGNATURE-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.