Bug 2259168

Summary: perl-re-engine-PCRE-0.17-37.fc40 FTBFS: PCRE.h:22:5: error: initialization of ‘REGEXP * (*)(PerlInterpreter *, SV * const, U32)’ {aka ‘struct p5rx * (*)(struct interpreter *, struct sv * const, unsigned int)’} from incompatible pointer type
Product: [Fedora] Fedora Reporter: Petr Pisar <ppisar>
Component: perl-re-engine-PCREAssignee: Petr Pisar <ppisar>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: perl-devel, ppisar
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
URL: https://koschei.fedoraproject.org/package/perl-re-engine-PCRE
Whiteboard:
Fixed In Version: perl-re-engine-PCRE-0.17-39.fc40 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2024-01-25 16:44:02 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 2231791    

Description Petr Pisar 2024-01-19 09:36:25 UTC
perl-re-engine-PCRE-0.17-37.fc40 fails to build in Fedora 40:

gcc -c   -D_REENTRANT -D_GNU_SOURCE -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wno-complain-wrong-lang -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fwrapv -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wno-complain-wrong-lang -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64   -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer   -DVERSION=\"0.17\" -DXS_VERSION=\"0.17\" -fPIC "-I/usr/lib64/perl5/CORE"   PCRE.c
In file included from PCRE.xs:7:
PCRE.h:5:44: warning: duplicate ‘const’ declaration specifier [-Wduplicate-decl-specifier]
    5 | EXTERN_C REGEXP * PCRE_comp(pTHX_ const SV const *, const U32);
      |                                            ^~~~~
PCRE.h:22:5: error: initialization of ‘REGEXP * (*)(PerlInterpreter *, SV * const,  U32)’ {aka ‘struct p5rx * (*)(struct interpreter *, struct sv * const,  unsigned int)’} from incompatible pointer type ‘REGEXP * (*)(PerlInterpreter *, const SV *, const U32)’ {aka ‘struct p5rx * (*)(struct interpreter *, const struct sv *, const unsigned int)’} [-Wincompatible-pointer-types]
   22 |     PCRE_comp,
      |     ^~~~~~~~~
PCRE.h:22:5: note: (near initialization for ‘pcre_engine.comp’)
PCRE.h:23:5: error: initialization of ‘I32 (*)(PerlInterpreter *, REGEXP * const,  char *, char *, char *, ssize_t,  SV *, void *, U32)’ {aka ‘int (*)(struct interpreter *, struct p5rx * const,  char *, char *, char *, long int,  struct sv *, void *, unsigned int)’} from incompatible pointer type ‘I32 (*)(PerlInterpreter *, REGEXP * const,  char *, char *, char *, I32,  SV *, void *, U32)’ {aka ‘int (*)(struct interpreter *, struct p5rx * const,  char *, char *, char *, int,  struct sv *, void *, unsigned int)’} [-Wincompatible-pointer-types]
   23 |     PCRE_exec,
      |     ^~~~~~~~~
PCRE.h:23:5: note: (near initialization for ‘pcre_engine.exec’)
PCRE.h:24:5: error: initialization of ‘char * (*)(PerlInterpreter *, REGEXP * const,  SV *, const char * const,  char *, char *, const U32,  re_scream_pos_data *)’ {aka ‘char * (*)(struct interpreter *, struct p5rx * const,  struct sv *, const char * const,  char *, char *, const unsigned int,  struct re_scream_pos_data_s *)’} from incompatible pointer type ‘char * (*)(PerlInterpreter *, REGEXP * const,  SV *, char *, char *, U32,  re_scream_pos_data *)’ {aka ‘char * (*)(struct interpreter *, struct p5rx * const,  struct sv *, char *, char *, unsigned int,  struct re_scream_pos_data_s *)’} [-Wincompatible-pointer-types]
   24 |     PCRE_intuit,
      |     ^~~~~~~~~~~

A difference between passing and failing build roots is at <https://koschei.fedoraproject.org/build/17079640>. This failure is probably triggered by upgrading gcc from 13.2.1-6.fc40 to 14.0.1-0.1.fc40.