Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 29 Jan 2015 23:16:23 -0800
From:      Mark Millard <markmi@dsl-only.net>
To:        freebsd-ports@freebsd.org
Cc:        FreeBSD PowerPC ML <freebsd-ppc@freebsd.org>
Subject:   cmake's ctest throws std::length_error during png build, blocking building (powerpc64, 10.1-STABLE)
Message-ID:  <9BEAA259-D227-48F7-9170-98DF9810D8C8@dsl-only.net>

next in thread | raw e-mail | index | archive | help
Later below I give how I found the issue. But first I show a short way =
to reproduce the problem without building a port that uses ctest:

root@FBSDG5M1:/usr/home/markmi # ctest --version
terminate called after throwing an instance of 'std::length_error'
  what():  vector::reserve
Abort (core dumped)


Context basics for the ctest crash:

root@FBSDG5M1:/usr/home/markmi # freebsd-version -ku; uname -a
10.1-RELEASE-p4
10.1-STABLE
FreeBSD FBSDG5M1 10.1-RELEASE-p4 FreeBSD 10.1-RELEASE-p4 #1 r277195M: =
Mon Jan 26 23:32:28 PST 2015     root at =
FBSDG5M1:/usr/obj/usr/home/markmi/src_10_1_releng/sys/GENERIC64vtsc  =
powerpc

The 10.1-STABLE world build is from -r277483 .

/usr/ports/ "Last Changed Rev" was -r378052 (so recent).

root@FBSDG5M1:/usr/home/markmi # more /etc/make.conf
WRKDIRPREFIX=3D/usr/obj/portswork
WITH_DEBUG=3D
MALLOC_PRODUCTION=3D
root@FBSDG5M1:/usr/home/markmi # more /etc/src.conf
#WITH_DEBUG_FILES=3D
#WITHOUT_CLANG=3D

root@FBSDG5M1:/usr/home/markmi # cmake --version
cmake version 3.1.1



Problem:

Later below I give how I found the issue. But first I show a short way =
to reproduce the problem without building a port that uses ctest:

root@FBSDG5M1:/usr/home/markmi # ctest --version
terminate called after throwing an instance of 'std::length_error'
  what():  vector::reserve
Abort (core dumped)



=46rom the portmaster -r png I got the following failure, which turns =
out to be in cmake's ctest:

root@FBSDG5M1:/usr/home/markmi # portmaster -r --no-confirm png
...
[100%] Building C object =
CMakeFiles/pngstest.dir/contrib/libtests/pngstest.o
Linking C executable pngtest
[100%] Built target pngtest
Linking C executable pngstest
[100%] Built target pngstest
Linking C executable pngvalid
[100%] Built target pngvalid
...
Running tests...
terminate called after throwing an instance of 'std::length_error'
  what():  vector::reserve
Abort trap (core dumped)
*** [test] Error code 134
...

Below is the traceback. It shows a huge vector::reserve size =
(#8...::reserve (this=3D0xffffffffffffae08, __n=3D5497010905810357313) =
at vector.tcc:72).

root@FBSDG5M1:/var/crash # gdb `which ctest` ctest.5708.core
...
(gdb) bt
#0  0x0000000050d19168 in .__sys_thr_kill () from /lib/libc.so.7
#1  0x0000000050d1907c in .__raise () from /lib/libc.so.7
#2  0x0000000050d17658 in .abort () from /lib/libc.so.7
#3  0x00000000514cbae0 in ._ZN9__gnu_cxx27__verbose_terminate_handlerEv =
() from /usr/lib/libsupc++.so.1
#4  0x00000000514d11d8 in ._ZSt14set_unexpectedPFvvE () from =
/usr/lib/libsupc++.so.1
#5  0x00000000514d1230 in ._ZSt9terminatev () from =
/usr/lib/libsupc++.so.1
#6  0x00000000514d10dc in .__cxa_throw () from /usr/lib/libsupc++.so.1
#7  0x0000000050ab6e54 in ._ZSt20__throw_length_errorPKc () from =
/usr/lib/libstdc++.so.6
#8  0x0000000010246528 in =
std::vector<cmsys::_Hashtable_node<std::pair<std::string const, =
cmDefinitions::Def> >*, =
std::allocator<cmsys::_Hashtable_node<std::pair<std::string const, =
cmDefinitions::Def> >*> >::reserve (this=3D0xffffffffffffae08,=20
    __n=3D5497010905810357313) at vector.tcc:72
#9  0x0000000010474710 in cmsys::hashtable<std::pair<std::string const, =
cmDefinitions::Def>, std::string, cmsys::hash<std::string>, =
cmsys::hash_select1st<std::string const, cmDefinitions::Def>, =
std::equal_to<std::string>, std::allocator<char> =
>::_M_initialize_buckets (this=3D0xffffffffffffae00, __n=3D100) at =
hashtable.hxx:797
#10 0x0000000010474838 in hashtable (this=3D0xffffffffffffae00, __n=3D100,=
 __hf=3D@0xffffffffffffabb2, __eql=3D@0xffffffffffffabb1,=20
    __a=3D@0xffffffffffffabb0) at hashtable.hxx:545
#11 0x000000001047490c in hash_map (this=3D0xffffffffffffae00) at =
hash_map.hxx:113
#12 0x00000000104728f8 in cmDefinitions (this=3D0xffffffffffffadf8, =
parent=3D0x0)
    at =
/usr/obj/portswork/usr/ports/devel/cmake/work/cmake-3.1.1/Source/cmDefinit=
ions.cxx:19
#13 0x000000001020dbcc in cmMakefile (this=3D0x51cb1800)
    at =
/usr/obj/portswork/usr/ports/devel/cmake/work/cmake-3.1.1/Source/cmMakefil=
e.cxx:56
#14 0x00000000101efa98 in cmLocalGenerator::SetGlobalGenerator =
(this=3D0x51c3f480, gg=3D0xffffffffffffbe38)
    at =
/usr/obj/portswork/usr/ports/devel/cmake/work/cmake-3.1.1/Source/cmLocalGe=
nerator.cxx:244
#15 0x00000000101874b0 in cmGlobalGenerator::CreateLocalGenerator =
(this=3D0xffffffffffffbe38)
    at =
/usr/obj/portswork/usr/ports/devel/cmake/work/cmake-3.1.1/Source/cmGlobalG=
enerator.cxx:1906
#16 0x00000000100224dc in cmCTest::Initialize (this=3D0xffffffffffffcc50,=20=

    binary_dir=3D0x51c890f8 =
"/usr/obj/portswork/usr/ports/graphics/png/work/libpng-1.6.16", =
command=3D0x0)
    at =
/usr/obj/portswork/usr/ports/devel/cmake/work/cmake-3.1.1/Source/cmCTest.c=
xx:511
#17 0x000000001002c704 in cmCTest::Run (this=3D0xffffffffffffcc50, =
args=3D@0xffffffffffffc880, output=3D0xffffffffffffc898)
    at =
/usr/obj/portswork/usr/ports/devel/cmake/work/cmake-3.1.1/Source/cmCTest.c=
xx:2474
#18 0x0000000010010c10 in main (argc=3D2, argv=3D0x51c1a040)
    at =
/usr/obj/portswork/usr/ports/devel/cmake/work/cmake-3.1.1/Source/ctest.cxx=
:192
#19 0x000000001000fc8c in ._start ()
#20 0x000000005074c770 in .text () from /libexec/ld-elf.so.1




More context:

$ freebsd-version -ku; uname -a
10.1-RELEASE-p4
10.1-STABLE
FreeBSD FBSDG5M1 10.1-RELEASE-p4 FreeBSD 10.1-RELEASE-p4 #1 r277195M: =
Mon Jan 26 23:32:28 PST 2015     root at =
FBSDG5M1:/usr/obj/usr/home/markmi/src_10_1_releng/sys/GENERIC64vtsc  =
powerpc

For the buildworld context:

$ svnlite info /usr/src
Path: /usr/src
Working Copy Root Path: /usr/src
URL: https://svn0.us-west.freebsd.org/base/stable/10
Relative URL: ^/stable/10
Repository Root: https://svn0.us-west.freebsd.org/base
Repository UUID: ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
Revision: 277483
Node Kind: directory
Schedule: normal
Last Changed Author: smh
Last Changed Rev: 277483
Last Changed Date: 2015-01-21 01:45:48 -0800 (Wed, 21 Jan 2015)

For the ports:

$ svnlite info /usr/ports
Path: /usr/ports
Working Copy Root Path: /usr/ports
URL: https://svn0.us-west.freebsd.org/ports/head
Relative URL: ^/head
Repository Root: https://svn0.us-west.freebsd.org/ports
Repository UUID: 35697150-7ecd-e111-bb59-0022644237b5
Revision: 378053
Node Kind: directory
Schedule: normal
Last Changed Author: danilo
Last Changed Rev: 378052
Last Changed Date: 2015-01-28 01:33:23 -0800 (Wed, 28 Jan 2015)

For the kernel context (not so relevant here but for completeness):

$ svnlite info ~markmi/src_10_1_releng/
Path: /home/markmi/src_10_1_releng
Working Copy Root Path: /home/markmi/src_10_1_releng
URL: https://svn0.us-west.freebsd.org/base/releng/10.1
Relative URL: ^/releng/10.1
Repository Root: https://svn0.us-west.freebsd.org/base
Repository UUID: ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
Revision: 277195
Node Kind: directory
Schedule: normal
Last Changed Author: delphij
Last Changed Rev: 277195
Last Changed Date: 2015-01-14 13:27:46 -0800 (Wed, 14 Jan 2015)

$ svnlite status ~markmi/src_10_1_releng/
M       /home/markmi/src_10_1_releng/sys/ddb/db_main.c
M       /home/markmi/src_10_1_releng/sys/ddb/db_script.c
M       /home/markmi/src_10_1_releng/sys/powerpc/ofw/ofw_machdep.c
M       /home/markmi/src_10_1_releng/sys/powerpc/ofw/ofwcall64.S
M       =
/home/markmi/src_10_1_releng/sys/powerpc/powermac/powermac_thermal.c

=3D=3D=3D
Mark Millard
markmi at dsl-only.net




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?9BEAA259-D227-48F7-9170-98DF9810D8C8>