Hi -

Building openssl-1.0.0d for my native x86_64 linux platform enables defining 
the AES_* symbols in /usr/include/openssl/ ;
then when I build the i686 libssl and libcrypto libraries (only) for i686, 
using the same Configure arguments with only
--libdir changed from lib64 to lib32 ,  these symbols are declared in the 
headers but not defined in the i686 version
of the libraries , so that, for instance, the openssh configure succeeds for 
x86_64 but fails for i686 :



configure:10105: /usr/bin/gcc -m32 -o conftest -march=i686 -mtune=generic -g 
-O2 -fPIC -DPIC -Wa,--compress-debug-sections -Wall -Wpointer-arith 
-Wuninitialized -Wsi\
gn-compare -Wformat-security -Wno-pointer-sign -Wno-unused-result 
-fno-strict-aliasing -fno-builtin-memset -fstack-protector-all -I/usr/include  
-L/usr/lib -Wl,-L/us\
r/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32,-L/usr/lib64/gcc/x86_64-pc-linux-gnu/lib32,-L/usr/lib32,-L/lib32,-R/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32:/usr/lib64/gc\
c/x86_64-pc-linux-gnu/4.6.0/lib32:/usr/lib32:/lib32,--dynamic-linker,/lib32/ld-linux.so.2
 -fstack-protector-all conftest.c -lcrypto -lssl -ldl -lutil -lz -lnsl  >&5
/usr/bin/ld: skipping incompatible /usr/lib/libcrypto.so when searching for 
-lcrypto
/usr/bin/ld: skipping incompatible /usr/lib/libcrypto.a when searching for 
-lcrypto
/usr/bin/ld: skipping incompatible /usr/lib/libssl.so when searching for -lssl
/usr/bin/ld: skipping incompatible /usr/lib/libssl.a when searching for -lssl
/usr/bin/ld: skipping incompatible /usr/lib/libdl.so when searching for -ldl
/usr/bin/ld: skipping incompatible /usr/lib/libdl.a when searching for -ldl
/usr/bin/ld: skipping incompatible /usr/lib/libutil.so when searching for -lutil
/usr/bin/ld: skipping incompatible /usr/lib/libutil.a when searching for -lutil
/usr/bin/ld: skipping incompatible /usr/lib/libz.so when searching for -lz
/usr/bin/ld: skipping incompatible /usr/lib/libz.a when searching for -lz
/usr/bin/ld: skipping incompatible /usr/lib/libnsl.so when searching for -lnsl
/usr/bin/ld: skipping incompatible /usr/lib/libnsl.a when searching for -lnsl
/usr/bin/ld: skipping incompatible /usr/lib/libc.so when searching for -lc
/usr/bin/ld: skipping incompatible /usr/lib/libc.a when searching for -lc
/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/../../../../lib32/libcrypto.so: 
undefined reference to `AES_unwrap_key'
/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/../../../../lib32/libcrypto.so: 
undefined reference to `AES_set_decrypt_key'
/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/../../../../lib32/libcrypto.so: 
undefined reference to `ENGINE_load_gost'
/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/../../../../lib32/libcrypto.so: 
undefined reference to `AES_ofb128_encrypt'
/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/../../../../lib32/libcrypto.so: 
undefined reference to `AES_cbc_encrypt'
/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/../../../../lib32/libcrypto.so: 
undefined reference to `AES_cfb128_encrypt'
/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/../../../../lib32/libcrypto.so: 
undefined reference to `AES_cfb1_encrypt'
/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/../../../../lib32/libcrypto.so: 
undefined reference to `AES_set_encrypt_key'
/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/../../../../lib32/libcrypto.so: 
undefined reference to `AES_ecb_encrypt'
/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/../../../../lib32/libcrypto.so: 
undefined reference to `AES_wrap_key'
/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/../../../../lib32/libcrypto.so: 
undefined reference to `AES_cfb8_encrypt'
collect2: ld returned 1 exit status

I suggest wrapping those declarations in /usr/include/openssl/aes.h with 
#if ! defined( __i386__ )  

#endif
or something.

Any advice would be much appreciated - how can I best get the same headers and 
--enable-* Configure options to work for
both i686 and x86_64 Linux platforms so that one set of headers can be used for 
both ?

Thanks & Regards,

Jason Vas Dias <[email protected]>
  

______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [email protected]
Automated List Manager                           [email protected]

Reply via email to