Closed p5pRT closed 7 years ago
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
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 .
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)
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)?
The RT System itself - Status changed from 'new' to 'open'
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)
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)
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?
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
/*
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)
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
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
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\
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
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)
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)
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
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)
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)
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)
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'
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
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)
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@​cpan\.org AuthorDate: Mon May 22 21:25:18 2017 Commit: James E Keenan \jkeenan@​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@​cpan\.org
commit 66c5e3f2ab554a89dfc00689602414ac21ea66f6 Author: James E Keenan \jkeenan@​cpan\.org AuthorDate: Sun May 21 22:16:23 2017 Commit: James E Keenan \jkeenan@​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)
@jkeenan - Status changed from 'open' to 'resolved'
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@​cpan\.org AuthorDate: Mon May 22 21:25:18 2017 Commit: James E Keenan \jkeenan@​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@​cpan\.org>
commit 66c5e3f2ab554a89dfc00689602414ac21ea66f6 Author: James E Keenan \jkeenan@​cpan\.org AuthorDate: Sun May 21 22:16:23 2017 Commit: James E Keenan \jkeenan@​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@​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
Migrated from rt.perl.org#131337 (status was 'resolved')
Searchable as RT131337$