diff -bu ./lib/Apache2/Build.pm~ ./lib/Apache2/Build.pm --- ./lib/Apache2/Build.pm~ 2015-06-18 22:13:53.000000000 +0200 +++ ./lib/Apache2/Build.pm 2016-08-18 15:45:27.000000000 +0200 @@ -517,18 +517,19 @@ sub ldopts { my ($self) = @_; - my $config = tied %Config; - my $ldflags = $config->{ldflags}; - + my $ldflags = $Config{ldflags}; if (WIN32) { - $config->{ldflags} = ''; #same as lddlflags + require Mock::Config; + Mock::Config->import(ldflags => ''); # same as lddlflags } elsif (DARWIN) { + require Mock::Config; #not sure how this can happen, but it shouldn't my @bogus_flags = ('flat_namespace', 'bundle', 'undefined suppress'); for my $flag (@bogus_flags) { - $config->{ldflags} =~ s/-$flag\s*//; + $ldflags =~ s/-$flag\s*//; } + Mock::Config->import(ldflags => $ldflags); } my $ldopts = ExtUtils::Embed::ldopts(); @@ -547,8 +548,9 @@ if ($self->{MP_USE_GTOP}) { $ldopts .= $self->gtop_ldopts; } - - $config->{ldflags} = $ldflags; #reset + if (DARWIN || WIN32) { + Mock::Config->unimport; # reset ldflags + } # on Irix mod_perl.so needs to see the libperl.so symbols, which # requires the -exports option immediately before -lperl. diff -bu ./lib/ModPerl/BuildMM.pm~ ./lib/ModPerl/BuildMM.pm --- ./lib/ModPerl/BuildMM.pm~ 2015-06-18 22:13:53.000000000 +0200 +++ ./lib/ModPerl/BuildMM.pm 2016-08-18 15:54:21.000000000 +0200 @@ -134,6 +134,9 @@ LIBS => $libs, dynamic_lib => \%dynamic_lib, ); + if (WIN32 || $^O eq 'darwin') { + push @opts, 'BUILD_REQUIRES' => { 'Mock::Config' => 0.03 }; + } my @typemaps; push @typemaps, $args{TYPEMAPS} if $args{TYPEMAPS};