pkgsrc-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Bootstrapping pbulk in sandbox fails on Loongson/mips64el.



Hi,

I'm trying to bootstrap pbulk on my Loongson2f machine which is
running NetBSD 8.2 but was encountering some issue when building
digest during bootstrapping.  The relevant build logs are included
below:

```
===> Installing for digest-20211023
=> Generating pre-install file lists
/bin/sh ./mkinstalldirs
/tmp/obj-pbulk/pkgtools/digest/work/.destdir/usr/pbulk/bin
mkdir /tmp/obj-pbulk/pkgtools/digest/work/.destdir/usr/pbulk/bin
/usr/bin/install -c -s -o root -g wheel -m 755 digest
/tmp/obj-pbulk/pkgtools/digest/work/.destdir/usr/pbulk/bin/digest
/bin/sh ./mkinstalldirs
/tmp/obj-pbulk/pkgtools/digest/work/.destdir/usr/pbulk/man/man1
mkdir /tmp/obj-pbulk/pkgtools/digest/work/.destdir/usr/pbulk/man
mkdir /tmp/obj-pbulk/pkgtools/digest/work/.destdir/usr/pbulk/man/man1
/usr/bin/install -c -o root -g wheel -m 644 digest.1
/tmp/obj-pbulk/pkgtools/digest/work/.destdir/usr/pbulk/man/man1/digest.1
=> Automatic manual page handling
=> Generating post-install file lists
=> Checking file-check results for digest-20211023
=> Checking for non-existent script interpreters in digest-20211023
=> Checking for missing run-time search paths in digest-20211023
/usr/bin/awk: no program filename

*** Error code 2

Stop.
bmake[3]: stopped in /usr/pkgsrc/pkgtools/digest
*** Error code 1

Stop.
bmake[2]: stopped in /usr/pkgsrc/pkgtools/digest
*** Error code 1

Stop.
bmake[1]: stopped in /usr/pkgsrc/sysutils/checkperms
*** Error code 1

Stop.
bmake: stopped in /usr/pkgsrc/pkgtools/pbulk
```

So I googled the error message and found this old thread[1] (which now
looks like this[2]) suggesting that $OBJECT_FMT is not properly set.
So I used the following patch to trick bmake to properly set
everything it needs
```
Index: check-shlibs.mk
===================================================================
RCS file: /cvsroot/pkgsrc/mk/check/check-shlibs.mk,v
retrieving revision 1.34
diff -u -r1.34 check-shlibs.mk
--- check-shlibs.mk     11 Oct 2021 20:26:28 -0000      1.34
+++ check-shlibs.mk     16 Dec 2021 13:42:57 -0000
@@ -67,6 +67,11 @@
 .    if defined(DARWIN_NO_SYSTEM_LIBS)
 CHECK_SHLIBS_NATIVE_ENV+=      SKIP_SYSTEM_LIBS=1
 .    endif
+.  else
+USE_TOOLS+=                    readelf
+CHECK_SHLIBS_NATIVE=           ${PKGSRCDIR}/mk/check/check-shlibs-elf.awk
+CHECK_SHLIBS_NATIVE_ENV+=      PLATFORM_RPATH=${_OPSYS_SYSTEM_RPATH:Q}
+CHECK_SHLIBS_NATIVE_ENV+=      READELF=${TOOLS_PATH.readelf:Q}
 .  endif
 CHECK_SHLIBS_NATIVE_ENV+=      CROSS_DESTDIR=${_CROSS_DESTDIR:Q}
 CHECK_SHLIBS_NATIVE_ENV+=      PKG_INFO_CMD=${PKG_INFO:Q}
```
And then the bootstrapping of pbulk succeeded.

Apparently the proper fix should be let bmake properly detect that we
are NetBSD with elf support.  So I dug a little more and found this[3]
in bmake source which I think should have properly set OBJECT_FMT to
ELF.  I checked in the chroot there it is:

```
# file /usr/libexec/ld.elf_so
/usr/libexec/ld.elf_so: symbolic link to /libexec/ld.elf_so
# file /libexec/ld.elf_so
/libexec/ld.elf_so: ELF 32-bit LSB shared object, MIPS, N32 MIPS-III
version 1 (SYSV), dynamically linked, for NetBSD 8.2, not stripped
```

But somehow this didn't happen.

Would like to know what could be the cause and how to properly fix
this.  Thanks!

[1] https://mail-index.netbsd.org/tech-pkg/2015/12/09/msg016090.html
[2] https://github.com/NetBSD/pkgsrc/blob/trunk/mk/check/check-shlibs.mk#L60
[3] https://github.com/NetBSD/pkgsrc/blob/trunk/devel/bmake/files/mk/own.mk#L199-L202


Home | Main Index | Thread Index | Old Index