From 518f1af0169d5539033dec446d533511779a2894 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Thu, 7 Jun 2012 16:57:55 +0100 Subject: [PATCH] Fix PPC64 backend. --- ...gnore-file-to-ignore-generated-files.patch | 364 ++++++++++++++++++ ...pilerlibs-directory-is-created-by-gi.patch | 17 + ...amlplugininfo-Useful-utilities-from-.patch | 6 +- ...> 0004-Don-t-add-rpaths-to-libraries.patch | 6 +- ...-Allow-user-defined-C-compiler-flags.patch | 6 +- ...so-with-lpthread-so-that-pthread_atf.patch | 6 +- ....patch => 0007-Add-support-for-ppc64.patch | 24 +- ocaml.spec | 29 +- 8 files changed, 429 insertions(+), 29 deletions(-) create mode 100644 0001-Add-.gitignore-file-to-ignore-generated-files.patch create mode 100644 0002-Ensure-empty-compilerlibs-directory-is-created-by-gi.patch rename 0001-ocamlbyteinfo-ocamlplugininfo-Useful-utilities-from-.patch => 0003-ocamlbyteinfo-ocamlplugininfo-Useful-utilities-from-.patch (98%) rename 0002-Don-t-add-rpaths-to-libraries.patch => 0004-Don-t-add-rpaths-to-libraries.patch (86%) rename 0003-configure-Allow-user-defined-C-compiler-flags.patch => 0005-configure-Allow-user-defined-C-compiler-flags.patch (80%) rename 0004-Link-dllthreads.so-with-lpthread-so-that-pthread_atf.patch => 0006-Link-dllthreads.so-with-lpthread-so-that-pthread_atf.patch (85%) rename 0005-Add-support-for-ppc64.patch => 0007-Add-support-for-ppc64.patch (99%) 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" +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" +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" 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" 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" 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" 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" 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} 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 4.00.0-0.1.beta2 +* Thu Jun 7 2012 Richard W.M. Jones 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.