summaryrefslogtreecommitdiff
path: root/dev-lang/perl/files
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2023-01-19 05:58:32 +0000
committerV3n3RiX <venerix@koprulu.sector>2023-01-19 05:58:32 +0000
commite1d95cd8c0944013a250bde528253138bffa2e65 (patch)
tree08cbcfc886960c44d0c296e7144f9fd430b3a838 /dev-lang/perl/files
parentd39fec05a2fac9978cd77634744637509744b561 (diff)
gentoo auto-resync : 19:01:2023 - 05:58:31
Diffstat (limited to 'dev-lang/perl/files')
-rw-r--r--dev-lang/perl/files/perl-5.36.0-clang16.patch129
1 files changed, 129 insertions, 0 deletions
diff --git a/dev-lang/perl/files/perl-5.36.0-clang16.patch b/dev-lang/perl/files/perl-5.36.0-clang16.patch
new file mode 100644
index 000000000000..dc7305a3acf1
--- /dev/null
+++ b/dev-lang/perl/files/perl-5.36.0-clang16.patch
@@ -0,0 +1,129 @@
+https://bugs.gentoo.org/879857
+https://github.com/Perl/perl5/commit/e1ca9a418fa6b7d26fbb1931c9164141035262c3
+https://github.com/Perl/perl5/commit/fc35cee89c1a42558f50a37a6b4d5186b77f058b
+
+From e1ca9a418fa6b7d26fbb1931c9164141035262c3 Mon Sep 17 00:00:00 2001
+From: Peter Levine <plevine457@gmail.com>
+Date: Tue, 17 Jan 2023 02:47:12 -0500
+Subject: [PATCH] Add parameter types to declarations for clang-16
+
+ANSI C style function declarations without parameter types are errors with clang-16.
+--- a/Configure
++++ b/Configure
+@@ -7927,10 +7927,10 @@ $cat >malloc.c <<END
+ #include <stdlib.h>
+ #endif
+ #ifdef TRY_MALLOC
+-void *malloc();
++void *malloc(size_t);
+ #endif
+ #ifdef TRY_FREE
+-void free();
++void free(void *);
+ #endif
+ END
+ case "$malloctype" in
+
+From fc35cee89c1a42558f50a37a6b4d5186b77f058b Mon Sep 17 00:00:00 2001
+From: Florian Weimer <fweimer@redhat.com>
+Date: Tue, 17 Jan 2023 19:07:54 +0100
+Subject: [PATCH] Configure: Add various C99 compatibility improvements
+
+Two C99 compatibility issues are fixed by these changes: Return
+types are made explicit where they previously defaulted to int,
+and all called functions are now declared explicitly (either by
+including additional headers, or by adding prototypes manually).
+
+This avoids implict ints and implicit function declarations,
+both legacy C language features removed in the 1999 revision
+of the language.
+
+Verified with an instrumented GCC compiler on GNU/Linux.
+--- a/Configure
++++ b/Configure
+@@ -4655,7 +4655,7 @@ esac
+ # so we will take those off from locincpth.
+ case "$gccversion" in
+ 3.*)
+- echo "main(){}">try.c
++ echo "int main(){}">try.c
+ for incdir in $locincpth; do
+ warn=`$cc $ccflags -I$incdir -c try.c 2>&1 | \
+ grep '^c[cp]p*[01]: warning: changing search order '`
+@@ -5798,6 +5798,7 @@ case "$intsize" in
+ #ifdef I_STDLIB
+ #include <stdlib.h>
+ #endif
++#include <stdio.h>
+ int main()
+ {
+ printf("intsize=%d;\n", (int)sizeof(int));
+@@ -6871,6 +6872,7 @@ case "$doublesize" in
+ #ifdef I_STDLIB
+ #include <stdlib.h>
+ #endif
++#include <stdio.h>
+ int main()
+ {
+ printf("%d\n", (int)sizeof(double));
+@@ -12660,7 +12662,7 @@ case "$dlsrc" in
+ dl_dlopen.xs)
+ echo "Checking whether your dlsym() needs a leading underscore ..." >&4
+ $cat >dyna.c <<'EOM'
+-fred () { }
++void fred (void) { }
+ EOM
+
+ $cat >fred.c<<EOM
+@@ -12679,7 +12681,7 @@ $cat >fred.c<<EOM
+ #include <link.h>
+ #endif
+
+-extern int fred() ;
++extern void fred(void) ;
+
+ int main()
+ {
+@@ -13713,6 +13715,7 @@ $cat >try.c <<EOP
+ #ifdef I_STDLIB
+ #include <stdlib.h>
+ #endif
++#include <string.h>
+ #define FILE_ptr(fp) $stdio_ptr
+ #define FILE_cnt(fp) $stdio_cnt
+ int main() {
+@@ -16220,6 +16223,7 @@ echo "Checking to see if your libm supports _LIB_VERSION..." >&4
+ $cat >try.c <<EOCP
+ #include <unistd.h>
+ #include <math.h>
++#include <stdio.h>
+ int main (int argc, char *argv[])
+ {
+ printf ("%d\n", _LIB_VERSION);
+@@ -22168,13 +22172,15 @@ pager="$ans"
+ : see if ar generates random libraries by itself
+ echo " "
+ echo "Checking how to generate random libraries on your machine..." >&4
+-echo 'int bar1() { return bar2(); }' > bar1.c
++echo 'extern int bar2(); int bar1() { return bar2(); }' > bar1.c
+ echo 'int bar2() { return 2; }' > bar2.c
+ $cat > foo.c <<EOP
+ #$i_stdlib I_STDLIB
+ #ifdef I_STDLIB
+ #include <stdlib.h>
+ #endif
++#include <stdio.h>
++extern int bar1();
+ int main() { printf("%d\n", bar1()); exit(0); }
+ EOP
+ $cc $ccflags -c bar1.c >/dev/null 2>&1
+@@ -22400,7 +22406,7 @@ EOM
+ for nfd in 'int' 'size_t' 'unsigned long' 'unsigned' ; do
+ for tmo in 'struct timeval *' 'const struct timeval *'; do
+ case "$val" in
+- '') try="$extern_C select _(($nfd, $xxx, $xxx, $xxx, $tmo));"
++ '') try="$extern_C int select _(($nfd, $xxx, $xxx, $xxx, $tmo));"
+ if ./protochk "$try" $hdrs; then
+ echo "Your system accepts $xxx."
+ val="$xxx"
+