[openssl-dev] [openssl.org #4444] [openssl-1.1.0-pre4] Make fails with "recipe for target 'depend' failed" on solaris64-x86_64

Rainer Jung rainer.jung at kippdata.de
Fri Mar 18 16:33:49 UTC 2016


I had the same problem. /bin/sh on Solaris does not understand the "-nt" 
operator used in the definition of the "depend" target in the top-level 
Makefile, e.g. in line

if [ Makefile -nt Makefile ] ...

and elsewhere.

 From "man test" on Solaris:

...
      file1 -nt file2         True if file1 exists  and  is  newer
                              than file2. (Not available in sh.)
...

Also normative standards documents as 
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/test.html 
indicate, that "-nt" can't be expected. Quoting: "Some additional 
primaries newly invented or from the KornShell appeared in an early 
proposal as part of the conditional command ([[]]): s1 > s2, s1 < s2, 
str = pattern, str != pattern, f1 -nt f2, f1 -ot f2, and f1 -ef f2. They 
were not carried forward into the test utility when the conditional 
command was removed from the shell because they have not been included 
in the test utility built into historical implementations of the sh 
utility."

I added a line

SHELL=/bin/ksh

to the Makefile on Solaris, because I was afraid that more non-standard 
shell stuff might be in the Makefile now or in the future. It would be 
better though to replace the non-standard stuff, but I didn't have the 
time to work on a full patch. Using the SHELL=/bin/ksh workaround should 
allow you to proceed building on Solaris. "make" then uses the Korn 
Shell for shell constructs contained in the Makefile.

Regards,

Rainer

Am 18.03.2016 um 08:51 schrieb Kiyoshi KANAZAWA via RT:
> % ./config --prefix=/opt/openssl
> Operating system: i86pc-whatever-solaris2
> Configuring for solaris64-x86_64-gcc
> Configuring OpenSSL version 1.1.0-pre4 (0x0x10100004L)
>      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 solaris64-x86_64-gcc
> IsMK1MF       =no
> CC            =gcc
> CFLAG         =-m64 -Wall -DL_ENDIAN -O3 -pthread -DFILIO_H  -Wa,--noexecstack
> SHARED_CFLAG  =-fPIC
> DEFINES       =DSO_DLFCN HAVE_DLFCN_H OPENSSL_THREADS OPENSSL_NO_DYNAMIC_ENGINE OPENSSL_PIC OPENSSL_IA32_SSE2 OPENSSL_BN_ASM_MONT OPENSSL_BN_ASM_MONT5 OPENSSL_BN_ASM_GF2m SHA1_ASM SHA256_ASM SHA512_ASM MD5_ASM AES_ASM VPAES_ASM BSAES_ASM GHASH_ASM ECP_NISTZ256_ASM POLY1305_ASM
> LFLAG         =
> PLIB_LFLAG    =
> EX_LIBS       =-lresolv -lsocket -lnsl -ldl
> APPS_OBJ      =
> CPUID_OBJ     =x86_64cpuid.o
> UPLINK_OBJ    =
> BN_ASM        =asm/x86_64-gcc.o x86_64-mont.o x86_64-mont5.o x86_64-gf2m.o rsaz_exp.o rsaz-x86_64.o rsaz-avx2.o
> EC_ASM        =ecp_nistz256.o ecp_nistz256-x86_64.o
> DES_ENC       =des_enc.o fcrypt_b.o
> AES_ENC       =aes-x86_64.o vpaes-x86_64.o bsaes-x86_64.o aesni-x86_64.o aesni-sha1-x86_64.o aesni-sha256-x86_64.o aesni-mb-x86_64.o
> BF_ENC        =bf_enc.o
> CAST_ENC      =c_enc.o
> RC4_ENC       =rc4-x86_64.o rc4-md5-x86_64.o
> RC5_ENC       =rc5_enc.o
> MD5_OBJ_ASM   =md5-x86_64.o
> SHA1_OBJ_ASM  =sha1-x86_64.o sha256-x86_64.o sha512-x86_64.o sha1-mb-x86_64.o sha256-mb-x86_64.o
> RMD160_OBJ_ASM=
> CMLL_ENC      =cmll-x86_64.o cmll_misc.o
> MODES_OBJ     =ghash-x86_64.o aesni-gcm-x86_64.o
> PADLOCK_OBJ   =e_padlock-x86_64.o
> CHACHA_ENC    =chacha-x86_64.o
> POLY1305_OBJ  =poly1305-x86_64.o
> BLAKE2_OBJ    =
> PROCESSOR     =
> RANLIB        =/usr/ccs/bin/ranlib
> ARFLAGS       =
> PERL          =/opt/perl5/bin/perl
>
> SIXTY_FOUR_BIT_LONG mode
>
> Configured for solaris64-x86_64-gcc.
>
>
> % make
>    :
> make[1]: Leaving directory '/tmp/openssl-1.1.0-pre4'
> /opt/perl5/bin/perl "-I." -Mconfigdata "util/dofile.pl" \
>      "-oMakefile" apps/CA.pl.in > "apps/CA.pl"
> chmod a+x apps/CA.pl
> /opt/perl5/bin/perl "-I." -Mconfigdata "util/dofile.pl" \
>      "-oMakefile" tools/c_rehash.in > "tools/c_rehash"
> chmod a+x tools/c_rehash
> Makefile:170: recipe for target 'depend' failed
> make: *** [depend] Error 1
>
>
>
> Other information
> OS: Solaris10 x86/64
>
> perl version:v5.22.1
> gcc version: 4.8.5
> ld: /usr/ccs/bin/ld
>
>
> Best Regards,
>
>
> --- Kiyoshi <yoi_no_myoujou at yahoo.co.jp>


More information about the openssl-dev mailing list