Date: Sun, 19 May 2019 21:41:17 -0700 From: Mark Millard <marklmi@yahoo.com> To: Dimitry Andric <dim@FreeBSD.org> Cc: FreeBSD Toolchain <freebsd-toolchain@freebsd.org>, FreeBSD PowerPC ML <freebsd-ppc@freebsd.org> Subject: Re: FYI: Unable to build -r501994 ports' devel/llvm60 on clang 8 based powerpc64 system: "BFD (GNU Binutils) 2.32 assertion fail elflink.c:2935" Message-ID: <DC1B4FD3-05BA-4B65-9424-7360362421B2@yahoo.com> In-Reply-To: <21426EE8-7B54-4FFC-AEC7-898BD3185413@yahoo.com> References: <0743B28F-3F61-401F-BD61-B69C4B207559@yahoo.com> <F31CDFCD-64B3-41E6-B33C-015F28FA98D6@FreeBSD.org> <21426EE8-7B54-4FFC-AEC7-898BD3185413@yahoo.com>
next in thread | previous in thread | raw e-mail | index | archive | help
[I finally provide a small source file and steps for processing it to produce the BFD_ASSERT notices.] On 2019-May-19, at 11:06, Dimitry Andric <dim at FreeBSD.org> wrote: > On 19 May 2019, at 16:56, Mark Millard via freebsd-toolchain = <freebsd-toolchain at freebsd.org> wrote: >> This was in a poudriere bulk build on a head -r347549 based powerpc64 >> system with system clang 8 for cc and c++ and base/binutils >> for the likes of ld. (The system has the llvm libunwind patches >> for powerpc64 so throwing c++ exceptions work.) >>=20 >> [4397/4552] : && /usr/bin/c++ -fPIC -O2 -pipe -DNDEBUG = -fstack-protector-strong -isystem /usr/local/include = -fno-strict-aliasing -DNDEBUG -isystem /usr/local/include -fPIC = -fvisibility-inlines-hidden -Werror=3Ddate-time = -Werror=3Dunguarded-availability-new -std=3Dc++11 -Wall -W = -Wno-unused-parameter -Wwrite-strings -Wcast-qual = -Wmissing-field-initializers -pedantic -Wno-long-long = -Wcovered-switch-default -Wnon-virtual-dtor -Wdelete-non-virtual-dtor = -Wstring-conversion -fcolor-diagnostics -ffunction-sections = -fdata-sections -O2 -pipe -DNDEBUG -fstack-protector-strong -isystem = /usr/local/include -fno-strict-aliasing -DNDEBUG -isystem = /usr/local/include -fstack-protector-strong -Wl,-z,origin -Wl,-O3 = -Wl,--gc-sections = -Wl,--version-script,/wrkdirs/usr/ports/devel/llvm60/work/.build/tools/lto= /LTO.exports -shared -Wl,-soname,libLTO.so.6 -o lib/libLTO.so.6.0.1 = tools/lto/CMakeFiles/LTO.dir/LTODisassembler.cpp.o = tools/lto/CMakeFiles/LTO.dir/lto.cpp.o -L/usr/local/lib = -Wl,-rpath,"\$ORIGIN/../ >> lib:/usr/local/lib" lib/libLLVM-6.0.so && : >> FAILED: lib/libLTO.so.6.0.1 >> : && /usr/bin/c++ -fPIC -O2 -pipe -DNDEBUG -fstack-protector-strong = -isystem /usr/local/include -fno-strict-aliasing -DNDEBUG -isystem = /usr/local/include -fPIC -fvisibility-inlines-hidden -Werror=3Ddate-time = -Werror=3Dunguarded-availability-new -std=3Dc++11 -Wall -W = -Wno-unused-parameter -Wwrite-strings -Wcast-qual = -Wmissing-field-initializers -pedantic -Wno-long-long = -Wcovered-switch-default -Wnon-virtual-dtor -Wdelete-non-virtual-dtor = -Wstring-conversion -fcolor-diagnostics -ffunction-sections = -fdata-sections -O2 -pipe -DNDEBUG -fstack-protector-strong -isystem = /usr/local/include -fno-strict-aliasing -DNDEBUG -isystem = /usr/local/include -fstack-protector-strong -Wl,-z,origin -Wl,-O3 = -Wl,--gc-sections = -Wl,--version-script,/wrkdirs/usr/ports/devel/llvm60/work/.build/tools/lto= /LTO.exports -shared -Wl,-soname,libLTO.so.6 -o lib/libLTO.so.6.0.1 = tools/lto/CMakeFiles/LTO.dir/LTODisassembler.cpp.o = tools/lto/CMakeFiles/LTO.dir/lto.cpp.o -L/usr/local/lib = -Wl,-rpath,"\$ORIGIN/../lib:/usr/loc >> al/lib" lib/libLLVM-6.0.so && : >> /usr/bin/powerpc64-unknown-freebsd13.0-ld: BFD (GNU Binutils) 2.32 = assertion fail elflink.c:2935 >> /usr/bin/powerpc64-unknown-freebsd13.0-ld: BFD (GNU Binutils) 2.32 = assertion fail elflink.c:2935 >=20 > See <https://bugs.freebsd.org/237068>. I think this is a BFD ld bug, > but I still haven't been able to come up with a small test case. Any > help appreciated. :-) NOTE: Only tested in the powerpc64 context, with system clang 8 for c++ and base/binutil for ld and such. I used the simple_version_script.map from llvm60 in my environment. (Also noted in bugzilla comment #13:) The following small source code file and the few steps to build/link it produce the message: # more small_link_failure.cpp unsigned long fixed_seed_override=3D 0xdeadc0de; inline unsigned long get_execution_seed() { const unsigned long seed_prime =3D 0xff51afd7ed558ccdULL; static unsigned long seed =3D fixed_seed_override ? = fixed_seed_override : (unsigned long)seed_prime; return seed; } unsigned long f() { return get_execution_seed(); } # c++ -c small_link_failure.cpp # rm -f small_link_failure.a # /usr/bin/ar qc small_link_failure.a small_link_failure.o # "/usr/bin/powerpc64-unknown-freebsd13.0-ld" \ "-Bshareable" \ "-o" "small_link_failure-1.0.so" \ "/usr/lib/crtbeginS.o" \ "--version-script" = "/wrkdirs/usr/ports/devel/llvm60/work/.build/./lib/tools/llvm-shlib/simple= _version_script.map" \ "--whole-archive" \ "small_link_failure.a" \ "--no-whole-archive" \ "-lm" # /usr/bin/powerpc64-unknown-freebsd13.0-ld \ "-Bshareable" \ "-o" "small_link_failure.so.1.0.1" \ "small_link_failure-1.0.so" The resultant output is: /usr/bin/powerpc64-unknown-freebsd13.0-ld: BFD (GNU Binutils) 2.32 = assertion fail elflink.c:2935 /usr/bin/powerpc64-unknown-freebsd13.0-ld: BFD (GNU Binutils) 2.32 = assertion fail elflink.c:2935 =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?DC1B4FD3-05BA-4B65-9424-7360362421B2>