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

Encode CPAN version 2.78 broke g++ build on FreeBSD-10.3 #15983

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

Encode CPAN version 2.78 broke g++ build on FreeBSD-10.3 #15983

p5pRT opened this issue May 21, 2017 · 8 comments

Comments

@p5pRT
Copy link

p5pRT commented May 21, 2017

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

Searchable as RT131336$

@p5pRT
Copy link
Author

p5pRT commented May 21, 2017

From @jkeenan

Summary​:

We merged CPAN version 2.78 of Encode into the Perl 5 core distribution
during the 5.23/5.24 development cycle. From that point forward it
became impossible to build perl on FreeBSD-10.3 when using g++ as the
C-compiler.

Preliminary remarks​:

1. The default C-compiler on FreeBSD-10.3 is clang, not g++. At this
point I'm the only person smoke-testing blead on FreeBSD-10.3. When I
do so, I configure with clang and with 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. To the best of my knowledge we have not received any complaints from
real-world users of perl on FreeBSD-10.3 concerning breakage in g++ builds.

3. 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.22.0 was released, it could have been built
with g++ on FreeBSD-10.3. (We weren't smoke-testing perl on
FreeBSD-10.3 at all at that time, so our knowledge of its buildability
is strictly retrospective.) At tag v5.22.0 all tests would PASS.
However, when perl-5.24.0 was released, any attempt to build perl with
g++ would fail without ever getting as far as 'make test'.

Bisection indicates​:

#####
0648b1f is the first bad commit
commit 0648b1f
Author​: Chris 'BinGOs' Williams <chris@​bingosnet.co.uk>
Date​: Wed Oct 7 16​:31​:48 2015 +0100

  Update Encode to CPAN version 2.78
#####

0648b1f^, the immediately preceding
commit, would be​:

#####
commit 55121b6
Author​: Ricardo Signes <rjbs@​cpan.org>
AuthorDate​: Tue Oct 6 15​:42​:05 2015 -0400
Commit​: Ricardo Signes <rjbs@​cpan.org>
CommitDate​: Tue Oct 6 15​:42​:05 2015 -0400

  perlsub.pod​: note that anonymous subs can have signatures, too
#####

Suppose that at that commit I were to configure 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 wouldn't pass all its tests.

#####
Test Summary Report


porting/utils.t (Wstat​:
0 Tests​: 82 Failed​: 1)
  Failed test​: 5
../cpan/Module-Metadata/t/extract-version.t (Wstat​:
0 Tests​: 221 Failed​: 0)
  TODO passed​: 199, 202-203, 206, 210, 212-213, 215
../cpan/Time-Piece/t/01base.t (Wstat​:
65280 Tests​: 2 Failed​: 2)
  Failed tests​: 1-2
  Non-zero exit status​: 255
  Parse errors​: Bad plan. You planned 13 tests but ran 2.
../cpan/Time-Piece/t/02core.t (Wstat​:
65280 Tests​: 0 Failed​: 0)
  Non-zero exit status​: 255
  Parse errors​: Bad plan. You planned 102 tests but ran 0.
../cpan/Time-Piece/t/02core_dst.t (Wstat​:
65280 Tests​: 0 Failed​: 0)
  Non-zero exit status​: 255
  Parse errors​: Bad plan. You planned 60 tests but ran 0.
../cpan/Time-Piece/t/03compare.t (Wstat​:
65280 Tests​: 0 Failed​: 0)
  Non-zero exit status​: 255
  Parse errors​: Bad plan. You planned 5 tests but ran 0.
../cpan/Time-Piece/t/04mjd.t (Wstat​:
65280 Tests​: 0 Failed​: 0)
  Non-zero exit status​: 255
  Parse errors​: Bad plan. You planned 12 tests but ran 0.
../cpan/Time-Piece/t/05overload.t (Wstat​:
65280 Tests​: 0 Failed​: 0)
  Non-zero exit status​: 255
  Parse errors​: Bad plan. You planned 1 tests but ran 0.
../cpan/Time-Piece/t/06subclass.t (Wstat​:
65280 Tests​: 0 Failed​: 0)
  Non-zero exit status​: 255
  Parse errors​: No plan found in TAP output
../cpan/Time-Piece/t/07arith.t (Wstat​:
65280 Tests​: 2 Failed​: 1)
  Failed test​: 1
  Non-zero exit status​: 255
  Parse errors​: Bad plan. You planned 25 tests but ran 2.
Files=2297, Tests=662417, 421 wallclock secs (29.09 usr 22.47 sys +
223.16 cusr 139.31 csys = 414.03 CPU)
Result​: FAIL
*** [test_harness] Error code 4

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

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

Here we're only concerned with buildability -- 'make' rather than 'make
test'. I am attaching the './perl -Ilib -V' output from this build.

If I now were to advance to commit
0648b1f 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/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
lib/auto/Encode/Byte/Byte.a(byte_t.o)​:(.rodata+0x3da0)​: multiple
definition of `cp1252_encoding'
lib/auto/Encode/Encode.a(def_t.o)​:(.rodata+0x3a0)​: first defined here
lib/auto/Encode/Byte/Byte.a(byte_t.o)​:(.data+0x14580)​: multiple
definition of `cp1252_utf8'
lib/auto/Encode/Encode.a(def_t.o)​:(.data+0x560)​: first defined here
lib/auto/Encode/Byte/Byte.a(byte_t.o)​:(.data+0x14180)​: multiple
definition of `utf8_cp1252'
lib/auto/Encode/Encode.a(def_t.o)​:(.data+0x160)​: first defined here
lib/auto/Encode/Byte/Byte.a(byte_t.o)​:(.rodata+0x3dd7)​: multiple
definition of `cp1252_encoding_rep_character'
lib/auto/Encode/Encode.a(def_t.o)​:(.rodata+0x3d7)​: first defined here
lib/auto/Encode/Byte/Byte.a(byte_t.o)​:(.rodata+0x3dd0)​: multiple
definition of `cp1252_encoding_enc_name'
lib/auto/Encode/Encode.a(def_t.o)​:(.rodata+0x3d0)​: first defined here
lib/auto/Encode/Byte/Byte.a(byte_t.o)​:(.data+0x14540)​: multiple
definition of `utf8_cp1252_c2'
lib/auto/Encode/Encode.a(def_t.o)​:(.data+0x520)​: first defined here
lib/auto/Encode/Byte/Byte.a(byte_t.o)​:(.data+0x14500)​: multiple
definition of `utf8_cp1252_c3'
lib/auto/Encode/Encode.a(def_t.o)​:(.data+0x4e0)​: first defined here
lib/auto/Encode/Byte/Byte.a(byte_t.o)​:(.data+0x14480)​: multiple
definition of `utf8_cp1252_c5'
lib/auto/Encode/Encode.a(def_t.o)​:(.data+0x460)​: first defined here
lib/auto/Encode/Byte/Byte.a(byte_t.o)​:(.data+0x14440)​: multiple
definition of `utf8_cp1252_c6'
lib/auto/Encode/Encode.a(def_t.o)​:(.data+0x420)​: first defined here
lib/auto/Encode/Byte/Byte.a(byte_t.o)​:(.data+0x143e0)​: multiple
definition of `utf8_cp1252_cb'
lib/auto/Encode/Encode.a(def_t.o)​:(.data+0x3c0)​: first defined here
lib/auto/Encode/Byte/Byte.a(byte_t.o)​:(.data+0x14240)​: multiple
definition of `utf8_cp1252_e2'
lib/auto/Encode/Encode.a(def_t.o)​:(.data+0x220)​: first defined here
lib/auto/Encode/Byte/Byte.a(byte_t.o)​:(.data+0x14320)​: multiple
definition of `utf8_cp1252_e2_80'
lib/auto/Encode/Encode.a(def_t.o)​:(.data+0x300)​: first defined here
lib/auto/Encode/Byte/Byte.a(byte_t.o)​:(.data+0x142e0)​: multiple
definition of `utf8_cp1252_e2_82'
lib/auto/Encode/Encode.a(def_t.o)​:(.data+0x2c0)​: first defined here
lib/auto/Encode/Byte/Byte.a(byte_t.o)​:(.data+0x142a0)​: multiple
definition of `utf8_cp1252_e2_84'
lib/auto/Encode/Encode.a(def_t.o)​:(.data+0x280)​: first defined here
lib/auto/POSIX/POSIX.a(POSIX.o)​: In function
`XS_POSIX_tmpnam(interpreter*, cv*)'​:
POSIX.c​:(.text+0x3533)​: warning​: warning​: tmpnam() possibly used
unsafely; consider using mkstemp()
collect2​: error​: ld returned 1 exit status
*** [perl] Error code 1

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

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

So this was a regression between 5.22 and 5.24 -- a regression when we
updated Encode in the core distribution to match CPAN version 2.78.
This should be investigated.

Thank you very much.
Jim Keenan

@p5pRT
Copy link
Author

p5pRT commented May 21, 2017

From @jkeenan

0648b1f.make.log.txt.gz

@p5pRT
Copy link
Author

p5pRT commented May 21, 2017

From @jkeenan

Summary of my perl5 (revision 5 version 23 subversion 4) configuration​:
  Commit id​: 55121b6
  Platform​:
  osname=freebsd, osvers=10.3-release, archname=amd64-freebsd-thread-multi
  uname='freebsd localhost 10.3-release freebsd 10.3-release #0 r297264​: fri mar 25 02​:10​:02 utc 2016 root@​releng1.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='4.8.5', 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/gcc48/include/c++/ /usr/local/lib/gcc48/include/c++//x86_64-portbld-freebsd10.1 /usr/local/lib/gcc48/include/c++//backward /usr/local/lib /usr/local/lib/gcc48/gcc/x86_64-portbld-freebsd10.1/4.8.5/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_HASH_FUNC_ONE_AT_A_TIME_HARD
  PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP
  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 21​:02​:13
  %ENV​:
  PERL_WORKDIR="/home/jkeenan/gitwork/perl"
  @​INC​:
  lib
  /usr/local/lib/perl5/site_perl/5.23.4/amd64-freebsd-thread-multi
  /usr/local/lib/perl5/site_perl/5.23.4
  /usr/local/lib/perl5/5.23.4/amd64-freebsd-thread-multi
  /usr/local/lib/perl5/5.23.4
  .

@p5pRT
Copy link
Author

p5pRT commented May 22, 2017

From @iabyn

On Sat, May 20, 2017 at 07​:35​:43PM -0700, James E Keenan wrote​:

We merged CPAN version 2.78 of Encode into the Perl 5 core distribution
during the 5.23/5.24 development cycle. From that point forward it
became impossible to build perl on FreeBSD-10.3 when using g++ as the
C-compiler.

IIRC, the main reason we try to make perl compilable under C++ is not
so that perl can be built under C++, but so that XS modules can be built
under C++. And for that we need to be sure that all the perl header files
are C++-compatible. And the easiest way to test that is to successfully
build perl under C++.

I may well be wrong in my reminiscences, though.

--
No man treats a motor car as foolishly as he treats another human being.
When the car will not go, he does not attribute its annoying behaviour to
sin, he does not say, You are a wicked motorcar, and I shall not give you
any more petrol until you go. He attempts to find out what is wrong and
set it right.
  -- Bertrand Russell,
  Has Religion Made Useful Contributions to Civilization?

@p5pRT
Copy link
Author

p5pRT commented May 22, 2017

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

@p5pRT
Copy link
Author

p5pRT commented May 22, 2017

From @Tux

On Mon, 22 May 2017 10​:15​:23 +0100, Dave Mitchell <davem@​iabyn.com>
wrote​:

On Sat, May 20, 2017 at 07​:35​:43PM -0700, James E Keenan wrote​:

We merged CPAN version 2.78 of Encode into the Perl 5 core distribution
during the 5.23/5.24 development cycle. From that point forward it
became impossible to build perl on FreeBSD-10.3 when using g++ as the
C-compiler.

IIRC, the main reason we try to make perl compilable under C++ is not
so that perl can be built under C++, but so that XS modules can be built
under C++.

And, as a bonus, find bugs like these. If it is caused by some part of
the core, it is better to detect such as early as possible.

And for that we need to be sure that all the perl header files are
C++-compatible. And the easiest way to test that is to successfully
build perl under C++.

I may well be wrong in my reminiscences, though.

No, you are not

--
H.Merijn Brand http​://tux.nl Perl Monger http​://amsterdam.pm.org/
using perl5.00307 .. 5.25 porting perl5 on HP-UX, AIX, and openSUSE
http​://mirrors.develooper.com/hpux/ http​://www.test-smoke.org/
http​://qa.perl.org http​://www.goldmark.org/jeff/stupid-disclaimers/

@p5pRT
Copy link
Author

p5pRT commented Jun 16, 2017

From @jkeenan

On Sun, 21 May 2017 02​:35​:42 GMT, jkeenan@​pobox.com wrote​:

Summary​:

We merged CPAN version 2.78 of Encode into the Perl 5 core distribution
during the 5.23/5.24 development cycle. From that point forward it
became impossible to build perl on FreeBSD-10.3 when using g++ as the
C-compiler.

Preliminary remarks​:

1. The default C-compiler on FreeBSD-10.3 is clang, not g++. At this
point I'm the only person smoke-testing blead on FreeBSD-10.3. When I
do so, I configure with clang and with 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. To the best of my knowledge we have not received any complaints from
real-world users of perl on FreeBSD-10.3 concerning breakage in g++ builds.

3. 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.22.0 was released, it could have been built
with g++ on FreeBSD-10.3. (We weren't smoke-testing perl on
FreeBSD-10.3 at all at that time, so our knowledge of its buildability
is strictly retrospective.) At tag v5.22.0 all tests would PASS.
However, when perl-5.24.0 was released, any attempt to build perl with
g++ would fail without ever getting as far as 'make test'.

Bisection indicates​:

#####
0648b1f is the first bad commit
commit 0648b1f
Author​: Chris 'BinGOs' Williams <chris@​bingosnet.co.uk>
Date​: Wed Oct 7 16​:31​:48 2015 +0100

 Update Encode to CPAN version 2\.78

#####

0648b1f^, the immediately preceding
commit, would be​:

#####
commit 55121b6
Author​: Ricardo Signes <rjbs@​cpan.org>
AuthorDate​: Tue Oct 6 15​:42​:05 2015 -0400
Commit​: Ricardo Signes <rjbs@​cpan.org>
CommitDate​: Tue Oct 6 15​:42​:05 2015 -0400

 perlsub\.pod&#8203;: note that anonymous subs can have signatures\, too

#####

Suppose that at that commit I were to configure 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 wouldn't pass all its tests.

#####
Test Summary Report
-------------------
porting/utils.t (Wstat​:
0 Tests​: 82 Failed​: 1)
Failed test​: 5
../cpan/Module-Metadata/t/extract-version.t (Wstat​:
0 Tests​: 221 Failed​: 0)
TODO passed​: 199, 202-203, 206, 210, 212-213, 215
../cpan/Time-Piece/t/01base.t (Wstat​:
65280 Tests​: 2 Failed​: 2)
Failed tests​: 1-2
Non-zero exit status​: 255
Parse errors​: Bad plan. You planned 13 tests but ran 2.
../cpan/Time-Piece/t/02core.t (Wstat​:
65280 Tests​: 0 Failed​: 0)
Non-zero exit status​: 255
Parse errors​: Bad plan. You planned 102 tests but ran 0.
../cpan/Time-Piece/t/02core_dst.t (Wstat​:
65280 Tests​: 0 Failed​: 0)
Non-zero exit status​: 255
Parse errors​: Bad plan. You planned 60 tests but ran 0.
../cpan/Time-Piece/t/03compare.t (Wstat​:
65280 Tests​: 0 Failed​: 0)
Non-zero exit status​: 255
Parse errors​: Bad plan. You planned 5 tests but ran 0.
../cpan/Time-Piece/t/04mjd.t (Wstat​:
65280 Tests​: 0 Failed​: 0)
Non-zero exit status​: 255
Parse errors​: Bad plan. You planned 12 tests but ran 0.
../cpan/Time-Piece/t/05overload.t (Wstat​:
65280 Tests​: 0 Failed​: 0)
Non-zero exit status​: 255
Parse errors​: Bad plan. You planned 1 tests but ran 0.
../cpan/Time-Piece/t/06subclass.t (Wstat​:
65280 Tests​: 0 Failed​: 0)
Non-zero exit status​: 255
Parse errors​: No plan found in TAP output
../cpan/Time-Piece/t/07arith.t (Wstat​:
65280 Tests​: 2 Failed​: 1)
Failed test​: 1
Non-zero exit status​: 255
Parse errors​: Bad plan. You planned 25 tests but ran 2.
Files=2297, Tests=662417, 421 wallclock secs (29.09 usr 22.47 sys +
223.16 cusr 139.31 csys = 414.03 CPU)
Result​: FAIL
*** [test_harness] Error code 4

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

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

Here we're only concerned with buildability -- 'make' rather than 'make
test'. I am attaching the './perl -Ilib -V' output from this build.

If I now were to advance to commit
0648b1f 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/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
lib/auto/Encode/Byte/Byte.a(byte_t.o)​:(.rodata+0x3da0)​: multiple
definition of `cp1252_encoding'
lib/auto/Encode/Encode.a(def_t.o)​:(.rodata+0x3a0)​: first defined here
lib/auto/Encode/Byte/Byte.a(byte_t.o)​:(.data+0x14580)​: multiple
definition of `cp1252_utf8'
lib/auto/Encode/Encode.a(def_t.o)​:(.data+0x560)​: first defined here
lib/auto/Encode/Byte/Byte.a(byte_t.o)​:(.data+0x14180)​: multiple
definition of `utf8_cp1252'
lib/auto/Encode/Encode.a(def_t.o)​:(.data+0x160)​: first defined here
lib/auto/Encode/Byte/Byte.a(byte_t.o)​:(.rodata+0x3dd7)​: multiple
definition of `cp1252_encoding_rep_character'
lib/auto/Encode/Encode.a(def_t.o)​:(.rodata+0x3d7)​: first defined here
lib/auto/Encode/Byte/Byte.a(byte_t.o)​:(.rodata+0x3dd0)​: multiple
definition of `cp1252_encoding_enc_name'
lib/auto/Encode/Encode.a(def_t.o)​:(.rodata+0x3d0)​: first defined here
lib/auto/Encode/Byte/Byte.a(byte_t.o)​:(.data+0x14540)​: multiple
definition of `utf8_cp1252_c2'
lib/auto/Encode/Encode.a(def_t.o)​:(.data+0x520)​: first defined here
lib/auto/Encode/Byte/Byte.a(byte_t.o)​:(.data+0x14500)​: multiple
definition of `utf8_cp1252_c3'
lib/auto/Encode/Encode.a(def_t.o)​:(.data+0x4e0)​: first defined here
lib/auto/Encode/Byte/Byte.a(byte_t.o)​:(.data+0x14480)​: multiple
definition of `utf8_cp1252_c5'
lib/auto/Encode/Encode.a(def_t.o)​:(.data+0x460)​: first defined here
lib/auto/Encode/Byte/Byte.a(byte_t.o)​:(.data+0x14440)​: multiple
definition of `utf8_cp1252_c6'
lib/auto/Encode/Encode.a(def_t.o)​:(.data+0x420)​: first defined here
lib/auto/Encode/Byte/Byte.a(byte_t.o)​:(.data+0x143e0)​: multiple
definition of `utf8_cp1252_cb'
lib/auto/Encode/Encode.a(def_t.o)​:(.data+0x3c0)​: first defined here
lib/auto/Encode/Byte/Byte.a(byte_t.o)​:(.data+0x14240)​: multiple
definition of `utf8_cp1252_e2'
lib/auto/Encode/Encode.a(def_t.o)​:(.data+0x220)​: first defined here
lib/auto/Encode/Byte/Byte.a(byte_t.o)​:(.data+0x14320)​: multiple
definition of `utf8_cp1252_e2_80'
lib/auto/Encode/Encode.a(def_t.o)​:(.data+0x300)​: first defined here
lib/auto/Encode/Byte/Byte.a(byte_t.o)​:(.data+0x142e0)​: multiple
definition of `utf8_cp1252_e2_82'
lib/auto/Encode/Encode.a(def_t.o)​:(.data+0x2c0)​: first defined here
lib/auto/Encode/Byte/Byte.a(byte_t.o)​:(.data+0x142a0)​: multiple
definition of `utf8_cp1252_e2_84'
lib/auto/Encode/Encode.a(def_t.o)​:(.data+0x280)​: first defined here
lib/auto/POSIX/POSIX.a(POSIX.o)​: In function
`XS_POSIX_tmpnam(interpreter*, cv*)'​:
POSIX.c​:(.text+0x3533)​: warning​: warning​: tmpnam() possibly used
unsafely; consider using mkstemp()
collect2​: error​: ld returned 1 exit status
*** [perl] Error code 1

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

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

So this was a regression between 5.22 and 5.24 -- a regression when we
updated Encode in the core distribution to match CPAN version 2.78.
This should be investigated.

The problem described in this ticket appears to have been a secondary effect of the problem described in RT #131345. Once I followed Tony Cook's suggestion in that ticket to run the 'mkheaders' program in my FreeBSD-10.3 VM, perl (both 5.24.1 and blead) once again built when compiled with g++. So I'm marking this ticket Resolved as well.

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

@p5pRT
Copy link
Author

p5pRT commented Jun 16, 2017

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant