This commit is contained in:
Petr Písař 2014-10-24 15:11:59 +02:00
parent feb6693d1b
commit 8f43a4c40e
5 changed files with 144 additions and 1 deletions

1
.gitignore vendored
View File

@ -1 +1,2 @@
ExtUtils-CBuilder-0.21.tar.gz
/ExtUtils-CBuilder-0.280219.tar.gz

View File

@ -0,0 +1,65 @@
From 0c575416d2889e92c6c0d487ec2b52b45882557a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
Date: Wed, 3 Jul 2013 11:01:02 +0200
Subject: [PATCH] Link XS modules to libperl.so with EU::CBuilder on Linux
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
<https://bugzilla.redhat.com/show_bug.cgi?id=960048>
<http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=327585#50>
Signed-off-by: Petr Písař <ppisar@redhat.com>
---
MANIFEST | 1 +
lib/ExtUtils/CBuilder/Platform/linux.pm | 26 ++++++++++++++++++++++++++
2 files changed, 27 insertions(+)
create mode 100644 lib/ExtUtils/CBuilder/Platform/linux.pm
diff --git a/MANIFEST b/MANIFEST
index eb71c93..5be739e 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -24,6 +24,7 @@ lib/ExtUtils/CBuilder/Platform/android.pm
lib/ExtUtils/CBuilder/Platform/cygwin.pm
lib/ExtUtils/CBuilder/Platform/darwin.pm
lib/ExtUtils/CBuilder/Platform/dec_osf.pm
+lib/ExtUtils/CBuilder/Platform/linux.pm
lib/ExtUtils/CBuilder/Platform/os2.pm
t/00-have-compiler.t
t/01-basic.t
diff --git a/lib/ExtUtils/CBuilder/Platform/linux.pm b/lib/ExtUtils/CBuilder/Platform/linux.pm
new file mode 100644
index 0000000..e3251c4
--- /dev/null
+++ b/lib/ExtUtils/CBuilder/Platform/linux.pm
@@ -0,0 +1,26 @@
+package ExtUtils::CBuilder::Platform::linux;
+
+use strict;
+use ExtUtils::CBuilder::Platform::Unix;
+use File::Spec;
+
+use vars qw($VERSION @ISA);
+$VERSION = '0.280206';
+@ISA = qw(ExtUtils::CBuilder::Platform::Unix);
+
+sub link {
+ my ($self, %args) = @_;
+ my $cf = $self->{config};
+
+ # Link XS modules to libperl.so explicitly because multiple
+ # dlopen(, RTLD_LOCAL) hides libperl symbols from XS module.
+ local $cf->{lddlflags} = $cf->{lddlflags};
+ if ($ENV{PERL_CORE}) {
+ $cf->{lddlflags} .= ' -L' . $self->perl_inc();
+ }
+ $cf->{lddlflags} .= ' -lperl';
+
+ return $self->SUPER::link(%args);
+}
+
+1;
--
1.9.3

View File

@ -1 +0,0 @@
Package obsoleted by the base perl package in 5.10.0.

View File

@ -0,0 +1,77 @@
Name: perl-ExtUtils-CBuilder
# Compete with perl.spec
Epoch: 1
# Mimic perl.spec
Version: 0.280219
Release: 1%{?dist}
Summary: Compile and link C code for Perl modules
License: GPL+ or Artistic
Group: Development/Libraries
URL: http://search.cpan.org/dist/ExtUtils-CBuilder/
Source0: http://www.cpan.org/authors/id/A/AM/AMBS/ExtUtils-CBuilder-%{version}.tar.gz
# Link XS modules to libperl.so with EU::CBuilder on Linux, bug #960048
Patch0: ExtUtils-CBuilder-0.280219-Link-XS-modules-to-libperl.so-with-EU-CBuilder-on-Li.patch
BuildArch: noarch
BuildRequires: perl
BuildRequires: perl(ExtUtils::MakeMaker)
BuildRequires: perl(strict)
BuildRequires: perl(warnings)
# Run-time:
BuildRequires: perl(Config)
BuildRequires: perl(Cwd)
BuildRequires: perl(DynaLoader)
# ExtUtils::Mksymlists 6.30 not used at test time
BuildRequires: perl(File::Basename)
BuildRequires: perl(File::Path)
BuildRequires: perl(File::Spec) >= 3.13
# File::Spec::Functions not used at test time
BuildRequires: perl(File::Temp)
# IO::File not used at test time
BuildRequires: perl(IPC::Cmd)
BuildRequires: perl(Perl::OSType) >= 1
BuildRequires: perl(Text::ParseWords)
BuildRequires: perl(vars)
BuildRequires: perl-devel
# Tests:
BuildRequires: perl(Test::More) >= 0.47
# vmsish not used
Requires: perl(:MODULE_COMPAT_%(eval "`perl -V:version`"; echo $version))
Requires: perl(DynaLoader)
Requires: perl(ExtUtils::Mksymlists) >= 6.30
Requires: perl(File::Spec) >= 3.13
Requires: perl(Perl::OSType) >= 1
Requires: perl-devel
%{?perl_default_filter}
# Remove under-specified dependencies
%global __requires_exclude %{?__requires_exclude:%__requires_exclude|}^perl\\((File::Spec|Perl::OSType)\\)$
%description
This module can build the C portions of Perl modules by invoking the
appropriate compilers and linkers in a cross-platform manner. It was motivated
by the Module::Build project, but may be useful for other purposes as well.
%prep
%setup -q -n ExtUtils-CBuilder-%{version}
%patch0 -p1
%build
perl Makefile.PL INSTALLDIRS=vendor
make %{?_smp_mflags}
%install
make pure_install DESTDIR=$RPM_BUILD_ROOT
find $RPM_BUILD_ROOT -type f -name .packlist -exec rm -f {} \;
%{_fixperms} $RPM_BUILD_ROOT/*
%check
make test
%files
%doc Changes CONTRIBUTING LICENSE README README.mkdn
%{perl_vendorlib}/*
%{_mandir}/man3/*
%changelog
* Thu Sep 18 2014 Petr Pisar <ppisar@redhat.com> - 1:0.280219-1
- Specfile autogenerated by cpanspec 1.78.

1
sources Normal file
View File

@ -0,0 +1 @@
ded207aea4fd0912e26f78beaca8c6b3 ExtUtils-CBuilder-0.280219.tar.gz