[zfs-fuse/f21] only use execstack on archs with prelink fix ppc64le detection as littleendian use up2date config.{g

Karsten Hopp karsten at fedoraproject.org
Mon Sep 8 12:42:53 UTC 2014


commit d9c962775d9651a5eb6882e198d3238998650619
Author: Karsten Hopp <karsten at redhat.com>
Date:   Mon Sep 8 14:43:23 2014 +0200

    only use execstack on archs with prelink
    fix ppc64le detection as littleendian
    use up2date config.{guess,sub} with ppc64le support

 zfs-fuse-0.7.0-ppc64le.patch |   26 ++++++++++++++++++++++++++
 zfs-fuse.spec                |   14 ++++++++++++--
 2 files changed, 38 insertions(+), 2 deletions(-)
---
diff --git a/zfs-fuse-0.7.0-ppc64le.patch b/zfs-fuse-0.7.0-ppc64le.patch
new file mode 100644
index 0000000..67a2c33
--- /dev/null
+++ b/zfs-fuse-0.7.0-ppc64le.patch
@@ -0,0 +1,26 @@
+diff -up zfs-fuse-0.7.0/src/lib/libsolcompat/include/sys/isa_defs.h.ppc64le zfs-fuse-0.7.0/src/lib/libsolcompat/include/sys/isa_defs.h
+--- zfs-fuse-0.7.0/src/lib/libsolcompat/include/sys/isa_defs.h.ppc64le	2012-01-09 09:31:29.000000000 +0100
++++ zfs-fuse-0.7.0/src/lib/libsolcompat/include/sys/isa_defs.h	2014-09-08 12:18:28.300576917 +0200
+@@ -475,9 +475,12 @@ extern "C" {
+ /*
+  * Next defines common features between 32 and 64 bit PowerPC
+  */
++/* ppc64le has __powerpc64__ but not __BIG_ENDIAN__ */
++#if defined(__BIG_ENDIAN__)
+ #ifndef _BIG_ENDIAN
+ #define _BIG_ENDIAN
+ #endif
++#endif
+ #define _STACK_GROWS_DOWNWARD
+ #define _LONG_LONG_HTOL
+ #define _BIT_FIELDS_HTOL
+@@ -513,7 +516,9 @@ extern "C" {
+ /*
+  * Define the appropriate "implementation choices" for PowerPC 64 bit
+  */
++#if !defined(_LP64)
+ #define _LP64
++#endif
+ #if !defined(_I32LPx)
+ #define _I32LPx
+ #endif
diff --git a/zfs-fuse.spec b/zfs-fuse.spec
index 3002c0e..2e479fe 100644
--- a/zfs-fuse.spec
+++ b/zfs-fuse.spec
@@ -1,7 +1,7 @@
 %define _hardened_build 1
 Name:             zfs-fuse
 Version:          0.7.0
-Release:          19%{?dist}
+Release:          20%{?dist}
 Summary:          ZFS ported to Linux FUSE
 Group:            System Environment/Base
 License:          CDDL
@@ -14,6 +14,7 @@ Source04:         zfs-fuse-helper
 Patch0:           zfs-fuse-0.7.0-umem.patch
 Patch1:           zfs-fuse-0.7.0-stack.patch
 Patch2:           zfs-fuse-printf-format.patch
+Patch3:           zfs-fuse-0.7.0-ppc64le.patch
 BuildRequires:    fuse-devel libaio-devel scons zlib-devel openssl-devel libattr-devel 
 %ifnarch aarch64 ppc64le
 BuildRequires:    prelink
@@ -24,7 +25,7 @@ Requires(post):   systemd
 Requires(preun):  systemd
 Requires(postun): systemd
 # (2010 karsten at redhat.com) zfs-fuse doesn't have s390(x) implementations for atomic instructions
-ExcludeArch:      s390 s390x %{arm} aarch64 ppc64le
+ExcludeArch:      s390 s390x %{arm} aarch64
 
 %description
 ZFS is an advanced modern general-purpose filesystem from Sun
@@ -39,6 +40,7 @@ operating system.
 %patch0 -p0
 %patch1 -p1
 %patch2 -p0
+%patch3 -p1 -b .ppc64le
 
 f=LICENSE
 mv $f $f.iso88591
@@ -49,6 +51,7 @@ chmod -x contrib/test-datasets
 chmod -x contrib/find-binaries
 chmod -x contrib/solaris/fixfiles.py
 chmod -x contrib/zfsstress.py
+cp -f /usr/lib/rpm/config.{guess,sub} src/lib/libumem/
 
 %build
 export CCFLAGS="%{optflags}"
@@ -64,10 +67,12 @@ install -Dp -m 0755 %{SOURCE2} %{buildroot}%{_sysconfdir}/cron.weekly/98-%{name}
 install -Dp -m 0644 %{SOURCE3} %{buildroot}%{_sysconfdir}/sysconfig/%{name}
 install -Dp -m 0755 %{SOURCE4} %{buildroot}%{_bindir}/zfs-fuse-helper
 
+%ifnarch aarch64 ppc64le
 #set stack not executable, BZ 911150
 for i in zdb zfs zfs-fuse zpool ztest; do
        /usr/bin/execstack -c %{buildroot}%{_bindir}/$i
 done
+%endif
 
 %post
 # Move cache if upgrading
@@ -116,6 +121,11 @@ rm -rf /var/lock/zfs
 %{_mandir}/man8/zstreamdump.8.gz
 
 %changelog
+* Mon Sep 08 2014 Karsten Hopp <karsten at redhat.com> 0.7.0-20
+- only use execstack on archs with prelink
+- fix ppc64le detection as littleendian
+- use up2date config.{guess,sub} with ppc64le support
+
 * Mon Aug 18 2014 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 0.7.0-19
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
 


More information about the scm-commits mailing list