diff options
author | Christian Heim <phreak@gentoo.org> | 2007-04-21 20:07:20 +0000 |
---|---|---|
committer | Christian Heim <phreak@gentoo.org> | 2007-04-21 20:07:20 +0000 |
commit | bfe39a83e9e386c1eb67798d45f829b6a6a4d20e (patch) | |
tree | e93447169ea9e9f0e900f38f4e54d9e9c32cade3 | |
parent | Adding -fstack-protector back in, since this ain't workin. Also adding the as... (diff) | |
download | phreak-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/Manifest | 30 | ||||
-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.patch | 40 | ||||
-rw-r--r-- | hardened/dev-lang/ocaml/files/ocaml-3.09.3-asm-fixes.patch | 281 | ||||
-rw-r--r-- | hardened/dev-lang/ocaml/files/ocaml-3.09.3-configure.patch | 120 | ||||
-rw-r--r-- | hardened/dev-lang/ocaml/files/ocaml-3.09.3-execheap.patch | 13 | ||||
-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 |