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

> 
> On Jan 15, 2012, at 5:57 PM, Devin Teske wrote:
> 
>> 
>> On Jan 15, 2012, at 10:43 AM, Devin Teske wrote:
>> 
>>> 
>>> 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 
>>>>> failures.
>>>>> 
>>>>> First failure we encountered required the following patch to get past 
>>>>> "lib/libarchive (depend)"...
>>>>> 
>>>>>> 
>>>>>> --- lib/libarchive/config_freebsd.h.orig 2012-01-05 03:44:55.000000000 
>>>>>> -0800
>>>>>> +++ lib/libarchive/config_freebsd.h      2012-01-13 18:43:46.000000000 
>>>>>> -0800
>>>>>> @@ -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
>>>>>> 
>>>>>> The above patch allowed the mkdep to succeed and later-compilation in 
>>>>>> the same directory succeeded (yay).
>>>>> 
>>>>> However, you don't get far before the next error.
>>>>> 
>>>>> Making all in lib/libbsnmp/libbsnmp with -DWITHOUT_OPENSSL...
>>>>> 
>>>>> cc  -I/usr/src/lib/libbsnmp/libbsnmp/../../../contrib/bsnmp/lib 
>>>>> -DHAVE_ERR_H -DHAVE_GETADDRINFO -DHAVE_STRLCPY -DHAVE_STDINT_H 
>>>>> -DHAVE_INTTYPES_H -DQUADFMT='"llu"' -DQUADXFMT='"llx"' -std=gnu99 
>>>>> -fstack-protector -Wsystem-headers -Wall -Wno-format-y2k -W 
>>>>> -Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes 
>>>>> -Wpointer-arith -Wreturn-type -Wcast-qual -Wwrite-strings -Wswitch 
>>>>> -Wshadow -Wunused-parameter -Wcast-align -Wchar-subscripts -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
>>>>> 
>>>> 
>>>> The solution to this appears to be the following patch:
>>>> 
>>>> ========= BEGIN PATCH ==========
>>>> --- 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);
>>>> }
>>>> 
>>>> -int
>>>> +enum snmp_code
>>>> snmp_passwd_to_keys(struct snmp_user *user, char *passwd __unused)
>>>> {
>>>>    if (user->auth_proto == SNMP_AUTH_NOAUTH &&
>>>> @@ -378,7 +378,7 @@ snmp_passwd_to_keys(struct snmp_user *us
>>>>    return (SNMP_CODE_FAILED);
>>>> }
>>>> 
>>>> -int
>>>> +enum snmp_code
>>>> snmp_get_local_keys(struct snmp_user *user, uint8_t *eid __unused,
>>>>  uint32_t elen __unused)
>>>> {
>>>> 
>>>> ========== END PATCH ==========
>>>> 
>>> 
>>> 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 
>>> (depend) (output at end).
>>> 
>>> Probably going to be a patch similar to the libarchive one.
>>> -- 
>>> Devin
>>> 
>>> 
>>> ===> usr.sbin/wpa/hostapd (depend)
>>> rm -f .depend
>>> mkdep -f .depend -a    -DDRUID -I/usr/src/usr.sbin/wpa/hostapd 
>>> -I/usr/src/usr.sbin/wpa/hostapd/../../../contrib/wpa//src 
>>> -I/usr/src/usr.sbin/wpa/hostapd/../../../contrib/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_packet 
>>> -I/usr/src/usr.sbin/wpa/hostapd/../../../contrib/wpa//src/utils 
>>> -DCONFIG_CTRL_IFACE -DCONFIG_CTRL_IFACE_UNIX 
>>> -I/usr/src/usr.sbin/wpa/hostapd/../../../contrib/wpa//hostapd 
>>> -I/usr/src/usr.sbin/wpa/hostapd/../../../contrib/wpa//src/drivers 
>>> -DCONFIG_DRIVER_BSD -DHOSTAPD -DCONFIG_DRIVER_RADIUS_ACL -DCONFIG_IPV6 
>>> -DEAP_TLS_NONE -DINTERNAL_AES -DINTERNAL_SHA1 -DINTERNAL_MD5 
>>> -I/usr/src/usr.sbin/wpa/hostapd 
>>> -I/usr/src/usr.sbin/wpa/hostapd/../../../contrib/wpa//src 
>>> -I/usr/src/usr.sbin/wpa/hostapd/../../../contrib/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_packet 
>>> -I/usr/src/usr.sbin/wpa/hostapd/../../../contrib/wpa//src/utils 
>>> -DCONFIG_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/../../../contrib/wpa//src/ap/ap_config.c 
>>> /usr/src/usr.sbin/wpa/hostapd/../../../contrib/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//src/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/utils/common.c 
>>> /usr/src/usr.sbin/wpa/hostapd/../../../contrib/wpa//hostapd/config_file.c 
>>> /usr/src/usr.sbin/wpa/hostapd/../../../contrib/wpa//hostapd/ctrl_iface.c 
>>> /usr/src/usr.sbin/wpa/hostapd/../../../contrib/wpa//src/crypto/crypto_openssl.c
>>>  /usr/src/usr.sbin/wpa/hostapd/../../../contrib/wpa//src/ap/ctrl_iface_ap.c 
>>> /usr/src/usr.sbin/wpa/hostapd/../../../contrib/wpa//src/drivers/drivers.c 
>>> /usr/src/usr.sbin/wpa/hostapd/../../../contrib/wpa//src/ap/drv_callbacks.c 
>>> /usr/src/usr.sbin/wpa/hostapd/../../../contrib/wpa//hostapd/dump_state.c 
>>> /usr/src/usr.sbin/wpa/hostapd/../../../contrib/wpa//src/eap_common/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/../../../contrib/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_server_mschapv2.c
>>>  
>>> /usr/src/usr.sbin/wpa/hostapd/../../../contrib/wpa//src/eap_server/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/../../../contrib/wpa//src/eap_server/eap_server_tls_common.c
>>>  
>>> /usr/src/usr.sbin/wpa/hostapd/../../../contrib/wpa//src/eap_server/eap_server_ttls.c
>>>  
>>> /usr/src/usr.sbin/wpa/hostapd/../../../contrib/wpa//src/eapol_auth/eapol_auth_dump.c
>>>  
>>> /usr/src/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 
>>> /usr/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/src/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 
>>> /usr/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/usr.sbin/wpa/hostapd/../../../contrib/wpa//hostapd/main.c 
>>> /usr/src/usr.sbin/wpa/hostapd/../../../contrib/wpa//src/crypto/ms_funcs.c 
>>> /usr/src/usr.sbin/wpa/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/wpa/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/hostapd/../../../contrib/wpa//src/crypto/sha1-pbkdf2.c
>>>  
>>> /usr/src/usr.sbin/wpa/hostapd/../../../contrib/wpa//src/crypto/sha1-tlsprf.c
>>>  /usr/src/usr.sbin/wpa/hostapd/../../../contrib/wpa//src/crypto/sha1-tprf.c 
>>> /usr/src/usr.sbin/wpa/hostapd/../../../contrib/wpa//src/crypto/sha1.c 
>>> /usr/src/usr.sbin/wpa/hostapd/../../../contrib/wpa//src/ap/tkip_countermeasures.c
>>>  /usr/src/usr.sbin/wpa/hostapd/../../../contrib/wpa//src/ap/utils.c 
>>> /usr/src/usr.sbin/wpa/hostapd/../../../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/../../../contrib/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/utils/os_unix.c 
>>> /usr/src/usr.sbin/wpa/hostapd/../../../contrib/wpa//src/crypto/tls_none.c
>>> /usr/src/usr.sbin/wpa/hostapd/../../../contrib/wpa//src/crypto/crypto_openssl.c:16:30:
>>>  error: openssl/opensslv.h: No such file or directory
>>> /usr/src/usr.sbin/wpa/hostapd/../../../contrib/wpa//src/crypto/crypto_openssl.c:17:25:
>>>  error: openssl/err.h: No such file or directory
>>> /usr/src/usr.sbin/wpa/hostapd/../../../contrib/wpa//src/crypto/crypto_openssl.c:18:25:
>>>  error: openssl/des.h: No such file or directory
>>> /usr/src/usr.sbin/wpa/hostapd/../../../contrib/wpa//src/crypto/crypto_openssl.c:19:25:
>>>  error: openssl/aes.h: No such file or directory
>>> /usr/src/usr.sbin/wpa/hostapd/../../../contrib/wpa//src/crypto/crypto_openssl.c:20:24:
>>>  error: openssl/bn.h: No such file or directory
>>> /usr/src/usr.sbin/wpa/hostapd/../../../contrib/wpa//src/crypto/crypto_openssl.c:21:25:
>>>  error: openssl/evp.h: No such file or directory
>>> /usr/src/usr.sbin/wpa/hostapd/../../../contrib/wpa//src/crypto/crypto_openssl.c:22:24:
>>>  error: openssl/dh.h: No such file or directory
>>> mkdep: compile failed
>>> *** Error code 1
>>> 
>>> Stop in /usr/src/usr.sbin/wpa/hostapd.
>>> *** Error code 1
>> 
>> Quick and dirty way around this one is the following patch:
>> 
>> ========== BEGIN PATCH ==========
>> --- usr.sbin/wpa/hostapd/Makefile.orig       2011-09-22 17:51:37.000000000 
>> -0700
>> +++ usr.sbin/wpa/hostapd/Makefile    2012-01-15 11:01:49.000000000 -0800
>> @@ -14,7 +14,7 @@
>> PROG=        hostapd
>> SRCS=        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} != "no"
>> +SRCS+=      crypto_openssl.c 
>> +.endif
>> SRCS+=       l2_packet_freebsd.c driver_freebsd.c os_unix.c
>> 
>> MAN= hostapd.8 hostapd.conf.5
>> ========== END PATCH ==========
>> 
>> And that gets you a bit further, stopping next at 
>> "usr.sbin/wpa/wpa_supplicant" making all.
>> 
>> Error is:
>> 
>> cc  -I/usr/src/usr.sbin/wpa/wpa_supplicant 
>> -I/usr/src/usr.sbin/wpa/wpa_supplicant/../../../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/usr/src/usr.sbin/wpa/wpa_supplicant/../../../contrib/wpa//wpa_supplicant 
>> -I/usr/src/usr.sbin/wpa/wpa_supplicant/../../../contrib/wpa//src/drivers 
>> -I/usr/src/usr.sbin/wpa/wpa_supplicant/../../../contrib/wpa//src/rsn_supp 
>> -DCONFIG_DRIVER_BSD -DCONFIG_DRIVER_NDIS -DCONFIG_DRIVER_WIRED 
>> -DCONFIG_TERMINATE_ONLASTIF -DCONFIG_DEBUG_SYSLOG -DCONFIG_BACKEND_FILE  
>> -DIEEE8021X_EAPOL -DEAP_TLS_NONE -DINTERNAL_AES -DINTERNAL_SHA1 
>> -DINTERNAL_MD5 -I/usr/src/usr.sbin/wpa/wpa_supplicant 
>> -I/usr/src/usr.sbin/wpa/wpa_supplicant/../../../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 -std=gnu99 -fstack-protector   
>> -o wpa_supplicant aes-cbc.o aes-ctr.o aes-eax.o aes-encblock.o 
>> aes-internal.o aes-omac1.o aes-unwrap.o aes-wrap.o bss.o blacklist.o 
>> common.o config.o ctrl_iface.o ctrl_iface_unix.o drivers.o eloop.o events.o 
>> l2_packet_freebsd.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 wpa_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 eap_common.o eap_methods.o eap_register.o tls_none.o 
>> -lpcap 
>> 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
>> 
>> Stop in /usr/src/usr.sbin/wpa/wpa_supplicant.
>> *** Error code 1
>> 
>> I'm seeing that the INTERNAL_MD5 stuff was removed from 
>> src/contrib/wpa/src/crypto/md5.c
>> 
> 
> 
> to answer myself... moved to src/contrib/wpa/src/crypto/md5-internal.c which 
> isn't being included when -DWITHOUT_OPENSSL is passed to buildworld.
> 
> This patch does the job to get past that...
> 
> ========== BEGIN PATCH ==========
> --- usr.sbin/wpa/wpa_supplicant/Makefile.orig   2011-09-22 17:51:37.000000000 
> -0700
> +++ usr.sbin/wpa/wpa_supplicant/Makefile        2012-01-15 18:57:58.000000000 
> -0800
> @@ -20,6 +20,10 @@
>        driver_ndis.c Packet32.c \
>        driver_wired.c \
>        driver_freebsd.c os_unix.c
> +.if ${MK_OPENSSL} == "no"
> +SRCS+= aes-internal-dec.c aes-internal-enc.c md5-internal.c sha1-internal.c \
> +       rc4.c
> +.endif
> 
> MAN=   wpa_supplicant.8 wpa_supplicant.conf.5
> 
> ========== END PATCH ==========
> 
> However, now I have to go back and add-to my earlier patch to 
> src/usr.sbin/wpa/hostapd/Makefile as this is the next roadblock:
> 
> ===> usr.sbin/wpa/hostapd (all)
> make: don't know how to make /usr/obj/usr/src/tmp/usr/lib/libssl.a. Stop
> 

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

========== BEGIN PATCH ==========
--- 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}
 
 PROG=  hostapd
 SRCS=  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} != "no"
+SRCS+= crypto_openssl.c 
+.else
+SRCS+= aes-internal.c aes-internal-enc.c des-internal.c md4-internal.c \
+       md5-internal.c rc4.c sha1-internal.c
+.endif
 SRCS+= l2_packet_freebsd.c driver_freebsd.c os_unix.c
 
 MAN=   hostapd.8 hostapd.conf.5
@@ -46,8 +53,8 @@
 CFLAGS+= -DCONFIG_IPV6
 .endif
 #CFLAGS+= -g
-DPADD+=        ${LIBPCAP} ${LIBSSL}
-LDADD+=        -lpcap -lssl
+DPADD+=        ${LIBPCAP}
+LDADD+=        -lpcap
 
 # User customizations for wpa_supplicant/hostapd build environment
 CFLAGS+=${HOSTAPD_CFLAGS}
========== END PATCH ==========

And success! Voila!

To recap, in order to compile cleanly with -DWITHOUT_OPENSSL, I had to patch 
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 ability to 
buildworld without openssl.
-- 
Devin

_____________
The information contained in this message is proprietary and/or confidential. 
If you are not the intended recipient, please: (i) delete the message and all 
copies; (ii) do not disclose, distribute or use the message in any manner; and 
(iii) notify the sender immediately. In addition, please be aware that any 
message addressed to our domain is subject to archiving and review by persons 
other than the intended recipient. Thank you.
_______________________________________________
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "freebsd-questions-unsubscr...@freebsd.org"

Reply via email to