dougm 00/12/22 18:23:10
Modified: . Changes Makefile.PL
apaci mod_perl.config.sh
lib/Apache ExtUtils.pm
src/modules/perl Makefile
Log:
if Perl is linked with -lpthread, then httpd needs to be linked with
-lpthread, make sure that happens with USE_DSO=1, warn if USE_APXS=1
disable uselargefile flags by default, enable with:
Makefile.PL PERL_USELARGEFILES=1
Revision Changes Path
1.564 +6 -0 modperl/Changes
Index: Changes
===================================================================
RCS file: /home/cvs/modperl/Changes,v
retrieving revision 1.563
retrieving revision 1.564
diff -u -r1.563 -r1.564
--- Changes 2000/12/23 00:04:36 1.563
+++ Changes 2000/12/23 02:23:07 1.564
@@ -10,6 +10,12 @@
=item 1.24_02-dev
+if Perl is linked with -lpthread, then httpd needs to be linked with
+-lpthread, make sure that happens with USE_DSO=1, warn if USE_APXS=1
+
+disable uselargefile flags by default, enable with:
+ Makefile.PL PERL_USELARGEFILES=1
+
adjust test output (modules/{cgi,constants}) to make 5.7.0-dev
Test::Harness happy
1.174 +35 -10 modperl/Makefile.PL
Index: Makefile.PL
===================================================================
RCS file: /home/cvs/modperl/Makefile.PL,v
retrieving revision 1.173
retrieving revision 1.174
diff -u -r1.173 -r1.174
--- Makefile.PL 2000/12/21 20:00:09 1.173
+++ Makefile.PL 2000/12/23 02:23:08 1.174
@@ -41,6 +41,7 @@
my $Is_dougm = (defined($ENV{USER}) && ($ENV{USER} eq "dougm"));
my $USE_THREADS;
+my $thrlib = join '|', qw(-lpthread);
if ($] < 5.005_60) {
$USE_THREADS = (defined($Config{usethreads}) &&
@@ -94,6 +95,7 @@
$Apache::MyConfig::Setup{Apache_Src} ;
my $PWD = cwd;
+$ENV{PERL5LIB} = "$PWD/lib";
my %SSL = (
"modules/ssl/apache_ssl.c" => "Ben-SSL",
@@ -188,7 +190,9 @@
$PERL_DEBUG = "";
$PERL_DESTRUCT_LEVEL = "";
$PERL_STATIC_EXTS = "";
-$PERL_EXTRA_CFLAGS = $] >= 5.006 ? $Config{ccflags} : "";
+$PERL_USELARGEFILES = 0;
+$PERL_EXTRA_CFLAGS = "";
+$PERL_EXTRA_LIBS = "";
$SSLCacheServerPort = 8539;
$SSL_BASE = "";
$Port = $ENV{HTTP_PORT} || 8529;
@@ -359,6 +363,10 @@
$PERL_EXTRA_CFLAGS .= " -DPERL_SAFE_STARTUP=1";
}
+if ($PERL_USELARGEFILES and $] >= 5.006) {
+ $PERL_EXTRA_CFLAGS .= " $Config{ccflags}";
+}
+
for (keys %PassEnv) {
$ENV{$_} = $$_ if $$_;
}
@@ -975,10 +983,18 @@
$cmd .= qq(CFLAGS="$PERL_EXTRA_CFLAGS" );
}
- if ($USE_DSO) { # override apache's notion of this flag
- $cmd .= qq(LDFLAGS_SHLIB_EXPORT="$Config{ccdlflags}" );
+ if ($USE_DSO) {
+ # override apache's notion of this flag
+ $cmd .= qq(LDFLAGS_SHLIB_EXPORT="$Config{ccdlflags}" );
+
+ #if Perl is linked with -lpthread, httpd needs tobe too
+ if ($Config{libs} =~ /($thrlib)/) {
+ $PERL_EXTRA_LIBS .= " $1";
+ }
}
-
+ if ($PERL_EXTRA_LIBS) {
+ $cmd .= qq(LIBS="$PERL_EXTRA_LIBS" );
+ }
$cmd .= "./configure " .
"--activate-module=src/modules/perl/libperl.a";
@@ -1220,6 +1236,7 @@
HTTPD => $TARGET,
PORT => $PORT,
PWD => $PWD,
+ PERL5LIB => "PERL5LIB=$ENV{PERL5LIB}",
SHRPENV => $Config{shrpenv},
CVSROOT => 'perl.apache.org:/home/cvs',
},
@@ -1338,16 +1355,16 @@
(cd ./apaci && $(MAKE) distclean)
apxs_libperl:
- (cd ./apaci && $(MAKE))
+ (cd ./apaci && $(PERL5LIB) $(MAKE))
apxs_install: apxs_libperl
(cd ./apaci && $(MAKE) install;)
apache_httpd: $(APACHE_SRC)/Makefile.tmpl
- (cd $(APACHE_SRC) && $(SHRPENV) $(MAKE) CC="$(CC)";)
+ (cd $(APACHE_SRC) && $(PERL5LIB) $(SHRPENV) $(MAKE) CC="$(CC)";)
apaci_httpd:
- (cd $(APACHE_ROOT) && $(MAKE))
+ (cd $(APACHE_ROOT) && $(PERL5LIB) $(MAKE))
apaci_install:
(cd $(APACHE_ROOT) && $(MAKE) install)
@@ -1961,6 +1978,7 @@
'Apache_Src' => \'$APACHE_SRC\',
'SSL_BASE' => \'$SSL_BASE\',
'APXS' => \'$WITH_APXS\',
+ 'PERL_USELARGEFILES' => \'$PERL_USELARGEFILES\',
EOT
foreach my $key (sort @callback_hooks) {
@@ -2125,8 +2143,7 @@
sub ccopts {
unless ($Embed::ccopts) {
- $Embed::ccopts = `$^X -MExtUtils::Embed -e ccopts`;
-
+ $Embed::ccopts = "$Config{ccflags} -I$Config{archlibexp}/CORE";
if($USE_THREADS) {
$Embed::ccopts .= " -DPERL_THREADS";
}
@@ -2277,6 +2294,12 @@
uselargefiles_check();
dynaloader_check();
+ if ($USE_APXS and $Config{libs} =~ /($thrlib)/) {
+ my $lib = $1;
+ phat_warn(<<EOF);
+Your Perl is linked with $lib, make sure that your httpd is built with LIBS=$lib
+EOF
+ }
}
sub gdbm_check {
@@ -2308,13 +2331,15 @@
}
sub uselargefiles_check {
- return unless $] >= 5.006 and $Config{uselargefiles} and $USE_APXS;
+ return unless $] >= 5.006 and $Config{uselargefiles}
+ and $PERL_USELARGEFILES and $USE_APXS;
local $Apache::src::APXS = $WITH_APXS;
my $cflags = Apache::src->new->apxs('-q' => 'CFLAGS') || '';
return if $cflags =~ /LARGEFILE/;
phat_warn(<<EOF);
Your Perl is uselargefiles enabled, but Apache is not, suggestions:
+ *) Rebuild mod_perl with Makefile.PL PERL_USELARGEFILES=0
*) Rebuild Apache with CFLAGS="-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
*) Rebuild Perl with Configure -Uuselargefiles
*) Let mod_perl build Apache (USE_DSO=1 instead of USE_APXS=1)
1.21 +2 -2 modperl/apaci/mod_perl.config.sh
Index: mod_perl.config.sh
===================================================================
RCS file: /home/cvs/modperl/apaci/mod_perl.config.sh,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
--- mod_perl.config.sh 2000/12/20 07:10:24 1.20
+++ mod_perl.config.sh 2000/12/23 02:23:09 1.21
@@ -107,8 +107,8 @@
# determine build tools and flags
#
-#config_pm='-MApache::ExtUtils=%Config'
-config_pm='-MConfig'
+config_pm='-MApache::ExtUtils=%Config'
+#config_pm='-MConfig'
perl_cc="`$perl_interp $config_pm -e 'print $Config{cc}'`"
perl_ccflags="`$perl_interp $config_pm -e 'print $Config{ccflags}'`"
perl_optimize="`$perl_interp $config_pm -e 'print $Config{optimize}'`"
1.21 +6 -0 modperl/lib/Apache/ExtUtils.pm
Index: ExtUtils.pm
===================================================================
RCS file: /home/cvs/modperl/lib/Apache/ExtUtils.pm,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
--- ExtUtils.pm 2000/06/01 21:17:45 1.20
+++ ExtUtils.pm 2000/12/23 02:23:09 1.21
@@ -33,8 +33,14 @@
*ccopts = \&ExtUtils::Embed::ccopts;
sub Config_pm_fixup {
+ eval { require Apache::MyConfig; };
my %config_fixups = (
ccdlflags => sub { s/-R\s+/-R/; },
+ ccflags => sub {
+ unless ($Apache::MyConfig::Setup{PERL_USELARGEFILES}) {
+ s/-D_LARGEFILE_SOURCE\s+-D_FILE_OFFSET_BITS=\d+//;
+ }
+ },
);
while (my($key, $sub) = each %config_fixups) {
1.12 +4 -2 modperl/src/modules/perl/Makefile
Index: Makefile
===================================================================
RCS file: /home/cvs/modperl/src/modules/perl/Makefile,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- Makefile 2000/09/01 05:10:14 1.11
+++ Makefile 2000/12/23 02:23:09 1.12
@@ -50,7 +50,7 @@
#
# Makefile for the Apache mod_perl library
#
-# $Id: Makefile,v 1.11 2000/09/01 05:10:14 dougm Exp $
+# $Id: Makefile,v 1.12 2000/12/23 02:23:09 dougm Exp $
#
#__ORIGINAL__
@@ -104,7 +104,9 @@
PERL_STATIC_EXTS =
PERL5LIB=`$(PERL) -MConfig -e 'print $$Config{privlibexp}'`
EXTUTILS_EMBED = $(PERL) -MExtUtils::Embed
-PERL_CFG_CCFLAGS = `$(PERL) -MConfig -e 'print $$Config{ccflags}'`
+#CONFIG_PM=-MConfig
+CONFIG_PM='-MApache::ExtUtils=%Config'
+PERL_CFG_CCFLAGS = `$(PERL) $(CONFIG_PM) -e 'print $$Config{ccflags}'`
PERL_CFG_ARCHLIB = `$(PERL) -MConfig -e 'print $$Config{archlibexp}'`
PERL_CCFLAGS = -I$(PERL_CFG_ARCHLIB)/CORE $(PERL_CFG_CCFLAGS) $(PERL_HOOKS) $(TRACE)