From: Steve Hay Date: Wed, 16 May 2007 08:26:09 +0000 (+0000) Subject: A more general fix to non-threaded static extension build problems X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=8b503b1a8d84e235d4f8455dd10d4d928b5a89e1;p=p5sagit%2Fp5-mst-13.2.git A more general fix to non-threaded static extension build problems than #31220 was. p4raw-id: //depot/perl@31229 --- diff --git a/ext/Win32CORE/Makefile.PL b/ext/Win32CORE/Makefile.PL index c2620e7..0fec306 100644 --- a/ext/Win32CORE/Makefile.PL +++ b/ext/Win32CORE/Makefile.PL @@ -2,6 +2,5 @@ use ExtUtils::MakeMaker; WriteMakefile( 'NAME' => 'Win32CORE', - 'DEFINE' => '-DPERLDLL -DPERL_CORE', 'VERSION_FROM' => 'Win32CORE.pm', ); diff --git a/lib/ExtUtils/MM_Win32.pm b/lib/ExtUtils/MM_Win32.pm index 75d01ca..a78bc6c 100644 --- a/lib/ExtUtils/MM_Win32.pm +++ b/lib/ExtUtils/MM_Win32.pm @@ -534,6 +534,34 @@ sub os_flavor { } +=item cflags + +Defines the PERLDLL symbol if we are configured for static building since all +code destined for the perl5xx.dll must be compiled with the PERLDLL symbol +defined. + +=cut + +sub cflags { + my($self,$libperl)=@_; + return $self->{CFLAGS} if $self->{CFLAGS}; + return '' unless $self->needs_linking(); + + my $base = $self->SUPER::cflags($libperl); + foreach (split /\n/, $base) { + /^(\S*)\s*=\s*(\S*)$/ and $self->{$1} = $2; + }; + $self->{CCFLAGS} .= " -DPERLDLL" if ($self->{LINKTYPE} eq 'static'); + + return $self->{CFLAGS} = qq{ +CCFLAGS = $self->{CCFLAGS} +OPTIMIZE = $self->{OPTIMIZE} +PERLTYPE = $self->{PERLTYPE} +}; + +} + + 1; __END__