Skip to content

Conversation

@dra27
Copy link
Owner

@dra27 dra27 commented Jan 15, 2026

No description provided.

dra27 and others added 30 commits October 15, 2021 11:52
Disable the commit message Changes escape hatch

(cherry picked from commit d17f6f1)
GitHub Actions updates for 4.14 branch

(cherry picked from commit e665320)
Apple discourages use of the `-flat_namespace` flag, and it exists only
for compatibility with very old versions of OS X. Using
`-flat_namespace` can cause various cryptic linker errors (e.g. due to
name collisions), so it's best to avoid its use unless needed.

This change removes the flag, and also changes `-undefined suppress` to
`-undefined dynamic_lookup`. We need to change the argument to
`-undefined` because omitting the `-flat_namespace` flag will build
shared libraries with a two-level namespace, and this does not support
`-undefined suppress`. `dynamic_lookup` means that the dynamic linker
will resolve undefined symbols at runtime.

This should have no visible impact on any users who do not explicitly
exploit the flat namespace, but this is of often only useful for
debugging purposes. Users who need this still have alternatives such as
setting `DYLD_FORCE_FLAT_NAMESPACE`, which instructs the linker to treat
libraries as if they were compiled with a flat namespace.

(cherry picked from commit a88c1db)
On 4.14 branch: C17 fixes (strict prototypes and others)
[4.14] Don't pass duplicate libraries to the linker

(cherry picked from commit 25ab399)
Unified GitHub Actions workflows across release branches for ease-of-maintenance [4.14 version]

(cherry picked from commit 4461d97)
(cherry picked from commit b274ea5)
Hygiene tests: fix deepen-fetch.sh

(cherry picked from commit 2a97d23)
(cherry picked from commit 4a70c02)
relocation issues with clang on 32bit FreeBSD

(cherry picked from commit 389121d)
4.14: build executables with `-no-pie` on x86/32bits Linux and *BSDs

(cherry picked from commit 7747e2e)
(cherry picked from commit 2e2b17d)
This test sporadically fails on macOS amd64 but very consistently fails
on macOS arm64 in GitHub Actions. The underlying issue is that nanosleep
consistently pauses the caller for longer than the specified interval
for small increments (which is compliant, but not useful for the test).
Perform CI builds on macOS 14 for ARM64 and macOS 13 for x86_64.

(cherry picked from commit c49475d)
* gha: update checkout and caches actions from v3 to v4

Removes an annoying warning about them using an outdated
Node.js. We're not impacted by other changes.

* gha: update artifacts actions

Should be much faster. We're not impacted by other changes.

(cherry picked from commit cfd82d3)
Make the CI dump `config.log` and verbosely print failed commands

(cherry picked from commit 8bb2085)
(cherry picked from commit 389ae57)
(cherry picked from commit 05f7e7a)
Add Linux ARM64 build

(cherry picked from commit 4bfea21)
(cherry picked from commit 5f6587e)
Always call `apt-get update` in CI before installing

(cherry picked from commit 2f39689)
GHA: small improvements for Cygwin and Linux actions
(cherry picked from commit 2d3138a)
* Allow check-configure.sh to be run locally

* Re-bash the autoconf test

* Simplify - and correct - check-configure.sh

The script contained an unused feature to be able to check PRs as one -
this is never wanted, as we should always be checking that every commit
has a valid committed configure script.

The mechanism for checking whether commits should be tested is shifted
back to the actual trawl of the log. This is both simpler (because it
can be done with a simple file list) but also fixes a bug, since commits
which _didn't_ update configure could reset a failure from an earlier
commit.

* Wrong parameter checked in check-configure.sh

* Review

(cherry picked from commit 4b905fd)
GHA: add an optional wider test matrix (Cygwin, static, minimal, etc.)
(cherry picked from commit 96b56fd)
(cherry picked from commit ab33928)
(cherry picked from commit 01d566e)
hannesm and others added 28 commits October 20, 2025 00:28
(cherry picked from commit 6fef125)
(cherry picked from commit 4d9dbf2)
(cherry picked from commit e22cbaf)
Also test --with-pic in Inria's other-configs CI job

(cherry picked from commit 5396b14)
(cherry picked from commit e9eb2fb)
In the Jenkins CI, BSD hosts are all single-use virtual machines.

(cherry picked from commit 8d19f5f)
(cherry picked from commit 94f8391)
Also: test with clang-18 and default standard.
Also: print delimiters between tests for easier searching.
(cherry picked from commit 2f945ae)
AppVeyor updates & evict the configure cache if `configure` changed

(cherry picked from commit a62f7fb)
(cherry picked from commit 8bb2085)
(cherry picked from commit 2f6439c)
Ci tweaks for msvc

(cherry picked from commit afdf5a0)
Workaround Cygwin 3.5.x regression in AppVeyor

(cherry picked from commit 2f6439c)
* Revert "Work-around Cygwin 3.5.x regression"

This reverts commit 6b764e6.

* Allow manually forcing AppVeyor Cygwin upgrade

(cherry picked from commit 48ae66f)
AppVeyor: only call Cygwin setup once when upgrading is forced
(cherry picked from commit 849726f)
Display the `configure` command executed in AppVeyor runs

(cherry picked from commit ed0a6a5)
(cherry picked from commit 9411811)
The string @qs@ is available to use in template.in files that produce
OCaml code allowing strings to be written as
{@qs@|@variable_from_configure@|@qs@} guaranteeing that any value of
@variable_from_configure@ yields a properly quoted OCaml string.

The calculation inserts 'o' characters until none of the strings passed
to AC_SUBST include the sequence |o..o}

(cherry picked from commit 0222801)
Compmisc.init_path initialises the load path using
Config.standard_library. Compmisc.reinit_path generalises this, allowing
an alternate value for the standard library location to be used. This is
used internally when testing compiler installations in order to allow
Ccomp.call_linker to be used.

Deviations from original:
  - Paranoid implementation using Compmisc.reinit_path used instead of
    the change to Compmisc.init_path merged in OCaml 5.5

(cherry picked from commit 6b82c95)
Provides a copy of the DLL search path for the test harness.

(cherry picked from commit 79071c4)
Deviations from original:
  - C stub added to the harness instead of backporting
    caml_sys_proc_self_exe
  - Compmisc.reinit_path used instead of updating Compmisc.init_path
  - Config.c_compiler_vendor avoided by instead exposing the constant as
    Toolchain.c_compiler_vendor
  - Config.asm_dwarf_version folded into toolchain.ml.in
  - Config.shebangscripts avoided by instead adding an additional
    --with- option to the harness and threading $(SHEBANGSCRIPTS) from
    the build system
  - Required parts of Bytelink.read_runtime_launch_info directly added
    to the test harness, instead of exposing the machinery in Bytelink.
  - Misc.Stdlib.String.to_utf_8_seq added directly to TestRelocation.
  - ocamlmklib -M exits with code 0
  - Standard Library functions added:
    - Bytes.{get_utf_8_uchar,set_utf_16le_uchar} (4.14)
    - Char.Ascii.is_letter (5.4)
    - In_channel.{fold,input}_lines (5.1)
    - In_channel.input_all (4.14)
    - In_channel.really_input_bigarray (5.2)
    - In_channel.{set_binary_mode,with_open_bin} (4.14)
    - List.{drop,take}_while (5.3)
    - Option.exists (5.5)
    - Out_channel.{with_open_bin,with_open_text} (4.14)
    - Result.Syntax (5.4)
    - Sys.signal_to_string (5.4)
    - Uchar.utf_{decode_uchar,decode_length,16_byte_length} (4.14)
  - OCaml 5.4 labelled tuples removed
  - Added the ability for Build/Prefix/Relative to be optional in
    TestRelocation
  - Prior to 5.4.0, ocamlrun -config didn't include entries in the
    search path coming from CAML_LD_LIBRARY_PATH
  - Prior to 5.3.0, the compiler added +flexdll to the search path even
    when -nostdlib is specified, which affects the relocation test when
    bootstrapping FlexDLL.
  - Prior to 5.3.0, ocamlcmt and ocamlobjinfo didn't support -vnum. The
    simplest thing in this instance is simply to skip the test of their
    binaries.
  - Prior to 5.3.0, the dynlink library included a complete copy of the
    Config module, which affects the relocation test.
  - Prior to 5.2.0, RNTM isn't always written to bytecode images when
    compiling with -custom. Heuristic altered to analyse the DLLS
    section instead.
  - Prior to 4.14.0, errors in #load don't create detectable script
    errors: toplevel test adapted to cope with this
  - Build system adapted (Makefile.common macros didn't support C files
    until OCaml 5.2; VPATH wasn't used until OCaml 5.1; win32unix/unix
    distinction until OCaml 5.0)
  - Misc.Style changed to Misc.Color (changed in OCaml 5.2) and uses of
    the inline_code and hint formatting changed to loc (since
    inline_code was also added in OCaml 5.2 and hint OCaml 5.1)
  - Removed compressed marshalling support, since that was added in
    OCaml 5.1
  - Read camlheader file instead of runtime-launch-info
  - OCAML_FLEXLINK scrubbed from the environment (removed in 5.2)
  - Updated to deal with all bytecode binaries being installed with
    debug information
  - Updated to deal with all bytecode/native versions of tools being
    installed (changed in 5.1)
  - Updated to deal with old installation layout for otherlibs
  - Updated handling for the bigarray library
  - Updated relocation test to deal with different use of debug flags
    from OCaml 5.0+
  - Order of rules in testsuite/in_prefix/Makefile.test updated for
    compatibility with the aged version of GNU make shipped on macOS
    (pattern rules triggered in the wrong order otherwise)

(cherry picked from commit a28e47b)
(cherry picked from commit 374aee4)
(cherry picked from commit 64c0298)
(cherry picked from commit 85cd5fd)
(cherry picked from commit 24fc8d4)
(cherry picked from commit 9585ef9)
(cherry picked from commit 53bb5a8)
Tweak the configuration for the i386-static compiler

(cherry picked from commit a1b917a)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.