From 6035969e0ea91d032f9e6739e66146c2f14c17e6 Mon Sep 17 00:00:00 2001 From: Jouni Malinen Date: Sat, 27 Feb 2021 23:42:21 +0200 Subject: [PATCH] Fix dynamic EAP library building Build eap_*.so into the wpa_supplicant similarly with the wpa_supplicant binary and include the shared helper functions from additional files into the builds. This got broken at some point with the build system changes. Signed-off-by: Jouni Malinen --- src/eap_peer/Makefile | 6 -- wpa_supplicant/Makefile | 151 +++++++++++++++++++++++++--------------- 2 files changed, 94 insertions(+), 63 deletions(-) diff --git a/src/eap_peer/Makefile b/src/eap_peer/Makefile index bdbead6a6..076d8c079 100644 --- a/src/eap_peer/Makefile +++ b/src/eap_peer/Makefile @@ -5,9 +5,3 @@ LIB_OBJS= \ eap_methods.o include ../lib.rules - -install: - if ls *.so >/dev/null 2>&1; then \ - install -d $(DESTDIR)$(LIBDIR)/wpa_supplicant && \ - cp *.so $(DESTDIR)$(LIBDIR)/wpa_supplicant \ - ; fi diff --git a/wpa_supplicant/Makefile b/wpa_supplicant/Makefile index bc3aa1d1c..ce70c4ddc 100644 --- a/wpa_supplicant/Makefile +++ b/wpa_supplicant/Makefile @@ -72,6 +72,10 @@ ifdef CONFIG_BUILD_WPA_CLIENT_SO install -m 0644 -D libwpa_client.so $(DESTDIR)/$(LIBDIR)/libwpa_client.so install -m 0644 -D ../src/common/wpa_ctrl.h $(DESTDIR)/$(INCDIR)/wpa_ctrl.h endif + if ls eap_*.so >/dev/null 2>&1; then \ + install -d $(DESTDIR)$(LIBDIR)/wpa_supplicant && \ + cp *.so $(DESTDIR)$(LIBDIR)/wpa_supplicant \ + ; fi ifdef CONFIG_FIPS CONFIG_NO_RANDOM_POOL= @@ -466,7 +470,7 @@ ifdef CONFIG_EAP_TLS # EAP-TLS ifeq ($(CONFIG_EAP_TLS), dyn) CFLAGS += -DEAP_TLS_DYNAMIC -EAPDYN += ../src/eap_peer/eap_tls.so +EAPDYN += eap_tls.so else CFLAGS += -DEAP_TLS OBJS += ../src/eap_peer/eap_tls.o @@ -487,13 +491,13 @@ endif ifdef CONFIG_EAP_PEAP # EAP-PEAP +SRC_EAP_PEAP = ../src/eap_peer/eap_peap.c ../src/eap_common/eap_peap_common.c ifeq ($(CONFIG_EAP_PEAP), dyn) CFLAGS += -DEAP_PEAP_DYNAMIC -EAPDYN += ../src/eap_peer/eap_peap.so +EAPDYN += eap_peap.so else CFLAGS += -DEAP_PEAP -OBJS += ../src/eap_peer/eap_peap.o -OBJS += ../src/eap_common/eap_peap_common.o +OBJS += $(patsubst %.c, %.o, $(SRC_EAP_PEAP)) endif TLS_FUNCS=y CONFIG_IEEE8021X_EAPOL=y @@ -503,7 +507,7 @@ ifdef CONFIG_EAP_TTLS # EAP-TTLS ifeq ($(CONFIG_EAP_TTLS), dyn) CFLAGS += -DEAP_TTLS_DYNAMIC -EAPDYN += ../src/eap_peer/eap_ttls.so +EAPDYN += eap_ttls.so else CFLAGS += -DEAP_TTLS OBJS += ../src/eap_peer/eap_ttls.o @@ -520,7 +524,7 @@ ifdef CONFIG_EAP_MD5 # EAP-MD5 ifeq ($(CONFIG_EAP_MD5), dyn) CFLAGS += -DEAP_MD5_DYNAMIC -EAPDYN += ../src/eap_peer/eap_md5.so +EAPDYN += eap_md5.so else CFLAGS += -DEAP_MD5 OBJS += ../src/eap_peer/eap_md5.o @@ -538,14 +542,13 @@ endif ifdef CONFIG_EAP_MSCHAPV2 # EAP-MSCHAPv2 +SRC_EAP_MSCHAPV2 = ../src/eap_peer/eap_mschapv2.c ../src/eap_peer/mschapv2.c ifeq ($(CONFIG_EAP_MSCHAPV2), dyn) CFLAGS += -DEAP_MSCHAPv2_DYNAMIC -EAPDYN += ../src/eap_peer/eap_mschapv2.so -EAPDYN += ../src/eap_peer/mschapv2.so +EAPDYN += eap_mschapv2.so else CFLAGS += -DEAP_MSCHAPv2 -OBJS += ../src/eap_peer/eap_mschapv2.o -OBJS += ../src/eap_peer/mschapv2.o +OBJS += $(patsubst %.c, %.o, $(SRC_EAP_MSCHAPV2)) endif MS_FUNCS=y CONFIG_IEEE8021X_EAPOL=y @@ -555,7 +558,7 @@ ifdef CONFIG_EAP_GTC # EAP-GTC ifeq ($(CONFIG_EAP_GTC), dyn) CFLAGS += -DEAP_GTC_DYNAMIC -EAPDYN += ../src/eap_peer/eap_gtc.so +EAPDYN += eap_gtc.so else CFLAGS += -DEAP_GTC OBJS += ../src/eap_peer/eap_gtc.o @@ -567,7 +570,7 @@ ifdef CONFIG_EAP_OTP # EAP-OTP ifeq ($(CONFIG_EAP_OTP), dyn) CFLAGS += -DEAP_OTP_DYNAMIC -EAPDYN += ../src/eap_peer/eap_otp.so +EAPDYN += eap_otp.so else CFLAGS += -DEAP_OTP OBJS += ../src/eap_peer/eap_otp.o @@ -579,7 +582,7 @@ ifdef CONFIG_EAP_SIM # EAP-SIM ifeq ($(CONFIG_EAP_SIM), dyn) CFLAGS += -DEAP_SIM_DYNAMIC -EAPDYN += ../src/eap_peer/eap_sim.so +EAPDYN += eap_sim.so else CFLAGS += -DEAP_SIM OBJS += ../src/eap_peer/eap_sim.o @@ -593,7 +596,7 @@ ifdef CONFIG_EAP_LEAP # EAP-LEAP ifeq ($(CONFIG_EAP_LEAP), dyn) CFLAGS += -DEAP_LEAP_DYNAMIC -EAPDYN += ../src/eap_peer/eap_leap.so +EAPDYN += eap_leap.so else CFLAGS += -DEAP_LEAP OBJS += ../src/eap_peer/eap_leap.o @@ -604,12 +607,13 @@ endif ifdef CONFIG_EAP_PSK # EAP-PSK +SRC_EAP_PSK = ../src/eap_peer/eap_psk.c ../src/eap_common/eap_psk_common.c ifeq ($(CONFIG_EAP_PSK), dyn) CFLAGS += -DEAP_PSK_DYNAMIC -EAPDYN += ../src/eap_peer/eap_psk.so +EAPDYN += eap_psk.so else CFLAGS += -DEAP_PSK -OBJS += ../src/eap_peer/eap_psk.o ../src/eap_common/eap_psk_common.o +OBJS += $(patsubst %.c, %.o, $(SRC_EAP_PSK)) endif CONFIG_IEEE8021X_EAPOL=y NEED_AES=y @@ -621,7 +625,7 @@ ifdef CONFIG_EAP_AKA # EAP-AKA ifeq ($(CONFIG_EAP_AKA), dyn) CFLAGS += -DEAP_AKA_DYNAMIC -EAPDYN += ../src/eap_peer/eap_aka.so +EAPDYN += eap_aka.so else CFLAGS += -DEAP_AKA OBJS += ../src/eap_peer/eap_aka.o @@ -655,14 +659,14 @@ endif ifdef CONFIG_EAP_FAST # EAP-FAST +SRC_EAP_FAST = ../src/eap_peer/eap_fast.c ../src/eap_peer/eap_fast_pac.c +SRC_EAP_FAST += ../src/eap_common/eap_fast_common.c ifeq ($(CONFIG_EAP_FAST), dyn) CFLAGS += -DEAP_FAST_DYNAMIC -EAPDYN += ../src/eap_peer/eap_fast.so -EAPDYN += ../src/eap_common/eap_fast_common.o +EAPDYN += eap_fast.so else CFLAGS += -DEAP_FAST -OBJS += ../src/eap_peer/eap_fast.o ../src/eap_peer/eap_fast_pac.o -OBJS += ../src/eap_common/eap_fast_common.o +OBJS += $(patsubst %.c, %.o, $(SRC_EAP_FAST)) endif TLS_FUNCS=y CONFIG_IEEE8021X_EAPOL=y @@ -671,14 +675,14 @@ endif ifdef CONFIG_EAP_TEAP # EAP-TEAP +SRC_EAP_TEAP = ../src/eap_peer/eap_teap.c ../src/eap_peer/eap_teap_pac.c +SRC_EAP_TEAP += ../src/eap_common/eap_teap_common.c ifeq ($(CONFIG_EAP_TEAP), dyn) CFLAGS += -DEAP_TEAP_DYNAMIC -EAPDYN += ../src/eap_peer/eap_teap.so -EAPDYN += ../src/eap_common/eap_teap_common.o +EAPDYN += eap_teap.so else CFLAGS += -DEAP_TEAP -OBJS += ../src/eap_peer/eap_teap.o ../src/eap_peer/eap_teap_pac.o -OBJS += ../src/eap_common/eap_teap_common.o +OBJS += $(patsubst %.c, %.o, $(SRC_EAP_TEAP)) endif TLS_FUNCS=y CONFIG_IEEE8021X_EAPOL=y @@ -690,36 +694,39 @@ endif ifdef CONFIG_EAP_PAX # EAP-PAX +SRC_EAP_PAX = ../src/eap_peer/eap_pax.c ../src/eap_common/eap_pax_common.c ifeq ($(CONFIG_EAP_PAX), dyn) CFLAGS += -DEAP_PAX_DYNAMIC -EAPDYN += ../src/eap_peer/eap_pax.so +EAPDYN += eap_pax.so else CFLAGS += -DEAP_PAX -OBJS += ../src/eap_peer/eap_pax.o ../src/eap_common/eap_pax_common.o +OBJS += $(patsubst %.c, %.o, $(SRC_EAP_PAX)) endif CONFIG_IEEE8021X_EAPOL=y endif ifdef CONFIG_EAP_SAKE # EAP-SAKE +SRC_EAP_SAKE = ../src/eap_peer/eap_sake.c ../src/eap_common/eap_sake_common.c ifeq ($(CONFIG_EAP_SAKE), dyn) CFLAGS += -DEAP_SAKE_DYNAMIC -EAPDYN += ../src/eap_peer/eap_sake.so +EAPDYN += eap_sake.so else CFLAGS += -DEAP_SAKE -OBJS += ../src/eap_peer/eap_sake.o ../src/eap_common/eap_sake_common.o +OBJS += $(patsubst %.c, %.o, $(SRC_EAP_SAKE)) endif CONFIG_IEEE8021X_EAPOL=y endif ifdef CONFIG_EAP_GPSK # EAP-GPSK +SRC_EAP_GPSK = ../src/eap_peer/eap_gpsk.c ../src/eap_common/eap_gpsk_common.c ifeq ($(CONFIG_EAP_GPSK), dyn) CFLAGS += -DEAP_GPSK_DYNAMIC -EAPDYN += ../src/eap_peer/eap_gpsk.so +EAPDYN += eap_gpsk.so else CFLAGS += -DEAP_GPSK -OBJS += ../src/eap_peer/eap_gpsk.o ../src/eap_common/eap_gpsk_common.o +OBJS += $(patsubst %.c, %.o, $(SRC_EAP_GPSK)) endif CONFIG_IEEE8021X_EAPOL=y ifdef CONFIG_EAP_GPSK_SHA256 @@ -740,12 +747,13 @@ endif ifdef CONFIG_EAP_EKE # EAP-EKE +SRC_EAP_EKE = ../src/eap_peer/eap_eke.c ../src/eap_common/eap_eke_common.c ifeq ($(CONFIG_EAP_EKE), dyn) CFLAGS += -DEAP_EKE_DYNAMIC -EAPDYN += ../src/eap_peer/eap_eke.so +EAPDYN += eap_eke.so else CFLAGS += -DEAP_EKE -OBJS += ../src/eap_peer/eap_eke.o ../src/eap_common/eap_eke_common.o +OBJS += $(patsubst %.c, %.o, $(SRC_EAP_EKE)) endif CONFIG_IEEE8021X_EAPOL=y NEED_DH_GROUPS=y @@ -820,14 +828,16 @@ endif ifdef CONFIG_EAP_IKEV2 # EAP-IKEv2 +SRC_EAP_IKEV2 = ../src/eap_peer/eap_ikev2.c +SRC_EAP_IKEV2 += ../src/eap_peer/ikev2.c +SRC_EAP_IKEV2 += ../src/eap_common/eap_ikev2_common.c +SRC_EAP_IKEV2 += ../src/eap_common/ikev2_common.c ifeq ($(CONFIG_EAP_IKEV2), dyn) CFLAGS += -DEAP_IKEV2_DYNAMIC -EAPDYN += ../src/eap_peer/eap_ikev2.so ../src/eap_peer/ikev2.o -EAPDYN += ../src/eap_common/eap_ikev2_common.o ../src/eap_common/ikev2_common.o +EAPDYN += eap_ikev2.so else CFLAGS += -DEAP_IKEV2 -OBJS += ../src/eap_peer/eap_ikev2.o ../src/eap_peer/ikev2.o -OBJS += ../src/eap_common/eap_ikev2_common.o ../src/eap_common/ikev2_common.o +OBJS += $(patsubst %.c, %.o, $(SRC_EAP_IKEV2)) endif CONFIG_IEEE8021X_EAPOL=y NEED_DH_GROUPS=y @@ -839,7 +849,7 @@ endif ifdef CONFIG_EAP_VENDOR_TEST ifeq ($(CONFIG_EAP_VENDOR_TEST), dyn) CFLAGS += -DEAP_VENDOR_TEST_DYNAMIC -EAPDYN += ../src/eap_peer/eap_vendor_test.so +EAPDYN += eap_vendor_test.so else CFLAGS += -DEAP_VENDOR_TEST OBJS += ../src/eap_peer/eap_vendor_test.o @@ -1947,33 +1957,60 @@ win_if_list: win_if_list.c $(Q)$(LDO) $(LDFLAGS) -o $@ win_if_list.c $(CFLAGS) $(LIBS_w) @$(E) " LD " $@ -eap_psk.so: ../src/eap_peer/eap_psk.c ../src/eap_common/eap_psk_common.c - $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \ +eap_psk.so: $(SRC_EAP_PSK) + $(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \ -Deap_peer_psk_register=eap_peer_method_dynamic_init + @$(E) " CC/LD " $@ -eap_pax.so: ../src/eap_peer/eap_pax.c ../src/eap_common/eap_pax_common.c - $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \ - -Deap_peer_pax_register=eap_peer_method_dynamic_init +eap_pax.so: $(SRC_EAP_PAX) + $(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \ + -D$(@F:eap_%.so=eap_peer_%)_register=eap_peer_method_dynamic_init + @$(E) " CC/LD " $@ -eap_sake.so: ../src/eap_peer/eap_sake.c ../src/eap_common/eap_sake_common.c - $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \ - -Deap_peer_sake_register=eap_peer_method_dynamic_init +eap_peap.so: $(SRC_EAP_PEAP) + $(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \ + -D$(@F:eap_%.so=eap_peer_%)_register=eap_peer_method_dynamic_init + @$(E) " CC/LD " $@ -eap_wsc.so: ../src/eap_peer/eap_wsc.c ../src/eap_common/eap_wsc_common.c ../src/wps/wps.c - $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \ - -Deap_peer_wsc_register=eap_peer_method_dynamic_init +eap_sake.so: $(SRC_EAP_SAKE) + $(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \ + -D$(@F:eap_%.so=eap_peer_%)_register=eap_peer_method_dynamic_init + @$(E) " CC/LD " $@ -eap_ikev2.so: ../src/eap_peer/eap_ikev2.c ../src/eap_peer/ikev2.c ../src/eap_common/eap_ikev2_common.o ../src/eap_common/ikev2_common.c - $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \ - -Deap_peer_ikev2_register=eap_peer_method_dynamic_init +eap_ikev2.so: $(SRC_EAP_IKEV2) + $(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \ + -D$(@F:eap_%.so=eap_peer_%)_register=eap_peer_method_dynamic_init + @$(E) " CC/LD " $@ -eap_eke.so: ../src/eap_peer/eap_eke.c ../src/eap_common/eap_eke_common.c - $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \ - -Deap_peer_eke_register=eap_peer_method_dynamic_init +eap_eke.so: $(SRC_EAP_EKE) + $(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \ + -D$(@F:eap_%.so=eap_peer_%)_register=eap_peer_method_dynamic_init + @$(E) " CC/LD " $@ -%.so: %.c - $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $< \ +eap_mschapv2.so: $(SRC_EAP_MSCHAPV2) + $(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \ + -D$(@F:eap_%.so=eap_peer_%)_register=eap_peer_method_dynamic_init + @$(E) " CC/LD " $@ + +eap_fast.so: $(SRC_EAP_FAST) + $(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \ + -D$(@F:eap_%.so=eap_peer_%)_register=eap_peer_method_dynamic_init + @$(E) " CC/LD " $@ + +eap_teap.so: $(SRC_EAP_TEAP) + $(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \ + -D$(@F:eap_%.so=eap_peer_%)_register=eap_peer_method_dynamic_init + @$(E) " CC/LD " $@ + +eap_gpsk.so: $(SRC_EAP_GPSK) + $(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \ + -D$(@F:eap_%.so=eap_peer_%)_register=eap_peer_method_dynamic_init + @$(E) " CC/LD " $@ + +%.so: ../src/eap_peer/%.c + $(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $< \ -D$(*F:eap_%=eap_peer_%)_register=eap_peer_method_dynamic_init + @$(E) " CC/LD " $@ %.service: %.service.in $(Q)sed -e 's|\@BINDIR\@|$(BINDIR)|g' $< >$@