Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 15 Jan 2012 21:34:15 -0800
From:      Devin Teske <devin.teske@fisglobal.com>
To:        Devin Teske <devin.teske@fisglobal.com>
Cc:        FreeBSD Questions <freebsd-questions@freebsd.org>, Dave Robison <Dave.Robison@fisglobal.com>
Subject:   [SOLVED] Re: buildworld -DWITHOUT_OPENSSL fails at usr.sbin/wpa/wpa_supplicant (all) (was usr.sbin/wpa/hostapd (depend) (was: lib/libbsnmp/libbsnmp (all) (was: lib/libarchive (depend))))
Message-ID:  <20FEFC1E-0A83-4365-900E-64B6FC49835D@fisglobal.com>
In-Reply-To: <B010B97F-3C13-480E-BF1C-B1030BFD5E8E@fisglobal.com>
References:  <2F8A82E5-70D7-4A1F-A785-704F41E7DFDA@fisglobal.com> <3489DCF5-0E1F-4F6B-A924-772F6F7B2E18@fisglobal.com> <12FE05E5-A149-43D8-A910-8765B732FE8D@fisglobal.com> <AED014DD-D87C-46C1-8985-85021082A82F@fisglobal.com> <8A9F4627-EE7A-454E-8D6E-B52320F29E24@fisglobal.com> <0BE673CC-3BF9-469A-9CF1-E16E89F75030@fisglobal.com> <B010B97F-3C13-480E-BF1C-B1030BFD5E8E@fisglobal.com>

next in thread | previous in thread | raw e-mail | index | archive | help

On Jan 15, 2012, at 7:28 PM, Devin Teske wrote:

>=20
> On Jan 15, 2012, at 5:57 PM, Devin Teske wrote:
>=20
>>=20
>> On Jan 15, 2012, at 10:43 AM, Devin Teske wrote:
>>=20
>>>=20
>>> On Jan 15, 2012, at 10:11 AM, Devin Teske wrote:
>>>> On Jan 13, 2012, at 7:28 PM, Devin Teske wrote:
>>>>> Trying to buildworld in RELENG_9 with -DWITHOUT_OPENSSL and getting f=
ailures.
>>>>>=20
>>>>> First failure we encountered required the following patch to get past=
 "lib/libarchive (depend)"...
>>>>>=20
>>>>>>=20
>>>>>> --- lib/libarchive/config_freebsd.h.orig	2012-01-05 03:44:55.0000000=
00 -0800
>>>>>> +++ lib/libarchive/config_freebsd.h	2012-01-13 18:43:46.000000000 -0=
800
>>>>>> @@ -176,9 +176,4 @@
>>>>>> #define	ARCHIVE_HASH_SHA256_OPENSSL 1
>>>>>> #define	ARCHIVE_HASH_SHA384_OPENSSL 1
>>>>>> #define	ARCHIVE_HASH_SHA512_OPENSSL 1
>>>>>> -#else
>>>>>> -#define	ARCHIVE_HASH_MD5_LIBC 1
>>>>>> -#define	ARCHIVE_HASH_SHA1_LIBC 1
>>>>>> -#define	ARCHIVE_HASH_SHA256_LIBC 1
>>>>>> -#define	ARCHIVE_HASH_SHA512_LIBC 1
>>>>>> #endif
>>>>>>=20
>>>>>> The above patch allowed the mkdep to succeed and later-compilation i=
n the same directory succeeded (yay).
>>>>>=20
>>>>> However, you don't get far before the next error.
>>>>>=20
>>>>> Making all in lib/libbsnmp/libbsnmp with -DWITHOUT_OPENSSL...
>>>>>=20
>>>>> cc  -I/usr/src/lib/libbsnmp/libbsnmp/../../../contrib/bsnmp/lib -DHAV=
E_ERR_H -DHAVE_GETADDRINFO -DHAVE_STRLCPY -DHAVE_STDINT_H -DHAVE_INTTYPES_H=
 -DQUADFMT=3D'"llu"' -DQUADXFMT=3D'"llx"' -std=3Dgnu99 -fstack-protector -W=
system-headers -Wall -Wno-format-y2k -W -Wno-unused-parameter -Wstrict-prot=
otypes -Wmissing-prototypes -Wpointer-arith -Wreturn-type -Wcast-qual -Wwri=
te-strings -Wswitch -Wshadow -Wunused-parameter -Wcast-align -Wchar-subscri=
pts -Winline -Wnested-externs -Wredundant-decls -Wold-style-definition -Wno=
-pointer-sign -c /usr/src/lib/libbsnmp/libbsnmp/../../../contrib/bsnmp/lib/=
snmpcrypto.c
>>>>> /usr/src/lib/libbsnmp/libbsnmp/../../../contrib/bsnmp/lib/snmpcrypto.=
c:371: error: conflicting types for 'snmp_passwd_to_keys'
>>>>> /usr/src/lib/libbsnmp/libbsnmp/../../../contrib/bsnmp/lib/snmp.h:273:=
 error: previous declaration of 'snmp_passwd_to_keys' was here
>>>>> /usr/src/lib/libbsnmp/libbsnmp/../../../contrib/bsnmp/lib/snmpcrypto.=
c:384: error: conflicting types for 'snmp_get_local_keys'
>>>>> /usr/src/lib/libbsnmp/libbsnmp/../../../contrib/bsnmp/lib/snmp.h:274:=
 error: previous declaration of 'snmp_get_local_keys' was here
>>>>>=20
>>>>=20
>>>> The solution to this appears to be the following patch:
>>>>=20
>>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D BEGIN PATCH =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>>>> --- contrib/bsnmp/lib/snmpcrypto.c.orig	2011-09-22 17:51:37.000000000 =
-0700
>>>> +++ contrib/bsnmp/lib/snmpcrypto.c	2012-01-15 09:49:27.000000000 -0800
>>>> @@ -366,7 +366,7 @@ snmp_pdu_decrypt(const struct snmp_pdu *
>>>> 	return (SNMP_CODE_OK);
>>>> }
>>>>=20
>>>> -int
>>>> +enum snmp_code
>>>> snmp_passwd_to_keys(struct snmp_user *user, char *passwd __unused)
>>>> {
>>>> 	if (user->auth_proto =3D=3D SNMP_AUTH_NOAUTH &&
>>>> @@ -378,7 +378,7 @@ snmp_passwd_to_keys(struct snmp_user *us
>>>> 	return (SNMP_CODE_FAILED);
>>>> }
>>>>=20
>>>> -int
>>>> +enum snmp_code
>>>> snmp_get_local_keys(struct snmp_user *user, uint8_t *eid __unused,
>>>>  uint32_t elen __unused)
>>>> {
>>>>=20
>>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D END PATCH =3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D
>>>>=20
>>>=20
>>> Then you churn along for some lengthy time (even making it all the way =
through clang successfully), but then stop again at usr.sbin/wpa/hostapd (d=
epend) (output at end).
>>>=20
>>> Probably going to be a patch similar to the libarchive one.
>>> --=20
>>> Devin
>>>=20
>>>=20
>>> =3D=3D=3D> usr.sbin/wpa/hostapd (depend)
>>> rm -f .depend
>>> mkdep -f .depend -a    -DDRUID -I/usr/src/usr.sbin/wpa/hostapd -I/usr/s=
rc/usr.sbin/wpa/hostapd/../../../contrib/wpa//src -I/usr/src/usr.sbin/wpa/h=
ostapd/../../../contrib/wpa//src/common -I/usr/src/usr.sbin/wpa/hostapd/../=
../../contrib/wpa//src/crypto -I/usr/src/usr.sbin/wpa/hostapd/../../../cont=
rib/wpa//src/l2_packet -I/usr/src/usr.sbin/wpa/hostapd/../../../contrib/wpa=
//src/utils -DCONFIG_CTRL_IFACE -DCONFIG_CTRL_IFACE_UNIX -I/usr/src/usr.sbi=
n/wpa/hostapd/../../../contrib/wpa//hostapd -I/usr/src/usr.sbin/wpa/hostapd=
/../../../contrib/wpa//src/drivers -DCONFIG_DRIVER_BSD -DHOSTAPD -DCONFIG_D=
RIVER_RADIUS_ACL -DCONFIG_IPV6 -DEAP_TLS_NONE -DINTERNAL_AES -DINTERNAL_SHA=
1 -DINTERNAL_MD5 -I/usr/src/usr.sbin/wpa/hostapd -I/usr/src/usr.sbin/wpa/ho=
stapd/../../../contrib/wpa//src -I/usr/src/usr.sbin/wpa/hostapd/../../../co=
ntrib/wpa//src/common -I/usr/src/usr.sbin/wpa/hostapd/../../../contrib/wpa/=
/src/crypto -I/usr/src/usr.sbin/wpa/hostapd/../../../contrib/wpa//src/l2_pa=
cket -I/usr/src/usr.sbin/wpa/hostapd/../../../contrib/wpa//src/utils -DCONF=
IG_CTRL_IFACE -DCONFIG_CTRL_IFACE_UNIX /usr/src/usr.sbin/wpa/hostapd/../../=
../contrib/wpa//src/ap/accounting.c /usr/src/usr.sbin/wpa/hostapd/../../../=
contrib/wpa//src/crypto/aes-wrap.c /usr/src/usr.sbin/wpa/hostapd/../../../c=
ontrib/wpa//src/ap/ap_config.c /usr/src/usr.sbin/wpa/hostapd/../../../contr=
ib/wpa//src/ap/ap_drv_ops.c /usr/src/usr.sbin/wpa/hostapd/../../../contrib/=
wpa//src/ap/ap_mlme.c /usr/src/usr.sbin/wpa/hostapd/../../../contrib/wpa//s=
rc/ap/authsrv.c /usr/src/usr.sbin/wpa/hostapd/../../../contrib/wpa//src/eap=
_common/chap.c /usr/src/usr.sbin/wpa/hostapd/../../../contrib/wpa//src/util=
s/common.c /usr/src/usr.sbin/wpa/hostapd/../../../contrib/wpa//hostapd/conf=
ig_file.c /usr/src/usr.sbin/wpa/hostapd/../../../contrib/wpa//hostapd/ctrl_=
iface.c /usr/src/usr.sbin/wpa/hostapd/../../../contrib/wpa//src/crypto/cryp=
to_openssl.c /usr/src/usr.sbin/wpa/hostapd/../../../contrib/wpa//src/ap/ctr=
l_iface_ap.c /usr/src/usr.sbin/wpa/hostapd/../../../contrib/wpa//src/driver=
s/drivers.c /usr/src/usr.sbin/wpa/hostapd/../../../contrib/wpa//src/ap/drv_=
callbacks.c /usr/src/usr.sbin/wpa/hostapd/../../../contrib/wpa//hostapd/dum=
p_state.c /usr/src/usr.sbin/wpa/hostapd/../../../contrib/wpa//src/eap_commo=
n/eap_common.c /usr/src/usr.sbin/wpa/hostapd/../../../contrib/wpa//src/eap_=
common/eap_peap_common.c /usr/src/usr.sbin/wpa/hostapd/../../../contrib/wpa=
//hostapd/eap_register.c /usr/src/usr.sbin/wpa/hostapd/../../../contrib/wpa=
//src/eap_server/eap_server.c /usr/src/usr.sbin/wpa/hostapd/../../../contri=
b/wpa//src/eap_server/eap_server_gtc.c /usr/src/usr.sbin/wpa/hostapd/../../=
../contrib/wpa//src/eap_server/eap_server_identity.c /usr/src/usr.sbin/wpa/=
hostapd/../../../contrib/wpa//src/eap_server/eap_server_md5.c /usr/src/usr.=
sbin/wpa/hostapd/../../../contrib/wpa//src/eap_server/eap_server_methods.c =
/usr/src/usr.sbin/wpa/hostapd/../../../contrib/wpa//src/eap_server/eap_serv=
er_mschapv2.c /usr/src/usr.sbin/wpa/hostapd/../../../contrib/wpa//src/eap_s=
erver/eap_server_peap.c /usr/src/usr.sbin/wpa/hostapd/../../../contrib/wpa/=
/src/eap_server/eap_server_tls.c /usr/src/usr.sbin/wpa/hostapd/../../../con=
trib/wpa//src/eap_server/eap_server_tls_common.c /usr/src/usr.sbin/wpa/host=
apd/../../../contrib/wpa//src/eap_server/eap_server_ttls.c /usr/src/usr.sbi=
n/wpa/hostapd/../../../contrib/wpa//src/eapol_auth/eapol_auth_dump.c /usr/s=
rc/usr.sbin/wpa/hostapd/../../../contrib/wpa//src/eapol_auth/eapol_auth_sm.=
c /usr/src/usr.sbin/wpa/hostapd/../../../contrib/wpa//src/utils/eloop.c /us=
r/src/usr.sbin/wpa/hostapd/../../../contrib/wpa//src/ap/hostapd.c /usr/src/=
usr.sbin/wpa/hostapd/../../../contrib/wpa//src/ap/ieee802_11_auth.c /usr/sr=
c/usr.sbin/wpa/hostapd/../../../contrib/wpa//src/common/ieee802_11_common.c=
 /usr/src/usr.sbin/wpa/hostapd/../../../contrib/wpa//src/ap/ieee802_11_ht.c=
 /usr/src/usr.sbin/wpa/hostapd/../../../contrib/wpa//src/ap/ieee802_1x.c /u=
sr/src/usr.sbin/wpa/hostapd/../../../contrib/wpa//src/utils/ip_addr.c /usr/=
src/usr.sbin/wpa/hostapd/../../../contrib/wpa//src/crypto/md5.c /usr/src/us=
r.sbin/wpa/hostapd/../../../contrib/wpa//hostapd/main.c /usr/src/usr.sbin/w=
pa/hostapd/../../../contrib/wpa//src/crypto/ms_funcs.c /usr/src/usr.sbin/wp=
a/hostapd/../../../contrib/wpa//src/ap/peerkey_auth.c /usr/src/usr.sbin/wpa=
/hostapd/../../../contrib/wpa//src/ap/pmksa_cache_auth.c /usr/src/usr.sbin/=
wpa/hostapd/../../../contrib/wpa//src/ap/preauth_auth.c /usr/src/usr.sbin/w=
pa/hostapd/../../../contrib/wpa//src/radius/radius.c /usr/src/usr.sbin/wpa/=
hostapd/../../../contrib/wpa//src/radius/radius_client.c /usr/src/usr.sbin/=
wpa/hostapd/../../../contrib/wpa//src/ap/sta_info.c /usr/src/usr.sbin/wpa/h=
ostapd/../../../contrib/wpa//src/crypto/sha1-pbkdf2.c /usr/src/usr.sbin/wpa=
/hostapd/../../../contrib/wpa//src/crypto/sha1-tlsprf.c /usr/src/usr.sbin/w=
pa/hostapd/../../../contrib/wpa//src/crypto/sha1-tprf.c /usr/src/usr.sbin/w=
pa/hostapd/../../../contrib/wpa//src/crypto/sha1.c /usr/src/usr.sbin/wpa/ho=
stapd/../../../contrib/wpa//src/ap/tkip_countermeasures.c /usr/src/usr.sbin=
/wpa/hostapd/../../../contrib/wpa//src/ap/utils.c /usr/src/usr.sbin/wpa/hos=
tapd/../../../contrib/wpa//src/ap/vlan_init.c /usr/src/usr.sbin/wpa/hostapd=
/../../../contrib/wpa//src/ap/wpa_auth.c /usr/src/usr.sbin/wpa/hostapd/../.=
./../contrib/wpa//src/ap/wpa_auth_glue.c /usr/src/usr.sbin/wpa/hostapd/../.=
./../contrib/wpa//src/ap/wpa_auth_ie.c /usr/src/usr.sbin/wpa/hostapd/../../=
../contrib/wpa//src/common/wpa_common.c /usr/src/usr.sbin/wpa/hostapd/../..=
/../contrib/wpa//src/utils/wpa_debug.c /usr/src/usr.sbin/wpa/hostapd/../../=
../contrib/wpa//src/utils/wpabuf.c /usr/src/usr.sbin/wpa/hostapd/../../../c=
ontrib/wpa//src/l2_packet/l2_packet_freebsd.c /usr/src/usr.sbin/wpa/hostapd=
/driver_freebsd.c /usr/src/usr.sbin/wpa/hostapd/../../../contrib/wpa//src/u=
tils/os_unix.c /usr/src/usr.sbin/wpa/hostapd/../../../contrib/wpa//src/cryp=
to/tls_none.c
>>> /usr/src/usr.sbin/wpa/hostapd/../../../contrib/wpa//src/crypto/crypto_o=
penssl.c:16:30: error: openssl/opensslv.h: No such file or directory
>>> /usr/src/usr.sbin/wpa/hostapd/../../../contrib/wpa//src/crypto/crypto_o=
penssl.c:17:25: error: openssl/err.h: No such file or directory
>>> /usr/src/usr.sbin/wpa/hostapd/../../../contrib/wpa//src/crypto/crypto_o=
penssl.c:18:25: error: openssl/des.h: No such file or directory
>>> /usr/src/usr.sbin/wpa/hostapd/../../../contrib/wpa//src/crypto/crypto_o=
penssl.c:19:25: error: openssl/aes.h: No such file or directory
>>> /usr/src/usr.sbin/wpa/hostapd/../../../contrib/wpa//src/crypto/crypto_o=
penssl.c:20:24: error: openssl/bn.h: No such file or directory
>>> /usr/src/usr.sbin/wpa/hostapd/../../../contrib/wpa//src/crypto/crypto_o=
penssl.c:21:25: error: openssl/evp.h: No such file or directory
>>> /usr/src/usr.sbin/wpa/hostapd/../../../contrib/wpa//src/crypto/crypto_o=
penssl.c:22:24: error: openssl/dh.h: No such file or directory
>>> mkdep: compile failed
>>> *** Error code 1
>>>=20
>>> Stop in /usr/src/usr.sbin/wpa/hostapd.
>>> *** Error code 1
>>=20
>> Quick and dirty way around this one is the following patch:
>>=20
>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D BEGIN PATCH =3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D
>> --- usr.sbin/wpa/hostapd/Makefile.orig	2011-09-22 17:51:37.000000000 -07=
00
>> +++ usr.sbin/wpa/hostapd/Makefile	2012-01-15 11:01:49.000000000 -0800
>> @@ -14,7 +14,7 @@
>> PROG=3D	hostapd
>> SRCS=3D	accounting.c aes-wrap.c ap_config.c \
>> 	ap_drv_ops.c ap_mlme.c authsrv.c \
>> -	chap.c common.c config_file.c ctrl_iface.c crypto_openssl.c \
>> +	chap.c common.c config_file.c ctrl_iface.c \
>> 	ctrl_iface_ap.c drivers.c drv_callbacks.c dump_state.c \
>> 	eap_common.c eap_peap_common.c eap_register.c eap_server.c \
>> 	eap_server_gtc.c eap_server_identity.c eap_server_md5.c \
>> @@ -28,6 +28,9 @@
>> 	tkip_countermeasures.c utils.c \
>> 	vlan_init.c wpa_auth.c wpa_auth_glue.c wpa_auth_ie.c wpa_common.c \
>> 	wpa_debug.c wpabuf.c
>> +.if ${MK_OPENSSL} !=3D "no"
>> +SRCS+=3D	crypto_openssl.c=20
>> +.endif
>> SRCS+=3D	l2_packet_freebsd.c driver_freebsd.c os_unix.c
>>=20
>> MAN=3D	hostapd.8 hostapd.conf.5
>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D END PATCH =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>>=20
>> And that gets you a bit further, stopping next at "usr.sbin/wpa/wpa_supp=
licant" making all.
>>=20
>> Error is:
>>=20
>> cc  -I/usr/src/usr.sbin/wpa/wpa_supplicant -I/usr/src/usr.sbin/wpa/wpa_s=
upplicant/../../../contrib/wpa//src -I/usr/src/usr.sbin/wpa/wpa_supplicant/=
../../../contrib/wpa//src/common -I/usr/src/usr.sbin/wpa/wpa_supplicant/../=
../../contrib/wpa//src/crypto -I/usr/src/usr.sbin/wpa/wpa_supplicant/../../=
../contrib/wpa//src/l2_packet -I/usr/src/usr.sbin/wpa/wpa_supplicant/../../=
../contrib/wpa//src/utils -DCONFIG_CTRL_IFACE -DCONFIG_CTRL_IFACE_UNIX -I/u=
sr/src/usr.sbin/wpa/wpa_supplicant/../../../contrib/wpa//wpa_supplicant -I/=
usr/src/usr.sbin/wpa/wpa_supplicant/../../../contrib/wpa//src/drivers -I/us=
r/src/usr.sbin/wpa/wpa_supplicant/../../../contrib/wpa//src/rsn_supp -DCONF=
IG_DRIVER_BSD -DCONFIG_DRIVER_NDIS -DCONFIG_DRIVER_WIRED -DCONFIG_TERMINATE=
_ONLASTIF -DCONFIG_DEBUG_SYSLOG -DCONFIG_BACKEND_FILE  -DIEEE8021X_EAPOL -D=
EAP_TLS_NONE -DINTERNAL_AES -DINTERNAL_SHA1 -DINTERNAL_MD5 -I/usr/src/usr.s=
bin/wpa/wpa_supplicant -I/usr/src/usr.sbin/wpa/wpa_supplicant/../../../cont=
rib/wpa//src -I/usr/src/usr.sbin/wpa/wpa_supplicant/../../../contrib/wpa//s=
rc/common -I/usr/src/usr.sbin/wpa/wpa_supplicant/../../../contrib/wpa//src/=
crypto -I/usr/src/usr.sbin/wpa/wpa_supplicant/../../../contrib/wpa//src/l2_=
packet -I/usr/src/usr.sbin/wpa/wpa_supplicant/../../../contrib/wpa//src/uti=
ls -DCONFIG_CTRL_IFACE -DCONFIG_CTRL_IFACE_UNIX -std=3Dgnu99 -fstack-protec=
tor   -o wpa_supplicant aes-cbc.o aes-ctr.o aes-eax.o aes-encblock.o aes-in=
ternal.o aes-omac1.o aes-unwrap.o aes-wrap.o bss.o blacklist.o common.o con=
fig.o ctrl_iface.o ctrl_iface_unix.o drivers.o eloop.o events.o l2_packet_f=
reebsd.o main.o md5.o notify.o preauth.o pmksa_cache.o scan.o sha1-pbkdf2.o=
 sha1-tlsprf.o sha1-tprf.o sha1.o wpa.o wpa_common.o wpa_debug.o wpa_ie.o w=
pa_supplicant.o wpabuf.o wpas_glue.o driver_ndis.o Packet32.o driver_wired.=
o driver_freebsd.o os_unix.o config_file.o base64.o eapol_supp_sm.o eap.o e=
ap_common.o eap_methods.o eap_register.o tls_none.o -lpcap=20
>> aes-cbc.o: In function `aes_128_cbc_encrypt':
>> aes-cbc.c:(.text+0x37): undefined reference to `aes_encrypt_init'
>> aes-cbc.c:(.text+0xba): undefined reference to `aes_encrypt'
>> aes-cbc.c:(.text+0xe6): undefined reference to `aes_encrypt_deinit'
>> aes-cbc.o: In function `aes_128_cbc_decrypt':
>> aes-cbc.c:(.text+0x147): undefined reference to `aes_decrypt_init'
>> aes-cbc.c:(.text+0x1a7): undefined reference to `aes_decrypt'
>> aes-cbc.c:(.text+0x20c): undefined reference to `aes_decrypt_deinit'
>> aes-ctr.o: In function `aes_128_ctr_encrypt':
>> aes-ctr.c:(.text+0x42): undefined reference to `aes_encrypt_init'
>> aes-ctr.c:(.text+0x84): undefined reference to `aes_encrypt'
>> aes-ctr.c:(.text+0x12d): undefined reference to `aes_encrypt_deinit'
>> aes-encblock.o: In function `aes_128_encrypt_block':
>> aes-encblock.c:(.text+0x1e): undefined reference to `aes_encrypt_init'
>> aes-encblock.c:(.text+0x43): undefined reference to `aes_encrypt'
>> aes-encblock.c:(.text+0x4c): undefined reference to `aes_encrypt_deinit'
>> aes-omac1.o: In function `omac1_aes_128_vector':
>> aes-omac1.c:(.text+0xdf): undefined reference to `aes_encrypt_init'
>> aes-omac1.c:(.text+0x204): undefined reference to `aes_encrypt'
>> aes-omac1.c:(.text+0x238): undefined reference to `aes_encrypt'
>> aes-omac1.c:(.text+0x32d): undefined reference to `aes_encrypt'
>> aes-omac1.c:(.text+0x336): undefined reference to `aes_encrypt_deinit'
>> aes-unwrap.o: In function `aes_unwrap':
>> aes-unwrap.c:(.text+0x62): undefined reference to `aes_decrypt_init'
>> aes-unwrap.c:(.text+0xfb): undefined reference to `aes_decrypt'
>> aes-unwrap.c:(.text+0x14d): undefined reference to `aes_decrypt_deinit'
>> aes-wrap.o: In function `aes_wrap':
>> aes-wrap.c:(.text+0x6b): undefined reference to `aes_encrypt_init'
>> aes-wrap.c:(.text+0xdf): undefined reference to `aes_encrypt'
>> aes-wrap.c:(.text+0x15b): undefined reference to `aes_encrypt_deinit'
>> md5.o: In function `hmac_md5_vector':
>> md5.c:(.text+0x80): undefined reference to `md5_vector'
>> md5.c:(.text+0x198): undefined reference to `md5_vector'
>> md5.c:(.text+0x24d): undefined reference to `md5_vector'
>> sha1.o: In function `hmac_sha1_vector':
>> sha1.c:(.text+0x80): undefined reference to `sha1_vector'
>> sha1.c:(.text+0x198): undefined reference to `sha1_vector'
>> sha1.c:(.text+0x24d): undefined reference to `sha1_vector'
>> wpa.o: In function `wpa_supplicant_process_1_of_2_wpa':
>> wpa.c:(.text+0x2bc1): undefined reference to `rc4_skip'
>> wpa.o: In function `wpa_supplicant_decrypt_key_data':
>> wpa.c:(.text+0x34a6): undefined reference to `rc4_skip'
>> eapol_supp_sm.o: In function `eapol_sm_processKey':
>> eapol_supp_sm.c:(.text+0x1846): undefined reference to `rc4_skip'
>> eap.o: In function `eap_sm_parseEapReq':
>> eap.c:(.text+0x2362): undefined reference to `md5_vector'
>> *** Error code 1
>>=20
>> Stop in /usr/src/usr.sbin/wpa/wpa_supplicant.
>> *** Error code 1
>>=20
>> I'm seeing that the INTERNAL_MD5 stuff was removed from src/contrib/wpa/=
src/crypto/md5.c
>>=20
>=20
>=20
> to answer myself... moved to src/contrib/wpa/src/crypto/md5-internal.c wh=
ich isn't being included when -DWITHOUT_OPENSSL is passed to buildworld.
>=20
> This patch does the job to get past that...
>=20
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D BEGIN PATCH =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> --- usr.sbin/wpa/wpa_supplicant/Makefile.orig   2011-09-22 17:51:37.00000=
0000 -0700
> +++ usr.sbin/wpa/wpa_supplicant/Makefile        2012-01-15 18:57:58.00000=
0000 -0800
> @@ -20,6 +20,10 @@
>        driver_ndis.c Packet32.c \
>        driver_wired.c \
>        driver_freebsd.c os_unix.c
> +.if ${MK_OPENSSL} =3D=3D "no"
> +SRCS+=3D aes-internal-dec.c aes-internal-enc.c md5-internal.c sha1-inter=
nal.c \
> +       rc4.c
> +.endif
>=20
> MAN=3D   wpa_supplicant.8 wpa_supplicant.conf.5
>=20
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D END PATCH =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>=20
> However, now I have to go back and add-to my earlier patch to src/usr.sbi=
n/wpa/hostapd/Makefile as this is the next roadblock:
>=20
> =3D=3D=3D> usr.sbin/wpa/hostapd (all)
> make: don't know how to make /usr/obj/usr/src/tmp/usr/lib/libssl.a. Stop
>=20

I revised my earlier patch to src/usr.sbin/wpa/hostapd/Makefile...

=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D BEGIN PATCH =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- usr.sbin/wpa/hostapd/Makefile.orig	2011-09-22 17:51:37.000000000 -0700
+++ usr.sbin/wpa/hostapd/Makefile	2012-01-15 21:08:02.000000000 -0800
@@ -9,12 +9,13 @@
 	${WPA_DISTDIR}/src/eapol_auth \
 	${WPA_DISTDIR}/src/drivers \
 	${WPA_DISTDIR}/src/radius \
+	${WPA_DISTDIR}/src/crypto \
 	${WPA_DISTDIR}
=20
 PROG=3D	hostapd
 SRCS=3D	accounting.c aes-wrap.c ap_config.c \
 	ap_drv_ops.c ap_mlme.c authsrv.c \
-	chap.c common.c config_file.c ctrl_iface.c crypto_openssl.c \
+	chap.c common.c config_file.c ctrl_iface.c \
 	ctrl_iface_ap.c drivers.c drv_callbacks.c dump_state.c \
 	eap_common.c eap_peap_common.c eap_register.c eap_server.c \
 	eap_server_gtc.c eap_server_identity.c eap_server_md5.c \
@@ -28,6 +29,12 @@
 	tkip_countermeasures.c utils.c \
 	vlan_init.c wpa_auth.c wpa_auth_glue.c wpa_auth_ie.c wpa_common.c \
 	wpa_debug.c wpabuf.c
+.if ${MK_OPENSSL} !=3D "no"
+SRCS+=3D	crypto_openssl.c=20
+.else
+SRCS+=3D	aes-internal.c aes-internal-enc.c des-internal.c md4-internal.c \
+	md5-internal.c rc4.c sha1-internal.c
+.endif
 SRCS+=3D	l2_packet_freebsd.c driver_freebsd.c os_unix.c
=20
 MAN=3D	hostapd.8 hostapd.conf.5
@@ -46,8 +53,8 @@
 CFLAGS+=3D -DCONFIG_IPV6
 .endif
 #CFLAGS+=3D -g
-DPADD+=3D	${LIBPCAP} ${LIBSSL}
-LDADD+=3D	-lpcap -lssl
+DPADD+=3D	${LIBPCAP}
+LDADD+=3D	-lpcap
=20
 # User customizations for wpa_supplicant/hostapd build environment
 CFLAGS+=3D${HOSTAPD_CFLAGS}
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D END PATCH =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

And success! Voila!

To recap, in order to compile cleanly with -DWITHOUT_OPENSSL, I had to patc=
h the following four (4) files:

	src/contrib/bsnmp/lib/snmpcrypto.c
	src/lib/libarchve/config_freebsd.h
	src/usr.sbin/wpa/hostapd/Makefile
	src/usr.sbin/wpa/wpa_supplicant/Makefile

All patches above (in reply-text).

I'll file a PR tomorrow, containing the above patches, restoring the abilit=
y to buildworld without openssl.
--=20
Devin

_____________
The information contained in this message is proprietary and/or confidentia=
l. If you are not the intended recipient, please: (i) delete the message an=
d all copies; (ii) do not disclose, distribute or use the message in any ma=
nner; and (iii) notify the sender immediately. In addition, please be aware=
 that any message addressed to our domain is subject to archiving and revie=
w by persons other than the intended recipient. Thank you.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20FEFC1E-0A83-4365-900E-64B6FC49835D>