hostapd: fix static linking
PATCH 1/3 hostapd: fix static linking
A rebase of Samuel Martin's http://patchwork.ozlabs.org/patch/312320/
hostapd doesn't use pkg-config and upstream likely wouldn't take a patch to do so (hostapd/wpa_supplicant are used in android builds, and it doesn't use any auto* stuff either) so pass it in LIBS since we always build openssl with libz support.
--- package/hostapd/hostapd.mk | 1 + 1 file changed, 1 insertion(+)
package/hostapd/hostapd.mk +1 -0
@@ -43,6 +43,7 @@ endif # Try to use openssl if it's already available ifeq ($(BR2_PACKAGE_OPENSSL),y) HOSTAPD_DEPENDENCIES += openssl + HOSTAPD_LIBS += $(if $(BR2_PREFER_STATIC_LIB),-lcrypto -lz) HOSTAPD_CONFIG_EDITS += 's/\#\(CONFIG_TLS=openssl\)/\1/' else HOSTAPD_CONFIG_DISABLE += CONFIG_EAP_PWD
Signature · 1 line
1.8.3.2
PATCH 2/3 wpa_supplicant: fix static linking
wpa_supplicant doesn't use pkg-config and upstream likely wouldn't take a patch to do so (hostapd/wpa_supplicant are used in android builds, and it doesn't use any auto* stuff either) so pass it in LIBS* since we always build openssl with libz support.
Made ugly by the fact that wpa_supplicant uses LIBS for the wpa_supplicant binary, LIBS_c for the wpa_cli binary and LIBS_p for the wpa_passphrase binary.
Also do f62a1d887aee642593b3f9507d6f3ebcd82219d0 here too since it applies when libnl is used.
--- package/wpa_supplicant/wpa_supplicant.mk | 10 ++++++++++ 1 file changed, 10 insertions(+)
package/wpa_supplicant/wpa_supplicant.mk +10 -0
@@ -29,7 +29,13 @@ WPA_SUPPLICANT_CONFIG_ENABLE = \ WPA_SUPPLICANT_CONFIG_DISABLE = \ CONFIG_SMARTCARD +# libnl-3 needs -lm (for rint) and -lpthread if linking statically +# And library order matters hence stick -lnl-3 first since it's appended +# in the wpa_supplicant Makefiles as in LIBS+=-lnl-3 ... thus failing ifeq ($(BR2_PACKAGE_LIBNL),y) +ifeq ($(BR2_PREFER_STATIC_LIB),y) + WPA_SUPPLICANT_LIBS += -lnl-3 -lm -lpthread +endif WPA_SUPPLICANT_DEPENDENCIES += libnl WPA_SUPPLICANT_CONFIG_ENABLE += CONFIG_LIBNL32 else
@@ -57,6 +63,7 @@ endif # Try to use openssl if it's already available ifeq ($(BR2_PACKAGE_OPENSSL),y) WPA_SUPPLICANT_DEPENDENCIES += openssl + WPA_SUPPLICANT_LIBS += $(if $(BR2_PREFER_STATIC_LIB),-lcrypto -lz) WPA_SUPPLICANT_CONFIG_EDITS += 's/\#\(CONFIG_TLS=openssl\)/\1/' else WPA_SUPPLICANT_CONFIG_DISABLE += CONFIG_EAP_PWD
@@ -108,9 +115,12 @@ define WPA_SUPPLICANT_CONFIGURE_CMDS $(WPA_SUPPLICANT_CONFIG) endef +# LIBS for wpa_supplicant, LIBS_c for wpa_cli, LIBS_p for wpa_passphrase define WPA_SUPPLICANT_BUILD_CMDS $(TARGET_MAKE_ENV) CFLAGS="$(WPA_SUPPLICANT_CFLAGS)" \ LDFLAGS="$(TARGET_LDFLAGS)" BINDIR=/usr/sbin \ + LIBS="$(WPA_SUPPLICANT_LIBS)" LIBS_c="$(WPA_SUPPLICANT_LIBS)" \ + LIBS_p="$(WPA_SUPPLICANT_LIBS)" \ $(MAKE) CC="$(TARGET_CC)" -C $(@D)/$(WPA_SUPPLICANT_SUBDIR) endef
Signature · 1 line
1.8.3.2
PATCH 3/3 wpa_supplicant: add fix for WPS NFC support
In reply to Gustavo ZacariasWPS NFC support wouldn't build properly unless AP mode was enabled. Add upstream fix to correct this and enable NFC support.
--- ...NFIG_WPS_NFC-y-build-without-CONFIG_P2P-y.patch | 121 +++++++++++++++++++++ package/wpa_supplicant/wpa_supplicant.mk | 1 - 2 files changed, 121 insertions(+), 1 deletion(-) create mode 100644 package/wpa_supplicant/wpa_supplicant-0001-Fix-CONFIG_WPS_NFC-y-build-without-CONFIG_P2P-y.patch
package/wpa_supplicant/wpa_supplicant-0001-Fix-CONFIG_WPS_NFC-y-build-without-CONFIG_P2P-y.patch new file +121 -0
@@ -0,0 +1,121 @@ +From 88853aedf6cc4a152442b5bb2c4946683df6ff66 Mon Sep 17 00:00:00 2001 +From: Jouni Malinen <[email protected]> +Date: Thu, 13 Feb 2014 15:29:09 +0200 +Subject: [PATCH] Fix CONFIG_WPS_NFC=y build without CONFIG_P2P=y + +Some of the control interface operations for P2P were not properly +protected with #ifdef CONFIG_P2P. + +Signed-off-by: Jouni Malinen <[email protected]> +Signed-off-by: Gustavo Zacarias <[email protected]> +--- + wpa_supplicant/ctrl_iface.c | 14 ++++++++++++++ + 1 file changed, 14 insertions(+) + +diff --git a/wpa_supplicant/ctrl_iface.c b/wpa_supplicant/ctrl_iface.c +index ddddad3..ed332da 100644 +--- a/wpa_supplicant/ctrl_iface.c ++++ b/wpa_supplicant/ctrl_iface.c +@@ -951,6 +951,7 @@ static int wpas_ctrl_nfc_get_handover_req_wps(struct wpa_supplicant *wpa_s, + } + + ++#ifdef CONFIG_P2P + static int wpas_ctrl_nfc_get_handover_req_p2p(struct wpa_supplicant *wpa_s, + char *reply, size_t max_len, + int ndef) +@@ -973,6 +974,7 @@ static int wpas_ctrl_nfc_get_handover_req_p2p(struct wpa_supplicant *wpa_s, + + return res; + } ++#endif /* CONFIG_P2P */ + + + static int wpas_ctrl_nfc_get_handover_req(struct wpa_supplicant *wpa_s, +@@ -1001,10 +1003,12 @@ static int wpas_ctrl_nfc_get_handover_req(struct wpa_supplicant *wpa_s, + wpa_s, reply, max_len, ndef); + } + ++#ifdef CONFIG_P2P + if (os_strcmp(pos, "P2P-CR") == 0) { + return wpas_ctrl_nfc_get_handover_req_p2p( + wpa_s, reply, max_len, ndef); + } ++#endif /* CONFIG_P2P */ + + return -1; + } +@@ -1032,6 +1036,7 @@ static int wpas_ctrl_nfc_get_handover_sel_wps(struct wpa_supplicant *wpa_s, + } + + ++#ifdef CONFIG_P2P + static int wpas_ctrl_nfc_get_handover_sel_p2p(struct wpa_supplicant *wpa_s, + char *reply, size_t max_len, + int ndef, int tag) +@@ -1052,6 +1057,7 @@ static int wpas_ctrl_nfc_get_handover_sel_p2p(struct wpa_supplicant *wpa_s, + + return res; + } ++#endif /* CONFIG_P2P */ + + + static int wpas_ctrl_nfc_get_handover_sel(struct wpa_supplicant *wpa_s, +@@ -1084,6 +1090,7 @@ static int wpas_ctrl_nfc_get_handover_sel(struct wpa_supplicant *wpa_s, + os_strcmp(pos, "WPS-CR") == 0, pos2); + } + ++#ifdef CONFIG_P2P + if (os_strcmp(pos, "P2P-CR") == 0) { + return wpas_ctrl_nfc_get_handover_sel_p2p( + wpa_s, reply, max_len, ndef, 0); +@@ -1093,6 +1100,7 @@ static int wpas_ctrl_nfc_get_handover_sel(struct wpa_supplicant *wpa_s, + return wpas_ctrl_nfc_get_handover_sel_p2p( + wpa_s, reply, max_len, ndef, 1); + } ++#endif /* CONFIG_P2P */ + + return -1; + } +@@ -1160,6 +1168,7 @@ static int wpas_ctrl_nfc_report_handover(struct wpa_supplicant *wpa_s, + struct wpabuf *req, *sel; + int ret; + char *pos, *role, *type, *pos2; ++#ifdef CONFIG_P2P + char *freq; + int forced_freq = 0; + +@@ -1169,6 +1178,7 @@ static int wpas_ctrl_nfc_report_handover(struct wpa_supplicant *wpa_s, + freq += 6; + forced_freq = atoi(freq); + } ++#endif /* CONFIG_P2P */ + + role = cmd; + pos = os_strchr(role, ' '); +@@ -1237,11 +1247,14 @@ static int wpas_ctrl_nfc_report_handover(struct wpa_supplicant *wpa_s, + + if (os_strcmp(role, "INIT") == 0 && os_strcmp(type, "WPS") == 0) { + ret = wpas_wps_nfc_report_handover(wpa_s, req, sel); ++#ifdef CONFIG_AP + } else if (os_strcmp(role, "RESP") == 0 && os_strcmp(type, "WPS") == 0) + { + ret = wpas_ap_wps_nfc_report_handover(wpa_s, req, sel); + if (ret < 0) + ret = wpas_er_wps_nfc_report_handover(wpa_s, req, sel); ++#endif /* CONFIG_AP */ ++#ifdef CONFIG_P2P + } else if (os_strcmp(role, "INIT") == 0 && os_strcmp(type, "P2P") == 0) + { + ret = wpas_p2p_nfc_report_handover(wpa_s, 1, req, sel, 0); +@@ -1249,6 +1262,7 @@ static int wpas_ctrl_nfc_report_handover(struct wpa_supplicant *wpa_s, + { + ret = wpas_p2p_nfc_report_handover(wpa_s, 0, req, sel, + forced_freq); ++#endif /* CONFIG_P2P */ + } else { + wpa_printf(MSG_DEBUG, "NFC: Unsupported connection handover " + "reported: role=%s type=%s", role, type); +-- +1.8.3.2 +
package/wpa_supplicant/wpa_supplicant.mk +0 -1
@@ -57,7 +57,6 @@ endif ifeq ($(BR2_PACKAGE_WPA_SUPPLICANT_WPS),y) WPA_SUPPLICANT_CONFIG_ENABLE += CONFIG_WPS - WPA_SUPPLICANT_CONFIG_DISABLE += CONFIG_WPS_NFC endif # Try to use openssl if it's already available
Signature · 1 line
1.8.3.2
PATCH 1/3 hostapd: fix static linking
In reply to Gustavo ZacariasDear Gustavo Zacarias,
Quoted 10 lines · Gustavo Zacarias
A rebase of Samuel Martin's http://patchwork.ozlabs.org/patch/312320/
hostapd doesn't use pkg-config and upstream likely wouldn't take a patch to do so (hostapd/wpa_supplicant are used in android builds, and it doesn't use any auto* stuff either) so pass it in LIBS since we always build openssl with libz support.Signed-off-by Gustavo Zacarias <[email protected]>--- package/hostapd/hostapd.mk | 1 + 1 file changed, 1 insertion(+)
All three patches applied, thanks.
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com