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>
Download (untitled) / with headers
text/plain 793b
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.
Download (untitled) / with headers
text/plain 1.2k
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>
Download (untitled) / with headers
text/plain 939b
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.


This service is sponsored and maintained by Best Practical Solutions and runs on Perl.org infrastructure.

Please report any issues with rt.cpan.org to rt-cpan-admin@bestpractical.com.