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
						Git OBS Bridge
					
				
			
			
				
	
			
			
			
						parent
						
							1b6227e6ca
						
					
				
				
					commit
					db8602e559
				
			| @@ -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 | Mon Feb 13 10:44:11 UTC 2012 - coolo@suse.com | ||||||
|  |  | ||||||
|   | |||||||
| @@ -53,7 +53,7 @@ Version:        2.0.5 | |||||||
| Release:        0 | Release:        0 | ||||||
| Source0:        http://perl.apache.org/dist/mod_perl-%{version}.tar.gz | Source0:        http://perl.apache.org/dist/mod_perl-%{version}.tar.gz | ||||||
| Patch:          %{name}-2.0.4-tests.diff | Patch:          %{name}-2.0.4-tests.diff | ||||||
| Patch1:         nolfs.patch | Patch1:         lfs-perl-5.14.patch  | ||||||
| #%define apache_test_version 1_99_15 | #%define apache_test_version 1_99_15 | ||||||
| # cvs -d :pserver:anoncvs@cvs.apache.org:/home/cvspublic up -r MODPERL_%{apache_test_version} | # cvs -d :pserver:anoncvs@cvs.apache.org:/home/cvspublic up -r MODPERL_%{apache_test_version} | ||||||
| #Source1:      Apache-Test-%{apache_test_version}.tar.bz2 | #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 modperl-2.0 -a 1 | ||||||
| %setup -q -n mod_perl-%{version} | %setup -q -n mod_perl-%{version} | ||||||
| %patch1 -p1 | %patch1 -p1 | ||||||
| #%patch |  | ||||||
| find -name ".svn" -type d | xargs rm -rfv | find -name ".svn" -type d | xargs rm -rfv | ||||||
|  |  | ||||||
| %build | %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