diff options
author | marcel <marcel@FreeBSD.org> | 2009-03-30 09:53:38 +0800 |
---|---|---|
committer | marcel <marcel@FreeBSD.org> | 2009-03-30 09:53:38 +0800 |
commit | be5f8e596975bed337ba5ea4318a4fbbd56b3302 (patch) | |
tree | 368775c34d7cef0f887589f43cf0c95110dce9c6 /devel/liboil | |
parent | 8345b7666653ba3d3acec444cfdddf7477cabfc4 (diff) | |
download | freebsd-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.diff | 42 | ||||
-rw-r--r-- | devel/liboil/files/patch-vec_memset.diff | 37 |
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. |