Skip to content

Commit

Permalink
feat: update gcc to 14.2
Browse files Browse the repository at this point in the history
Add some small fixes to make it compiple.

Signed-off-by: Andrey Smirnov <[email protected]>
  • Loading branch information
smira committed Nov 6, 2024
1 parent 9a98f73 commit 4699763
Show file tree
Hide file tree
Showing 17 changed files with 256 additions and 28 deletions.
10 changes: 5 additions & 5 deletions Pkgfile
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
format: v1alpha2

vars:
TOOLS_IMAGE: ghcr.io/siderolabs/tools:v1.9.0-alpha.0-5-g63ecd80
TOOLS_IMAGE: ghcr.io/siderolabs/tools:v1.9.0-alpha.0-7-g3750064

# renovate: datasource=github-releases depName=containernetworking/plugins
cni_version: v1.6.0
Expand Down Expand Up @@ -149,13 +149,13 @@ vars:
musl_sha256: a9a118bbe84d8764da0ea0d28b3ab3fae8477fc7e4085d90102b8596fc7c75e4
musl_sha512: 7bb7f7833923cd69c7a1a9b8a5f1784bfd5289663eb6061dcd43d583e45987df8a68a1be05d75cc1c88a3f5b610653d1a70f4a9cff4d8f7fd41ae73ee058c17c

# NOTE: Use the version that's also available under fabricmanager at https://developer.download.nvidia.com/compute/cuda/redist/fabricmanager/linux-x86_64/
# NOTE: Use the version that's also available under fabricmanager at https://developer.download.nvidia.com/compute/nvidia-driver/redist/fabricmanager/linux-x86_64/
# renovate: datasource=github-releases extractVersion=^\d+\.(?<version>\d+\.\d+)$ depName=nvidia/open-gpu-kernel-modules
nvidia_driver_lts_version: 535.183.06
nvidia_driver_lts_version: 535.216.01

# NOTE: Use the version that's also available under fabricmanager at https://developer.download.nvidia.com/compute/cuda/redist/fabricmanager/linux-x86_64/
# NOTE: Use the version that's also available under fabricmanager at https://developer.download.nvidia.com/compute/nvidia-driver/redist/fabricmanager/linux-x86_64/
# renovate: datasource=github-releases extractVersion=^\d+\.(?<version>\d+\.\d+)$ depName=nvidia/open-gpu-kernel-modules
nvidia_driver_production_version: 550.90.07
nvidia_driver_production_version: 550.127.05

# renovate: datasource=github-releases extractVersion=^openssl-(?<version>.*)$ depName=openssl/openssl
openssl_version: 3.4.0
Expand Down
22 changes: 22 additions & 0 deletions apparmor/patches/basename.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
https://gitlab.alpinelinux.org/alpine/aports/-/raw/master/main/apparmor/libapparmor-basename.patch

--- a/libraries/libapparmor/testsuite/test_multi.c
+++ b/libraries/libapparmor/testsuite/test_multi.c
@@ -1,5 +1,3 @@
-#define _GNU_SOURCE /* for glibc's basename version */
-
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@@ -7,6 +5,11 @@

#include <aalogparse.h>

+static const char *basename(const char *path)
+{
+ return strrchr(path, '/') ? strrchr(path, '/')+1 : path;
+}
+
int print_results(aa_log_record *record);

int main(int argc, char **argv)
11 changes: 8 additions & 3 deletions apparmor/pkg.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,20 +14,25 @@ steps:
- |
tar -xzf apparmor.tar.gz --strip-components=1
patch -p1 < /pkg/patches/basename.patch
mkdir -p /usr/bin \
&& ln -sf /toolchain/bin/env /usr/bin/env
ln -s /toolchain/bin/echo /toolchain/bin/which
ln -s /toolchain/include/linux /usr/include/linux
cd libraries/libapparmor
./autogen.sh
./configure --disable-dependency-tracking --disable-man-pages
./configure \
--disable-dependency-tracking \
--disable-man-pages
build:
- |
cd libraries/libapparmor
make -j $(nproc)
cd ../../parser
cd ../../parser
make arch -j $(nproc)
install:
- |
Expand Down
5 changes: 3 additions & 2 deletions kernel/build/config-amd64
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
# Automatically generated file; DO NOT EDIT.
# Linux/x86 6.6.59 Kernel Configuration
#
CONFIG_CC_VERSION_TEXT="gcc (GCC) 13.3.0"
CONFIG_CC_VERSION_TEXT="gcc (GCC) 14.2.0"
CONFIG_CC_IS_GCC=y
CONFIG_GCC_VERSION=130300
CONFIG_GCC_VERSION=140200
CONFIG_CLANG_VERSION=0
CONFIG_AS_IS_GNU=y
CONFIG_AS_VERSION=24301
Expand Down Expand Up @@ -6379,6 +6379,7 @@ CONFIG_ARCH_SUPPORTS_KMAP_LOCAL_FORCE_MAP=y
CONFIG_HAVE_ARCH_KASAN=y
CONFIG_HAVE_ARCH_KASAN_VMALLOC=y
CONFIG_CC_HAS_KASAN_GENERIC=y
CONFIG_CC_HAS_KASAN_SW_TAGS=y
CONFIG_CC_HAS_WORKING_NOSANITIZE_ADDRESS=y
# CONFIG_KASAN is not set
CONFIG_HAVE_ARCH_KFENCE=y
Expand Down
4 changes: 2 additions & 2 deletions kernel/build/config-arm64
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
# Automatically generated file; DO NOT EDIT.
# Linux/arm64 6.6.59 Kernel Configuration
#
CONFIG_CC_VERSION_TEXT="gcc (GCC) 13.3.0"
CONFIG_CC_VERSION_TEXT="gcc (GCC) 14.2.0"
CONFIG_CC_IS_GCC=y
CONFIG_GCC_VERSION=130300
CONFIG_GCC_VERSION=140200
CONFIG_CLANG_VERSION=0
CONFIG_AS_IS_GNU=y
CONFIG_AS_VERSION=24301
Expand Down
12 changes: 12 additions & 0 deletions libattr/patches/basename.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
https://gitlab.alpinelinux.org/alpine/aports/-/blob/master/main/attr/attr-basename.patch

diff -Naur a/tools/attr.c b/tools/attr.c
--- a/tools/attr.c 2024-08-03 05:18:35.620953300 -0400
+++ b/tools/attr.c 2024-08-03 05:19:17.751848345 -0400
@@ -28,6 +28,7 @@
#include <errno.h>
#include <string.h>
#include <locale.h>
+#include <libgen.h>

#include <attr/attributes.h>
2 changes: 2 additions & 0 deletions libattr/pkg.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ steps:
- |
tar -xf attr.tar.xz --strip-components=1
patch -p1 < /pkg/patches/basename.patch
OPTIMIZER="$CFLAGS" \
DEBUG=-DNDEBUG \
INSTALL_USER=root \
Expand Down
49 changes: 49 additions & 0 deletions musl/patches/close-range.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
https://inbox.vuxu.org/musl/[email protected]/T/#mb470e2a6e72ed6f659b2d87bfa39eaac72057d4e

From: Natanael Copa @ 2023-09-01 14:58 UTC (permalink / raw)
To: musl; +Cc: Natanael Copa

close_range() is a syscall present in FreeBSD 8.0 and Linux 5.9. glibc
2.34 added a wrapper.

Expose it under _GNU_SOURCE similar to what GNU libc does. Also expose
it under _BSD_SOURCE since it is also a FreeBSD function.
---

v2: use syscall without __syscall_ret

include/unistd.h | 3 +++
src/linux/close_range.c | 8 ++++++++
2 files changed, 11 insertions(+)
create mode 100644 src/linux/close_range.c

diff --git a/include/unistd.h b/include/unistd.h
index 5bc7f798..d89e3d4c 100644
--- a/include/unistd.h
+++ b/include/unistd.h
@@ -161,6 +161,9 @@ unsigned ualarm(unsigned, unsigned);
#define L_INCR 1
#define L_XTND 2
int brk(void *);
+#define CLOSE_RANGE_UNSHARE (1U << 1)
+#define CLOSE_RANGE_CLOEXEC (1U << 2)
+int close_range(unsigned int, unsigned int, int);
void *sbrk(intptr_t);
pid_t vfork(void);
int vhangup(void);
diff --git a/src/linux/close_range.c b/src/linux/close_range.c
new file mode 100644
index 00000000..3f1378a0
--- /dev/null
+++ b/src/linux/close_range.c
@@ -0,0 +1,8 @@
+#define _GNU_SOURCE
+#include <unistd.h>
+#include "syscall.h"
+
+int close_range(unsigned int first, unsigned int last, int flags)
+{
+ return syscall(SYS_close_range, first, last, flags);
+}
--
2.42.0
1 change: 1 addition & 0 deletions musl/pkg.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ steps:
tar -xzf musl.tar.gz --strip-components=1
patch -p1 < /pkg/patches/handle-aux-at-base.patch
patch -p1 < /pkg/patches/close-range.patch
mkdir /bin
ln -sv /toolchain/bin/bash /bin/sh
Expand Down
32 changes: 32 additions & 0 deletions nonfree/kmod-nvidia/lts/patches/nvtophys.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
From 228032a9161072b3cfa803301a29398725890098 Mon Sep 17 00:00:00 2001
From: Paolo Pisati <[email protected]>
Date: Wed, 31 Jul 2024 13:53:05 +0000
Subject: [PATCH] nv-vtophys: explicit a void cast

Due to gcc-14 upgrade, implicit cast are treated as error:

...
./arch/arm64/include/asm/memory.h:425:66: error: passing argument 1 of ‘virt_to_pfn’ makes pointer from integer without a cast [-Wint-conversion]
425 | __is_lm_address(__addr) && pfn_is_map_memory(virt_to_pfn(__addr));
...

Signed-off-by: Paolo Pisati <[email protected]>
---
nvidia/nv-vtophys.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/nvidia/nv-vtophys.c b/nvidia/nv-vtophys.c
index df2a01e..fcae701 100644
--- a/nvidia/nv-vtophys.c
+++ b/nvidia/nv-vtophys.c
@@ -29,7 +29,7 @@
NvU64 NV_API_CALL nv_get_kern_phys_address(NvU64 address)
{
/* direct-mapped kernel address */
- if (virt_addr_valid(address))
+ if (virt_addr_valid((void *)address))
return __pa(address);

nv_printf(NV_DBG_ERRORS,
--
2.45.2
10 changes: 6 additions & 4 deletions nonfree/kmod-nvidia/lts/pkg.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,13 @@ steps:
# {{ if eq .ARCH "aarch64" }} This in fact is YAML comment, but Go templating instruction is evaluated by bldr
- url: https://developer.download.nvidia.com/compute/nvidia-driver/redist/nvidia_driver/linux-sbsa/nvidia_driver-linux-sbsa-{{ .nvidia_driver_lts_version }}-archive.tar.xz
destination: nvidia.tar.xz
sha256: 970be3ae71332ca008f3e6589ae44a70aeffb9e29382980114e47b8fce7790d1
sha512: bd730a51a77d897509381ecb22eb21a9f4e0c2419288f1c1c26f8ef00e887b1cc09718d1d4c9d613912560e48185ff03ea221865be5c0e590a20868c45a8ea00
sha256: 83e018efc0952824d6b907dd30cf84d1c93652d142c3fff5ca3859c44de24d1b
sha512: c1a59402590860f68ee30df23179cb9245ecd772b8845d0c2fcc28a544a56ba7ec688d7071cebc8dff826dc11fc192b3141f9a2481ba6c3693f28c5835f50416
# {{ else }} This in fact is YAML comment, but Go templating instruction is evaluated by bldr
- url: https://developer.download.nvidia.com/compute/nvidia-driver/redist/nvidia_driver/linux-x86_64/nvidia_driver-linux-x86_64-{{ .nvidia_driver_lts_version }}-archive.tar.xz
destination: nvidia.tar.xz
sha256: e66527c5c016d0bee9050a7a8573e38be86aad58adee2f40e808c88a4d0c6e90
sha512: 71624903e9d57a3f8a5dc7ffb2435991fe787b0609096e0e146d03ffef54bdb145940e8717510aa87cd6407c860e22938c840c126db7d4469c265f202db35e18
sha256: 44893fa59f87d20fee7c15573c17d7701ceb96e29a44013ee79fde30b245d045
sha512: d8ecaa0eef65aa2768eac41e836fe731c89431a8b2cd910962ab749c204701fb925ebca8943ead2e0456dc6b8568243349fb1e29c208216a17bdddb62b1f2a2d
# {{ end }} This in fact is YAML comment, but Go templating instruction is evaluated by bldr
env:
ARCH: {{ if eq .ARCH "aarch64"}}arm64{{ else if eq .ARCH "x86_64" }}x86_64{{ else }}unsupported{{ end }}
Expand All @@ -25,6 +25,8 @@ steps:
- |
cd kernel
patch -p1 </pkg/patches/nvtophys.patch
make -j $(nproc) SYSSRC=/src
install:
- |
Expand Down
32 changes: 32 additions & 0 deletions nonfree/kmod-nvidia/production/patches/nvtophys.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
From 228032a9161072b3cfa803301a29398725890098 Mon Sep 17 00:00:00 2001
From: Paolo Pisati <[email protected]>
Date: Wed, 31 Jul 2024 13:53:05 +0000
Subject: [PATCH] nv-vtophys: explicit a void cast

Due to gcc-14 upgrade, implicit cast are treated as error:

...
./arch/arm64/include/asm/memory.h:425:66: error: passing argument 1 of ‘virt_to_pfn’ makes pointer from integer without a cast [-Wint-conversion]
425 | __is_lm_address(__addr) && pfn_is_map_memory(virt_to_pfn(__addr));
...

Signed-off-by: Paolo Pisati <[email protected]>
---
nvidia/nv-vtophys.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/nvidia/nv-vtophys.c b/nvidia/nv-vtophys.c
index df2a01e..fcae701 100644
--- a/nvidia/nv-vtophys.c
+++ b/nvidia/nv-vtophys.c
@@ -29,7 +29,7 @@
NvU64 NV_API_CALL nv_get_kern_phys_address(NvU64 address)
{
/* direct-mapped kernel address */
- if (virt_addr_valid(address))
+ if (virt_addr_valid((void *)address))
return __pa(address);

nv_printf(NV_DBG_ERRORS,
--
2.45.2
10 changes: 6 additions & 4 deletions nonfree/kmod-nvidia/production/pkg.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,13 @@ steps:
# {{ if eq .ARCH "aarch64" }} This in fact is YAML comment, but Go templating instruction is evaluated by bldr
- url: https://developer.download.nvidia.com/compute/nvidia-driver/redist/nvidia_driver/linux-sbsa/nvidia_driver-linux-sbsa-{{ .nvidia_driver_production_version }}-archive.tar.xz
destination: nvidia.tar.xz
sha256: dd2892ac0c97abe69dd9ccb5e09d2fd5b5ce010c64ce5eb0950a0f6fceb9b4dc
sha512: 9c1466d9ea09a01dda4de0a2b3270cc6a5093636554eadfb58c3e2957e053592f7d628c3d5b31dbb36702e187561cb7f955e9bf2ddb1adb28e7ca4568d39a0f0
sha256: 8a516f5ee8524b2bd5669f78cdddc55c792d9409a754c8ec655880595e96dd74
sha512: fd4445750d53ff63320d9e44db48f90d3b415516fcedf7f88dafd2694d4d000c2fcb44be161396564328f33a0ce8d92e127aa14948f783403513a14d2c972194
# {{ else }} This in fact is YAML comment, but Go templating instruction is evaluated by bldr
- url: https://developer.download.nvidia.com/compute/nvidia-driver/redist/nvidia_driver/linux-x86_64/nvidia_driver-linux-x86_64-{{ .nvidia_driver_production_version }}-archive.tar.xz
destination: nvidia.tar.xz
sha256: 7959e9e0e15863c9242f8a0bda0b3b67b39701956890ff159961f59e89f92158
sha512: 89a4249bce2c15af56911afa6998c355d6522e2e7493e80ed9241a9d5009ccf2522bf7bceffc03673600bbfd0d89f3a46a3c21fb0f4977e6dc674648b4c6caea
sha256: 3300904745fd4ff4b74f8d978601b9b8e8b15f4aaee47101ce7bfe3cb2e9ebf3
sha512: 7135a87f8666e980fd80dda4d6407736af54a8b25dfc91417aced7e86379079a5e6ae44313982bb62631e66bb6744cdd11b3143807e88ec530adb7e6e1cdcf51
# {{ end }} This in fact is YAML comment, but Go templating instruction is evaluated by bldr
env:
ARCH: {{ if eq .ARCH "aarch64"}}arm64{{ else if eq .ARCH "x86_64" }}x86_64{{ else }}unsupported{{ end }}
Expand All @@ -25,6 +25,8 @@ steps:
- |
cd kernel
patch -p1 </pkg/patches/nvtophys.patch
make -j $(nproc) SYSSRC=/src
install:
- |
Expand Down
32 changes: 32 additions & 0 deletions nvidia-open-gpu-kernel-modules/lts/patches/nvtophys.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
From 228032a9161072b3cfa803301a29398725890098 Mon Sep 17 00:00:00 2001
From: Paolo Pisati <[email protected]>
Date: Wed, 31 Jul 2024 13:53:05 +0000
Subject: [PATCH] nv-vtophys: explicit a void cast

Due to gcc-14 upgrade, implicit cast are treated as error:

...
./arch/arm64/include/asm/memory.h:425:66: error: passing argument 1 of ‘virt_to_pfn’ makes pointer from integer without a cast [-Wint-conversion]
425 | __is_lm_address(__addr) && pfn_is_map_memory(virt_to_pfn(__addr));
...

Signed-off-by: Paolo Pisati <[email protected]>
---
nvidia/nv-vtophys.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/nvidia/nv-vtophys.c b/nvidia/nv-vtophys.c
index df2a01e..fcae701 100644
--- a/nvidia/nv-vtophys.c
+++ b/nvidia/nv-vtophys.c
@@ -29,7 +29,7 @@
NvU64 NV_API_CALL nv_get_kern_phys_address(NvU64 address)
{
/* direct-mapped kernel address */
- if (virt_addr_valid(address))
+ if (virt_addr_valid((void *)address))
return __pa(address);

nv_printf(NV_DBG_ERRORS,
--
2.45.2
10 changes: 6 additions & 4 deletions nvidia-open-gpu-kernel-modules/lts/pkg.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,13 @@ steps:
# {{ if eq .ARCH "aarch64" }} This in fact is YAML comment, but Go templating instruction is evaluated by bldr
- url: https://developer.download.nvidia.com/compute/nvidia-driver/redist/nvidia_driver/linux-sbsa/nvidia_driver-linux-sbsa-{{ .nvidia_driver_lts_version }}-archive.tar.xz
destination: nvidia.tar.xz
sha256: 970be3ae71332ca008f3e6589ae44a70aeffb9e29382980114e47b8fce7790d1
sha512: bd730a51a77d897509381ecb22eb21a9f4e0c2419288f1c1c26f8ef00e887b1cc09718d1d4c9d613912560e48185ff03ea221865be5c0e590a20868c45a8ea00
sha256: 83e018efc0952824d6b907dd30cf84d1c93652d142c3fff5ca3859c44de24d1b
sha512: c1a59402590860f68ee30df23179cb9245ecd772b8845d0c2fcc28a544a56ba7ec688d7071cebc8dff826dc11fc192b3141f9a2481ba6c3693f28c5835f50416
# {{ else }} This in fact is YAML comment, but Go templating instruction is evaluated by bldr
- url: https://developer.download.nvidia.com/compute/nvidia-driver/redist/nvidia_driver/linux-x86_64/nvidia_driver-linux-x86_64-{{ .nvidia_driver_lts_version }}-archive.tar.xz
destination: nvidia.tar.xz
sha256: e66527c5c016d0bee9050a7a8573e38be86aad58adee2f40e808c88a4d0c6e90
sha512: 71624903e9d57a3f8a5dc7ffb2435991fe787b0609096e0e146d03ffef54bdb145940e8717510aa87cd6407c860e22938c840c126db7d4469c265f202db35e18
sha256: 44893fa59f87d20fee7c15573c17d7701ceb96e29a44013ee79fde30b245d045
sha512: d8ecaa0eef65aa2768eac41e836fe731c89431a8b2cd910962ab749c204701fb925ebca8943ead2e0456dc6b8568243349fb1e29c208216a17bdddb62b1f2a2d
# {{ end }} This in fact is YAML comment, but Go templating instruction is evaluated by bldr
env:
ARCH: {{ if eq .ARCH "aarch64"}}arm64{{ else if eq .ARCH "x86_64" }}x86_64{{ else }}unsupported{{ end }}
Expand All @@ -25,6 +25,8 @@ steps:
- |
cd kernel-open
patch -p1 </pkg/patches/nvtophys.patch
make -j $(nproc) SYSSRC=/src
install:
- |
Expand Down
Loading

0 comments on commit 4699763

Please sign in to comment.