Source: android-platform-art Version: 8.1.0+r23-2 Severity: normal Tags: patch User: ubuntu-de...@lists.ubuntu.com Usertags: origin-ubuntu disco ubuntu-patch
Dear Maintainer, android-platform-art currently fails to build from source with ld --as-needed, which is by default in Ubuntu. This linker argument requires that libraries be placed in the order that they are needed, after the objects that require them. Libraries should not be colocated with LDFLAGS - those are specifically options for the linker itself. In Ubuntu, the attached patch was applied to achieve the following: * debian/lib{art,sigchain}.mk: Move libraries to LIBS variable at the end of linking command to fix FTBFS with ld --as-needed. Thanks for considering the patch. Logan Rosen -- System Information: Debian Release: buster/sid APT prefers cosmic-updates APT policy: (500, 'cosmic-updates'), (500, 'cosmic-security'), (500, 'cosmic'), (400, 'cosmic-proposed'), (100, 'cosmic-backports') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 4.18.0-12-generic (SMP w/8 CPU cores) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enabled
diff -Nru android-platform-art-8.1.0+r23/debian/libart.mk android-platform-art-8.1.0+r23/debian/libart.mk --- android-platform-art-8.1.0+r23/debian/libart.mk 2018-12-05 14:19:06.000000000 -0500 +++ android-platform-art-8.1.0+r23/debian/libart.mk 2018-12-11 23:02:50.000000000 -0500 @@ -400,6 +400,8 @@ -L/usr/lib/$(DEB_HOST_MULTIARCH)/android \ -Ldebian/out \ -Wl,-rpath=/usr/lib/$(DEB_HOST_MULTIARCH)/android \ + -shared -Wl,-soname,$(NAME).so.0 +LIBS += \ -lbacktrace \ -lbase \ -lcutils \ @@ -411,12 +413,11 @@ -lpthread \ -lsigchain \ -lz \ - -lziparchive \ - -shared -Wl,-soname,$(NAME).so.0 + -lziparchive debian/out/$(NAME).so.0: $(OBJECTS_CXX) $(OBJECTS_ASSEMBLY) mkdir --parents debian/out - $(CXX) -o $@ $(LDFLAGS) $^ + $(CXX) -o $@ $(LDFLAGS) $^ $(LIBS) ln -s $(NAME).so.0 debian/out/$(NAME).so clean: @@ -432,4 +433,4 @@ clang -o $@ $(CFLAGS) $(CPPFLAGS) $^ operator_out.cc: $(SOURCES_OPERATOR) - python3 tools/generate-operator-out.py runtime $^ > $@ \ No newline at end of file + python3 tools/generate-operator-out.py runtime $^ > $@ diff -Nru android-platform-art-8.1.0+r23/debian/libsigchain.mk android-platform-art-8.1.0+r23/debian/libsigchain.mk --- android-platform-art-8.1.0+r23/debian/libsigchain.mk 2018-11-14 00:22:16.000000000 -0500 +++ android-platform-art-8.1.0+r23/debian/libsigchain.mk 2018-12-11 23:02:50.000000000 -0500 @@ -4,12 +4,12 @@ SOURCES := $(foreach source, $(SOURCES), sigchainlib/$(source)) CPPFLAGS += -Isigchainlib -LDFLAGS += \ +LDFLAGS += -shared -Wl,-soname,$(NAME).so.0 +LIBS += \ -ldl \ - -lpthread \ - -shared -Wl,-soname,$(NAME).so.0 + -lpthread debian/out/$(NAME).so.0: $(SOURCES) mkdir --parents debian/out - $(CXX) -o $@ $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS) $^ - ln -s $(NAME).so.0 debian/out/$(NAME).so \ No newline at end of file + $(CXX) -o $@ $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS) $^ $(LIBS) + ln -s $(NAME).so.0 debian/out/$(NAME).so