Description of problem: systemd-196 fails to build on PPC (32bit): CCLD systemd-journal-gatewayd ./.libs/libsystemd-core.a(libsystemd_core_la-manager.o): In function `manager_check_finished': /builddir/build/BUILD/systemd-196/src/core/manager.c:2092: undefined reference to `sd_notifyf' collect2: error: ld returned 1 exit status make[2]: *** [test-unit-file] Error 1 Version-Release number of selected component (if applicable): systemd-196 How reproducible: always Steps to Reproduce: 1. ppc-koji build --scratch f19 systemd-196-3.fc19.src.rpm 2. 3. Actual results: all releases of systemd-196 fail to build with this error: http://ppc.koji.fedoraproject.org/koji/taskinfo?taskID=825937 Expected results: Additional info: all releases of systemd-196 fail to build with this error
I think that sufficiet fix would be: diff --git a/Makefile.am b/Makefile.am index 804cc04..acbb12b 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1068,7 +1068,8 @@ libsystemd_core_la_SOURCES = \ src/core/syscall-list.c \ src/core/syscall-list.h \ src/core/audit-fd.c \ - src/core/audit-fd.h + src/core/audit-fd.h \ + src/libsystemd-daemon/sd-daemon.c if HAVE_KMOD libsystemd_core_la_SOURCES += \
A scratch build with this patch succeeded, but I'm still puzzled why this fails on ppc32 only.
We pull in sd-daemon.c in anyway with libsystemd_daemon.la. So the patch should not be necessary. THis appears to be a problem with PPC only, maybe some toolchain issue?
I think ppc link is doing something right, its asking for resolving a symbol which it could not find in any library specified on cmdline but same thing on arm ld happily emits UND sd_notifyf and if you dump DT_NEEDED section then there is no asking for libsystemd-daemon.so so IMO non ppc architectures are doing it wrongly here. on ppc ./.libs/libsystemd-core.a(libsystemd_core_la-manager.o): In function `manager_check_finished': /b/kraj/angstrom/build/tmp-angstrom_next-uclibc/work/ppc603e-angstrom-linux-uclibc/systemd/196-r0/systemd-196/src/core/manager.c:2099: undefined reference to `sd_notifyf' collect2: error: ld returned 1 exit status DT_NEEDED on arm $ readelf -d .libs/test-unit-file Dynamic section at offset 0x11d94 contains 35 entries: Tag Type Name/Value 0x00000001 (NEEDED) Shared library: [libdbus-1.so.3] 0x00000001 (NEEDED) Shared library: [libpthread.so.0] 0x00000001 (NEEDED) Shared library: [libudev.so.1] 0x00000001 (NEEDED) Shared library: [librt.so.0] 0x00000001 (NEEDED) Shared library: [libpam.so.0] 0x00000001 (NEEDED) Shared library: [libcap.so.2] 0x00000001 (NEEDED) Shared library: [libssp.so.0] 0x00000001 (NEEDED) Shared library: [libgcc_s.so.1] 0x00000001 (NEEDED) Shared library: [libc.so.0] 0x00000001 (NEEDED) Shared library: [ld-uClibc.so.0] we dont have libsystemd-daemon.so.X there. and sd_notifyf is referred from libsystemd_core_la-manager.o When I compare cmdline for for linking .libs/test-unit-file on ppc and arm in both cases I see that we are asking for ./.libs/libsystemd-core.a libdbus-1.so -lpthread .libs/libudev.so -lrt -lcap libkmod.so -ldl no where we are asking for linking with libsystemd_daemon which provides this symbol so I think systemd's link cmdline is incomplete here. It just happens to link on non-ppc architectures but if sd_notifyf() would be called by 'test-unit-file' at runtime by it wont be resolved. I have posted a patch for this here http://lists.freedesktop.org/archives/systemd-devel/2013-January/008318.html after this patch now DT_NEEDED looks good $ readelf -d .libs/test-unit-file Dynamic section at offset 0xb0ed8 contains 32 entries: Tag Type Name/Value 0x00000001 (NEEDED) Shared library: [libdbus-1.so.3] 0x00000001 (NEEDED) Shared library: [libpthread.so.0] 0x00000001 (NEEDED) Shared library: [libudev.so.1] 0x00000001 (NEEDED) Shared library: [libpam.so.0] 0x00000001 (NEEDED) Shared library: [libcap.so.2] 0x00000001 (NEEDED) Shared library: [libsystemd-daemon.so.0] 0x00000001 (NEEDED) Shared library: [librt.so.0] 0x00000001 (NEEDED) Shared library: [libssp.so.0] 0x00000001 (NEEDED) Shared library: [libgcc_s.so.1] 0x00000001 (NEEDED) Shared library: [libc.so.0] 0x00000001 (NEEDED) Shared library: [ld-uClibc.so.0] and link also succeeds
Fixed in git.
This bug appears to have been reported against 'rawhide' during the Fedora 19 development cycle. Changing version to '19'. (As we did not run this process for some time, it could affect also pre-Fedora 19 development cycle bugs. We are very sorry. It will help us with cleanup during Fedora 19 End Of Life. Thank you.) More information and reason for this action is here: https://fedoraproject.org/wiki/BugZappers/HouseKeeping/Fedora19
systemd-201-2.fc18.1 has been submitted as an update for Fedora 18. https://admin.fedoraproject.org/updates/systemd-201-2.fc18.1
Package systemd-201-2.fc18.2: * should fix your issue, * was pushed to the Fedora 18 testing repository, * should be available at your local mirror within two days. Update it with: # su -c 'yum update --enablerepo=updates-testing systemd-201-2.fc18.2' as soon as you are able to. Please go to the following url: https://admin.fedoraproject.org/updates/FEDORA-2013-5452/systemd-201-2.fc18.2 then log in and leave karma (feedback).
Package systemd-201-2.fc18.4: * should fix your issue, * was pushed to the Fedora 18 testing repository, * should be available at your local mirror within two days. Update it with: # su -c 'yum update --enablerepo=updates-testing systemd-201-2.fc18.4' as soon as you are able to. Please go to the following url: https://admin.fedoraproject.org/updates/FEDORA-2013-5452/systemd-201-2.fc18.4 then log in and leave karma (feedback).
Package systemd-201-2.fc18.5: * should fix your issue, * was pushed to the Fedora 18 testing repository, * should be available at your local mirror within two days. Update it with: # su -c 'yum update --enablerepo=updates-testing systemd-201-2.fc18.5' as soon as you are able to. Please go to the following url: https://admin.fedoraproject.org/updates/FEDORA-2013-5452/systemd-201-2.fc18.5 then log in and leave karma (feedback).
systemd-201-2.fc18.6 has been submitted as an update for Fedora 18. https://admin.fedoraproject.org/updates/FEDORA-2013-5452/systemd-201-2.fc18.6
Package systemd-201-2.fc18.6: * should fix your issue, * was pushed to the Fedora 18 testing repository, * should be available at your local mirror within two days. Update it with: # su -c 'yum update --enablerepo=updates-testing systemd-201-2.fc18.6' as soon as you are able to. Please go to the following url: https://admin.fedoraproject.org/updates/FEDORA-2013-5452/systemd-201-2.fc18.6 then log in and leave karma (feedback).
systemd-201-2.fc18.6 has been pushed to the Fedora 18 stable repository. If problems still persist, please make note of it in this bug report.