summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeri Harris <keri@gentoo.org>2010-07-24 02:29:17 +0000
committerKeri Harris <keri@gentoo.org>2010-07-24 02:29:17 +0000
commite6810c43c134e08aa6f635cb8c977f15fb4267b6 (patch)
treec15492f4822199963dfccc4bc5d2e768fa30a282 /dev-lang/mercury
parentVersion bump (bug #329385). (diff)
downloadhistorical-e6810c43c134e08aa6f635cb8c977f15fb4267b6.tar.gz
historical-e6810c43c134e08aa6f635cb8c977f15fb4267b6.tar.bz2
historical-e6810c43c134e08aa6f635cb8c977f15fb4267b6.zip
Update generic mach_dep for ASM_CLEAR_CODE targets
Package-Manager: portage-2.1.8.3/cvs/Linux x86_64
Diffstat (limited to 'dev-lang/mercury')
-rw-r--r--dev-lang/mercury/ChangeLog5
-rw-r--r--dev-lang/mercury/Manifest4
-rw-r--r--dev-lang/mercury/files/mercury-10.04-boehm_gc.patch131
3 files changed, 131 insertions, 9 deletions
diff --git a/dev-lang/mercury/ChangeLog b/dev-lang/mercury/ChangeLog
index a467fda6f066..537481a34920 100644
--- a/dev-lang/mercury/ChangeLog
+++ b/dev-lang/mercury/ChangeLog
@@ -1,6 +1,9 @@
# ChangeLog for dev-lang/mercury
# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/dev-lang/mercury/ChangeLog,v 1.107 2010/07/24 00:05:31 keri Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-lang/mercury/ChangeLog,v 1.108 2010/07/24 02:29:17 keri Exp $
+
+ 24 Jul 2010; <keri@gentoo.org> files/mercury-10.04-boehm_gc.patch:
+ Update generic mach_dep for ASM_CLEAR_CODE targets
24 Jul 2010; <keri@gentoo.org> mercury-10.04.ebuild,
+files/mercury-10.04-tests-mercury-float.patch:
diff --git a/dev-lang/mercury/Manifest b/dev-lang/mercury/Manifest
index 2458955921d2..ef2a9ab7b713 100644
--- a/dev-lang/mercury/Manifest
+++ b/dev-lang/mercury/Manifest
@@ -9,7 +9,7 @@ AUX mercury-0.13.1-tests-dir_test.patch 2476 RMD160 99c040bc588d0f455b1da42279fe
AUX mercury-0.13.1-tests-ho_and_type_spec_bug.patch 429 RMD160 4afcbd1b73c51c06187a0af02086e6c0527a8b8c SHA1 efe5458ab76060a37f0110000ee68e07212ff8d6 SHA256 d81c5e0a3cbf07190433cee583f9be8f14624b3f5e982bf04079fdb559b1f88c
AUX mercury-0.13.1-tests-string_format.patch 15357 RMD160 1b3f5538f6c8aa9daa430d918e42c9c3e95122c5 SHA1 fb78eba72aae7de933951941f6db890548e298b0 SHA256 a0a3f1a5d9d75443d9f442925eb15131b7bfbe3c92f737a51f1340111b46a34e
AUX mercury-0.13.1-tests-workspace.patch 899 RMD160 f866379e0e4f8e4debebb86bfed778e881c9e790 SHA1 6b6cc428a516c082bcd7ac8bdbe05de1b1e75831 SHA256 8ab0c250ccdfdb57ba377335fd61dc980ad87135e388c6ae4ebe0ff3c464e456
-AUX mercury-10.04-boehm_gc.patch 1090 RMD160 7f5dd379f2c642380b2eca4a9162d3a2f542c75e SHA1 fce4696ade9343a541d179ab4b243b64b5cb0638 SHA256 6c022e0534c85544f49aad8a15b3ca15893d9d39be0679eea0392510c5531242
+AUX mercury-10.04-boehm_gc.patch 5908 RMD160 08ce24e7df84974b9c77ead866a3b10738b35132 SHA1 822914bf2116d2227097fa725705cd2ec5d4c55d SHA256 5cd45f249b6c0dd74b43f4c2e4237184da722e0a25941f3070804e56418a5467
AUX mercury-10.04-docs.patch 1071 RMD160 7227e1c079b269f332081b956e53b85358d72a70 SHA1 f27b48ecb5ba991261f93c2c8d640b7fd213830b SHA256 a4514f76a7174d16f392e3f9aa55d19a468f114541cf93129908feeaec462c06
AUX mercury-10.04-multilib.patch 5993 RMD160 70cf37287f8a352eb09f66c402ea0e6690dd26be SHA1 1f0b47f3bfab7ffe54c487bde1c84e0499bca2f0 SHA256 43497f32f110e064bedae7b2aeaef63fc6b394276d7aa7e46864c97781de4db3
AUX mercury-10.04-no-reconf.patch 2337 RMD160 f39b7e0c777eba144d103078d3e81fb0a4ea21c7 SHA1 a4166eaf922e6423ff8761f486691f5b75fc14f9 SHA256 3b4dc9724fe9baed3222e43d86d3af73692d0f3f7285f6b6dbd4df0407690921
@@ -34,5 +34,5 @@ DIST mercury-tests-10.04.tar.gz 1329423 RMD160 c85e489eea4e36fef6d12fb9bf4e7cd01
EBUILD mercury-0.13.1-r2.ebuild 3350 RMD160 8a1635d8c301751b2da7260785baaa788b81b620 SHA1 2aae241faf85518b6bb6d162939b2f293eb67649 SHA256 af0a034331b9a7acb0d0a7dea42fc84aafcf9e66de2b6fceddc623f975689c44
EBUILD mercury-10.04.ebuild 3536 RMD160 14a91fd0dc57aa09e6bf63914edf12a089b36665 SHA1 83a6de1b53a1f1f50cbe6c6c64c8edd739793c9a SHA256 1f2fabefef7ea9acf6976f92edd6b9bca432ed9b4b8ae4cb226518e5c168e3da
EBUILD mercury-10.04_beta1.ebuild 3561 RMD160 b608b732acdfccb4a8ccdc4728bdd0b9f3f28283 SHA1 319302199665f6e4ffa9aaff95128fcd8a7d63a0 SHA256 ffbba59515166327f79a698086d516f14fcbcfc8c76f58dbf1116eaa8eb16626
-MISC ChangeLog 21681 RMD160 398b44d1d9ff7226518381a0042c375cbf367089 SHA1 225835e05e5f5137b68f4f0194f2fddc36e8b4d6 SHA256 97dcba37dac47eb00a42e68195d74bb7a2eb72940dd42444ba5c8186237bf6aa
+MISC ChangeLog 21804 RMD160 1c0a96f6ec12b164993f84c01f8c4f6ed4de00cc SHA1 d12647b29bc3c879352c12540245bc514d86e616 SHA256 c9c7c5d3c0d930e3648c1a5120a045c5eaccdf7e47298f2651a64d88f27663fc
MISC metadata.xml 318 RMD160 b9e62c5b9d04f43a6570cfcadd6a6c9a2b9e3f6f SHA1 67893d667419e727696eb2c386565794fd137418 SHA256 5e64767eb2ff6b10d88b169c87648d62b534356fb94c5407a253aeafc2d16935
diff --git a/dev-lang/mercury/files/mercury-10.04-boehm_gc.patch b/dev-lang/mercury/files/mercury-10.04-boehm_gc.patch
index 028a8dd22a72..a3c6d943cf19 100644
--- a/dev-lang/mercury/files/mercury-10.04-boehm_gc.patch
+++ b/dev-lang/mercury/files/mercury-10.04-boehm_gc.patch
@@ -1,14 +1,133 @@
-diff -ur mercury-compiler-10.04.orig/boehm_gc/Makefile.direct mercury-compiler-10.04/boehm_gc/Makefile.direct
+diff -urN mercury-compiler-10.04.orig/boehm_gc/Makefile.direct mercury-compiler-10.04/boehm_gc/Makefile.direct
--- mercury-compiler-10.04.orig/boehm_gc/Makefile.direct 2010-02-24 20:04:32.000000000 +1300
-+++ mercury-compiler-10.04/boehm_gc/Makefile.direct 2010-07-19 21:01:24.000000000 +1200
++++ mercury-compiler-10.04/boehm_gc/Makefile.direct 2010-07-24 14:11:41.000000000 +1200
@@ -407,6 +407,7 @@
./if_mach SPARC SOLARIS $(CC) -c -o mach_dep2.o $(srcdir)/sparc_mach_dep.S
./if_mach SPARC OPENBSD $(AS) -o mach_dep2.o $(srcdir)/sparc_sunos4_mach_dep.s
./if_mach SPARC NETBSD $(AS) -o mach_dep2.o $(srcdir)/sparc_netbsd_mach_dep.s
-+ ./if_mach SPARC LINUX $(CC) -o mach_dep2.o $(SPECIALCFLAGS) $(srcdir)/sparc_generic_mach_dep.c
++ ./if_mach SPARC LINUX $(CC) -c -o mach_dep2.o $(SPECIALCFLAGS) $(srcdir)/sparc_generic_mach_dep.c
./if_mach SPARC "" $(CC) -c -o mach_dep1.o $(SPECIALCFLAGS) $(srcdir)/mach_dep.c
./if_mach SPARC "" ld -r -o mach_dep.o mach_dep1.o mach_dep2.o
./if_mach IA64 "" as $(AS_ABI_FLAG) -o ia64_save_regs_in_stack.o $(srcdir)/ia64_save_regs_in_stack.s
-Only in mercury-compiler-10.04/boehm_gc: sparc_generic_mach_dep.c
-Only in mercury-compiler-10.04/compiler: make.program_target.c.orig
-Only in mercury-compiler-10.04/scripts: Mmake.vars.in.orig
+diff -urN mercury-compiler-10.04.orig/boehm_gc/libatomic_ops/src/atomic_ops/sysdeps/gcc/sparc.h mercury-compiler-10.04/boehm_gc/libatomic_ops/src/atomic_ops/sysdeps/gcc/sparc.h
+--- mercury-compiler-10.04.orig/boehm_gc/libatomic_ops/src/atomic_ops/sysdeps/gcc/sparc.h 2010-02-23 19:28:41.000000000 +1300
++++ mercury-compiler-10.04/boehm_gc/libatomic_ops/src/atomic_ops/sysdeps/gcc/sparc.h 2010-07-24 13:56:06.000000000 +1200
+@@ -39,32 +39,6 @@
+
+ #define AO_HAVE_test_and_set_full
+
+-#ifndef AO_NO_SPARC_V9
+-/* Returns nonzero if the comparison succeeded. */
+-AO_INLINE int
+-AO_compare_and_swap_full(volatile AO_t *addr, AO_t old, AO_t new_val) {
+- char ret;
+- __asm__ __volatile__ ("membar #StoreLoad | #LoadLoad\n\t"
+-# if defined(__arch64__)
+- "casx [%2],%0,%1\n\t"
+-# else
+- "cas [%2],%0,%1\n\t" /* 32-bit version */
+-# endif
+- "membar #StoreLoad | #StoreStore\n\t"
+- "cmp %0,%1\n\t"
+- "be,a 0f\n\t"
+- "mov 1,%0\n\t"/* one insn after branch always executed */
+- "clr %0\n\t"
+- "0:\n\t"
+- : "=r" (ret), "+r" (new_val)
+- : "r" (addr), "0" (old)
+- : "memory", "cc");
+- return (int)ret;
+-}
+-
+-#define AO_HAVE_compare_and_swap_full
+-#endif /* AO_NO_SPARC_V9 */
+-
+ /* FIXME: This needs to be extended for SPARC v8 and v9. */
+ /* SPARC V8 also has swap. V9 has CAS. */
+ /* There are barriers like membar #LoadStore. */
+diff -urN mercury-compiler-10.04.orig/boehm_gc/sparc_generic_mach_dep.c mercury-compiler-10.04/boehm_gc/sparc_generic_mach_dep.c
+--- mercury-compiler-10.04.orig/boehm_gc/sparc_generic_mach_dep.c 1970-01-01 12:00:00.000000000 +1200
++++ mercury-compiler-10.04/boehm_gc/sparc_generic_mach_dep.c 2010-07-24 14:12:18.000000000 +1200
+@@ -0,0 +1,82 @@
++# include "private/gc_priv.h"
++
++/* On register window machines, we need a way to force registers into */
++/* the stack. Return sp. */
++# ifdef SPARC
++ asm(" .seg \"text\"");
++# if defined(SVR4) || defined(NETBSD) || defined(FREEBSD)
++ asm(" .globl GC_save_regs_in_stack");
++ asm("GC_save_regs_in_stack:");
++ asm(" .type GC_save_regs_in_stack,#function");
++# else
++ asm(" .globl _GC_save_regs_in_stack");
++ asm("_GC_save_regs_in_stack:");
++# endif
++# if defined(__arch64__) || defined(__sparcv9)
++ asm(" save %sp,-128,%sp");
++ asm(" flushw");
++ asm(" ret");
++ asm(" restore %sp,2047+128,%o0");
++# else
++ asm(" ta 0x3 ! ST_FLUSH_WINDOWS");
++ asm(" retl");
++ asm(" mov %sp,%o0");
++# endif
++# ifdef SVR4
++ asm(" .GC_save_regs_in_stack_end:");
++ asm(" .size GC_save_regs_in_stack,.GC_save_regs_in_stack_end-GC_save_regs_in_stack");
++# endif
++# ifdef LINT
++ word GC_save_regs_in_stack() { return(0 /* sp really */);}
++# endif
++# endif
++
++/* GC_clear_stack_inner(arg, limit) clears stack area up to limit and */
++/* returns arg. Stack clearing is crucial on SPARC, so we supply */
++/* an assembly version that's more careful. Assumes limit is hotter */
++/* than sp, and limit is 8 byte aligned. */
++#if defined(ASM_CLEAR_CODE)
++# ifdef SUNOS4
++ asm(".globl _GC_clear_stack_inner");
++ asm("_GC_clear_stack_inner:");
++# else
++ asm(".globl GC_clear_stack_inner");
++ asm("GC_clear_stack_inner:");
++ asm(".type GC_save_regs_in_stack,#function");
++# endif
++#if defined(__arch64__) || defined(__sparcv9)
++ asm("mov %sp,%o2"); /* Save sp */
++ asm("add %sp,2047-8,%o3"); /* p = sp+bias-8 */
++ asm("add %o1,-2047-192,%sp"); /* Move sp out of the way, */
++ /* so that traps still work. */
++ /* Includes some extra words */
++ /* so we can be sloppy below. */
++ asm("loop:");
++ asm("stx %g0,[%o3]"); /* *(long *)p = 0 */
++ asm("cmp %o3,%o1");
++ asm("bgu,pt %xcc, loop"); /* if (p > limit) goto loop */
++ asm("add %o3,-8,%o3"); /* p -= 8 (delay slot) */
++ asm("retl");
++ asm("mov %o2,%sp"); /* Restore sp., delay slot */
++#else
++ asm("mov %sp,%o2"); /* Save sp */
++ asm("add %sp,-8,%o3"); /* p = sp-8 */
++ asm("clr %g1"); /* [g0,g1] = 0 */
++ asm("add %o1,-0x60,%sp"); /* Move sp out of the way, */
++ /* so that traps still work. */
++ /* Includes some extra words */
++ /* so we can be sloppy below. */
++ asm("loop:");
++ asm("std %g0,[%o3]"); /* *(long long *)p = 0 */
++ asm("cmp %o3,%o1");
++ asm("bgu loop "); /* if (p > limit) goto loop */
++ asm("add %o3,-8,%o3"); /* p -= 8 (delay slot) */
++ asm("retl");
++ asm("mov %o2,%sp"); /* Restore sp., delay slot */
++#endif /* old SPARC */
++ /* First argument = %o0 = return value */
++# ifdef SVR4
++ asm(" .GC_clear_stack_inner_end:");
++ asm(" .size GC_clear_stack_inner,.GC_clear_stack_inner_end-GC_clear_stack_inner");
++# endif
++#endif