diff options
Diffstat (limited to 'dev-libs/zziplib/files/zziplib-0.13.52-sparc-aligned-access.patch')
-rw-r--r-- | dev-libs/zziplib/files/zziplib-0.13.52-sparc-aligned-access.patch | 33 |
1 files changed, 0 insertions, 33 deletions
diff --git a/dev-libs/zziplib/files/zziplib-0.13.52-sparc-aligned-access.patch b/dev-libs/zziplib/files/zziplib-0.13.52-sparc-aligned-access.patch deleted file mode 100644 index 87ee790465a4..000000000000 --- a/dev-libs/zziplib/files/zziplib-0.13.52-sparc-aligned-access.patch +++ /dev/null @@ -1,33 +0,0 @@ -This patch for zziplib (0.13.50) fixes a bus error on Linux/SPARC. - -Since SPARC machines are big endian and zip files are stored in little endian, -zziplib needs to do byte swapping. On GNU/Linux this is usually done using -glibc's bswap_{16,32,64} functions but in this case calling one of these -functions triggers a bus error. This patch completes upstreams work to -implement ZZIP_HAVE_ALIGNED_ACCESS_REQUIRED for machines which required aligned -access. -After applying the patch zziplib needs to be compiled with --DZZIP_HAVE_ALIGNED_ACCESS_REQUIRED - -To reproduce it run (in the src dir): - cd Linux_*_sparc64.d && ./bins/zzcat test/test/README -or - make check - -Problem found by: Ferris McCormick <fmccor@gentoo.org> -Patch written by: Friedrich Oslage <bluebird@gentoo.org> - with advice from: Mike Frysinger <vapier@gentoo.org> - -http://bugs.gentoo.org/239472 - ---- zzip/fetch.c -+++ zzip/fetch.c -@@ -17,7 +17,7 @@ - #include <zzip/fetch.h> - - #if defined ZZIP_WORDS_BIGENDIAN && \ -- defined bswap_16 && defined bswap_32 && defined bswap_64 -+ defined bswap_16 && defined bswap_32 && defined bswap_64 && !defined(ZZIP_HAVE_ALIGNED_ACCESS_REQUIRED) - # define __ZZIP_GET16(__p) bswap_16(*(uint16_t*)(__p)) - # define __ZZIP_GET32(__p) bswap_32(*(uint32_t*)(__p)) - # define __ZZIP_SET16(__p,__x) (*(uint16_t*)(__p) = bswap_16((uint16_t)(__x))) |