Hello!
I found an odd behaviour where pkgconf will not install it's shared library into the target root - although it is completely built:
root@riscboi /n/o/openadk (master)# tar tvf firmware/generic-riscv64_musl/generic-riscv64-musl-archive+kernel.tar.xz | grep pkgconf -rwxr-xr-x root/root 26840 2024-03-12 01:59 usr/bin/pkgconf lrwxrwxrwx root/root 0 2024-03-12 01:59 usr/bin/pkg-config -> pkgconf drwxr-xr-x root/root 0 2024-03-12 04:09 usr/lib/pkgconfig/ -rw-r--r-- root/root 277 2024-03-12 03:38 usr/lib/pkgconfig/expat.pc -rw-r--r-- root/root 595 2024-03-12 01:26 usr/lib/pkgconfig/form.pc -rw-r--r-- root/root 245 2024-03-12 00:50 usr/lib/pkgconfig/gmp.pc -rw-r--r-- root/root 305 2024-03-12 01:39 usr/lib/pkgconfig/libarchive.pc -rw-r--r-- root/root 275 2024-03-12 01:17 usr/lib/pkgconfig/libcrypto.pc -rw-r--r-- root/root 1613 2024-03-12 01:21 usr/lib/pkgconfig/libcurl.pc -rw-r--r-- root/root 255 2024-03-12 03:33 usr/lib/pkgconfig/libelf.pc -rw-r--r-- root/root 378 2024-03-12 01:35 usr/lib/pkgconfig/liblzma.pc -rw-r--r-- root/root 296 2024-03-12 01:17 usr/lib/pkgconfig/libssl.pc -rw-r--r-- root/root 289 2024-03-12 01:17 usr/lib/pkgconfig/libtls.pc -rw-r--r-- root/root 456 2024-03-12 01:55 usr/lib/pkgconfig/libzstd.pc -rw-r--r-- root/root 595 2024-03-12 01:26 usr/lib/pkgconfig/menu.pc -rw-r--r-- root/root 272 2024-03-12 00:53 usr/lib/pkgconfig/mpfr.pc -rw-r--r-- root/root 595 2024-03-12 01:26 usr/lib/pkgconfig/ncurses.pc -rw-r--r-- root/root 251 2024-03-12 01:17 usr/lib/pkgconfig/openssl.pc -rw-r--r-- root/root 597 2024-03-12 01:26 usr/lib/pkgconfig/panel.pc -rw-r--r-- root/root 602 2024-03-12 01:26 usr/lib/pkgconfig/tinfo.pc -rw-r--r-- root/root 252 2024-03-12 01:06 usr/lib/pkgconfig/zlib.pc root@riscboi /n/o/openadk (master)# find root_generic-riscv64_musl/ -name "libpkgconf*" (no output) root@riscboi /n/o/openadk (master)# find build_generic-riscv64_musl/w-pkgconf-1.1.0-1/fake-riscv64/ -name "libpkgconf*" build_generic-riscv64_musl/w-pkgconf-1.1.0-1/fake-riscv64/root/usr/include/pkgconf/libpkgconf build_generic-riscv64_musl/w-pkgconf-1.1.0-1/fake-riscv64/root/usr/include/pkgconf/libpkgconf/libpkgconf.h build_generic-riscv64_musl/w-pkgconf-1.1.0-1/fake-riscv64/root/usr/lib/libpkgconf.la build_generic-riscv64_musl/w-pkgconf-1.1.0-1/fake-riscv64/root/usr/lib/libpkgconf.so build_generic-riscv64_musl/w-pkgconf-1.1.0-1/fake-riscv64/root/usr/lib/pkgconfig/libpkgconf.pc build_generic-riscv64_musl/w-pkgconf-1.1.0-1/fake-riscv64/root/usr/lib/libpkgconf.so.2.0.0 build_generic-riscv64_musl/w-pkgconf-1.1.0-1/fake-riscv64/root/usr/lib/libpkgconf.so.2
What is odd though is that the pkgconf binary itself _is_ installed: # find root_generic-riscv64_musl/ build_generic-riscv64_musl/w-pkgconf-1.1.0-1/ -name pkgconf root_generic-riscv64_musl/usr/bin/pkgconf build_generic-riscv64_musl/w-pkgconf-1.1.0-1/pkgconf-1.1.0/.libs/pkgconf build_generic-riscv64_musl/w-pkgconf-1.1.0-1/pkgconf-1.1.0/pkgconf build_generic-riscv64_musl/w-pkgconf-1.1.0-1/fake-riscv64/root/usr/bin/pkgconf build_generic-riscv64_musl/w-pkgconf-1.1.0-1/fake-riscv64/root/usr/include/pkgconf build_generic-riscv64_musl/w-pkgconf-1.1.0-1/fake-riscv64/root/usr/share/doc/pkgconf build_generic-riscv64_musl/w-pkgconf-1.1.0-1/fake-riscv64/pkg-pkgconf/usr/bin/pkgconf
And the package itself doesn't contain it either: # tar tvf firmware/generic-riscv64_musl/packages/pkgconf_1.1.0-1_riscv64.tar.xz drwxr-xr-x root/root 0 2024-03-12 08:42 ./ drwxr-xr-x root/root 0 2024-03-12 08:40 ./usr/ drwxr-xr-x root/root 0 2024-03-12 08:40 ./usr/bin/ lrwxrwxrwx root/root 0 2024-03-12 08:40 ./usr/bin/pkg-config -> pkgconf -rwxr-xr-x root/root 26840 2024-03-12 08:40 ./usr/bin/pkgconf
Looking at the pkgconf-install target in package/pkgconf/Makefile shows that that library is never installed, causing the target system to run into numerous errors when trying to execute the tool.
This is my current workaround. Not very elegant; but... it gets the job done.
diff --git a/package/pkgconf/Makefile b/package/pkgconf/Makefile index cebfeb44d..640bce899 100644 --- a/package/pkgconf/Makefile +++ b/package/pkgconf/Makefile @@ -29,9 +29,13 @@ endif (cd $(STAGING_HOST_DIR)/usr/bin && ln -sf pkg-config $(GNU_TARGET_NAME)-pkg-config)
pkgconf-install: - $(INSTALL_DIR) $(IDIR_PKGCONF)/usr/bin - $(INSTALL_BIN) $(WRKINST)/usr/bin/pkgconf \ - $(IDIR_PKGCONF)/usr/bin + for dir in bin lib include; do \ + $(INSTALL_DIR) $(IDIR_PKGCONF)/usr/$$dir; \ + find $(WRKINST)/usr/$$dir -type f \ + -exec ${INSTALL_BIN} "{}" "$(IDIR_PKGCONF)/usr/{}" ; ; \ + done + #$(INSTALL_BIN) $(WRKINST)/usr/bin/pkgconf \ + # $(IDIR_PKGCONF)/usr/bin (cd $(IDIR_PKGCONF)/usr/bin && ln -sf pkgconf pkg-config)
include ${ADK_TOPDIR}/mk/host-bottom.mk
Hope this'll be useful!