add ppc64le support with patch from Debian (Fedora bootstrap by jcapik)
add *_ver macros variables for library versions
This commit is contained in:
parent
1086f85751
commit
de62eeb865
41
ghc-ppc64el.patch
Normal file
41
ghc-ppc64el.patch
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
Description: Add ppc64el support
|
||||||
|
Author: Colin Watson <cjwatson@ubuntu.com>
|
||||||
|
Bug: https://ghc.haskell.org/trac/ghc/ticket/8965
|
||||||
|
Last-Update: 2014-04-12
|
||||||
|
|
||||||
|
Index: b/aclocal.m4
|
||||||
|
===================================================================
|
||||||
|
--- a/aclocal.m4
|
||||||
|
+++ b/aclocal.m4
|
||||||
|
@@ -173,7 +173,7 @@
|
||||||
|
GET_ARM_ISA()
|
||||||
|
test -z "[$]2" || eval "[$]2=\"ArchARM {armISA = \$ARM_ISA, armISAExt = \$ARM_ISA_EXT, armABI = \$ARM_ABI}\""
|
||||||
|
;;
|
||||||
|
- alpha|mips|mipseb|mipsel|hppa|hppa1_1|ia64|m68k|rs6000|s390|s390x|sparc64|vax)
|
||||||
|
+ alpha|mips|mipseb|mipsel|hppa|hppa1_1|ia64|m68k|powerpc64le|rs6000|s390|s390x|sparc64|vax)
|
||||||
|
test -z "[$]2" || eval "[$]2=ArchUnknown"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
@@ -1868,6 +1868,9 @@
|
||||||
|
mips*)
|
||||||
|
$2="mips"
|
||||||
|
;;
|
||||||
|
+ powerpc64le*)
|
||||||
|
+ $2="powerpc64le"
|
||||||
|
+ ;;
|
||||||
|
powerpc64*)
|
||||||
|
$2="powerpc64"
|
||||||
|
;;
|
||||||
|
Index: b/includes/Stg.h
|
||||||
|
===================================================================
|
||||||
|
--- a/includes/Stg.h
|
||||||
|
+++ b/includes/Stg.h
|
||||||
|
@@ -213,7 +213,7 @@
|
||||||
|
#define II_(X) static StgWordArray (X) GNU_ATTRIBUTE(aligned (8))
|
||||||
|
#define IF_(f) static StgFunPtr GNUC3_ATTRIBUTE(used) f(void)
|
||||||
|
#define FN_(f) StgFunPtr f(void)
|
||||||
|
-#define EF_(f) extern StgFunPtr f(void)
|
||||||
|
+#define EF_(f) extern StgFunPtr f()
|
||||||
|
|
||||||
|
/* -----------------------------------------------------------------------------
|
||||||
|
Tail calls
|
118
ghc.spec
118
ghc.spec
@ -12,11 +12,35 @@
|
|||||||
#%%undefine without_haddock
|
#%%undefine without_haddock
|
||||||
|
|
||||||
# unregisterized archs
|
# unregisterized archs
|
||||||
%global unregisterised_archs ppc64 s390 s390x
|
%global unregisterised_archs ppc64 s390 s390x ppc64le
|
||||||
|
|
||||||
%global space %(echo -n ' ')
|
%global space %(echo -n ' ')
|
||||||
%global BSDHaskellReport BSD%{space}and%{space}HaskellReport
|
%global BSDHaskellReport BSD%{space}and%{space}HaskellReport
|
||||||
|
|
||||||
|
%global Cabal_ver 1.16.0
|
||||||
|
%global array_ver 0.4.0.1
|
||||||
|
%global base_ver 4.6.0.1
|
||||||
|
%global bin_package_db_ver 0.0.0.0
|
||||||
|
%global binary_ver 0.5.1.1
|
||||||
|
%global bytestring_ver 0.10.0.2
|
||||||
|
%global containers_ver 0.5.0.0
|
||||||
|
%global deepseq_ver 1.3.0.1
|
||||||
|
%global directory_ver 1.2.0.1
|
||||||
|
%global filepath_ver 1.3.0.1
|
||||||
|
%global ghc_prim_ver 0.3.0.0
|
||||||
|
%global haskell2010_ver 1.1.1.0
|
||||||
|
%global haskell98_ver 2.0.0.2
|
||||||
|
%global hoopl_ver 3.9.0.0
|
||||||
|
%global hpc_ver 0.6.0.0
|
||||||
|
%global integer_gmp_ver 0.5.0.0
|
||||||
|
%global old_locale_ver 1.0.0.5
|
||||||
|
%global old_time_ver 1.1.0.1
|
||||||
|
%global pretty_ver 1.1.1.0
|
||||||
|
%global process_ver 1.1.0.2
|
||||||
|
%global template_haskell_ver 2.8.0.0
|
||||||
|
%global time_ver 1.4.0.1
|
||||||
|
%global unix_ver 2.6.0.1
|
||||||
|
|
||||||
Name: ghc
|
Name: ghc
|
||||||
# part of haskell-platform
|
# part of haskell-platform
|
||||||
# ghc must be rebuilt after a version bump to avoid ABI change problems
|
# ghc must be rebuilt after a version bump to avoid ABI change problems
|
||||||
@ -57,7 +81,11 @@ Patch16: ghc-cabal-unversion-docdir.patch
|
|||||||
# fix libffi segfaults on 32bit (upstream in 7.8)
|
# fix libffi segfaults on 32bit (upstream in 7.8)
|
||||||
Patch17: ghc-7.6.3-rts-Adjustor-32bit-segfault.patch
|
Patch17: ghc-7.6.3-rts-Adjustor-32bit-segfault.patch
|
||||||
# add .note.GNU-stack to assembly output to avoid execstack (#973512)
|
# add .note.GNU-stack to assembly output to avoid execstack (#973512)
|
||||||
Patch18: ghc-7.6-driver-Disable-executable-stack-for-the-linker-note.patch
|
# (disabled for now since it changes libghc ABI and fix only works for i686)
|
||||||
|
#Patch18: ghc-7.6-driver-Disable-executable-stack-for-the-linker-note.patch
|
||||||
|
# changes for ppc64le committed upstream for 7.8.3
|
||||||
|
# (https://ghc.haskell.org/trac/ghc/ticket/8965)
|
||||||
|
Patch19: ghc-ppc64el.patch
|
||||||
|
|
||||||
# fedora ghc has been bootstrapped on
|
# fedora ghc has been bootstrapped on
|
||||||
# %{ix86} x86_64 ppc alpha sparcv9 ppc64 armv7hl armv5tel s390 s390x
|
# %{ix86} x86_64 ppc alpha sparcv9 ppc64 armv7hl armv5tel s390 s390x
|
||||||
@ -73,7 +101,11 @@ Obsoletes: ghc-feldspar-language < 0.4, ghc-feldspar-language-devel < 0.4, ghc-f
|
|||||||
%if %{undefined ghc_bootstrapping}
|
%if %{undefined ghc_bootstrapping}
|
||||||
BuildRequires: ghc-compiler = %{version}
|
BuildRequires: ghc-compiler = %{version}
|
||||||
%endif
|
%endif
|
||||||
|
%if 0%{?fedora} >= 20
|
||||||
BuildRequires: ghc-rpm-macros-extra
|
BuildRequires: ghc-rpm-macros-extra
|
||||||
|
%else
|
||||||
|
BuildRequires: ghc-rpm-macros
|
||||||
|
%endif
|
||||||
BuildRequires: ghc-bytestring-devel
|
BuildRequires: ghc-bytestring-devel
|
||||||
BuildRequires: ghc-containers-devel
|
BuildRequires: ghc-containers-devel
|
||||||
BuildRequires: ghc-directory-devel
|
BuildRequires: ghc-directory-devel
|
||||||
@ -84,15 +116,18 @@ BuildRequires: gmp-devel
|
|||||||
BuildRequires: libffi-devel
|
BuildRequires: libffi-devel
|
||||||
# for internal terminfo
|
# for internal terminfo
|
||||||
BuildRequires: ncurses-devel
|
BuildRequires: ncurses-devel
|
||||||
%if %{undefined without_manual}
|
# for manpage and docs
|
||||||
BuildRequires: libxslt, docbook-style-xsl
|
BuildRequires: libxslt, docbook-style-xsl
|
||||||
%endif
|
|
||||||
%if %{undefined without_testsuite}
|
%if %{undefined without_testsuite}
|
||||||
BuildRequires: python
|
BuildRequires: python
|
||||||
%endif
|
%endif
|
||||||
%ifarch armv7hl armv5tel
|
%ifarch armv7hl armv5tel
|
||||||
BuildRequires: llvm >= 3.0
|
BuildRequires: llvm >= 3.0
|
||||||
%endif
|
%endif
|
||||||
|
%ifarch ppc64le
|
||||||
|
# for patch19
|
||||||
|
BuildRequires: autoconf
|
||||||
|
%endif
|
||||||
Requires: ghc-compiler = %{version}-%{release}
|
Requires: ghc-compiler = %{version}-%{release}
|
||||||
%if %{undefined without_haddock}
|
%if %{undefined without_haddock}
|
||||||
Requires: ghc-doc-index = %{version}-%{release}
|
Requires: ghc-doc-index = %{version}-%{release}
|
||||||
@ -164,32 +199,32 @@ documention.
|
|||||||
%global ghc_pkg_c_deps ghc-compiler = %{ghc_version_override}-%{release}
|
%global ghc_pkg_c_deps ghc-compiler = %{ghc_version_override}-%{release}
|
||||||
|
|
||||||
%if %{defined ghclibdir}
|
%if %{defined ghclibdir}
|
||||||
%ghc_lib_subpackage Cabal 1.16.0
|
%ghc_lib_subpackage Cabal %{Cabal_ver}
|
||||||
%ghc_lib_subpackage -l %BSDHaskellReport array 0.4.0.1
|
%ghc_lib_subpackage -l %BSDHaskellReport array %{array_ver}
|
||||||
%ghc_lib_subpackage -l %BSDHaskellReport -c gmp-devel%{?_isa},libffi-devel%{?_isa} base 4.6.0.1
|
%ghc_lib_subpackage -l %BSDHaskellReport -c gmp-devel%{?_isa},libffi-devel%{?_isa} base %{base_ver}
|
||||||
%ghc_lib_subpackage binary 0.5.1.1
|
%ghc_lib_subpackage binary %{binary_ver}
|
||||||
%ghc_lib_subpackage bytestring 0.10.0.2
|
%ghc_lib_subpackage bytestring %{bytestring_ver}
|
||||||
%ghc_lib_subpackage -l %BSDHaskellReport containers 0.5.0.0
|
%ghc_lib_subpackage -l %BSDHaskellReport containers %{containers_ver}
|
||||||
%ghc_lib_subpackage -l %BSDHaskellReport deepseq 1.3.0.1
|
%ghc_lib_subpackage -l %BSDHaskellReport deepseq %{deepseq_ver}
|
||||||
%ghc_lib_subpackage -l %BSDHaskellReport directory 1.2.0.1
|
%ghc_lib_subpackage -l %BSDHaskellReport directory %{directory_ver}
|
||||||
%ghc_lib_subpackage filepath 1.3.0.1
|
%ghc_lib_subpackage filepath %{filepath_ver}
|
||||||
%define ghc_pkg_obsoletes ghc-bin-package-db-devel < 0.0.0.0-12
|
%define ghc_pkg_obsoletes ghc-bin-package-db-devel < 0.0.0.0-12
|
||||||
# in ghc not ghc-libraries:
|
# in ghc not ghc-libraries:
|
||||||
%ghc_lib_subpackage -x ghc %{ghc_version_override}
|
%ghc_lib_subpackage -x ghc %{ghc_version_override}
|
||||||
%undefine ghc_pkg_obsoletes
|
%undefine ghc_pkg_obsoletes
|
||||||
%ghc_lib_subpackage -l HaskellReport haskell2010 1.1.1.0
|
%ghc_lib_subpackage -l HaskellReport haskell2010 %{haskell2010_ver}
|
||||||
%ghc_lib_subpackage -l HaskellReport haskell98 2.0.0.2
|
%ghc_lib_subpackage -l HaskellReport haskell98 %{haskell98_ver}
|
||||||
%ghc_lib_subpackage hoopl 3.9.0.0
|
%ghc_lib_subpackage hoopl %{hoopl_ver}
|
||||||
%ghc_lib_subpackage hpc 0.6.0.0
|
%ghc_lib_subpackage hpc %{hpc_ver}
|
||||||
%ghc_lib_subpackage -l %BSDHaskellReport old-locale 1.0.0.5
|
%ghc_lib_subpackage -l %BSDHaskellReport old-locale %{old_locale_ver}
|
||||||
%ghc_lib_subpackage -l %BSDHaskellReport old-time 1.1.0.1
|
%ghc_lib_subpackage -l %BSDHaskellReport old-time %{old_time_ver}
|
||||||
%ghc_lib_subpackage pretty 1.1.1.0
|
%ghc_lib_subpackage pretty %{pretty_ver}
|
||||||
%define ghc_pkg_obsoletes ghc-process-leksah-devel < 1.0.1.4-14
|
%define ghc_pkg_obsoletes ghc-process-leksah-devel < 1.0.1.4-14
|
||||||
%ghc_lib_subpackage -l %BSDHaskellReport process 1.1.0.2
|
%ghc_lib_subpackage -l %BSDHaskellReport process %{process_ver}
|
||||||
%undefine ghc_pkg_obsoletes
|
%undefine ghc_pkg_obsoletes
|
||||||
%ghc_lib_subpackage template-haskell 2.8.0.0
|
%ghc_lib_subpackage template-haskell %{template_haskell_ver}
|
||||||
%ghc_lib_subpackage time 1.4.0.1
|
%ghc_lib_subpackage time %{time_ver}
|
||||||
%ghc_lib_subpackage unix 2.6.0.1
|
%ghc_lib_subpackage unix %{unix_ver}
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%global version %{ghc_version_override}
|
%global version %{ghc_version_override}
|
||||||
@ -247,7 +282,11 @@ ln -s $(pkg-config --variable=includedir libffi)/*.h rts/dist/build
|
|||||||
|
|
||||||
%patch17 -p0 -b .orig
|
%patch17 -p0 -b .orig
|
||||||
|
|
||||||
%patch18 -p1 -b .orig
|
#%%patch18 -p1 -b .orig
|
||||||
|
|
||||||
|
%ifarch ppc64le
|
||||||
|
%patch19 -p1 -b .orig
|
||||||
|
%endif
|
||||||
|
|
||||||
%global gen_contents_index gen_contents_index.orig
|
%global gen_contents_index gen_contents_index.orig
|
||||||
%if %{undefined without_haddock}
|
%if %{undefined without_haddock}
|
||||||
@ -284,7 +323,14 @@ BUILD_DOCBOOK_HTML = NO
|
|||||||
EOF
|
EOF
|
||||||
|
|
||||||
export CFLAGS="${CFLAGS:-%optflags}"
|
export CFLAGS="${CFLAGS:-%optflags}"
|
||||||
# use --with-gcc=%{_bindir}/gcc when bootstrapping to avoid ccache hardcoding problem
|
# note %%configure induces cross-build due to different target/host/build platform names
|
||||||
|
# --with-gcc=%{_bindir}/gcc is to avoid ccache hardcoding problem when bootstrapping
|
||||||
|
%ifarch ppc64le
|
||||||
|
for i in $(find . -name config.guess -o -name config.sub) ; do
|
||||||
|
[ -f /usr/lib/rpm/redhat/$(basename $i) ] && %{__rm} -f $i && %{__cp} -fv /usr/lib/rpm/redhat/$(basename $i) $i
|
||||||
|
done
|
||||||
|
autoreconf
|
||||||
|
%endif
|
||||||
./configure --prefix=%{_prefix} --exec-prefix=%{_exec_prefix} \
|
./configure --prefix=%{_prefix} --exec-prefix=%{_exec_prefix} \
|
||||||
--bindir=%{_bindir} --sbindir=%{_sbindir} --sysconfdir=%{_sysconfdir} \
|
--bindir=%{_bindir} --sbindir=%{_sbindir} --sysconfdir=%{_sysconfdir} \
|
||||||
--datadir=%{_datadir} --includedir=%{_includedir} --libdir=%{_libdir} \
|
--datadir=%{_datadir} --includedir=%{_includedir} --libdir=%{_libdir} \
|
||||||
@ -309,10 +355,10 @@ done
|
|||||||
# ghc-base should own ghclibdir
|
# ghc-base should own ghclibdir
|
||||||
echo "%dir %{ghclibdir}" >> ghc-base.files
|
echo "%dir %{ghclibdir}" >> ghc-base.files
|
||||||
|
|
||||||
%ghc_gen_filelists bin-package-db 0.0.0.0
|
%ghc_gen_filelists bin-package-db %{bin_package_db_ver}
|
||||||
%ghc_gen_filelists ghc %{ghc_version_override}
|
%ghc_gen_filelists ghc %{ghc_version_override}
|
||||||
%ghc_gen_filelists ghc-prim 0.3.0.0
|
%ghc_gen_filelists ghc-prim %{ghc_prim_ver}
|
||||||
%ghc_gen_filelists integer-gmp 0.5.0.0
|
%ghc_gen_filelists integer-gmp %{integer_gmp_ver}
|
||||||
|
|
||||||
%define merge_filelist()\
|
%define merge_filelist()\
|
||||||
cat ghc-%1.files >> ghc-%2.files\
|
cat ghc-%1.files >> ghc-%2.files\
|
||||||
@ -359,22 +405,23 @@ cd ..
|
|||||||
|
|
||||||
%check
|
%check
|
||||||
# stolen from ghc6/debian/rules:
|
# stolen from ghc6/debian/rules:
|
||||||
|
GHC=inplace/bin/ghc-stage2
|
||||||
# Do some very simple tests that the compiler actually works
|
# Do some very simple tests that the compiler actually works
|
||||||
rm -rf testghc
|
rm -rf testghc
|
||||||
mkdir testghc
|
mkdir testghc
|
||||||
echo 'main = putStrLn "Foo"' > testghc/foo.hs
|
echo 'main = putStrLn "Foo"' > testghc/foo.hs
|
||||||
inplace/bin/ghc-stage2 testghc/foo.hs -o testghc/foo
|
$GHC testghc/foo.hs -o testghc/foo
|
||||||
[ "$(testghc/foo)" = "Foo" ]
|
[ "$(testghc/foo)" = "Foo" ]
|
||||||
# doesn't seem to work inplace:
|
# doesn't seem to work inplace:
|
||||||
#[ "$(inplace/bin/runghc testghc/foo.hs)" = "Foo" ]
|
#[ "$(inplace/bin/runghc testghc/foo.hs)" = "Foo" ]
|
||||||
rm testghc/*
|
rm testghc/*
|
||||||
echo 'main = putStrLn "Foo"' > testghc/foo.hs
|
echo 'main = putStrLn "Foo"' > testghc/foo.hs
|
||||||
inplace/bin/ghc-stage2 testghc/foo.hs -o testghc/foo -O2
|
$GHC testghc/foo.hs -o testghc/foo -O2
|
||||||
[ "$(testghc/foo)" = "Foo" ]
|
[ "$(testghc/foo)" = "Foo" ]
|
||||||
rm testghc/*
|
rm testghc/*
|
||||||
%if %{undefined ghc_without_shared}
|
%if %{undefined ghc_without_shared}
|
||||||
echo 'main = putStrLn "Foo"' > testghc/foo.hs
|
echo 'main = putStrLn "Foo"' > testghc/foo.hs
|
||||||
inplace/bin/ghc-stage2 testghc/foo.hs -o testghc/foo -dynamic
|
$GHC testghc/foo.hs -o testghc/foo -dynamic
|
||||||
[ "$(testghc/foo)" = "Foo" ]
|
[ "$(testghc/foo)" = "Foo" ]
|
||||||
rm testghc/*
|
rm testghc/*
|
||||||
%endif
|
%endif
|
||||||
@ -480,10 +527,9 @@ fi
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
* Thu Jan 30 2014 Jens Petersen <petersen@redhat.com> - 7.6.3-22
|
* Fri May 30 2014 Jens Petersen <petersen@redhat.com> - 7.6.3-22
|
||||||
- do not set executable stack on executables (#973512)
|
- add ppc64le support patch from Debian by Colin Watson
|
||||||
(upstream patch by Edward Z Yang)
|
(thanks to Jaromir Capik for Fedora ppc64le bootstrap)
|
||||||
- note this patch changes the ABI hash of the ghc library
|
|
||||||
|
|
||||||
* Wed Jan 29 2014 Jens Petersen <petersen@redhat.com> - 7.6.3-21
|
* Wed Jan 29 2014 Jens Petersen <petersen@redhat.com> - 7.6.3-21
|
||||||
- fix segfault on i686 when using ffi double-mapping for selinux (#907515)
|
- fix segfault on i686 when using ffi double-mapping for selinux (#907515)
|
||||||
|
Loading…
Reference in New Issue
Block a user