summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Heim <phreak@gentoo.org>2007-04-21 20:07:20 +0000
committerChristian Heim <phreak@gentoo.org>2007-04-21 20:07:20 +0000
commitbfe39a83e9e386c1eb67798d45f829b6a6a4d20e (patch)
treee93447169ea9e9f0e900f38f4e54d9e9c32cade3
parentAdding -fstack-protector back in, since this ain't workin. Also adding the as... (diff)
downloadphreak-bfe39a83e9e386c1eb67798d45f829b6a6a4d20e.tar.gz
phreak-bfe39a83e9e386c1eb67798d45f829b6a6a4d20e.tar.bz2
phreak-bfe39a83e9e386c1eb67798d45f829b6a6a4d20e.zip
Updated ebuild for bug 110541.
svn path=/; revision=312
-rw-r--r--hardened/dev-lang/ocaml/Manifest30
-rw-r--r--hardened/dev-lang/ocaml/files/digest-ocaml-3.09.3-r1 (renamed from hardened/dev-lang/ocaml/files/digest-ocaml-3.09.3)0
-rw-r--r--hardened/dev-lang/ocaml/files/ocaml-3.09.3-Makefile.patch40
-rw-r--r--hardened/dev-lang/ocaml/files/ocaml-3.09.3-asm-fixes.patch281
-rw-r--r--hardened/dev-lang/ocaml/files/ocaml-3.09.3-configure.patch120
-rw-r--r--hardened/dev-lang/ocaml/files/ocaml-3.09.3-execheap.patch13
-rw-r--r--hardened/dev-lang/ocaml/ocaml-3.09.3-r1.ebuild (renamed from hardened/dev-lang/ocaml/ocaml-3.09.3.ebuild)57
7 files changed, 225 insertions, 316 deletions
diff --git a/hardened/dev-lang/ocaml/Manifest b/hardened/dev-lang/ocaml/Manifest
index b8fb286..2a22890 100644
--- a/hardened/dev-lang/ocaml/Manifest
+++ b/hardened/dev-lang/ocaml/Manifest
@@ -1,16 +1,24 @@
-AUX ocaml-3.09.3-asm-fixes.patch 8941 RMD160 a0c9d70a3bcb925fbc63e357751659552517459b SHA1 bcdd9334e16c8ab3ddd785b4c8deac8d5de03f88 SHA256 ce6a563cd2f56148f576293b58220faca2e5fa79fe117a14aac42336a6099438
-MD5 1ced405879a193bbc20b72f13dafdae0 files/ocaml-3.09.3-asm-fixes.patch 8941
-RMD160 a0c9d70a3bcb925fbc63e357751659552517459b files/ocaml-3.09.3-asm-fixes.patch 8941
-SHA256 ce6a563cd2f56148f576293b58220faca2e5fa79fe117a14aac42336a6099438 files/ocaml-3.09.3-asm-fixes.patch 8941
+AUX ocaml-3.09.3-Makefile.patch 1489 RMD160 2405669fdfe7ac35191c59d51c36dcea4f43e2c0 SHA1 16d5cfa7e12d542928d90c144125fbc3deb049f7 SHA256 da690e61fd4f72e28ed4f41a0b7c18a26a11f9ad42d4d8aa95301c02317336b9
+MD5 0d21d3b76fc3a724bd2b8d2e8d3a603f files/ocaml-3.09.3-Makefile.patch 1489
+RMD160 2405669fdfe7ac35191c59d51c36dcea4f43e2c0 files/ocaml-3.09.3-Makefile.patch 1489
+SHA256 da690e61fd4f72e28ed4f41a0b7c18a26a11f9ad42d4d8aa95301c02317336b9 files/ocaml-3.09.3-Makefile.patch 1489
+AUX ocaml-3.09.3-configure.patch 5187 RMD160 3f26cdc62c3d73a1ef9e3781ada48d34799aeed7 SHA1 db6710567d86a4ea42417861af7687f5cc5e84d8 SHA256 3d0b4aac47b2aec50a21769d9fc6946202a8e8c672a691957042062bfec4a0dc
+MD5 fd043de6497ac8bdc6c0e630db55a7ca files/ocaml-3.09.3-configure.patch 5187
+RMD160 3f26cdc62c3d73a1ef9e3781ada48d34799aeed7 files/ocaml-3.09.3-configure.patch 5187
+SHA256 3d0b4aac47b2aec50a21769d9fc6946202a8e8c672a691957042062bfec4a0dc files/ocaml-3.09.3-configure.patch 5187
+AUX ocaml-3.09.3-execheap.patch 423 RMD160 28bc7612b0fc334f2cfb70775766a12f4e82b196 SHA1 9b3d917c2d489e17368b40e4009a27a540e48fde SHA256 36381a2a9cca239942cde3278f83b8cda6ee9fb1c6b31cb83cd4ffba0d8f0406
+MD5 347917347ea61c71c5a2f006b0b8e1bf files/ocaml-3.09.3-execheap.patch 423
+RMD160 28bc7612b0fc334f2cfb70775766a12f4e82b196 files/ocaml-3.09.3-execheap.patch 423
+SHA256 36381a2a9cca239942cde3278f83b8cda6ee9fb1c6b31cb83cd4ffba0d8f0406 files/ocaml-3.09.3-execheap.patch 423
AUX ocaml-rebuild.sh 1361 RMD160 a9c452fbea18de3b38d8240f887f8595e529643e SHA1 2a682ce872c51e66a5ab13160da16b0f6d8bd366 SHA256 a8004cd4bca96ab3fc595fcfd7dbe88903833f9e430149c3d04c9fda84362b64
MD5 bcc5109143faee7e7b8f7f76bd4726a7 files/ocaml-rebuild.sh 1361
RMD160 a9c452fbea18de3b38d8240f887f8595e529643e files/ocaml-rebuild.sh 1361
SHA256 a8004cd4bca96ab3fc595fcfd7dbe88903833f9e430149c3d04c9fda84362b64 files/ocaml-rebuild.sh 1361
DIST ocaml-3.09.3.tar.bz2 2038617 RMD160 fdc124218c556c62c897ee6720970279e2d5426b SHA1 5d63c6e0d13463f85c0d5147d641d2bceef87d6b SHA256 607842b4f4917a759f19541a421370a834f5b948855ca54cef40d22b19a0934f
-EBUILD ocaml-3.09.3.ebuild 2689 RMD160 e47dbdabc8feb9a46fd0e195f45e7de474f3778b SHA1 4392cf89c5e4957a4c7abf373e44c28e6094bf77 SHA256 8b257b0e7063116208f4258fc663e720c0ee4c94e44a9409e513ac7ef63f3744
-MD5 d8b6f81e57919bba76f1701f25c4e071 ocaml-3.09.3.ebuild 2689
-RMD160 e47dbdabc8feb9a46fd0e195f45e7de474f3778b ocaml-3.09.3.ebuild 2689
-SHA256 8b257b0e7063116208f4258fc663e720c0ee4c94e44a9409e513ac7ef63f3744 ocaml-3.09.3.ebuild 2689
-MD5 71f3dc5bc2ee57a403689b56bc1a85c1 files/digest-ocaml-3.09.3 244
-RMD160 e7f0898889b94faae3b1481555bac42e9298b370 files/digest-ocaml-3.09.3 244
-SHA256 19708f759185ed39623e03921462ba20fb6f3533268673d2bcd7dd07cef57350 files/digest-ocaml-3.09.3 244
+EBUILD ocaml-3.09.3-r1.ebuild 3206 RMD160 ba06c87bedb46450bd648d279a5608add2020d8a SHA1 66387047f2ff9cef3acee696a6ee36242b699ff6 SHA256 e4ba68f909ae78946a09431b188833e266586579f2c5b8741d88521bbed50094
+MD5 5c2b4509b061e757232dea21e2dd9553 ocaml-3.09.3-r1.ebuild 3206
+RMD160 ba06c87bedb46450bd648d279a5608add2020d8a ocaml-3.09.3-r1.ebuild 3206
+SHA256 e4ba68f909ae78946a09431b188833e266586579f2c5b8741d88521bbed50094 ocaml-3.09.3-r1.ebuild 3206
+MD5 71f3dc5bc2ee57a403689b56bc1a85c1 files/digest-ocaml-3.09.3-r1 244
+RMD160 e7f0898889b94faae3b1481555bac42e9298b370 files/digest-ocaml-3.09.3-r1 244
+SHA256 19708f759185ed39623e03921462ba20fb6f3533268673d2bcd7dd07cef57350 files/digest-ocaml-3.09.3-r1 244
diff --git a/hardened/dev-lang/ocaml/files/digest-ocaml-3.09.3 b/hardened/dev-lang/ocaml/files/digest-ocaml-3.09.3-r1
index 231a74a..231a74a 100644
--- a/hardened/dev-lang/ocaml/files/digest-ocaml-3.09.3
+++ b/hardened/dev-lang/ocaml/files/digest-ocaml-3.09.3-r1
diff --git a/hardened/dev-lang/ocaml/files/ocaml-3.09.3-Makefile.patch b/hardened/dev-lang/ocaml/files/ocaml-3.09.3-Makefile.patch
new file mode 100644
index 0000000..c2ea2d4
--- /dev/null
+++ b/hardened/dev-lang/ocaml/files/ocaml-3.09.3-Makefile.patch
@@ -0,0 +1,40 @@
+Index: ocaml-3.09.3/Makefile
+===================================================================
+--- ocaml-3.09.3.orig/Makefile
++++ ocaml-3.09.3/Makefile
+@@ -282,7 +282,7 @@ clean:: partialclean
+
+ ocamlc: $(COMPOBJS)
+ $(CAMLC) $(LINKFLAGS) -o ocamlc $(COMPOBJS)
+- @sed -e 's|@compiler@|$$topdir/boot/ocamlrun $$topdir/ocamlc|' \
++ @sed -e 's|@compiler@|$$topdir/boot/ocamlrun $$topdir/ocamlc|g' \
+ driver/ocamlcomp.sh.in > ocamlcomp.sh
+ @chmod +x ocamlcomp.sh
+
+@@ -293,7 +293,7 @@ partialclean::
+
+ ocamlopt: $(OPTOBJS)
+ $(CAMLC) $(LINKFLAGS) -o ocamlopt $(OPTOBJS)
+- @sed -e 's|@compiler@|$$topdir/boot/ocamlrun $$topdir/ocamlopt|' \
++ @sed -e 's|@compiler@|$$topdir/boot/ocamlrun $$topdir/ocamlopt|g' \
+ driver/ocamlcomp.sh.in > ocamlcompopt.sh
+ @chmod +x ocamlcompopt.sh
+
+@@ -383,7 +383,7 @@ ocamlc.opt: $(COMPOBJS:.cmo=.cmx)
+ $(CAMLOPT) $(LINKFLAGS) -ccopt "$(BYTECCLINKOPTS)" -o ocamlc.opt \
+ $(COMPOBJS:.cmo=.cmx) \
+ asmrun/meta.o asmrun/dynlink.o -cclib "$(BYTECCLIBS)"
+- @sed -e 's|@compiler@|$$topdir/ocamlc.opt|' \
++ @sed -e 's|@compiler@|$$topdir/ocamlc.opt|g' \
+ driver/ocamlcomp.sh.in > ocamlcomp.sh
+ @chmod +x ocamlcomp.sh
+
+@@ -394,7 +394,7 @@ partialclean::
+
+ ocamlopt.opt: $(OPTOBJS:.cmo=.cmx)
+ $(CAMLOPT) $(LINKFLAGS) -o ocamlopt.opt $(OPTOBJS:.cmo=.cmx)
+- @sed -e 's|@compiler@|$$topdir/ocamlopt.opt|' \
++ @sed -e 's|@compiler@|$$topdir/ocamlopt.opt|g' \
+ driver/ocamlcomp.sh.in > ocamlcompopt.sh
+ @chmod +x ocamlcompopt.sh
+
diff --git a/hardened/dev-lang/ocaml/files/ocaml-3.09.3-asm-fixes.patch b/hardened/dev-lang/ocaml/files/ocaml-3.09.3-asm-fixes.patch
deleted file mode 100644
index 3d46d4a..0000000
--- a/hardened/dev-lang/ocaml/files/ocaml-3.09.3-asm-fixes.patch
+++ /dev/null
@@ -1,281 +0,0 @@
---- ocaml-3.09.3/asmrun/alpha.S.old 2006-11-02 18:53:12.000000000 +0100
-+++ ocaml-3.09.3/asmrun/alpha.S 2006-11-02 18:53:12.000000000 +0100
-@@ -438,3 +438,7 @@
- .word -1 /* negative frame size => use callback link */
- .word 0 /* no roots here */
- .align 3
-+#ifdef __ELF__
-+.section .note.GNU-stack,"",%progbits
-+#endif
-+
---- ocaml-3.09.3/asmrun/amd64.S.old 2006-11-02 18:53:12.000000000 +0100
-+++ ocaml-3.09.3/asmrun/amd64.S 2006-11-02 18:53:12.000000000 +0100
-@@ -334,3 +334,7 @@
- .align 16
- caml_absf_mask:
- .quad 0x7FFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF
-+#ifdef __ELF__
-+.section .note.GNU-stack,"",%progbits
-+#endif
-+
---- ocaml-3.09.3/asmrun/arm.S.old 2006-11-02 18:53:12.000000000 +0100
-+++ ocaml-3.09.3/asmrun/arm.S 2006-11-02 18:53:12.000000000 +0100
-@@ -337,3 +337,7 @@
- .short -1 /* negative frame size => use callback link */
- .short 0 /* no roots */
- .align 2
-+#ifdef __ELF__
-+.section .note.GNU-stack,"",%progbits
-+#endif
-+
---- ocaml-3.09.3/asmrun/hppa.S.old 2006-11-02 18:53:12.000000000 +0100
-+++ ocaml-3.09.3/asmrun/hppa.S 2006-11-02 18:53:12.000000000 +0100
-@@ -532,3 +532,7 @@
- .long L104 + 3 /* return address into callback */
- .short -1 /* negative frame size => use callback link */
- .short 0 /* no roots */
-+#ifdef __ELF__
-+.section .note.GNU-stack,"",%progbits
-+#endif
-+
---- ocaml-3.09.3/asmrun/i386.S.old 2006-11-02 18:53:12.000000000 +0100
-+++ ocaml-3.09.3/asmrun/i386.S 2006-11-02 18:53:12.000000000 +0100
-@@ -371,3 +371,7 @@
- #ifdef __ELF__
- .section .note.GNU-stack,"",%progbits
- #endif
-+#ifdef __ELF__
-+.section .note.GNU-stack,"",%progbits
-+#endif
-+
---- ocaml-3.09.3/asmrun/ia64.S.old 2006-11-02 18:53:12.000000000 +0100
-+++ ocaml-3.09.3/asmrun/ia64.S 2006-11-02 18:53:12.000000000 +0100
-@@ -528,3 +528,7 @@
-
- .common caml_saved_bsp#, 8, 8
- .common caml_saved_rnat#, 8, 8
-+#ifdef __ELF__
-+.section .note.GNU-stack,"",%progbits
-+#endif
-+
---- ocaml-3.09.3/asmrun/m68k.S.old 2006-11-02 18:53:12.000000000 +0100
-+++ ocaml-3.09.3/asmrun/m68k.S 2006-11-02 18:53:12.000000000 +0100
-@@ -242,3 +242,7 @@
- .long L107 | return address into callback
- .word -1 | negative frame size => use callback link
- .word 0 | no roots here
-+#ifdef __ELF__
-+.section .note.GNU-stack,"",%progbits
-+#endif
-+
---- ocaml-3.09.3/asmrun/power-elf.S.old 2006-11-02 18:53:12.000000000 +0100
-+++ ocaml-3.09.3/asmrun/power-elf.S 2006-11-02 18:53:12.000000000 +0100
-@@ -419,3 +419,7 @@
- .short -1 /* negative size count => use callback link */
- .short 0 /* no roots here */
-
-+#ifdef __ELF__
-+.section .note.GNU-stack,"",%progbits
-+#endif
-+
---- ocaml-3.09.3/asmrun/sparc.S.old 2006-11-02 18:53:12.000000000 +0100
-+++ ocaml-3.09.3/asmrun/sparc.S 2006-11-02 18:53:12.000000000 +0100
-@@ -405,3 +405,7 @@
- .type Caml_raise_exception, #function
- .type Caml_system__frametable, #object
- #endif
-+#ifdef __ELF__
-+.section .note.GNU-stack,"",%progbits
-+#endif
-+
-diff -ru ../ref/ocaml-3.09.3/asmcomp/alpha/emit.mlp ocaml-3.09.3/asmcomp/alpha/emit.mlp
---- ../ref/ocaml-3.09.3/asmcomp/alpha/emit.mlp 2006-03-29 16:49:19.000000000 +0200
-+++ ocaml-3.09.3/asmcomp/alpha/emit.mlp 2006-11-03 10:35:40.000000000 +0100
-@@ -811,6 +811,12 @@
- ` .data\n`;
- List.iter emit_item l
-
-+(* Mark stack as non executable *)
-+let nx_stack() =
-+ if Config.system = "linux" then
-+ ` .section .note.GNU-stack,\"\",%progbits\n`
-+
-+
- (* Beginning / end of an assembly file *)
-
- let begin_assembly() =
-@@ -843,6 +849,7 @@
- `{emit_symbol lbl_begin}:\n`
-
- let end_assembly () =
-+ nx_stack();
- let lbl_end = Compilenv.make_symbol (Some "code_end") in
- ` .text\n`;
- ` .globl {emit_symbol lbl_end}\n`;
-diff -ru ../ref/ocaml-3.09.3/asmcomp/amd64/emit.mlp ocaml-3.09.3/asmcomp/amd64/emit.mlp
---- ../ref/ocaml-3.09.3/asmcomp/amd64/emit.mlp 2006-03-29 16:49:19.000000000 +0200
-+++ ocaml-3.09.3/asmcomp/amd64/emit.mlp 2006-11-03 10:35:48.000000000 +0100
-@@ -658,6 +658,12 @@
- ` .data\n`;
- List.iter emit_item l
-
-+(* Mark stack as non executable *)
-+let nx_stack() =
-+ if Config.system = "linux" then
-+ ` .section .note.GNU-stack,\"\",%progbits\n`
-+
-+
- (* Beginning / end of an assembly file *)
-
- let begin_assembly() =
-@@ -671,6 +677,7 @@
- `{emit_symbol lbl_begin}:\n`
-
- let end_assembly() =
-+ nx_stack();
- let lbl_end = Compilenv.make_symbol (Some "code_end") in
- ` .text\n`;
- ` .globl {emit_symbol lbl_end}\n`;
-diff -ru ../ref/ocaml-3.09.3/asmcomp/arm/emit.mlp ocaml-3.09.3/asmcomp/arm/emit.mlp
---- ../ref/ocaml-3.09.3/asmcomp/arm/emit.mlp 2004-05-03 14:46:50.000000000 +0200
-+++ ocaml-3.09.3/asmcomp/arm/emit.mlp 2006-11-03 10:35:55.000000000 +0100
-@@ -642,6 +642,12 @@
- ` .data\n`;
- List.iter emit_item l
-
-+(* Mark stack as non executable *)
-+let nx_stack() =
-+ if Config.system = "linux" then
-+ ` .section .note.GNU-stack,\"\",%progbits\n`
-+
-+
- (* Beginning / end of an assembly file *)
-
- let begin_assembly() =
-@@ -661,6 +667,7 @@
- `{emit_symbol lbl_begin}:\n`
-
- let end_assembly () =
-+ nx_stack();
- let lbl_end = Compilenv.make_symbol (Some "code_end") in
- ` .text\n`;
- ` .global {emit_symbol lbl_end}\n`;
-diff -ru ../ref/ocaml-3.09.3/asmcomp/hppa/emit.mlp ocaml-3.09.3/asmcomp/hppa/emit.mlp
---- ../ref/ocaml-3.09.3/asmcomp/hppa/emit.mlp 2006-03-29 16:49:19.000000000 +0200
-+++ ocaml-3.09.3/asmcomp/hppa/emit.mlp 2006-11-03 10:36:03.000000000 +0100
-@@ -994,6 +994,12 @@
- ` .data\n`;
- List.iter emit_item l
-
-+(* Mark stack as non executable *)
-+let nx_stack() =
-+ if Config.system = "linux" then
-+ ` .section .note.GNU-stack,\"\",%progbits\n`
-+
-+
- (* Beginning / end of an assembly file *)
-
- let begin_assembly() =
-@@ -1022,6 +1028,7 @@
-
-
- let end_assembly() =
-+ nx_stack();
- ` .code\n`;
- let lbl_end = Compilenv.make_symbol (Some "code_end") in
- declare_global lbl_end;
-diff -ru ../ref/ocaml-3.09.3/asmcomp/i386/emit.mlp ocaml-3.09.3/asmcomp/i386/emit.mlp
---- ../ref/ocaml-3.09.3/asmcomp/i386/emit.mlp 2006-03-29 16:49:19.000000000 +0200
-+++ ocaml-3.09.3/asmcomp/i386/emit.mlp 2006-11-03 10:21:41.000000000 +0100
-@@ -914,6 +914,11 @@
- ` .data\n`;
- List.iter emit_item l
-
-+(* Mark stack as non executable *)
-+let nx_stack() =
-+ if Config.system = "linux_elf" then
-+ ` .section .note.GNU-stack,\"\",%progbits\n`
-+
- (* Beginning / end of an assembly file *)
-
- let begin_assembly() =
-@@ -927,6 +932,7 @@
- `{emit_symbol lbl_begin}:\n`
-
- let end_assembly() =
-+ nx_stack();
- let lbl_end = Compilenv.make_symbol (Some "code_end") in
- ` .text\n`;
- ` .globl {emit_symbol lbl_end}\n`;
-diff -ru ../ref/ocaml-3.09.3/asmcomp/ia64/emit.mlp ocaml-3.09.3/asmcomp/ia64/emit.mlp
---- ../ref/ocaml-3.09.3/asmcomp/ia64/emit.mlp 2004-07-13 14:18:53.000000000 +0200
-+++ ocaml-3.09.3/asmcomp/ia64/emit.mlp 2006-11-03 10:36:13.000000000 +0100
-@@ -1306,6 +1306,12 @@
- ` .align 8\n`;
- List.iter emit_item l
-
-+(* Mark stack as non executable *)
-+let nx_stack() =
-+ if Config.system = "linux" then
-+ ` .section .note.GNU-stack,\"\",%progbits\n`
-+
-+
- (* Beginning / end of an assembly file *)
-
- let begin_assembly() =
-@@ -1315,6 +1321,7 @@
- emit_define_symbol (Compilenv.make_symbol (Some "code_begin"))
-
- let end_assembly () =
-+ nx_stack();
- ` .data\n`;
- emit_define_symbol (Compilenv.make_symbol (Some "data_end"));
- ` .text\n`;
-diff -ru ../ref/ocaml-3.09.3/asmcomp/power/emit.mlp ocaml-3.09.3/asmcomp/power/emit.mlp
---- ../ref/ocaml-3.09.3/asmcomp/power/emit.mlp 2004-06-19 19:39:34.000000000 +0200
-+++ ocaml-3.09.3/asmcomp/power/emit.mlp 2006-11-03 10:36:29.000000000 +0100
-@@ -879,6 +879,12 @@
- emit_string data_space;
- List.iter emit_item l
-
-+(* Mark stack as non executable *)
-+let nx_stack() =
-+ if Config.system = "elf" then
-+ ` .section .note.GNU-stack,\"\",%progbits\n`
-+
-+
- (* Beginning / end of an assembly file *)
-
- let begin_assembly() =
-@@ -898,6 +904,7 @@
- `{emit_symbol lbl_begin}:\n`
-
- let end_assembly() =
-+ nx_stack();
- (* Emit the jump table *)
- if !num_jumptbl_entries > 0 then begin
- emit_string code_space;
-diff -ru ../ref/ocaml-3.09.3/asmcomp/sparc/emit.mlp ocaml-3.09.3/asmcomp/sparc/emit.mlp
---- ../ref/ocaml-3.09.3/asmcomp/sparc/emit.mlp 2006-03-29 16:49:19.000000000 +0200
-+++ ocaml-3.09.3/asmcomp/sparc/emit.mlp 2006-11-03 10:36:36.000000000 +0100
-@@ -741,6 +741,12 @@
- ` .data\n`;
- List.iter emit_item l
-
-+(* Mark stack as non executable *)
-+let nx_stack() =
-+ if Config.system = "linux" then
-+ ` .section .note.GNU-stack,\"\",%progbits\n`
-+
-+
- (* Beginning / end of an assembly file *)
-
- let begin_assembly() =
-@@ -754,6 +760,7 @@
- `{emit_symbol lbl_begin}:\n`
-
- let end_assembly() =
-+ nx_stack();
- ` .text\n`;
- let lbl_end = Compilenv.make_symbol (Some "code_end") in
- ` .global {emit_symbol lbl_end}\n`;
diff --git a/hardened/dev-lang/ocaml/files/ocaml-3.09.3-configure.patch b/hardened/dev-lang/ocaml/files/ocaml-3.09.3-configure.patch
new file mode 100644
index 0000000..c458f69
--- /dev/null
+++ b/hardened/dev-lang/ocaml/files/ocaml-3.09.3-configure.patch
@@ -0,0 +1,120 @@
+Index: ocaml-3.09.3/configure
+===================================================================
+--- ocaml-3.09.3.orig/configure
++++ ocaml-3.09.3/configure
+@@ -240,65 +240,65 @@ exe=""
+ case "$bytecc,$host" in
+ cc,*-*-nextstep*)
+ # GNU C extensions disabled, but __GNUC__ still defined!
+- bytecccompopts="-fno-defer-pop $gcc_warnings -U__GNUC__ -posix"
+- bytecclinkopts="-posix";;
++ bytecccompopts="$bytecccompopts -fno-defer-pop $gcc_warnings -U__GNUC__ -posix"
++ bytecclinkopts="$bytecclinkopts -posix";;
+ *,*-*-rhapsody*)
+ # Almost the same as NeXTStep
+- bytecccompopts="-fno-defer-pop $gcc_warnings -DSHRINKED_GNUC"
++ bytecccompopts="$bytecccompopts -fno-defer-pop $gcc_warnings -DSHRINKED_GNUC"
+ mathlib="";;
+ *,*-*-darwin*)
+ # Almost the same as rhapsody
+- bytecccompopts="-fno-defer-pop -no-cpp-precomp $gcc_warnings"
++ bytecccompopts="$bytecccompopts -fno-defer-pop -no-cpp-precomp $gcc_warnings"
+ mathlib="";;
+ *,*-*-beos*)
+- bytecccompopts="-fno-defer-pop $gcc_warnings"
++ bytecccompopts="$bytecccompopts -fno-defer-pop $gcc_warnings"
+ # No -lm library
+ mathlib="";;
+ gcc,alpha*-*-osf*)
+- bytecccompopts="-fno-defer-pop $gcc_warnings"
++ bytecccompopts="$bytecccompopts -fno-defer-pop $gcc_warnings"
+ if cc="$bytecc" sh ./hasgot -mieee; then
+ bytecccompopts="-mieee $bytecccompopts";
+ fi
+ # Put code and static data in lower 4GB
+- bytecclinkopts="-Wl,-T,12000000 -Wl,-D,14000000"
++ bytecclinkopts="$bytecclinkopts -Wl,-T,12000000 -Wl,-D,14000000"
+ # Tell gcc that we can use 32-bit code addresses for threaded code
+ echo "#define ARCH_CODE32" >> m.h;;
+ cc,alpha*-*-osf*)
+- bytecccompopts="-std1 -ieee";;
++ bytecccompopts="$bytecccompopts -std1 -ieee";;
+ gcc,alpha*-*-linux*)
+ if cc="$bytecc" sh ./hasgot -mieee; then
+ bytecccompopts="-mieee $bytecccompopts";
+ fi;;
+ cc,mips-*-irix6*)
+ # Add -n32 flag to ensure compatibility with native-code compiler
+- bytecccompopts="-n32"
++ bytecccompopts="$bytecccompopts -n32"
+ # Turn off warning "unused library"
+- bytecclinkopts="-n32 -Wl,-woff,84";;
++ bytecclinkopts="$bytecclinkopts -n32 -Wl,-woff,84";;
+ cc*,mips-*-irix6*)
+ # (For those who want to force "cc -64")
+ # Turn off warning "unused library"
+- bytecclinkopts="-Wl,-woff,84";;
++ bytecclinkopts="$bytecclinkopts -Wl,-woff,84";;
+ *,alpha*-*-unicos*)
+ # For the Cray T3E
+- bytecccompopts="-DUMK";;
++ bytecccompopts="$bytecccompopts -DUMK";;
+ gcc*,powerpc-*-aix*)
+ # Avoid name-space pollution by requiring Unix98-conformant includes
+- bytecccompopts="-fno-defer-pop $gcc_warnings -D_XOPEN_SOURCE=500";;
++ bytecccompopts="$bytecccompopts -fno-defer-pop $gcc_warnings -D_XOPEN_SOURCE=500";;
+ *,powerpc-*-aix*)
+- bytecccompopts="-D_XOPEN_SOURCE=500";;
++ bytecccompopts="$bytecccompopts -D_XOPEN_SOURCE=500";;
+ gcc*,*-*-cygwin*)
+- bytecccompopts="-fno-defer-pop $gcc_warnings -U_WIN32"
++ bytecccompopts="$bytecccompopts -fno-defer-pop $gcc_warnings -U_WIN32"
+ exe=".exe"
+ ostype="Cygwin";;
+ gcc*,x86_64-*-linux*)
+- bytecccompopts="-fno-defer-pop $gcc_warnings"
++ bytecccompopts="$bytecccompopts -fno-defer-pop $gcc_warnings"
+ # Tell gcc that we can use 32-bit code addresses for threaded code
+ # unless we are compiled for a shared library (-fPIC option)
+ echo "#ifndef __PIC__" >> m.h
+ echo "# define ARCH_CODE32" >> m.h
+ echo "#endif" >> m.h;;
+ gcc*)
+- bytecccompopts="-fno-defer-pop $gcc_warnings";;
++ bytecccompopts="$bytecccompopts -fno-defer-pop $gcc_warnings";;
+ esac
+
+ # Configure compiler to use in further tests
+@@ -609,22 +609,22 @@ else
+ nativecc="$ccoption"
+ fi
+
+-nativecccompopts=''
+-nativecclinkopts=''
++nativecccompopts=""
++nativecclinkopts=""
+ nativeccrpath="$byteccrpath"
+
+ case "$arch,$nativecc,$system,$host_type" in
+- alpha,cc*,digital,*) nativecccompopts=-std1;;
+- mips,cc*,irix,*) nativecccompopts=-n32
+- nativecclinkopts="-n32 -Wl,-woff,84";;
+- *,*,nextstep,*) nativecccompopts="$gcc_warnings -U__GNUC__ -posix"
+- nativecclinkopts="-posix";;
++ alpha,cc*,digital,*) nativecccompopts="$nativecccompopts -std1";;
++ mips,cc*,irix,*) nativecccompopts="$nativecccompopts -n32"
++ nativecclinkopts="$nativecclinkopts -n32 -Wl,-woff,84";;
++ *,*,nextstep,*) nativecccompopts="$nativecccompopts $gcc_warnings -U__GNUC__ -posix"
++ nativecclinkopts="$nativecclinkopts -posix";;
+ *,*,rhapsody,*darwin[1-5].*)
+- nativecccompopts="$gcc_warnings -DSHRINKED_GNUC";;
++ nativecccompopts="$nativecccompopts $gcc_warnings -DSHRINKED_GNUC";;
+ *,*,rhapsody,*)
+- nativecccompopts="$gcc_warnings -DDARWIN_VERSION_6 $dl_defs";;
++ nativecccompopts="$nativecccompopts $gcc_warnings -DDARWIN_VERSION_6 $dl_defs";;
+ *,gcc*,cygwin,*) nativecccompopts="$gcc_warnings -U_WIN32";;
+- *,gcc*,*,*) nativecccompopts="$gcc_warnings";;
++ *,gcc*,*,*) nativecccompopts="$nativecccompopts $gcc_warnings";;
+ esac
+
+ asflags=''
diff --git a/hardened/dev-lang/ocaml/files/ocaml-3.09.3-execheap.patch b/hardened/dev-lang/ocaml/files/ocaml-3.09.3-execheap.patch
new file mode 100644
index 0000000..a990d41
--- /dev/null
+++ b/hardened/dev-lang/ocaml/files/ocaml-3.09.3-execheap.patch
@@ -0,0 +1,13 @@
+--- ocaml-3.09.3.orig/driver/ocamlcomp.sh.in 2002-06-08 03:27:50.000000000 +0000
++++ ocaml-3.09.2/driver/ocamlcomp.sh.in 2007-04-21 17:27:24.000000000 +0000
+@@ -2,4 +2,10 @@
+
+ topdir=`dirname $0`
+
++# evil hack for evil build system.
++if [ -x /usr/bin/scanelf ]; then
++ [ "$(scanelf @compiler@ -BF%x#f)" != "--mxe-" ] && scanelf -qXx -z mxe @compiler@ > /dev/null
++fi
++
++
+ exec @compiler@ -nostdlib -I $topdir/stdlib "$@"
diff --git a/hardened/dev-lang/ocaml/ocaml-3.09.3.ebuild b/hardened/dev-lang/ocaml/ocaml-3.09.3-r1.ebuild
index de6bd64..f48756d 100644
--- a/hardened/dev-lang/ocaml/ocaml-3.09.3.ebuild
+++ b/hardened/dev-lang/ocaml/ocaml-3.09.3-r1.ebuild
@@ -2,7 +2,7 @@
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/dev-lang/ocaml/ocaml-3.09.3.ebuild,v 1.9 2007/04/15 20:17:05 corsair Exp $
-inherit flag-o-matic eutils multilib toolchain-funcs
+inherit flag-o-matic eutils multilib pax-utils
DESCRIPTION="fast modern type-inferring functional programming language descended from the ML (Meta Language) family"
HOMEPAGE="http://www.ocaml.org/"
@@ -17,24 +17,35 @@ IUSE="tk latex"
DEPEND="virtual/libc
tk? ( >=dev-lang/tk-3.3.3 )"
-pkg_setup() {
- ewarn
- ewarn "Building ocaml with unsafe CFLAGS can have unexpected results"
- ewarn "Please retry building with safer CFLAGS before reporting bugs"
- ewarn "Likewise, building with a hardened gcc is not possible."
- ewarn
-}
-
src_unpack() {
unpack ${A}
cd "${S}"
- epatch "${FILESDIR}"/${P}-asm-fixes.patch
+ # Quick and somewhat dirty fix for bug #110541
+ epatch "${FILESDIR}"/${P}-execheap.patch
+
+ # The configure script doesn't inherit previous defined variables,
+ # overwriting previous declarations of $nativecccompopts, $bytecccompopts,
+ # and $bytecclinkopts.
+ epatch "${FILESDIR}"/${P}-configure.patch
+
+ # The sed in the Makefile doesn't replace all occurences of @compiler@
+ # in driver/ocamlcomp.sh.in.
+ epatch "${FILESDIR}"/${P}-Makefile.patch
+
+ # Change the configure script to add the CFLAGS to bytecccompopts
+ sed -i -e "s,bytecccompopts=\"\",bytecccompopts=\"\${CFLAGS}\"," \
+ -e "s,bytecclinkopts=\"\",bytecclinkopts=\"\${LDFLAGS}\"," \
+ "${S}"/configure
}
src_compile() {
- gcc-specs-pie && append-flags -nopie
- filter-flags -pie -fstack-protector
+ ewarn
+ ewarn "Building ocaml with unsafe CFLAGS can have unexpected results."
+ ewarn "Please retry building with safer CFLAGS before reporting bugs!"
+ ewarn
+ epause 10
+
replace-flags "-O?" -O2
local myconf
@@ -43,18 +54,13 @@ src_compile() {
# Fix for kernel_arch != system_ach (bug #135641)
myconf="${myconf} -host ${CHOST}"
- # Fix for bug #46703
- export LC_ALL=C
-
+ # ocaml uses a home-brewn configure script, preventing it to use econf.
./configure -prefix /usr \
- -bindir /usr/bin \
- -libdir /usr/$(get_libdir)/ocaml \
- -mandir /usr/share/man \
+ --bindir /usr/bin \
+ --libdir /usr/$(get_libdir)/ocaml \
+ --mandir /usr/share/man \
--with-pthread ${myconf} || die
- sed -i -e "s/\(BYTECCCOMPOPTS=.*\)/\1 ${CFLAGS}/" config/Makefile
- sed -i -e "s/\(NATIVECCCOMPOPTS=.*\)/\1 ${CFLAGS}/" config/Makefile
-
make world || die
# Native code generation unsupported on some archs
@@ -74,14 +80,17 @@ src_install() {
MANDIR=${D}/usr/share/man \
install || die
+ # Pax-mark the ocaml compilers, since they are trying to rewrite the segment.
+ pax-mark -m "${D}"/usr/bin/*.opt
+
# compiler libs
- dodir /usr/lib/ocaml/compiler-libs
- insinto /usr/lib/ocaml/compiler-libs
+ dodir /usr/$(get_libdir)/ocaml/compiler-libs
+ insinto /usr/$(get_libdir)/ocaml/compiler-libs
doins {utils,typing,parsing}/*.{mli,cmi,cmo,cmx,o}
# headers
dodir /usr/include
- dosym /usr/lib/ocaml/caml /usr/include/
+ dosym /usr/$(get_libdir)/ocaml/caml /usr/include/
# silly, silly makefiles
dosed "s:${D}::g" /usr/$(get_libdir)/ocaml/ld.conf