package/wpa_supplicant: add config option to build wpa_client library
PATCH v2 1/1 package/wpa_supplicant: add config option to build wpa_client library
Version 2.5 of wpa_supplicant introduces the config option CONFIG_BUILD_WPA_CLIENT_SO to enable building wpa_client as shared library.
We need to add a patch from upstream to fix a runtime error with libwpa_client.so:
Error relocating /usr/lib/libwpa_client.so: bin_clear_free: symbol not found
---
Changes v2:
- depends on dynamic build (Martin Bark)
- Installs -> Install in help text
- Add upstream patch
--- .../wpa_supplicant/0002-fix-libwpa_client.patch | 39 ++++++++++++++++++++++ package/wpa_supplicant/Config.in | 9 +++++ package/wpa_supplicant/wpa_supplicant.mk | 24 +++++++++++++ 3 files changed, 72 insertions(+) create mode 100644 package/wpa_supplicant/0002-fix-libwpa_client.patch
package/wpa_supplicant/0002-fix-libwpa_client.patch new file +39 -0
@@ -0,0 +1,39 @@ +From 6f7e0354a9035ce33742a5f869f817a6b39b2f31 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C3=B6rg=20Krause?= <[email protected]> +Date: Thu, 29 Oct 2015 11:39:03 +0100 +Subject: [PATCH 1/1] wpa_supplicant/Makefile: fix libwpa_client +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Building libwpa_client requires src/utils/common.c for bin_clear_free() else +loading the library fails with: + + Error relocating /usr/lib/libwpa_client.so: bin_clear_free: symbol not found + +Backported from: 736b7cb2daf877a0cb9ad42ff15a2efbbd65fa42 + +Signed-off-by: J?rg Krause <[email protected]> +--- + wpa_supplicant/Makefile | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/wpa_supplicant/Makefile b/wpa_supplicant/Makefile +index 61f8f18..0c444b0 100644 +--- a/wpa_supplicant/Makefile ++++ b/wpa_supplicant/Makefile +@@ -1706,9 +1706,11 @@ wpa_cli: $(OBJS_c) + + LIBCTRL += ../src/common/wpa_ctrl.o + LIBCTRL += ../src/utils/os_$(CONFIG_OS).o ++LIBCTRL += ../src/utils/common.c + LIBCTRL += ../src/utils/wpa_debug.o + LIBCTRLSO += ../src/common/wpa_ctrl.c + LIBCTRLSO += ../src/utils/os_$(CONFIG_OS).c ++LIBCTRLSO += ../src/utils/common.c + LIBCTRLSO += ../src/utils/wpa_debug.c + + libwpa_client.a: $(LIBCTRL) +-- +2.6.2 +
package/wpa_supplicant/Config.in +9 -0
@@ -63,6 +63,15 @@ config BR2_PACKAGE_WPA_SUPPLICANT_CLI help Install wpa_cli command line utility +config BR2_PACKAGE_WPA_SUPPLICANT_WPA_CLIENT_SO + depends on !BR2_STATIC_LIBS + bool "Install wpa_client shared library" + help + Install libwpa_client.so. + +comment "wpa_client library needs a toolchain w/ dynamic library" + depends on BR2_STATIC_LIBS + config BR2_PACKAGE_WPA_SUPPLICANT_PASSPHRASE bool "Install wpa_passphrase binary" help
package/wpa_supplicant/wpa_supplicant.mk +24 -0
@@ -15,6 +15,9 @@ WPA_SUPPLICANT_DBUS_NEW_SERVICE = fi.w1.wpa_supplicant1 WPA_SUPPLICANT_CFLAGS = $(TARGET_CFLAGS) -I$(STAGING_DIR)/usr/include/libnl3/ WPA_SUPPLICANT_LDFLAGS = $(TARGET_LDFLAGS) +# install the wpa_client library +WPA_SUPPLICANT_INSTALL_STAGING = YES + WPA_SUPPLICANT_CONFIG_EDITS = WPA_SUPPLICANT_CONFIG_SET =
@@ -117,6 +120,22 @@ WPA_SUPPLICANT_DEPENDENCIES += readline WPA_SUPPLICANT_CONFIG_ENABLE += CONFIG_READLINE endif +ifeq ($(BR2_PACKAGE_WPA_SUPPLICANT_WPA_CLIENT_SO),y) +WPA_SUPPLICANT_CONFIG_SET += CONFIG_BUILD_WPA_CLIENT_SO +define WPA_SUPPLICANT_INSTALL_WPA_CLIENT_SO + $(INSTALL) -m 0644 -D $(@D)/$(WPA_SUPPLICANT_SUBDIR)/libwpa_client.so \ + $(TARGET_DIR)/usr/lib/libwpa_client.so + $(INSTALL) -m 0644 -D $(@D)/src/common/wpa_ctrl.h \ + $(TARGET_DIR)/usr/include/wpa_ctrl.h +endef +define WPA_SUPPLICANT_INSTALL_STAGING_WPA_CLIENT_SO + $(INSTALL) -m 0644 -D $(@D)/$(WPA_SUPPLICANT_SUBDIR)/libwpa_client.so \ + $(STAGING_DIR)/usr/lib/libwpa_client.so + $(INSTALL) -m 0644 -D $(@D)/src/common/wpa_ctrl.h \ + $(STAGING_DIR)/usr/include/wpa_ctrl.h +endef +endif + define WPA_SUPPLICANT_CONFIGURE_CMDS cp $(@D)/wpa_supplicant/defconfig $(WPA_SUPPLICANT_CONFIG) sed -i $(patsubst %,-e 's/^#\(%\)/\1/',$(WPA_SUPPLICANT_CONFIG_ENABLE)) \
@@ -159,6 +178,10 @@ define WPA_SUPPLICANT_INSTALL_DBUS endef endif +define WPA_SUPPLICANT_INSTALL_STAGING_CMDS + $(WPA_SUPPLICANT_INSTALL_STAGING_WPA_CLIENT_SO) +endef + define WPA_SUPPLICANT_INSTALL_TARGET_CMDS $(INSTALL) -m 0755 -D $(@D)/$(WPA_SUPPLICANT_SUBDIR)/wpa_supplicant \ $(TARGET_DIR)/usr/sbin/wpa_supplicant
@@ -167,6 +190,7 @@ define WPA_SUPPLICANT_INSTALL_TARGET_CMDS $(WPA_SUPPLICANT_INSTALL_CLI) $(WPA_SUPPLICANT_INSTALL_PASSPHRASE) $(WPA_SUPPLICANT_INSTALL_DBUS) + $(WPA_SUPPLICANT_INSTALL_WPA_CLIENT_SO) endef define WPA_SUPPLICANT_INSTALL_INIT_SYSTEMD
Signature · 1 line
2.6.2
PATCH v2 1/1 package/wpa_supplicant: add config option to build wpa_client library
Quoted 9 lines · J?rg Krause
Version 2.5 of
wpa_supplicantintroduces the config optionCONFIG_BUILD_WPA_CLIENT_SOto enable buildingwpa_clientas shared library.We need to add a patch from upstream to fix a runtime error with libwpa_client.so:
Error relocating/usr/lib/libwpa_client.so:bin_clear_free: symbol not foundCc Martin Bark <[email protected]>Signed-off-by J?rg Krause <[email protected]>
Thomas Petazzoni
AppliedPATCH v2 1/1 package/wpa_supplicant: add config option to build wpa_client library
In reply to Jörg KrauseDear J?rg Krause,
Quoted 14 lines · J?rg Krause
Version 2.5 of
wpa_supplicantintroduces the config optionCONFIG_BUILD_WPA_CLIENT_SOto enable buildingwpa_clientas shared library.We need to add a patch from upstream to fix a runtime error with libwpa_client.so:
Error relocating/usr/lib/libwpa_client.so:bin_clear_free: symbol not foundCc Martin Bark <[email protected]>Signed-off-by J?rg Krause <[email protected]>---
Changes v2:
- depends on dynamic build (Martin Bark)
- Installs -> Install in help text
- Add upstream patch
Quoted 6 lines
--- .../wpa_supplicant/0002-fix-libwpa_client.patch | 39 ++++++++++++++++++++++ package/wpa_supplicant/Config.in | 9 +++++ package/wpa_supplicant/wpa_supplicant.mk | 24 +++++++++++++ 3 files changed, 72 insertions(+) create mode 100644 package/wpa_supplicant/0002-fix-libwpa_client.patch
Applied, thanks.
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com