Date: Mon, 23 Mar 2020 14:26:30 -0700 From: Mark Millard <marklmi@yahoo.com> To: freebsd-arm <freebsd-arm@freebsd.org>, FreeBSD Hackers <freebsd-hackers@freebsd.org> Cc: FreeBSD ports <freebsd-ports@freebsd.org> Subject: Re: amd64->armv7 cross-build failure for security/ca_root_nss: It failed in memcpy () from /libexec/ld-elf.so.1 Message-ID: <EF68AD62-1373-42A3-B5D3-1574CAB13DD5@yahoo.com> In-Reply-To: <1EC37157-CBA2-4334-92C1-E845F63DB5CA@yahoo.com> References: <1EC37157-CBA2-4334-92C1-E845F63DB5CA@yahoo.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On 2020-Mar-16, at 21:48, Mark Millard <marklmi at yahoo.com> wrote:
> Context: head -r358966 attempting to update ports
> to -r528535 . Also, 50+ ports built just fine
> but the below has been repeatable in my context.
>=20
> The original failure was under devel/poudriere-devel (with
> nxb-bin/ materials used). But part of the below is from
> exploring with various steps in a handier context.
>=20
> The original error message was:
>=20
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D<ph=
ase: build >=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> Building for ca_root_nss-3.51
> ## Untrusted certificates omitted from this bundle: 2
> openssl x509 failed with exit code 11 at =
/wrkdirs/usr/ports/security/ca_root_nss/work/MAca-bundle.pl line 78.
> *** Error code 255
>=20
> The original source that reported the message was:
>=20
> sub printcert_info($$)
> {
> my (undef, $certdata) =3D @_;
> return unless $certdata;
> open(OUT, "|openssl x509 -text -inform DER -fingerprint")
> || die "could not pipe to openssl x509";
> print OUT $certdata;
> close(OUT) or die "openssl x509 failed with exit code $?";
> }
>=20
> The die produced:
>=20
> -rw-r--r-- 1 root wheel 7909376 Mar 17 03:18:04 2020 =
qemu_openssl.core
>=20
> gdb reported for it:
>=20
> Core was generated by `openssl'.
> Program terminated with signal SIGSEGV, Segmentation fault.
> #0 0xf501adb4 in memcpy () from /libexec/ld-elf.so.1
>=20
> and:
>=20
> (gdb) info threads
> Id Target Id Frame=20
> * 1 LWP 1592 "x509" 0xf501adb4 in memcpy () from =
/libexec/ld-elf.so.1
>=20
> and:
>=20
> gdb) bt
> #0 0xf501adb4 in memcpy () from /libexec/ld-elf.so.1
> #1 0xf5004cd0 in do_copy_relocations () from /libexec/ld-elf.so.1
>=20
> and (from a disass):
>=20
> =3D> 0xf501adb4 <+436>: strd r4, [r3], #8
>=20
> (It was not clear what code context to supply so
> I stuck to showing the instruction with the register
> used such that SIGSEGV could result from the use: r3 .)
>=20
> Finally the registers were listed as holding:
>=20
> (gdb) info reg
> r0 0xf4f5d57c 4109751676
> r1 0x14 20
> r2 0x93000 602112
> r3 0x1 1
> r4 0x10 16
> r5 0x9fffdfa4 2684346276
> r6 0xf4fe2404 4110296068
> r7 0xf4fe2004 4110295044
> r8 0x93000 602112
> r9 0x93000 602112
> r10 0x9fffdfe0 2684346336
> r11 0x0 0
> r12 0x9fffdf80 2684346240
> sp 0x9fffdf80 0x9fffdf80
> lr 0xf5004cd0 4110437584
> pc 0xf501adb4 0xf501adb4 <memcpy+436>
> cpsr 0x60000010 1610612752
>=20
> Yep: r3=3D=3D1 would do it.
>=20
>=20
> Note: I've otherwise ignored here seeing lots of:
>=20
> qemu: unsupported syscall: 574 (calling anyway)
>=20
> notices while doing things for extracting
> this information.
>=20
>=20
> I'll note that I had no such SIGSEGV when
> ca_root_nss 3.50 built back at OSVERSION=3D1300077
> on 2020-Feb-16: it built and worked fine back
> then.
>=20
>=20
>=20
> I'm not sure when I'll have time to do more with this
> or if I will again just abandon qemu-user-static for
> a time. (Insufficient time to allocate to do more?)
> Hopefully the basic information is useful to someone
> at some point.
>=20
> I'm not claiming that I know qemu-user-static is the
> problem, or openssl, or whatever. Just that the
> combination is broken in my context.
>=20
> Having security/ca_root_nss blocked, blocks
> cross-building lots of other things, including
> devel/llvm10 .
Using:
# poudriere bulk -j FBSDFSSDjailArmV7 -i -w ports-mgmt/portmaster
to allow trying things from inside the poudriere
build environment, I tried:
# openssl=20
qemu: uncaught target signal 11 (Segmentation fault) - core dumped
# file `which openssl`
/usr/bin/openssl: ELF 32-bit LSB executable, ARM, EABI5 version 1 =
(FreeBSD), dynamically linked, interpreter /libexec/ld-elf.so.1, for =
FreeBSD 13.0 (1300084), FreeBSD-style, not stripped
The backtrace was again memcpy and do_copy_relocations.
(So "x509" had nothing to do with the inability to
run the original failed command.)
=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?EF68AD62-1373-42A3-B5D3-1574CAB13DD5>
