You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucy.apache.org by Nick Wellnhofer <we...@aevum.de> on 2012/11/01 20:18:55 UTC
[lucy-dev] ActiveState PPM build failures
I had a deeper look into the ActiveState PPM failures, and they're not related to MSVC6 as I assumed on lucy-user. It would be really nice to make the PPM build work.
32-bit, Perl 5.12 and 5.14
--------------------------
http://ppm4.activestate.com/MSWin32-x86/5.12/1200/L/LO/LOGIE/Lucy-0.3.2.d/log-20120710T215703.txt
http://ppm4.activestate.com/MSWin32-x86/5.14/1400/L/LO/LOGIE/Lucy-0.3.2.d/log-20120711T022317.txt
This is the same problem that was reported here:
http://mail-archives.apache.org/mod_mbox/lucy-user/201109.mbox/%3c662C6E983E7C4874833424B8642F2779@teddy%3e
No idea what's going on there but note that the "/TP" flag (C++ mode) won't appear on the command line because it should be in the ".ccs" compiler script.
32-bit, Perl 5.16
-----------------
http://ppm4.activestate.com/MSWin32-x86/5.16/1600/L/LO/LOGIE/Lucy-0.3.2.d/log-20120816T225009.txt
"Can't locate object method "new" via package "Lucy::Build::SUPER" at buildlib/Lucy/Build.pm line 143."
Strangeā¦
64-bit, Perl 5.12, 5.14 and 5.16
--------------------------------
http://ppm4.activestate.com/MSWin32-x64/5.12/1200/L/LO/LOGIE/Lucy-0.3.2.d/log-20120710T212100.txt
http://ppm4.activestate.com/MSWin32-x64/5.14/1400/L/LO/LOGIE/Lucy-0.3.2.d/log-20120711T021911.txt
http://ppm4.activestate.com/MSWin32-x64/5.16/1600/L/LO/LOGIE/Lucy-0.3.2.d/log-20120813T075017.txt
Charmonizer build fails with "unresolved external symbol __security_check_cookie"
I think this is related to the following bug that I reported to ActiveState:
http://bugs.activestate.com/show_bug.cgi?id=93797
Nick
Re: [lucy-dev] ActiveState PPM build failures
Posted by Nick Wellnhofer <we...@aevum.de>.
On 02/11/2012 02:24, Marvin Humphrey wrote:
> I see from your comment on <https://issues.apache.org/jira/browse/LUCY-211>
> that we have a workaround for these. (Redefining `for`, oi...)
The next step is to make CFC use Charmonizer. We might want to create a
separate ticket for that.
> Maybe that's base.pm prior to 2.18 misbehaving? That error message indicates
> that the superclass was not loaded.
>
> $ perl -le 'package Foo; Foo->SUPER::new'
> Can't locate object method "new" via package "Foo::SUPER" at -e line 1.
>
> Should we make this change to Lucy::Build?
>
> -use base qw( Clownfish::CFC::Perl::Build );
> +use Clownfish::CFC::Perl::Build;
> +BEGIN { push our @ISA, 'Clownfish::CFC::Perl::Build' }
I have no idea. I also couldn't reproduce it with ActivePerl
5.16.1.1601, 32-bit.
> I think this problem may have gone away in trunk as a side effect of recent
> changes to Charmonizer. The problem occurs during the linking phase for
> Charmonizer, but that linking phase is handled a different way now that
> Charmonizer gets bundled up into a single amalgamated C file. Compiling
> charmonizer during Lucy's Perl build is now one simple command (which doesn't
> use any of the libs specified by the Perl Config module):
>
> cl charmonizer.c /Fecharmonize.exe
>
> That linking bug you reported may come back during another linking phase,
> though -- like when we try to link together Lucy.dll from all the *.obj files.
I think it's something else. IIRC the problem that I had when building
Lucy with 64-bit ActivePerl some months ago was that it tried to link
against bufferoverflowU.lib which wasn't present on my system. That's
what my bug report is about.
From what I understand bufferoverflowU.lib is only needed with the
Windows Server 2003 Platform SDK compiler which is what ActiveState uses
for 64-bit builds.
The easiest solution might be to compile with /GS- which should disable
buffer overrun protection completely. Otherwise Charmonizer has to check
whether linking against that library is needed.
Nick
Re: [lucy-dev] ActiveState PPM build failures
Posted by Marvin Humphrey <ma...@rectangular.com>.
On Thu, Nov 1, 2012 at 12:18 PM, Nick Wellnhofer <we...@aevum.de> wrote:
> I had a deeper look into the ActiveState PPM failures, and they're not
> related to MSVC6 as I assumed on lucy-user. It would be really nice to make
> the PPM build work.
+1
Thanks for looking into this, Nick!
> 32-bit, Perl 5.12 and 5.14
> --------------------------
>
> http://ppm4.activestate.com/MSWin32-x86/5.12/1200/L/LO/LOGIE/Lucy-0.3.2.d/log-20120710T215703.txt
> http://ppm4.activestate.com/MSWin32-x86/5.14/1400/L/LO/LOGIE/Lucy-0.3.2.d/log-20120711T022317.txt
>
> This is the same problem that was reported here:
>
> http://mail-archives.apache.org/mod_mbox/lucy-user/201109.mbox/%3c662C6E983E7C4874833424B8642F2779@teddy%3e
>
> No idea what's going on there but note that the "/TP" flag (C++ mode) won't appear on the command line because it should be in the ".ccs" compiler script.
I see from your comment on <https://issues.apache.org/jira/browse/LUCY-211>
that we have a workaround for these. (Redefining `for`, oi...)
> 32-bit, Perl 5.16
> -----------------
>
> http://ppm4.activestate.com/MSWin32-x86/5.16/1600/L/LO/LOGIE/Lucy-0.3.2.d/log-20120816T225009.txt
>
> "Can't locate object method "new" via package "Lucy::Build::SUPER" at buildlib/Lucy/Build.pm line 143."
>
> Strangeā¦
Maybe that's base.pm prior to 2.18 misbehaving? That error message indicates
that the superclass was not loaded.
$ perl -le 'package Foo; Foo->SUPER::new'
Can't locate object method "new" via package "Foo::SUPER" at -e line 1.
Should we make this change to Lucy::Build?
-use base qw( Clownfish::CFC::Perl::Build );
+use Clownfish::CFC::Perl::Build;
+BEGIN { push our @ISA, 'Clownfish::CFC::Perl::Build' }
> 64-bit, Perl 5.12, 5.14 and 5.16
> --------------------------------
>
> http://ppm4.activestate.com/MSWin32-x64/5.12/1200/L/LO/LOGIE/Lucy-0.3.2.d/log-20120710T212100.txt
> http://ppm4.activestate.com/MSWin32-x64/5.14/1400/L/LO/LOGIE/Lucy-0.3.2.d/log-20120711T021911.txt
> http://ppm4.activestate.com/MSWin32-x64/5.16/1600/L/LO/LOGIE/Lucy-0.3.2.d/log-20120813T075017.txt
>
> Charmonizer build fails with "unresolved external symbol __security_check_cookie"
>
> I think this is related to the following bug that I reported to ActiveState:
>
> http://bugs.activestate.com/show_bug.cgi?id=93797
I think this problem may have gone away in trunk as a side effect of recent
changes to Charmonizer. The problem occurs during the linking phase for
Charmonizer, but that linking phase is handled a different way now that
Charmonizer gets bundled up into a single amalgamated C file. Compiling
charmonizer during Lucy's Perl build is now one simple command (which doesn't
use any of the libs specified by the Perl Config module):
cl charmonizer.c /Fecharmonize.exe
That linking bug you reported may come back during another linking phase,
though -- like when we try to link together Lucy.dll from all the *.obj files.
Marvin Humphrey