Skip Menu |

This queue is for tickets about the Wx CPAN distribution.

Report information
The Basics
Id: 120657
Status: open
Priority: 0/
Queue: Wx

People
Owner: Nobody in particular
Requestors: stefan.bruens [...] rwth-aachen.de
Cc:
AdminCc:

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



Subject: Wx_Exp.pm incomplete due to race/missing dependency in Makefile
Date: Sun, 19 Mar 2017 18:15:58 +0100
To: <bug-wx [...] rt.cpan.org>
From: Stefan Bruens <stefan.bruens [...] rwth-aachen.de>
The generation rule for Wx_Exp.pm in build/Wx/build/MakeMaker/Any_OS.pm has: $exp : wxt_copy_files wxt_binary_\$(LINKTYPE) \t\$(PERL) script/make_exp_list.pl $exp @{[$this->files_with_constants]} xspp/ *.h ext/*/xspp/*.h but the dependency only states: my %depend = ( _depend_common( $this ), $exp => join( ' ', $this->files_with_constants, ), i.e. it is missing the dependency on xspp/*.h and ext/*/xspp/*.h. The former is not a problem, as it refers to static files, but everything below ext/*/ xspp/ is generate by xsubpp. The effect is a Wx_Exp.pm where symbols from single modules (e.g. IPC or AUI) are omitted, as make_exp_list.pl runs to early. Changing the dependency to: $exp => join( ' ', $this->files_with_constants, 'subdirs', ), solves the issue for me.
Hi, I added this recently but on reflection I'm not sure it is correct or necessary. Could you provide a description of your build environment? Of course, nothing under an xspp folder anywhere is static, all files are created by xsubpp. I'm trying to work out how Wx_Exp.pm generation could happen before compilation of 'ext' folder contents. On Sun Mar 19 13:17:42 2017, stefan.bruens@rwth-aachen.de wrote: Show quoted text
> The generation rule for Wx_Exp.pm in > build/Wx/build/MakeMaker/Any_OS.pm has: > > $exp : wxt_copy_files wxt_binary_\$(LINKTYPE) > \t\$(PERL) script/make_exp_list.pl $exp @{[$this-
> >files_with_constants]} xspp/
> *.h ext/*/xspp/*.h > > but the dependency only states: > > my %depend = ( _depend_common( $this ), > $exp => join( ' ', $this->files_with_constants, ), > > i.e. it is missing the dependency on xspp/*.h and ext/*/xspp/*.h. The > former > is not a problem, as it refers to static files, but everything below > ext/*/ > xspp/ is generate by xsubpp. > > The effect is a Wx_Exp.pm where symbols from single modules (e.g. IPC > or AUI) > are omitted, as make_exp_list.pl runs to early. > > Changing the dependency to: > $exp => join( ' ', $this->files_with_constants, 'subdirs', ), > > solves the issue for me.
Subject: Re: [rt.cpan.org #120657] Wx_Exp.pm incomplete due to race/missing dependency in Makefile
Date: Thu, 1 Jun 2017 15:36:50 +0000
To: "bug-Wx [...] rt.cpan.org" <bug-Wx [...] rt.cpan.org>
From: "BrĂ¼ns, Stefan" <Stefan.Bruens [...] rwth-aachen.de>
On Montag, 17. April 2017 13:40:33 CEST you wrote: Show quoted text
> <URL: https://rt.cpan.org/Ticket/Display.html?id=120657 > > > Hi, > > I added this recently but on reflection I'm not sure it is correct or > necessary. > > Could you provide a description of your build environment?
I have been building it on build.opensuse.org and locally, same effect. It happens when using parallel build, e.g. make -j4. Show quoted text
> Of course, nothing under an xspp folder anywhere is static, all files are > created by xsubpp.
You are correct, although the xspp in the root directory is typically created much earlier in the build process. Show quoted text
> I'm trying to work out how Wx_Exp.pm generation could happen before > compilation of 'ext' folder contents.
There is no dependency between any of the xspp generated header files (neither from ext/*/xspp/ nor xspp/) and Wx_Exp.pm specified, so make is free to generate it as soon as the other dependencies are fulfilled.