Perl / perl5

🐪 The Perl programming language
https://dev.perl.org/perl5/
Other
1.97k stars 559 forks source link

24e16d7 broke g++ build on FreeBSD-11.0 #15984

Closed p5pRT closed 7 years ago

p5pRT commented 7 years ago

Migrated from rt.perl.org#131337 (status was 'resolved')

Searchable as RT131337$

p5pRT commented 7 years ago

From @jkeenan

Summary​:

A commit to Perl 5 blead in December 2016 made it impossible to build perl on FreeBSD-11.0 when using g++ as the C-compiler.

Preliminary remarks​:

1. The default C-compiler on FreeBSD-11.0 is clang\, not g++. When I smoke-test blead on FreeBSD-11.0\, I configure with clang and certain options selected to try to get as close as possible to those used by the FreeBSD project to port perl to that version of the OS.

2. Hence\, what I report below is an edge case that we should explore mostly in the hope that it will lead to more accurate and flexible source code in the Perl 5 core distribution. In particular\, we should not consider what follows as a blocker for the release of 5.26.0. Instead\, we should study the problem during the 5.27 development cycle.

Bug report​:

At the point when perl-5.24.0 was released\, perl could have been built with g++ on FreeBSD-11.0. (We weren't smoke-testing perl on FreeBSD-11.0 at all at that time\, so our knowledge of its buildability is strictly retrospective.) At tag v5.24.0 all tests would PASS XXXXXXX. However\, at a certain point in the 5.25-5.26 development cycle\, changes were made which meant that thereafter any attempt to build perl with g++ on FreeBSD-11.0 would fail without ever getting as far as 'make test'.

Bisection indicates that the following is the first bad commit​:

##### commit 24e16d7b405f10168aae144d4a2c37d9c6443b9e Author​: Karl Williamson \khw@​cpan\.org AuthorDate​: Sun Dec 11 20​:35​:09 2016 -0700 Commit​: Karl Williamson \khw@​cpan\.org CommitDate​: Fri Dec 23 16​:48​:36 2016 -0700

  regexec.c​: Make isFOO_lc() non-static #####

The immediately preceding commit would be​:

##### commit ddb659335ba5267366f1c691fb334983fd1b2023 Author​: Karl Williamson \khw@​cpan\.org AuthorDate​: Thu Dec 8 22​:01​:58 2016 -0700 Commit​: Karl Williamson \khw@​cpan\.org CommitDate​: Fri Dec 23 16​:48​:36 2016 -0700

  utf8.c​: White space\, comments only #####

If I were to configure at ddb65933 as follows​:

##### sh ./Configure -des -Dusedevel \   -Duseithreads \   -Doptimize="-O2 -pipe -fstack-protector -fno-strict-aliasing" \   -Dcc="g++" #####

... and then call 'make -j${TEST_JOBS} test_harness'. Perl would build successfully\, although it would FAIL t/re/regexp_nonull.t. (I am attaching the output of './perl -Ilib -V' for this build.)

If I now were to advance to commit 24e16d7b405f10168aae144d4a2c37d9c6443b9e and configure as above\, 'make' would fail. The full build log\, gzipped\, is attached; here is the tail​:

##### g++ -o perl -pthread -Wl\,-E -fstack-protector-strong -L/usr/local/lib perlmain.o lib/auto/B/B.a lib/auto/Compress/Raw/Bzip2/Bzip2.a lib/auto/Compress/Raw/Zlib/Zlib.a lib/auto/Cwd/Cwd.a lib/auto/DB_File/DB_File.a lib/auto/Data/Dumper/Dumper.a lib/auto/Devel/PPPort/PPPort.a lib/auto/Devel/Peek/Peek.a lib/auto/Digest/MD5/MD5.a lib/auto/Digest/SHA/SHA.a lib/auto/Encode/Encode.a lib/auto/Fcntl/Fcntl.a lib/auto/File/DosGlob/DosGlob.a lib/auto/File/Glob/Glob.a lib/auto/Filter/Util/Call/Call.a lib/auto/GDBM_File/GDBM_File.a lib/auto/Hash/Util/Util.a lib/auto/Hash/Util/FieldHash/FieldHash.a lib/auto/I18N/Langinfo/Langinfo.a lib/auto/IO/IO.a lib/auto/IPC/SysV/SysV.a lib/auto/List/Util/Util.a lib/auto/MIME/Base64/Base64.a lib/auto/Math/BigInt/FastCalc/FastCalc.a lib/auto/NDBM_File/NDBM_File.a lib/auto/Opcode/Opcode.a lib/auto/POSIX/POSIX.a lib/auto/PerlIO/encoding/encoding.a lib/auto/PerlIO/mmap/mmap.a lib/auto/PerlIO/scalar/scalar.a lib/auto/PerlIO/via/via.a lib/auto/SDBM_File/SDBM_File.a lib/auto/Socket/Socket.a lib/auto/Storable/Storable.a lib/auto/Sys/Hostname/Hostname.a lib/auto/Sys/Syslog/Syslog.a lib/auto/Tie/Hash/NamedCapture/NamedCapture.a lib/auto/Time/HiRes/HiRes.a lib/auto/Time/Piece/Piece.a lib/auto/Unicode/Collate/Collate.a lib/auto/Unicode/Normalize/Normalize.a lib/auto/arybase/arybase.a lib/auto/attributes/attributes.a lib/auto/mro/mro.a lib/auto/re/re.a lib/auto/threads/threads.a lib/auto/threads/shared/shared.a lib/auto/Encode/Byte/Byte.a lib/auto/Encode/CN/CN.a lib/auto/Encode/EBCDIC/EBCDIC.a lib/auto/Encode/JP/JP.a lib/auto/Encode/KR/KR.a lib/auto/Encode/Symbol/Symbol.a lib/auto/Encode/TW/TW.a lib/auto/Encode/Unicode/Unicode.a libperl.a `cat ext.libs` -lpthread -lgdbm -lm -lcrypt -lutil libperl.a(regexec.o)​: In function `Perl_isFOO_lc'​: regexec.c​:(.text+0x2d30)​: multiple definition of `Perl_isFOO_lc' lib/auto/re/re.a(re_exec.o)​:re_exec.c​:(.text+0x47a0)​: first defined here collect2​: error​: ld returned 1 exit status *** [perl] Error code 1

make​: stopped in /usr/home/jkeenan/gitwork/perl2 1 error

make​: stopped in /usr/home/jkeenan/gitwork/perl2 #####

So this is a regression between 5.24 and 5.26. However\, since it is a case we have not previously tested and which is not likely to be used in production code\, it will probably suffice to investigate it during the 5.27-5.28 development cycle.

Thank you very much. Jim Keenan

p5pRT commented 7 years ago

From @jkeenan

Summary of my perl5 (revision 5 version 25 subversion 9) configuration​:   Commit id​: ddb659335ba5267366f1c691fb334983fd1b2023   Platform​:   osname=freebsd   osvers=11.0-release-p1   archname=amd64-freebsd-thread-multi   uname='freebsd kid51.freebsd11.2 11.0-release-p1 freebsd 11.0-release-p1 #0 r306420​: thu sep 29 01​:43​:23 utc 2016 root@​releng2.nyi.freebsd.org​:usrobjusrsrcsysgeneric amd64 '   config_args='-des -Dusedevel -Duseithreads -Doptimize=-O2 -pipe -fstack-protector -fno-strict-aliasing -Dcc=g++'   hint=recommended   useposix=true   d_sigaction=define   useithreads=define   usemultiplicity=define   use64bitint=define   use64bitall=define   uselongdouble=undef   usemymalloc=n   bincompat5005=undef   Compiler​:   cc='g++'   ccflags ='-DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -D_FORTIFY_SOURCE=2'   optimize='-O2 -pipe -fstack-protector -fno-strict-aliasing'   cppflags='-DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include'   ccversion=''   gccversion='5.4.0'   gccosandvers=''   intsize=4   longsize=8   ptrsize=8   doublesize=8   byteorder=12345678   doublekind=3   d_longlong=define   longlongsize=8   d_longdbl=define   longdblsize=16   longdblkind=3   ivtype='long'   ivsize=8   nvtype='double'   nvsize=8   Off_t='off_t'   lseeksize=8   alignbytes=8   prototype=define   Linker and Libraries​:   ld='ld'   ldflags ='-pthread -Wl\,-E -fstack-protector-strong -L/usr/local/lib'   libpth=/usr/lib /usr/local/lib /usr/local/lib/gcc5/include/c++/ /usr/local/lib/gcc5/include/c++//x86_64-portbld-freebsd11.0 /usr/local/lib/gcc5/include/c++//backward /usr/local/lib /usr/local/lib/gcc5/gcc/x86_64-portbld-freebsd11.0/5.4.0/include-fixed /usr/lib   libs=-lpthread -lgdbm -lm -lcrypt -lutil   perllibs=-lpthread -lgdbm -lm -lcrypt -lutil   libc=   so=so   useshrplib=false   libperl=libperl.a   gnulibc_version=''   Dynamic Linking​:   dlsrc=dl_none.xs   dlext=none   d_dlsymun=undef   ccdlflags=''   cccdlflags='-DPIC -fPIC'   lddlflags=''

Characteristics of this binary (from libperl)​:   Compile-time options​:   HAS_TIMES   MULTIPLICITY   PERLIO_LAYERS   PERL_COPY_ON_WRITE   PERL_DONT_CREATE_GVSV   PERL_IMPLICIT_CONTEXT   PERL_MALLOC_WRAP   PERL_OP_PARENT   PERL_PRESERVE_IVUV   PERL_USE_DEVEL   USE_64_BIT_ALL   USE_64_BIT_INT   USE_ITHREADS   USE_LARGE_FILES   USE_LOCALE   USE_LOCALE_COLLATE   USE_LOCALE_CTYPE   USE_LOCALE_NUMERIC   USE_LOCALE_TIME   USE_PERLIO   USE_PERL_ATOF   USE_REENTRANT_API   Built under freebsd   Compiled at May 20 2017 23​:42​:29   %ENV​:   PERL_WORKDIR="/home/jkeenan/gitwork/perl"   @​INC​:   lib   /usr/local/lib/perl5/site_perl/5.25.9/amd64-freebsd-thread-multi   /usr/local/lib/perl5/site_perl/5.25.9   /usr/local/lib/perl5/5.25.9/amd64-freebsd-thread-multi   /usr/local/lib/perl5/5.25.9   .

p5pRT commented 7 years ago

From @jkeenan

24e16d7.g++.freebsd.11.0.output.txt.gz

p5pRT commented 7 years ago

From @jkeenan

ext/re/re_exec.c​:9753​:Perl__is_grapheme(pTHX_ const U8 * strbeg\, const U8 * s\, const U8 * strend\, const UV cp) embed.h​:1153​:#define _is_grapheme(a\,b\,c\,d) Perl__is_grapheme(aTHX_ a\,b\,c\,d) proto.h​:5527​:PERL_CALLCONV bool Perl__is_grapheme(pTHX_ const U8 * strbeg\, const U8 * s\, const U8 *strend\, const UV cp) regexec.c​:9753​:Perl__is_grapheme(pTHX_ const U8 * strbeg\, const U8 * s\, const U8 * strend\, const UV cp)

p5pRT commented 7 years ago

From @craigberry

On Sat\, May 20\, 2017 at 10​:54 PM\, James E Keenan \perlbug\-followup@​perl\.org wrote​:

Bisection indicates that the following is the first bad commit​:

##### commit 24e16d7b405f10168aae144d4a2c37d9c6443b9e Author​: Karl Williamson \khw@​cpan\.org AuthorDate​: Sun Dec 11 20​:35​:09 2016 -0700 Commit​: Karl Williamson \khw@​cpan\.org CommitDate​: Fri Dec 23 16​:48​:36 2016 -0700

 regexec\.c​: Make isFOO\_lc\(\) non\-static

#####

ext.libs` -lpthread -lgdbm -lm -lcrypt -lutil libperl.a(regexec.o)​: In function `Perl_isFOO_lc'​: regexec.c​:(.text+0x2d30)​: multiple definition of `Perl_isFOO_lc' lib/auto/re/re.a(re_exec.o)​:re_exec.c​:(.text+0x47a0)​: first defined here collect2​: error​: ld returned 1 exit status *** [perl] Error code 1

Surely this was fixed by​:

commit 9637d2a524bfab39fd1e4cbf27b8f632a8265e9e Author​: Craig A. Berry \craigberry@​mac\.com Date​: Thu Dec 29 14​:03​:43 2016 -0600

  Don't define Perl_isFOO_lc in the regex extension.

  Otherwise it ends up multiply defined\, which annoys the VMS linker   (and probably the AIX linker too).

Can you you either do another bisect that starts from there or at least post the error that makes the build fail in blead (assuming it still does)?

p5pRT commented 7 years ago

The RT System itself - Status changed from 'new' to 'open'

p5pRT commented 7 years ago

From @jkeenan

On Sun\, 21 May 2017 13​:11​:38 GMT\, craig.a.berry@​gmail.com wrote​:

On Sat\, May 20\, 2017 at 10​:54 PM\, James E Keenan \perlbug\-followup@​perl\.org wrote​:

Bisection indicates that the following is the first bad commit​:

##### commit 24e16d7b405f10168aae144d4a2c37d9c6443b9e Author​: Karl Williamson \khw@​cpan\.org AuthorDate​: Sun Dec 11 20​:35​:09 2016 -0700 Commit​: Karl Williamson \khw@​cpan\.org CommitDate​: Fri Dec 23 16​:48​:36 2016 -0700

 regexec\.c​: Make isFOO\_lc\(\) non\-static

#####

ext.libs` -lpthread -lgdbm -lm -lcrypt -lutil libperl.a(regexec.o)​: In function `Perl_isFOO_lc'​: regexec.c​:(.text+0x2d30)​: multiple definition of `Perl_isFOO_lc' lib/auto/re/re.a(re_exec.o)​:re_exec.c​:(.text+0x47a0)​: first defined here collect2​: error​: ld returned 1 exit status *** [perl] Error code 1

Surely this was fixed by​:

commit 9637d2a524bfab39fd1e4cbf27b8f632a8265e9e Author​: Craig A. Berry \craigberry@​mac\.com Date​: Thu Dec 29 14​:03​:43 2016 -0600

Don't define Perl\_isFOO\_lc in the regex extension\.

Otherwise it ends up multiply defined\, which annoys the VMS linker
\(and probably the AIX linker too\)\.

Can you you either do another bisect that starts from there or at least post the error that makes the build fail in blead (assuming it still does)?

I am attaching the log of 'make' (gzipped) that I got when compiling blead with g++ yesterday. Blead was probably at 2c4393cceb72ac358b1127131a605f20eb3e7588 at that point.

Thank you very much. -- James E Keenan (jkeenan@​cpan.org)

p5pRT commented 7 years ago

From @jkeenan

make.g++.log.gz

p5pRT commented 7 years ago

From @jkeenan

On Sun\, 21 May 2017 13​:11​:38 GMT\, craig.a.berry@​gmail.com wrote​:

[snip]

Surely this was fixed by​:

commit 9637d2a524bfab39fd1e4cbf27b8f632a8265e9e Author​: Craig A. Berry \craigberry@​mac\.com Date​: Thu Dec 29 14​:03​:43 2016 -0600

Don't define Perl\_isFOO\_lc in the regex extension\.

Otherwise it ends up multiply defined\, which annoys the VMS linker
\(and probably the AIX linker too\)\.

Can you you either do another bisect that starts from there or at least post the error that makes the build fail in blead (assuming it still does)?

Using this function to configure​:

##### gpp_configure () {   sh ./Configure -des -Dusedevel \   -Duseithreads \   -Doptimize="-O2 -pipe -fstack-protector -fno-strict-aliasing" \   -Dcc="g++" } #####

... I tried to build perl at commit 9637d2a and got the same\, "multiple definition of `Perl__is_grapheme'" build failure as previous posted. See attachment for gzipped output of 'make' at this revision.

Thank you very much. -- James E Keenan (jkeenan@​cpan.org)

p5pRT commented 7 years ago

From @jkeenan

9637d2a.g++.freebsd.11.0.make.log.gz

p5pRT commented 7 years ago

From @craigberry

On Sun\, May 21\, 2017 at 11​:24 AM\, James E Keenan via RT \perlbug\-followup@​perl\.org wrote​:

On Sun\, 21 May 2017 13​:11​:38 GMT\, craig.a.berry@​gmail.com wrote​:

[snip]

Surely this was fixed by​:

commit 9637d2a524bfab39fd1e4cbf27b8f632a8265e9e Author​: Craig A. Berry \craigberry@​mac\.com Date​: Thu Dec 29 14​:03​:43 2016 -0600

Don't define Perl\_isFOO\_lc in the regex extension\.

Otherwise it ends up multiply defined\, which annoys the VMS linker
\(and probably the AIX linker too\)\.

Can you you either do another bisect that starts from there or at least post the error that makes the build fail in blead (assuming it still does)?

Using this function to configure​:

##### gpp_configure () { sh ./Configure -des -Dusedevel \ -Duseithreads \ -Doptimize="-O2 -pipe -fstack-protector -fno-strict-aliasing" \ -Dcc="g++" } #####

... I tried to build perl at commit 9637d2a and got the same\, "multiple definition of `Perl__is_grapheme'" build failure as previous posted. See attachment for gzipped output of 'make' at this revision.

How do you mean "the same"? Previously it was Perl_isFOO_lc that was multiply defined. Now it is Perl__is_grapheme\, which looks like an entirely different problem (albeit following a similar pattern). Does that exact same error still happen in blead? If so\, does the following fix it?

Inline Patch ```diff diff --git a/regexec.c b/regexec.c index 0b5c847f1c..ea52477781 100644 --- a/regexec.c +++ b/regexec.c @@ -9708,6 +9708,8 @@ S_to_byte_substr(pTHX_ regexp *prog) return TRUE; } +#ifndef PERL_IN_XSUB_RE + bool Perl__is_grapheme(pTHX_ const U8 * strbeg, const U8 * s, const U8 * ```

strend, const UV cp) { @​@​ -9763\,7 +9765\,7 @​@​ Perl__is_grapheme(pTHX_ const U8 * strbeg\, const U8 * s\, const U8 * strend\, cons   return isGCB(cp_gcb_val\, next_cp_gcb_val\, strbeg\, s\, TRUE); }

- +#endif

/*

p5pRT commented 7 years ago

From @jkeenan

On Mon\, 22 May 2017 01​:32​:07 GMT\, craig.a.berry@​gmail.com wrote​:

On Sun\, May 21\, 2017 at 11​:24 AM\, James E Keenan via RT \perlbug\-followup@​perl\.org wrote​:

On Sun\, 21 May 2017 13​:11​:38 GMT\, craig.a.berry@​gmail.com wrote​:

[snip]

Surely this was fixed by​:

commit 9637d2a524bfab39fd1e4cbf27b8f632a8265e9e Author​: Craig A. Berry \craigberry@​mac\.com Date​: Thu Dec 29 14​:03​:43 2016 -0600

Don't define Perl_isFOO_lc in the regex extension.

Otherwise it ends up multiply defined\, which annoys the VMS linker (and probably the AIX linker too).

Can you you either do another bisect that starts from there or at least post the error that makes the build fail in blead (assuming it still does)?

Using this function to configure​:

##### gpp_configure () { sh ./Configure -des -Dusedevel \ -Duseithreads \ -Doptimize="-O2 -pipe -fstack-protector -fno-strict-aliasing" \ -Dcc="g++" } #####

... I tried to build perl at commit 9637d2a and got the same\, "multiple definition of `Perl__is_grapheme'" build failure as previous posted. See attachment for gzipped output of 'make' at this revision.

How do you mean "the same"? Previously it was Perl_isFOO_lc that was multiply defined. Now it is Perl__is_grapheme\, which looks like an entirely different problem (albeit following a similar pattern). Does that exact same error still happen in blead? If so\, does the following fix it?

diff --git a/regexec.c b/regexec.c index 0b5c847f1c..ea52477781 100644 --- a/regexec.c +++ b/regexec.c @​@​ -9708\,6 +9708\,8 @​@​ S_to_byte_substr(pTHX_ regexp *prog) return TRUE; }

+#ifndef PERL_IN_XSUB_RE + bool Perl__is_grapheme(pTHX_ const U8 * strbeg\, const U8 * s\, const U8 * strend\, const UV cp) { @​@​ -9763\,7 +9765\,7 @​@​ Perl__is_grapheme(pTHX_ const U8 * strbeg\, const U8 * s\, const U8 * strend\, cons return isGCB(cp_gcb_val\, next_cp_gcb_val\, strbeg\, s\, TRUE); }

- +#endif

/*

Your patch -- which I've pushed in the smoke-me/jkeenan/131337-craig branch -- does enable 'make' to complete when g++ is the C-compiler on FreeBSD-11.0. However\, there is a persistent test failure in t/re/regexp_nonull.t (http​://perl5.test-smoke.org/report/55820) -- a failure which that branch does not get when compiling with g++ on Linux (http​://perl5.test-smoke.org/report/55823).

I am attaching​:

* the gzipped log of 'make' for that build;

* the ./perl -Ilib -V output for that build;

* the output for "cd t; ./perl harness -v re/regexp_nonull.t; cd -" for that build

* and by way of contrast\, the output for "cd t; ./perl harness -v re/regexp_nonull.t; cd -" on FreeBSD-11.0 but using the regular configuration style with 'clang'.

Thank you very much.

-- James E Keenan (jkeenan@​cpan.org)

p5pRT commented 7 years ago

From @jkeenan

131337.gpp_configure.make.output.txt.gz

p5pRT commented 7 years ago

From @jkeenan

Can't locate XS/APItest.pm in @​INC (you may need to install the XS​::APItest module) (@​INC contains​: ../lib) at re/regexp_nonull.t line 10. re/regexp_nonull.t .. Dubious\, test returned 2 (wstat 512\, 0x200) No subtests run

Test Summary Report


re/regexp_nonull.t (Wstat​: 512 Tests​: 0 Failed​: 0)   Non-zero exit status​: 2   Parse errors​: No plan found in TAP output Files=1\, Tests=0\, 0 wallclock secs ( 0.01 usr + 0.01 sys = 0.02 CPU) Result​: FAIL

p5pRT commented 7 years ago

From @jkeenan

Summary of my perl5 (revision 5 version 26 subversion 0) configuration​:   Commit id​: 52ad33ec8fe7f11aee1e5a6c729b5c8e213daeb1   Platform​:   osname=freebsd   osvers=11.0-release-p1   archname=amd64-freebsd-thread-multi   uname='freebsd kid51.freebsd11.2 11.0-release-p1 freebsd 11.0-release-p1 #0 r306420​: thu sep 29 01​:43​:23 utc 2016 root@​releng2.nyi.freebsd.org​:usrobjusrsrcsysgeneric amd64 '   config_args='-des -Dusedevel -Duseithreads -Doptimize=-O2 -pipe -fstack-protector -fno-strict-aliasing -Dcc=g++'   hint=recommended   useposix=true   d_sigaction=define   useithreads=define   usemultiplicity=define   use64bitint=define   use64bitall=define   uselongdouble=undef   usemymalloc=n   default_inc_excludes_dot=define   bincompat5005=undef   Compiler​:   cc='g++'   ccflags ='-DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -D_FORTIFY_SOURCE=2'   optimize='-O2 -pipe -fstack-protector -fno-strict-aliasing'   cppflags='-DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include'   ccversion=''   gccversion='5.4.0'   gccosandvers=''   intsize=4   longsize=8   ptrsize=8   doublesize=8   byteorder=12345678   doublekind=3   d_longlong=define   longlongsize=8   d_longdbl=define   longdblsize=16   longdblkind=3   ivtype='long'   ivsize=8   nvtype='double'   nvsize=8   Off_t='off_t'   lseeksize=8   alignbytes=8   prototype=define   Linker and Libraries​:   ld='ld'   ldflags ='-pthread -Wl\,-E -fstack-protector-strong -L/usr/local/lib'   libpth=/usr/lib /usr/local/lib /usr/local/lib/gcc5/include/c++/ /usr/local/lib/gcc5/include/c++//x86_64-portbld-freebsd11.0 /usr/local/lib/gcc5/include/c++//backward /usr/local/lib /usr/local/lib/gcc5/gcc/x86_64-portbld-freebsd11.0/5.4.0/include-fixed /usr/lib   libs=-lpthread -lgdbm -lm -lcrypt -lutil   perllibs=-lpthread -lgdbm -lm -lcrypt -lutil   libc=   so=so   useshrplib=false   libperl=libperl.a   gnulibc_version=''   Dynamic Linking​:   dlsrc=dl_none.xs   dlext=none   d_dlsymun=undef   ccdlflags=''   cccdlflags='-DPIC -fPIC'   lddlflags=''

Characteristics of this binary (from libperl)​:   Compile-time options​:   HAS_TIMES   MULTIPLICITY   PERLIO_LAYERS   PERL_COPY_ON_WRITE   PERL_DONT_CREATE_GVSV   PERL_IMPLICIT_CONTEXT   PERL_MALLOC_WRAP   PERL_OP_PARENT   PERL_PRESERVE_IVUV   PERL_USE_DEVEL   USE_64_BIT_ALL   USE_64_BIT_INT   USE_ITHREADS   USE_LARGE_FILES   USE_LOCALE   USE_LOCALE_COLLATE   USE_LOCALE_CTYPE   USE_LOCALE_NUMERIC   USE_LOCALE_TIME   USE_PERLIO   USE_PERL_ATOF   USE_REENTRANT_API   Built under freebsd   Compiled at May 21 2017 22​:41​:48   %ENV​:   PERL_WORKDIR="/home/jkeenan/gitwork/perl"   @​INC​:   lib   /usr/local/lib/perl5/site_perl/5.26.0/amd64-freebsd-thread-multi   /usr/local/lib/perl5/site_perl/5.26.0   /usr/local/lib/perl5/5.26.0/amd64-freebsd-thread-multi   /usr/local/lib/perl5/5.26.0

p5pRT commented 7 years ago

From @jkeenan

re/regexp_nonull.t .. 1..1990 # 1 iterations ok 1 # This stops me getting screenfulls of syntax errors every time I accidentally ok 2 # run this file via a shell glob. The full format of this file is given ok 3 # in regexp.t ok 4 # Prior to the implementation of autoloading of \N{}\, tests that used \N{name} ok 5 # could not go in this file\, and were farmed out to other .t's\, where they ok 6 # remain ok 7 # (blank line) ok 8 # pat string y/n/etc expr expected-expr skip-reason comment ok 9 # (blank line) ok 10 ok 11 ok 12 ok 13 ok 14 ok 15 ok 16 ok 17 ok 18 ok 19 ok 20 ok 21 ok 22 ok 23 ok 24 ok 25 ok 26 ok 27 ok 28 ok 29 ok 30 ok 31 ok 32 ok 33 ok 34 ok 35 ok 36 ok 37 ok 38 ok 39 ok 40 ok 41 ok 42 ok 43 ok 44 ok 45 ok 46 ok 47 ok 48 ok 49 ok 50 ok 51 ok 52 ok 53 ok 54 ok 55 ok 56 ok 57 ok 58 ok 59 ok 60 ok 61 ok 62 ok 63 ok 64 ok 65 ok 66 ok 67 ok 68 ok 69 ok 70 ok 71 ok 72 ok 73 ok 74 ok 75 ok 76 ok 77 ok 78 ok 79 ok 80 ok 81 ok 82 ok 83 ok 84 ok 85 ok 86 ok 87 ok 88 ok 89 ok 90 ok 91 ok 92 ok 93 ok 94 ok 95 ok 96 ok 97 ok 98 ok 99 ok 100 ok 101 ok 102 ok 103 ok 104 ok 105 ok 106 ok 107 ok 108 ok 109 ok 110 ok 111 ok 112 ok 113 ok 114 ok 115 ok 116 ok 117 ok 118 ok 119 ok 120 ok 121 ok 122 ok 123 ok 124 ok 125 ok 126 ok 127 ok 128 ok 129 ok 130 ok 131 ok 132 ok 133 ok 134 ok 135 ok 136 ok 137 ok 138 ok 139 ok 140 ok 141 ok 142 ok 143 ok 144 ok 145 ok 146 ok 147 ok 148 ok 149 ok 150 ok 151 ok 152 ok 153 ok 154 ok 155 ok 156 ok 157 ok 158 ok 159 ok 160 ok 161 ok 162 ok 163 ok 164 ok 165 ok 166 ok 167 ok 168 ok 169 ok 170 ok 171 ok 172 ok 173 ok 174 ok 175 ok 176 ok 177 ok 178 ok 179 ok 180 ok 181 ok 182 ok 183 ok 184 ok 185 ok 186 ok 187 ok 188 ok 189 ok 190 ok 191 ok 192 ok 193 ok 194 ok 195 ok 196 ok 197 ok 198 ok 199 ok 200 ok 201 ok 202 ok 203 ok 204 ok 205 ok 206 ok 207 ok 208 ok 209 ok 210 ok 211 ok 212 ok 213 ok 214 ok 215 ok 216 ok 217 ok 218 ok 219 ok 220 ok 221 ok 222 ok 223 ok 224 ok 225 ok 226 ok 227 ok 228 ok 229 ok 230 ok 231 ok 232 ok 233 ok 234 ok 235 ok 236 ok 237 ok 238 ok 239 ok 240 ok 241 ok 242 ok 243 ok 244 ok 245 ok 246 ok 247 ok 248 ok 249 ok 250 ok 251 ok 252 ok 253 ok 254 ok 255 ok 256 ok 257 ok 258 ok 259 ok 260 ok 261 ok 262 ok 263 ok 264 ok 265 ok 266 ok 267 ok 268 - This could match on EBCDIC if A-Z not excluding things in middle ok 269 ok 270 ok 271 ok 272 ok 273 ok 274 ok 275 ok 276 ok 277 ok 278 ok 279 ok 280 ok 281 ok 282 ok 283 ok 284 ok 285 ok 286 ok 287 ok 288 ok 289 ok 290 ok 291 ok 292 ok 293 ok 294 ok 295 ok 296 ok 297 ok 298 ok 299 ok 300 ok 301 ok 302 ok 303 ok 304 ok 305 ok 306 ok 307 ok 308 ok 309 ok 310 ok 311 ok 312 ok 313 # Bug #3589 - up to perl-5.6.0 matches incorrectly\, from 5.6.1 not anymore ok 314 ok 315 ok 316 ok 317 ok 318 ok 319 ok 320 ok 321 ok 322 ok 323 ok 324 ok 325 ok 326 ok 327 ok 328 ok 329 ok 330 ok 331 ok 332 ok 333 ok 334 ok 335 ok 336 ok 337 ok 338 ok 339 ok 340 ok 341 ok 342 ok 343 ok 344 ok 345 ok 346 ok 347 ok 348 ok 349 ok 350 ok 351 ok 352 ok 353 ok 354 ok 355 ok 356 ok 357 ok 358 ok 359 ok 360 ok 361 ok 362 ok 363 ok 364 ok 365 ok 366 ok 367 ok 368 ok 369 ok 370 ok 371 ok 372 ok 373 ok 374 ok 375 ok 376 ok 377 ok 378 ok 379 ok 380 ok 381 ok 382 ok 383 ok 384 ok 385 ok 386 ok 387 ok 388 ok 389 ok 390 ok 391 ok 392 ok 393 ok 394 ok 395 ok 396 ok 397 ok 398 ok 399 ok 400 ok 401 ok 402 ok 403 ok 404 ok 405 ok 406 ok 407 ok 408 ok 409 ok 410 ok 411 ok 412 ok 413 ok 414 ok 415 ok 416 ok 417 ok 418 ok 419 ok 420 ok 421 ok 422 ok 423 ok 424 ok 425 ok 426 ok 427 ok 428 ok 429 ok 430 ok 431 ok 432 ok 433 ok 434 ok 435 ok 436 ok 437 ok 438 ok 439 ok 440 ok 441 ok 442 ok 443 ok 444 ok 445 ok 446 ok 447 ok 448 ok 449 ok 450 ok 451 ok 452 ok 453 ok 454 ok 455 ok 456 ok 457 ok 458 ok 459 ok 460 ok 461 ok 462 ok 463 ok 464 ok 465 ok 466 ok 467 ok 468 ok 469 ok 470 ok 471 ok 472 ok 473 ok 474 ok 475 ok 476 ok 477 ok 478 ok 479 ok 480 ok 481 ok 482 ok 483 ok 484 ok 485 ok 486 ok 487 ok 488 ok 489 ok 490 ok 491 ok 492 ok 493 ok 494 ok 495 ok 496 ok 497 ok 498 ok 499 ok 500 ok 501 ok 502 ok 503 ok 504 ok 505 ok 506 ok 507 ok 508 ok 509 ok 510 ok 511 ok 512 ok 513 ok 514 ok 515 ok 516 ok 517 ok 518 ok 519 ok 520 ok 521 ok 522 ok 523 ok 524 ok 525 ok 526 ok 527 ok 528 ok 529 ok 530 ok 531 ok 532 ok 533 ok 534 ok 535 ok 536 ok 537 ok 538 ok 539 ok 540 ok 541 ok 542 ok 543 ok 544 ok 545 ok 546 ok 547 ok 548 ok 549 ok 550 ok 551 ok 552 ok 553 ok 554 ok 555 ok 556 ok 557 ok 558 ok 559 ok 560 ok 561 ok 562 ok 563 ok 564 ok 565 ok 566 ok 567 ok 568 ok 569 ok 570 ok 571 ok 572 ok 573 ok 574 ok 575 ok 576 ok 577 ok 578 ok 579 ok 580 ok 581 ok 582 ok 583 ok 584 ok 585 ok 586 ok 587 ok 588 ok 589 ok 590 ok 591 ok 592 ok 593 ok 594 ok 595 ok 596 ok 597 ok 598 ok 599 ok 600 ok 601 ok 602 ok 603 ok 604 ok 605 ok 606 ok 607 ok 608 ok 609 ok 610 ok 611 ok 612 ok 613 ok 614 ok 615 ok 616 ok 617 ok 618 ok 619 ok 620 ok 621 ok 622 ok 623 ok 624 ok 625 ok 626 ok 627 ok 628 # [perl #117917] ok 629 ok 630 ok 631 ok 632 ok 633 ok 634 ok 635 ok 636 ok 637 ok 638 ok 639 ok 640 ok 641 ok 642 ok 643 ok 644 ok 645 ok 646 ok 647 ok 648 ok 649 ok 650 ok 651 ok 652 ok 653 ok 654 ok 655 ok 656 ok 657 ok 658 ok 659 ok 660 ok 661 ok 662 ok 663 ok 664 ok 665 ok 666 ok 667 ok 668 ok 669 ok 670 ok 671 ok 672 ok 673 ok 674 ok 675 ok 676 ok 677 ok 678 ok 679 ok 680 ok 681 ok 682 ok 683 ok 684 ok 685 ok 686 ok 687 ok 688 ok 689 ok 690 ok 691 ok 692 ok 693 ok 694 ok 695 ok 696 ok 697 ok 698 ok 699 ok 700 ok 701 ok 702 ok 703 ok 704 ok 705 ok 706 ok 707 ok 708 ok 709 ok 710 ok 711 ok 712 ok 713 ok 714 ok 715 ok 716 ok 717 ok 718 ok 719 ok 720 ok 721 ok 722 ok 723 ok 724 ok 725 ok 726 ok 727 ok 728 ok 729 ok 730 ok 731 ok 732 ok 733 ok 734 ok 735 ok 736 ok 737 ok 738 ok 739 ok 740 ok 741 ok 742 ok 743 ok 744 ok 745 ok 746 ok 747 ok 748 ok 749 ok 750 ok 751 ok 752 ok 753 ok 754 ok 755 ok 756 ok 757 ok 758 ok 759 ok 760 ok 761 ok 762 ok 763 ok 764 ok 765 ok 766 ok 767 ok 768 ok 769 ok 770 ok 771 ok 772 ok 773 ok 774 ok 775 ok 776 ok 777 ok 778 ok 779 ok 780 ok 781 ok 782 ok 783 ok 784 ok 785 ok 786 ok 787 ok 788 ok 789 ok 790 ok 791 ok 792 ok 793 ok 794 ok 795 ok 796 ok 797 ok 798 ok 799 ok 800 ok 801 ok 802 ok 803 ok 804 ok 805 ok 806 ok 807 ok 808 ok 809 ok 810 ok 811 ok 812 ok 813 ok 814 ok 815 ok 816 ok 817 ok 818 ok 819 ok 820 ok 821 ok 822 ok 823 ok 824 ok 825 ok 826 ok 827 ok 828 ok 829 ok 830 ok 831 ok 832 ok 833 ok 834 ok 835 ok 836 ok 837 ok 838 ok 839 ok 840 ok 841 ok 842 ok 843 ok 844 ok 845 ok 846 ok 847 ok 848 ok 849 ok 850 ok 851 ok 852 ok 853 ok 854 ok 855 ok 856 ok 857 ok 858 ok 859 ok 860 ok 861 ok 862 ok 863 ok 864 ok 865 ok 866 ok 867 ok 868 ok 869 ok 870 ok 871 ok 872 ok 873 ok 874 ok 875 ok 876 ok 877 ok 878 ok 879 ok 880 ok 881 ok 882 ok 883 ok 884 ok 885 ok 886 ok 887 ok 888 ok 889 ok 890 ok 891 ok 892 ok 893 ok 894 ok 895 ok 896 ok 897 ok 898 ok 899 ok 900 # skipped. Test not valid for re/regexp_nonull.t ok 901 ok 902 # skipped. Test not valid for re/regexp_nonull.t ok 903 ok 904 # skipped. Test not valid for re/regexp_nonull.t ok 905 ok 906 # skipped. Test not valid for re/regexp_nonull.t ok 907 ok 908 # skipped. Test not valid for re/regexp_nonull.t ok 909 ok 910 # skipped. Test not valid for re/regexp_nonull.t ok 911 ok 912 ok 913 ok 914 ok 915 ok 916 ok 917 ok 918 ok 919 ok 920 ok 921 ok 922 ok 923 ok 924 ok 925 ok 926 ok 927 ok 928 ok 929 ok 930 ok 931 ok 932 ok 933 ok 934 ok 935 ok 936 ok 937 ok 938 ok 939 ok 940 ok 941 ok 942 ok 943 ok 944 ok 945 ok 946 ok 947 ok 948 ok 949 ok 950 ok 951 ok 952 ok 953 ok 954 ok 955 ok 956 ok 957 ok 958 ok 959 ok 960 ok 961 ok 962 ok 963 ok 964 ok 965 ok 966 ok 967 ok 968 ok 969 ok 970 ok 971 ok 972 # skipped ok 973 ok 974 ok 975 ok 976 ok 977 ok 978 # skipped ok 979 ok 980 ok 981 ok 982 ok 983 ok 984 ok 985 ok 986 ok 987 ok 988 ok 989 # skipped ok 990 ok 991 ok 992 ok 993 ok 994 ok 995 # skipped ok 996 ok 997 ok 998 ok 999 ok 1000 ok 1001 ok 1002 ok 1003 ok 1004 ok 1005 ok 1006 ok 1007 ok 1008 ok 1009 ok 1010 ok 1011 ok 1012 ok 1013 ok 1014 ok 1015 ok 1016 ok 1017 ok 1018 ok 1019 ok 1020 ok 1021 ok 1022 ok 1023 ok 1024 ok 1025 ok 1026 ok 1027 ok 1028 ok 1029 ok 1030 ok 1031 ok 1032 ok 1033 ok 1034 ok 1035 ok 1036 ok 1037 ok 1038 ok 1039 ok 1040 ok 1041 ok 1042 ok 1043 ok 1044 ok 1045 ok 1046 ok 1047 ok 1048 ok 1049 ok 1050 ok 1051 ok 1052 ok 1053 ok 1054 ok 1055 ok 1056 ok 1057 ok 1058 ok 1059 ok 1060 ok 1061 ok 1062 ok 1063 ok 1064 ok 1065 ok 1066 ok 1067 ok 1068 ok 1069 ok 1070 ok 1071 ok 1072 ok 1073 ok 1074 ok 1075 ok 1076 ok 1077 ok 1078 ok 1079 ok 1080 ok 1081 ok 1082 ok 1083 ok 1084 ok 1085 ok 1086 ok 1087 ok 1088 ok 1089 ok 1090 ok 1091 ok 1092 ok 1093 ok 1094 ok 1095 ok 1096 ok 1097 ok 1098 ok 1099 ok 1100 ok 1101 ok 1102 ok 1103 ok 1104 ok 1105 ok 1106 ok 1107 ok 1108 ok 1109 ok 1110 ok 1111 ok 1112 ok 1113 ok 1114 ok 1115 ok 1116 ok 1117 ok 1118 ok 1119 ok 1120 ok 1121 ok 1122 ok 1123 ok 1124 ok 1125 ok 1126 ok 1127 ok 1128 ok 1129 ok 1130 ok 1131 ok 1132 ok 1133 ok 1134 ok 1135 ok 1136 ok 1137 ok 1138 ok 1139 ok 1140 ok 1141 ok 1142 ok 1143 ok 1144 ok 1145 ok 1146 ok 1147 ok 1148 ok 1149 ok 1150 ok 1151 ok 1152 ok 1153 # possessive captures ok 1154 ok 1155 ok 1156 ok 1157 ok 1158 ok 1159 ok 1160 ok 1161 ok 1162 ok 1163 ok 1164 ok 1165 ok 1166 ok 1167 ok 1168 ok 1169 ok 1170 ok 1171 ok 1172 ok 1173 ok 1174 ok 1175 ok 1176 ok 1177 ok 1178 ok 1179 ok 1180 ok 1181 ok 1182 ok 1183 ok 1184 ok 1185 ok 1186 ok 1187 ok 1188 ok 1189 ok 1190 ok 1191 ok 1192 ok 1193 ok 1194 ok 1195 ok 1196 ok 1197 ok 1198 ok 1199 ok 1200 ok 1201 ok 1202 ok 1203 ok 1204 ok 1205 ok 1206 ok 1207 ok 1208 ok 1209 ok 1210 ok 1211 ok 1212 ok 1213 ok 1214 ok 1215 ok 1216 ok 1217 ok 1218 ok 1219 ok 1220 ok 1221 ok 1222 ok 1223 ok 1224 ok 1225 ok 1226 ok 1227 ok 1228 ok 1229 ok 1230 ok 1231 ok 1232 ok 1233 ok 1234 # (blank line) ok 1235 ok 1236 ok 1237 # (blank line) ok 1238 ok 1239 ok 1240 ok 1241 ok 1242 # (blank line) ok 1243 ok 1244 ok 1245 ok 1246 ok 1247 ok 1248 ok 1249 ok 1250 # (blank line) ok 1251 ok 1252 ok 1253 ok 1254 ok 1255 ok 1256 ok 1257 ok 1258 # (blank line) ok 1259 ok 1260 ok 1261 ok 1262 # (blank line) ok 1263 ok 1264 ok 1265 ok 1266 # (blank line) ok 1267 ok 1268 ok 1269 ok 1270 # (blank line) ok 1271 ok 1272 ok 1273 # (blank line) ok 1274 ok 1275 ok 1276 ok 1277 # (blank line) ok 1278 ok 1279 ok 1280 ok 1281 ok 1282 # (blank line) ok 1283 # \k\ preceded by a literal ok 1284 ok 1285 ok 1286 ok 1287 ok 1288 ok 1289 ok 1290 ok 1291 ok 1292 ok 1293 ok 1294 ok 1295 ok 1296 ok 1297 ok 1298 ok 1299 ok 1300 ok 1301 ok 1302 ok 1303 ok 1304 ok 1305 ok 1306 ok 1307 ok 1308 ok 1309 ok 1310 ok 1311 ok 1312 ok 1313 ok 1314 ok 1315 ok 1316 ok 1317 ok 1318 ok 1319 # (blank line) ok 1320 # \g{...} with a name as the argument ok 1321 ok 1322 ok 1323 ok 1324 ok 1325 ok 1326 # (blank line) ok 1327 # Python style named capture buffer stuff ok 1328 ok 1329 ok 1330 ok 1331 ok 1332 ok 1333 ok 1334 ok 1335 ok 1336 # (blank line) ok 1337 # check that non identifiers as names are treated as the appropriate lookaround ok 1338 ok 1339 ok 1340 ok 1341 ok 1342 ok 1343 ok 1344 # (blank line) ok 1345 ok 1346 ok 1347 # (blank line) ok 1348 ok 1349 # (blank line) ok 1350 # check that branch reset works ok. ok 1351 ok 1352 ok 1353 ok 1354 ok 1355 ok 1356 ok 1357 ok 1358 ok 1359 ok 1360 ok 1361 ok 1362 ok 1363 ok 1364 ok 1365 # Used to crash\, because the last branch was ignored when the parens ok 1366 # were counted​: ok 1367 ok 1368 # (blank line) ok 1369 # Bug #41492 ok 1370 ok 1371 ok 1372 ok 1373 # (blank line) ok 1374 ok 1375 ok 1376 ok 1377 # (blank line) ok 1378 ok 1379 ok 1380 ok 1381 ok 1382 ok 1383 ok 1384 ok 1385 ok 1386 ok 1387 ok 1388 ok 1389 ok 1390 ok 1391 ok 1392 ok 1393 # (blank line) ok 1394 ok 1395 ok 1396 ok 1397 ok 1398 ok 1399 ok 1400 ok 1401 ok 1402 ok 1403 # (blank line) ok 1404 # (blank line) ok 1405 ok 1406 ok 1407 ok 1408 ok 1409 ok 1410 ok 1411 ok 1412 ok 1413 ok 1414 # (blank line) ok 1415 ok 1416 ok 1417 ok 1418 ok 1419 ok 1420 ok 1421 # (blank line) ok 1422 ok 1423 ok 1424 ok 1425 ok 1426 ok 1427 ok 1428 ok 1429 ok 1430 # (blank line) ok 1431 # Two regressions in 5.8.x (only) introduced by change 30638 ok 1432 # Simplification of the test failure in XML​::LibXML​::Simple​: ok 1433 ok 1434 # As reported in #59168 by Father Chrysostomos​: ok 1435 ok 1436 # [perl #60344] Regex lookbehind failure after an (if)then|else in perl 5.10 ok 1437 ok 1438 ok 1439 ok 1440 ok 1441 # (blank line) ok 1442 # Verify that \N{U+...} forces Unicode rules ok 1443 ok 1444 ok 1445 - Even for single quoted patterns ok 1446 - Empty \N{} should change /d to /u ok 1447 # (blank line) ok 1448 ok 1449 # (blank line) ok 1450 # was generating malformed utf8 ok 1451 ok 1452 # (blank line) ok 1453 ok 1454 # (blank line) ok 1455 # Verify that \ escapes the { after \N\, and causes \N to match non-newline ok 1456 ok 1457 ok 1458 ok 1459 # (blank line) ok 1460 # Verify that \N can be trailing and causes \N to match non-newline ok 1461 ok 1462 ok 1463 # (blank line) ok 1464 # Verify get errors. For these\, we need // or else puts it in single quotes\, ok 1465 # and bypasses the lexer. ok 1466 ok 1467 ok 1468 ok 1469 ok 1470 ok 1471 # (blank line) ok 1472 # And verify that in single quotes which bypasses the lexer\, the regex compiler ok 1473 # figures it out. ok 1474 ok 1475 ok 1476 ok 1477 ok 1478 ok 1479 ok 1480 ok 1481 ok 1482 # (blank line) ok 1483 # Verify that under /x that still cant have space before left brace ok 1484 ok 1485 ok 1486 # (blank line) ok 1487 # Verifies catches hex errors ok 1488 ok 1489 # Used to be an error\, but not any more​: ok 1490 ok 1491 # (blank line) ok 1492 # Verify works in single quotish context; regex compiler delivers slightly different msg ok 1493 # \N{U+BEEF.BEAD} succeeds here\, because can't completely hide it from the outside. ok 1494 ok 1495 ok 1496 ok 1497 ok 1498 ok 1499 ok 1500 ok 1501 ok 1502 ok 1503 ok 1504 ok 1505 ok 1506 ok 1507 ok 1508 ok 1509 ok 1510 ok 1511 ok 1512 ok 1513 ok 1514 - \c? is APC on EBCDIC # skipped. Test is only valid for EBCDIC platforms.
ok 1515 ok 1516 ok 1517 ok 1518 ok 1519 ok 1520 ok 1521 ok 1522 ok 1523 ok 1524 ok 1525 ok 1526 ok 1527 # (blank line) ok 1528 # The below were inserting a NULL ok 1529 ok 1530 ok 1531 ok 1532 # (blank line) ok 1533 # avoid problems with 32-bit signed integer overflow ok 1534 # (blank line) ok 1535 ok 1536 ok 1537 ok 1538 ok 1539 ok 1540 ok 1541 ok 1542 ok 1543 ok 1544 ok 1545 ok 1546 ok 1547 # (blank line) ok 1548 ok 1549 ok 1550 ok 1551 ok 1552 ok 1553 ok 1554 ok 1555 ok 1556 ok 1557 ok 1558 ok 1559 ok 1560 # (blank line) ok 1561 ok 1562 ok 1563 ok 1564 ok 1565 ok 1566 ok 1567 ok 1568 ok 1569 ok 1570 ok 1571 ok 1572 ok 1573 # (blank line) ok 1574 # The below was inserting a NULL into the character class. ok 1575 ok 1576 # skipped. Test not valid for re/regexp_nonull.t ok 1577 ok 1578 ok 1579 # (blank line) ok 1580 # Verify that reads 1-3 octal digits\, and that \_ works in char class ok 1581 ok 1582 # skipped. Test not valid for re/regexp_nonull.t ok 1583 ok 1584 # skipped. Test not valid for re/regexp_nonull.t ok 1585 ok 1586 # skipped. Test not valid for re/regexp_nonull.t ok 1587 ok 1588 ok 1589 ok 1590 ok 1591 ok 1592 # (blank line) ok 1593 # RT #79152 ok 1594 ok 1595 ok 1596 ok 1597 # (blank line) ok 1598 ok 1599 ok 1600 # (blank line) ok 1601 # RT #85528 ok 1602 ok 1603 # (blank line) ok 1604 # RT #85964 ok 1605 ok 1606 ok 1607 ok 1608 ok 1609 ok 1610 ok 1611 ok 1612 ok 1613 ok 1614 ok 1615 ok 1616 ok 1617 # (blank line) ok 1618 - [perl #127537] ok 1619 # (blank line) ok 1620 # 17F is 'Long s'; This makes sure the a's in /aa can be separate ok 1621 ok 1622 ok 1623 ok 1624 ok 1625 ok 1626 # (blank line) ok 1627 # Normally 1E9E generates a multi-char fold\, but not in inverted class; ok 1628 # See [perl #89750]. This makes sure that the simple fold gets generated ok 1629 # in that case\, to DF. ok 1630 ok 1631 # (blank line) ok 1632 # RT #96354 ok 1633 ok 1634 ok 1635 # (blank line) ok 1636 # \p{L_} was being misinterpreted as \p{L}. L_ matches cased letters\, which ok 1637 # the ideograph below isn't\, whereas it does match L ok 1638 ok 1639 ok 1640 # (blank line) ok 1641 # RT #89774 ok 1642 ok 1643 ok 1644 # (blank line) ok 1645 # RT #99928 ok 1646 ok 1647 # (blank line) ok 1648 ok 1649 ok 1650 ok 1651 ok 1652 # (blank line) ok 1653 # Make sure we don't see code blocks where there aren't\, and vice-versa ok 1654 ok 1655 ok 1656 ok 1657 ok 1658 ok 1659 ok 1660 ok 1661 ok 1662 ok 1663 ok 1664 ok 1665 ok 1666 # (blank line) ok 1667 # These test that doesn't cut-off matching too soon in the string for ok 1668 # multi-char folds ok 1669 ok 1670 ok 1671 # (blank line) ok 1672 ok 1673 ok 1674 ok 1675 ok 1676 # (blank line) ok 1677 # [perl #101970] ok 1678 ok 1679 ok 1680 # (blank line) ok 1681 # Was matching 'ss' only and failing the entire match\, not seeing the ok 1682 # alternative that would succeed ok 1683 ok 1684 ok 1685 ok 1686 # (blank line) ok 1687 # /i properties shouldn't match more than the property itself ok 1688 ok 1689 # (blank line) ok 1690 # [[​:lower​:]]/i and [[​:upper​:]]/i should match what \p{Lower} and \p{Upper} do. ok 1691 # which is \p{Cased}\, not \p{Alpha}\, ok 1692 ok 1693 ok 1694 # (blank line) ok 1695 # [perl #110648] ok 1696 ok 1697 # (blank line) ok 1698 # [perl #111400]. Tests the first Y/N boundary above 255 for each of these. ok 1699 ok 1700 ok 1701 ok 1702 ok 1703 ok 1704 ok 1705 ok 1706 ok 1707 ok 1708 ok 1709 ok 1710 ok 1711 ok 1712 ok 1713 ok 1714 ok 1715 ok 1716 ok 1717 # (blank line) ok 1718 # [perl #113400] ok 1719 ok 1720 # (blank line) ok 1721 ok 1722 ok 1723 ok 1724 ok 1725 ok 1726 # (blank line) ok 1727 ok 1728 ok 1729 ok 1730 ok 1731 # (blank line) ok 1732 ok 1733 ok 1734 ok 1735 ok 1736 # (blank line) ok 1737 # $^N\, $+ on backtrackracking ok 1738 # BRANCH ok 1739 ok 1740 # TRIE ok 1741 ok 1742 # CURLYX ok 1743 ok 1744 # CURLYM ok 1745 ok 1746 ok 1747 # CURLYN ok 1748 ok 1749 ok 1750 # (blank line) ok 1751 # using 'return' in code blocks ok 1752 ok 1753 ok 1754 ok 1755 ok 1756 ok 1757 ok 1758 ok 1759 ok 1760 # (blank line) ok 1761 # using 'return' in code blocks with additional scopes to pop ok 1762 ok 1763 ok 1764 ok 1765 ok 1766 # (blank line) ok 1767 # pattern modifier flags should propagate into returned (??{}) pattern ok 1768 # p\,d\,l not tested ok 1769 # (blank line) ok 1770 ok 1771 ok 1772 ok 1773 ok 1774 ok 1775 ok 1776 ok 1777 ok 1778 ok 1779 # (blank line) ok 1780 # #113670 ensure any captures to the right are invalidated when CURLY ok 1781 # and CURLYM backtrack ok 1782 # (blank line) ok 1783 ok 1784 ok 1785 # (blank line) ok 1786 # rt 113770 ok 1787 ok 1788 # rt 114068 ok 1789 ok 1790 # (blank line) ok 1791 # [perl #114220] ok 1792 ok 1793 ok 1794 ok 1795 ok 1796 # (blank line) ok 1797 ok 1798 ok 1799 # (blank line) ok 1800 # /a has no effect on properties ok 1801 ok 1802 ok 1803 # (blank line) ok 1804 ok 1805 ok 1806 ok 1807 ok 1808 # (blank line) ok 1809 ok 1810 # (blank line) ok 1811 # check that @​-\, @​+ count chars\, not bytes; especially if beginning of ok 1812 # string is not copied ok 1813 # (blank line) ok 1814 ok 1815 # (blank line) ok 1816 ok 1817 # (blank line) ok 1818 ok 1819 ok 1820 ok 1821 # (blank line) ok 1822 # [ perl #114272] ok 1823 ok 1824 # (blank line) ok 1825 # These mostly exercize various paths in the optimizer ok 1826 ok 1827 ok 1828 ok 1829 ok 1830 ok 1831 ok 1832 ok 1833 ok 1834 ok 1835 ok 1836 ok 1837 # (blank line) ok 1838 # check we have the right utf8ness as we switch back and forth between ok 1839 # patterns ok 1840 ok 1841 # (blank line) ok 1842 # [perl #118375] ok 1843 ok 1844 ok 1845 # (blank line) ok 1846 ok 1847 ok 1848 # (blank line) ok 1849 ok 1850 ok 1851 ok 1852 ok 1853 ok 1854 ok 1855 # (blank line) ok 1856 ok 1857 ok 1858 ok 1859 ok 1860 ok 1861 ok 1862 ok 1863 ok 1864 ok 1865 ok 1866 ok 1867 ok 1868 ok 1869 ok 1870 ok 1871 ok 1872 ok 1873 ok 1874 ok 1875 ok 1876 # (blank line) ok 1877 # RT #119069​: PCRE regression test​: no segfault ok 1878 ok 1879 # RT #119071​: PCRE regression test​: No warning of infinite regression ok 1880 ok 1881 # RT #119073​: PCRE regression test​: {0} => NOTHING optimization ok 1882 ok 1883 # RT #120041 ok 1884 ok 1885 ok 1886 ok 1887 # (blank line) ok 1888 # RT #120600​: Variable length lookbehind is not variable ok 1889 ok 1890 # (blank line) ok 1891 # This group is from RT #121144 ok 1892 ok 1893 ok 1894 # (blank line) ok 1895 # utf8 cache length panics ok 1896 ok 1897 ok 1898 ok 1899 # (blank line) ok 1900 ok 1901 ok 1902 # (blank line) ok 1903 # RT #121248 - segfault ok 1904 ok 1905 # (blank line) ok 1906 # RT #121299 - Inconsistent behavior with backreferences nested inside subpattern references ok 1907 ok 1908 ok 1909 ok 1910 ok 1911 ok 1912 ok 1913 ok 1914 # (blank line) ok 1915 # RT #121321 - perl 5.19.10 infinite loops on backrefs > number of capture buffers (npar) where npar>9 ok 1916 ok 1917 ok 1918 ok 1919 ok 1920 ok 1921 ok 1922 ok 1923 ok 1924 ok 1925 ok 1926 # (blank line) ok 1927 ok 1928 ok 1929 ok 1930 ok 1931 - [perl #121778] ok 1932 - [perl #122890] ok 1933 - [perl #123135] ok 1934 # (blank line) ok 1935 ok 1936 ok 1937 ok 1938 ok 1939 # (blank line) ok 1940 # RT #123840​: these used to hang in re_intuit_start ok 1941 ok 1942 ok 1943 # (blank line) ok 1944 - [perl #125825] ok 1945 # (blank line) ok 1946 ok 1947 ok 1948 ok 1949 ok 1950 ok 1951 - [perl-126222] ok 1952 # (blank line) ok 1953 ok 1954 ok 1955 ok 1956 # (blank line) ok 1957 ok 1958 ok 1959 - [perl #126187 ok 1960 ok 1961 ok 1962 ok 1963 # (blank line) ok 1964 ok 1965 ok 1966 ok 1967 ok 1968 - [perl #126405] ok 1969 - [perl 128420] recursive matches ok 1970 - [perl 128420] recursive match with backreferences ok 1971 ok 1972 ok 1973 - Jump trie capture buffer issue [perl #129897] ok 1974 - make sure that we reset capture buffers properly (from regtry) ok 1975 ok 1976 # (blank line) ok 1977 - Note a space char here ok 1978 ok 1979 - Note a space char here ok 1980 ok 1981 ok 1982 ok 1983 ok 1984 ok 1985 ok 1986 ok 1987 ok 1988 # (blank line) ok 1989 # Keep these lines at the end of the file ok 1990 # vim​: softtabstop=0 noexpandtab ok All tests successful. Files=1\, Tests=1990\, 0 wallclock secs ( 0.16 usr 0.01 sys + 0.34 cusr 0.00 csys = 0.52 CPU) Result​: PASS

p5pRT commented 7 years ago

From @jkeenan

On Mon\, 22 May 2017 13​:08​:13 GMT\, jkeenan wrote​: [snip]

Your patch -- which I've pushed in the smoke-me/jkeenan/131337-craig branch -- does enable 'make' to complete when g++ is the C-compiler on FreeBSD-11.0. However\, there is a persistent test failure in t/re/regexp_nonull.t (http​://perl5.test-smoke.org/report/55820) -- a failure which that branch does not get when compiling with g++ on Linux (http​://perl5.test-smoke.org/report/55823).

I am attaching​:

* the gzipped log of 'make' for that build;

* the ./perl -Ilib -V output for that build;

* the output for "cd t; ./perl harness -v re/regexp_nonull.t; cd -" for that build

* and by way of contrast\, the output for "cd t; ./perl harness -v re/regexp_nonull.t; cd -" on FreeBSD-11.0 but using the regular configuration style with 'clang'.

Thank you very much.

It appears that when\, on FreeBSD-11.0\, I configure with g++ in the smoke-me/jkeenan/131337-craig branch\, the perl that gets built does not have XS​::APItest.

If\, in a "regular_configure" of perl on this platform -- i.e.\, building with the default C-compiler clang -- at the end of 'make test_prep' I issue this command​:

##### find . -type f -name '*APItest*' #####

... I get these results​:

##### ./ext/XS-APItest/APItest.pm ./ext/XS-APItest/APItest.xs ./ext/XS-APItest/APItest_BS ./ext/XS-APItest/APItest.c ./ext/XS-APItest/APItest.bs ./ext/XS-APItest/APItest.o ./lib/auto/XS/APItest/APItest.bs ./lib/auto/XS/APItest/APItest.so ./lib/XS/APItest.pm #####

However\, if I build with g++ instead\, I only get these results​:

##### ./ext/XS-APItest/APItest.pm ./ext/XS-APItest/APItest.xs ./ext/XS-APItest/APItest_BS #####

I don't know why this is happening. Perhaps it is a different bug.

Thank you very much.

-- James E Keenan (jkeenan@​cpan.org)

p5pRT commented 7 years ago

From @jkeenan

On Mon\, 22 May 2017 14​:11​:58 GMT\, jkeenan wrote​:

On Mon\, 22 May 2017 13​:08​:13 GMT\, jkeenan wrote​: [snip]

Your patch -- which I've pushed in the smoke-me/jkeenan/131337-craig branch -- does enable 'make' to complete when g++ is the C-compiler on FreeBSD-11.0. However\, there is a persistent test failure in t/re/regexp_nonull.t (http​://perl5.test-smoke.org/report/55820) -- a failure which that branch does not get when compiling with g++ on Linux (http​://perl5.test-smoke.org/report/55823).

I am attaching​:

* the gzipped log of 'make' for that build;

* the ./perl -Ilib -V output for that build;

* the output for "cd t; ./perl harness -v re/regexp_nonull.t; cd -" for that build

* and by way of contrast\, the output for "cd t; ./perl harness -v re/regexp_nonull.t; cd -" on FreeBSD-11.0 but using the regular configuration style with 'clang'.

Thank you very much.

It appears that when\, on FreeBSD-11.0\, I configure with g++ in the smoke-me/jkeenan/131337-craig branch\, the perl that gets built does not have XS​::APItest.

If\, in a "regular_configure" of perl on this platform -- i.e.\, building with the default C-compiler clang -- at the end of 'make test_prep' I issue this command​:

##### find . -type f -name '*APItest*' #####

... I get these results​:

##### ./ext/XS-APItest/APItest.pm ./ext/XS-APItest/APItest.xs ./ext/XS-APItest/APItest_BS ./ext/XS-APItest/APItest.c ./ext/XS-APItest/APItest.bs ./ext/XS-APItest/APItest.o ./lib/auto/XS/APItest/APItest.bs ./lib/auto/XS/APItest/APItest.so ./lib/XS/APItest.pm #####

However\, if I build with g++ instead\, I only get these results​:

##### ./ext/XS-APItest/APItest.pm ./ext/XS-APItest/APItest.xs ./ext/XS-APItest/APItest_BS #####

I don't know why this is happening. Perhaps it is a different bug.

If there is an additional bug\, it probably occurs much earlier -- in the configure stage.

I am attaching the config.sh for blead built with my regular configuration command ...

##### regular_configure () {   OS=`uname`   if [ $OS = 'FreeBSD' ]   then   sh ./Configure -des -Dusedevel \   -Duseithreads \   -Doptimize="-O2 -pipe -fstack-protector -fno-strict-aliasing"   else   sh ./Configure -des -Dusedevel   fi } #####

... and for the smoke-me/jkeenan/131337-craig branch built as follows​:

##### gpp_configure () {   sh ./Configure -des -Dusedevel \   -Duseithreads \   -Doptimize="-O2 -pipe -fstack-protector -fno-strict-aliasing" \   -Dcc="g++" } #####

If you grep for '_ext='\, the differences are startling. regular_configure has a long list of libraries\, including XS/APItest\, as the value for 'dynamic_ext'. gpp_configure has an empty string for 'dynamic_ext'.

In regular_configure\, 'static_ext' has a value of a single whitespace. In gpp_configure\, 'static_ext' has a long list of libraries which does not include XS/APItest.

In regular_configure\, 'XS/APItest' can be found in the values for 'dynamic_ext'\, 'extensions' and 'known_extensions'. In gpp_configure\, 'XS/APItest' is found only in 'known_extensions'.

Can anyone offer some insight into this?

Thank you very much.

-- James E Keenan (jkeenan@​cpan.org)

p5pRT commented 7 years ago

From @jkeenan

gpp_configure.131337-craig.config.sh

p5pRT commented 7 years ago

From @jkeenan

regular_configure.blead.config.sh

p5pRT commented 7 years ago

From @Leont

On Mon\, May 22\, 2017 at 5​:09 PM\, James E Keenan via RT \< perlbug-followup@​perl.org> wrote​:

If there is an additional bug\, it probably occurs much earlier -- in the configure stage.

I am attaching the config.sh for blead built with my regular configuration command ...

##### regular_configure () { OS=`uname` if [ $OS = 'FreeBSD' ] then sh ./Configure -des -Dusedevel \ -Duseithreads \ -Doptimize="-O2 -pipe -fstack-protector -fno-strict-aliasing" else sh ./Configure -des -Dusedevel fi } #####

... and for the smoke-me/jkeenan/131337-craig branch built as follows​:

##### gpp_configure () { sh ./Configure -des -Dusedevel \ -Duseithreads \ -Doptimize="-O2 -pipe -fstack-protector -fno-strict-aliasing" \ -Dcc="g++" } #####

If you grep for '_ext='\, the differences are startling. regular_configure has a long list of libraries\, including XS/APItest\, as the value for 'dynamic_ext'. gpp_configure has an empty string for 'dynamic_ext'.

In regular_configure\, 'static_ext' has a value of a single whitespace. In gpp_configure\, 'static_ext' has a long list of libraries which does not include XS/APItest.

In regular_configure\, 'XS/APItest' can be found in the values for 'dynamic_ext'\, 'extensions' and 'known_extensions'. In gpp_configure\, 'XS/APItest' is found only in 'known_extensions'.

Can anyone offer some insight into this?

Thank you very much.

Yeah\, the long list of .a files in the original post looked strange to me. What is the value of the usedl config variable?

Leon

p5pRT commented 7 years ago

From @jkeenan

On Mon\, 22 May 2017 17​:03​:43 GMT\, LeonT wrote​:

On Mon\, May 22\, 2017 at 5​:09 PM\, James E Keenan via RT \< perlbug-followup@​perl.org> wrote​:

If there is an additional bug\, it probably occurs much earlier -- in the configure stage.

I am attaching the config.sh for blead built with my regular configuration command ...

##### regular_configure () { OS=`uname` if [ $OS = 'FreeBSD' ] then sh ./Configure -des -Dusedevel \ -Duseithreads \ -Doptimize="-O2 -pipe -fstack-protector -fno-strict-aliasing" else sh ./Configure -des -Dusedevel fi } #####

... and for the smoke-me/jkeenan/131337-craig branch built as follows​:

##### gpp_configure () { sh ./Configure -des -Dusedevel \ -Duseithreads \ -Doptimize="-O2 -pipe -fstack-protector -fno-strict-aliasing" \ -Dcc="g++" } #####

If you grep for '_ext='\, the differences are startling. regular_configure has a long list of libraries\, including XS/APItest\, as the value for 'dynamic_ext'. gpp_configure has an empty string for 'dynamic_ext'.

In regular_configure\, 'static_ext' has a value of a single whitespace. In gpp_configure\, 'static_ext' has a long list of libraries which does not include XS/APItest.

In regular_configure\, 'XS/APItest' can be found in the values for 'dynamic_ext'\, 'extensions' and 'known_extensions'. In gpp_configure\, 'XS/APItest' is found only in 'known_extensions'.

Can anyone offer some insight into this?

Thank you very much.

Yeah\, the long list of .a files in the original post looked strange to me. What is the value of the usedl config variable?

Leon

$ grep -n usedl *.config.sh gpp_configure.131337-craig.config.sh​:1161​:usedl='undef' regular_configure.blead.config.sh​:1160​:usedl='define'

So\, 'undef' in the g++ case. -- James E Keenan (jkeenan@​cpan.org)

p5pRT commented 7 years ago

From @jkeenan

On Mon\, 22 May 2017 17​:26​:44 GMT\, jkeenan wrote​:

On Mon\, 22 May 2017 17​:03​:43 GMT\, LeonT wrote​:

On Mon\, May 22\, 2017 at 5​:09 PM\, James E Keenan via RT \< perlbug-followup@​perl.org> wrote​:

If there is an additional bug\, it probably occurs much earlier -- in the configure stage.

I am attaching the config.sh for blead built with my regular configuration command ...

##### regular_configure () { OS=`uname` if [ $OS = 'FreeBSD' ] then sh ./Configure -des -Dusedevel \ -Duseithreads \ -Doptimize="-O2 -pipe -fstack-protector -fno-strict- aliasing" else sh ./Configure -des -Dusedevel fi } #####

... and for the smoke-me/jkeenan/131337-craig branch built as follows​:

##### gpp_configure () { sh ./Configure -des -Dusedevel \ -Duseithreads \ -Doptimize="-O2 -pipe -fstack-protector -fno-strict- aliasing" \ -Dcc="g++" } #####

If you grep for '_ext='\, the differences are startling. regular_configure has a long list of libraries\, including XS/APItest\, as the value for 'dynamic_ext'. gpp_configure has an empty string for 'dynamic_ext'.

In regular_configure\, 'static_ext' has a value of a single whitespace. In gpp_configure\, 'static_ext' has a long list of libraries which does not include XS/APItest.

In regular_configure\, 'XS/APItest' can be found in the values for 'dynamic_ext'\, 'extensions' and 'known_extensions'. In gpp_configure\, 'XS/APItest' is found only in 'known_extensions'.

Can anyone offer some insight into this?

Thank you very much.

Yeah\, the long list of .a files in the original post looked strange to me. What is the value of the usedl config variable?

Leon

$ grep -n usedl *.config.sh gpp_configure.131337-craig.config.sh​:1161​:usedl='undef' regular_configure.blead.config.sh​:1160​:usedl='define'

So\, 'undef' in the g++ case.

This is starting to look like a "Linux vs FreeBSD" case.

If in my FreeBSD-10.3 VM (which is having its own problems with a g++ build; see RT #131336) I do a regular_configure in blead and then a gpp_configure in the smoke-me/jkeenan/131337-craig branch\, I observe the same differences as I do in my FreeBSD-11.0 VM. In 10.3 in the branch\, 'usedl' is 'undef'\, 'dynamic_ext' is ''\, 'static_ext' has many libraries but not XS/APItest.

However\, when on Linux I configure like this​:

##### sh ./Configure -des -Dusedevel -Dcc="g++" #####

... I get a "more plausible" config.sh​:

##### $ grep -n -E 'usedl|dynamic_ext|static_ext' config.sh 667​:dynamic_ext='arybase attributes B Compress/Raw/Bzip2 Compress/Raw/Zlib Cwd Data/Dumper DB_File Devel/Peek Devel/PPPort Digest/MD5 Digest/SHA Encode Fcntl File/DosGlob File/Glob Filter/Util/Call Hash/Util Hash/Util/FieldHash I18N/Langinfo IO IPC/SysV List/Util Math/BigInt/FastCalc MIME/Base64 mro Opcode PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via POSIX re SDBM_File Socket Storable Sys/Hostname Sys/Syslog threads threads/shared Tie/Hash/NamedCapture Time/HiRes Time/Piece Unicode/Collate Unicode/Normalize XS/APItest XS/Typemap' 1103​:static_ext=' ' 1159​:usedl='define' #####

Thank you very much.

-- James E Keenan (jkeenan@​cpan.org)

p5pRT commented 7 years ago

From @jkeenan

On Mon\, 22 May 2017 17​:49​:51 GMT\, jkeenan wrote​:

On Mon\, 22 May 2017 17​:26​:44 GMT\, jkeenan wrote​:

On Mon\, 22 May 2017 17​:03​:43 GMT\, LeonT wrote​:

On Mon\, May 22\, 2017 at 5​:09 PM\, James E Keenan via RT \< perlbug-followup@​perl.org> wrote​:

If there is an additional bug\, it probably occurs much earlier -- in the configure stage.

I am attaching the config.sh for blead built with my regular configuration command ...

##### regular_configure () { OS=`uname` if [ $OS = 'FreeBSD' ] then sh ./Configure -des -Dusedevel \ -Duseithreads \ -Doptimize="-O2 -pipe -fstack-protector -fno-strict- aliasing" else sh ./Configure -des -Dusedevel fi } #####

... and for the smoke-me/jkeenan/131337-craig branch built as follows​:

##### gpp_configure () { sh ./Configure -des -Dusedevel \ -Duseithreads \ -Doptimize="-O2 -pipe -fstack-protector -fno-strict- aliasing" \ -Dcc="g++" } #####

If you grep for '_ext='\, the differences are startling. regular_configure has a long list of libraries\, including XS/APItest\, as the value for 'dynamic_ext'. gpp_configure has an empty string for 'dynamic_ext'.

In regular_configure\, 'static_ext' has a value of a single whitespace. In gpp_configure\, 'static_ext' has a long list of libraries which does not include XS/APItest.

In regular_configure\, 'XS/APItest' can be found in the values for 'dynamic_ext'\, 'extensions' and 'known_extensions'. In gpp_configure\, 'XS/APItest' is found only in 'known_extensions'.

Can anyone offer some insight into this?

Thank you very much.

Yeah\, the long list of .a files in the original post looked strange to me. What is the value of the usedl config variable?

Leon

$ grep -n usedl *.config.sh gpp_configure.131337-craig.config.sh​:1161​:usedl='undef' regular_configure.blead.config.sh​:1160​:usedl='define'

So\, 'undef' in the g++ case.

This is starting to look like a "Linux vs FreeBSD" case.

If in my FreeBSD-10.3 VM (which is having its own problems with a g++ build; see RT #131336) I do a regular_configure in blead and then a gpp_configure in the smoke-me/jkeenan/131337-craig branch\, I observe the same differences as I do in my FreeBSD-11.0 VM. In 10.3 in the branch\, 'usedl' is 'undef'\, 'dynamic_ext' is ''\, 'static_ext' has many libraries but not XS/APItest.

However\, when on Linux I configure like this​:

##### sh ./Configure -des -Dusedevel -Dcc="g++" #####

... I get a "more plausible" config.sh​:

##### $ grep -n -E 'usedl|dynamic_ext|static_ext' config.sh 667​:dynamic_ext='arybase attributes B Compress/Raw/Bzip2 Compress/Raw/Zlib Cwd Data/Dumper DB_File Devel/Peek Devel/PPPort Digest/MD5 Digest/SHA Encode Fcntl File/DosGlob File/Glob Filter/Util/Call Hash/Util Hash/Util/FieldHash I18N/Langinfo IO IPC/SysV List/Util Math/BigInt/FastCalc MIME/Base64 mro Opcode PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via POSIX re SDBM_File Socket Storable Sys/Hostname Sys/Syslog threads threads/shared Tie/Hash/NamedCapture Time/HiRes Time/Piece Unicode/Collate Unicode/Normalize XS/APItest XS/Typemap' 1103​:static_ext=' ' 1159​:usedl='define' #####

Thank you very much.

After much experimentation\, this is what I have got somewhat working.

On FreeBSD-11.0\, in the smoke-me/jkeenan/131337-craig branch\, I configure as follows​:

##### sh ./Configure -des -Dusedevel \   -Duseithreads \   -Doptimize="-O2 -pipe -fstack-protector -fno-strict-aliasing" \   -Dcc="g++" \   -Dusedl \   -Ddlsrc='dl_dlopen.xs' #####

That populates config.sh as in attachment 131337.better.config.sh.txt.

'make' and 'make test_harness' complete successfully.

But this begs the question​: Why on FreeBSD --but not on Linux -- does a request to build with g++ require command-line switches 'usedl' and 'dlsrc' to be populated?

I have stared at the relevant code in ./Configure but cannot figure out the answer.

Thank you very much. -- James E Keenan (jkeenan@​cpan.org)

p5pRT commented 7 years ago

From @jkeenan

17​:config_args='-des -Dusedevel -Duseithreads -Doptimize=-O2 -pipe -fstack-protector -fno-strict-aliasing -Dcc=g++ -Dusedl -Ddlsrc=dl_dlopen.xs' 25​:config_arg7='-Ddlsrc=dl_dlopen.xs' 660​:dlsrc='dl_dlopen.xs' 686​:extensions='B Compress/Raw/Bzip2 Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/DosGlob File/Glob Filter/Util/Call GDBM_File Hash/Util Hash/Util/FieldHash I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc NDBM_File Opcode POSIX PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Tie/Hash/NamedCapture Time/HiRes Time/Piece Unicode/Collate Unicode/Normalize XS/APItest XS/Typemap arybase attributes mro re threads threads/shared Archive/Tar Attribute/Handlers AutoLoader B/Debug CPAN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML Carp Config/Perl/V Devel/SelfStubber Digest Dumpvalue Env Errno Exporter ExtUtils/CBuilder ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/ParseXS File/Fetch File/Find File/Path File/Temp FileCache Filter/Simple Getopt/Long HTTP/Tiny I18N/Collate I18N/LangTags IO/Compress IO/Socket/IP IO/Zlib IPC/Cmd IPC/Open3 JSON/PP Locale/Codes Locale/Maketext Locale/Maketext/Simple Math/BigInt Math/BigRat Math/Complex Memoize Module/CoreList Module/Load Module/Load/Conditional Module/Loaded Module/Metadata NEXT Net/Ping Params/Check Perl/OSType PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html Pod/Parser Pod/Perldoc Pod/Simple Pod/Usage Safe Search/Dict SelfLoader Term/ANSIColor Term/Cap Term/Complete Term/ReadLine Test Test/Harness Test/Simple Text/Abbrev Text/Balanced Text/ParseWords Text/Tabs Thread/Queue Thread/Semaphore Tie/File Tie/Memoize Tie/RefHash Time/Local XSLoader autodie autouse base bignum constant encoding/warnings experimental if lib libnet parent perlfaq podlators version' 887​:known_extensions='Amiga/ARexx Amiga/Exec Archive/Tar Attribute/Handlers AutoLoader B B/Debug CPAN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML Carp Compress/Raw/Bzip2 Compress/Raw/Zlib Config/Perl/V Cwd DB_File Data/Dumper Devel/PPPort Devel/Peek Devel/SelfStubber Digest Digest/MD5 Digest/SHA Dumpvalue Encode Env Errno Exporter ExtUtils/CBuilder ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/ParseXS Fcntl File/DosGlob File/Fetch File/Find File/Glob File/Path File/Temp FileCache Filter/Simple Filter/Util/Call GDBM_File Getopt/Long HTTP/Tiny Hash/Util Hash/Util/FieldHash I18N/Collate I18N/LangTags I18N/Langinfo IO IO/Compress IO/Socket/IP IO/Zlib IPC/Cmd IPC/Open3 IPC/SysV JSON/PP List/Util Locale/Codes Locale/Maketext Locale/Maketext/Simple MIME/Base64 Math/BigInt Math/BigInt/FastCalc Math/BigRat Math/Complex Memoize Module/CoreList Module/Load Module/Load/Conditional Module/Loaded Module/Metadata NDBM_File NEXT Net/Ping ODBM_File Opcode POSIX Params/Check Perl/OSType PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html Pod/Parser Pod/Perldoc Pod/Simple Pod/Usage SDBM_File Safe Search/Dict SelfLoader Socket Storable Sys/Hostname Sys/Syslog Term/ANSIColor Term/Cap Term/Complete Term/ReadLine Test Test/Harness Test/Simple Text/Abbrev Text/Balanced Text/ParseWords Text/Tabs Thread/Queue Thread/Semaphore Tie/File Tie/Hash/NamedCapture Tie/Memoize Tie/RefHash Time/HiRes Time/Local Time/Piece Unicode/Collate Unicode/Normalize VMS/DCLsym VMS/Filespec VMS/Stdio Win32 Win32API/File Win32CORE XS/APItest XS/Typemap XSLoader arybase attributes autodie autouse base bignum constant encoding/warnings experimental if lib libnet mro parent perlfaq podlators re threads threads/shared version ' 1163​:usedl='define'

p5pRT commented 7 years ago

From @Leont

On Mon\, May 22\, 2017 at 9​:59 PM\, James E Keenan via RT \< perlbug-followup@​perl.org> wrote​:

After much experimentation\, this is what I have got somewhat working.

On FreeBSD-11.0\, in the smoke-me/jkeenan/131337-craig branch\, I configure as follows​:

##### sh ./Configure -des -Dusedevel \ -Duseithreads \ -Doptimize="-O2 -pipe -fstack-protector -fno-strict-aliasing" \ -Dcc="g++" \ -Dusedl \ -Ddlsrc='dl_dlopen.xs' #####

That populates config.sh as in attachment 131337.better.config.sh.txt.

'make' and 'make test_harness' complete successfully.

But this begs the question​: Why on FreeBSD --but not on Linux -- does a request to build with g++ require command-line switches 'usedl' and 'dlsrc' to be populated?

I have stared at the relevant code in ./Configure but cannot figure out the answer.

The hints for linux mention that "If using g++\, the Configure scan for dlopen() and (especially) dlerror() might fail\, easier just to forcibly hint them in." and adds a workaround. Possibly the freebsd hints need something similar.

Leon

p5pRT commented 7 years ago

From @jkeenan

On Mon\, 22 May 2017 21​:07​:39 GMT\, LeonT wrote​:

On Mon\, May 22\, 2017 at 9​:59 PM\, James E Keenan via RT \< perlbug-followup@​perl.org> wrote​:

After much experimentation\, this is what I have got somewhat working.

On FreeBSD-11.0\, in the smoke-me/jkeenan/131337-craig branch\, I configure as follows​:

##### sh ./Configure -des -Dusedevel \ -Duseithreads \ -Doptimize="-O2 -pipe -fstack-protector -fno-strict-aliasing" \ -Dcc="g++" \ -Dusedl \ -Ddlsrc='dl_dlopen.xs' #####

That populates config.sh as in attachment 131337.better.config.sh.txt.

'make' and 'make test_harness' complete successfully.

But this begs the question​: Why on FreeBSD --but not on Linux -- does a request to build with g++ require command-line switches 'usedl' and 'dlsrc' to be populated?

I have stared at the relevant code in ./Configure but cannot figure out the answer.

The hints for linux mention that "If using g++\, the Configure scan for dlopen() and (especially) dlerror() might fail\, easier just to forcibly hint them in." and adds a workaround. Possibly the freebsd hints need something similar.

Leon

That looks promising. See https://perl5.git.perl.org/perl.git/commitdiff/48e836997

-- James E Keenan (jkeenan@​cpan.org)

p5pRT commented 7 years ago

From @jkeenan

On Tue\, 23 May 2017 02​:15​:19 GMT\, jkeenan wrote​:

On Mon\, 22 May 2017 21​:07​:39 GMT\, LeonT wrote​:

On Mon\, May 22\, 2017 at 9​:59 PM\, James E Keenan via RT \< perlbug-followup@​perl.org> wrote​:

After much experimentation\, this is what I have got somewhat working.

On FreeBSD-11.0\, in the smoke-me/jkeenan/131337-craig branch\, I configure as follows​:

##### sh ./Configure -des -Dusedevel \ -Duseithreads \ -Doptimize="-O2 -pipe -fstack-protector -fno-strict- aliasing" \ -Dcc="g++" \ -Dusedl \ -Ddlsrc='dl_dlopen.xs' #####

That populates config.sh as in attachment 131337.better.config.sh.txt.

'make' and 'make test_harness' complete successfully.

But this begs the question​: Why on FreeBSD --but not on Linux -- does a request to build with g++ require command-line switches 'usedl' and 'dlsrc' to be populated?

I have stared at the relevant code in ./Configure but cannot figure out the answer.

The hints for linux mention that "If using g++\, the Configure scan for dlopen() and (especially) dlerror() might fail\, easier just to forcibly hint them in." and adds a workaround. Possibly the freebsd hints need something similar.

Leon

That looks promising. See https://perl5.git.perl.org/perl.git/commitdiff/48e836997

Applied to blead in these commits​:

##### commit 21a33adc37856aaedd4bf756d5dca47bdc4f7b50 Author​: James E Keenan \jkeenan@&#8203;cpan\.org AuthorDate​: Mon May 22 21​:25​:18 2017 Commit​: James E Keenan \jkeenan@&#8203;cpan\.org CommitDate​: Sat Jun 3 18​:22​:46 2017

  When building with g++ on FreeBSD\, explicitly set 'usedl' and 'dlsrc'.  
  For​: https://rt-archive.perl.org/perl5/Ticket/Display.html?id=131337   Signed-off-by​: James E Keenan \jkeenan@&#8203;cpan\.org

commit 66c5e3f2ab554a89dfc00689602414ac21ea66f6 Author​: James E Keenan \jkeenan@&#8203;cpan\.org AuthorDate​: Sun May 21 22​:16​:23 2017 Commit​: James E Keenan \jkeenan@&#8203;cpan\.org CommitDate​: Sat Jun 3 18​:22​:46 2017

  Patch suggested by Craig Berry for RT 131337. #####

See http​://perl5.test-smoke.org/report/56009

Marking ticket Resolved.

-- James E Keenan (jkeenan@​cpan.org)

p5pRT commented 7 years ago

@jkeenan - Status changed from 'open' to 'resolved'

p5pRT commented 7 years ago

From @doughera88

On Mon\, Jun 05\, 2017 at 06​:05​:07AM -0700\, James E Keenan via RT wrote​:

Applied to blead in these commits​:

##### commit 21a33adc37856aaedd4bf756d5dca47bdc4f7b50 Author​: James E Keenan \jkeenan@&#8203;cpan\.org AuthorDate​: Mon May 22 21​:25​:18 2017 Commit​: James E Keenan \jkeenan@&#8203;cpan\.org CommitDate​: Sat Jun 3 18​:22​:46 2017

When building with g\+\+ on FreeBSD\, explicitly set 'usedl' and 'dlsrc'\.

For&#8203;: https://rt-archive.perl.org/perl5/Ticket/Display.html?id=131337
Signed\-off\-by&#8203;: James E Keenan \<jkeenan@&#8203;cpan\.org>

commit 66c5e3f2ab554a89dfc00689602414ac21ea66f6 Author​: James E Keenan \jkeenan@&#8203;cpan\.org AuthorDate​: Sun May 21 22​:16​:23 2017 Commit​: James E Keenan \jkeenan@&#8203;cpan\.org CommitDate​: Sat Jun 3 18​:22​:46 2017

Patch suggested by Craig Berry for RT 131337\.

#####

See http​://perl5.test-smoke.org/report/56009

Marking ticket Resolved.

I pushed a slightly simpler version that forces Configure to find dlopen() as

commit 2c8efe4079b75c61cf34425054539a9c24913e9f Author​: Andy Dougherty \doughera@&#8203;lafayette\.edu Date​: Mon Jun 12 08​:02​:10 2017 -0400

  Simpler hints fix for [perl #131337].

Having found dlopen()\, the values of usedl=define and dlsrc=dl_dlopen.xs then follow naturally\, but the user can still override and choose static linking\, if desired\, with -Uusedl.

(I've also attached the patch here to record it in RT -- I meant to do so earlier\, but failed to include RT in the appropriate CC​: line.)

The ticket should still stay Resolved.

--   Andy Dougherty doughera@​lafayette.edu

p5pRT commented 7 years ago

From @doughera88

freebsd-hints.patch ```diff commit 2c8efe4079b75c61cf34425054539a9c24913e9f Author: Andy Dougherty Date: Mon Jun 12 08:02:10 2017 -0400 Simpler hints fix for [perl #131337]. The Configure scan fails to find dlopen() with g++. Explicitly making it availble allows Configure to default to using dynamic loading, but still allows the user to override and use static loading. diff --git a/hints/freebsd.sh b/hints/freebsd.sh index fc6d73f..b3422c9 100644 --- a/hints/freebsd.sh +++ b/hints/freebsd.sh @@ -322,10 +322,12 @@ d_printf_format_null='undef' d_uselocale='undef' # https://rt.perl.org/Ticket/Display.html?id=131337 +# Reported in 11.0-CURRENT with g++-4.8.5: +# If using g++, the Configure scan for dlopen() fails. +# Easier for now to just to forcibly set it. case "$cc" in *g++*) - usedl='define' - dlsrc='dl_dlopen.xs' + d_dlopen='define' ;; esac ```