Either build with no-asm (and throw away a lot of performance), or build it
multiple times and glue the results together with lipo.

Peter





                                                                       
  From:       "Yvan BARTHÉLEMY via RT" <r...@openssl.org>              
                                                                       
  To:                                                                  
                                                                       
  Cc:         openssl-dev@openssl.org                                  
                                                                       
  Date:       11/04/2010 10:19 PM                                      
                                                                       
  Subject:    [openssl.org #2232] OpenSSL 1.0.0 - Mac OS X Univesal Binary 
Build Link errors
                                                                       
  Sent by:    owner-openssl-...@openssl.org                            
                                                                       





Hello,

I'm trying to build an Universal Binary (with 4 darwin architectures)
version of OpenSSL libraries for Leopard.

When linking, ld returns the following error message:

Undefined symbols:
  "K0", referenced from:
      _sha256_block_data_order in libcrypto.a(sha256-x86_64.o)
      _sha512_block_data_order in libcrypto.a(sha512-x86_64.o)
  "_OPENSSL_ia0cap_P", referenced from:
      _AES_cbc_encrypt in libcrypto.a(aes-x86_64.o)
      _RC4_set_key in libcrypto.a(rc4-x86_64.o)
      _RC4_options in libcrypto.a(rc4-x86_64.o)
ld: symbol(s) not found
collect2: ld returned 1 exit status
make[4]: *** [link_a.darwin] Error 1
make[3]: *** [do_darwin-shared] Error 2
make[2]: *** [libcrypto.1.0.0.dylib] Error 2
make[1]: *** [shared] Error 2


I hacked the generated .s to replace symbols references this way, then
deleted the .o to force the build:
K0 => K256 (sha256-x86_64.s)
K0 => K512 (sha256-x86_64.s)
_OPENSSL_ia0cap_P => _OPENSSL_ia32cap_P (aes-x86_64.s, rc4-x86_64[x2])

This allows me to build, but I assume it's not the right way to do it, and
the build might be broken as there might be other side effects that I was
unable to find (assembly is definitely not my mother tongue...).

I'd like to know the right way to do this, and to know if I need to do the
build again in case it has broken the binaries.

PS: Re-sent, as I had no feedback from the ticket system after 2 hours
(message lost or in queue ?)

Thanks,
Yvan

______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       openssl-dev@openssl.org
Automated List Manager                           majord...@openssl.org


______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       openssl-dev@openssl.org
Automated List Manager                           majord...@openssl.org

Reply via email to