私はopensslにnginxを通して "-m32"引数を提供しますが、それだけでは不十分です。私は\ envを変更する必要があります。変数MACHINEはx86に等しくなります。
-m32
を追加してOpenSSLソースを構築することはできません。 OpenSSLがそれ自身を構成し、<openssl/opensslconf.h>
ファイルを書き出すことを許可する必要があります。
この
:
[ "$MACHINE" ] || MACHINE=(uname -m) 2>/dev/null
あなたがMACHINE
をエクスポートすることができますし、OpenSSLはその行でそれを尊重するべきであることを意味します。おそらくi686:$ MACHINE=i686 ./config -m32
に設定してください。しかし、それは後で何がうまくいくのですか:)
クロスコンパイルのために通常MACHINE
が設定されているので、クラップシュートが来ます。また、CROSS_COMPILE
と呼ばれる変数があります。 OpenSSLのConfigure
スクリプトも参照してください。
は、ここでのテストのカップルです:
# On i686 machine
$ MACHINE=i686 ./config
Operating system: i686-whatever-linux2
# On i686 machine
$ MACHINE=x86_64 ./config
Operating system: x86_64-whatever-linux2
# On x86_64 machine
$ MACHINE=i686 ./config
Operating system: i686-whatever-linux2
# On x86_64 machine
$ MACHINE=x86_64 ./config
Operating system: x86_64-whatever-linux2
ENVを設定する方法はあります。変数MACHINEをグラデーションスクリプトに入れますか?
申し訳ございません。 Nginxは十分に悪化しています。私は問題をさらに難しくするために間接指示の別のレベルを追加するのかどうかはわかりません。
おそらく、これは役に立ちます:Setting environment variables from Gradle。
OpenSSLはConfigure
を持っており、それがLIST
引数を取る:
$ ./Configure LIST | grep linux
...
linux-aarch64
linux-alpha-gcc
linux-aout
...
linux-generic32
linux-generic64
...
私はあなたがlinux-generic32
またはlinux-elf
でOpenSSLを設定したいと考えています。しかし、私はあなたがlinux-elf
を使うことができるとは思わない、それはホストのアーキテクチャをピックアップするからです。
OpenSSLが正しく設定されている点(特にFIPSの検証済みオブジェクトモジュールを使用している場合)に関して、Nginxのビルドシステムには過去に多くの問題がありました。私は必要なものを得るためにビルドスクリプトを修正する必要があることを思い出しているようです。同じことをする必要があるかもしれません。
ここでは、Fedora 23 i686マシンで見ていることがあります。それはi686-whatever-linux2
トリプレットの結果がlinux-elf
であることに注意してください。
$ cd openssl-master
$ ./config
Operating system: i686-whatever-linux2
Configuring for linux-elf
Configuring OpenSSL version 1.1.0-pre5-dev (0x0x10100005L)
no-crypto-mdebug [default] OPENSSL_NO_CRYPTO_MDEBUG (skip dir)
no-crypto-mdebug-backtrace [forced] OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE (skip dir)
no-dynamic-engine [forced]
no-ec_nistp_64_gcc_128 [default] OPENSSL_NO_EC_NISTP_64_GCC_128 (skip dir)
no-egd [default] OPENSSL_NO_EGD (skip dir)
no-heartbeats [default] OPENSSL_NO_HEARTBEATS (skip dir)
no-md2 [default] OPENSSL_NO_MD2 (skip dir)
no-rc5 [default] OPENSSL_NO_RC5 (skip dir)
no-sctp [default] OPENSSL_NO_SCTP (skip dir)
no-shared [default]
no-ssl-trace [default] OPENSSL_NO_SSL_TRACE (skip dir)
no-ssl3 [default] OPENSSL_NO_SSL3 (skip dir)
no-ssl3-method [default] OPENSSL_NO_SSL3_METHOD (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]
Configuring for linux-elf
CC =gcc
CFLAG =-Wall -O3 -pthread -DL_ENDIAN -fomit-frame-pointer -Wa,--noexecstack
SHARED_CFLAG =-fPIC
DEFINES =DSO_DLFCN HAVE_DLFCN_H NDEBUG OPENSSL_THREADS OPENSSL_NO_DYNAMIC_ENGINE OPENSSL_PIC OPENSSL_BN_ASM_PART_WORDS OPENSSL_IA32_SSE2 OPENSSL_BN_ASM_MONT OPENSSL_BN_ASM_GF2m SHA1_ASM SHA256_ASM SHA512_ASM MD5_ASM RMD160_ASM AES_ASM VPAES_ASM WHIRLPOOL_ASM GHASH_ASM ECP_NISTZ256_ASM POLY1305_ASM
LFLAG =
PLIB_LFLAG =
EX_LIBS =-ldl
APPS_OBJ =
CPUID_OBJ =x86cpuid.o
UPLINK_OBJ =
BN_ASM =bn-586.o co-586.o x86-mont.o x86-gf2m.o
EC_ASM =ecp_nistz256.o ecp_nistz256-x86.o
DES_ENC =des-586.o crypt586.o
AES_ENC =aes-586.o vpaes-x86.o aesni-x86.o
BF_ENC =bf-586.o
CAST_ENC =c_enc.o
RC4_ENC =rc4-586.o
RC5_ENC =rc5-586.o
MD5_OBJ_ASM =md5-586.o
SHA1_OBJ_ASM =sha1-586.o sha256-586.o sha512-586.o
RMD160_OBJ_ASM=rmd-586.o
CMLL_ENC =cmll-x86.o
MODES_OBJ =ghash-x86.o
PADLOCK_OBJ =e_padlock-x86.o
CHACHA_ENC =chacha-x86.o
POLY1305_OBJ =poly1305-x86.o
BLAKE2_OBJ =
PROCESSOR =
RANLIB =/usr/bin/ranlib
ARFLAGS =
PERL =/usr/bin/perl
THIRTY_TWO_BIT mode
BN_LLONG mode
Configured for linux-elf.
linux-generic32
i686-whatever-linux2
とlinux-elf
と非常によく似ています:
$ ./Configure linux-generic32
Configuring OpenSSL version 1.1.0-pre5-dev (0x0x10100005L)
no-crypto-mdebug [default] OPENSSL_NO_CRYPTO_MDEBUG (skip dir)
no-crypto-mdebug-backtrace [forced] OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE (skip dir)
no-dynamic-engine [forced]
no-ec_nistp_64_gcc_128 [default] OPENSSL_NO_EC_NISTP_64_GCC_128 (skip dir)
no-egd [default] OPENSSL_NO_EGD (skip dir)
no-heartbeats [default] OPENSSL_NO_HEARTBEATS (skip dir)
no-md2 [default] OPENSSL_NO_MD2 (skip dir)
no-rc5 [default] OPENSSL_NO_RC5 (skip dir)
no-sctp [default] OPENSSL_NO_SCTP (skip dir)
no-shared [default]
no-ssl-trace [default] OPENSSL_NO_SSL_TRACE (skip dir)
no-ssl3 [default] OPENSSL_NO_SSL3 (skip dir)
no-ssl3-method [default] OPENSSL_NO_SSL3_METHOD (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]
Configuring for linux-generic32
CC =gcc
CFLAG =-Wall -O3 -pthread
SHARED_CFLAG =-fPIC
DEFINES =DSO_DLFCN HAVE_DLFCN_H NDEBUG OPENSSL_THREADS OPENSSL_NO_DYNAMIC_ENGINE OPENSSL_PIC
LFLAG =
PLIB_LFLAG =
EX_LIBS =-ldl
APPS_OBJ =
CPUID_OBJ =mem_clr.o
UPLINK_OBJ =
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 =
PADLOCK_OBJ =
CHACHA_ENC =chacha_enc.o
POLY1305_OBJ =
BLAKE2_OBJ =
PROCESSOR =
RANLIB =/usr/bin/ranlib
ARFLAGS =
PERL =/usr/bin/perl
THIRTY_TWO_BIT mode
BN_LLONG mode
RC4 uses unsigned char
Configured for linux-generic32.
http://superuser.com? – user3159253
@ user3159253 - 私はここで制御要因はMichalが構成を構築しようとしていると思います、と私はそれが正当にスタックオーバーフローに置くと思う。ランタイムNginxの設定のような他の質問は、別のサイトの質問になります。 – jww