Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 08 Mar 2015 09:49:22 -0700
From:      Nathan Whitehorn <nwhitehorn@freebsd.org>
To:        Mark Millard <markmi@dsl-only.net>, freebsd-ports@freebsd.org, FreeBSD PowerPC ML <freebsd-ppc@freebsd.org>
Subject:   Re: powerpc64 10.1-STABLE context; cmake's /usr/local/bin/ctest broken but graphics/png configuration defaults use it
Message-ID:  <54FC7D92.3010405@freebsd.org>
In-Reply-To: <A57B3364-B573-45A1-8970-D0E69DE0671A@dsl-only.net>
References:  <A57B3364-B573-45A1-8970-D0E69DE0671A@dsl-only.net>

next in thread | previous in thread | raw e-mail | index | archive | help
This works fine for me. Are you sure you don't have some weird=20
configuration or hardware problem?
-Nathan

On 03/07/15 22:56, Mark Millard wrote:
> powerpc64 context (more details are listed much later):
>
> $ freebsd-version -ku; uname -a
> 10.1-STABLE
> 10.1-STABLE
> FreeBSD FBSDG5S0 10.1-STABLE FreeBSD 10.1-STABLE #0 r279507M: Fri Mar  =
6 23:08:59 PST 2015     root@FBSDG5S0:/usr/obj/usr/src/sys/GENERIC64vtsc =
 powerpc
>
> Ports Revision 380683 via svnlite update. I've been using portmaster.
>
>
> The problem (which I've not figured out yet)...
>
> When png-1.6.16 has PNGTEST enabled (default and "recommended") it trie=
s to use cmake's /usr/local/bin/ctest. But in my context ctest is broken,=
 trying to reserve 2305843009213693952 Hashtable_node<...>*'s [see #8's .=
=2E.::reserve (..., __n=3D...) below] when _M_initialize_buckets(..., __n=
=3D100) in #9. (Note: 2305843009213693952 =3D=3D 0x2000000000000000.) I h=
ave yet to figure out how that magic number is becoming involved. See bel=
ow from one of the crash dumps:
>
> #0  0x0000000050d17298 in .__sys_thr_kill () from /lib/libc.so.7
> [New Thread 51c06400 (LWP 100091/ctest)]
> (gdb) bt
> #0  0x0000000050d17298 in .__sys_thr_kill () from /lib/libc.so.7
> #1  0x0000000050d171ac in .__raise () from /lib/libc.so.7
> #2  0x0000000050d15788 in .abort () from /lib/libc.so.7
> #3  0x00000000514c9ae0 in ._ZN9__gnu_cxx27__verbose_terminate_handlerEv=
 () from /usr/lib/libsupc++.so.1
> #4  0x00000000514cf1d8 in ._ZSt14set_unexpectedPFvvE () from /usr/lib/l=
ibsupc++.so.1
> #5  0x00000000514cf230 in ._ZSt9terminatev () from /usr/lib/libsupc++.s=
o.1
> #6  0x00000000514cf0dc in .__cxa_throw () from /usr/lib/libsupc++.so.1
> #7  0x0000000050ab4e54 in ._ZSt20__throw_length_errorPKc () from /usr/l=
ib/libstdc++.so.6
> #8  0x000000001024659c in std::vector<cmsys::_Hashtable_node<std::pair<=
std::string const, cmDefinitions::Def> >*, std::allocator<cmsys::_Hashtab=
le_node<std::pair<std::string const, cmDefinitions::Def> >*> >::reserve (=
this=3D0xffffffffffffb108, __n=3D2305843009213693952) at vector.tcc:72
> #9  0x00000000104749bc 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::stri=
ng>, std::allocator<char> >::_M_initialize_buckets (this=3D0xffffffffffff=
b100, __n=3D100) at hashtable.hxx:797
> #10 0x0000000010474ae4 in hashtable (this=3D0xffffffffffffb100, __n=3D1=
00, __hf=3D@0xffffffffffffaeb2, __eql=3D@0xffffffffffffaeb1, __a=3D@0xfff=
fffffffffaeb0) at hashtable.hxx:545
> #11 0x0000000010474bb8 in hash_map (this=3D0xffffffffffffb100) at hash_=
map.hxx:113
> #12 0x0000000010472ba4 in cmDefinitions (this=3D0xffffffffffffb0f8, par=
ent=3D0x0) at /usr/obj/portswork/usr/ports/devel/cmake/work/cmake-3.1.3/S=
ource/cmDefinitions.cxx:19
> #13 0x000000001020dc40 in cmMakefile (this=3D0x51cb1800) at /usr/obj/po=
rtswork/usr/ports/devel/cmake/work/cmake-3.1.3/Source/cmMakefile.cxx:56
> #14 0x00000000101efb0c in cmLocalGenerator::SetGlobalGenerator (this=3D=
0x51c3f480, gg=3D0xffffffffffffc138) at /usr/obj/portswork/usr/ports/deve=
l/cmake/work/cmake-3.1.3/Source/cmLocalGenerator.cxx:244
> #15 0x00000000101874b0 in cmGlobalGenerator::CreateLocalGenerator (this=
=3D0xffffffffffffc138) at /usr/obj/portswork/usr/ports/devel/cmake/work/c=
make-3.1.3/Source/cmGlobalGenerator.cxx:1906
> #16 0x00000000100224dc in cmCTest::Initialize (this=3D0xffffffffffffcf5=
0, binary_dir=3D0x51c890f8 "/usr/obj/portswork/usr/ports/graphics/png/wor=
k/libpng-1.6.16", command=3D0x0)
>      at /usr/obj/portswork/usr/ports/devel/cmake/work/cmake-3.1.3/Sourc=
e/cmCTest.cxx:511
> #17 0x000000001002c704 in cmCTest::Run (this=3D0xffffffffffffcf50, args=
=3D@0xffffffffffffcb80, output=3D0xffffffffffffcb98) at /usr/obj/portswor=
k/usr/ports/devel/cmake/work/cmake-3.1.3/Source/cmCTest.cxx:2474
> #18 0x0000000010010c10 in main (argc=3D2, argv=3D0x51c1a040) at /usr/ob=
j/portswork/usr/ports/devel/cmake/work/cmake-3.1.3/Source/ctest.cxx:189
> #19 0x000000001000fc9c in ._start ()
> #20 0x000000005074c8a0 in .text () from /libexec/ld-elf.so.1
>
> The specific Makefile code to invoke ctest is...
>
> # Special rule for the target test
> test:
>          @$(CMAKE_COMMAND) -E cmake_echo_color --switch=3D$(COLOR) --cy=
an "Running tests..."
>          /usr/local/bin/ctest --force-new-ctest-process $(ARGS)
> .PHONY : test
>         =20
> # Special rule for the target test
> test/fast: test
> .PHONY : test/fast
>
> which because of ctest's problem leads to...
>
> ...
> Linking C executable pngvalid
> [100%] Built target pngvalid
> (cd /usr/obj/portswork/usr/ports/graphics/png/work/libpng-1.6.16; if ! =
/usr/bin/env XDG_DATA_HOME=3D/usr/obj/portswork/usr/ports/graphics/png/wo=
rk  XDG_CONFIG_HOME=3D/usr/obj/portswork/usr/ports/graphics/png/work  HOM=
E=3D/usr/obj/portswork/usr/ports/graphics/png/work TMPDIR=3D"/tmp" XDG_DA=
TA_HOME=3D/usr/obj/portswork/usr/ports/graphics/png/work  XDG_CONFIG_HOME=
=3D/usr/obj/portswork/usr/ports/graphics/png/work  HOME=3D/usr/obj/portsw=
ork/usr/ports/graphics/png/work TMPDIR=3D"/tmp" DONTSTRIP=3Dyes NO_PIE=3D=
yes SHELL=3D/bin/sh NO_LINT=3DYES PREFIX=3D/usr/local  LOCALBASE=3D/usr/l=
ocal  LIBDIR=3D"/usr/lib"  CC=3D"cc" CFLAGS=3D"-pipe  -g -fno-strict-alia=
sing"  CPP=3D"cpp" CPPFLAGS=3D""  LDFLAGS=3D"" LIBS=3D""  CXX=3D"c++" CXX=
FLAGS=3D"-pipe -g -fno-strict-aliasing "  MANPREFIX=3D"/usr/local" BSD_IN=
STALL_PROGRAM=3D"install   -o root -g wheel -m 555"  BSD_INSTALL_LIB=3D"i=
nstall   -o root -g wheel -m 444"  BSD_INSTALL_SCRIPT=3D"install  -o root=
 -g wheel -m 555"  BSD_INSTALL_DATA=3D"install  -o root -g wheel -m 0644"=
  BSD_INSTALL_MAN=3D"instal!
>   l  -o roo
>   t -g wheel -m 444" /usr/bin/make -f Makefile -j4 DESTDIR=3D/usr/obj/p=
ortswork/usr/ports/graphics/png/work/stage test; then  if [ x !=3D xTry t=
o set MAKE_JOBS_UNSAFE=3Dyes and rebuild before reporting the failure to =
the maintainer. ] ; then  echo "=3D=3D=3D> Compilation failed unexpectedl=
y.";  (echo Try to set MAKE_JOBS_UNSAFE=3Dyes and rebuild before reportin=
g the failure to the maintainer.) | /usr/bin/fmt 75 79 ;  fi;  false;  fi=
)
> Running tests...
> terminate called after throwing an instance of 'std::length_error'
>    what():  vector::reserve
> Abort trap (core dumped)
> *** [test] Error code 134
>
> make[2]: stopped in /usr/obj/portswork/usr/ports/graphics/png/work/libp=
ng-1.6.16
> 1 error
>
> make[2]: stopped in /usr/obj/portswork/usr/ports/graphics/png/work/libp=
ng-1.6.16
> [: xTry: unexpected operator
> *** Error code 1
>
> Stop.
> make[1]: stopped in /usr/ports/graphics/png
> *** Error code 1
>
> Stop.
> make: stopped in /usr/ports/graphics/png
>
>
> Even just ctest as a command gets the vector::reserve size problem from=
 the large magic number:
>
> $ ctest
> *********************************
> No test configuration file found!
> *********************************
> terminate called after throwing an instance of 'std::length_error'
>    what():  vector::reserve
> Abort trap (core dumped)
>
>
> [So far I've only sidestepped having graphic/png run ctest to allow som=
e things that depend on graphics/png to not be blocked by this.]
>
>
>
>
> For my context the overall environment has (but ports might force other=
 ports as alternatives to):
>
> # more /etc/make.conf
> #CPP=3Dclang-cpp
> #CC=3Dclang
> #CXX=3Dclang++
> WRKDIRPREFIX=3D/usr/obj/portswork
> WITH_DEBUG=3D
> MALLOC_PRODUCTION=3D
>
> # more /etc/src.conf
> #CPP=3Dclang-cpp
> #CC=3Dclang
> #CXX=3Dclang++
> #CFLAGS+=3D-DELF_VERBOSE
> #WITH_DEBUG_FILES=3D
> #WITHOUT_CLANG
>
> # which cc
> /usr/bin/cc
>
> # cc --version
> cc (GCC) 4.2.1 20070831 patched [FreeBSD]
> Copyright (C) 2007 Free Software Foundation, Inc.
> This is free software; see the source for copying conditions.  There is=
 NO
> warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURP=
OSE.
>
> # which clang
> /usr/bin/clang
>
> # clang --version
> FreeBSD clang version 3.4.1 (tags/RELEASE_34/dot1-final 208032) 2014051=
2
> Target: powerpc64-unknown-freebsd10.1
> Thread model: posix
>
>
>
>
>
> Other context details:
>
> $ cd /usr/ports
> $ svnlite info
> Path: .
> 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: 380683
> Node Kind: directory
> Schedule: normal
> Last Changed Author: demon
> Last Changed Rev: 380683
> Last Changed Date: 2015-03-07 03:31:11 -0800 (Sat, 07 Mar 2015)
>
> $ svnlite st --no-ignore
> ?       .snap
> I       distfiles
> M       graphics/libGL/bsd.mesalib.mk
> I       packages
> ?       restoresymtable
>
> $ svnlite diff graphics/libGL/bsd.mesalib.mk
> Index: graphics/libGL/bsd.mesalib.mk
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> --- graphics/libGL/bsd.mesalib.mk	(revision 380683)
> +++ graphics/libGL/bsd.mesalib.mk	(working copy)
> @@ -136,6 +136,10 @@
> CONFIGURE_ARGS+=3D--enable-vdpau
> .endif
>
> +.if ${ARCH} =3D=3D powerpc64
> +CFLAGS+=3D	-mminimal-toc
> +.endif
> +
> post-patch:
> 	@${REINPLACE_CMD} -e 's|-ffast-math|${FAST_MATH}|' -e 's|x86_64|amd64|=
' \
> 		${WRKSRC}/configure
>
> $ cd /usr/src
> $ svnlite info
> Path: .
> 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: 279507
> Node Kind: directory
> Schedule: normal
> Last Changed Author: ngie
> Last Changed Rev: 279507
> Last Changed Date: 2015-03-01 14:12:24 -0800 (Sun, 01 Mar 2015)
>
> $ svnlite st --no-ignore
> ?       .snap
> ?       restoresymtable
> M       sys/ddb/db_main.c
> M       sys/ddb/db_script.c
> I       sys/powerpc/conf/GENERIC64vtsc
> I       sys/powerpc/conf/GENERICvtsc
> M       sys/powerpc/ofw/ofw_machdep.c
> M       sys/powerpc/ofw/ofwcall64.S
> M       sys/powerpc/powerpc/dump_machdep.c
>
> sys/powerpc/ofw/ofw_machdep.c has a PowerMac G5 specific change to avoi=
d intermittent boot problems.
>
> sys/ddb/... and sys/powerpc/ofw/ofwcall64.S are just to help me get evi=
dence if I do end up with another early-boot failure. DDB and GDB are lis=
ted in sys/powerpc/conf/GENERIC64vtsc for the same reason.
>
> sys/powerpc/powerpc/dump_machdep.c is from me forcing the DMA transfer =
size for dumps to be small enough not to be rejected as too large of a DM=
A request size.
>
> sys/powerpc/conf/GENERIC64vtsc turns off ps3 in order to turn on both v=
t and sc. It includes the standard GENERIC64.
>
> =3D=3D=3D
> Mark Millard
> markmi at dsl-only.net
>
> _______________________________________________
> freebsd-ppc@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-ppc
> To unsubscribe, send any mail to "freebsd-ppc-unsubscribe@freebsd.org"
>





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?54FC7D92.3010405>