git: 38557f2f4558 - main - shells/ksh*: Permanently fix LLVM15 build
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 15 Feb 2023 16:56:00 UTC
The branch main has been updated by cy:
URL: https://cgit.FreeBSD.org/ports/commit/?id=38557f2f4558bb032842d36050b7ce7dd1a3bfd3
commit 38557f2f4558bb032842d36050b7ce7dd1a3bfd3
Author: Cy Schubert <cy@FreeBSD.org>
AuthorDate: 2023-02-15 15:18:07 +0000
Commit: Cy Schubert <cy@FreeBSD.org>
CommitDate: 2023-02-15 16:55:03 +0000
shells/ksh*: Permanently fix LLVM15 build
Fix aso atomics broken by LLVM:
/wrkdirs/usr/ports/shells/ksh/work/ksh-1.0.4/src/lib/libast/aso/aso.c
/wrkdirs/usr/ports/shells/ksh/work/ksh-1.0.4/src/lib/libast/aso/aso.c:839:10: error: incompatible integer to pointer conversion passing 'uint64_t' (aka 'unsigned long') to parameter of type 'void *' [-Wint-conversion]
return _aso_casptr((void**)p, o, n);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
./FEATURE/aso:19:66: note: expanded from macro '_aso_casptr'
^~~~~~~~~~~
/wrkdirs/usr/ports/shells/ksh/work/ksh-1.0.4/src/lib/libast/aso/aso.c:839:10: error: incompatible integer to pointer conversion passing 'uint64_t' (aka 'unsigned long') to parameter of type 'void *' [-Wint-conversion]
return _aso_casptr((void**)p, o, n);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
./FEATURE/aso:19:78: note: expanded from macro '_aso_casptr'
^~~~~~~~~~~
2 errors generated.
mamake [lib/libast]: *** exit code 1 making aso.o
mamake: *** exit code 1 making lib/libast
mamake: *** exit code 1 making all
package: creating flat view
package: make failed at Fri Feb 10 06:00:01 UTC 2023 in /wrkdirs/usr/ports/shells/ksh/work/ksh-1.0.4/arch/freebsd14.amd64-64
*** Error code 1
---
shells/ksh-devel/Makefile | 2 +-
shells/ksh-devel/files/patch-src_lib_libast_aso_aso.c | 11 +++++++++++
shells/ksh/Makefile | 2 +-
shells/ksh/files/patch-src_lib_libast_aso_aso.c | 11 +++++++++++
4 files changed, 24 insertions(+), 2 deletions(-)
diff --git a/shells/ksh-devel/Makefile b/shells/ksh-devel/Makefile
index 7f2844d1855d..29496a0e319c 100644
--- a/shells/ksh-devel/Makefile
+++ b/shells/ksh-devel/Makefile
@@ -50,7 +50,7 @@ KSH93D_DESC= Install to ${PREFIX}/bin/ksh93d (development)
CFLAGS+= -DMAP_TYPE
LDFLAGS+= -lm
-MAKE_ENV= CCFLAGS="-Wno-unused-value -Wno-parentheses -Wno-logical-op-parentheses -Wno-int-conversion" CFLAGS="${CFLAGS}"
+MAKE_ENV= CCFLAGS="-Wno-unused-value -Wno-parentheses -Wno-logical-op-parentheses" CFLAGS="${CFLAGS}"
STATIC_MAKE_ENV= LDFLAGS+=-static
diff --git a/shells/ksh-devel/files/patch-src_lib_libast_aso_aso.c b/shells/ksh-devel/files/patch-src_lib_libast_aso_aso.c
new file mode 100644
index 000000000000..6ab5be771f7a
--- /dev/null
+++ b/shells/ksh-devel/files/patch-src_lib_libast_aso_aso.c
@@ -0,0 +1,11 @@
+--- src/lib/libast/aso/aso.c.orig 2023-01-11 01:32:04.000000000 -0800
++++ src/lib/libast/aso/aso.c 2023-02-15 06:41:07.380213000 -0800
+@@ -836,7 +836,7 @@
+
+ #if defined(_aso_casptr)
+ if (!state.lockf)
+- return _aso_casptr((void**)p, o, n);
++ return _aso_cas64((void**)p, o, n);
+ #endif
+ k = lock(state.data, 0, p);
+ if (*(void* volatile*)p == o)
diff --git a/shells/ksh/Makefile b/shells/ksh/Makefile
index e006024685ed..ca0d38165128 100644
--- a/shells/ksh/Makefile
+++ b/shells/ksh/Makefile
@@ -44,7 +44,7 @@ KSH93N_DESC= Install to ${PREFIX}/bin/ksh93n (new)
CFLAGS+= -DMAP_TYPE
LDFLAGS+= -lm
-MAKE_ENV= CCFLAGS="-Wno-unused-value -Wno-parentheses -Wno-logical-op-parentheses -Wno-int-conversion" CFLAGS="${CFLAGS}"
+MAKE_ENV= CCFLAGS="-Wno-unused-value -Wno-parentheses -Wno-logical-op-parentheses" CFLAGS="${CFLAGS}"
STATIC_MAKE_ENV= LDFLAGS+=-static
diff --git a/shells/ksh/files/patch-src_lib_libast_aso_aso.c b/shells/ksh/files/patch-src_lib_libast_aso_aso.c
new file mode 100644
index 000000000000..891c022d470e
--- /dev/null
+++ b/shells/ksh/files/patch-src_lib_libast_aso_aso.c
@@ -0,0 +1,11 @@
+--- src/lib/libast/aso/aso.c.orig 2022-10-21 20:05:14.000000000 -0700
++++ src/lib/libast/aso/aso.c 2023-02-15 06:39:08.156515000 -0800
+@@ -836,7 +836,7 @@
+
+ #if defined(_aso_casptr)
+ if (!state.lockf)
+- return _aso_casptr((void**)p, o, n);
++ return _aso_cas64((void**)p, o, n);
+ #endif
+ k = lock(state.data, 0, p);
+ if (*(void* volatile*)p == o)