Compare commits

...
Author SHA1 Message Date
itchyny 2ec4c2cdb1 Switch Linux runners to Ubuntu 26.04 except for MIPS (#3703)
The i386 build ran on ubuntu-22.04, which is retired on April 17, 2027,
and ubuntu-24.04 lacks fmod and exp10 in the static i386 libm.

Build on ubuntu-26.04 for every architecture except MIPS, whose cross
toolchains Ubuntu 26.04 no longer ships, and move the decnum, oniguruma
and valgrind workflows too. Most release binaries are now built with
GCC 15 and glibc 2.43, and they remain statically linked.
2026-11-01 20:34:20 +09:00
itchyny 77953d8c8d Implement drem with remainder on all platforms (#3704)
The static i386 libm of glibc 2.43 does not define drem, so linking jq
with --enable-all-static on Ubuntu 26.04 failed.

Call remainder for drem wherever it is available, as jq already did on
macOS. drem is an obsolete name for remainder, so the results do not
change, and jq no longer depends on the legacy symbol.
2026-11-01 19:57:43 +09:00
itchyny 58c0d615c7 Switch macOS runner from macos-14 to macos-15 (#3702)
The macOS jobs failed during the macos-14 brownouts, and the image is
retired on November 2, 2026.

Run them on macos-15 and build with the macos14 target triple instead
of deriving it from uname -r, so the binaries still require macOS 14.0
as in jq 1.8.x rather than following the runner to 15. Recent clang
ignores the version in a darwinNN triple and uses the SDK default.
2026-11-01 19:55:38 +09:00
5 changed files with 23 additions and 16 deletions

No files matched your search

+11 -7
View File
@@ -37,6 +37,8 @@ jobs:
CC: aarch64-linux-gnu
- arch: armel
CC: arm-linux-gnueabi
# Ubuntu 26.04 has no crossbuild-essential-armel
packages: gcc-arm-linux-gnueabi libc6-dev-armel-cross
- arch: armhf
CC: arm-linux-gnueabihf
- arch: i386
@@ -65,7 +67,8 @@ jobs:
CC: riscv64-linux-gnu
- arch: s390x
CC: s390x-linux-gnu
runs-on: ${{ matrix.arch == 'i386' && 'ubuntu-22.04' || 'ubuntu-24.04' }}
# Ubuntu 26.04 no longer ships the MIPS cross toolchains.
runs-on: ${{ startsWith(matrix.arch, 'mips') && 'ubuntu-24.04' || 'ubuntu-26.04' }}
env:
AR: ${{ matrix.CC }}-ar
CHOST: ${{ matrix.CC }}
@@ -81,7 +84,8 @@ jobs:
- name: Install packages
run: |
sudo apt-get update
sudo apt-get install -y automake autoconf libtool crossbuild-essential-${{ matrix.arch }}
sudo apt-get install -y automake autoconf libtool \
${{ matrix.packages || format('crossbuild-essential-{0}', matrix.arch) }}
- name: Build
run: |
autoreconf -i
@@ -127,10 +131,10 @@ jobs:
- arm64
include:
- arch: amd64
target: x86_64-apple-darwin
target: x86_64-apple-macos14
- arch: arm64
target: arm64-apple-darwin
runs-on: macos-14
target: arm64-apple-macos14
runs-on: macos-15
env:
LDFLAGS: -dead_strip
SUFFIX: macos-${{ matrix.arch }}
@@ -146,12 +150,12 @@ jobs:
brew install autoconf automake libtool
- name: Set CC
run: |
echo "CC=clang -target ${{ matrix.target }}$(uname -r)" >> "$GITHUB_ENV"
echo "CC=clang -target ${{ matrix.target }}" >> "$GITHUB_ENV"
- name: Build
run: |
autoreconf -i
./configure \
--host="${{ matrix.target }}$(uname -r)" \
--host="${{ matrix.target }}" \
--disable-docs \
--with-oniguruma=builtin \
--disable-shared \
+1 -1
View File
@@ -7,7 +7,7 @@ on:
jobs:
disabled:
runs-on: ubuntu-24.04
runs-on: ubuntu-26.04
steps:
- name: Clone repository
uses: actions/checkout@v7
+2 -2
View File
@@ -9,7 +9,7 @@ on:
# we test other options for --with-oniguruma here.
jobs:
installed:
runs-on: ubuntu-24.04
runs-on: ubuntu-26.04
steps:
- name: Clone repository
uses: actions/checkout@v7
@@ -42,7 +42,7 @@ jobs:
tests/*.log
disabled:
runs-on: ubuntu-24.04
runs-on: ubuntu-26.04
steps:
- name: Clone repository
uses: actions/checkout@v7
+1 -1
View File
@@ -7,7 +7,7 @@ on:
jobs:
linux:
runs-on: ubuntu-24.04
runs-on: ubuntu-26.04
steps:
- name: Clone repository
uses: actions/checkout@v7
+8 -5
View File
@@ -106,6 +106,13 @@ jv binop_plus(jv a, jv b) {
}
}
// drem is an obsolete alias of remainder, and is missing from the static
// libm of some platforms (e.g. i386 glibc 2.43), so use remainder instead
#ifdef HAVE_REMAINDER
#define HAVE_DREM 1
#define drem remainder
#endif
#ifdef __APPLE__
// macOS has a bunch of libm deprecation warnings, so let's clean those up
#ifdef HAVE_TGAMMA
@@ -116,10 +123,6 @@ jv binop_plus(jv a, jv b) {
#define HAVE_EXP10
#define exp10 __exp10
#endif
#ifdef HAVE_REMAINDER
#define HAVE_DREM
#define drem remainder
#endif
// We replace significand with our own, since there's not a rename-replacement
#ifdef HAVE_FREXP
@@ -236,9 +239,9 @@ static jv f_ ## name(jq_state *jq, jv input) { \
#undef LIBM_DD
#undef LIBM_DA
#undef drem
#ifdef __APPLE__
#undef gamma
#undef drem
#undef significand
#undef exp10
#endif