diff options
author | Keri Harris <keri@gentoo.org> | 2010-07-24 02:29:17 +0000 |
---|---|---|
committer | Keri Harris <keri@gentoo.org> | 2010-07-24 02:29:17 +0000 |
commit | e6810c43c134e08aa6f635cb8c977f15fb4267b6 (patch) | |
tree | c15492f4822199963dfccc4bc5d2e768fa30a282 /dev-lang/mercury | |
parent | Version bump (bug #329385). (diff) | |
download | historical-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/ChangeLog | 5 | ||||
-rw-r--r-- | dev-lang/mercury/Manifest | 4 | ||||
-rw-r--r-- | dev-lang/mercury/files/mercury-10.04-boehm_gc.patch | 131 |
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 |