* [Buildroot] [PATCH 1/3] hostapd: fix static linking
@ 2014-03-04 13:35 Gustavo Zacarias
2014-03-04 13:35 ` [Buildroot] [PATCH 2/3] wpa_supplicant: " Gustavo Zacarias
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Gustavo Zacarias @ 2014-03-04 13:35 UTC (permalink / raw)
To: buildroot
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 <gustavo@zacarias.com.ar>
---
package/hostapd/hostapd.mk | 1 +
1 file changed, 1 insertion(+)
diff --git a/package/hostapd/hostapd.mk b/package/hostapd/hostapd.mk
index 37de60d..5b7dd77 100644
--- a/package/hostapd/hostapd.mk
+++ b/package/hostapd/hostapd.mk
@@ -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
--
1.8.3.2
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [Buildroot] [PATCH 2/3] wpa_supplicant: fix static linking
2014-03-04 13:35 [Buildroot] [PATCH 1/3] hostapd: fix static linking Gustavo Zacarias
@ 2014-03-04 13:35 ` Gustavo Zacarias
2014-03-04 13:35 ` [Buildroot] [PATCH 3/3] wpa_supplicant: add fix for WPS NFC support Gustavo Zacarias
2014-03-04 18:35 ` [Buildroot] [PATCH 1/3] hostapd: fix static linking Thomas Petazzoni
2 siblings, 0 replies; 4+ messages in thread
From: Gustavo Zacarias @ 2014-03-04 13:35 UTC (permalink / raw)
To: buildroot
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.
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
---
package/wpa_supplicant/wpa_supplicant.mk | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/package/wpa_supplicant/wpa_supplicant.mk b/package/wpa_supplicant/wpa_supplicant.mk
index 17788cc..3802033 100644
--- a/package/wpa_supplicant/wpa_supplicant.mk
+++ b/package/wpa_supplicant/wpa_supplicant.mk
@@ -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
--
1.8.3.2
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [Buildroot] [PATCH 3/3] wpa_supplicant: add fix for WPS NFC support
2014-03-04 13:35 [Buildroot] [PATCH 1/3] hostapd: fix static linking Gustavo Zacarias
2014-03-04 13:35 ` [Buildroot] [PATCH 2/3] wpa_supplicant: " Gustavo Zacarias
@ 2014-03-04 13:35 ` Gustavo Zacarias
2014-03-04 18:35 ` [Buildroot] [PATCH 1/3] hostapd: fix static linking Thomas Petazzoni
2 siblings, 0 replies; 4+ messages in thread
From: Gustavo Zacarias @ 2014-03-04 13:35 UTC (permalink / raw)
To: buildroot
WPS NFC support wouldn't build properly unless AP mode was enabled.
Add upstream fix to correct this and enable NFC support.
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
---
...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
diff --git a/package/wpa_supplicant/wpa_supplicant-0001-Fix-CONFIG_WPS_NFC-y-build-without-CONFIG_P2P-y.patch b/package/wpa_supplicant/wpa_supplicant-0001-Fix-CONFIG_WPS_NFC-y-build-without-CONFIG_P2P-y.patch
new file mode 100644
index 0000000..946011c
--- /dev/null
+++ b/package/wpa_supplicant/wpa_supplicant-0001-Fix-CONFIG_WPS_NFC-y-build-without-CONFIG_P2P-y.patch
@@ -0,0 +1,121 @@
+From 88853aedf6cc4a152442b5bb2c4946683df6ff66 Mon Sep 17 00:00:00 2001
+From: Jouni Malinen <j@w1.fi>
+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 <j@w1.fi>
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+---
+ 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
+
diff --git a/package/wpa_supplicant/wpa_supplicant.mk b/package/wpa_supplicant/wpa_supplicant.mk
index 3802033..9fcda2e 100644
--- a/package/wpa_supplicant/wpa_supplicant.mk
+++ b/package/wpa_supplicant/wpa_supplicant.mk
@@ -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
--
1.8.3.2
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [Buildroot] [PATCH 1/3] hostapd: fix static linking
2014-03-04 13:35 [Buildroot] [PATCH 1/3] hostapd: fix static linking Gustavo Zacarias
2014-03-04 13:35 ` [Buildroot] [PATCH 2/3] wpa_supplicant: " Gustavo Zacarias
2014-03-04 13:35 ` [Buildroot] [PATCH 3/3] wpa_supplicant: add fix for WPS NFC support Gustavo Zacarias
@ 2014-03-04 18:35 ` Thomas Petazzoni
2 siblings, 0 replies; 4+ messages in thread
From: Thomas Petazzoni @ 2014-03-04 18:35 UTC (permalink / raw)
To: buildroot
Dear Gustavo Zacarias,
On Tue, 4 Mar 2014 10:35:11 -0300, Gustavo Zacarias wrote:
> 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 <gustavo@zacarias.com.ar>
> ---
> package/hostapd/hostapd.mk | 1 +
> 1 file changed, 1 insertion(+)
All three patches applied, thanks.
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2014-03-04 18:35 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-03-04 13:35 [Buildroot] [PATCH 1/3] hostapd: fix static linking Gustavo Zacarias
2014-03-04 13:35 ` [Buildroot] [PATCH 2/3] wpa_supplicant: " Gustavo Zacarias
2014-03-04 13:35 ` [Buildroot] [PATCH 3/3] wpa_supplicant: add fix for WPS NFC support Gustavo Zacarias
2014-03-04 18:35 ` [Buildroot] [PATCH 1/3] hostapd: fix static linking Thomas Petazzoni
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox