diff options
author | 2022-12-01 04:06:53 +0000 | |
---|---|---|
committer | 2022-12-01 04:06:53 +0000 | |
commit | cc66bf80ad125d2f2e682fc92fd1a3a2803fbb77 (patch) | |
tree | 89fe586eb7a8a5e427fdaed02d64bb36ecd584a4 | |
parent | dev-ruby/llhttp-ffi: Keyword 0.4.0 ppc64, #761550 (diff) | |
download | gentoo-cc66bf80ad125d2f2e682fc92fd1a3a2803fbb77.tar.gz gentoo-cc66bf80ad125d2f2e682fc92fd1a3a2803fbb77.tar.bz2 gentoo-cc66bf80ad125d2f2e682fc92fd1a3a2803fbb77.zip |
dev-perl/TermReadKey: fix configure w/ clang 16
Signed-off-by: Sam James <sam@gentoo.org>
-rw-r--r-- | dev-perl/TermReadKey/TermReadKey-2.380.0-r1.ebuild (renamed from dev-perl/TermReadKey/TermReadKey-2.380.0.ebuild) | 4 | ||||
-rw-r--r-- | dev-perl/TermReadKey/files/TermReadKey-2.380.0-configure-clang16.patch | 147 |
2 files changed, 151 insertions, 0 deletions
diff --git a/dev-perl/TermReadKey/TermReadKey-2.380.0.ebuild b/dev-perl/TermReadKey/TermReadKey-2.380.0-r1.ebuild index 667ae933ef4b..ade673b4b431 100644 --- a/dev-perl/TermReadKey/TermReadKey-2.380.0.ebuild +++ b/dev-perl/TermReadKey/TermReadKey-2.380.0-r1.ebuild @@ -16,3 +16,7 @@ KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv BDEPEND=" >=virtual/perl-ExtUtils-MakeMaker-6.580.0 " + +PATCHES=( + "${FILESDIR}"/${P}-configure-clang16.patch +) diff --git a/dev-perl/TermReadKey/files/TermReadKey-2.380.0-configure-clang16.patch b/dev-perl/TermReadKey/files/TermReadKey-2.380.0-configure-clang16.patch new file mode 100644 index 000000000000..c53eff0e150a --- /dev/null +++ b/dev-perl/TermReadKey/files/TermReadKey-2.380.0-configure-clang16.patch @@ -0,0 +1,147 @@ +https://github.com/jonathanstowe/TermReadKey/commit/1e3455135ac17f25ce0c4f01722a184a1fb5c4d1 + +From 1e3455135ac17f25ce0c4f01722a184a1fb5c4d1 Mon Sep 17 00:00:00 2001 +From: Florian Weimer <fweimer@redhat.com> +Date: Fri, 25 Nov 2022 17:28:56 +0100 +Subject: [PATCH] Configure.pm: Specify the return type of main as int + +Implicit int is a language feature that was removed in the 1999 +version of the C language. + +I could not fix DeducePrototype because I do not see how it +can work reliably with this approach. I don't think TermReadKey +uses this function. +--- a/Configure.pm ++++ b/Configure.pm +@@ -503,7 +503,7 @@ by the compiler is returned. + =cut + + sub CheckHeader { #Find a header (or set of headers) that exists +- ApplyHeaders("main(){}",@_); ++ ApplyHeaders("int main(){}",@_); + } + + =head2 CheckStructure +@@ -516,7 +516,7 @@ properly will be returned. B<undef> will be returned if nothing succeeds. + + sub CheckStructure { # Check existance of a structure. + my($structname,@headers) = @_; +- ApplyHeaders("main(){ struct $structname s;}",@headers); ++ ApplyHeaders("int main(){ struct $structname s;}",@headers); + } + + =head2 CheckField +@@ -530,7 +530,7 @@ be returned if nothing succeeds. + + sub CheckField { # Check for the existance of specified field in structure + my($structname,$fieldname,@headers) = @_; +- ApplyHeaders("main(){ struct $structname s1; struct $structname s2; ++ ApplyHeaders("int main(){ struct $structname s1; struct $structname s2; + s1.$fieldname = s2.$fieldname; }",@headers); + } + +@@ -544,7 +544,7 @@ that symbol will be returned. B<undef> will be returned if nothing succeeds. + + sub CheckLSymbol { # Check for linkable symbol + my($symbol,@libs) = @_; +- ApplyLibs("main() { void * f = (void *)($symbol); }",@libs); ++ ApplyLibs("int main() { void * f = (void *)($symbol); }",@libs); + } + + =head2 CheckSymbol +@@ -558,7 +558,8 @@ B<undef> will be returned if nothing succeeds. + + sub CheckSymbol { # Check for linkable/header symbol + my($symbol,@lookup) = @_; +- ApplyHeadersAndLibs("main() { void * f = (void *)($symbol); }",@lookup); ++ ApplyHeadersAndLibs("int main() { void * f = (void *)($symbol); }", ++ @lookup); + } + + =head2 CheckHSymbol +@@ -571,7 +572,7 @@ that symbol will be returned. B<undef> will be returned if nothing succeeds. + + sub CheckHSymbol { # Check for header symbol + my($symbol,@headers) = @_; +- ApplyHeaders("main() { void * f = (void *)($symbol); }",@headers); ++ ApplyHeaders("int main() { void * f = (void *)($symbol); }",@headers); + } + + =head2 CheckHPrototype (unexported) +@@ -591,7 +592,7 @@ sub CheckHPrototype { # Check for header prototype. + # names function doesn't exist, this call will _succeed_. Caveat Utilitor. + my($function,$proto,@headers) = @_; + my(@proto) = @{$proto}; +- ApplyHeaders("main() { extern ".$proto[0]." $function(". ++ ApplyHeaders("int main() { extern ".$proto[0]." $function(". + join(",",@proto[1..$#proto])."); }",@headers); + } + +@@ -612,7 +613,8 @@ Example: + sub GetSymbol { # Check for linkable/header symbol + my($symbol,$printf,$cast,@lookup) = @_,"",""; + scalar(ApplyHeadersAndLibsAndExecute( +- "main(){ printf(\"\%$printf\",($cast)($symbol));exit(0);}",@lookup)); ++ "int main(){ printf(\"\%$printf\",($cast)($symbol));exit(0);}", ++ @lookup)); + } + + =head2 GetTextSymbol +@@ -768,7 +770,7 @@ main(){ }"); + "double","long double", + "char","unsigned char","short int","unsigned short int"); + +- if(Compile("main(){flurfie a;}")) { @types = (); } ++ if(Compile("int main(){flurfie a;}")) { @types = (); } + + $Verbose=0; + +@@ -781,7 +783,7 @@ main(){ }"); + if(Compile(" + extern void func($types[$i]); + extern void func($types[$j]); +-main(){}")) { ++int main(){}")) { + print "Removing type $types[$j] because it equals $types[$i]\n"; + splice(@types,$j,1); + $j--; +@@ -795,7 +797,7 @@ main(){}")) { + if(Compile(" + $types[$i] func(void); + extern $types[$j] func(void); +-main(){}")) { ++int main(){}")) { + print "Removing type $types[$j] because it equals $types[$i]\n"; + splice(@types,$j,1); + $j--; +@@ -833,7 +835,7 @@ main(){}")) { + # Can we check the return type without worry about arguements? + if($checkreturn and (!$checknilargs or !$checkniletcargs)) { + for (@types) { +- if(ApplyHeaders("extern $_ $function(". ($checknilargs?"...":"").");main(){}",[@headers])) { ++ if(ApplyHeaders("extern $_ $function(". ($checknilargs?"...":"").");int main(){}",[@headers])) { + $rettype = $_; # Great, we found the return type. + last; + } +@@ -847,9 +849,9 @@ main(){}")) { + my $numargs=-1; + my $varargs=0; + for (0..32) { +- if(ApplyHeaders("main(){ $function(".join(",",("0") x $_).");}",@headers)) { ++ if(ApplyHeaders("int main(){ $function(".join(",",("0") x $_).");}",@headers)) { + $numargs=$_; +- if(ApplyHeaders("main(){ $function(".join(",",("0") x ($_+1)).");}",@headers)) { ++ if(ApplyHeaders("int main(){ $function(".join(",",("0") x ($_+1)).");}",@headers)) { + $varargs=1; + } + last +@@ -865,7 +867,7 @@ main(){}")) { + + if(@args>0 and !defined($rettype)) { + for (@types) { +- if(defined(ApplyHeaders("extern $_ $function(".join(",",@args).");main(){}",[@headers]))) { ++ if(defined(ApplyHeaders("extern $_ $function(".join(",",@args).");int main(){}",[@headers]))) { + $rettype = $_; # Great, we found the return type. + last; + } + |