rpms/ocaml/devel ocaml-3.11.0-ppc64.patch, NONE, 1.1 ocaml-3.11.0-rpath.patch, NONE, 1.1 .cvsignore, 1.10, 1.11 ocaml-find-requires.sh, 1.3, 1.4 ocaml.spec, 1.43, 1.44 sources, 1.12, 1.13 ocaml-3.10.0-tclver.patch, 1.1, NONE ocaml-3.10.1-map32bit.patch, 1.1, NONE ocaml-3.10.1-ppc64.patch, 1.1, NONE ocaml-3.11-dev12-no-executable-stack.patch, 1.1, NONE
Richard W.M. Jones
rjones at fedoraproject.org
Thu Nov 20 15:31:26 UTC 2008
Author: rjones
Update of /cvs/pkgs/rpms/ocaml/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv12538
Modified Files:
.cvsignore ocaml-find-requires.sh ocaml.spec sources
Added Files:
ocaml-3.11.0-ppc64.patch ocaml-3.11.0-rpath.patch
Removed Files:
ocaml-3.10.0-tclver.patch ocaml-3.10.1-map32bit.patch
ocaml-3.10.1-ppc64.patch
ocaml-3.11-dev12-no-executable-stack.patch
Log Message:
Rebuild for major new upstream release of 3.11.0 for Fedora 11.
ocaml-3.11.0-ppc64.patch:
--- NEW FILE ocaml-3.11.0-ppc64.patch ---
diff -uNr ocaml-3.10.1/asmcomp/power64/arch.ml ocaml-3.10.1.ppc64/asmcomp/power64/arch.ml
--- ocaml-3.10.1/asmcomp/power64/arch.ml 1969-12-31 19:00:00.000000000 -0500
+++ ocaml-3.10.1.ppc64/asmcomp/power64/arch.ml 2008-02-29 08:37:45.000000000 -0500
@@ -0,0 +1,84 @@
+(***********************************************************************)
+(* *)
+(* Objective Caml *)
+(* *)
+(* Xavier Leroy, projet Cristal, INRIA Rocquencourt *)
+(* *)
+(* Copyright 1996 Institut National de Recherche en Informatique et *)
+(* en Automatique. All rights reserved. This file is distributed *)
+(* under the terms of the Q Public License version 1.0. *)
+(* *)
+(***********************************************************************)
+
+(* $Id: arch.ml,v 1.11 2004/06/19 16:13:32 xleroy Exp $ *)
+
+(* Specific operations for the PowerPC processor *)
+
+open Misc
+open Format
+
+(* Machine-specific command-line options *)
+
+let command_line_options = []
+
+(* Specific operations *)
+
+type specific_operation =
+ Imultaddf (* multiply and add *)
+ | Imultsubf (* multiply and subtract *)
+ | Ialloc_far of int (* allocation in large functions *)
+
+(* Addressing modes *)
+
+type addressing_mode =
+ Ibased of string * int (* symbol + displ *)
+ | Iindexed of int (* reg + displ *)
+ | Iindexed2 (* reg + reg *)
+
+(* Sizes, endianness *)
+
+let big_endian = true
+
+let size_addr = 8
+let size_int = 8
+let size_float = 8
+
+(* Operations on addressing modes *)
+
+let identity_addressing = Iindexed 0
+
+let offset_addressing addr delta =
+ match addr with
+ Ibased(s, n) -> Ibased(s, n + delta)
+ | Iindexed n -> Iindexed(n + delta)
+ | Iindexed2 -> assert false
+
+let num_args_addressing = function
+ Ibased(s, n) -> 0
+ | Iindexed n -> 1
+ | Iindexed2 -> 2
+
+(* Printing operations and addressing modes *)
+
+let print_addressing printreg addr ppf arg =
+ match addr with
+ | Ibased(s, n) ->
+ let idx = if n <> 0 then Printf.sprintf " + %i" n else "" in
+ fprintf ppf "\"%s\"%s" s idx
+ | Iindexed n ->
+ let idx = if n <> 0 then Printf.sprintf " + %i" n else "" in
+ fprintf ppf "%a%s" printreg arg.(0) idx
+ | Iindexed2 ->
+ fprintf ppf "%a + %a" printreg arg.(0) printreg arg.(1)
+
+let print_specific_operation printreg op ppf arg =
+ match op with
+ | Imultaddf ->
+ fprintf ppf "%a *f %a +f %a"
+ printreg arg.(0) printreg arg.(1) printreg arg.(2)
+ | Imultsubf ->
+ fprintf ppf "%a *f %a -f %a"
+ printreg arg.(0) printreg arg.(1) printreg arg.(2)
+ | Ialloc_far n ->
+ fprintf ppf "alloc_far %d" n
+
diff -uNr ocaml-3.10.1/asmcomp/power64/emit.mlp ocaml-3.10.1.ppc64/asmcomp/power64/emit.mlp
--- ocaml-3.10.1/asmcomp/power64/emit.mlp 1969-12-31 19:00:00.000000000 -0500
+++ ocaml-3.10.1.ppc64/asmcomp/power64/emit.mlp 2008-02-29 08:37:45.000000000 -0500
@@ -0,0 +1,989 @@
+(***********************************************************************)
+(* *)
+(* Objective Caml *)
+(* *)
+(* Xavier Leroy, projet Cristal, INRIA Rocquencourt *)
+(* *)
+(* Copyright 1996 Institut National de Recherche en Informatique et *)
+(* en Automatique. All rights reserved. This file is distributed *)
+(* under the terms of the Q Public License version 1.0. *)
+(* *)
+(***********************************************************************)
+
+(* $Id: emit.mlp,v 1.21 2004/06/19 17:39:34 xleroy Exp $ *)
+
+(* Emission of PowerPC assembly code *)
+
+module StringSet = Set.Make(struct type t = string let compare = compare end)
+
+open Location
+open Misc
+open Cmm
+open Arch
+open Proc
+open Reg
+open Mach
+open Linearize
+open Emitaux
+
+(* Layout of the stack. The stack is kept 16-aligned. *)
+
+let stack_size_lbl = ref 0
+let stack_slot_lbl = ref 0
+let stack_args_size = ref 0
+let stack_traps_size = ref 0
+
+(* We have a stack frame of our own if we call other functions (including
+ use of exceptions, or if we need more than the red zone *)
+let has_stack_frame () =
+ if !contains_calls or (num_stack_slots.(0) + num_stack_slots.(1)) > (288-16)/8 then
+ true
+ else
+ false
+
+let frame_size_sans_args () =
+ let size = 8 * num_stack_slots.(0) + 8 * num_stack_slots.(1) + 48 in
+ Misc.align size 16
+
+let slot_offset loc cls =
+ match loc with
+ Local n ->
+ if cls = 0
+ then (!stack_slot_lbl, num_stack_slots.(1) * 8 + n * 8)
+ else (!stack_slot_lbl, n * 8)
+ | Incoming n -> ((if has_stack_frame() then !stack_size_lbl else 0), 48 + n)
+ | Outgoing n -> (0, n)
+
+(* Output a symbol *)
+
+let emit_symbol =
+ match Config.system with
+ | "elf" | "bsd" -> (fun s -> Emitaux.emit_symbol '.' s)
+ | "rhapsody" -> (fun s -> emit_char '_'; Emitaux.emit_symbol '$' s)
+ | _ -> assert false
+
+(* Output a label *)
+
+let label_prefix =
+ match Config.system with
+ | "elf" | "bsd" -> ".L"
+ | "rhapsody" -> "L"
+ | _ -> assert false
+
+let emit_label lbl =
+ emit_string label_prefix; emit_int lbl
+
+(* Section switching *)
+
+let toc_space =
+ match Config.system with
+ | "elf" | "bsd" -> " .section \".toc\",\"aw\"\n"
+ | "rhapsody" -> " .toc\n"
+ | _ -> assert false
+
+let data_space =
+ match Config.system with
+ | "elf" | "bsd" -> " .section \".data\"\n"
+ | "rhapsody" -> " .data\n"
+ | _ -> assert false
+
+let code_space =
+ match Config.system with
+ | "elf" | "bsd" -> " .section \".text\"\n"
+ | "rhapsody" -> " .text\n"
+ | _ -> assert false
+
+let rodata_space =
+ match Config.system with
+ | "elf" | "bsd" -> " .section \".rodata\"\n"
+ | "rhapsody" -> " .const\n"
+ | _ -> assert false
+
+(* Output a pseudo-register *)
+
+let emit_reg r =
+ match r.loc with
+ Reg r -> emit_string (register_name r)
+ | _ -> fatal_error "Emit.emit_reg"
[...1684 lines suppressed...]
+ std 2, 24(29)
+ Loadglobal(11, caml_exception_pointer, 11)
+ std 11, 0(29)
+ /* Reload allocation pointers */
+ Loadglobal(31, caml_young_ptr, 11)
+ Loadglobal(30, caml_young_limit, 11)
+ /* Say we are back into Caml code */
+ li 0, 0
+ Storeglobal(0, caml_last_return_address, 11)
+ /* Call the Caml code */
+ std 2,40(1)
+ ld 2,8(12)
+ ld 12,0(12)
+ mtlr 12
+.L105:
+ blrl
+ ld 2,40(1)
+ /* Pop the trap frame, restoring caml_exception_pointer */
+ ld 9, 0x170(1)
+ Storeglobal(9, caml_exception_pointer, 11)
+ /* Pop the callback link, restoring the global variables */
+.L106:
+ ld 9, 0x150(1)
+ ld 10, 0x158(1)
+ ld 11, 0x160(1)
+ Storeglobal(9, caml_bottom_of_stack, 12)
+ Storeglobal(10, caml_last_return_address, 12)
+ Storeglobal(11, caml_gc_regs, 12)
+ /* Update allocation pointer */
+ Storeglobal(31, caml_young_ptr, 11)
+ /* Restore callee-save registers */
+ addi 11, 1, 48-8
+ ldu 14, 8(11)
+ ldu 15, 8(11)
+ ldu 16, 8(11)
+ ldu 17, 8(11)
+ ldu 18, 8(11)
+ ldu 19, 8(11)
+ ldu 20, 8(11)
+ ldu 21, 8(11)
+ ldu 22, 8(11)
+ ldu 23, 8(11)
+ ldu 24, 8(11)
+ ldu 25, 8(11)
+ ldu 26, 8(11)
+ ldu 27, 8(11)
+ ldu 28, 8(11)
+ ldu 29, 8(11)
+ ldu 30, 8(11)
+ ldu 31, 8(11)
+ lfdu 14, 8(11)
+ lfdu 15, 8(11)
+ lfdu 16, 8(11)
+ lfdu 17, 8(11)
+ lfdu 18, 8(11)
+ lfdu 19, 8(11)
+ lfdu 20, 8(11)
+ lfdu 21, 8(11)
+ lfdu 22, 8(11)
+ lfdu 23, 8(11)
+ lfdu 24, 8(11)
+ lfdu 25, 8(11)
+ lfdu 26, 8(11)
+ lfdu 27, 8(11)
+ lfdu 28, 8(11)
+ lfdu 29, 8(11)
+ lfdu 30, 8(11)
+ lfdu 31, 8(11)
+ /* Return */
+ ld 1,0(1)
+ /* Reload return address */
+ ld 0, 16(1)
+ mtlr 0
+ blr
+
+ /* The trap handler: */
+.L104:
+ /* Update caml_exception_pointer */
+ Storeglobal(29, caml_exception_pointer, 11)
+ /* Encode exception bucket as an exception result and return it */
+ ori 3, 3, 2
+ b .L106
+ .size .L.caml_start_program,.-.L.caml_start_program
+
+/* Callback from C to Caml */
+
+ .globl caml_callback_exn
+ .type caml_callback_exn, @function
+ .section ".opd","aw"
+ .align 3
+caml_callback_exn:
+ .quad .L.caml_callback_exn,.TOC. at tocbase
+ .previous
+ .align 2
+.L.caml_callback_exn:
+ /* Initial shuffling of arguments */
+ mr 0, 3 /* Closure */
+ mr 3, 4 /* Argument */
+ mr 4, 0
+ ld 12, 0(4) /* Code pointer */
+ b .L102
+ .size .L.caml_callback_exn,.-.L.caml_callback_exn
+
+
+ .globl caml_callback2_exn
+ .type caml_callback2_exn, @function
+ .section ".opd","aw"
+ .align 3
+caml_callback2_exn:
+ .quad .L.caml_callback2_exn,.TOC. at tocbase
+ .previous
+ .align 2
+.L.caml_callback2_exn:
+ mr 0, 3 /* Closure */
+ mr 3, 4 /* First argument */
+ mr 4, 5 /* Second argument */
+ mr 5, 0
+ Addrglobal(12, caml_apply2)
+ b .L102
+ .size .L.caml_callback2_exn,.-.L.caml_callback2_exn
+
+
+ .globl caml_callback3_exn
+ .type caml_callback3_exn, @function
+ .section ".opd","aw"
+ .align 3
+caml_callback3_exn:
+ .quad .L.caml_callback3_exn,.TOC. at tocbase
+ .previous
+ .align 2
+.L.caml_callback3_exn:
+ mr 0, 3 /* Closure */
+ mr 3, 4 /* First argument */
+ mr 4, 5 /* Second argument */
+ mr 5, 6 /* Third argument */
+ mr 6, 0
+ Addrglobal(12, caml_apply3)
+ b .L102
+ .size .L.caml_callback3_exn,.-.L.caml_callback3_exn
+
+/* Frame table */
+
+ .section ".data"
+ .globl caml_system__frametable
+ .type caml_system__frametable, @object
+caml_system__frametable:
+ .quad 1 /* one descriptor */
+ .quad .L105 + 4 /* return address into callback */
+ .short -1 /* negative size count => use callback link */
+ .short 0 /* no roots here */
+ .align 3
+
diff -uNr ocaml-3.10.1/asmrun/stack.h ocaml-3.10.1.ppc64/asmrun/stack.h
--- ocaml-3.10.1/asmrun/stack.h 2007-02-15 13:35:20.000000000 -0500
+++ ocaml-3.10.1.ppc64/asmrun/stack.h 2008-02-29 08:37:45.000000000 -0500
@@ -65,6 +65,15 @@
#define Callback_link(sp) ((struct caml_context *)((sp) + Trap_frame_size))
#endif
+#ifdef TARGET_power64
+#define Saved_return_address(sp) *((intnat *)((sp) +16))
+#define Already_scanned(sp, retaddr) ((retaddr) & 1)
+#define Mark_scanned(sp, retaddr) (Saved_return_address(sp) = (retaddr) | 1)
+#define Mask_already_scanned(retaddr) ((retaddr) & ~1)
+#define Trap_frame_size 0x150
+#define Callback_link(sp) ((struct caml_context *)((sp) + Trap_frame_size))
+#endif
+
#ifdef TARGET_m68k
#define Saved_return_address(sp) *((intnat *)((sp) - 4))
#define Callback_link(sp) ((struct caml_context *)((sp) + 8))
diff -uNr ocaml-3.11.0+beta1/configure ocaml-3.11.0+beta1.ppc64/configure
--- ocaml-3.11.0+beta1/configure.ppc64 2008-11-18 15:46:57.000000000 +0000
+++ ocaml-3.11.0+beta1/configure 2008-11-18 15:49:19.000000000 +0000
@@ -632,6 +632,7 @@
hppa2.0*-*-hpux*) arch=hppa; system=hpux;;
hppa*-*-linux*) arch=hppa; system=linux;;
hppa*-*-gnu*) arch=hppa; system=gnu;;
+ powerpc64-*-linux*) arch=power64; model=ppc64; system=elf;;
powerpc*-*-linux*) arch=power; model=ppc; system=elf;;
powerpc-*-netbsd*) arch=power; model=ppc; system=elf;;
powerpc-*-rhapsody*) arch=power; model=ppc; system=rhapsody;;
@@ -655,7 +656,7 @@
if $arch64; then
case "$arch,$model" in
- sparc,default|mips,default|hppa,default|power,ppc)
+ sparc,default|mips,default|hppa,default)
arch=none; model=default; system=unknown;;
esac
fi
@@ -712,6 +713,8 @@
aspp='as -n32 -O2';;
power,*,elf) as='as -u -m ppc'
aspp='gcc -c';;
+ power64,*,elf) as='as -u -m ppc64'
+ aspp='gcc -c';;
power,*,bsd) as='as'
aspp='gcc -c';;
power,*,rhapsody) as="as -arch $model"
ocaml-3.11.0-rpath.patch:
--- NEW FILE ocaml-3.11.0-rpath.patch ---
--- ocaml-3.11.0+beta1.orig/tools/Makefile.shared 2007-11-22 22:14:43.000000000 +0000
+++ ocaml-3.11.0+beta1/tools/Makefile.shared 2008-11-18 15:42:44.000000000 +0000
@@ -107,9 +107,6 @@
sed -e "s|%%BINDIR%%|$(BINDIR)|" \
-e "s|%%SUPPORTS_SHARED_LIBRARIES%%|$(SUPPORTS_SHARED_LIBRARIES)|" \
-e "s|%%MKSHAREDLIB%%|$(MKSHAREDLIB)|" \
- -e "s|%%BYTECCRPATH%%|$(BYTECCRPATH)|" \
- -e "s|%%NATIVECCRPATH%%|$(NATIVECCRPATH)|" \
- -e "s|%%MKSHAREDLIBRPATH%%|$(MKSHAREDLIBRPATH)|" \
-e "s|%%RANLIB%%|$(RANLIB)|" \
ocamlmklib.mlp >> ocamlmklib.ml
Index: .cvsignore
===================================================================
RCS file: /cvs/pkgs/rpms/ocaml/devel/.cvsignore,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- .cvsignore 23 Apr 2008 08:45:19 -0000 1.10
+++ .cvsignore 20 Nov 2008 15:30:55 -0000 1.11
@@ -1,4 +1,4 @@
-ocaml-3.10-refman.html.tar.gz
-ocaml-3.10-refman.info.tar.gz
-ocaml-3.10-refman.pdf
-ocaml-3.10.2.tar.bz2
+ocaml-3.11.0+beta1.tar.bz2
+ocaml-3.11-refman.html.tar.gz
+ocaml-3.11-refman.info.tar.gz
+ocaml-3.11-refman.pdf
Index: ocaml-find-requires.sh
===================================================================
RCS file: /cvs/pkgs/rpms/ocaml/devel/ocaml-find-requires.sh,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- ocaml-find-requires.sh 6 Sep 2007 11:49:59 -0000 1.3
+++ ocaml-find-requires.sh 20 Nov 2008 15:30:55 -0000 1.4
@@ -63,6 +63,7 @@
echo "ocaml($module) = $md5sum"
done |
grep -Ev "$ignore_modules_re" |
+grep -Ev "^ocaml\((Annot|Asttypes|Outcometree|Cmo_format|Parsetree)\) =" |
sort -u
if [ -n "$emit_compiler_version" ]; then
Index: ocaml.spec
===================================================================
RCS file: /cvs/pkgs/rpms/ocaml/devel/ocaml.spec,v
retrieving revision 1.43
retrieving revision 1.44
diff -u -r1.43 -r1.44
--- ocaml.spec 28 Aug 2008 16:45:14 -0000 1.43
+++ ocaml.spec 20 Nov 2008 15:30:55 -0000 1.44
@@ -1,27 +1,39 @@
%define _default_patch_fuzz 2
Name: ocaml
-Version: 3.10.2
-Release: 5%{?dist}
+Version: 3.11.0+beta1
+Release: 1%{?dist}
Summary: Objective Caml compiler and programming environment
Group: Development/Languages
License: QPL and (LGPLv2+ with exceptions)
+
URL: http://www.ocaml.org
-Source0: http://caml.inria.fr/distrib/ocaml-3.10/ocaml-%{version}.tar.bz2
-Source1: http://caml.inria.fr/distrib/ocaml-3.10/ocaml-3.10-refman.html.tar.gz
-Source2: http://caml.inria.fr/distrib/ocaml-3.10/ocaml-3.10-refman.pdf
-Source3: http://caml.inria.fr/distrib/ocaml-3.10/ocaml-3.10-refman.info.tar.gz
+
+Source0: http://caml.inria.fr/distrib/ocaml-3.11/ocaml-%{version}.tar.bz2
+Source1: http://caml.inria.fr/distrib/ocaml-3.11/ocaml-3.11-refman.html.tar.gz
+Source2: http://caml.inria.fr/distrib/ocaml-3.11/ocaml-3.11-refman.pdf
+Source3: http://caml.inria.fr/distrib/ocaml-3.11/ocaml-3.11-refman.info.tar.gz
Source4: ocaml-find-requires.sh
Source5: ocaml-find-provides.sh
-Patch0: ocaml-rpath.patch
+
+Patch0: ocaml-3.11.0-rpath.patch
Patch1: ocaml-user-cflags.patch
-Patch2: ocaml-3.10.0-tclver.patch
-Patch3: ocaml-3.10.1-ppc64.patch
-Patch4: ocaml-3.10.1-map32bit.patch
-Patch5: ocaml-3.11-dev12-no-executable-stack.patch
+
+# Not needed, this is upstream since 3.11.0:
+#Patch2: ocaml-3.10.0-tclver.patch
+
+# Support for PPC64 platform by David Woodhouse:
+Patch3: ocaml-3.11.0-ppc64.patch
+
+# Not needed because the GC allocator was completely rewritten:
+#Patch4: ocaml-3.10.1-map32bit.patch
+# A similar fix went upstream in 3.11.0:
+#Patch5: ocaml-3.11-dev12-no-executable-stack.patch
+
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+
BuildRequires: ncurses-devel
BuildRequires: gdbm-devel
BuildRequires: tcl-devel
@@ -49,9 +61,10 @@
ExclusiveArch: alpha armv4l %{ix86} ia64 x86_64 ppc sparc ppc64
%define _use_internal_dependency_generator 0
-%define __find_requires %{SOURCE4} -i Asttypes -i Outcometree -i Cmo_format -i Parsetree -c -f %{buildroot}%{_bindir}/ocamlobjinfo
+%define __find_requires %{SOURCE4} -c -f %{buildroot}%{_bindir}/ocamlobjinfo
%define __find_provides %{SOURCE5} -f %{buildroot}%{_bindir}/ocamlobjinfo
+
%description
Objective Caml is a high-level, strongly-typed, functional and
object-oriented programming language from the ML family of languages.
@@ -189,10 +202,10 @@
%setup -q -T -D -a 3
%patch0 -p1 -b .rpath
%patch1 -p1 -b .cflags
-%patch2 -p1 -b .tclver
+#%patch2 -p1 -b .tclver
%patch3 -p1 -b .ppc64
-%patch4 -p1 -b .map32bit
-%patch5 -p0 -b .noexecstack
+#%patch4 -p1 -b .map32bit
+#%patch5 -p0 -b .noexecstack
cp %{SOURCE2} refman.pdf
@@ -295,10 +308,12 @@
%{_libdir}/ocaml/ld.conf
%{_libdir}/ocaml/Makefile.config
%{_libdir}/ocaml/*.a
+%{_libdir}/ocaml/*.cmxs
%{_libdir}/ocaml/*.cmxa
%{_libdir}/ocaml/*.cmx
%{_libdir}/ocaml/*.mli
%{_libdir}/ocaml/*.o
+%{_libdir}/ocaml/libcamlrun_shared.so
%{_libdir}/ocaml/vmthreads/*.mli
%{_libdir}/ocaml/vmthreads/*.a
%{_libdir}/ocaml/threads/*.a
@@ -431,6 +446,9 @@
%changelog
+* Tue Nov 18 2008 Richard W.M. Jones <rjones at redhat.com> - 3.11.0+beta1-1
+- Rebuild for major new upstream release of 3.11.0 for Fedora 11.
+
* Thu Aug 29 2008 Richard W.M. Jones <rjones at redhat.com> - 3.10.2-5
- Rebuild with patch fuzz.
Index: sources
===================================================================
RCS file: /cvs/pkgs/rpms/ocaml/devel/sources,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- sources 23 Apr 2008 08:45:19 -0000 1.12
+++ sources 20 Nov 2008 15:30:55 -0000 1.13
@@ -1,4 +1,4 @@
-663b31c8ea364a531aa325a5b06a2763 ocaml-3.10-refman.html.tar.gz
-f80b52b8bc4b10ed557808fc899acf3a ocaml-3.10-refman.info.tar.gz
-c3e00bc2c4aad3f538b4bcefade98908 ocaml-3.10-refman.pdf
-d86f8f8aa4574fa60dd6f89044580307 ocaml-3.10.2.tar.bz2
+77cc67933e451354b6d1ef0ace4f5dc5 ocaml-3.11.0+beta1.tar.bz2
+7e20778259f87ab5e7cb60d2a17c657c ocaml-3.11-refman.html.tar.gz
+3fcfedf63a852f502a10eac547c9042d ocaml-3.11-refman.info.tar.gz
+076a163e511e575fc384ad96394760a2 ocaml-3.11-refman.pdf
--- ocaml-3.10.0-tclver.patch DELETED ---
--- ocaml-3.10.1-map32bit.patch DELETED ---
--- ocaml-3.10.1-ppc64.patch DELETED ---
--- ocaml-3.11-dev12-no-executable-stack.patch DELETED ---
More information about the fedora-extras-commits
mailing list