Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [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