Package: ocaml / 4.05.0-11

Metadata

Package Version Patches format
ocaml 4.05.0-11 3.0 (quilt)

Patch series

view the series file
Patch File delta Description
0001 Pass no relax to ld on alpha.patch | (download)

configure | 4 3 + 1 - 0 !
1 file changed, 3 insertions(+), 1 deletion(-)

 pass --no-relax to ld on alpha

Pass the --no-relax option to ld to fix a segfault in initialization
code (bug#338437)

0002 Call ld with proper flags.patch | (download)

configure | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

 call ld with proper flags

Filter linkflags passed to ld by ocamlopt -pack and -output-obj
to remove the "-Wl," parts, which are only used when ocamlopt calls
gcc.

0003 Don t use rpath.patch | (download)

tools/ocamlmklib.ml | 5 5 + 0 - 0 !
1 file changed, 5 insertions(+)

 don't use rpath


0004 Put manpages in section 3o instead of 3.patch | (download)

ocamldoc/Makefile | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

 put manpages in section 3o instead of 3


0005 Avoid multiple declarations in generated .c files in.patch | (download)

bytecomp/bytelink.ml | 18 16 + 2 - 0 !
bytecomp/symtable.ml | 8 5 + 3 - 0 !
bytecomp/symtable.mli | 2 1 + 1 - 0 !
3 files changed, 22 insertions(+), 6 deletions(-)

 avoid multiple declarations in generated .c files in -output-obj

In -output-obj mode, <caml/mlvalues.h> (which contains some
primitives) is included in the generated .c file, leading to errors
when compiling with g++ (multiple declarations).

There are probably better implementations (in particular, in this one,
care must be taken when changing the list of primitives available in
mlvalues.h), but this is a small and (not too) intrusive patch.

Bug: http://caml.inria.fr/mantis/view.php?id=5254
Signed-off-by: Stephane Glondu <steph@glondu.net>

0006 Embed bytecode in C object when using custom.patch | (download)

bytecomp/bytelink.ml | 42 38 + 4 - 0 !
testsuite/tests/basic-manyargs/Makefile | 3 3 + 0 - 0 !
testsuite/tests/callback/Makefile | 3 3 + 0 - 0 !
testsuite/tests/embedded/Makefile | 4 4 + 0 - 0 !
testsuite/tests/gc-roots/Makefile | 3 3 + 0 - 0 !
testsuite/tests/lib-dynlink-bytecode/Makefile | 3 3 + 0 - 0 !
testsuite/tests/lib-marshal/Makefile | 3 3 + 0 - 0 !
testsuite/tests/regression/pr3612/Makefile | 3 3 + 0 - 0 !
testsuite/tests/runtime-C-exceptions/Makefile | 3 3 + 0 - 0 !
9 files changed, 63 insertions(+), 4 deletions(-)

 embed bytecode in c object when using -custom

This patch fixes non-strippability of bytecode executables linked with
custom runtime. The new behaviour is enabled when OCAML_CUSTOM_EMBED
is set to "y", or when DEB_HOST_ARCH is non-empty.

0008 Native backtraces don t work on powerpc and sparc.patch | (download)

testsuite/tests/backtrace/Makefile | 5 4 + 1 - 0 !
1 file changed, 4 insertions(+), 1 deletion(-)

 native backtraces don't work on powerpc and sparc


0010 XL 001 tests.asmcomp.patch | (download)

testsuite/tests/asmcomp/main.ml | 1 0 + 1 - 0 !
1 file changed, 1 deletion(-)

 drop a test-suite experiment committed by mistake

This was failing on armhf because Debian GCC now enables PIE by default.

Bug: https://caml.inria.fr/mantis/view.php?id=7642
Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=837359#80

0011 arm64 hide symbols for stricter binutils.patch | (download)

Changes | 4 4 + 0 - 0 !
asmcomp/arm64/emit.mlp | 15 13 + 2 - 0 !
asmcomp/arm64/selection.ml | 4 2 + 2 - 0 !
3 files changed, 19 insertions(+), 4 deletions(-)

 arm64-hide-symbols-for-stricter-binutils

    AArch64 GOT fixed

0013 Use CCLINKFLAGS for linking all executables and shar.patch | (download)

configure | 2 2 + 0 - 0 !
tools/Makefile | 2 1 + 1 - 0 !
2 files changed, 3 insertions(+), 1 deletion(-)

 use cclinkflags for linking all executables and shared libraries

This allows packagers to set additional linker flags for executables and shared
libraries created by OCaml, and for the OCaml tools themselves.
OCaml code can be linked with various C stubs and C libraries that would
benefit from using hardening link flags, such as -Wl,-z,relro.

0014 Compute a stable name for preprocessed files.patch | (download)

driver/pparse.ml | 11 10 + 1 - 0 !
1 file changed, 10 insertions(+), 1 deletion(-)

 compute a stable name for preprocessed files


0012 Integer overflows when unmarshaling a bigarray.patch | (download)

otherlibs/bigarray/bigarray_stubs.c | 26 19 + 7 - 0 !
1 file changed, 19 insertions(+), 7 deletions(-)

 integer overflows when unmarshaling a bigarray

Malicious or corrupted marshaled data can result in a bigarray
with impossibly large dimensions that cause overflow when computing
the in-memory size of the bigarray.  Disaster ensues when the data
is read in a too small memory area.  This commit checks for overflows
when computing the in-memory size of the bigarray.

This patch has been modified from upstream one to use caml_ba_multov
instead of caml_umul_overflow which is unavailable in OCaml 4.05.0.