Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

mod_perl(and others): compilation error with GCC 14 #2655

Open
space88man opened this issue Nov 28, 2024 · 0 comments
Open

mod_perl(and others): compilation error with GCC 14 #2655

space88man opened this issue Nov 28, 2024 · 0 comments
Labels
bug Something isn't working

Comments

@space88man
Copy link

space88man commented Nov 28, 2024

Describe the bug
Compilation error with GCC 14
Root cause: GCC 14 is much stricter

Update: patch file attached; some places where GCC 14 break - this is not exhaustive

Notes:

  • OS: Almalinux 8, compiler: gcc-toolset-14
  • gcc-toolset-13 works
  • perl version:
    • perl-interpreter-5.26.3-422.el8.0.1.x86_64
    • perl-devel-5.26.3-422.el8.0.1.x86_64

To Reproduce
Steps to reproduce the behavior:

  1. Use FreeSWITCH 1.10.12 source code
  2. Enable mod_perl in configure
  3. Use GCC 14 (from gcc-toolset-14)

Expected behavior
Compilation succeeds

Package version or git hash

  • 1.10.12

Trace logs

making all mod_perl
make[4]: Entering directory '/builddir/build/BUILD/freeswitch-1.10.12.-release/src/mod/languages/mod_perl'
  CC       mod_perl_la-mod_perl.lo
mod_perl.c: In function ‘perl_thread_run’:
mod_perl.c:275:25: error: implicit declaration of function ‘mod_perl_conjure_stream’ [-Wimplicit-function-declaration]                                                                                                                      
  275 |                         mod_perl_conjure_stream(my_perl, stream, "stream");
      |                         ^~~~~~~~~~~~~~~~~~~~~~~
mod_perl.c:277:33: error: implicit declaration of function ‘mod_perl_conjure_event’ [-Wimplicit-function-declaration]
  277 |                                 mod_perl_conjure_event(my_perl, stream->param_event, "env");
      |                                 ^~~~~~~~~~~~~~~~~~~~~~
In file included from ../../../../src/include/switch.h:121,
                 from mod_perl.c:47:
mod_perl.c: In function ‘mod_perl_load’:
../../../../src/include/switch_loadable_module.h:397:39: error: assignment to ‘switch_application_function_t’ {aka ‘void (*)(struct switch_core_session *, const char *)’} from incompatible pointer type ‘void (*)(switch_core_session_t *, char *)’ {aka ‘void (*)(struct switch_core_session *, char *)’} [-Wincompatible-pointer-types]
  397 |         app_int->application_function = funcptr; \
      |                                       ^
mod_perl.c:527:9: note: in expansion of macro ‘SWITCH_ADD_APP’
  527 |         SWITCH_ADD_APP(app_interface, "perl", NULL, NULL, perl_function, NULL, SAF_SUPPORT_NOMEDIA);
      |         ^~~~~~~~~~~~~~
make[4]: *** [Makefile:826: mod_perl_la-mod_perl.lo] Error 1
make[4]: Leaving directory '/builddir/build/BUILD/freeswitch-1.10.12.-release/src/mod/languages/mod_perl'
make[3]: *** [Makefile:727: mod_perl-all] Error 1
make[3]: Leaving directory '/builddir/build/BUILD/freeswitch-1.10.12.-release/src/mod'
make[2]: *** [Makefile:629: all-recursive] Error 1
make[2]: Leaving directory '/builddir/build/BUILD/freeswitch-1.10.12.-release/src'
make[1]: *** [Makefile:3712: all-recursive] Error 1
make[1]: Leaving directory '/builddir/build/BUILD/freeswitch-1.10.12.-release'
make: *** [Makefile:1434: all] Error 2

OTOH, success with GCC 13 (gcc-toolset-13)

[root@b91abec29250 mod_perl]# make V=1 mod_perl_la-mod_perl.lo
/bin/sh /builddir/build/BUILD/freeswitch-1.10.12.-release/libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I../../../../src/include -I../../../../libs/esl/src/include -I../../../../libs/xmlrpc-c  -w -DMULTIPLICITY `perl -MExtUtils::Embed -e ccopts` -DEMBED_PERL -I/builddir/build/BUILD/freeswitch-1.10.12.-release/libs/libteletone/src/   -I/usr/include/uuid  -I/builddir/build/BUILD/freeswitch-1.10.12.-release/src/include -I/builddir/build/BUILD/freeswitch-1.10.12.-release/src/include -I/builddir/build/BUILD/freeswitch-1.10.12.-release/libs/libteletone/src -fPIC -ffast-math -Wno-unused-result -Wno-misleading-indentation -fvisibility=hidden -DSWITCH_API_VISIBILITY=1 -DCJSON_API_VISIBILITY=1 -DHAVE_VISIBILITY=1 -g -ggdb -DHAVE_OPENSSL -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -c -o mod_perl_la-mod_perl.lo `test -f 'mod_perl.c' || echo './'`mod_perl.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I../../../../src/include -I../../../../libs/esl/src/include -I../../../../libs/xmlrpc-c -w -DMULTIPLICITY -D_REENTRANT -D_GNU_SOURCE -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fwrapv -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/lib64/perl5/CORE -DEMBED_PERL -I/builddir/build/BUILD/freeswitch-1.10.12.-release/libs/libteletone/src/ -I/usr/include/uuid -I/builddir/build/BUILD/freeswitch-1.10.12.-release/src/include -I/builddir/build/BUILD/freeswitch-1.10.12.-release/src/include -I/builddir/build/BUILD/freeswitch-1.10.12.-release/libs/libteletone/src -fPIC -ffast-math -Wno-unused-result -Wno-misleading-indentation -fvisibility=hidden -DSWITCH_API_VISIBILITY=1 -DCJSON_API_VISIBILITY=1 -DHAVE_VISIBILITY=1 -g -ggdb -DHAVE_OPENSSL -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -c mod_perl.c  -fPIC -DPIC -o .libs/mod_perl_la-mod_perl.o

Broken files according to GCC 14:
00-various-gcc-14.txt

List of known affected files

  • libs/iksemel/tools/hash.c
  • src/include/switch_loadable_module.h
  • src/mod/languages/mod_perl/mod_perl.c
  • src/mod/xml_int/mod_xml_rpc/mod_xml_rpc.c
@space88man space88man added the bug Something isn't working label Nov 28, 2024
@space88man space88man changed the title Compilation error with GCC 14 mod_perl: compilation error with GCC 14 Nov 28, 2024
@space88man space88man changed the title mod_perl: compilation error with GCC 14 mod_perl(and others): compilation error with GCC 14 Dec 1, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant