aboutsummaryrefslogtreecommitdiffstats
path: root/devel/liboil
diff options
context:
space:
mode:
authormarcel <marcel@FreeBSD.org>2009-03-30 09:53:38 +0800
committermarcel <marcel@FreeBSD.org>2009-03-30 09:53:38 +0800
commitbe5f8e596975bed337ba5ea4318a4fbbd56b3302 (patch)
tree368775c34d7cef0f887589f43cf0c95110dce9c6 /devel/liboil
parent8345b7666653ba3d3acec444cfdddf7477cabfc4 (diff)
downloadfreebsd-ports-gnome-be5f8e596975bed337ba5ea4318a4fbbd56b3302.tar.gz
freebsd-ports-gnome-be5f8e596975bed337ba5ea4318a4fbbd56b3302.tar.zst
freebsd-ports-gnome-be5f8e596975bed337ba5ea4318a4fbbd56b3302.zip
Fix non-PIC calls in assembly for PowerPC. While here, define
symbols as functions and give them a correct size. Ok'd: gerald (thanks!)
Diffstat (limited to 'devel/liboil')
-rw-r--r--devel/liboil/files/patch-vec_memcpy.diff42
-rw-r--r--devel/liboil/files/patch-vec_memset.diff37
2 files changed, 79 insertions, 0 deletions
diff --git a/devel/liboil/files/patch-vec_memcpy.diff b/devel/liboil/files/patch-vec_memcpy.diff
new file mode 100644
index 000000000000..91fbd1a5a500
--- /dev/null
+++ b/devel/liboil/files/patch-vec_memcpy.diff
@@ -0,0 +1,42 @@
+--- liboil/motovec/vec_memcpy.S 2007-11-15 18:53:47.000000000 -0800
++++ liboil/motovec/vec_memcpy.S 2009-03-20 20:07:55.000000000 -0700
+@@ -249,9 +249,11 @@
+ memcpy:
+ #else
+ .globl vec_memmove
++ .type vec_memmove, @function
+ vec_memmove:
+ nop // IU1 Only way I know to preserve both labels
+ .globl _vec_memcpy
++ .type _vec_memcpy, @function
+ _vec_memcpy:
+ #endif
+ subf. DMS,SRC,DST // IU1 Compute dst-src difference
+@@ -291,7 +293,9 @@
+ stbu Rt,-1(DBC) // LSU Store it
+ bdnz Byte_cpy_bwd
+ blr
+-
++ .size vec_memmove, . - vec_memmove
++ .size _vec_memcpy, . - _vec_memcpy
++
+ #ifdef __MWERKS__
+ .align 16
+ #else
+@@ -863,6 +867,7 @@
+ bcopy:
+ #else
+ .globl vec_bcopy
++ .type vec_bcopy, @function
+ vec_bcopy:
+ #endif
+ mr Rt,DST // temp storage for what is really source address (r3)
+@@ -871,6 +876,7 @@
+ #ifdef LIBMOTOVEC
+ b memcpy // b to memcpy with correct args in r3 and r4
+ #else
+- b _vec_memcpy // b to vec_memcpy with correct args in r3 and r4
++ b _vec_memcpy@plt // b to vec_memcpy with correct args in r3 and r4
+ #endif
++ .size vec_bcopy, . - vec_bcopy
+ // End of bcopy in AltiVec
diff --git a/devel/liboil/files/patch-vec_memset.diff b/devel/liboil/files/patch-vec_memset.diff
new file mode 100644
index 000000000000..f2552e2edb36
--- /dev/null
+++ b/devel/liboil/files/patch-vec_memset.diff
@@ -0,0 +1,37 @@
+--- liboil/motovec/vec_memset.S 2007-11-15 18:53:47.000000000 -0800
++++ liboil/motovec/vec_memset.S 2009-03-20 20:10:56.000000000 -0700
+@@ -142,6 +142,7 @@
+ memset:
+ #else
+ .globl _vec_memset
++ .type _vec_memset, @function
+ _vec_memset:
+ #endif
+
+@@ -161,6 +162,7 @@
+ bdnz Byte_set
+
+ blr
++ .size _vec_memset, . - _vec_memset
+
+ v_memset:
+ // Byte count < MIN_VEC bytes will have been set by scalar code above,
+@@ -347,6 +349,7 @@
+ bzero:
+ #else
+ .globl vec_bzero
++ .type vec_bzero, @function
+ vec_bzero:
+ #endif
+
+@@ -355,8 +358,9 @@
+ #ifdef LIBMOTOVEC
+ b memset
+ #else
+- b _vec_memset
++ b _vec_memset@plt
+ #endif
++ .size vec_bzero, . - vec_bzero
+
+ // cacheable_memzero will employ dcbz to clear 32 bytes at a time
+ // of cacheable memory. Like bzero, second entering argument will be BC.