Merge pull request #262580 from reckenrode/dante-fix

dante: fix build with clang 16
This commit is contained in:
toonn 2023-11-03 16:40:28 +01:00 committed by GitHub
commit 81093a6c4a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 41 additions and 2 deletions

View File

@ -0,0 +1,34 @@
diff -ur a/osdep.m4 b/osdep.m4
--- a/osdep.m4 2017-01-18 09:11:20.000000000 -0500
+++ b/osdep.m4 2023-10-21 12:43:59.464797030 -0400
@@ -381,6 +381,7 @@
unset have_sa_len
AC_MSG_CHECKING([for sa_len in sockaddr])
AC_TRY_COMPILE([
+#include <stdint.h>
#include <sys/types.h>
#include <sys/socket.h>
], [struct sockaddr sa;
@@ -397,12 +398,13 @@
unset sa_len_type_found
for type in uint8_t "unsigned char"; do
AC_TRY_COMPILE([
+#include <stdint.h>
#include <sys/types.h>
#include <sys/socket.h>], [
struct sockaddr sa;
$type *sa_len_ptr;
sa_len_ptr = &sa.sa_len;
-sa_len_ptr++; /* use to avoid warning/error */],
+(*sa_len_ptr)++; /* use to avoid warning/error */],
[AC_DEFINE_UNQUOTED(sa_len_type, [$type], [sa_len type])
sa_len_type_found=t
break])
@@ -636,6 +638,7 @@
in_port_t, in_addr_t],
, ,
[
+#include <stdint.h>
#include <sys/types.h>
#include <netinet/in.h>
])

View File

@ -22,12 +22,17 @@ stdenv.mkDerivation rec {
dontAddDisableDepTrack = stdenv.isDarwin;
patches = lib.optionals remove_getaddrinfo_checks [
patches = [
# Fixes several issues with `osint.m4` that causes incorrect check failures when using newer
# versions of clang: missing `stdint.h` for `uint8_t` and unused `sa_len_ptr`.
./clang-osint-m4.patch
] ++ lib.optionals remove_getaddrinfo_checks [
(fetchpatch {
name = "0002-osdep-m4-Remove-getaddrinfo-too-low-checks.patch";
url = "https://raw.githubusercontent.com/buildroot/buildroot/master/package/dante/0002-osdep-m4-Remove-getaddrinfo-too-low-checks.patch";
sha256 = "sha256-e+qF8lB5tkiA7RlJ+tX5O6KxQrQp33RSPdP1TxU961Y=";
}) ];
})
];
postPatch = ''
substituteInPlace include/redefgen.sh --replace 'PATH=/bin:/usr/bin:/sbin:/usr/sbin' ""