Skip Menu |

This queue is for tickets about the Wx CPAN distribution.

Report information
The Basics
Id: 47488
Status: resolved
Priority: 0/
Queue: Wx

People
Owner: Nobody in particular
Requestors: mmaslano [...] redhat.com
Cc:
AdminCc:

Bug Information
Severity: Normal
Broken in: 0.91
Fixed in: (no value)



Subject: build options
I'm not familiar with this module, however I run into some building issues. I have still the same spec file with the same options for compiler, but v0.89 was allright and 0.90 isn't. Reproducer: % perl /usr/share/doc/perl-Wx-0.91/samples/trivial/trivial.pl perl: symbol lookup error: /usr/lib64/perl5/vendor_perl/5.10.0/x86_64-linux-thread-multi/auto/Wx/Wx.so: undefined symbol: Perl_Guse_safe_putenv_ptr The symbol isn't included in Wx.so because of this code: --- Wx-0.91/Wx.xs.old<->2009-07-01 12:25:23.000000000 +0200 +++ Wx-0.91/Wx.xs<----->2009-07-01 12:42:00.575586305 +0200 @@ -274,7 +274,7 @@ Load() . if( wxPerlAppCreated || wxTopLevelWindows.GetCount() > 0 ) return; -#if defined(DEBUGGING) && !defined(PERL_USE_SAFE_PUTENV) +#if defined(DEBUGGING) && defined(PERL_USE_SAFE_PUTENV) // avoid crash on exit in Fedora (and other DEBUGGING Perls) PL_use_safe_putenv = 1; #endif The compile options has changed and now is rpm using -DDEBUGING and -DPERL_USE_SAFE_PUTENV together. I try to build Padre with recompiled Wx and it seems to be working. Probably this condition should be rewritten or removed as obsolete?
On Wed Jul 01 07:21:31 2009, mmaslano@redhat.com wrote: Show quoted text
> I'm not familiar with this module, however I run into some building
issues. Show quoted text
> I have still the same spec file with the same options for compiler, but > v0.89 was allright and 0.90 isn't. > > Reproducer: > % perl /usr/share/doc/perl-Wx-0.91/samples/trivial/trivial.pl > perl: symbol lookup error: >
/usr/lib64/perl5/vendor_perl/5.10.0/x86_64-linux-thread-multi/auto/Wx/Wx.so: Show quoted text
> undefined symbol: Perl_Guse_safe_putenv_ptr > > The symbol isn't included in Wx.so because of this code: > --- Wx-0.91/Wx.xs.old<->2009-07-01 12:25:23.000000000 +0200 > +++ Wx-0.91/Wx.xs<----->2009-07-01 12:42:00.575586305 +0200 > @@ -274,7 +274,7 @@ Load() > . > if( wxPerlAppCreated || wxTopLevelWindows.GetCount() > 0 ) > return; > -#if defined(DEBUGGING) && !defined(PERL_USE_SAFE_PUTENV) > +#if defined(DEBUGGING) && defined(PERL_USE_SAFE_PUTENV) > // avoid crash on exit in Fedora (and other DEBUGGING Perls) > PL_use_safe_putenv = 1; > #endif > > The compile options has changed and now is rpm using -DDEBUGING and > -DPERL_USE_SAFE_PUTENV together. I try to build Padre with recompiled Wx > and it seems to be working. Probably this condition should be rewritten > or removed as obsolete?
According to this snippet in perlvars.h: #ifndef PERL_USE_SAFE_PUTENV PERLVARI(Guse_safe_putenv, int, 1) #endif PL_use_safe_putenv is only defined in libperl if PERL_USE_SAFE_PUTENV is not used, so the condition in wxPerl is correct. Maybe the Perl RPM was built with -DPERL_USE_SAFE_PUTENV but the flag was not passed to wxPerl? Regards, Mattia
From: skasal [...] redhat.com
On Sun Jul 05 11:04:58 2009, MBARBON wrote: Show quoted text
> Maybe the Perl RPM was built with -DPERL_USE_SAFE_PUTENV but the > flag was not passed to wxPerl?
Indeed, this was the case. Specifically, the option was passed through -Doptimize instead of -Accflags, which was the reason why the build pf Wx have not detected it. This issue in Fedora perl is being fixed. Consequently, this problem will disappear with the next rebuild of the Wx module.