Re: r352239: install failure: make[10]: exec(btxld) failed (No such file or directory)

From: O. Hartmann <ohartmann_at_walstatt.org>
Date: Thu, 12 Sep 2019 13:25:55 +0200
On Thu, 12 Sep 2019 06:27:00 +0200
"O. Hartmann" <ohartmann_at_walstatt.org> wrote:

> Hello,
>
> we install several pkg-based systems and poudriere from a dedicated tree of
> sources, instead of /usr/src it is in our case /pool/sources/CURRENT/src and
> 12-STABLE/src. Compilation of the sources is done within a JAIL!
>
> For a couple of days now, both trees, CURRENT (r352239 now) and 12-STABLE
> (r352239) fail at the exact same point, when compiling and further packaging:
>
> [...]
> install -U -M
> /pool/sources/CURRENT/obj/pool/sources/CURRENT/src/amd64.amd64/worldstage//METALOG
> -D /pool/sources/CURRENT/obj/pool/sources/CURRENT/src/amd64.amd64/worldstage
> -T package=utilities -d -m 0755 -o root  -g wheel
> /pool/sources/CURRENT/obj/pool/sources/CURRENT/src/amd64.amd64/worldstage/boot
> objcopy -S -O binary boot2.out boot2.bin btxld -v -E 0x2000 -f bin -b
> /pool/sources/CURRENT/obj/pool/sources/CURRENT/src/amd64.amd64/stand/i386/btx/btx/btx
> -l boot2.ldr  -o boot2.ld -P 1 boot2.bin make[10]: exec(btxld) failed (No such
> file or directory) *** Error code 1
> [...]
>
> For reduction of the installed binaries and stuff, we use customized src.conf
> and each build process is delegated to its appropriate src.conf by setting the
> variabel SRCCONF accordingly; poudriere also uses the same src.conf by linking
> the jailname-src.conf file into poudriere's config folder; the content of
> src.conf is as follows:
>
> [...]
> WITH_OFED=                              YES
> #WITH_CTF=                              YES
> #
> #WITH_BEARSSL=                          YES
> #
> WITH_SVN=                               YES
> #
> WITH_SORT_THREADS=                      YES
> #
> MALLOC_PRODUCTION=                      YES
> #
> #WITHOUT_ASSERT_DEBUG=                  YES
> #WITHOUT_DEBUG_FILES=        YES
> #WITHOUT_TESTS=              YES
> WITHOUT_PROFILE=            YES
> #
> WITHOUT_REPRODUCIBLE_BUILD=     YES
> #
> #  mitigation for CVE-2017-5715 in the kernel build
> WITH_RETPOLINE=                         YES
>
> [...]
>
> Building poudriere jails from such sources also fails since a couple of days
> on all platforms with a weird message thata folder and/or file atf-check is
> missing (this happens when using command sequence: poudriere jail -j jailname
> -u -b and the install method of the appropriate jail is
> src=/path/to/source/src.
>
> Thanks for helping,
>
> oh
> _______________________________________________
> freebsd-current_at_freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe_at_freebsd.org"

After today's update of CURRENT's source tree and "poudriere jail -j jailname
-u -b", which should result in a successful build, the error is:

[...]
cc -target x86_64-unknown-freebsd13.0
--sysroot=/pool/sources/CURRENT/obj/pool/poudriere/jails/headamd64/usr/src/amd64.amd64/tmp
-B/pool/sources/CURRENT/obj/pool/poudriere/jails/headamd64/usr/src/amd64.amd64/tmp/usr/bin
 -O2 -pipe -O3      -DNDEBUG   -I.
-I/pool/poudriere/jails/headamd64/usr/src/contrib/elftoolchain/libelf
-I/pool/poudriere/jails/headamd64/usr/src/contrib/elftoolchain/common
-mretpoline -g -MD  -MF.depend.elf_update.o -MTelf_update.o -std=gnu99
-Wno-format-zero-length -fstack-protector-strong -Wsystem-headers -Werror -Wall
-Wno-format-y2k -W -Wno-unused-parameter -Wstrict-prototypes
-Wmissing-prototypes -Wpointer-arith -Wreturn-type -Wcast-qual -Wwrite-strings
-Wswitch -Wshadow -Wunused-parameter -Wcast-align -Wchar-subscripts -Winline
-Wnested-externs -Wredundant-decls -Wold-style-definition -Wno-pointer-sign
-Wmissing-variable-declarations -Wthread-safety -Wno-empty-body
-Wno-string-plus-int -Wno-unused-const-variable  -Qunused-arguments    -c
/pool/poudriere/jails/headamd64/usr/src/contrib/elftoolchain/libelf/elf_update.c
-o elf_update.o
/pool/poudriere/jails/headamd64/usr/src/contrib/elftoolchain/libelf/elf_update.c:841:67:
error: unused parameter 'ex' [-Werror,-Wunused-parameter]
_libelf_write_ehdr(Elf *e, unsigned char *nf, struct _Elf_Extent *ex)
[...]

As I mentioned earlier, the build is performed within a jail considered to run
poudriere and the task has been performed successful earlier (a couple of days
ago, but didn't memorised the revision number).

On non-jailed hosts, this task works as expected, both on 12-STABLE (recent
version 12.1-PRE) and CURRENT. Also did I remove the object's path and started
a fresh build, so  remnants from an earlier build can be excluded.
/usr/local/etc/poudriere.d/jailname-poudriere.conf has a valid setting like
this:

export   MAKEOBJDIRPREFIX=/pool/sources/CURRENT/obj/

Another strategy also fails. Building all the binaries under ./obj from the
base host with an objetctree of a valid and successful build and then jexe'ing
into the poudriere jail, which has all the infrastructure on ZFS already
mounted and typing there

poudriere jail -j jailname -u

which should result in a correct and successfuil installation, fails
immediately with

install -N /pool/sources/CURRENT/src/etc  -C -o root -g wheel -m 444
libpythagoras.a /pool/poudriere/jails/headamd64/usr/tests/libexec/rtld-elf/
install -N /pool/sources/CURRENT/src/etc  -C -o root -g wheel -m 444
libpythagoras_p.a /pool/poudriere/jails/headamd64/usr/tests/libexec/rtld-elf/
--- ld_library_pathfds.install --- --- _proginstall --- ---
realinstall_subdir_libexec/rtld-elf/tests/libpythagoras --- install:
libpythagoras_p.a: No such file or directory *** [_libinstall] Error code 71

I feel a bit lost here ... is there something special to jails?

Kind regards,

oh
Received on Thu Sep 12 2019 - 09:38:57 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:21 UTC