Thu Aug 4 14:18:15 2016 UTC ()
PR/51359: Automatic compiler flags for gcc 5 and clang.
(nonaka)
diff -r1.20 -r1.21 pkgsrc/www/ap2-perl/distinfo
diff -r0 -r1.1 pkgsrc/www/ap2-perl/patches/patch-lib_Apache2_Build.pm
--- pkgsrc/www/ap2-perl/distinfo 2015/11/04 02:46:48 1.20
+++ pkgsrc/www/ap2-perl/distinfo 2016/08/04 14:18:15 1.21
| @@ -1,7 +1,8 @@ | | | @@ -1,7 +1,8 @@ |
1 | $NetBSD: distinfo,v 1.20 2015/11/04 02:46:48 agc Exp $ | | 1 | $NetBSD: distinfo,v 1.21 2016/08/04 14:18:15 nonaka Exp $ |
2 | | | 2 | |
3 | SHA1 (mod_perl-2.0.9.tar.gz) = 5de3018214da21de186d758a429d5c78f827caa5 | | 3 | SHA1 (mod_perl-2.0.9.tar.gz) = 5de3018214da21de186d758a429d5c78f827caa5 |
4 | RMD160 (mod_perl-2.0.9.tar.gz) = f4be60f1b4f4b5645aa7e97ad09d6b1871611bd4 | | 4 | RMD160 (mod_perl-2.0.9.tar.gz) = f4be60f1b4f4b5645aa7e97ad09d6b1871611bd4 |
5 | SHA512 (mod_perl-2.0.9.tar.gz) = 421d385f0d5d04cbe8c1e9559960eea86a017fa1bed88e614009143550baf852e2345001faff1fb849d9b3e6383786e0011f45ebc3e7d26ad57651fbad4e2f2c | | 5 | SHA512 (mod_perl-2.0.9.tar.gz) = 421d385f0d5d04cbe8c1e9559960eea86a017fa1bed88e614009143550baf852e2345001faff1fb849d9b3e6383786e0011f45ebc3e7d26ad57651fbad4e2f2c |
6 | Size (mod_perl-2.0.9.tar.gz) = 3846584 bytes | | 6 | Size (mod_perl-2.0.9.tar.gz) = 3846584 bytes |
| | | 7 | SHA1 (patch-lib_Apache2_Build.pm) = b2dd179612272ff6facb0280c00d9589aa93dad6 |
7 | SHA1 (patch-src_modules_perl_modperl_common_util.h) = a5fd094351fef2994b67c6c70abc18c772aec532 | | 8 | SHA1 (patch-src_modules_perl_modperl_common_util.h) = a5fd094351fef2994b67c6c70abc18c772aec532 |
$NetBSD: patch-lib_Apache2_Build.pm,v 1.1 2016/08/04 14:18:15 nonaka Exp $
from mod_perl r1733566.
-----
Automatic compiler flags for gcc 5 and clang
To make compilation easier on gcc5/clang hosts, this patch automatically selects the appropriate c89 option, when modperl is being built with either gcc 5 or clang.
Tested by the author on Ubuntu 15.10 (with gcc 5.2.1), Fedora 23 (with gcc 5.3.1) and FreeBSD 10.2 (with clang).
Thanks to Klaus S. Madsen <ksm@jobindex.dk> for the patch.
-----
--- lib/Apache2/Build.pm.orig 2015-06-19 05:13:53.000000000 +0900
+++ lib/Apache2/Build.pm 2016-07-26 17:27:03.000000000 +0900
@@ -611,6 +611,14 @@ sub ap_ccopts {
$ccopts .= " -DMP_TRACE";
}
+ if ($self->has_gcc_version('5.0.0') && $ccopts !~ /-fgnu89-inline/) {
+ $ccopts .= " -fgnu89-inline";
+ }
+
+ if ($self->has_clang && $ccopts !~ /-std=gnu89/) {
+ $ccopts .= " -std=gnu89";
+ }
+
# make sure apr.h can be safely included
# for example Perl's included -D_GNU_SOURCE implies
# -D_LARGEFILE64_SOURCE on linux, but this won't happen on
@@ -641,6 +649,16 @@ sub has_gcc_version {
return cmp_tuples(\@tuples, \@r_tuples) == 1;
}
+sub has_clang {
+ my $self = shift;
+
+ my $has_version = $self->perl_config('gccversion');
+
+ return 0 unless $has_version;
+
+ return $has_version =~ m/Clang/;
+}
+
sub cmp_tuples {
my ($num_a, $num_b) = @_;