[perl-PDL] Fix building on ARM
Petr Pisar
ppisar at fedoraproject.org
Mon Oct 14 10:47:44 UTC 2013
commit 92b8f59332041c4d4e6416093bdfaddd16c50262
Author: Petr Písař <ppisar at redhat.com>
Date: Mon Oct 14 12:46:14 2013 +0200
Fix building on ARM
PDL-2.6.0.90-Compile-Slatec-code-as-PIC.patch | 59 +++++++++++++++++++++++++
perl-PDL.spec | 3 +
2 files changed, 62 insertions(+), 0 deletions(-)
---
diff --git a/PDL-2.6.0.90-Compile-Slatec-code-as-PIC.patch b/PDL-2.6.0.90-Compile-Slatec-code-as-PIC.patch
new file mode 100644
index 0000000..7d5a80b
--- /dev/null
+++ b/PDL-2.6.0.90-Compile-Slatec-code-as-PIC.patch
@@ -0,0 +1,59 @@
+From ab4b5fcf70149ce6e3f7fb01e6d2e91d8db37acc Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar at redhat.com>
+Date: Mon, 14 Oct 2013 11:04:02 +0200
+Subject: [PATCH] Compile Slatec code as PIC
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This code fails to build on armv7. There was a hack for amd64 to use -fPIC.
+The objects are used to produce DSO, so they should be PIC always. See
+Debian commit cbca21383acb3e2769da7f886f2aec44d3613675.
+
+Signed-off-by: Petr Písař <ppisar at redhat.com>
+---
+ Lib/Minuit/Makefile.PL | 3 +--
+ Lib/Slatec/Makefile.PL | 3 +--
+ 2 files changed, 2 insertions(+), 4 deletions(-)
+
+diff --git a/Lib/Minuit/Makefile.PL b/Lib/Minuit/Makefile.PL
+index 35dcc44..e59ab9b 100644
+--- a/Lib/Minuit/Makefile.PL
++++ b/Lib/Minuit/Makefile.PL
+@@ -146,13 +146,12 @@ sub MY::postamble {
+ $mycompiler = $f77->compiler();
+ $mycflags = $f77->cflags();
+ my $orig = pdlpp_postamble_int(@::pack);
+- $hack_64bit = ($Config{archname}=~m/x86_64/ ?" -fPIC " : "");
+ $orig =~ s/:\s*minuit\.pd/: minuit.pd/;
+ $orig .= join "\n",map {
+ ("
+
+ minuitlib/$_\$(OBJ_EXT): minuitlib/$_.f
+- $mycompiler -c $hack_64bit -o minuitlib/$_\$(OBJ_EXT) $mycflags minuitlib/$_.f
++ $mycompiler -c -fPIC -o minuitlib/$_\$(OBJ_EXT) $mycflags minuitlib/$_.f
+ " )} @minuitfiles;
+
+ if (!defined($PDL::Config{MINUIT_LIB})){
+diff --git a/Lib/Slatec/Makefile.PL b/Lib/Slatec/Makefile.PL
+index 86ad3be..9e716db 100644
+--- a/Lib/Slatec/Makefile.PL
++++ b/Lib/Slatec/Makefile.PL
+@@ -136,13 +136,12 @@ sub MY::postamble {
+ $mycompiler = $f77->compiler();
+ $mycflags = $f77->cflags();
+ my $orig = pdlpp_postamble_int(@::pack);
+- $hack_64bit = ($Config{archname}=~m/x86_64/ ?" -fPIC " : "");
+ $orig =~ s/:\s*slatec\.pd/: slatec.pd/;
+ $orig .join "\n",map {
+ ("
+
+ slatec/$_\$(OBJ_EXT): slatec/$_.f
+- $mycompiler -c $hack_64bit -o slatec/$_\$(OBJ_EXT) $mycflags slatec/$_.f
++ $mycompiler -c -fPIC -o slatec/$_\$(OBJ_EXT) $mycflags slatec/$_.f
+ " )} @slatecfiles;
+
+ }
+--
+1.8.3.1
+
diff --git a/perl-PDL.spec b/perl-PDL.spec
index bbcd5e5..ecc35ec 100644
--- a/perl-PDL.spec
+++ b/perl-PDL.spec
@@ -15,6 +15,8 @@ Source0: http://search.cpan.org/CPAN/authors/id/C/CH/CHM/PDL-%{cpan_versi
Patch1: perl-PDL-2.4.7-hdf.patch
# Disable Proj support when it's not compatible, bug #839651
Patch2: PDL-2.4.10-Disable-PDL-GIS-Proj.patch
+# Compile Slatec as PIC, needed for ARM
+Patch3: PDL-2.6.0.90-Compile-Slatec-code-as-PIC.patch
BuildRequires: fftw2-devel
BuildRequires: freeglut-devel
BuildRequires: gcc-gfortran
@@ -137,6 +139,7 @@ such commercial packages as IDL and MatLab.
%if %{without proj}
%patch2 -p1 -b .proj
%endif
+%patch3 -p1 -b .slatecpic
# Fix shebang
sed -e 's,^#!/usr/bin/env perl,#!/usr/bin/perl,' -i Perldl2/pdl2
More information about the scm-commits
mailing list