diff options
author | V3n3RiX <venerix@koprulu.sector> | 2023-01-19 05:58:32 +0000 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2023-01-19 05:58:32 +0000 |
commit | e1d95cd8c0944013a250bde528253138bffa2e65 (patch) | |
tree | 08cbcfc886960c44d0c296e7144f9fd430b3a838 /dev-lang/perl/files/perl-5.36.0-clang16.patch | |
parent | d39fec05a2fac9978cd77634744637509744b561 (diff) |
gentoo auto-resync : 19:01:2023 - 05:58:31
Diffstat (limited to 'dev-lang/perl/files/perl-5.36.0-clang16.patch')
-rw-r--r-- | dev-lang/perl/files/perl-5.36.0-clang16.patch | 129 |
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" + |