-
Notifications
You must be signed in to change notification settings - Fork 578
Build-time failures with PERL_GLOBAL_STRUCT and PERL_GLOBAL_STRUCT_PRIVATE #16794
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
From @jkeenanAccording to pod/perl5260delta.pod: ##### However, recent smoke test reports from George Greer indicate that these According to Porting/bisect.pl, the first bad commit was: ##### Add API function Perl_langinfo() This is designed to generally replace nl_langinfo() in XS code. It is However, at that commit the build failure occurred in locale.c. In I am attaching gzipped files holding the output of the 'make test_prep' ##### With this configuration, perl-5.27.3 (2017-Aug-21) built successfully. Additional Notes: * When I compile with gcc rather than clang, I get different error * I also performed the initial bisection on FreeBSD-11.2. The bisection * I did only one test run with PERL_GLOBAL_STRUCT_PRIVATE, so that * Since this was a regression between 5.26 and 5.28, we should explore Thank you very much. |
From @jkeenanOn Sun, 23 Dec 2018 04:10:53 GMT, jkeenan@pobox.com wrote:
Multisectioning suggests that the first commit with build-time errors was e839e6e and that additional errors appeared at f99042c. See attachment, transitions.pl. Thank you very much. |
From @jkeenan |
The RT System itself - Status changed from 'new' to 'open' |
From @khwilliamsonOn 12/26/18 8:30 PM, James E Keenan via RT wrote:
commit e839e6e Add OP_MULTICONCAT op commit f99042c initialisation of simple aggregate state variables We now recognise the basic cases of aggregate state variables, to Adding a bunch of dVARS fixes the compilation problems, as indicates. This seems to fix the problem except for PERL_GLOBAL_STRUCT_PRIVATE They are# Failed test 1 - loading XS::APItest in threads works at
|
From @khwilliamson
But it seems to me that the docs indicate that a pTHX_ should do a dVAR automatically.
|
From @jkeenanOn Thu, 27 Dec 2018 06:27:35 GMT, public@khwilliamson.com wrote:
Unfortunately, the smoke-me/khw-global_struct branch breaks the build on FreeBSD and other platforms. On FreeBSD-11.2, I compiled with my usual ./Configure options, i.e., without "-DPERL_GLOBAL_STRUCT". I got build-time failures; see attachment smoke-me.khw-global_struct.make.failure.txt.gz. See also Carlos's smoke reports: http://perl5.test-smoke.org/report/76807 Also see: http://perl.develop-help.com/?b=smoke-me%2Fkhw-global_struct [snip] -- |
From @khwilliamsonOn 12/27/18 8:46 AM, James E Keenan via RT wrote:
The Configure option has no effect because for purposes of this smoke, I |
From @jkeenanOn Thu, 27 Dec 2018 16:24:40 GMT, public@khwilliamson.com wrote:
Now getting different build-time errors. See attachment with 4d74305 in name. -- |
From @jkeenanOn Thu, 27 Dec 2018 17:13:45 GMT, jkeenan wrote:
Now, in the smoke-me/khw-global_struct branch, at commit 1380ecd, 'make' completes but I get these test failures: ##### re/pat.t (Wstat: 0 Tests: 851 Failed: 1) Stop. Thank you very much. -- |
From @jkeenanSummary of my perl5 (revision 5 version 29 subversion 7) configuration: Characteristics of this binary (from libperl): |
From @iabynOn Thu, Dec 27, 2018 at 04:33:19PM -0800, James E Keenan via RT wrote:
Note that I have (unfortunately) been independently been working on getting In an unpushd branch I also have commits that add dVARs - I haven't tested In addition I have commits to make t/porting/libperl.t pass. I'll carry on -- |
From @khwilliamsonOn 12/27/18 5:33 PM, James E Keenan via RT wrote:
It turns out that there is a longstanding bug in perlvars.h which my The problem is these lines in the middle: #ifdef DEBUGGING On a PERL_GLOBAL_STRUCT non-DEBUGGING build, regcomp.o doesn't see that A solution in this case is to move the watch_pvx to the end so nothing The #ifdef has been there since at least But what about the general case. Are there other inconsistencies that |
From @demerphqI suspect this is worse for regex than for other cases as we can call into Yves On Sun, 30 Dec 2018, 16:44 Karl Williamson <public@khwilliamson.com wrote:
|
From @iabynOn Mon, Dec 31, 2018 at 12:35:47PM +0100, demerphq wrote:
Yeah, we've banned '#ifdef DEBUGGING' in intrpvar.h for this exact reason. On Sun, 30 Dec 2018, 16:44 Karl Williamson <public@khwilliamson.com wrote:
I guess we'd have to audit regcomp.c and regexec.c (and any .h's included A quick glance at regcomp.c gives 'struct RExC_state_t' having some
Its not clear to me what you/he means. Perhaps it's that Perhaps its functionality should be extended to check for the sizes of the Or perhaps we should abandon PERL_GLOBAL_STRUCT altogether? My -- |
From @khwilliamsonOn 12/31/18 5:46 AM, Dave Mitchell wrote:
The difference is that these globals are, well, global and have effect
Yes
Yes. Other possibilities would be to grep for #ifdefs in a porting/t But Sergey wondered if there are other problematic #ifdefs, not just for
And also PERL_GLOBAL_STRUCT_PRIVATE? I've cc'd Jarkko, as last time I recall he wasn't reading p5p |
From @jhi[Karl found me gathering dust in a closet] So yes, the global struct config was created for Symbian, which is dead But more generally, the config was not Symbian-specific as such. The global struct is a bit misleading as terms go: what it does is that I still find the config useful as a cleanliness exercise: do we have a |
From @iabynOn Wed, Feb 13, 2019 at 11:04:18AM -0800, Jarkko Hietaniemi via RT wrote:
I've now merged the following branch into blead: commit 737b460 [MERGE] fix PERL_GLOBAL_STRUCT builds It makes all tests pass (at least on Linux). It incorporates all the 1) The PL_WARN_ALL/PL_WARN_NONE one, # define LC_NUMERIC_LOCK(cond_to_panic_if_already_locked) \ etc one, because neither of these seemed needed on my builds to pass. -- |
@iabyn - Status changed from 'open' to 'pending release' |
From @khwilliamsonThank you for filing this report. You have helped make Perl better. With the release today of Perl 5.30.0, this and 160 other issues have been Perl 5.30.0 may be downloaded via: If you find that the problem persists, feel free to reopen this ticket. |
@khwilliamson - Status changed from 'pending release' to 'resolved' |
This will test BuildTransitions.pm in a situation derived from Perl/perl5#16794. With a particular, uncommon set of configuration options, the build was broken (5 errors reported) at the point where the multiconcat op was introduced. A short time later 1 additional build-time error was introduced. (This program currently does not extend to the point where the build was fixed.)
Migrated from rt.perl.org#133737 (status was 'resolved')
Searchable as RT133737$
The text was updated successfully, but these errors were encountered: