From dffc6b54ed443b3e71a5cc856adff0261ecf2c83 Mon Sep 17 00:00:00 2001 From: "Jeffrey H. Johnson" Date: Wed, 7 Aug 2024 02:37:54 -0400 Subject: [PATCH] Update Android builds to NDK r27; enable 16KB max page size; update README (#435) --- .gitlab-ci.yml | 3 ++- .gitlab-ci/ndk/Dockerfile | 2 +- Makefile | 2 +- README.md | 10 ++++---- docs/doxygen_crawl.html | 54 +++++++++++++++++++-------------------- docs/index.html | 10 ++++---- docs/navtreeindex1.js | 2 +- 7 files changed, 42 insertions(+), 41 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f7432eaa3..7ad76009f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1250,7 +1250,7 @@ Android/x86_64 (API Level 35, Clang++, Clang): # Start of Build ... echo -e "section_start:`date +%s`:Build_section[collapsed=true]\r\e[0K\033[0;36mBuild ...\033[0m" || true - export PATH="/opt/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin:${PATH:?}" - - export LDFLAGS="-static" + - export LDFLAGS="-static -Wl,-z,max-page-size=16384" - export CC="x86_64-linux-android35-clang" - export CXX="x86_64-linux-android35-clang++" - ${CC:?} --version @@ -1349,6 +1349,7 @@ Android/ARM64 (API Level 35, Clang++, Clang): # Start of Build ... echo -e "section_start:`date +%s`:Build_section[collapsed=true]\r\e[0K\033[0;36mBuild ...\033[0m" || true - export PATH="/opt/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin:${PATH:?}" + - export LDFLAGS="-Wl,-z,max-page-size=16384" - export CC="aarch64-linux-android35-clang" - export CXX="aarch64-linux-android35-clang++" - ${CC:?} --version diff --git a/.gitlab-ci/ndk/Dockerfile b/.gitlab-ci/ndk/Dockerfile index f041a37bc..75853fe5a 100644 --- a/.gitlab-ci/ndk/Dockerfile +++ b/.gitlab-ci/ndk/Dockerfile @@ -36,7 +36,7 @@ WORKDIR /opt ARG URL RUN set -x && \ - curl -fsSL "${URL:-https://github.com/johnsonjh/ndk/releases/download/r26c/android-ndk-r28-1160465.tar.lz}" | \ + curl -fsSL "${URL:-https://github.com/johnsonjh/ndk/releases/download/r26c/android-ndk-r27-linux.tar.lz}" | \ lzip -dc | tar xvf - && \ dnf -y clean all && \ rm -rf ~/.cache && \ diff --git a/Makefile b/Makefile index 96f6b1dda..ee67d0613 100644 --- a/Makefile +++ b/Makefile @@ -96,7 +96,7 @@ endif ifeq ($(SIR_DEBUG),1) DBGFLAGS ?= -g3 ifneq ($(NO_DEFAULT_CFLAGS),1) - SIR_CFLAGS += -O0 -DDEBUG -D_DEBUG $(DBGFLAGS) -U_FORTIFY_SOURCE + SIR_CFLAGS += -O0 -DDEBUG -D_DEBUG -D_GLIBCXX_ASSERTIONS $(DBGFLAGS) -U_FORTIFY_SOURCE endif else ifneq ($(NO_DEFAULT_CFLAGS),1) diff --git a/README.md b/README.md index 06ef2621a..dda060318 100644 --- a/README.md +++ b/README.md @@ -91,12 +91,12 @@ At this time, libsir is supported (*that is, it compiles and passes the test sui | System | Toolchain | | ------:|:--------- | -| **Linux** ≳2.6.32
(glibc ≳2.4, musl ≳1.2.3, uClibc‑ng ≳1.0.43) | **GCC** (4.8.4 ‑ 14.1.1),  **Clang** (3.8 ‑ 18.1.8),  **Oracle Studio C/C++** (≳12.6),  **Circle** (1.0.0‑208),  **IBM Advance Toolchain** (14 ‑ 17),  **IBM XL C/C++** (16.1.1.2 ‑ 16.1.1.15),  **IBM Open XL C/C++** (17.1.1.0 ‑ 17.1.1.2),  **NVIDIA HPC SDK C/C++** (23.5 ‑ 24.5),  **Arm HPC C/C++** (22.1 ‑ 24.04),  **DMD ImportC** (2.104.2 ‑ 2.110.0),  **AMD Optimizing C/C++** (4.0.0 ‑ 4.2.0),  **Intel oneAPI DPC++/C++** (2023.1 ‑ 2024.1.2),  **Open64** (5, AMD 4.5.2.1),  **Intel C++ Compiler Classic** (2021.9.0 ‑ 2021.10.0),  **Portable C Compiler** (1.2.0.DEVEL‑20230730),  **Kefir** (≳0.3.0),  **Chibicc** (2020.12.6),  **CompCert C** (3.11 ‑ 3.14, no‑TLS),  **Chamois‑CompCert C** (3.14‑20231130, TLS) | +| **Linux** ≳2.6.32
(glibc ≳2.4, musl ≳1.2.3, uClibc‑ng ≳1.0.43) | **GCC** (4.8.4 ‑ 14.2.1),  **Clang** (3.8 ‑ 18.1.8),  **Oracle Studio C/C++** (≳12.6),  **Circle** (1.0.0‑208),  **IBM Advance Toolchain** (14 ‑ 17),  **IBM XL C/C++** (16.1.1.2 ‑ 16.1.1.15),  **IBM Open XL C/C++** (17.1.1.0 ‑ 17.1.1.2),  **NVIDIA HPC SDK C/C++** (23.5 ‑ 24.7),  **Arm HPC C/C++** (22.1 ‑ 24.04),  **DMD ImportC** (2.104.2 ‑ 2.110.0),  **AMD Optimizing C/C++** (4.0.0 ‑ 4.2.0),  **Intel oneAPI DPC++/C++** (2023.1 ‑ 2024.2.1),  **Open64** (5, AMD 4.5.2.1),  **Intel C++ Compiler Classic** (2021.9.0 ‑ 2021.10.0),  **Portable C Compiler** (1.2.0.DEVEL‑20230730),  **Kefir** (≳0.3.0),  **Chibicc** (2020.12.6),  **CompCert C** (3.11 ‑ 3.14, no‑TLS),  **Chamois‑CompCert C** (3.14‑20231130, TLS) | | **Android** ≳5 | **Android NDK** (r25c ‑ r27) | -| **IBM AIX** 7.2, 7.3 | **GCC** (8.3 ‑ 12.3),  **Clang** (18.1.2 ‑ 18.1.8),  **IBM XL C/C++** (16.1.0.3 ‑ 16.1.0.18),  **IBM Open XL C/C++** (17.1.1.1 ‑ 17.1.2.7) | +| **IBM AIX** 7.2, 7.3 | **GCC** (8.3 ‑ 12.3),  **Clang** (18.1.2 ‑ 18.1.8),  **IBM XL C/C++** (16.1.0.3 ‑ 16.1.0.18),  **IBM Open XL C/C++** (17.1.1.1 ‑ 17.1.2.9) | | **IBM i** (**PASE**) 7.5 | **GCC** (10.3.0 ‑ 10.5.0),  **IBM XL C/C++** (16.1.0.15 ‑ 16.1.0.18) | -| **macOS** ≳10.15 | **Xcode** (11.7 ‑ 16.0),  **GCC** (10.4 ‑ 14.1.0),  **Clang** (11.0.3 ‑ 18.1.8),  **DMD ImportC** (2.105.0 ‑ 2.110.0),  **Intel C++ Compiler Classic** (2021.9.0 ‑ 2021.10.0) | -| **Windows** ≳10, 11 | **Microsoft Visual C/C++** (17.6 ‑ 17.10.3),  **Clang‑CL** (16.0.6 ‑ 18.1.8),  **GCC‑MinGW** (12.2.1 ‑ 14.1.1),  **LLVM‑MinGW** (15.0 ‑ 18.1.8),  **Embarcadero C++** (7.20 ‑ 7.70),  **OrangeC** (≳6.71.10) | +| **macOS** ≳10.15 | **Xcode** (11.7 ‑ 16.0),  **GCC** (10.4 ‑ 14.2.0),  **Clang** (11.0.3 ‑ 18.1.8),  **DMD ImportC** (2.105.0 ‑ 2.110.0),  **Intel C++ Compiler Classic** (2021.9.0 ‑ 2021.10.0) | +| **Windows** ≳10, 11 | **Microsoft Visual C/C++** (17.6 ‑ 17.10.5),  **Clang‑CL** (16.0.6 ‑ 18.1.8),  **GCC‑MinGW** (12.2.1 ‑ 14.2.1),  **LLVM‑MinGW** (15.0 ‑ 18.1.8),  **Embarcadero C++** (7.20 ‑ 7.70),  **OrangeC** (≳6.71.10) | | **Cygwin** 3.4 | **GCC** (11.2 ‑ 13.2.1) | | **FreeBSD** ≳11.3 | **GCC** (11.4 ‑ 13.2.1),  **Clang** (10 ‑ 18.1.8),  **DMD ImportC** (2.105.0 ‑ 2.110.0) | | **NetBSD** 9.2 | **GCC** (7.5 ‑ 13.2),  **Clang** (15.0.7 ‑ 17.0.6) | @@ -107,7 +107,7 @@ At this time, libsir is supported (*that is, it compiles and passes the test sui | **Solaris** 11.4 | **GCC** (10.3 ‑ 11.2),  **Clang** (6 ‑ 18.1.8),  **Oracle Studio C/C++** (≳12.6) | | **illumos** | **GCC** (7.5 ‑ 13.2),  **Clang** (15.0.7 ‑ 18.1.8),  **Oracle Studio C/C++** (≳12.6) | | **SerenityOS** | **GCC** (13.1) | -| **WebAssembly/JS** | **Emscripten** (3.1.45 ‑ 3.1.61),  **Node.js** (20.5 ‑ 22.3.0) | +| **WebAssembly/JS** | **Emscripten** (3.1.45 ‑ 3.1.64),  **Node.js** (20.5 ‑ 22.5.1) | * libsir is known to work on most common (and many uncommon) architectures. It has been built and tested on **Intel** (x86\_64, i686, x32), **ARM** (ARMv6, ARMv7HF, ARMv8‑A), **POWER** (PowerPC, PPC64, PPC64le), **MIPS** (MIPS64, MIPS32, 74Kc), **SPARC** (SPARC64, V8, LEON3), **z/Architecture** (S390X), **SuperH** (SH‑4A), **RISC‑V** (RV32, RV64), **OpenRISC** (OR1200), **Kalray MPPA®** (Coolidge™, KVX), and **m68k** (ColdFire, 68020+). * This table only lists toolchains that have been tested and is by no means exhaustive—newer (or older) versions are likely to work without fanfare. In fact, if it *doesn't* work on your machine, it's probably a bug. diff --git a/docs/doxygen_crawl.html b/docs/doxygen_crawl.html index 3df55be2f..395246fca 100644 --- a/docs/doxygen_crawl.html +++ b/docs/doxygen_crawl.html @@ -8,46 +8,46 @@ + - - + + - - - + + - + - - + + + + - - @@ -59,40 +59,40 @@ - - - + + + + - - + - + + + - - - + - + - - + - + + - + + - + + - - diff --git a/docs/index.html b/docs/index.html index 12a3dd80d..be1566aeb 100644 --- a/docs/index.html +++ b/docs/index.html @@ -174,17 +174,17 @@

Cross-platform comp System Toolchain Linux ≳2.6.32
-(glibc ≳2.4, musl ≳1.2.3, uClibc‑ng ≳1.0.43) GCC (4.8.4 ‑ 14.1.1),  Clang (3.8 ‑ 18.1.8),  Oracle Studio C/C++ (≳12.6),  Circle (1.0.0‑208),  IBM Advance Toolchain (14 ‑ 17),  IBM XL C/C++ (16.1.1.2 ‑ 16.1.1.15),  IBM Open XL C/C++ (17.1.1.0 ‑ 17.1.1.2),  NVIDIA HPC SDK C/C++ (23.5 ‑ 24.5),  Arm HPC C/C++ (22.1 ‑ 24.04),  DMD ImportC (2.104.2 ‑ 2.110.0),  AMD Optimizing C/C++ (4.0.0 ‑ 4.2.0),  Intel oneAPI DPC++/C++ (2023.1 ‑ 2024.1.2),  Open64 (5, AMD 4.5.2.1),  Intel C++ Compiler Classic (2021.9.0 ‑ 2021.10.0),  Portable C Compiler (1.2.0.DEVEL‑20230730),  Kefir (≳0.3.0),  Chibicc (2020.12.6),  CompCert C (3.11 ‑ 3.14, no‑TLS),  Chamois‑CompCert C (3.14‑20231130, TLS) +(glibc ≳2.4, musl ≳1.2.3, uClibc‑ng ≳1.0.43) GCC (4.8.4 ‑ 14.2.1),  Clang (3.8 ‑ 18.1.8),  Oracle Studio C/C++ (≳12.6),  Circle (1.0.0‑208),  IBM Advance Toolchain (14 ‑ 17),  IBM XL C/C++ (16.1.1.2 ‑ 16.1.1.15),  IBM Open XL C/C++ (17.1.1.0 ‑ 17.1.1.2),  NVIDIA HPC SDK C/C++ (23.5 ‑ 24.7),  Arm HPC C/C++ (22.1 ‑ 24.04),  DMD ImportC (2.104.2 ‑ 2.110.0),  AMD Optimizing C/C++ (4.0.0 ‑ 4.2.0),  Intel oneAPI DPC++/C++ (2023.1 ‑ 2024.2.1),  Open64 (5, AMD 4.5.2.1),  Intel C++ Compiler Classic (2021.9.0 ‑ 2021.10.0),  Portable C Compiler (1.2.0.DEVEL‑20230730),  Kefir (≳0.3.0),  Chibicc (2020.12.6),  CompCert C (3.11 ‑ 3.14, no‑TLS),  Chamois‑CompCert C (3.14‑20231130, TLS) Android ≳5 Android NDK (r25c ‑ r27) -IBM AIX 7.2, 7.3 GCC (8.3 ‑ 12.3),  Clang (18.1.2 ‑ 18.1.8),  IBM XL C/C++ (16.1.0.3 ‑ 16.1.0.18),  IBM Open XL C/C++ (17.1.1.1 ‑ 17.1.2.7) +IBM AIX 7.2, 7.3 GCC (8.3 ‑ 12.3),  Clang (18.1.2 ‑ 18.1.8),  IBM XL C/C++ (16.1.0.3 ‑ 16.1.0.18),  IBM Open XL C/C++ (17.1.1.1 ‑ 17.1.2.9) IBM i (PASE) 7.5 GCC (10.3.0 ‑ 10.5.0),  IBM XL C/C++ (16.1.0.15 ‑ 16.1.0.18) -macOS ≳10.15 Xcode (11.7 ‑ 16.0),  GCC (10.4 ‑ 14.1.0),  Clang (11.0.3 ‑ 18.1.8),  DMD ImportC (2.105.0 ‑ 2.110.0),  Intel C++ Compiler Classic (2021.9.0 ‑ 2021.10.0) +macOS ≳10.15 Xcode (11.7 ‑ 16.0),  GCC (10.4 ‑ 14.2.0),  Clang (11.0.3 ‑ 18.1.8),  DMD ImportC (2.105.0 ‑ 2.110.0),  Intel C++ Compiler Classic (2021.9.0 ‑ 2021.10.0) -Windows ≳10, 11 Microsoft Visual C/C++ (17.6 ‑ 17.10.3),  Clang‑CL (16.0.6 ‑ 18.1.8),  GCC‑MinGW (12.2.1 ‑ 14.1.1),  LLVM‑MinGW (15.0 ‑ 18.1.8),  Embarcadero C++ (7.20 ‑ 7.70),  OrangeC (≳6.71.10) +Windows ≳10, 11 Microsoft Visual C/C++ (17.6 ‑ 17.10.5),  Clang‑CL (16.0.6 ‑ 18.1.8),  GCC‑MinGW (12.2.1 ‑ 14.2.1),  LLVM‑MinGW (15.0 ‑ 18.1.8),  Embarcadero C++ (7.20 ‑ 7.70),  OrangeC (≳6.71.10) Cygwin 3.4 GCC (11.2 ‑ 13.2.1) @@ -206,7 +206,7 @@

Cross-platform comp SerenityOS GCC (13.1) -WebAssembly/JS Emscripten (3.1.45 ‑ 3.1.61),  Node.js (20.5 ‑ 22.3.0) +WebAssembly/JS Emscripten (3.1.45 ‑ 3.1.64),  Node.js (20.5 ‑ 22.5.1)