[arch-commits] Commit in ocaml/trunk (PKGBUILD fix-ocaml-binutils-2.21.patch)

Jan de Groot jgc at archlinux.org
Mon May 9 09:44:39 UTC 2011


    Date: Monday, May 9, 2011 @ 05:44:39
  Author: jgc
Revision: 123206

upgpkg: ocaml 3.12.0-2
Fix build with recent binutils

Added:
  ocaml/trunk/fix-ocaml-binutils-2.21.patch
Modified:
  ocaml/trunk/PKGBUILD

-------------------------------+
 PKGBUILD                      |   24 ++++++++------
 fix-ocaml-binutils-2.21.patch |   66 ++++++++++++++++++++++++++++++++++++++++
 2 files changed, 80 insertions(+), 10 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2011-05-09 08:53:17 UTC (rev 123205)
+++ PKGBUILD	2011-05-09 09:44:39 UTC (rev 123206)
@@ -3,7 +3,7 @@
 
 pkgname=ocaml	
 pkgver=3.12.0
-pkgrel=1
+pkgrel=2
 pkgdesc="A functional language with OO extensions"
 arch=('i686' 'x86_64')
 license=('LGPL2' 'custom: QPL-1.0')
@@ -11,19 +11,23 @@
 depends=('gdbm')
 makedepends=('tk' 'ncurses>=5.6-7' 'libx11')
 optdepends=('ncurses: advanced ncurses features' 'tk: advanced tk features')
-source=(http://caml.inria.fr/distrib/ocaml-3.12/$pkgname-$pkgver.tar.gz)
+source=(http://caml.inria.fr/distrib/ocaml-3.12/${pkgname}-${pkgver}.tar.gz
+        fix-ocaml-binutils-2.21.patch)
 options=('!makeflags' '!emptydirs')
+md5sums=('3ba7cc65123c3579f14e7c726d3ee782'
+         '8c664a0a346424ea2ec6fc6f713170c6')
 
 build() {
-  cd $srcdir/$pkgname-$pkgver
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  patch -Np1 -i "${srcdir}/fix-ocaml-binutils-2.21.patch"
   ./configure -prefix /usr 
-  make world.opt || return 1
-  make PREFIX=$pkgdir/usr MANDIR=$pkgdir/usr/share/man install || return 1
+  make world.opt
+  make PREFIX="${pkgdir}/usr" MANDIR="${pkgdir}/usr/share/man" install
    
-# Save >10MB with this one, makepkg only strips debug symbols.
- find ${startdir}/pkg/usr/lib -type f -name '*.so.*' -exec strip --strip-unneeded {} \;
+  # Save >10MB with this one, makepkg only strips debug symbols.
+  #find ${startdir}/pkg/usr/lib -type f -name '*.so.*' -exec strip --strip-unneeded {} \;
 
-# install license
-install -D -m 644 $startdir/src/$pkgname-$pkgver/LICENSE $startdir/pkg/usr/share/licenses/ocaml/LICENSE
+  # install license
+  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+  install -m644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/"
 }
-md5sums=('3ba7cc65123c3579f14e7c726d3ee782')

Added: fix-ocaml-binutils-2.21.patch
===================================================================
--- fix-ocaml-binutils-2.21.patch	                        (rev 0)
+++ fix-ocaml-binutils-2.21.patch	2011-05-09 09:44:39 UTC (rev 123206)
@@ -0,0 +1,66 @@
+From: Stephane Glondu <steph at glondu.net>
+Date: Tue, 8 Mar 2011 21:17:40 +0100
+Subject: [PATCH] Fix ocamlopt w.r.t. binutils 2.21
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Bug: http://caml.inria.fr/mantis/view.php?id=5237
+Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=617404
+Authors: Eric Cooper, spiralvoice
+Reviewed-by: Stéphane Glondu <steph at glondu.net>
+---
+ asmcomp/amd64/emit.mlp |   13 +++++++------
+ asmcomp/i386/emit.mlp  |    6 +++---
+ 2 files changed, 10 insertions(+), 9 deletions(-)
+
+diff --git a/asmcomp/amd64/emit.mlp b/asmcomp/amd64/emit.mlp
+index 4a3f844..525c6e6 100644
+--- a/asmcomp/amd64/emit.mlp
++++ b/asmcomp/amd64/emit.mlp
+@@ -679,17 +679,18 @@ let fundecl fundecl =
+   emit_all true fundecl.fun_body;
+   List.iter emit_call_gc !call_gc_sites;
+   emit_call_bound_errors ();
++  begin match Config.system with
++    "linux" | "gnu" ->
++      `	.type	{emit_symbol fundecl.fun_name}, at function\n`;
++      `	.size	{emit_symbol fundecl.fun_name},.-{emit_symbol fundecl.fun_name}\n`
++    | _ -> ()
++  end;
+   if !float_constants <> [] then begin
+     if macosx
+     then `	.literal8\n`
+     else `	.section	.rodata.cst8,\"a\", at progbits\n`;
+     List.iter emit_float_constant !float_constants
+-  end;
+-  match Config.system with
+-    "linux" | "gnu" ->
+-      `	.type	{emit_symbol fundecl.fun_name}, at function\n`;
+-      `	.size	{emit_symbol fundecl.fun_name},.-{emit_symbol fundecl.fun_name}\n`
+-  | _ -> ()
++  end
+ 
+ (* Emission of data *)
+ 
+diff --git a/asmcomp/i386/emit.mlp b/asmcomp/i386/emit.mlp
+index 2992f29..0b1252c 100644
+--- a/asmcomp/i386/emit.mlp
++++ b/asmcomp/i386/emit.mlp
+@@ -905,12 +905,12 @@ let fundecl fundecl =
+   emit_all true fundecl.fun_body;
+   List.iter emit_call_gc !call_gc_sites;
+   emit_call_bound_errors ();
+-  List.iter emit_float_constant !float_constants;
+-  match Config.system with
++  begin match Config.system with
+     "linux_elf" | "bsd_elf" | "gnu" ->
+       `	.type	{emit_symbol fundecl.fun_name}, at function\n`;
+       `	.size	{emit_symbol fundecl.fun_name},.-{emit_symbol fundecl.fun_name}\n`
+-  | _ -> ()
++  | _ -> () end;
++  List.iter emit_float_constant !float_constants
+ 
+ 
+ (* Emission of data *)
+-- 




More information about the arch-commits mailing list