]> git.pld-linux.org Git - packages/librsvg.git/commitdiff
- enhanced x32 patch (adjust thin-slice package to support x86_64-x32 ABI)
authorJakub Bogusz <qboosh@pld-linux.org>
Mon, 5 Oct 2020 18:19:52 +0000 (20:19 +0200)
committerJakub Bogusz <qboosh@pld-linux.org>
Mon, 5 Oct 2020 18:19:52 +0000 (20:19 +0200)
- more cross rust related hacks

librsvg.spec
x32.patch

index 082f1d3412833edd9ec821e64d8b1bb282b2d90b..34376ebcf8394236c55c878cd2437a6b0a5c39d0 100644 (file)
@@ -184,7 +184,7 @@ echo 'AC_DEFUN([GTK_DOC_CHECK],[])' >> acinclude.m4
 %endif
 
 %ifarch x32
-%{__sed} -i -e '/CROSS_COMPILING/ s/test \$cross_compiling = yes/true/' configure.ac
+%{__sed} -i -e 's/test "\?x\?\$cross_compiling"\? = "\?x\?yes"\?/true/' configure.ac
 %endif
 
 %build
index 49be958fba9624239cbb2c21e380b7c35e8825c9..55a892959c583ea186b256bcaf5406c44fc25525 100644 (file)
--- a/x32.patch
+++ b/x32.patch
@@ -9,3 +9,195 @@
  
    if test "x$GDK_PIXBUF_QUERYLOADERS" = "xnone"; then
      AC_MSG_ERROR([gdk-pixbuf-query-loaders not found in path])
+--- librsvg-2.50.1/vendor/thin-slice/src/lib.rs.orig   2020-10-02 20:35:05.000000000 +0200
++++ librsvg-2.50.1/vendor/thin-slice/src/lib.rs        2020-10-05 19:39:01.153324928 +0200
+@@ -29,14 +29,14 @@
+ use std::cmp::Ordering;
+ use std::fmt;
+ use std::hash::{Hash, Hasher};
+-#[cfg(target_arch = "x86_64")]
++#[cfg(target_pointer_size = "64")]
+ use std::marker::PhantomData;
+-#[cfg(target_arch = "x86_64")]
++#[cfg(target_pointer_size = "64")]
+ use std::mem;
+ use std::ops::{Deref, DerefMut};
+-#[cfg(target_arch = "x86_64")]
++#[cfg(target_pointer_size = "64")]
+ use std::ptr::NonNull;
+-#[cfg(target_arch = "x86_64")]
++#[cfg(target_pointer_size = "64")]
+ use std::slice;
+ /// An owned slice that tries to use only one word of storage.
+@@ -56,38 +56,38 @@
+     ///
+     /// If len >= 0xffff, then the top 16 bits of data will be 0xffff, and
+     /// the lower 48 bits will be a pointer to a heap allocated `Box<[T]>`.
+-    #[cfg(target_arch = "x86_64")]
++    #[cfg(target_pointer_size = "64")]
+     data: NonNull<()>,
+-    #[cfg(not(target_arch = "x86_64"))]
++    #[cfg(not(target_pointer_size = "64"))]
+     data: Box<[T]>,
+-    #[cfg(target_arch = "x86_64")]
++    #[cfg(target_pointer_size = "64")]
+     _phantom: PhantomData<Box<[T]>>,
+ }
+-#[cfg(target_arch = "x86_64")]
++#[cfg(target_pointer_size = "64")]
+ const TAG_MASK: usize = 0xffff000000000000;
+-#[cfg(target_arch = "x86_64")]
++#[cfg(target_pointer_size = "64")]
+ const PTR_MASK: usize = 0x0000ffffffffffff;
+-#[cfg(target_arch = "x86_64")]
++#[cfg(target_pointer_size = "64")]
+ const PTR_HIGH: usize = 0x0000800000000000;
+-#[cfg(target_arch = "x86_64")]
++#[cfg(target_pointer_size = "64")]
+ const TAG_SHIFT: usize = 48;
+-#[cfg(target_arch = "x86_64")]
++#[cfg(target_pointer_size = "64")]
+ const TAG_LIMIT: usize = TAG_MASK >> TAG_SHIFT;
+-#[cfg(target_arch = "x86_64")]
++#[cfg(target_pointer_size = "64")]
+ enum Storage<T> {
+     Inline(*mut T, usize),
+     Spilled(*mut Box<[T]>),
+ }
+-#[cfg(target_arch = "x86_64")]
++#[cfg(target_pointer_size = "64")]
+ impl<T> ThinBoxedSlice<T> {
+     /// Constructs a `ThinBoxedSlice` from a raw pointer.
+     ///
+@@ -203,7 +203,7 @@
+     }
+ }
+-#[cfg(not(target_arch = "x86_64"))]
++#[cfg(not(target_pointer_size = "64"))]
+ impl<T> ThinBoxedSlice<T> {
+     /// Constructs a `ThinBoxedSlice` from a raw pointer.
+     ///
+@@ -284,7 +284,7 @@
+     }
+ }
+-#[cfg(target_arch = "x86_64")]
++#[cfg(target_pointer_size = "64")]
+ impl<T> Storage<T> {
+     #[inline]
+     fn from_data(data: NonNull<()>) -> Storage<T> {
+@@ -343,7 +343,7 @@
+ unsafe impl<T: Send> Send for ThinBoxedSlice<T> {}
+ unsafe impl<T: Sync> Sync for ThinBoxedSlice<T> {}
+-#[cfg(target_arch = "x86_64")]
++#[cfg(target_pointer_size = "64")]
+ impl<T> Drop for ThinBoxedSlice<T> {
+     fn drop(&mut self) {
+         let _ = Into::<Box<[T]>>::into(
+@@ -356,7 +356,7 @@
+ }
+ impl<T: Clone> Clone for ThinBoxedSlice<T> {
+-    #[cfg(target_arch = "x86_64")]
++    #[cfg(target_pointer_size = "64")]
+     fn clone(&self) -> Self {
+         unsafe {
+             match self.storage() {
+@@ -373,7 +373,7 @@
+         }
+     }
+-    #[cfg(not(target_arch = "x86_64"))]
++    #[cfg(not(target_pointer_size = "64"))]
+     fn clone(&self) -> Self {
+         ThinBoxedSlice {
+             data: self.data.clone(),
+@@ -396,7 +396,7 @@
+ impl<T> Deref for ThinBoxedSlice<T> {
+     type Target = [T];
+-    #[cfg(target_arch = "x86_64")]
++    #[cfg(target_pointer_size = "64")]
+     fn deref(&self) -> &[T] {
+         unsafe {
+             match self.storage() {
+@@ -410,14 +410,14 @@
+         }
+     }
+-    #[cfg(not(target_arch = "x86_64"))]
++    #[cfg(not(target_pointer_size = "64"))]
+     fn deref(&self) -> &[T] {
+         &*self.data
+     }
+ }
+ impl<T> DerefMut for ThinBoxedSlice<T> {
+-    #[cfg(target_arch = "x86_64")]
++    #[cfg(target_pointer_size = "64")]
+     fn deref_mut(&mut self) -> &mut [T] {
+         unsafe {
+             match self.storage() {
+@@ -431,7 +431,7 @@
+         }
+     }
+-    #[cfg(not(target_arch = "x86_64"))]
++    #[cfg(not(target_pointer_size = "64"))]
+     fn deref_mut(&mut self) -> &mut [T] {
+         &mut *self.data
+     }
+@@ -498,7 +498,7 @@
+     }
+ }
+-#[cfg(target_arch = "x86_64")]
++#[cfg(target_pointer_size = "64")]
+ #[test]
+ fn test_spilled_storage() {
+     let x = ThinBoxedSlice::from(vec![0; TAG_LIMIT - 1].into_boxed_slice());
+@@ -508,7 +508,7 @@
+     assert!(x.spilled_storage().is_some());
+ }
+-#[cfg(target_arch = "x86_64")]
++#[cfg(target_pointer_size = "64")]
+ #[test]
+ fn test_from_raw_large() {
+     let mut vec = vec![0; TAG_LIMIT];
+@@ -519,7 +519,7 @@
+     assert_eq!(x[123], 456);
+ }
+-#[cfg(target_arch = "x86_64")]
++#[cfg(target_pointer_size = "64")]
+ #[test]
+ fn test_into_raw_large() {
+     let mut vec = vec![0; TAG_LIMIT];
+@@ -531,7 +531,7 @@
+     assert_eq!(y[123], 456);
+ }
+-#[cfg(target_arch = "x86_64")]
++#[cfg(target_pointer_size = "64")]
+ #[test]
+ fn test_leak_large() {
+     let mut vec = vec![0; TAG_LIMIT];
+--- librsvg-2.50.1/vendor/thin-slice/.cargo-checksum.json.orig 2020-10-02 20:35:05.000000000 +0200
++++ librsvg-2.50.1/vendor/thin-slice/.cargo-checksum.json      2020-10-05 19:53:04.436621362 +0200
+@@ -1 +1 @@
+-{"files":{"Cargo.toml":"bc648e7794ea9bf0b7b520a0ba079ef65226158dc6ece1e617beadc52456e1b7","README.md":"4a83c0adbfdd3ae8047fe4fd26536d27b4e8db813f9926ee8ab09b784294e50f","src/lib.rs":"5b1f2bfc9edfc6036a8880cde88f862931eec5036e6cf63690f82921053b29fe"},"package":"8eaa81235c7058867fa8c0e7314f33dcce9c215f535d1913822a2b3f5e289f3c"}
+\ No newline at end of file
++{"files":{"Cargo.toml":"bc648e7794ea9bf0b7b520a0ba079ef65226158dc6ece1e617beadc52456e1b7","README.md":"4a83c0adbfdd3ae8047fe4fd26536d27b4e8db813f9926ee8ab09b784294e50f","src/lib.rs":"7d3aa7f2963fd8c758bf51aae7c7929ceda19a1f6fd178782a34011d985a7319"},"package":"8eaa81235c7058867fa8c0e7314f33dcce9c215f535d1913822a2b3f5e289f3c"}
This page took 0.222433 seconds and 4 git commands to generate.