@@ -354,7 +354,7 @@ my %table=(
354
354
"hpux-gcc", "gcc:-DB_ENDIAN -DBN_DIV2W -O3::(unknown)::-Wl,+s -ldld:DES_PTR DES_UNROLL DES_RISC1:${no_asm}:dl:hpux-shared:-fPIC:-shared:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
355
355
356
356
#### HP MPE/iX http://jazz.external.hp.com/src/openssl/
357
- "MPE/iX-gcc", "gcc:-D_ENDIAN - DBN_DIV2W -O3 -D_POSIX_SOURCE -D_SOCKET_SOURCE -I/SYSLOG/PUB::(unknown):MPE:-L/SYSLOG/PUB -lsyslog -lsocket -lcurses:BN_LLONG DES_PTR DES_UNROLL DES_RISC1:::",
357
+ "MPE/iX-gcc", "gcc:-DBN_DIV2W -O3 -D_POSIX_SOURCE -D_SOCKET_SOURCE -I/SYSLOG/PUB::(unknown):MPE:-L/SYSLOG/PUB -lsyslog -lsocket -lcurses:BN_LLONG DES_PTR DES_UNROLL DES_RISC1:::",
358
358
359
359
# DEC Alpha OSF/1/Tru64 targets.
360
360
#
@@ -1269,7 +1269,7 @@ my ($prelflags,$postlflags)=split('%',$lflags);
1269
1269
if (defined($postlflags)) { $lflags=$postlflags; }
1270
1270
else { $lflags=$prelflags; undef $prelflags; }
1271
1271
1272
- if ($target =~ /^mingw/ && `$cc --target-help 2>&1` !~ m/\-mno\-cygwin/m)
1272
+ if ($target =~ /^mingw/ && `$cross_compile_prefix$ cc --target-help 2>&1` !~ m/\-mno\-cygwin/m)
1273
1273
{
1274
1274
$cflags =~ s/\-mno\-cygwin\s*//;
1275
1275
$shared_ldflag =~ s/\-mno\-cygwin\s*//;
@@ -1661,18 +1661,25 @@ if ($shlib_version_number =~ /(^[0-9]*)\.([0-9\.]*)/)
1661
1661
$shlib_minor=$2;
1662
1662
}
1663
1663
1664
- my $ecc = $cc;
1665
- $ecc = "clang" if `$cc --version 2>&1` =~ /clang/;
1664
+ my %predefined;
1665
+
1666
+ # collect compiler pre-defines from gcc or gcc-alike...
1667
+ open(PIPE, "$cross_compile_prefix$cc -dM -E -x c /dev/null 2>&1 |");
1668
+ while (<PIPE>) {
1669
+ m/^#define\s+(\w+(?:\(\w+\))?)(?:\s+(.+))?/ or last;
1670
+ $predefined{$1} = defined($2) ? $2 : "";
1671
+ }
1672
+ close(PIPE);
1666
1673
1667
1674
if ($strict_warnings)
1668
1675
{
1669
1676
my $wopt;
1670
- die "ERROR --strict-warnings requires gcc or clang" unless ($ecc =~ /gcc$/ or $ecc =~ /clang$/ );
1677
+ die "ERROR --strict-warnings requires gcc or clang" unless defined($predefined{__GNUC__} );
1671
1678
foreach $wopt (split /\s+/, $gcc_devteam_warn)
1672
1679
{
1673
1680
$cflags .= " $wopt" unless ($cflags =~ /(^|\s)$wopt(\s|$)/)
1674
1681
}
1675
- if ($ecc eq "clang" )
1682
+ if (defined($predefined{__clang__}) )
1676
1683
{
1677
1684
foreach $wopt (split /\s+/, $clang_devteam_warn)
1678
1685
{
@@ -1723,15 +1730,14 @@ while (<IN>)
1723
1730
s/^NM=\s*/NM= \$\(CROSS_COMPILE\)/;
1724
1731
s/^RANLIB=\s*/RANLIB= \$\(CROSS_COMPILE\)/;
1725
1732
s/^RC=\s*/RC= \$\(CROSS_COMPILE\)/;
1726
- s/^MAKEDEPPROG=.*$/MAKEDEPPROG= \$\(CROSS_COMPILE\)$cc/ if $cc eq "gcc" ;
1733
+ s/^MAKEDEPPROG=.*$/MAKEDEPPROG= \$\(CROSS_COMPILE\)$cc/ if $predefined{__GNUC__} >= 3 ;
1727
1734
}
1728
1735
else {
1729
1736
s/^CC=.*$/CC= $cc/;
1730
1737
s/^AR=\s*ar/AR= $ar/;
1731
1738
s/^RANLIB=.*/RANLIB= $ranlib/;
1732
1739
s/^RC=.*/RC= $windres/;
1733
- s/^MAKEDEPPROG=.*$/MAKEDEPPROG= $cc/ if $cc eq "gcc";
1734
- s/^MAKEDEPPROG=.*$/MAKEDEPPROG= $cc/ if $ecc eq "gcc" || $ecc eq "clang";
1740
+ s/^MAKEDEPPROG=.*$/MAKEDEPPROG= $cc/ if $predefined{__GNUC__} >= 3;
1735
1741
}
1736
1742
s/^CFLAG=.*$/CFLAG= $cflags/;
1737
1743
s/^DEPFLAG=.*$/DEPFLAG=$depflags/;
0 commit comments