Hello community, here is the log from the commit of package ocaml for openSUSE:Factory checked in at 2012-06-29 10:21:06 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ocaml (Old) and /work/SRC/openSUSE:Factory/.ocaml.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ocaml", Maintainer is "[email protected]" Changes: -------- --- /work/SRC/openSUSE:Factory/ocaml/ocaml.changes 2012-05-14 16:17:03.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.ocaml.new/ocaml.changes 2012-06-29 10:42:30.000000000 +0200 @@ -1,0 +2,7 @@ +Wed Jun 27 10:51:13 UTC 2012 - [email protected] + +- refresh ppc64 patch +- Link dllthreads.so with -lpthread so that pthread_atfork + is included statically. + +------------------------------------------------------------------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ocaml.spec ++++++ --- /var/tmp/diff_new_pack.gVAZge/_old 2012-06-29 10:42:31.000000000 +0200 +++ /var/tmp/diff_new_pack.gVAZge/_new 2012-06-29 10:42:31.000000000 +0200 @@ -271,7 +271,7 @@ %patch6 %patch7 %patch8 -%patch9 +%patch9 -p1 %patch10 -p1 find -name ".cvsignore" | xargs -r rm -f ++++++ ocaml-3.09-rpmoptflags.patch ++++++ --- /var/tmp/diff_new_pack.gVAZge/_old 2012-06-29 10:42:31.000000000 +0200 +++ /var/tmp/diff_new_pack.gVAZge/_new 2012-06-29 10:42:31.000000000 +0200 @@ -57,8 +57,12 @@ =================================================================== --- otherlibs/systhreads/Makefile.orig +++ otherlibs/systhreads/Makefile -@@ -33,7 +33,7 @@ libthreads.a: $(BYTECODE_C_OBJS) - $(MKLIB) -o threads $(BYTECODE_C_OBJS) +@@ -30,10 +30,10 @@ + allopt: libthreadsnat.a threads.cmxa + + libthreads.a: $(BYTECODE_C_OBJS) +- $(MKLIB) -o threads $(BYTECODE_C_OBJS) ++ $(MKLIB) -o threads $(BYTECODE_C_OBJS) -lpthread st_stubs_b.o: st_stubs.c st_posix.h - $(BYTECC) -O -I../../byterun $(BYTECCCOMPOPTS) $(SHAREDCCCOMPOPTS) \ @@ -66,7 +70,7 @@ -c st_stubs.c mv st_stubs.o st_stubs_b.o -@@ -43,7 +43,7 @@ libthreadsnat.a: $(NATIVECODE_C_OBJS) +@@ -43,7 +43,7 @@ $(AR) rc libthreadsnat.a $(NATIVECODE_C_OBJS) st_stubs_n.o: st_stubs.c st_posix.h ++++++ ocaml-ppc64.patch ++++++ --- /var/tmp/diff_new_pack.gVAZge/_old 2012-06-29 10:42:31.000000000 +0200 +++ /var/tmp/diff_new_pack.gVAZge/_new 2012-06-29 10:42:31.000000000 +0200 @@ -1,7 +1,48 @@ -diff -uNr asmcomp.orig/power64/arch.ml asmcomp/power64/arch.ml ---- asmcomp.orig/power64/arch.ml 1969-12-31 19:00:00.000000000 -0500 -+++ asmcomp/power64/arch.ml 2008-02-29 08:37:45.000000000 -0500 -@@ -0,0 +1,84 @@ +From b25707437651811a22acaab5a9461eb4ab742f6e Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" <[email protected]> +Date: Tue, 29 May 2012 20:47:07 +0100 +Subject: [PATCH 6/8] Add support for ppc64. + +Note (1): This patch was rejected upstream because they don't have +appropriate hardware for testing. + +Note (2): Upstream powerpc directory has some support for ppc64, but +only for Macs, and I couldn't get it to work at all with IBM hardware. + +This patch was collaborated on by several people, most notably +David Woodhouse. + +Includes fix for position of stack arguments to external C functions +when there are more than 8 parameters (RHBZ#829187). + +Includes fix for minor heap corruption because of unaligned minor heap +register (RHBZ#826649). +--- + asmcomp/power64/arch.ml | 83 ++++ + asmcomp/power64/emit.mlp | 989 +++++++++++++++++++++++++++++++++++++++++ + asmcomp/power64/proc.ml | 241 ++++++++++ + asmcomp/power64/reload.ml | 18 + + asmcomp/power64/scheduling.ml | 65 +++ + asmcomp/power64/selection.ml | 103 +++++ + asmrun/Makefile | 6 + + asmrun/power64-elf.S | 486 ++++++++++++++++++++ + asmrun/stack.h | 9 + + configure | 5 +- + 10 files changed, 2004 insertions(+), 1 deletion(-) + create mode 100644 asmcomp/power64/arch.ml + create mode 100644 asmcomp/power64/emit.mlp + create mode 100644 asmcomp/power64/proc.ml + create mode 100644 asmcomp/power64/reload.ml + create mode 100644 asmcomp/power64/scheduling.ml + create mode 100644 asmcomp/power64/selection.ml + create mode 100644 asmrun/power64-elf.S + +diff --git a/asmcomp/power64/arch.ml b/asmcomp/power64/arch.ml +new file mode 100644 +index 0000000..55dd593 +--- /dev/null ++++ b/asmcomp/power64/arch.ml +@@ -0,0 +1,83 @@ +(***********************************************************************) +(* *) +(* Objective Caml *) @@ -14,7 +55,7 @@ +(* *) +(***********************************************************************) + -+(* $Id: ocaml-3.11.0-ppc64.patch,v 1.1 2008/11/20 15:30:55 rjones Exp $ *) ++(* $Id: arch.ml 9547 2010-01-22 12:48:24Z doligez $ *) + +(* Specific operations for the PowerPC processor *) + @@ -44,7 +85,7 @@ +let big_endian = true + +let size_addr = 8 -+let size_int = 8 ++let size_int = size_addr +let size_float = 8 + +(* Operations on addressing modes *) @@ -85,10 +126,11 @@ + printreg arg.(0) printreg arg.(1) printreg arg.(2) + | Ialloc_far n -> + fprintf ppf "alloc_far %d" n -+ -diff -uNr asmcomp.orig/power64/emit.mlp asmcomp/power64/emit.mlp ---- asmcomp.orig/power64/emit.mlp 1969-12-31 19:00:00.000000000 -0500 -+++ asmcomp/power64/emit.mlp 2008-02-29 08:37:45.000000000 -0500 +diff --git a/asmcomp/power64/emit.mlp b/asmcomp/power64/emit.mlp +new file mode 100644 +index 0000000..42f585d +--- /dev/null ++++ b/asmcomp/power64/emit.mlp @@ -0,0 +1,989 @@ +(***********************************************************************) +(* *) @@ -102,7 +144,7 @@ +(* *) +(***********************************************************************) + -+(* $Id: ocaml-3.11.0-ppc64.patch,v 1.1 2008/11/20 15:30:55 rjones Exp $ *) ++(* $Id: emit.mlp 9547 2010-01-22 12:48:24Z doligez $ *) + +(* Emission of PowerPC assembly code *) + @@ -699,7 +741,7 @@ + ` bge {emit_label lbl}\n`; + record_frame i.live; + ` bl {emit_label !call_gc_label}\n`; (* Must be 4 insns to restart *) -+ `{emit_label lbl}: addi {emit_reg i.res.(0)}, {emit_gpr 31}, 4\n` ++ `{emit_label lbl}: addi {emit_reg i.res.(0)}, {emit_gpr 31}, {emit_int size_addr}\n` + | Lop(Iintop Isub) -> (* subfc has swapped arguments *) + ` subfc {emit_reg i.res.(0)}, {emit_reg i.arg.(1)}, {emit_reg i.arg.(0)}\n` + | Lop(Iintop Imod) -> @@ -1079,10 +1121,12 @@ + ` .quad {emit_int (List.length !frame_descriptors)}\n`; + List.iter emit_frame !frame_descriptors; + frame_descriptors := [] -diff -uNr asmcomp.orig/power64/proc.ml asmcomp/power64/proc.ml ---- asmcomp.orig/power64/proc.ml 1969-12-31 19:00:00.000000000 -0500 -+++ asmcomp/power64/proc.ml 2008-02-29 08:37:45.000000000 -0500 -@@ -0,0 +1,245 @@ +diff --git a/asmcomp/power64/proc.ml b/asmcomp/power64/proc.ml +new file mode 100644 +index 0000000..119ad93 +--- /dev/null ++++ b/asmcomp/power64/proc.ml +@@ -0,0 +1,241 @@ +(***********************************************************************) +(* *) +(* Objective Caml *) @@ -1095,7 +1139,7 @@ +(* *) +(***********************************************************************) + -+(* $Id: ocaml-3.11.0-ppc64.patch,v 1.1 2008/11/20 15:30:55 rjones Exp $ *) ++(* $Id: proc.ml 9547 2010-01-22 12:48:24Z doligez $ *) + +(* Description of the Power PC *) + @@ -1203,7 +1247,7 @@ + end else begin + loc.(i) <- stack_slot (make_stack !ofs) ty; + end; -+ ofs := !ofs + 8 ++ ofs := !ofs + size_int + | Float -> + if !float <= last_float then begin + loc.(i) <- phys_reg !float; @@ -1211,7 +1255,7 @@ + end else begin + loc.(i) <- stack_slot (make_stack !ofs) Float; + end; -+ ofs := !ofs + 8 ++ ofs := !ofs + size_float + done; + (loc, Misc.align !ofs 16) + (* Keep stack 16-aligned. *) @@ -1247,7 +1291,7 @@ + let loc = Array.create (Array.length arg) Reg.dummy in + let int = ref first_int in + let float = ref first_float in -+ let ofs = ref 112 in ++ let ofs = ref (14 * size_addr) in + for i = 0 to Array.length arg - 1 do + match arg.(i).typ with + Int | Addr as ty -> @@ -1273,7 +1317,7 @@ +let loc_external_arguments = + match Config.system with + | "rhapsody" -> poweropen_external_conventions 0 7 100 112 -+ | "elf" | "bsd" -> calling_conventions 0 7 100 107 outgoing 8 ++ | "elf" | "bsd" -> calling_conventions 0 7 100 107 outgoing 48 + | _ -> assert false + +let extcall_use_push = false @@ -1319,18 +1363,16 @@ +(* Calling the assembler *) + +let assemble_file infile outfile = -+ let infile = Filename.quote infile -+ and outfile = Filename.quote outfile in -+ match Config.system with -+ | "elf" -> -+ Ccomp.command ("as -u -m ppc64 -o " ^ outfile ^ " " ^ infile) -+ | _ -> assert false ++ Ccomp.command (Config.asm ^ " -o " ^ ++ Filename.quote outfile ^ " " ^ Filename.quote infile) + +open Clflags;; +open Config;; -diff -uNr asmcomp.orig/power64/reload.ml asmcomp/power64/reload.ml ---- asmcomp.orig/power64/reload.ml 1969-12-31 19:00:00.000000000 -0500 -+++ asmcomp/power64/reload.ml 2008-02-29 08:37:45.000000000 -0500 +diff --git a/asmcomp/power64/reload.ml b/asmcomp/power64/reload.ml +new file mode 100644 +index 0000000..abcac6c +--- /dev/null ++++ b/asmcomp/power64/reload.ml @@ -0,0 +1,18 @@ +(***********************************************************************) +(* *) @@ -1344,16 +1386,18 @@ +(* *) +(***********************************************************************) + -+(* $Id: ocaml-3.11.0-ppc64.patch,v 1.1 2008/11/20 15:30:55 rjones Exp $ *) ++(* $Id: reload.ml 2553 1999-11-17 18:59:06Z xleroy $ *) + +(* Reloading for the PowerPC *) + +let fundecl f = + (new Reloadgen.reload_generic)#fundecl f -diff -uNr asmcomp.orig/power64/scheduling.ml asmcomp/power64/scheduling.ml ---- asmcomp.orig/power64/scheduling.ml 1969-12-31 19:00:00.000000000 -0500 -+++ asmcomp/power64/scheduling.ml 2008-02-29 08:37:45.000000000 -0500 -@@ -0,0 +1,66 @@ +diff --git a/asmcomp/power64/scheduling.ml b/asmcomp/power64/scheduling.ml +new file mode 100644 +index 0000000..b7bba9b +--- /dev/null ++++ b/asmcomp/power64/scheduling.ml +@@ -0,0 +1,65 @@ +(***********************************************************************) +(* *) +(* Objective Caml *) @@ -1366,7 +1410,7 @@ +(* *) +(***********************************************************************) + -+(* $Id: ocaml-3.11.0-ppc64.patch,v 1.1 2008/11/20 15:30:55 rjones Exp $ *) ++(* $Id: scheduling.ml 9547 2010-01-22 12:48:24Z doligez $ *) + +(* Instruction scheduling for the Power PC *) + @@ -1419,10 +1463,11 @@ +end + +let fundecl f = (new scheduler)#schedule_fundecl f -+ -diff -uNr asmcomp.orig/power64/selection.ml asmcomp/power64/selection.ml ---- asmcomp.orig/power64/selection.ml 1969-12-31 19:00:00.000000000 -0500 -+++ asmcomp/power64/selection.ml 2008-02-29 08:37:45.000000000 -0500 +diff --git a/asmcomp/power64/selection.ml b/asmcomp/power64/selection.ml +new file mode 100644 +index 0000000..7b8e2a4 +--- /dev/null ++++ b/asmcomp/power64/selection.ml @@ -0,0 +1,103 @@ +(***********************************************************************) +(* *) @@ -1436,7 +1481,7 @@ +(* *) +(***********************************************************************) + -+(* $Id: ocaml-3.11.0-ppc64.patch,v 1.1 2008/11/20 15:30:55 rjones Exp $ *) ++(* $Id: selection.ml 10296 2010-04-22 12:51:06Z xleroy $ *) + +(* Instruction selection for the Power PC processor *) + @@ -1489,7 +1534,7 @@ + then (Iindexed2, Ctuple[e1; e2]) + else (Iindexed d, Cop(Cadda, [e1; e2])) + -+method select_operation op args = ++method! select_operation op args = + match (op, args) with + (* Prevent the recognition of (x / cst) and (x % cst) when cst is not + a power of 2, which do not correspond to an instruction. *) @@ -1527,9 +1572,28 @@ +end + +let fundecl f = (new selector)#emit_fundecl f -diff -uNr asmrun.orig/power64-elf.S asmrun/power64-elf.S ---- asmrun.orig/power64-elf.S 1969-12-31 19:00:00.000000000 -0500 -+++ asmrun/power64-elf.S 2008-02-29 08:37:45.000000000 -0500 +diff --git a/asmrun/Makefile b/asmrun/Makefile +index efffa33..3525b82 100644 +--- a/asmrun/Makefile ++++ b/asmrun/Makefile +@@ -74,6 +74,12 @@ power.o: power-$(SYSTEM).o + power.p.o: power-$(SYSTEM).o + cp power-$(SYSTEM).o power.p.o + ++power64.o: power64-$(SYSTEM).o ++ cp power64-$(SYSTEM).o power64.o ++ ++power64.p.o: power64-$(SYSTEM).o ++ cp power64-$(SYSTEM).o power64.p.o ++ + main.c: ../byterun/main.c + ln -s ../byterun/main.c main.c + misc.c: ../byterun/misc.c +diff --git a/asmrun/power64-elf.S b/asmrun/power64-elf.S +new file mode 100644 +index 0000000..b2c24d6 +--- /dev/null ++++ b/asmrun/power64-elf.S @@ -0,0 +1,486 @@ +/*********************************************************************/ +/* */ @@ -2017,8 +2081,10 @@ + .short 0 /* no roots here */ + .align 3 + ---- asmrun/stack.h.orig 2011-11-08 12:13:47.000000000 +0100 -+++ asmrun/stack.h 2011-11-08 12:14:32.000000000 +0100 +diff --git a/asmrun/stack.h b/asmrun/stack.h +index c778873..f1d2e6a 100644 +--- a/asmrun/stack.h ++++ b/asmrun/stack.h @@ -65,6 +65,15 @@ #define Callback_link(sp) ((struct caml_context *)((sp) + Trap_frame_size)) #endif @@ -2035,9 +2101,11 @@ #ifdef TARGET_m68k #define Saved_return_address(sp) *((intnat *)((sp) - 4)) #define Callback_link(sp) ((struct caml_context *)((sp) + 8)) ---- configure.orig 2011-11-08 12:15:11.000000000 +0100 -+++ configure 2011-11-08 12:16:17.000000000 +0100 -@@ -685,6 +685,7 @@ +diff --git a/configure b/configure +index d0a6b0f..6ed0a9c 100755 +--- a/configure ++++ b/configure +@@ -685,6 +685,7 @@ case "$host" in hppa2.0*-*-hpux*) arch=hppa; system=hpux;; hppa*-*-linux*) arch=hppa; system=linux;; hppa*-*-gnu*) arch=hppa; system=gnu;; @@ -2045,7 +2113,7 @@ powerpc*-*-linux*) arch=power; model=ppc; system=elf;; powerpc-*-netbsd*) arch=power; model=ppc; system=elf;; powerpc-*-rhapsody*) arch=power; model=ppc; system=rhapsody;; -@@ -709,7 +710,7 @@ +@@ -709,7 +710,7 @@ esac if $arch64; then case "$arch,$model" in @@ -2054,7 +2122,7 @@ arch=none; model=default; system=unknown;; esac fi -@@ -772,6 +773,8 @@ +@@ -772,6 +773,8 @@ case "$arch,$model,$system" in aspp='as -n32 -O2';; power,*,elf) as='as -u -m ppc' aspp='gcc -c';; @@ -2063,18 +2131,5 @@ power,*,bsd) as='as' aspp='gcc -c';; power,*,rhapsody) as="as -arch $model" ---- asmrun/Makefile.orig 2011-11-08 12:12:19.000000000 +0100 -+++ asmrun/Makefile 2011-11-08 12:23:45.000000000 +0100 -@@ -74,6 +74,12 @@ - power.p.o: power-$(SYSTEM).o - cp power-$(SYSTEM).o power.p.o - -+power64.o: power64-$(SYSTEM).o -+ cp power64-$(SYSTEM).o power64.o -+ -+power64.p.o: power64-$(SYSTEM).o -+ cp power64-$(SYSTEM).o power64.p.o -+ - main.c: ../byterun/main.c - ln -s ../byterun/main.c main.c - misc.c: ../byterun/misc.c +-- +1.7.10.1 -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
