[openssl-dev] [openssl.org #3794] Missing symbols for padlock_aes_block during link in Master
noloader@gmail.com via RT
rt at openssl.org
Fri Apr 10 10:30:08 UTC 2015
I'm trying to run OpenSSL Master through Clang's sanitizers. Below is
from 99-clang-sanitizer.conf (this is my fumbling).
$ make
making all in crypto...
/opt/local/bin/perl5 ../util/mkbuildinf.pl "/usr/local/bin/clang -I.
-I.. -I../include -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN
-DHAVE_DLFCN_H -g3 -O1 -Wall -fsanitize=undefined -fsanitize=address
-arch x86_64 -DL_ENDIAN" "darwin-sanitize-x86_64" >buildinf.h
/usr/local/bin/clang -I. -I.. -I../include -DOPENSSL_THREADS
-D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -g3 -O1 -Wall
-fsanitize=undefined -fsanitize=address -arch x86_64 -DL_ENDIAN -c
-o cryptlib.o cryptlib.c
...
( :; LIBDEPS="${LIBDEPS:--L.. -lssl -L.. -lcrypto -arch x86_64}";
LDCMD="${LDCMD:-/usr/local/bin/clang}";
LDFLAGS="${LDFLAGS:--DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN
-DHAVE_DLFCN_H -g3 -O1 -Wall -fsanitize=undefined -fsanitize=address
-arch x86_64 -DL_ENDIAN}"; LIBPATH=`for x in $LIBDEPS; do echo $x;
done | sed -e 's/^ *-L//;t' -e d | uniq`; LIBPATH=`echo $LIBPATH | sed
-e 's/ /:/g'`; LD_LIBRARY_PATH=$LIBPATH:$LD_LIBRARY_PATH ${LDCMD}
${LDFLAGS} -o ${APPNAME:=openssl} openssl.o verify.o asn1pars.o req.o
dgst.o dh.o dhparam.o enc.o passwd.o gendh.o errstr.o ca.o pkcs7.o
crl2p7.o crl.o rsa.o rsautl.o dsa.o dsaparam.o ec.o ecparam.o x509.o
genrsa.o gendsa.o genpkey.o s_server.o s_client.o speed.o s_time.o
apps.o s_cb.o s_socket.o app_rand.o version.o sess_id.o ciphers.o
nseq.o pkcs12.o pkcs8.o pkey.o pkeyparam.o pkeyutl.o spkac.o smime.o
cms.o rand.o engine.o ocsp.o prime.o ts.o srp.o ${LIBDEPS} )
Undefined symbols for architecture x86_64:
"_padlock_aes_block", referenced from:
_padlock_ofb_cipher in libcrypto.a(e_padlock.o)
_padlock_cfb_cipher in libcrypto.a(e_padlock.o)
"_padlock_capability", referenced from:
_padlock_available in libcrypto.a(e_padlock.o)
"_padlock_cbc_encrypt", referenced from:
_padlock_cbc_cipher in libcrypto.a(e_padlock.o)
"_padlock_cfb_encrypt", referenced from:
_padlock_cfb_cipher in libcrypto.a(e_padlock.o)
"_padlock_ctr32_encrypt", referenced from:
_padlock_ctr32_encrypt_glue in libcrypto.a(e_padlock.o)
"_padlock_ecb_encrypt", referenced from:
_padlock_ecb_cipher in libcrypto.a(e_padlock.o)
"_padlock_key_bswap", referenced from:
_padlock_aes_init_key in libcrypto.a(e_padlock.o)
"_padlock_ofb_encrypt", referenced from:
_padlock_ofb_cipher in libcrypto.a(e_padlock.o)
"_padlock_reload_key", referenced from:
_padlock_aes_init_key in libcrypto.a(e_padlock.o)
_padlock_ofb_cipher in libcrypto.a(e_padlock.o)
_padlock_cfb_cipher in libcrypto.a(e_padlock.o)
"_padlock_xstore", referenced from:
_padlock_rand_bytes in libcrypto.a(e_padlock.o)
"_rc4_md5_enc", referenced from:
_rc4_hmac_md5_cipher in libcrypto.a(e_rc4_hmac_md5.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [link_app.] Error 1
make[1]: *** [openssl] Error 2
make: *** [build_apps] Error 1
**********
$ ./Configure darwin-sanitize-x86_64
Configuring for darwin-sanitize-x86_64
no-deprecated [default] OPENSSL_NO_DEPRECATED (skip dir)
no-ec_nistp_64_gcc_128 [default] OPENSSL_NO_EC_NISTP_64_GCC_128 (skip dir)
no-gmp [default] OPENSSL_NO_GMP (skip dir)
no-jpake [experimental] OPENSSL_NO_JPAKE (skip dir)
no-krb5 [krb5-flavor not specified] OPENSSL_NO_KRB5
no-md2 [default] OPENSSL_NO_MD2 (skip dir)
no-rc5 [default] OPENSSL_NO_RC5 (skip dir)
no-rfc3779 [default] OPENSSL_NO_RFC3779 (skip dir)
no-sctp [default] OPENSSL_NO_SCTP (skip dir)
no-shared [default]
no-ssl-trace [default] OPENSSL_NO_SSL_TRACE (skip dir)
no-store [experimental] OPENSSL_NO_STORE (skip dir)
no-unit-test [default] OPENSSL_NO_UNIT_TEST (skip dir)
no-zlib [default]
no-zlib-dynamic [default]
IsMK1MF=0
CC =/usr/local/bin/clang
CFLAG =-DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN
-DHAVE_DLFCN_H -g3 -O1 -Wall -fsanitize=undefined -fsanitize=address
-arch x86_64 -DL_ENDIAN
EX_LIBS =-arch x86_64
CPUID_OBJ =mem_clr.o
BN_ASM =bn_asm.o
EC_ASM =
DES_ENC =des_enc.o fcrypt_b.o
AES_ENC =aes_core.o aes_cbc.o
BF_ENC =bf_enc.o
CAST_ENC =c_enc.o
RC4_ENC =rc4_enc.o rc4_skey.o
RC5_ENC =rc5_enc.o
MD5_OBJ_ASM =
SHA1_OBJ_ASM =
RMD160_OBJ_ASM=
CMLL_ENC =camellia.o cmll_misc.o cmll_cbc.o
MODES_OBJ =
ENGINES_OBJ =
PROCESSOR =
RANLIB =/usr/bin/ranlib
ARFLAGS =
PERL =/opt/local/bin/perl5
SIXTY_FOUR_BIT_LONG mode
DES_UNROLL used
DES_INT used
RC4_CHUNK is unsigned long
Configured for darwin-sanitize-x86_64.
**********
## Personal configuration targets
##
## If you edit this file, run this command before committing
## make -f Makefile.org TABLE
## This file is interpolated by the Configure script.
%targets = (
"darwin-sanitize-x86_64" => {
sys_id => "MACOSX",
# inherit_from => [ asm("x86_64_asm") ],
cc => "clang",
cflags => "-g3 -O1 -Wall -fsanitize=undefined
-fsanitize=address -arch x86_64 -DL_ENDIAN",
lflags => "-arch x86_64",
bn_ops => "SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL",
thread_cflag => "-D_REENTRANT",
perlasm_scheme => "osx64",
dso_scheme => "dlfcn",
},
"darwin-sanitize-i386" => {
sys_id => "MACOSX",
# inherit_from => [ asm("x86_asm") ],
cc => "clang",
cflags => "-g3 -O1 -Wall -fsanitize=undefined
-fsanitize=address -arch i386 -DL_ENDIAN",
lflags => "-arch i386",
bn_ops => "BN_LLONG RC4_INT RC4_CHUNK DES_UNROLL BF_PTR",
thread_cflag => "-D_REENTRANT",
perlasm_scheme => "osx32",
dso_scheme => "dlfcn",
},
);
**********
$ grep -R padlock_aes_block *
engines/asm/e_padlock-x86.pl:&function_begin_B("padlock_aes_block");
engines/asm/e_padlock-x86.pl:&function_end_B("padlock_aes_block");
engines/asm/e_padlock-x86_64.pl:.globl padlock_aes_block
engines/asm/e_padlock-x86_64.pl:.type padlock_aes_block,\@function,3
engines/asm/e_padlock-x86_64.pl:padlock_aes_block:
engines/asm/e_padlock-x86_64.pl:.size padlock_aes_block,.-padlock_aes_block
engines/e_padlock.c:void padlock_aes_block(void *out, const void *inp,
engines/e_padlock.c: padlock_aes_block(ivp, ivp, cdata);
engines/e_padlock.c: padlock_aes_block(ivp, ivp, cdata);
engines/e_padlock.c: padlock_aes_block(ivp, ivp, cdata);
Binary file engines/e_padlock.o matches
Binary file libcrypto.a matches
More information about the openssl-dev
mailing list