Index: Configure --- Configure.orig 2014-03-17 17:14:20.000000000 +0100 +++ Configure 2014-04-08 20:33:39.565462778 +0200 @@ -34,6 +34,7 @@ # (Default: KRB5_DIR/include) # --with-krb5-flavor Declare what flavor of Kerberos 5 is used. Currently # supported values are "MIT" and "Heimdal". A value is required. +# --with-cc compiler to use for $CC (useful if cc is a disguised gcc) # # --test-sanity Make a number of sanity checks on the data in this file. # This is a debugging tool for OpenSSL developers. @@ -123,6 +124,7 @@ #$bits2="THIRTY_TWO_BIT "; my $bits1="THIRTY_TWO_BIT "; my $bits2="SIXTY_FOUR_BIT "; +my $ccarg; my $x86_asm="x86cpuid.o:bn-586.o co-586.o x86-mont.o x86-gf2m.o:des-586.o crypt586.o:aes-586.o vpaes-x86.o aesni-x86.o:bf-586.o:md5-586.o:sha1-586.o sha256-586.o sha512-586.o:cast-586.o:rc4-586.o:rmd-586.o:rc5-586.o:wp_block.o wp-mmx.o:cmll-x86.o:ghash-x86.o:"; @@ -462,12 +464,12 @@ #### IBM's AIX. "aix3-cc", "cc:-O -DB_ENDIAN -qmaxmem=16384::(unknown):AIX::BN_LLONG RC4_CHAR:::", -"aix-gcc", "gcc:-O -DB_ENDIAN::-pthread:AIX::BN_LLONG RC4_CHAR:${ppc32_asm}:aix32:dlfcn:aix-shared::-shared -Wl,-G:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X32", -"aix64-gcc","gcc:-maix64 -O -DB_ENDIAN::-pthread:AIX::SIXTY_FOUR_BIT_LONG RC4_CHAR:${ppc64_asm}:aix64:dlfcn:aix-shared::-maix64 -shared -Wl,-G:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X64", +"aix-gcc", "gcc:-O -DB_ENDIAN::-pthread:AIX::BN_LLONG RC4_CHAR:${ppc32_asm}:aix32:dlfcn:aix-shared::-shared -Wl,-G:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::", +"aix64-gcc","gcc:-maix64 -O -DB_ENDIAN::-pthread:AIX::SIXTY_FOUR_BIT_LONG RC4_CHAR:${ppc64_asm}:aix64:dlfcn:aix-shared::-maix64 -shared -Wl,-G:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::", # Below targets assume AIX 5. Idea is to effectively disregard $OBJECT_MODE # at build time. $OBJECT_MODE is respected at ./config stage! -"aix-cc", "cc:-q32 -O -DB_ENDIAN -qmaxmem=16384 -qro -qroconst::-qthreaded -D_THREAD_SAFE:AIX::BN_LLONG RC4_CHAR:${ppc32_asm}:aix32:dlfcn:aix-shared::-q32 -G:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 32", -"aix64-cc", "cc:-q64 -O -DB_ENDIAN -qmaxmem=16384 -qro -qroconst::-qthreaded -D_THREAD_SAFE:AIX::SIXTY_FOUR_BIT_LONG RC4_CHAR:${ppc64_asm}:aix64:dlfcn:aix-shared::-q64 -G:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 64", +"aix-cc", "cc:-q32 -O -DB_ENDIAN -qmaxmem=16384 -qro -qroconst::-qthreaded -D_THREAD_SAFE:AIX::BN_LLONG RC4_CHAR:${ppc32_asm}:aix32:dlfcn:aix-shared::-q32 -G:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::", +"aix64-cc", "cc:-q64 -O -DB_ENDIAN -qmaxmem=16384 -qro -qroconst::-qthreaded -D_THREAD_SAFE:AIX::SIXTY_FOUR_BIT_LONG RC4_CHAR:${ppc64_asm}:aix64:dlfcn:aix-shared::-q64 -G:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::", # # Cray T90 and similar (SDSC) @@ -830,6 +832,10 @@ { $strict_warnings = 1; } + elsif (/^--with-cc=(.*)$/) + { + $ccarg=$1 + } elsif (/^reconfigure/ || /^reconf/) { if (open(IN,"<$Makefile")) @@ -1145,7 +1151,7 @@ print "IsMK1MF=$IsMK1MF\n"; my @fields = split(/\s*:\s*/,$table{$target} . ":" x 30 , -1); -my $cc = $fields[$idx_cc]; +my $cc = $ccarg ? $ccarg : $fields[$idx_cc]; # Allow environment CC to override compiler... if($ENV{CC}) { $cc = $ENV{CC}; Index: config --- config.orig 2014-03-17 17:14:20.000000000 +0100 +++ config 2014-04-08 20:33:39.565462778 +0200 @@ -277,6 +277,9 @@ Power*) echo "ppc-apple-darwin${VERSION}" ;; + x86_64 ) + echo "x86_64-apple-darwin${VERSION}" + ;; *) echo "i686-apple-darwin${VERSION}" ;; @@ -413,7 +416,7 @@ # Only set CC if not supplied already if [ -z "$CROSS_COMPILE$CC" ]; then - GCCVER=`sh -c "gcc -dumpversion" 2>/dev/null` + GCCVER=`sh -c "${CC-gcc} -dumpversion" 2>/dev/null` if [ "$GCCVER" != "" ]; then # then strip off whatever prefix egcs prepends the number with... # Hopefully, this will work for any future prefixes as well. @@ -424,8 +427,14 @@ # peak single digit before and after first dot, e.g. 2.95.1 gives 29 GCCVER=`echo $GCCVER | sed 's/\([0-9]\)\.\([0-9]\).*/\1\2/'` CC=gcc + SUFFIX=gcc else CC=cc + SUFFIX=cc + fi +else + if [ "$GCCVER" != "" ]; then + SUFFIX=gcc fi fi GCCVER=${GCCVER:-0} @@ -435,7 +444,7 @@ if [ $GCCVER -ge 30 ]; then # PA64 support only came in with gcc 3.0.x. # We check if the preprocessor symbol __LP64__ is defined... - if echo "__LP64__" | gcc -v -E -x c - 2>/dev/null | grep "^__LP64__" 2>&1 > /dev/null; then + if echo "__LP64__" | $CC -v -E -x c - 2>/dev/null | grep "^__LP64__" 2>&1 > /dev/null; then : # __LP64__ has slipped through, it therefore is not defined else GCC_BITS="64" @@ -446,13 +455,14 @@ if [ $GCCVER -ge 30 ]; then # 64-bit ABI isn't officially supported in gcc 3.0, but it appears # to be working, at the very least 'make test' passes... - if gcc -v -E -x c /dev/null 2>&1 | grep __arch64__ > /dev/null; then + if $CC -v -E -x c /dev/null 2>&1 | grep __arch64__ > /dev/null; then GCC_ARCH="-m64" else GCC_ARCH="-m32" fi fi # check for WorkShop C, expected output is "cc: blah-blah C x.x" + if [ $GCCVER -eq 0 ]; then CCVER=`(cc -V 2>&1) 2>/dev/null | \ egrep -e '^cc: .* C [0-9]\.[0-9]' | \ sed 's/.* C \([0-9]\)\.\([0-9]\).*/\1\2/'` @@ -465,6 +475,7 @@ sleep 5 fi fi + fi fi if [ "${SYSTEM}-${MACHINE}" = "Linux-alpha" ]; then @@ -482,6 +493,7 @@ if [ "${SYSTEM}" = "AIX" ]; then # favor vendor cc over gcc (cc) 2>&1 | grep -iv "not found" > /dev/null && CC=cc + (gcc) 2>&1 | grep -iv "not found" > /dev/null && CC=gcc fi CCVER=${CCVER:-0} @@ -507,7 +519,7 @@ if [ $CPU -ge 4000 ]; then options="$options -mips2" fi - OUT="irix-$CC" + OUT="irix-$SUFFIX" ;; mips3-sgi-irix) #CPU=`(hinv -t cpu) 2>/dev/null | head -1 | sed 's/^CPU:[^R]*R\([0-9]*\).*/\1/'` @@ -517,11 +529,11 @@ #else # options="$options -mips3" #fi - OUT="irix-mips3-$CC" + OUT="irix-mips3-$SUFFIX" ;; mips4-sgi-irix64) echo "WARNING! If you wish to build 64-bit library, then you have to" - echo " invoke './Configure irix64-mips4-$CC' *manually*." + echo " invoke './Configure irix64-mips4-$SUFFIX' *manually*." if [ "$TEST" = "false" -a -t 1 ]; then echo " You have about 5 seconds to press Ctrl-C to abort." (trap "stty `stty -g`" 2 0; stty -icanon min 0 time 50; read waste) <&1 @@ -533,7 +545,7 @@ #else # options="$options -mips3" #fi - OUT="irix-mips3-$CC" + OUT="irix-mips3-$SUFFIX" ;; ppc-apple-rhapsody) OUT="rhapsody-ppc-cc" ;; ppc-apple-darwin*) @@ -566,6 +578,9 @@ else OUT="darwin-i386-cc" fi ;; + x86_64-apple-darwin*) + OUT="darwin64-x86_64-cc" + ;; armv6+7-*-iphoneos) options="$options -arch%20armv6 -arch%20armv7" OUT="iphoneos-cross" ;; @@ -575,10 +590,10 @@ alpha-*-linux2) ISA=`awk '/cpu model/{print$4;exit(0);}' /proc/cpuinfo` case ${ISA:-generic} in - *[678]) OUT="linux-alpha+bwx-$CC" ;; - *) OUT="linux-alpha-$CC" ;; + *[678]) OUT="linux-alpha+bwx-$SUFFIX" ;; + *) OUT="linux-alpha-$SUFFIX" ;; esac - if [ "$CC" = "gcc" ]; then + if [ $GCCVER -gt 0 ]; then case ${ISA:-generic} in EV5|EV45) options="$options -mcpu=ev5";; EV56|PCA56) options="$options -mcpu=ev56";; @@ -662,7 +677,7 @@ ;; x86_64-*-linux?) OUT="linux-x86_64" ;; *86-*-linux2) OUT="linux-elf" - if [ "$GCCVER" -gt 28 ]; then + if [ $GCCVER -gt 28 ]; then if grep '^model.*Pentium' /proc/cpuinfo >/dev/null ; then options="$options -march=pentium" fi @@ -676,17 +691,17 @@ *-*-linux1) OUT="linux-aout" ;; *-*-linux2) OUT="linux-generic32" ;; sun4[uv]*-*-solaris2) - OUT="solaris-sparcv9-$CC" + OUT="solaris-sparcv9-$SUFFIX" ISA64=`(isalist) 2>/dev/null | grep sparcv9` if [ "$ISA64" != "" -a "$KERNEL_BITS" = "" ]; then - if [ "$CC" = "cc" -a $CCVER -ge 50 ]; then + if [ $GCCVER -eq 0 -a $CCVER -ge 50 ]; then echo "WARNING! If you wish to build 64-bit library, then you have to" echo " invoke './Configure solaris64-sparcv9-cc' *manually*." if [ "$TEST" = "false" -a -t 1 ]; then echo " You have about 5 seconds to press Ctrl-C to abort." (trap "stty `stty -g`" 2 0; stty -icanon min 0 time 50; read waste) <&1 fi - elif [ "$CC" = "gcc" -a "$GCC_ARCH" = "-m64" ]; then + elif [ $GCCVER -gt 0 -a "$GCC_ARCH" = "-m64" ]; then # $GCC_ARCH denotes default ABI chosen by compiler driver # (first one found on the $PATH). I assume that user # expects certain consistency with the rest of his builds @@ -712,21 +727,21 @@ OUT="solaris64-sparcv9-$CC" fi ;; - sun4m-*-solaris2) OUT="solaris-sparcv8-$CC" ;; - sun4d-*-solaris2) OUT="solaris-sparcv8-$CC" ;; - sun4*-*-solaris2) OUT="solaris-sparcv7-$CC" ;; + sun4m-*-solaris2) OUT="solaris-sparcv8-$SUFFIX" ;; + sun4d-*-solaris2) OUT="solaris-sparcv8-$SUFFIX" ;; + sun4*-*-solaris2) OUT="solaris-sparcv7-$SUFFIX" ;; *86*-*-solaris2) ISA64=`(isalist) 2>/dev/null | grep amd64` - if [ "$ISA64" != "" -a ${KERNEL_BITS:-64} -eq 64 ]; then - OUT="solaris64-x86_64-$CC" + if [ "$ISA64" != "" -a ${KERNEL_BITS:-64} -eq 64 -a $GCCVER -gt 0 -a "$GCC_ARCH" = "-m64" ]; then + OUT="solaris64-x86_64-$SUFFIX" else - OUT="solaris-x86-$CC" + OUT="solaris-x86-$SUFFIX" if [ `uname -r | sed -e 's/5\.//'` -lt 10 ]; then options="$options no-sse2" fi fi ;; - *-*-sunos4) OUT="sunos-$CC" ;; + *-*-sunos4) OUT="sunos-$SUFFIX" ;; *86*-*-bsdi4) OUT="BSD-x86-elf"; options="$options no-sse2 -ldl" ;; alpha*-*-*bsd*) OUT="BSD-generic64"; options="$options -DL_ENDIAN" ;; @@ -750,7 +765,7 @@ *-*-osf) OUT="osf1-alpha-cc" ;; *-*-tru64) OUT="tru64-alpha-cc" ;; *-*-[Uu]nix[Ww]are7) - if [ "$CC" = "gcc" ]; then + if [ $GCCVER -gt 0 ]; then OUT="unixware-7-gcc" ; options="$options no-sse2" else OUT="unixware-7" ; options="$options no-sse2 -D__i386__" @@ -761,12 +776,12 @@ *-*-vos) options="$options no-threads no-shared no-asm no-dso" EXE=".pm" - OUT="vos-$CC" ;; + OUT="vos-$SUFFIX" ;; BS2000-siemens-sysv4) OUT="BS2000-OSD" ;; RM*-siemens-sysv4) OUT="ReliantUNIX" ;; *-siemens-sysv4) OUT="SINIX" ;; *-hpux1*) - if [ $CC = "gcc" -a $GCC_BITS = "64" ]; then + if [ $GCCVER -gt 0 -a $GCC_BITS = "64" ]; then OUT="hpux64-parisc2-gcc" fi [ "$KERNEL_BITS" ] || KERNEL_BITS=`(getconf KERNEL_BITS) 2>/dev/null` @@ -781,8 +796,8 @@ OUT="hpux-ia64-cc" fi elif [ $CPU_VERSION -ge 532 ]; then # PA-RISC 2.x CPU - OUT=${OUT:-"hpux-parisc2-${CC}"} - if [ $KERNEL_BITS -eq 64 -a "$CC" = "cc" ]; then + OUT=${OUT:-"hpux-parisc2-${SUFFIX}"} + if [ $KERNEL_BITS -eq 64 -a $GCCVER -eq 0 ]; then echo "WARNING! If you wish to build 64-bit library then you have to" echo " invoke './Configure hpux64-parisc2-cc' *manually*." if [ "$TEST" = "false" -a -t 1 ]; then @@ -791,9 +806,9 @@ fi fi elif [ $CPU_VERSION -ge 528 ]; then # PA-RISC 1.1+ CPU - OUT="hpux-parisc-${CC}" + OUT="hpux-parisc-${SUFFIX}" elif [ $CPU_VERSION -ge 523 ]; then # PA-RISC 1.0 CPU - OUT="hpux-parisc-${CC}" + OUT="hpux-parisc-${SUFFIX}" else # Motorola(?) CPU OUT="hpux-$CC" fi @@ -803,7 +818,7 @@ [ "$KERNEL_BITS" ] || KERNEL_BITS=`(getconf KERNEL_BITMODE) 2>/dev/null` KERNEL_BITS=${KERNEL_BITS:-32} OBJECT_MODE=${OBJECT_MODE:-32} - if [ "$CC" = "gcc" ]; then + if [ $GCCVER -gt 0 ]; then OUT="aix-gcc" if [ $OBJECT_MODE -eq 64 ]; then echo 'Your $OBJECT_MODE was found to be set to 64' @@ -913,7 +928,7 @@ #fi if [ -z "$OUT" ]; then - OUT="$CC" + OUT="$SUFFIX" fi if [ ".$PERL" = . ] ; then @@ -945,9 +960,9 @@ # compiler for the platform ... in which case we add it on # the end ... otherwise we leave it off -$PERL ./Configure LIST | grep "$OUT-$CC" > /dev/null +$PERL ./Configure LIST | grep "$OUT-$SUFFIX" > /dev/null if [ $? = "0" ]; then - OUT="$OUT-$CC" + OUT="$OUT-$SUFFIX" fi OUT="$PREFIX$OUT" @@ -957,9 +972,9 @@ echo Configuring for $OUT if [ "$TEST" = "true" ]; then - echo $PERL ./Configure $OUT $options + echo $PERL ./Configure $OUT --with-cc=$CC $options else - $PERL ./Configure $OUT $options + $PERL ./Configure $OUT --with-cc=$CC $options fi else echo "This system ($OUT) is not supported. See file INSTALL for details." Index: util/perlpath.pl --- util/perlpath.pl.orig 2014-03-17 17:14:20.000000000 +0100 +++ util/perlpath.pl 2014-04-08 20:33:39.565462778 +0200 @@ -4,7 +4,10 @@ # line in all scripts that rely on perl. # -require "find.pl"; +# find.pl emulation +use File::Find (); +*dir = *File::Find::dir; +sub find { &File::Find::find(\&wanted, @_); } $#ARGV == 0 || print STDERR "usage: perlpath newpath (eg /usr/bin)\n"; &find(".");