forked from pool/apache2-mod_perl
Accepting request 106460 from home:k0da:ppc
- do lfs. Fixes ppc64 build OBS-URL: https://build.opensuse.org/request/show/106460 OBS-URL: https://build.opensuse.org/package/show/Apache:Modules/apache2-mod_perl?expand=0&rev=32
This commit is contained in:
committed by
Git OBS Bridge
parent
671c7ba018
commit
8a2b84eb9e
@@ -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