Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed
p5pRT opened this issue May 21, 2017 · 31 comments
Closed

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

p5pRT opened this issue May 21, 2017 · 31 comments

Comments

@p5pRT
Copy link
Collaborator

@p5pRT p5pRT commented May 21, 2017

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

Searchable as RT131337$

@p5pRT

This comment has been minimized.

Copy link
Collaborator Author

@p5pRT p5pRT commented May 21, 2017

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 24e16d7
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 ddb6593
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 ddb6593 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
24e16d7 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

This comment has been minimized.

Copy link
Collaborator Author

@p5pRT p5pRT commented May 21, 2017

From @jkeenan

Summary of my perl5 (revision 5 version 25 subversion 9) configuration​:
  Commit id​: ddb6593
  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

This comment has been minimized.

Copy link
Collaborator Author

@p5pRT p5pRT commented May 21, 2017

@p5pRT

This comment has been minimized.

Copy link
Collaborator Author

@p5pRT p5pRT commented May 21, 2017

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

This comment has been minimized.

Copy link
Collaborator Author

@p5pRT p5pRT commented May 21, 2017

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 24e16d7
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&#8203;: 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 9637d2a
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

This comment has been minimized.

Copy link
Collaborator Author

@p5pRT p5pRT commented May 21, 2017

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

@p5pRT

This comment has been minimized.

Copy link
Collaborator Author

@p5pRT p5pRT commented May 21, 2017

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 24e16d7
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&#8203;: 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 9637d2a
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 2c4393c at that point.

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

@p5pRT

This comment has been minimized.

Copy link
Collaborator Author

@p5pRT p5pRT commented May 21, 2017

@p5pRT

This comment has been minimized.

Copy link
Collaborator Author

@p5pRT p5pRT commented May 21, 2017

From @jkeenan

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

[snip]

Surely this was fixed by​:

commit 9637d2a
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

This comment has been minimized.

Copy link
Collaborator Author

@p5pRT p5pRT commented May 21, 2017

@p5pRT

This comment has been minimized.

Copy link
Collaborator Author

@p5pRT p5pRT commented May 22, 2017

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 9637d2a
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 --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

This comment has been minimized.

Copy link
Collaborator Author

@p5pRT p5pRT commented May 22, 2017

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 9637d2a
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

This comment has been minimized.

Copy link
Collaborator Author

@p5pRT p5pRT commented May 22, 2017

@p5pRT

This comment has been minimized.

Copy link
Collaborator Author

@p5pRT p5pRT commented May 22, 2017

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

This comment has been minimized.

Copy link
Collaborator Author

@p5pRT p5pRT commented May 22, 2017

From @jkeenan

Summary of my perl5 (revision 5 version 26 subversion 0) configuration​:
  Commit id​: 52ad33e
  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

This comment has been minimized.

Copy link
Collaborator Author

@p5pRT p5pRT commented May 22, 2017

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<n> 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

This comment has been minimized.

Copy link
Collaborator Author

@p5pRT p5pRT commented May 22, 2017

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

This comment has been minimized.

Copy link
Collaborator Author

@p5pRT p5pRT commented May 22, 2017

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

This comment has been minimized.

Copy link
Collaborator Author

@p5pRT p5pRT commented May 22, 2017

@p5pRT

This comment has been minimized.

Copy link
Collaborator Author

@p5pRT p5pRT commented May 22, 2017

@p5pRT

This comment has been minimized.

Copy link
Collaborator Author

@p5pRT p5pRT commented May 22, 2017

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

This comment has been minimized.

Copy link
Collaborator Author

@p5pRT p5pRT commented May 22, 2017

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

This comment has been minimized.

Copy link
Collaborator Author

@p5pRT p5pRT commented May 22, 2017

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

This comment has been minimized.

Copy link
Collaborator Author

@p5pRT p5pRT commented May 22, 2017

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

This comment has been minimized.

Copy link
Collaborator Author

@p5pRT p5pRT commented May 22, 2017

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

This comment has been minimized.

Copy link
Collaborator Author

@p5pRT p5pRT commented May 22, 2017

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

This comment has been minimized.

Copy link
Collaborator Author

@p5pRT p5pRT commented May 23, 2017

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

This comment has been minimized.

Copy link
Collaborator Author

@p5pRT p5pRT commented Jun 5, 2017

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 21a33ad
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 66c5e3f
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)

@p5pRT

This comment has been minimized.

Copy link
Collaborator Author

@p5pRT p5pRT commented Jun 5, 2017

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

@p5pRT p5pRT closed this Jun 5, 2017
@p5pRT

This comment has been minimized.

Copy link
Collaborator Author

@p5pRT p5pRT commented Jun 12, 2017

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

commit 66c5e3f
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 2c8efe4
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

@p5pRT

This comment has been minimized.

Copy link
Collaborator Author

@p5pRT p5pRT commented Jun 12, 2017

From @doughera88

freebsd-hints.patch
commit 2c8efe4079b75c61cf34425054539a9c24913e9f
Author: Andy Dougherty <doughera@lafayette.edu>
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
 
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
1 participant
You can’t perform that action at this time.