import ocaml-4.11.1-4.el9.2

This commit is contained in:
CentOS Sources 2021-11-04 02:36:58 -04:00 committed by Stepan Oksanichenko
commit 5edb32ef06
9 changed files with 1415 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
SOURCES/ocaml-4.11.1.tar.xz

1
.ocaml.metadata Normal file
View File

@ -0,0 +1 @@
2bfc9e3af2a679b87f692e3b991034b920b8b3c3 SOURCES/ocaml-4.11.1.tar.xz

View File

@ -0,0 +1,27 @@
From 4c7732daae8f0d2a622f91f5ff3add5c2248a2e3 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Tue, 24 Jun 2014 10:00:15 +0100
Subject: [PATCH 1/6] Don't add rpaths to libraries.
---
tools/Makefile | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/tools/Makefile b/tools/Makefile
index dbad0b74f..c920a5337 100644
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -154,8 +154,8 @@ $(call byte_and_opt,ocamlmklib,ocamlmklibconfig.cmo config.cmo \
ocamlmklibconfig.ml: $(ROOTDIR)/Makefile.config Makefile
(echo 'let bindir = "$(BINDIR)"'; \
echo 'let supports_shared_libraries = $(SUPPORTS_SHARED_LIBRARIES)';\
- echo 'let default_rpath = "$(RPATH)"'; \
- echo 'let mksharedlibrpath = "$(MKSHAREDLIBRPATH)"'; \
+ echo 'let default_rpath = ""'; \
+ echo 'let mksharedlibrpath = ""'; \
echo 'let toolpref = "$(TOOLPREF)"';) \
> ocamlmklibconfig.ml
--
2.32.0

View File

@ -0,0 +1,27 @@
From 441ad77a0c89f4abdf104c668d579607f338a052 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Tue, 29 May 2012 20:44:18 +0100
Subject: [PATCH 2/6] configure: Allow user defined C compiler flags.
---
configure.ac | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/configure.ac b/configure.ac
index aa5f26f28..5153853b7 100644
--- a/configure.ac
+++ b/configure.ac
@@ -609,6 +609,10 @@ AS_CASE([$host],
internal_cflags="$gcc_warnings"],
[common_cflags="-O"])])
+# Allow CFLAGS and LDFLAGS to be added.
+common_cflags="$common_cflags $CFLAGS"
+cclibs="$cclibs $LDFLAGS"
+
internal_cppflags="-DCAML_NAME_SPACE $internal_cppflags"
# Enable SSE2 on x86 mingw to avoid using 80-bit registers.
--
2.32.0

View File

@ -0,0 +1,43 @@
From 3318c5b805d8d6ae1d571f18f682c9f701b712e2 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Fri, 26 Apr 2019 16:16:29 +0100
Subject: [PATCH 3/6] configure: Remove incorrect assumption about
cross-compiling.
See https://github.com/ocaml/ocaml/issues/8647#issuecomment-487094390
---
configure.ac | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/configure.ac b/configure.ac
index 5153853b7..4e97474a2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -511,10 +511,11 @@ AS_IF(
# Are we building a cross-compiler
-AS_IF(
- [test x"$host" = x"$target"],
- [cross_compiler=false],
- [cross_compiler=true])
+#AS_IF(
+# [test x"$host" = x"$target"],
+# [cross_compiler=false],
+# [cross_compiler=true])
+cross_compiler=false
# Checks for programs
@@ -1021,7 +1022,7 @@ AS_CASE([$arch],
# Assembler
-AS_IF([test -n "$host_alias"], [toolpref="${host_alias}-"], [toolpref=""])
+#AS_IF([test -n "$host_alias"], [toolpref="${host_alias}-"], [toolpref=""])
# We first compute default values for as and aspp
# If values have been given by the user then they take precedence over
--
2.32.0

View File

@ -0,0 +1,28 @@
From 01d8e3f82adb382fb90af15879f722e824834c84 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Sat, 18 Jan 2020 11:31:27 +0000
Subject: [PATCH 4/6] Remove configure from .gitattributes.
It's not a binary file.
---
.gitattributes | 4 ----
1 file changed, 4 deletions(-)
diff --git a/.gitattributes b/.gitattributes
index 200eb49c6..d871764de 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -29,10 +29,6 @@
/boot/menhir/parser.ml* -diff
-# configure is declared as binary so that it doesn't get included in diffs.
-# This also means it will have the correct Unix line-endings, even on Windows.
-/configure binary
-
# 'union' merge driver just unions textual content in case of conflict
# http://krlmlr.github.io/using-gitattributes-to-avoid-merge-conflicts/
/.mailmap merge=union
--
2.32.0

View File

@ -0,0 +1,69 @@
From 122db7141d292d63cfbe2c7d7a4280cc73194ece Mon Sep 17 00:00:00 2001
From: Xavier Leroy <xavierleroy@users.noreply.github.com>
Date: Wed, 5 Aug 2020 11:17:52 +0200
Subject: [PATCH 5/6] Fix type mismatches between definition and declaration
(#9830)
The C global variable caml_fl_merge and the C function
caml_spacetime_my_profinfo (bytecode version) were declared and
defined with different types. This is undefined behavior and
can cause link-time errors with link-time optimization (LTO).
Closes: #9825
---
runtime/major_gc.c | 4 ++--
runtime/spacetime_byt.c | 7 ++++++-
2 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/runtime/major_gc.c b/runtime/major_gc.c
index 5e4f06bce..c8f5a3281 100644
--- a/runtime/major_gc.c
+++ b/runtime/major_gc.c
@@ -63,7 +63,7 @@ uintnat caml_dependent_size, caml_dependent_allocated;
double caml_extra_heap_resources;
uintnat caml_fl_wsz_at_phase_change = 0;
-extern char *caml_fl_merge; /* Defined in freelist.c. */
+extern value caml_fl_merge; /* Defined in freelist.c. */
static char *markhp, *chunk, *limit;
static double p_backlog = 0.0; /* backlog for the gc speedup parameter */
@@ -570,7 +570,7 @@ static void sweep_slice (intnat work)
break;
case Caml_blue:
/* Only the blocks of the free-list are blue. See [freelist.c]. */
- caml_fl_merge = Bp_hp (hp);
+ caml_fl_merge = (value) Bp_hp (hp);
break;
default: /* gray or black */
CAMLassert (Color_hd (hd) == Caml_black);
diff --git a/runtime/spacetime_byt.c b/runtime/spacetime_byt.c
index 2b0bf1dc2..b75fb0980 100644
--- a/runtime/spacetime_byt.c
+++ b/runtime/spacetime_byt.c
@@ -12,8 +12,12 @@
/* */
/**************************************************************************/
+#define CAML_INTERNALS
+
#include "caml/fail.h"
#include "caml/mlvalues.h"
+#include "caml/io.h"
+#include "caml/spacetime.h"
int caml_ensure_spacetime_dot_o_is_included = 42;
@@ -22,7 +26,8 @@ CAMLprim value caml_spacetime_only_works_for_native_code(value foo, ...)
caml_failwith("Spacetime profiling only works for native code");
}
-uintnat caml_spacetime_my_profinfo (void)
+uintnat caml_spacetime_my_profinfo (spacetime_unwind_info_cache * cached,
+ uintnat wosize)
{
return 0;
}
--
2.32.0

View File

@ -0,0 +1,103 @@
From 24a9db7784ddfcf0af2d2be2f51616ed960ae7e8 Mon Sep 17 00:00:00 2001
From: Xavier Leroy <xavierleroy@users.noreply.github.com>
Date: Fri, 5 Mar 2021 19:14:07 +0100
Subject: [PATCH 6/6] Dynamically allocate the alternate signal stack (#10266)
In Glibc 2.34 and later, SIGSTKSZ may not be a compile-time constant.
It is no longer possible to statically allocate the alternate signal
stack for the main thread, as we've been doing for the last 25 years.
This commit implements dynamic allocation of the alternate signal stack
even for the main thread. It reuses the code already in place to allocate
the alternate signal stack for other threads.
Fixes: #10250.
(cherry picked from commit fc9534746bf5d08a4c109f22e344cf49d5d46d54)
---
runtime/caml/signals.h | 2 +-
runtime/signals_byt.c | 2 +-
runtime/signals_nat.c | 25 ++++++++++++++-----------
3 files changed, 16 insertions(+), 13 deletions(-)
diff --git a/runtime/caml/signals.h b/runtime/caml/signals.h
index 7ec1ad3ba..98b75107b 100644
--- a/runtime/caml/signals.h
+++ b/runtime/caml/signals.h
@@ -82,7 +82,7 @@ void caml_set_action_pending (void);
value caml_do_pending_actions_exn (void);
value caml_process_pending_actions_with_root (value extra_root); // raises
int caml_set_signal_action(int signo, int action);
-void caml_setup_stack_overflow_detection(void);
+CAMLextern int caml_setup_stack_overflow_detection(void);
CAMLextern void (*caml_enter_blocking_section_hook)(void);
CAMLextern void (*caml_leave_blocking_section_hook)(void);
diff --git a/runtime/signals_byt.c b/runtime/signals_byt.c
index 040de03c5..9bd2b20c6 100644
--- a/runtime/signals_byt.c
+++ b/runtime/signals_byt.c
@@ -86,4 +86,4 @@ int caml_set_signal_action(int signo, int action)
return 0;
}
-void caml_setup_stack_overflow_detection(void) {}
+CAMLexport int caml_setup_stack_overflow_detection(void) { return 0; }
diff --git a/runtime/signals_nat.c b/runtime/signals_nat.c
index fc5a77f84..f56fce6b7 100644
--- a/runtime/signals_nat.c
+++ b/runtime/signals_nat.c
@@ -195,8 +195,6 @@ DECLARE_SIGNAL_HANDLER(trap_handler)
#error "CONTEXT_SP is required if HAS_STACK_OVERFLOW_DETECTION is defined"
#endif
-static char sig_alt_stack[SIGSTKSZ];
-
/* Code compiled with ocamlopt never accesses more than
EXTRA_STACK bytes below the stack pointer. */
#define EXTRA_STACK 256
@@ -282,28 +280,33 @@ void caml_init_signals(void)
#endif
#ifdef HAS_STACK_OVERFLOW_DETECTION
- {
- stack_t stk;
+ if (caml_setup_stack_overflow_detection() != -1) {
struct sigaction act;
- stk.ss_sp = sig_alt_stack;
- stk.ss_size = SIGSTKSZ;
- stk.ss_flags = 0;
SET_SIGACT(act, segv_handler);
act.sa_flags |= SA_ONSTACK | SA_NODEFER;
sigemptyset(&act.sa_mask);
- if (sigaltstack(&stk, NULL) == 0) { sigaction(SIGSEGV, &act, NULL); }
+ sigaction(SIGSEGV, &act, NULL);
}
#endif
}
-void caml_setup_stack_overflow_detection(void)
+/* Allocate and select an alternate stack for handling signals,
+ especially SIGSEGV signals.
+ Each thread needs its own alternate stack.
+ The alternate stack used to be statically-allocated for the main thread,
+ but this is incompatible with Glibc 2.34 and newer, where SIGSTKSZ
+ may not be a compile-time constant (issue #10250). */
+
+CAMLexport int caml_setup_stack_overflow_detection(void)
{
#ifdef HAS_STACK_OVERFLOW_DETECTION
stack_t stk;
stk.ss_sp = malloc(SIGSTKSZ);
+ if (stk.ss_sp == NULL) return -1;
stk.ss_size = SIGSTKSZ;
stk.ss_flags = 0;
- if (stk.ss_sp)
- sigaltstack(&stk, NULL);
+ return sigaltstack(&stk, NULL);
+#else
+ return 0;
#endif
}
--
2.32.0

1116
SPECS/ocaml.spec Normal file

File diff suppressed because it is too large Load Diff