Date: Tue, 5 Mar 2019 13:12:10 -0800 From: Mark Millard <marklmi@yahoo.com> To: FreeBSD PowerPC ML <freebsd-ppc@freebsd.org>, FreeBSD Toolchain <freebsd-toolchain@freebsd.org> Subject: FYI on powerpc64: an apparent ctfmerge unbounded recursion error on kernel.full built by system clang (7) and devel/powerpc64-binutils ? Message-ID: <6277E1EE-59C6-4A84-8714-9E0BFFB02A75@yahoo.com>
next in thread | raw e-mail | index | archive | help
The context here is head -r344018 based that was built via devel/powerpc64-xtoolchain-gcc facilities (that included building system clang 7). I attempted to have a system-clang based buildworld buildkernel that used /usr/local/powerpc64-unknown-freebsd13.0/bin/ld and such. Until I can synchronize and test a more modern head (including an updated clang) and ports, the below is probably just informational in case someone else runs into something similar. The: ctfmerge -L VERSION -g -o kernel.full locore.o cam.o cam_compat.o = cam_iosched.o got a segmentation fault but gdb shows over 13,000 levels of subroutine calls and a stack-access related failure: # gdb = /usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/powerpc= .powerpc64/tmp/usr/bin/ctfmerge = /usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/powerpc= .powerpc64/sys/GENERIC64vtsc-NODBG/ctfmerge.57350.core . . . Core was generated by `ctfmerge -L VERSION -g -o kernel.full locore.o = cam.o cam_compat.o cam_iosched.o'. Program terminated with signal SIGSEGV, Segmentation fault. #0 0x0000000010006588 in .hash_find_first_cb () [Current thread is 1 (LWP 100604)] (gdb) info reg r1 r1 0x3fffffffdf9fc000 4611686017884209152 (gdb) disass Dump of assembler code for function .hash_find_first_cb: 0x0000000010006584 <+0>: mflr r0 =3D> 0x0000000010006588 <+4>: std r31,-8(r1) 0x000000001000658c <+8>: std r0,16(r1) . . . (gdb) info threads Id Target Id Frame=20 * 1 LWP 100604 0x0000000010006588 in .hash_find_first_cb () 2 LWP 100220 0x0000000010045f88 in .__sys.umtx_op () 3 LWP 100602 0x0000000010045f84 in .__sys.umtx_op () 4 LWP 100603 0x0000000010045f84 in .__sys.umtx_op () 5 LWP 100605 0x0000000010045f84 in .__sys.umtx_op () 6 LWP 100606 0x0000000010045f84 in .__sys.umtx_op ()(gdb) bt #0 0x0000000010006588 in hash_find_first_cb (node=3D0x81cfc28b0, = arg=3D0x3fffffffdf9fc128) at = /usr/src/cddl/contrib/opensolaris/tools/ctf/cvt/hash.c:187 #1 0x0000000010008250 in list_iter (list=3D0x81cfc28b0, func=3D<optimized= out>, private=3D0x3fffffffdf9fc128) at = /usr/src/cddl/contrib/opensolaris/tools/ctf/common/list.c:127 #2 0x0000000010006538 in hash_match (hash=3D0x81711dc40, key=3D<optimized= out>, fun=3D@0x100f5360: 0x10006584 <hash_find_first_cb>, = private=3D0x81711dc40) at /usr/src/cddl/contrib/opensolaris/tools/ctf/cvt/hash.c:149 #3 hash_find (hash=3D<optimized out>, key=3D<optimized out>, = value=3D<optimized out>) at = /usr/src/cddl/contrib/opensolaris/tools/ctf/cvt/hash.c:207 #4 0x0000000010000cb8 in alist_find (alist=3D<optimized out>, = name=3D<optimized out>, value=3D0x3fffffffdf9fc280) at = /usr/src/cddl/contrib/opensolaris/tools/ctf/cvt/alist.c:130 #5 0x000000001000a290 in get_mapping (ta=3D<optimized out>, = srcid=3D<optimized out>) at = /usr/src/cddl/contrib/opensolaris/tools/ctf/cvt/merge.c:195 #6 equiv_node (ctdp=3D0x81c109180, mtdp=3D0x81df6dfc0, = ed=3D0x3fffffffdfbfa1f8) at = /usr/src/cddl/contrib/opensolaris/tools/ctf/cvt/merge.c:365 #7 0x0000000010009290 in equiv_su (stdp=3D<optimized out>, = ttdp=3D<optimized out>, ed=3D0x3fffffffdfbfa1f8) at = /usr/src/cddl/contrib/opensolaris/tools/ctf/cvt/merge.c:291 #8 0x000000001000a34c in equiv_node (ctdp=3D0x81c10b740, = mtdp=3D0x81df7a1c0, ed=3D0x3fffffffdfbfa1f8) at = /usr/src/cddl/contrib/opensolaris/tools/ctf/cvt/merge.c:384 #9 0x0000000010009290 in equiv_su (stdp=3D<optimized out>, = ttdp=3D<optimized out>, ed=3D0x3fffffffdfbfa1f8) at = /usr/src/cddl/contrib/opensolaris/tools/ctf/cvt/merge.c:291 #10 0x000000001000a34c in equiv_node (ctdp=3D0x81c1091c0, = mtdp=3D0x81df7a000, ed=3D0x3fffffffdfbfa1f8) at = /usr/src/cddl/contrib/opensolaris/tools/ctf/cvt/merge.c:384 #11 0x000000001000a34c in equiv_node (ctdp=3D0x81c109180, = mtdp=3D0x81df6dfc0, ed=3D0x3fffffffdfbfa1f8) at = /usr/src/cddl/contrib/opensolaris/tools/ctf/cvt/merge.c:384 #12 0x0000000010009290 in equiv_su (stdp=3D<optimized out>, = ttdp=3D<optimized out>, ed=3D0x3fffffffdfbfa1f8) at = /usr/src/cddl/contrib/opensolaris/tools/ctf/cvt/merge.c:291 #13 0x000000001000a34c in equiv_node (ctdp=3D0x81c10b740, = mtdp=3D0x81df7a1c0, ed=3D0x3fffffffdfbfa1f8) at = /usr/src/cddl/contrib/opensolaris/tools/ctf/cvt/merge.c:384 #14 0x0000000010009290 in equiv_su (stdp=3D<optimized out>, = ttdp=3D<optimized out>, ed=3D0x3fffffffdfbfa1f8) at = /usr/src/cddl/contrib/opensolaris/tools/ctf/cvt/merge.c:291 #15 0x000000001000a34c in equiv_node (ctdp=3D0x81c1091c0, = mtdp=3D0x81df7a000, ed=3D0x3fffffffdfbfa1f8) at = /usr/src/cddl/contrib/opensolaris/tools/ctf/cvt/merge.c:384 #16 0x000000001000a34c in equiv_node (ctdp=3D0x81c109180, = mtdp=3D0x81df6dfc0, ed=3D0x3fffffffdfbfa1f8) at = /usr/src/cddl/contrib/opensolaris/tools/ctf/cvt/merge.c:384 #17 0x0000000010009290 in equiv_su (stdp=3D<optimized out>, = ttdp=3D<optimized out>, ed=3D0x3fffffffdfbfa1f8) at = /usr/src/cddl/contrib/opensolaris/tools/ctf/cvt/merge.c:291 #18 0x000000001000a34c in equiv_node (ctdp=3D0x81c10b740, = mtdp=3D0x81df7a1c0, ed=3D0x3fffffffdfbfa1f8) at = /usr/src/cddl/contrib/opensolaris/tools/ctf/cvt/merge.c:384 #19 0x0000000010009290 in equiv_su (stdp=3D<optimized out>, = ttdp=3D<optimized out>, ed=3D0x3fffffffdfbfa1f8) at = /usr/src/cddl/contrib/opensolaris/tools/ctf/cvt/merge.c:291 #20 0x000000001000a34c in equiv_node (ctdp=3D0x81c1091c0, = mtdp=3D0x81df7a000, ed=3D0x3fffffffdfbfa1f8) at = /usr/src/cddl/contrib/opensolaris/tools/ctf/cvt/merge.c:384 #21 0x000000001000a34c in equiv_node (ctdp=3D0x81c109180, = mtdp=3D0x81df6dfc0, ed=3D0x3fffffffdfbfa1f8) at = /usr/src/cddl/contrib/opensolaris/tools/ctf/cvt/merge.c:384 #22 0x0000000010009290 in equiv_su (stdp=3D<optimized out>, = ttdp=3D<optimized out>, ed=3D0x3fffffffdfbfa1f8) at = /usr/src/cddl/contrib/opensolaris/tools/ctf/cvt/merge.c:291 . . . Going the other way: . . . #13082 0x0000000000000000 in ?? () (gdb) down #13081 0x0000000010035010 in .thread_start () (gdb)=20 #13080 0x0000000010005864 in .worker_thread () (gdb)=20 #13079 0x0000000010008900 in .merge_into_master () (gdb)=20 #13078 0x00000000100060c8 in .hash_iter () (gdb)=20 #13077 0x0000000010008250 in .list_iter () (gdb)=20 #13076 0x0000000010009794 in .merge_type_cb () (gdb)=20 #13075 0x000000001000d500 in .iitraverse () (gdb)=20 #13074 0x000000001000d320 in .tdtraverse () (gdb)=20 #13073 0x000000001000d654 in .tdtrav_plain () (gdb)=20 #13072 0x000000001000d320 in .tdtraverse () (gdb)=20 #13071 0x000000001000d654 in .tdtrav_plain () (gdb)=20 #13070 0x000000001000d320 in .tdtraverse () (gdb)=20 #13069 0x000000001000d764 in .tdtrav_func () (gdb)=20 #13068 0x000000001000d320 in .tdtraverse () (gdb)=20 #13067 0x000000001000d654 in .tdtrav_plain () (gdb)=20 #13066 0x000000001000d320 in .tdtraverse () (gdb)=20 #13065 0x000000001000d7f8 in .tdtrav_su () (gdb)=20 #13064 0x000000001000d320 in .tdtraverse () (gdb)=20 #13063 0x000000001000d654 in .tdtrav_plain () (gdb)=20 #13062 0x000000001000d320 in .tdtraverse () (gdb)=20 #13061 0x000000001000d7f8 in .tdtrav_su () (gdb)=20 #13060 0x000000001000d368 in .tdtraverse () (gdb)=20 #13059 0x000000001000a468 in .map_td_tree_post () (gdb)=20 #13058 0x00000000100063dc in .hash_find_iter () (gdb)=20 #13057 0x0000000010008250 in .list_iter () (gdb)=20 #13056 0x0000000010006494 in .hash_find_list_cb () (gdb)=20 #13055 0x000000001000a0dc in .equiv_cb () (gdb)=20 #13054 0x000000001000a34c in .equiv_node () (gdb)=20 #13053 0x000000001000a34c in .equiv_node () (gdb)=20 #13052 0x0000000010009290 in .equiv_su () (gdb)=20 #13051 0x000000001000a34c in .equiv_node () (gdb)=20 #13050 0x0000000010009290 in .equiv_su () (gdb)=20 #13049 0x000000001000a34c in .equiv_node () (gdb)=20 #13048 0x000000001000a34c in .equiv_node () (gdb)=20 #13047 0x0000000010009290 in .equiv_su () (gdb)=20 #13046 0x000000001000a34c in .equiv_node () . . . =3D=3D=3D Mark Millard marklmi at yahoo.com ( dsl-only.net went away in early 2018-Mar)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6277E1EE-59C6-4A84-8714-9E0BFFB02A75>