package/android-tools: fix static linking failure due to OpenSSL dependencies
When static linking some dependency library can be missing (i.e. -latomic for -lcrypto) on linking libraries list. This is because when static linking libraries dependencies are not transparently linked into binary. To avoid moving libraries before/after one another or add new ones that are not needed at all in the dynamic linking case, we use `pkg-config --libs LIBRARY` where LIBRARY is the library we "probe" for its existence and dependency. In this commit, we: - Remove 0005-fix-static-link-zlib.patch where -lcrypto and -lz were swapped, as it is no longer needed thanks to the following point. - Replace it with 0005-Use-pkgconf-to-get-libs-deps.patch where -lcrypto has been substituted with `pkg-config --libs libcrypto` - Add host-pkgconf to ANDROID_TOOLS_DEPENDENCIES Fixes: http://autobuild.buildroot.net/results/d3d6679cfc8afe4467368bd3d31483172c1032de/ Signed-off-by: Giulio Benetti <giulio.benetti@micronovasrl.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This commit is contained in:
parent
5e02703c32
commit
1e4f77a2e4
@ -0,0 +1,35 @@
|
||||
makefiles: use pkgconf to get libs deps
|
||||
|
||||
LIBS lists library dependencies without taking into account static linking
|
||||
that need ordered listing and more libraries listed since differently from
|
||||
shared linking dependency is not transparent(i.e. -lcrypto could need
|
||||
-latomic etc.).
|
||||
|
||||
Replace -lcrypto with `pkg-config --libs libcrypto` command to be sure all
|
||||
needed libraries are listed during linking.
|
||||
|
||||
Signed-off-by: Giulio Benetti <giulio.benetti@micronovasrl.com>
|
||||
---
|
||||
diff -urpN android-tools-4.2.2+git20130218.orig/debian/makefiles/adbd.mk android-tools-4.2.2+git20130218/debian/makefiles/adbd.mk
|
||||
--- android-tools-4.2.2+git20130218.orig/debian/makefiles/adbd.mk 2019-04-08 16:05:02.967710428 +0200
|
||||
+++ android-tools-4.2.2+git20130218/debian/makefiles/adbd.mk 2019-04-08 16:30:42.463084426 +0200
|
||||
@@ -44,7 +44,7 @@ CPPFLAGS+= -DADBD_NON_ANDROID
|
||||
CPPFLAGS+= -I$(SRCDIR)/core/adbd
|
||||
CPPFLAGS+= -I$(SRCDIR)/core/include
|
||||
|
||||
-LIBS+= -lc -lpthread -lz -lcrypto -lcrypt
|
||||
+LIBS+= -lc -lpthread -lz `pkg-config --libs libcrypto` -lcrypt
|
||||
|
||||
OBJS= $(patsubst %, %.o, $(basename $(SRCS)))
|
||||
|
||||
diff -urpN android-tools-4.2.2+git20130218.orig/debian/makefiles/adb.mk android-tools-4.2.2+git20130218/debian/makefiles/adb.mk
|
||||
--- android-tools-4.2.2+git20130218.orig/debian/makefiles/adb.mk 2019-04-08 16:05:02.959701400 +0200
|
||||
+++ android-tools-4.2.2+git20130218/debian/makefiles/adb.mk 2019-04-08 16:31:06.529426250 +0200
|
||||
@@ -41,7 +41,7 @@ CPPFLAGS+= -DHAVE_TERMIO_H
|
||||
CPPFLAGS+= -I$(SRCDIR)/core/adb
|
||||
CPPFLAGS+= -I$(SRCDIR)/core/include
|
||||
|
||||
-LIBS+= -lc -lpthread -lz -lcrypto
|
||||
+LIBS+= -lc -lpthread -lz `pkg-config --libs libcrypto`
|
||||
|
||||
OBJS= $(SRCS:.c=.o)
|
@ -1,36 +0,0 @@
|
||||
Fix static linking of adb/adbd
|
||||
|
||||
Both adb and adbd use OpenSSL, which indirectly uses zlib. Since
|
||||
adb/adbd also use zlib directly -lz is included in the linker flags,
|
||||
but not at the right position to ensure that static linking works: to
|
||||
make it possible for OpenSSL symbols to see zlib symbols, -lz must
|
||||
appear after -lcrypto.
|
||||
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
|
||||
Index: b/debian/makefiles/adb.mk
|
||||
===================================================================
|
||||
--- a/debian/makefiles/adb.mk
|
||||
+++ b/debian/makefiles/adb.mk
|
||||
@@ -41,7 +41,7 @@
|
||||
CPPFLAGS+= -I$(SRCDIR)/core/adb
|
||||
CPPFLAGS+= -I$(SRCDIR)/core/include
|
||||
|
||||
-LIBS+= -lc -lpthread -lz -lcrypto
|
||||
+LIBS+= -lc -lpthread -lcrypto -lz
|
||||
|
||||
OBJS= $(SRCS:.c=.o)
|
||||
|
||||
Index: b/debian/makefiles/adbd.mk
|
||||
===================================================================
|
||||
--- a/debian/makefiles/adbd.mk
|
||||
+++ b/debian/makefiles/adbd.mk
|
||||
@@ -44,7 +44,7 @@
|
||||
CPPFLAGS+= -I$(SRCDIR)/core/adbd
|
||||
CPPFLAGS+= -I$(SRCDIR)/core/include
|
||||
|
||||
-LIBS+= -lc -lpthread -lz -lcrypto -lcrypt
|
||||
+LIBS+= -lc -lpthread -lcrypto -lz -lcrypt
|
||||
|
||||
OBJS= $(patsubst %, %.o, $(basename $(SRCS)))
|
||||
|
@ -11,6 +11,7 @@ ANDROID_TOOLS_EXTRA_DOWNLOADS = android-tools_$(ANDROID_TOOLS_VERSION)-3ubuntu41
|
||||
HOST_ANDROID_TOOLS_EXTRA_DOWNLOADS = $(ANDROID_TOOLS_EXTRA_DOWNLOADS)
|
||||
ANDROID_TOOLS_LICENSE = Apache-2.0
|
||||
ANDROID_TOOLS_LICENSE_FILES = debian/copyright
|
||||
ANDROID_TOOLS_DEPENDENCIES = host-pkgconf
|
||||
|
||||
# Extract the Debian tarball inside the sources
|
||||
define ANDROID_TOOLS_DEBIAN_EXTRACT
|
||||
|
Loading…
Reference in New Issue
Block a user