2016-10-03 5 views
0

OS XでOpenSSLをビルドしています。Wikiで説明されているようにビルド設定を変更する方法についてもっと知りたいと思います。OS Xでgccまたはclangを使ってOpenSSLをビルドする方法

次のように私はビルドを設定しています:

./Configure darwin64-x86_64-cc 
make 

どのように私はこれを使用しようとしているコンパイラを知っていますか?

Wikiには、iOS 7.0 SDKでgccではなくclangコンパイラを使用するようにビルドを変更する方法を示す例があります。

私は設定の等価線であるOS X上で打ち鳴らすか、GCCのどちらか一方を選択するために、私のビルドを変更したいと思います:

"darwin64-x86_64-cc","cc:-arch x86_64 -O3 -DL_ENDIAN -Wall::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:".eval{my $asm=$x86_64_asm;$asm=~s/rc4\-[^:]+//;$asm}.":macosx:dlfcn:darwin-shared:-fPIC -fno-common:-arch x86_64 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib", 

私は変更するには何が必要ですか?

答えて

0

これはどのコンパイラを使用するのですか?現代のOS X上で

、あなたは通常、クランや他の一つの味になっています

$ g++ --version 
Configured with: --prefix=/Applications/Xcode-5_1.app/Contents/Developer/usr 
--with-gxx-include-dir=/usr/include/c++/4.2.1 
Apple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn) 
Target: x86_64-apple-darwin12.6.0 

とさえ:

$ c++ --version 
Apple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn) 
Target: x86_64-apple-darwin12.6.0 

アップルクラン5.1はLLVMクラン3.4です。プリプロセッサマクロ__clang__,__clang_major__および__clang_minor__は、AppleとLLVMの値が異なります。クラングバグを取り組んでいるときの本当の苦痛。また、クラングの統合アセンブラを検出する必要があるかもしれません。これは、独自のバグのバグをもたらします。私は1つまたはOS X上で打ち鳴らすか、GCCのその他を選択するために、私のビルドを変更したい


...

あなたはスワップインすることができますあなたが選んだのコンパイラが、 Configureではなくconfigを使用する必要があります。以下はMacPortのGCC 6.0コンパイラです。ブリューは、おそらく似ている(しかし、私はそれを使用しないでください):

$ /opt/local/bin/gcc-mp-6 --version 
gcc-mp-6 (MacPorts gcc6 6.1.0_0) 6.1.0 
Copyright (C) 2016 Free Software Foundation, Inc. 

$ CC=/opt/local/bin/gcc-mp-6 KERNEL_BITS=64 ./config 
Operating system: i686-apple-darwinDarwin Kernel Version 12.6.0: Wed Mar 18 16:23:48 PDT 2015; 
root:xnu-2050.48.19~1/RELEASE_X86_64 
Configuring for darwin64-x86_64-cc 
    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-libunbound [experimental] OPENSSL_NO_LIBUNBOUND (skip dir) 
    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-ssl2   [default] OPENSSL_NO_SSL2 (skip dir) 
    no-store  [experimental] OPENSSL_NO_STORE (skip dir) 
    no-unit-test [default] OPENSSL_NO_UNIT_TEST (skip dir) 
    no-weak-ssl-ciphers [default] OPENSSL_NO_WEAK_SSL_CIPHERS (skip dir) 
    no-zlib   [default] 
    no-zlib-dynamic [default] 
IsMK1MF=0 
CC   =/opt/local/bin/gcc-mp-6 
... 

私は変更するには何が必要ですか?

設定方法を変更します。 Configureではなくconfigを使用してください。 実際の GCCコンパイラも使用し、シンボリックリンクによって作成された偽のものは使用しないでください。

CC=/opt/local/bin/gcc ./Configure ...のような設定を行うときにConfigureの設定ができないというバグレポートもあります。linux-x86_64-/opt/local/bin/gccのようなトリプレットが表示され、後でそのプロセスで拒否されます。

関連する問題