Skip Menu |

This queue is for tickets about the mod_perl CPAN distribution.

Report information
The Basics
Id: 101144
Status: resolved
Priority: 0/
Queue: mod_perl

People
Owner: Nobody in particular
Requestors: SREZIC [...] cpan.org
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: 2.0.8
Fixed in: (no value)



Subject: Compilation fails with perl 5.21.x (related to Perl___notused)
Compilation fails with perl 5.21.5 on a FreeBSD 9.2 system. On the same system mod_perl builds fine with 5.18.4 (and has only minor test failures): cd "src/modules/perl" && make ccache cc -I/usr/local/src/CPAN/build/mod_perl-2.0.8-O4McxP/src/modules/perl -I/usr/local/src/CPAN/build/mod_perl-2.0.8-O4McxP/xs -I/usr/local/include/apr-1 -I/usr/local/include/apr-1 -I/usr/include -I/usr/local/include -I/usr/local/include/db5 -I/usr/local/include/apache22 -DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_FORTIFY_SOURCE=2 -I/usr/perl5.21.5p/lib/5.21.5/amd64-freebsd/CORE -DMOD_PERL -DMP_COMPAT_1X -O2 -pipe -DPIC -fPIC -c mod_perl.c && mv mod_perl.o mod_perl.lo mod_perl.c: In function 'set_taint_var': mod_perl.c:165: error: 'Perl___notused' redeclared as different kind of symbol /usr/perl5.21.5p/lib/5.21.5/amd64-freebsd/CORE/inline.h:235: error: previous declaration of 'Perl___notused' was here *** [mod_perl.lo] Error code 1 Stop in /usr/local/src/CPAN/build/mod_perl-2.0.8-O4McxP/src/modules/perl. *** [modperl_lib] Error code 1
On Fri Dec 26 16:31:36 2014, SREZIC wrote: Show quoted text
> Compilation fails with perl 5.21.5 on a FreeBSD 9.2 system. On the > same system mod_perl builds fine with 5.18.4 (and has only minor test > failures): > > cd "src/modules/perl" && make > ccache cc -I/usr/local/src/CPAN/build/mod_perl-2.0.8- > O4McxP/src/modules/perl -I/usr/local/src/CPAN/build/mod_perl-2.0.8- > O4McxP/xs -I/usr/local/include/apr-1 -I/usr/local/include/apr-1 > -I/usr/include -I/usr/local/include -I/usr/local/include/db5 > -I/usr/local/include/apache22 -DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H > -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include > -D_FORTIFY_SOURCE=2 -I/usr/perl5.21.5p/lib/5.21.5/amd64-freebsd/CORE > -DMOD_PERL -DMP_COMPAT_1X -O2 -pipe -DPIC -fPIC -c mod_perl.c && mv > mod_perl.o mod_perl.lo > mod_perl.c: In function 'set_taint_var': > mod_perl.c:165: error: 'Perl___notused' redeclared as different kind > of symbol > /usr/perl5.21.5p/lib/5.21.5/amd64-freebsd/CORE/inline.h:235: error: > previous declaration of 'Perl___notused' was here > *** [mod_perl.lo] Error code 1 > > Stop in /usr/local/src/CPAN/build/mod_perl-2.0.8- > O4McxP/src/modules/perl. > *** [modperl_lib] Error code 1
Do you get the same failure with SVN trunk (https://svn.apache.org/repos/asf/perl/modperl/trunk)? We are close to releasing 2.0.9 now. For me (on Windows), trunk builds with perls <= 5.21.7. There is a known problem with 5.21.8 which mod_perl will need to address, hopefully before the release of 5.22.0.
On 2015-02-06 03:17:54, SHAY wrote: Show quoted text
> On Fri Dec 26 16:31:36 2014, SREZIC wrote:
> > Compilation fails with perl 5.21.5 on a FreeBSD 9.2 system. On the > > same system mod_perl builds fine with 5.18.4 (and has only minor test > > failures): > > > > cd "src/modules/perl" && make > > ccache cc -I/usr/local/src/CPAN/build/mod_perl-2.0.8- > > O4McxP/src/modules/perl -I/usr/local/src/CPAN/build/mod_perl-2.0.8- > > O4McxP/xs -I/usr/local/include/apr-1 -I/usr/local/include/apr-1 > > -I/usr/include -I/usr/local/include -I/usr/local/include/db5 > > -I/usr/local/include/apache22 -DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H > > -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include > > -D_FORTIFY_SOURCE=2 -I/usr/perl5.21.5p/lib/5.21.5/amd64-freebsd/CORE > > -DMOD_PERL -DMP_COMPAT_1X -O2 -pipe -DPIC -fPIC -c mod_perl.c && mv > > mod_perl.o mod_perl.lo > > mod_perl.c: In function 'set_taint_var': > > mod_perl.c:165: error: 'Perl___notused' redeclared as different kind > > of symbol > > /usr/perl5.21.5p/lib/5.21.5/amd64-freebsd/CORE/inline.h:235: error: > > previous declaration of 'Perl___notused' was here > > *** [mod_perl.lo] Error code 1 > > > > Stop in /usr/local/src/CPAN/build/mod_perl-2.0.8- > > O4McxP/src/modules/perl. > > *** [modperl_lib] Error code 1
> > > Do you get the same failure with SVN trunk > (https://svn.apache.org/repos/asf/perl/modperl/trunk)? We are close to > releasing 2.0.9 now. For me (on Windows), trunk builds with perls <= > 5.21.7. There is a known problem with 5.21.8 which mod_perl will need > to address, hopefully before the release of 5.22.0.
Yes, the same problem with perl 5.21.8 and r1655200.
On 2015-02-08 10:43:24, SREZIC wrote: Show quoted text
> On 2015-02-06 03:17:54, SHAY wrote:
> > On Fri Dec 26 16:31:36 2014, SREZIC wrote:
> > > Compilation fails with perl 5.21.5 on a FreeBSD 9.2 system. On the > > > same system mod_perl builds fine with 5.18.4 (and has only minor test > > > failures): > > > > > > cd "src/modules/perl" && make > > > ccache cc -I/usr/local/src/CPAN/build/mod_perl-2.0.8- > > > O4McxP/src/modules/perl -I/usr/local/src/CPAN/build/mod_perl-2.0.8- > > > O4McxP/xs -I/usr/local/include/apr-1 -I/usr/local/include/apr-1 > > > -I/usr/include -I/usr/local/include -I/usr/local/include/db5 > > > -I/usr/local/include/apache22 -DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H > > > -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include > > > -D_FORTIFY_SOURCE=2 -I/usr/perl5.21.5p/lib/5.21.5/amd64-freebsd/CORE > > > -DMOD_PERL -DMP_COMPAT_1X -O2 -pipe -DPIC -fPIC -c mod_perl.c && mv > > > mod_perl.o mod_perl.lo > > > mod_perl.c: In function 'set_taint_var': > > > mod_perl.c:165: error: 'Perl___notused' redeclared as different kind > > > of symbol > > > /usr/perl5.21.5p/lib/5.21.5/amd64-freebsd/CORE/inline.h:235: error: > > > previous declaration of 'Perl___notused' was here > > > *** [mod_perl.lo] Error code 1 > > > > > > Stop in /usr/local/src/CPAN/build/mod_perl-2.0.8- > > > O4McxP/src/modules/perl. > > > *** [modperl_lib] Error code 1
> > > > > > Do you get the same failure with SVN trunk > > (https://svn.apache.org/repos/asf/perl/modperl/trunk)? We are close to > > releasing 2.0.9 now. For me (on Windows), trunk builds with perls <= > > 5.21.7. There is a known problem with 5.21.8 which mod_perl will need > > to address, hopefully before the release of 5.22.0.
> > Yes, the same problem with perl 5.21.8 and r1655200.
And I see the same problem on a Debian/wheezy system.
On 2015-02-08 10:43:24, SREZIC wrote: Show quoted text
> On 2015-02-06 03:17:54, SHAY wrote:
> > On Fri Dec 26 16:31:36 2014, SREZIC wrote:
> > > Compilation fails with perl 5.21.5 on a FreeBSD 9.2 system. On the > > > same system mod_perl builds fine with 5.18.4 (and has only minor test > > > failures): > > > > > > cd "src/modules/perl" && make > > > ccache cc -I/usr/local/src/CPAN/build/mod_perl-2.0.8- > > > O4McxP/src/modules/perl -I/usr/local/src/CPAN/build/mod_perl-2.0.8- > > > O4McxP/xs -I/usr/local/include/apr-1 -I/usr/local/include/apr-1 > > > -I/usr/include -I/usr/local/include -I/usr/local/include/db5 > > > -I/usr/local/include/apache22 -DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H > > > -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include > > > -D_FORTIFY_SOURCE=2 -I/usr/perl5.21.5p/lib/5.21.5/amd64-freebsd/CORE > > > -DMOD_PERL -DMP_COMPAT_1X -O2 -pipe -DPIC -fPIC -c mod_perl.c && mv > > > mod_perl.o mod_perl.lo > > > mod_perl.c: In function 'set_taint_var': > > > mod_perl.c:165: error: 'Perl___notused' redeclared as different kind > > > of symbol > > > /usr/perl5.21.5p/lib/5.21.5/amd64-freebsd/CORE/inline.h:235: error: > > > previous declaration of 'Perl___notused' was here > > > *** [mod_perl.lo] Error code 1 > > > > > > Stop in /usr/local/src/CPAN/build/mod_perl-2.0.8- > > > O4McxP/src/modules/perl. > > > *** [modperl_lib] Error code 1
> > > > > > Do you get the same failure with SVN trunk > > (https://svn.apache.org/repos/asf/perl/modperl/trunk)? We are close to > > releasing 2.0.9 now. For me (on Windows), trunk builds with perls <= > > 5.21.7. There is a known problem with 5.21.8 which mod_perl will need > > to address, hopefully before the release of 5.22.0.
> > Yes, the same problem with perl 5.21.8 and r1655200. >
The same problem also with 5.21.10.
On 2015-03-21 12:06:25, SREZIC wrote: Show quoted text
> On 2015-02-08 10:43:24, SREZIC wrote:
> > On 2015-02-06 03:17:54, SHAY wrote:
> > > On Fri Dec 26 16:31:36 2014, SREZIC wrote:
> > > > Compilation fails with perl 5.21.5 on a FreeBSD 9.2 system. On the > > > > same system mod_perl builds fine with 5.18.4 (and has only minor test > > > > failures): > > > > > > > > cd "src/modules/perl" && make > > > > ccache cc -I/usr/local/src/CPAN/build/mod_perl-2.0.8- > > > > O4McxP/src/modules/perl -I/usr/local/src/CPAN/build/mod_perl-2.0.8- > > > > O4McxP/xs -I/usr/local/include/apr-1 -I/usr/local/include/apr-1 > > > > -I/usr/include -I/usr/local/include -I/usr/local/include/db5 > > > > -I/usr/local/include/apache22 -DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H > > > > -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include > > > > -D_FORTIFY_SOURCE=2 -I/usr/perl5.21.5p/lib/5.21.5/amd64-freebsd/CORE > > > > -DMOD_PERL -DMP_COMPAT_1X -O2 -pipe -DPIC -fPIC -c mod_perl.c && mv > > > > mod_perl.o mod_perl.lo > > > > mod_perl.c: In function 'set_taint_var': > > > > mod_perl.c:165: error: 'Perl___notused' redeclared as different kind > > > > of symbol > > > > /usr/perl5.21.5p/lib/5.21.5/amd64-freebsd/CORE/inline.h:235: error: > > > > previous declaration of 'Perl___notused' was here > > > > *** [mod_perl.lo] Error code 1 > > > > > > > > Stop in /usr/local/src/CPAN/build/mod_perl-2.0.8- > > > > O4McxP/src/modules/perl. > > > > *** [modperl_lib] Error code 1
> > > > > > > > > Do you get the same failure with SVN trunk > > > (https://svn.apache.org/repos/asf/perl/modperl/trunk)? We are close to > > > releasing 2.0.9 now. For me (on Windows), trunk builds with perls <= > > > 5.21.7. There is a known problem with 5.21.8 which mod_perl will need > > > to address, hopefully before the release of 5.22.0.
> > > > Yes, the same problem with perl 5.21.8 and r1655200. > >
> > The same problem also with 5.21.10.
Maybe it has to do with a changed declaration (?) of Perl___notused. And maybe this gets used only in non-threaded builds, which might explain why you don't see this problem in a Windows build (probably with threads enabled). Anyway, if I disable the following lines in modperl_perl_includes.h: /* #undef dNOOP #define dNOOP extern int __attribute__ ((unused)) Perl___notused */ then compilation works.
Subject: Re: [rt.cpan.org #101144] Compilation fails with perl 5.21.x (related to Perl___notused)
Date: Mon, 23 Mar 2015 17:35:20 +0000
To: bug-mod_perl [...] rt.cpan.org
From: Zefram <zefram [...] fysh.org>
The problem is that mod_perl overrides Perl's definition of dNOOP with one that uses the same symbol in an incompatible way. Failures start with Perl 5.21.1 because this version introduced some inline function definitions that can end up using dNOOP internally. The core inline.h is processed too early for mod_perl's override, so functions defined there and functions defined in mod_perl end up using different versions of dNOOP, exposing the incompatibility. Presumably mod_perl is trying to avoid the warnings that one used to get with Perl 5.6. That was fixed a long time ago, so mod_perl no longer needs an override. However, if it wants to keep the override, it could avoid the clash of dNOOP definitions by using a different symbol. Attached patch implements. -zefram

Message body is not shown because sender requested not to inline it.

On Mon Mar 23 13:35:44 2015, zefram@fysh.org wrote: Show quoted text
> The problem is that mod_perl overrides Perl's definition of dNOOP with > one that uses the same symbol in an incompatible way. Failures start > with Perl 5.21.1 because this version introduced some inline function > definitions that can end up using dNOOP internally. The core inline.h > is processed too early for mod_perl's override, so functions defined > there and functions defined in mod_perl end up using different versions > of dNOOP, exposing the incompatibility. > > Presumably mod_perl is trying to avoid the warnings that one used > to get with Perl 5.6. That was fixed a long time ago, so mod_perl no > longer needs an override. However, if it wants to keep the override, it > could avoid the clash of dNOOP definitions by using a different symbol. > Attached patch implements. > > -zefram
Thanks for the patch (and to Slaven for the report), which is now applied in revision r1670740.