forked from pool/apache2-mod_perl
		
	Accepting request 112591 from Apache:Modules
- do lfs. Fixes ppc64 build (forwarded request 106460 from k0da) OBS-URL: https://build.opensuse.org/request/show/112591 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/apache2-mod_perl?expand=0&rev=23
This commit is contained in:
		@@ -1,3 +1,8 @@
 | 
			
		||||
-------------------------------------------------------------------
 | 
			
		||||
Wed Feb 22 12:37:39 UTC 2012 - dvaleev@suse.com
 | 
			
		||||
 | 
			
		||||
- do lfs. Fixes ppc64 build 
 | 
			
		||||
 | 
			
		||||
-------------------------------------------------------------------
 | 
			
		||||
Mon Feb 13 10:44:11 UTC 2012 - coolo@suse.com
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -53,7 +53,7 @@ Version:        2.0.5
 | 
			
		||||
Release:        0
 | 
			
		||||
Source0:        http://perl.apache.org/dist/mod_perl-%{version}.tar.gz
 | 
			
		||||
Patch:          %{name}-2.0.4-tests.diff
 | 
			
		||||
Patch1:         nolfs.patch
 | 
			
		||||
Patch1:         lfs-perl-5.14.patch 
 | 
			
		||||
#%define apache_test_version 1_99_15
 | 
			
		||||
# cvs -d :pserver:anoncvs@cvs.apache.org:/home/cvspublic up -r MODPERL_%{apache_test_version}
 | 
			
		||||
#Source1:      Apache-Test-%{apache_test_version}.tar.bz2
 | 
			
		||||
@@ -114,7 +114,6 @@ software depending on apache2-mod_perl.
 | 
			
		||||
#%setup -q -n modperl-2.0 -a 1
 | 
			
		||||
%setup -q -n mod_perl-%{version}
 | 
			
		||||
%patch1 -p1
 | 
			
		||||
#%patch
 | 
			
		||||
find -name ".svn" -type d | xargs rm -rfv
 | 
			
		||||
 | 
			
		||||
%build
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										136
									
								
								lfs-perl-5.14.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										136
									
								
								lfs-perl-5.14.patch
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,136 @@
 | 
			
		||||
Index: mod_perl-2.0.5/lib/Apache2/Build.pm
 | 
			
		||||
===================================================================
 | 
			
		||||
--- mod_perl-2.0.5.orig/lib/Apache2/Build.pm
 | 
			
		||||
+++ mod_perl-2.0.5/lib/Apache2/Build.pm
 | 
			
		||||
@@ -598,7 +598,7 @@ sub cmp_tuples {
 | 
			
		||||
 sub perl_ccopts {
 | 
			
		||||
     my $self = shift;
 | 
			
		||||
 
 | 
			
		||||
-    my $cflags = $self->strip_lfs(" $Config{ccflags} ");
 | 
			
		||||
+    my $cflags = " $Config{ccflags} ";
 | 
			
		||||
 
 | 
			
		||||
     my $fixup = \&{"ccopts_$^O"};
 | 
			
		||||
     if (defined &$fixup) {
 | 
			
		||||
@@ -2077,94 +2077,6 @@ sub inc {
 | 
			
		||||
     "@includes";
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
-### Picking the right LFS support flags for mod_perl, by Joe Orton ###
 | 
			
		||||
-#
 | 
			
		||||
-# on Unix systems where by default off_t is a "long", a 32-bit integer,
 | 
			
		||||
-# there are two different ways to get "large file" support, i.e. the
 | 
			
		||||
-# ability to manipulate files bigger than 2Gb:
 | 
			
		||||
-#
 | 
			
		||||
-# 1) you compile using -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64.  This
 | 
			
		||||
-# makes sys/types.h expose off_t as a "long long", a 64-bit integer, and
 | 
			
		||||
-# changes the size of a few other types too.  The C library headers
 | 
			
		||||
-# automatically arrange to expose a correct implementation of functions
 | 
			
		||||
-# like lseek() which take off_t parameters.
 | 
			
		||||
-#
 | 
			
		||||
-# 2) you compile using -D_LARGEFILE64_SOURCE, and use what is called the
 | 
			
		||||
-# "transitional" interface.  This means that the system headers expose a
 | 
			
		||||
-# new type, "off64_t", which is a long long, but the size of off_t is not
 | 
			
		||||
-# changed.   A bunch of new functions like lseek64() are exposed by the C 
 | 
			
		||||
-# library headers, which take off64_t parameters in place of off_t.
 | 
			
		||||
-#
 | 
			
		||||
-# Perl built with -Duselargefiles uses approach (1).
 | 
			
		||||
-#
 | 
			
		||||
-# APR HEAD uses (2) by default. APR 0.9 does not by default use either
 | 
			
		||||
-# approach, but random users can take a httpd-2.0.49 tarball, and do:
 | 
			
		||||
-#
 | 
			
		||||
-#   export CPPFLAGS="-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
 | 
			
		||||
-#   ./configure
 | 
			
		||||
-#
 | 
			
		||||
-# to build a copy of apr/httpd which uses approach (1), though this
 | 
			
		||||
-# isn't really a supported configuration.
 | 
			
		||||
-#
 | 
			
		||||
-# The problem that mod_perl has to work around is when you take a
 | 
			
		||||
-# package built with approach (1), i.e. Perl, and any package which was
 | 
			
		||||
-# *not* built with (1), i.e. APR, and want to interface between
 | 
			
		||||
-# them. [1]
 | 
			
		||||
-#
 | 
			
		||||
-# So what you want to know is whether APR was built using approach (1)
 | 
			
		||||
-# or not.  APR_HAS_LARGE_FILES in HEAD just tells you whether APR was
 | 
			
		||||
-# built using approach (2) or not, which isn't useful in solving this
 | 
			
		||||
-# problem.
 | 
			
		||||
-#
 | 
			
		||||
-# [1]: In some cases, it may be OK to interface between packages which
 | 
			
		||||
-# use (1) and packages which use (2).  APR HEAD is currently not such a
 | 
			
		||||
-# case, since the size of apr_ino_t is still changing when
 | 
			
		||||
-# _FILE_OFFSET_BITS is defined.
 | 
			
		||||
-#
 | 
			
		||||
-# If you want to see how this matters, get some httpd function to do at
 | 
			
		||||
-# the very beginning of main():
 | 
			
		||||
-#
 | 
			
		||||
-#   printf("sizeof(request_rec) = %lu, sizeof(apr_finfo_t) = %ul",
 | 
			
		||||
-#          sizeof(request_rec), sizeof(apr_finfo_t));
 | 
			
		||||
-#
 | 
			
		||||
-# and then put the same printf in mod_perl somewhere, and see the
 | 
			
		||||
-# differences. This is why it is a really terribly silly idea to ever
 | 
			
		||||
-# use approach (1) in anything other than an entirely self-contained
 | 
			
		||||
-# application.
 | 
			
		||||
-#
 | 
			
		||||
-# there is no conflict if both libraries either have or don't have
 | 
			
		||||
-# large files support enabled
 | 
			
		||||
-sub has_large_files_conflict {
 | 
			
		||||
-    my $self = shift;
 | 
			
		||||
-
 | 
			
		||||
-    my $apxs_flags = join $self->apxs_extra_cflags, $self->apxs_extra_cppflags;
 | 
			
		||||
-    my $apr_lfs64  = $apxs_flags      =~ /-D_FILE_OFFSET_BITS=64/;
 | 
			
		||||
-    my $perl_lfs64 = $Config{ccflags} =~ /-D_FILE_OFFSET_BITS=64/;
 | 
			
		||||
-
 | 
			
		||||
-    # XXX: we don't really deal with the case where APR was built with
 | 
			
		||||
-    # -D_FILE_OFFSET_BITS=64 but perl wasn't, since currently we strip
 | 
			
		||||
-    # only perl's ccflags, not apr's flags. the reason we don't deal
 | 
			
		||||
-    # with it is that we didn't have such a case yet, but may need to
 | 
			
		||||
-    # deal with it later
 | 
			
		||||
-
 | 
			
		||||
-    return $perl_lfs64 ^ $apr_lfs64;
 | 
			
		||||
-}
 | 
			
		||||
-
 | 
			
		||||
-# if perl is built with uselargefiles, but apr not, the build won't
 | 
			
		||||
-# work together as it uses two binary incompatible libraries, so
 | 
			
		||||
-# reduce the functionality to the greatest common denominator (C code
 | 
			
		||||
-# will have to make sure to prevent any operations that may rely on
 | 
			
		||||
-# effects created by uselargefiles, e.g. Off_t=8 instead of Off_t=4)
 | 
			
		||||
-sub strip_lfs {
 | 
			
		||||
-    my ($self, $cflags) = @_;
 | 
			
		||||
-    return $cflags unless $self->has_large_files_conflict();
 | 
			
		||||
-
 | 
			
		||||
-    my $lf = $Config{ccflags_uselargefiles}
 | 
			
		||||
-        || '-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64';
 | 
			
		||||
-    $cflags =~ s/$lf//;
 | 
			
		||||
-    $cflags;
 | 
			
		||||
-}
 | 
			
		||||
-
 | 
			
		||||
 sub define {
 | 
			
		||||
     my $self = shift;
 | 
			
		||||
 
 | 
			
		||||
Index: mod_perl-2.0.5/xs/APR/PerlIO/Makefile.PL
 | 
			
		||||
===================================================================
 | 
			
		||||
--- mod_perl-2.0.5.orig/xs/APR/PerlIO/Makefile.PL
 | 
			
		||||
+++ mod_perl-2.0.5/xs/APR/PerlIO/Makefile.PL
 | 
			
		||||
@@ -8,23 +8,6 @@ my $build = Apache2::Build->build_config
 | 
			
		||||
 
 | 
			
		||||
 my $ccopts = $build->ccopts;
 | 
			
		||||
 
 | 
			
		||||
-# when uselargefiles is on, -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
 | 
			
		||||
-# are needed to get the right 'Off_t', without which perlio compiled
 | 
			
		||||
-# with Off_t as 'long long int', doesn't quite work with apr_perlio.c
 | 
			
		||||
-# compiled with Off_t as 'long int'
 | 
			
		||||
-#
 | 
			
		||||
-# On the other handl if apr is built without large files support, we
 | 
			
		||||
-# have binary compatibility problems, if we try to build mod_perl with
 | 
			
		||||
-# -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
 | 
			
		||||
-#
 | 
			
		||||
-# XXX: it seems that enabling these flags only for apr_perlio/PerlIO
 | 
			
		||||
-# seems to do the trick
 | 
			
		||||
-if ($build->has_large_files_conflict) {
 | 
			
		||||
-    $ccopts .= $Config{uselargefiles}
 | 
			
		||||
-        ? ' ' . $Config{ccflags_uselargefiles}
 | 
			
		||||
-        : '';
 | 
			
		||||
-}
 | 
			
		||||
-
 | 
			
		||||
 ModPerl::BuildMM::WriteMakefile(
 | 
			
		||||
     NAME         => 'APR::PerlIO',
 | 
			
		||||
     VERSION_FROM => 'PerlIO.pm',
 | 
			
		||||
							
								
								
									
										14
									
								
								nolfs.patch
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								nolfs.patch
									
									
									
									
									
								
							@@ -1,14 +0,0 @@
 | 
			
		||||
Index: mod_perl-2.0.5/lib/Apache2/Build.pm
 | 
			
		||||
===================================================================
 | 
			
		||||
--- mod_perl-2.0.5.orig/lib/Apache2/Build.pm	2011-02-02 21:23:47.000000000 +0100
 | 
			
		||||
+++ mod_perl-2.0.5/lib/Apache2/Build.pm	2011-05-26 17:12:46.276946520 +0200
 | 
			
		||||
@@ -2147,7 +2147,8 @@ sub has_large_files_conflict {
 | 
			
		||||
     # with it is that we didn't have such a case yet, but may need to
 | 
			
		||||
     # deal with it later
 | 
			
		||||
 
 | 
			
		||||
-    return $perl_lfs64 ^ $apr_lfs64;
 | 
			
		||||
+    return 0;
 | 
			
		||||
+    # $perl_lfs64 ^ $apr_lfs64;
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
 # if perl is built with uselargefiles, but apr not, the build won't
 | 
			
		||||
		Reference in New Issue
	
	Block a user