[ocaml] Fix PPC64 backend.

Richard W.M. Jones rjones at fedoraproject.org
Thu Jun 7 16:21:12 UTC 2012


commit 518f1af0169d5539033dec446d533511779a2894
Author: Richard W.M. Jones <rjones at redhat.com>
Date:   Thu Jun 7 16:57:55 2012 +0100

    Fix PPC64 backend.

 ....gitignore-file-to-ignore-generated-files.patch |  364 ++++++++++++++++++++
 ...y-compilerlibs-directory-is-created-by-gi.patch |   17 +
 ...fo-ocamlplugininfo-Useful-utilities-from-.patch |    6 +-
 ...tch => 0004-Don-t-add-rpaths-to-libraries.patch |    6 +-
 ...igure-Allow-user-defined-C-compiler-flags.patch |    6 +-
 ...eads.so-with-lpthread-so-that-pthread_atf.patch |    6 +-
 ...ppc64.patch => 0007-Add-support-for-ppc64.patch |   24 +-
 ocaml.spec                                         |   29 ++-
 8 files changed, 429 insertions(+), 29 deletions(-)
---
diff --git a/0001-Add-.gitignore-file-to-ignore-generated-files.patch b/0001-Add-.gitignore-file-to-ignore-generated-files.patch
new file mode 100644
index 0000000..ffd3191
--- /dev/null
+++ b/0001-Add-.gitignore-file-to-ignore-generated-files.patch
@@ -0,0 +1,364 @@
+From c7fff641b0b04cde2ceeb8376b4e0715a64e7bb7 Mon Sep 17 00:00:00 2001
+From: "Richard W.M. Jones" <rjones at redhat.com>
+Date: Thu, 7 Jun 2012 16:00:28 +0100
+Subject: [PATCH 1/7] Add .gitignore file to ignore generated files.
+
+---
+ .gitignore |  345 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 345 insertions(+)
+ create mode 100644 .gitignore
+
+diff --git a/.gitignore b/.gitignore
+new file mode 100644
+index 0000000..b67b39f
+--- /dev/null
++++ b/.gitignore
+@@ -0,0 +1,345 @@
++*~
++*.a
++*.bak
++*.cma
++*.cmi
++*.cmo
++*.cmx
++*.o
++*.so
++/_boot_log1
++/_boot_log2
++/_build/
++/_log
++/asmcomp/arch.ml
++/asmcomp/emit.ml
++/asmcomp/proc.ml
++/asmcomp/reload.ml
++/asmcomp/scheduling.ml
++/asmcomp/selection.ml
++/asmrun/alloc.c
++/asmrun/array.c
++/asmrun/callback.c
++/asmrun/compact.c
++/asmrun/compare.c
++/asmrun/custom.c
++/asmrun/debugger.c
++/asmrun/dynlink.c
++/asmrun/extern.c
++/asmrun/finalise.c
++/asmrun/floats.c
++/asmrun/freelist.c
++/asmrun/gc_ctrl.c
++/asmrun/globroots.c
++/asmrun/hash.c
++/asmrun/intern.c
++/asmrun/ints.c
++/asmrun/io.c
++/asmrun/lexing.c
++/asmrun/main.c
++/asmrun/major_gc.c
++/asmrun/md5.c
++/asmrun/memory.c
++/asmrun/meta.c
++/asmrun/minor_gc.c
++/asmrun/misc.c
++/asmrun/obj.c
++/asmrun/parsing.c
++/asmrun/printexc.c
++/asmrun/signals.c
++/asmrun/str.c
++/asmrun/sys.c
++/asmrun/terminfo.c
++/asmrun/unix.c
++/asmrun/weak.c
++/boot/camlheader
++/boot/myocamlbuild
++/boot/ocamlrun
++/boot/ocamlyacc
++/build/ocamlbuild_mixed_mode
++/bytecomp/opcodes.ml
++/bytecomp/runtimedef.ml
++/byterun/jumptbl.h
++/byterun/ld.conf
++/byterun/ocamlrun
++/byterun/primitives
++/byterun/prims.c
++/byterun/version.h
++/compilerlibs/ocamlbytecomp.cmxa
++/compilerlibs/ocamlcommon.cmxa
++/compilerlibs/ocamloptcomp.cmxa
++/configure
++/config/Makefile
++/config/config.sh
++/config/m.h
++/config/s.h
++/debugger/dynlink.ml
++/debugger/dynlink.mli
++/debugger/lexer.ml
++/debugger/ocamldebug
++/debugger/parser.ml
++/debugger/parser.mli
++/expunge
++/lex/lexer.ml
++/lex/ocamllex
++/lex/ocamllex.opt
++/lex/parser.ml
++/lex/parser.mli
++/lex/parser.output
++/myocamlbuild_config.ml
++/ocamlbuild-mixed-boot
++/ocaml
++/ocamlc
++/ocamlc.opt
++/ocamlcomp.sh
++/ocamlcompopt.sh
++/ocamldoc/generators/odoc_literate.cmxs
++/ocamldoc/generators/odoc_todo.cmxs
++/ocamldoc/ocamldoc
++/ocamldoc/ocamldoc.opt
++/ocamldoc/odoc_info.cmxa
++/ocamldoc/odoc_lexer.ml
++/ocamldoc/odoc_ocamlhtml.ml
++/ocamldoc/odoc_parser.ml
++/ocamldoc/odoc_parser.mli
++/ocamldoc/odoc_parser.output
++/ocamldoc/odoc_see_lexer.ml
++/ocamldoc/odoc_text_lexer.ml
++/ocamldoc/odoc_text_parser.ml
++/ocamldoc/odoc_text_parser.mli
++/ocamldoc/odoc_text_parser.output
++/ocamldoc/stdlib_man/
++/ocamlnat
++/ocamlopt
++/ocamlopt.opt
++/otherlibs/bigarray/bigarray.cmxa
++/otherlibs/bigarray/bigarray.cmxs
++/otherlibs/dynlink/dynlink.cmxa
++/otherlibs/dbm/
++/otherlibs/dynlink/extract_crc
++/otherlibs/graph/graphics.cmxa
++/otherlibs/graph/graphics.cmxs
++/otherlibs/labltk/frx/frxlib.cmxa
++/otherlibs/labltk/jpf/jpflib.cmxa
++/otherlibs/labltk/lib/labltk.cmxa
++/otherlibs/labltk/browser/dummy.mli
++/otherlibs/labltk/browser/help.ml
++/otherlibs/labltk/browser/ocamlbrowser
++/otherlibs/labltk/camltk/.depend
++/otherlibs/labltk/camltk/_tkfgen.ml
++/otherlibs/labltk/camltk/_tkgen.ml
++/otherlibs/labltk/camltk/_tkgen.mli
++/otherlibs/labltk/camltk/_tkigen.ml
++/otherlibs/labltk/camltk/cBell.ml
++/otherlibs/labltk/camltk/cBell.mli
++/otherlibs/labltk/camltk/cButton.ml
++/otherlibs/labltk/camltk/cButton.mli
++/otherlibs/labltk/camltk/cCanvas.ml
++/otherlibs/labltk/camltk/cCanvas.mli
++/otherlibs/labltk/camltk/cCheckbutton.ml
++/otherlibs/labltk/camltk/cCheckbutton.mli
++/otherlibs/labltk/camltk/cClipboard.ml
++/otherlibs/labltk/camltk/cClipboard.mli
++/otherlibs/labltk/camltk/cDialog.ml
++/otherlibs/labltk/camltk/cDialog.mli
++/otherlibs/labltk/camltk/cEncoding.ml
++/otherlibs/labltk/camltk/cEncoding.mli
++/otherlibs/labltk/camltk/cEntry.ml
++/otherlibs/labltk/camltk/cEntry.mli
++/otherlibs/labltk/camltk/cFocus.ml
++/otherlibs/labltk/camltk/cFocus.mli
++/otherlibs/labltk/camltk/cFont.ml
++/otherlibs/labltk/camltk/cFont.mli
++/otherlibs/labltk/camltk/cFrame.ml
++/otherlibs/labltk/camltk/cFrame.mli
++/otherlibs/labltk/camltk/cGrab.ml
++/otherlibs/labltk/camltk/cGrab.mli
++/otherlibs/labltk/camltk/cGrid.ml
++/otherlibs/labltk/camltk/cGrid.mli
++/otherlibs/labltk/camltk/cImage.ml
++/otherlibs/labltk/camltk/cImage.mli
++/otherlibs/labltk/camltk/cImagebitmap.ml
++/otherlibs/labltk/camltk/cImagebitmap.mli
++/otherlibs/labltk/camltk/cImagephoto.ml
++/otherlibs/labltk/camltk/cImagephoto.mli
++/otherlibs/labltk/camltk/cLabel.ml
++/otherlibs/labltk/camltk/cLabel.mli
++/otherlibs/labltk/camltk/cListbox.ml
++/otherlibs/labltk/camltk/cListbox.mli
++/otherlibs/labltk/camltk/cMenu.ml
++/otherlibs/labltk/camltk/cMenu.mli
++/otherlibs/labltk/camltk/cMenubutton.ml
++/otherlibs/labltk/camltk/cMenubutton.mli
++/otherlibs/labltk/camltk/cMessage.ml
++/otherlibs/labltk/camltk/cMessage.mli
++/otherlibs/labltk/camltk/cOption.ml
++/otherlibs/labltk/camltk/cOption.mli
++/otherlibs/labltk/camltk/cOptionmenu.ml
++/otherlibs/labltk/camltk/cOptionmenu.mli
++/otherlibs/labltk/camltk/cPack.ml
++/otherlibs/labltk/camltk/cPack.mli
++/otherlibs/labltk/camltk/cPalette.ml
++/otherlibs/labltk/camltk/cPalette.mli
++/otherlibs/labltk/camltk/cPixmap.ml
++/otherlibs/labltk/camltk/cPixmap.mli
++/otherlibs/labltk/camltk/cPlace.ml
++/otherlibs/labltk/camltk/cPlace.mli
++/otherlibs/labltk/camltk/cRadiobutton.ml
++/otherlibs/labltk/camltk/cRadiobutton.mli
++/otherlibs/labltk/camltk/cResource.ml
++/otherlibs/labltk/camltk/cResource.mli
++/otherlibs/labltk/camltk/cScale.ml
++/otherlibs/labltk/camltk/cScale.mli
++/otherlibs/labltk/camltk/cScrollbar.ml
++/otherlibs/labltk/camltk/cScrollbar.mli
++/otherlibs/labltk/camltk/cSelection.ml
++/otherlibs/labltk/camltk/cSelection.mli
++/otherlibs/labltk/camltk/cText.ml
++/otherlibs/labltk/camltk/cText.mli
++/otherlibs/labltk/camltk/cTk.ml
++/otherlibs/labltk/camltk/cTkvars.ml
++/otherlibs/labltk/camltk/cTkvars.mli
++/otherlibs/labltk/camltk/cTkwait.ml
++/otherlibs/labltk/camltk/cTkwait.mli
++/otherlibs/labltk/camltk/cToplevel.ml
++/otherlibs/labltk/camltk/cToplevel.mli
++/otherlibs/labltk/camltk/cWinfo.ml
++/otherlibs/labltk/camltk/cWinfo.mli
++/otherlibs/labltk/camltk/cWm.ml
++/otherlibs/labltk/camltk/cWm.mli
++/otherlibs/labltk/camltk/camltk.ml
++/otherlibs/labltk/compiler/copyright.ml
++/otherlibs/labltk/compiler/lexer.ml
++/otherlibs/labltk/compiler/parser.ml
++/otherlibs/labltk/compiler/parser.mli
++/otherlibs/labltk/compiler/parser.output
++/otherlibs/labltk/compiler/pp
++/otherlibs/labltk/compiler/pplex.ml
++/otherlibs/labltk/compiler/ppyac.ml
++/otherlibs/labltk/compiler/ppyac.mli
++/otherlibs/labltk/compiler/ppyac.output
++/otherlibs/labltk/compiler/tkcompiler
++/otherlibs/labltk/labltk/.depend
++/otherlibs/labltk/labltk/_tkfgen.ml
++/otherlibs/labltk/labltk/_tkgen.ml
++/otherlibs/labltk/labltk/_tkgen.mli
++/otherlibs/labltk/labltk/_tkigen.ml
++/otherlibs/labltk/labltk/bell.ml
++/otherlibs/labltk/labltk/bell.mli
++/otherlibs/labltk/labltk/button.ml
++/otherlibs/labltk/labltk/button.mli
++/otherlibs/labltk/labltk/canvas.ml
++/otherlibs/labltk/labltk/canvas.mli
++/otherlibs/labltk/labltk/checkbutton.ml
++/otherlibs/labltk/labltk/checkbutton.mli
++/otherlibs/labltk/labltk/clipboard.ml
++/otherlibs/labltk/labltk/clipboard.mli
++/otherlibs/labltk/labltk/dialog.ml
++/otherlibs/labltk/labltk/dialog.mli
++/otherlibs/labltk/labltk/encoding.ml
++/otherlibs/labltk/labltk/encoding.mli
++/otherlibs/labltk/labltk/entry.ml
++/otherlibs/labltk/labltk/entry.mli
++/otherlibs/labltk/labltk/focus.ml
++/otherlibs/labltk/labltk/focus.mli
++/otherlibs/labltk/labltk/font.ml
++/otherlibs/labltk/labltk/font.mli
++/otherlibs/labltk/labltk/frame.ml
++/otherlibs/labltk/labltk/frame.mli
++/otherlibs/labltk/labltk/grab.ml
++/otherlibs/labltk/labltk/grab.mli
++/otherlibs/labltk/labltk/grid.ml
++/otherlibs/labltk/labltk/grid.mli
++/otherlibs/labltk/labltk/image.ml
++/otherlibs/labltk/labltk/image.mli
++/otherlibs/labltk/labltk/imagebitmap.ml
++/otherlibs/labltk/labltk/imagebitmap.mli
++/otherlibs/labltk/labltk/imagephoto.ml
++/otherlibs/labltk/labltk/imagephoto.mli
++/otherlibs/labltk/labltk/label.ml
++/otherlibs/labltk/labltk/label.mli
++/otherlibs/labltk/labltk/labltk.ml
++/otherlibs/labltk/labltk/listbox.ml
++/otherlibs/labltk/labltk/listbox.mli
++/otherlibs/labltk/labltk/menu.ml
++/otherlibs/labltk/labltk/menu.mli
++/otherlibs/labltk/labltk/menubutton.ml
++/otherlibs/labltk/labltk/menubutton.mli
++/otherlibs/labltk/labltk/message.ml
++/otherlibs/labltk/labltk/message.mli
++/otherlibs/labltk/labltk/option.ml
++/otherlibs/labltk/labltk/option.mli
++/otherlibs/labltk/labltk/optionmenu.ml
++/otherlibs/labltk/labltk/optionmenu.mli
++/otherlibs/labltk/labltk/pack.ml
++/otherlibs/labltk/labltk/pack.mli
++/otherlibs/labltk/labltk/palette.ml
++/otherlibs/labltk/labltk/palette.mli
++/otherlibs/labltk/labltk/pixmap.ml
++/otherlibs/labltk/labltk/pixmap.mli
++/otherlibs/labltk/labltk/place.ml
++/otherlibs/labltk/labltk/place.mli
++/otherlibs/labltk/labltk/radiobutton.ml
++/otherlibs/labltk/labltk/radiobutton.mli
++/otherlibs/labltk/labltk/scale.ml
++/otherlibs/labltk/labltk/scale.mli
++/otherlibs/labltk/labltk/scrollbar.ml
++/otherlibs/labltk/labltk/scrollbar.mli
++/otherlibs/labltk/labltk/selection.ml
++/otherlibs/labltk/labltk/selection.mli
++/otherlibs/labltk/labltk/text.ml
++/otherlibs/labltk/labltk/text.mli
++/otherlibs/labltk/labltk/tk.ml
++/otherlibs/labltk/labltk/tkvars.ml
++/otherlibs/labltk/labltk/tkvars.mli
++/otherlibs/labltk/labltk/tkwait.ml
++/otherlibs/labltk/labltk/tkwait.mli
++/otherlibs/labltk/labltk/toplevel.ml
++/otherlibs/labltk/labltk/toplevel.mli
++/otherlibs/labltk/labltk/winfo.ml
++/otherlibs/labltk/labltk/winfo.mli
++/otherlibs/labltk/labltk/wm.ml
++/otherlibs/labltk/labltk/wm.mli
++/otherlibs/labltk/lib/labltk
++/otherlibs/labltk/lib/labltktop
++/otherlibs/num/nums.cmxa
++/otherlibs/num/nums.cmxs
++/otherlibs/str/str.cmxa
++/otherlibs/str/str.cmxs
++/otherlibs/systhreads/threads.cmxa
++/otherlibs/threads/marshal.mli
++/otherlibs/threads/pervasives.mli
++/otherlibs/threads/unix.mli
++/otherlibs/unix/unix.cmxa
++/otherlibs/unix/unix.cmxs
++/package-macosx
++/parsing/lexer.ml
++/parsing/linenum.ml
++/parsing/parser.ml
++/parsing/parser.mli
++/parsing/parser.output
++/stdlib/caml
++/stdlib/camlheader
++/stdlib/camlheader_ur
++/stdlib/camlheaderd
++/stdlib/stdlib.cmxa
++/stdlib/sys.ml
++/tools/cvt_emit
++/tools/cvt_emit.ml
++/tools/dumpobj
++/tools/myocamlbuild_config.ml
++/tools/objinfo
++/tools/objinfo_helper
++/tools/ocamlcp
++/tools/ocamldep
++/tools/ocamldep.opt
++/tools/ocamlmklib
++/tools/ocamlmklib.ml
++/tools/ocamlmktop
++/tools/ocamloptp
++/tools/ocamlprof
++/tools/opnames.ml
++/tools/read_cmt
++/utils/config.ml
++/yacc/ocamlyacc
++/yacc/version.h
+-- 
+1.7.10.1
+
diff --git a/0002-Ensure-empty-compilerlibs-directory-is-created-by-gi.patch b/0002-Ensure-empty-compilerlibs-directory-is-created-by-gi.patch
new file mode 100644
index 0000000..5fefcc4
--- /dev/null
+++ b/0002-Ensure-empty-compilerlibs-directory-is-created-by-gi.patch
@@ -0,0 +1,17 @@
+From 025baae6645f09b0f34ca8f2a746e3d4261ae4c1 Mon Sep 17 00:00:00 2001
+From: "Richard W.M. Jones" <rjones at redhat.com>
+Date: Thu, 7 Jun 2012 15:36:16 +0100
+Subject: [PATCH 2/7] Ensure empty compilerlibs/ directory is created by git.
+
+This directory exists in the OCaml tarball, but is empty.  As a
+result, git ignores it unless we put a dummy file in it.
+---
+ 0 files changed
+ create mode 100644 compilerlibs/.exists
+
+diff --git a/compilerlibs/.exists b/compilerlibs/.exists
+new file mode 100644
+index 0000000..e69de29
+-- 
+1.7.10.1
+
diff --git a/0001-ocamlbyteinfo-ocamlplugininfo-Useful-utilities-from-.patch b/0003-ocamlbyteinfo-ocamlplugininfo-Useful-utilities-from-.patch
similarity index 98%
rename from 0001-ocamlbyteinfo-ocamlplugininfo-Useful-utilities-from-.patch
rename to 0003-ocamlbyteinfo-ocamlplugininfo-Useful-utilities-from-.patch
index 3b18cfd..c502415 100644
--- a/0001-ocamlbyteinfo-ocamlplugininfo-Useful-utilities-from-.patch
+++ b/0003-ocamlbyteinfo-ocamlplugininfo-Useful-utilities-from-.patch
@@ -1,7 +1,7 @@
-From 545a807ed2ecbbcfa59699d99eefb6ecfd5a9bc6 Mon Sep 17 00:00:00 2001
+From 6865790801a84e9ad94234e30da346b73381b232 Mon Sep 17 00:00:00 2001
 From: "Richard W.M. Jones" <rjones at redhat.com>
 Date: Tue, 29 May 2012 20:40:36 +0100
-Subject: [PATCH 1/5] ocamlbyteinfo, ocamlplugininfo: Useful utilities from
+Subject: [PATCH 3/7] ocamlbyteinfo, ocamlplugininfo: Useful utilities from
  Debian, sent upstream.
 
 See:
@@ -236,5 +236,5 @@ index 0000000..e28800f
 +        header.units
 +    end
 -- 
-1.7.10
+1.7.10.1
 
diff --git a/0002-Don-t-add-rpaths-to-libraries.patch b/0004-Don-t-add-rpaths-to-libraries.patch
similarity index 86%
rename from 0002-Don-t-add-rpaths-to-libraries.patch
rename to 0004-Don-t-add-rpaths-to-libraries.patch
index a959d69..8c06822 100644
--- a/0002-Don-t-add-rpaths-to-libraries.patch
+++ b/0004-Don-t-add-rpaths-to-libraries.patch
@@ -1,7 +1,7 @@
-From ece869582cd6746834ad8cbb0b31f09fb88e6cbc Mon Sep 17 00:00:00 2001
+From 1e899c7ec6482dcecb57682a20a25df34315eb20 Mon Sep 17 00:00:00 2001
 From: "Richard W.M. Jones" <rjones at redhat.com>
 Date: Tue, 29 May 2012 20:43:34 +0100
-Subject: [PATCH 2/5] Don't add rpaths to libraries.
+Subject: [PATCH 4/7] Don't add rpaths to libraries.
 
 ---
  tools/Makefile.shared |    3 ---
@@ -22,5 +22,5 @@ index f6818d3..aadd7e2 100644
  	  ocamlmklib.mlp >> ocamlmklib.ml
  
 -- 
-1.7.10
+1.7.10.1
 
diff --git a/0003-configure-Allow-user-defined-C-compiler-flags.patch b/0005-configure-Allow-user-defined-C-compiler-flags.patch
similarity index 80%
rename from 0003-configure-Allow-user-defined-C-compiler-flags.patch
rename to 0005-configure-Allow-user-defined-C-compiler-flags.patch
index 2663d65..c85daf7 100644
--- a/0003-configure-Allow-user-defined-C-compiler-flags.patch
+++ b/0005-configure-Allow-user-defined-C-compiler-flags.patch
@@ -1,7 +1,7 @@
-From 18750e6b76911e508ddd632df073566179d091d6 Mon Sep 17 00:00:00 2001
+From 05d5577eecfd8d17f5d3f9a9f1063b8c6df295d4 Mon Sep 17 00:00:00 2001
 From: "Richard W.M. Jones" <rjones at redhat.com>
 Date: Tue, 29 May 2012 20:44:18 +0100
-Subject: [PATCH 3/5] configure: Allow user defined C compiler flags.
+Subject: [PATCH 5/7] configure: Allow user defined C compiler flags.
 
 ---
  configure |    4 ++++
@@ -23,5 +23,5 @@ index 72f4240..eafd6d9 100755
  
  cclibs="$cclibs $mathlib"
 -- 
-1.7.10
+1.7.10.1
 
diff --git a/0004-Link-dllthreads.so-with-lpthread-so-that-pthread_atf.patch b/0006-Link-dllthreads.so-with-lpthread-so-that-pthread_atf.patch
similarity index 85%
rename from 0004-Link-dllthreads.so-with-lpthread-so-that-pthread_atf.patch
rename to 0006-Link-dllthreads.so-with-lpthread-so-that-pthread_atf.patch
index d218f7e..86fd3d2 100644
--- a/0004-Link-dllthreads.so-with-lpthread-so-that-pthread_atf.patch
+++ b/0006-Link-dllthreads.so-with-lpthread-so-that-pthread_atf.patch
@@ -1,7 +1,7 @@
-From a46d9a5dd1cb05ee6f32ca41acd35acb536a90de Mon Sep 17 00:00:00 2001
+From a0bc0d6b0b714ea95e463b49b777a469b6e6281c Mon Sep 17 00:00:00 2001
 From: "Richard W.M. Jones" <rjones at redhat.com>
 Date: Tue, 5 Jun 2012 22:49:17 +0100
-Subject: [PATCH 4/5] Link dllthreads.so with -lpthread so that pthread_atfork
+Subject: [PATCH 6/7] Link dllthreads.so with -lpthread so that pthread_atfork
  is included statically.
 
 See:
@@ -24,5 +24,5 @@ index 3d3f8fb..fb0ae87 100644
  st_stubs_b.o: st_stubs.c st_posix.h
  	$(BYTECC) -O -I../../byterun $(BYTECCCOMPOPTS) $(SHAREDCCCOMPOPTS) \
 -- 
-1.7.10
+1.7.10.1
 
diff --git a/0005-Add-support-for-ppc64.patch b/0007-Add-support-for-ppc64.patch
similarity index 99%
rename from 0005-Add-support-for-ppc64.patch
rename to 0007-Add-support-for-ppc64.patch
index d2d821a..daf9050 100644
--- a/0005-Add-support-for-ppc64.patch
+++ b/0007-Add-support-for-ppc64.patch
@@ -1,7 +1,7 @@
-From a17790287c82c7068451ae37eac73a21bd148e9d Mon Sep 17 00:00:00 2001
+From c5d136f4163a0b815f936269151faf2ae44791b2 Mon Sep 17 00:00:00 2001
 From: "Richard W.M. Jones" <rjones at redhat.com>
 Date: Tue, 29 May 2012 20:47:07 +0100
-Subject: [PATCH 5/5] Add support for ppc64.
+Subject: [PATCH 7/7] Add support for ppc64.
 
 Note (1): This patch was rejected upstream because they don't have
 appropriate hardware for testing.
@@ -17,8 +17,10 @@ when there are more than 8 parameters (RHBZ#829187).
 
 Includes fix for minor heap corruption because of unaligned minor heap
 register (RHBZ#826649).
+
+Includes updates for OCaml 4.00.0.
 ---
- asmcomp/power64/arch.ml       |   83 ++++
+ asmcomp/power64/arch.ml       |   87 ++++
  asmcomp/power64/emit.mlp      |  989 +++++++++++++++++++++++++++++++++++++++++
  asmcomp/power64/proc.ml       |  241 ++++++++++
  asmcomp/power64/reload.ml     |   18 +
@@ -28,7 +30,7 @@ register (RHBZ#826649).
  asmrun/power64-elf.S          |  486 ++++++++++++++++++++
  asmrun/stack.h                |    9 +
  configure                     |    3 +
- 10 files changed, 2003 insertions(+)
+ 10 files changed, 2007 insertions(+)
  create mode 100644 asmcomp/power64/arch.ml
  create mode 100644 asmcomp/power64/emit.mlp
  create mode 100644 asmcomp/power64/proc.ml
@@ -39,10 +41,10 @@ register (RHBZ#826649).
 
 diff --git a/asmcomp/power64/arch.ml b/asmcomp/power64/arch.ml
 new file mode 100644
-index 0000000..55dd593
+index 0000000..6a14864
 --- /dev/null
 +++ b/asmcomp/power64/arch.ml
-@@ -0,0 +1,83 @@
+@@ -0,0 +1,87 @@
 +(***********************************************************************)
 +(*                                                                     *)
 +(*                           Objective Caml                            *)
@@ -88,6 +90,10 @@ index 0000000..55dd593
 +let size_int = size_addr
 +let size_float = 8
 +
++(* Behavior of division *)
++
++let division_crashes_on_overflow = false
++
 +(* Operations on addressing modes *)
 +
 +let identity_addressing = Iindexed 0
@@ -1465,7 +1471,7 @@ index 0000000..b7bba9b
 +let fundecl f = (new scheduler)#schedule_fundecl f
 diff --git a/asmcomp/power64/selection.ml b/asmcomp/power64/selection.ml
 new file mode 100644
-index 0000000..7b8e2a4
+index 0000000..d2325e1
 --- /dev/null
 +++ b/asmcomp/power64/selection.ml
 @@ -0,0 +1,103 @@
@@ -1523,7 +1529,7 @@ index 0000000..7b8e2a4
 +
 +method is_immediate n = (n <= 32767) && (n >= -32768)
 +
-+method select_addressing exp =
++method select_addressing chunk exp =
 +  match select_addr exp with
 +    (Asymbol s, d) ->
 +      (Ibased(s, d), Ctuple [])
@@ -2123,5 +2129,5 @@ index eafd6d9..2f48daf 100755
                      aspp='gcc -c';;
    power,*,rhapsody) as="as -arch $model"
 -- 
-1.7.10
+1.7.10.1
 
diff --git a/ocaml.spec b/ocaml.spec
index 423720f..f36bf6b 100644
--- a/ocaml.spec
+++ b/ocaml.spec
@@ -1,6 +1,6 @@
 Name:           ocaml
 Version:        4.00.0
-Release:        0.1.beta2%{?dist}
+Release:        0.2.beta2%{?dist}
 
 Summary:        OCaml compiler and programming environment
 
@@ -27,11 +27,13 @@ Source3:        http://caml.inria.fr/pub/distrib/ocaml-4.00/ocaml-4.00beta-refma
 # existing patches unchanged) adding a comment to note that it should
 # be incorporated into the git repo at a later time.
 #
-Patch0001:      0001-ocamlbyteinfo-ocamlplugininfo-Useful-utilities-from-.patch
-Patch0002:      0002-Don-t-add-rpaths-to-libraries.patch
-Patch0003:      0003-configure-Allow-user-defined-C-compiler-flags.patch
-Patch0004:      0004-Link-dllthreads.so-with-lpthread-so-that-pthread_atf.patch
-Patch0005:      0005-Add-support-for-ppc64.patch
+Patch0001:      0001-Add-.gitignore-file-to-ignore-generated-files.patch
+Patch0002:      0002-Ensure-empty-compilerlibs-directory-is-created-by-gi.patch
+Patch0003:      0003-ocamlbyteinfo-ocamlplugininfo-Useful-utilities-from-.patch
+Patch0004:      0004-Don-t-add-rpaths-to-libraries.patch
+Patch0005:      0005-configure-Allow-user-defined-C-compiler-flags.patch
+Patch0006:      0006-Link-dllthreads.so-with-lpthread-so-that-pthread_atf.patch
+Patch0007:      0007-Add-support-for-ppc64.patch
 
 # Depend on previous version of OCaml so that ocamlobjinfo
 # can run.
@@ -255,6 +257,16 @@ git am %{patches} </dev/null
 # make -jN (N > 1) breaks the build.  Therefore we cannot use
 # %{?_smp_mflags} nor MAKEFLAGS.
 unset MAKEFLAGS
+
+# For ppc64 we need a larger stack than default to compile some files
+# because the stages in the OCaml compiler are not mutually tail
+# recursive.
+%ifarch ppc64
+ulimit -a
+ulimit -Hs 65536
+ulimit -Ss 65536
+%endif
+
 CFLAGS="$RPM_OPT_FLAGS" \
 ./configure \
     -bindir %{_bindir} \
@@ -515,14 +527,15 @@ fi
 
 
 %changelog
-* Thu Jun  7 2012 Richard W.M. Jones <rjones at redhat.com> 4.00.0-0.1.beta2
+* Thu Jun  7 2012 Richard W.M. Jones <rjones at redhat.com> 4.00.0-0.2.beta2
 - Upgrade to OCaml 4.00.0 beta 2.
 - The language is now officially called OCaml (not Objective Caml, O'Caml etc)
 - Rebase patches on top:
   . New ARM backend patch no longer required, since upstream.
   . Replacement config.guess, config.sub no longer required, since upstream
     versions are newer.
-  . ppc64 backend known not to work; will fix shortly.
+- PPC64 backend rebased and fixed.
+  . Increase the default size of the stack when compiling.
 - New tool: ocamloptp (ocamlopt profiler).
 - New VERSION file in ocaml-runtime package.
 - New ocaml-compiler-libs subpackage.


More information about the scm-commits mailing list