Port Configure.pm to C99
Related to: <https://fedoraproject.org/wiki/Changes/PortingToModernC> <https://fedoraproject.org/wiki/Toolchain/PortingToModernC>
This commit is contained in:
parent
fa588f9218
commit
1109e0a0d5
139
perl-TermReadKey-configure-c99.patch
Normal file
139
perl-TermReadKey-configure-c99.patch
Normal file
@ -0,0 +1,139 @@
|
||||
Explicitly specify the return type of main as int for C99 compatibility.
|
||||
|
||||
Submitted upstream: <https://github.com/jonathanstowe/TermReadKey/pull/40>
|
||||
|
||||
diff --git a/Configure.pm b/Configure.pm
|
||||
index aabf136756ff2be5..82aab81c964c3350 100644
|
||||
--- 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;
|
||||
}
|
||||
@ -1,10 +1,11 @@
|
||||
Name: perl-TermReadKey
|
||||
Version: 2.38
|
||||
Release: 14%{?dist}
|
||||
Release: 15%{?dist}
|
||||
Summary: A perl module for simple terminal control
|
||||
License: (Copyright only) and (Artistic or GPL+)
|
||||
URL: https://metacpan.org/release/TermReadKey
|
||||
Source0: https://cpan.metacpan.org/authors/id/J/JS/JSTOWE/TermReadKey-%{version}.tar.gz
|
||||
Patch0: perl-TermReadKey-configure-c99.patch
|
||||
# Build
|
||||
BuildRequires: findutils
|
||||
BuildRequires: gcc
|
||||
@ -41,7 +42,7 @@ can just plug in "use Term::ReadKey" on any architecture and have a
|
||||
good likelyhood of it working.
|
||||
|
||||
%prep
|
||||
%setup -q -n TermReadKey-%{version}
|
||||
%autosetup -p1 -n TermReadKey-%{version}
|
||||
|
||||
%build
|
||||
CFLAGS="%{optflags}" perl Makefile.PL INSTALLDIRS=vendor NO_PACKLIST=1 NO_PERLLOCAL=1
|
||||
@ -62,6 +63,9 @@ make test
|
||||
%{_mandir}/man3/*
|
||||
|
||||
%changelog
|
||||
* Fri Nov 25 2022 Florian Weimer <fweimer@redhat.com> - 2.38-15
|
||||
- Port Configure.pm to C99
|
||||
|
||||
* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.38-14
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user