urjaman / dchrt-ng

5 stars 1 forks source link

makepnd + container + cross-compiler + libfakeroot #1

Open Cloudef opened 7 years ago

Cloudef commented 7 years ago
dchrt-ng:~/szdev-recipes/makepnd$ PKGEXT=.ipk makepnd --config /etc/makepnd.conf.default -s
==> WARNING: Cannot find the sudo binary. Will use su to acquire root privileges.
==> Making package: makepnd 1.0.0-2 (Fri Aug  4 14:47:45 EEST 2017)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
  -> Updating makepnd git repo...
Fetching origin
==> WARNING: Skipping verification of source file PGP signatures.
==> Validating source files with md5sums...
    makepnd ... Skipped
==> Extracting sources...
  -> Creating working copy of makepnd git repo...
Cloning into 'makepnd'...
done.
==> Starting pkgver()...
==> Updated version: makepnd r28.c9d679e-1
==> Removing existing pkg/ directory...
==> Starting build()...
-- The C compiler identification is GNU 7.1.1
-- The CXX compiler identification is GNU 7.1.1
-- Check for working C compiler: /usr/ngcc-x64/bin/gcc
-- Check for working C compiler: /usr/ngcc-x64/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/ngcc-x64/bin/g++
-- Check for working CXX compiler: /usr/ngcc-x64/bin/g++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Configuring done
-- Generating done
-- Build files have been written to: /home/builder/szdev-recipes/makepnd/src/makepnd
==> Entering fakeroot environment...
==> Starting package()...
Install the project...
-- Install configuration: ""
-- Installing: /home/builder/szdev-recipes/makepnd/pkg/makepnd/usr/bin/makepnd
-- Installing: /home/builder/szdev-recipes/makepnd/pkg/makepnd/etc/makepnd.conf.default
-- Installing: /home/builder/szdev-recipes/makepnd/pkg/makepnd/usr/share/makepnd/PXML_schema.xsd
-- Installing: /home/builder/szdev-recipes/makepnd/pkg/makepnd/usr/share/makepnd/pndcorelibs
-- Installing: /home/builder/szdev-recipes/makepnd/pkg/makepnd/usr/share/makepnd/pndlibs
==> Tidying install...
  -> Purging unwanted files...
  -> Removing libtool files...
  -> Compressing man and info pages...
  -> Stripping unneeded symbols from binaries and libraries...
==> Creating package "makepnd"...
  -> Compressing package...
ERROR: ld.so: object 'libfakeroot.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
==> Leaving fakeroot environment.
==> Finished making: makepnd r28.c9d679e-1 (Fri Aug  4 14:47:53 EEST 2017)

Notice the line ERROR: ld.so: object 'libfakeroot.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. This is just a hunch, but probably needs libfakeroot build for the x86_64 overlay, or it tries to LD_PRELOAD ARM32 lib on the cross-compiler. This isn't fatal error, but in theory can cause failures if paths for compiler/linker are weird, and need fakeroot to be resolved properly.

urjaman commented 7 years ago

Yeah known, you cant preload the arm libfakeroot into the x86-64 compiler, hopefully you wont require fakeroot "abilities" when using the compiler/linker so it"s benign. Maybe one could build both fakeroots and patch in support to pick the correct .so, but I"m not looking into it more unless it becomes an actual issue

Cloudef commented 7 years ago

I think LD_PRELOAD supports multiarch libs. At least it can resolve lib32 in x86_64 systems. But yeah, all recipes so far should not be affected by this.