Questions about compiling OpenELEC for i386

  • While 6.0.3 compiling is running, the compiling of 5.95.5 got stuck with a error. The following is the last part output of the error message. I don't know how to solve it. Could anyone help? thanks.

    --------------------------------------------------------------------------------------------------------

    CC='/home/linuxuser/VMHDD-40G-2/VMHDD-40G-2/OpenELEC.tv-5.95.5/build.OpenELEC-Generic.i386-5.95.5/toolchain/bin/host-gcc -pthread' LDSHARED='/home/linuxuser/VMHDD-40G-2/VMHDD-40G-2/OpenELEC.tv-5.95.5/build.OpenELEC-Generic.i386-5.95.5/toolchain/bin/host-gcc -pthread -shared -Wl,-rpath,/home/linuxuser/VMHDD-40G-2/VMHDD-40G-2/OpenELEC.tv-5.95.5/build.OpenELEC-Generic.i386-5.95.5/toolchain/lib -L/home/linuxuser/VMHDD-40G-2/VMHDD-40G-2/OpenELEC.tv-5.95.5/build.OpenELEC-Generic.i386-5.95.5/toolchain/lib' OPT='-DNDEBUG -O2 -Wall -pipe -I/home/linuxuser/VMHDD-40G-2/VMHDD-40G-2/OpenELEC.tv-5.95.5/build.OpenELEC-Generic.i386-5.95.5/toolchain/include -Wno-format-security' \

    LD_LIBRARY_PATH=/home/linuxuser/VMHDD-40G-2/VMHDD-40G-2/OpenELEC.tv-5.95.5/build.OpenELEC-Generic.i386-5.95.5/Python-2.7.3/.i686-linux-gnu:/home/linuxuser/VMHDD-40G-2/VMHDD-40G-2/OpenELEC.tv-5.95.5/build.OpenELEC-Generic.i386-5.95.5/toolchain/lib: CONFIG_ARGS="'--host=i686-linux-gnu' '--build=i686-linux-gnu' '--prefix=/home/linuxuser/VMHDD-40G-2/VMHDD-40G-2/OpenELEC.tv-5.95.5/build.OpenELEC-Generic.i386-5.95.5/toolchain' '--bindir=/home/linuxuser/VMHDD-40G-2/VMHDD-40G-2/OpenELEC.tv-5.95.5/build.OpenELEC-Generic.i386-5.95.5/toolchain/bin' '--sbindir=/home/linuxuser/VMHDD-40G-2/VMHDD-40G-2/OpenELEC.tv-5.95.5/build.OpenELEC-Generic.i386-5.95.5/toolchain/sbin' '--sysconfdir=/home/linuxuser/VMHDD-40G-2/VMHDD-40G-2/OpenELEC.tv-5.95.5/build.OpenELEC-Generic.i386-5.95.5/toolchain/etc' '--libexecdir=/home/linuxuser/VMHDD-40G-2/VMHDD-40G-2/OpenELEC.tv-5.95.5/build.OpenELEC-Generic.i386-5.95.5/toolchain/lib' '--localstatedir=/home/linuxuser/VMHDD-40G-2/VMHDD-40G-2/OpenELEC.tv-5.95.5/build.OpenELEC-Generic.i386-5.95.5/toolchain/var' '--disable-static' '--enable-shared' '--cache-file=config.cache' '--without-cxx-main' '--with-threads' '--enable-unicode=ucs4' 'build_alias=i686-linux-gnu' 'host_alias=i686-linux-gnu' 'CC=/home/linuxuser/VMHDD-40G-2/VMHDD-40G-2/OpenELEC.tv-5.95.5/build.OpenELEC-Generic.i386-5.95.5/toolchain/bin/host-gcc' 'CFLAGS=-O2 -Wall -pipe -I/home/linuxuser/VMHDD-40G-2/VMHDD-40G-2/OpenELEC.tv-5.95.5/build.OpenELEC-Generic.i386-5.95.5/toolchain/include -Wno-format-security' 'LDFLAGS=-Wl,-rpath,/home/linuxuser/VMHDD-40G-2/VMHDD-40G-2/OpenELEC.tv-5.95.5/build.OpenELEC-Generic.i386-5.95.5/toolchain/lib -L/home/linuxuser/VMHDD-40G-2/VMHDD-40G-2/OpenELEC.tv-5.95.5/build.OpenELEC-Generic.i386-5.95.5/toolchain/lib' 'CPPFLAGS='" ./python -E /home/linuxuser/VMHDD-40G-2/VMHDD-40G-2/OpenELEC.tv-5.95.5/build.OpenELEC-Generic.i386-5.95.5/Python-2.7.3/setup.py install \

    --skip-build \

    --prefix=/home/linuxuser/VMHDD-40G-2/VMHDD-40G-2/OpenELEC.tv-5.95.5/build.OpenELEC-Generic.i386-5.95.5/toolchain \

    --install-scripts=/home/linuxuser/VMHDD-40G-2/VMHDD-40G-2/OpenELEC.tv-5.95.5/build.OpenELEC-Generic.i386-5.95.5/toolchain/bin \

    --install-platlib=/home/linuxuser/VMHDD-40G-2/VMHDD-40G-2/OpenELEC.tv-5.95.5/build.OpenELEC-Generic.i386-5.95.5/toolchain/lib/python2.7/lib-dynload \

    --root=/

    Bus error (core dumped)

    Makefile:1044: recipe for target 'sharedinstall' failed

    make[1]: *** [sharedinstall] Error 135

    make[1]: *** Waiting for unfinished jobs....

    make[1]: Leaving directory '/media/linuxuser/VMHDD-40G-2/OpenELEC.tv-5.95.5/build.OpenELEC-Generic.i386-5.95.5/Python-2.7.3/.i686-linux-gnu'

    Makefile:9: recipe for target 'release' failed

    make: *** [release] Error 2

    ------------------------------------------------------------------------------------------------------------------------------

    Edited once, last by eloreson (September 7, 2021 at 7:09 AM).

  • The above error is solved.

    I scrolled up the terminal to the start of building Python 2.7, and found the following:

    --------------------------------------------------------------------------------------

    Python build finished, but the necessary bits to build these modules were not found:

    _bsddb _curses _curses_panel

    _sqlite3 _ssl _tkinter

    bsddb185 bz2 dbm

    gdbm readline sunaudiodev

    To find the necessary bits, look in setup.py in detect_modules() for the module's name.

    ----------------------------------------------------------------------------------------------

    I thought it's also a problem of package dependency not matched, so I installed some (not all of them) packages on the list, without knowing what they are. Then I started to make again. Now, the building process is going.

  • I got stuck with the error:

    ---------------------------------------------------------------

    lto-wrapper: /media/linuxuser/VMHDD-40G-2/OpenELEC.tv-6.0.3/build.OpenELEC-Generic.i386-6.0.3/toolchain/bin/i686-openelec-linux-gnu-gcc-4.9.3 returned 1 exit status

    /media/linuxuser/VMHDD-40G-2/OpenELEC.tv-6.0.3/build.OpenELEC-Generic.i386-6.0.3/toolchain/lib/gcc/i686-openelec-linux-gnu/4.9.3/../../../../i686-openelec-linux-gnu/bin/ld.gold: fatal error: lto-wrapper failed

    collect2: error: ld returned 1 exit status

    Makefile:725: recipe for target 'libpixman-1.la' failed

    make[3]: *** [libpixman-1.la] Error 1

    make[3]: Leaving directory '/media/linuxuser/VMHDD-40G-2/OpenELEC.tv-6.0.3/build.OpenELEC-Generic.i386-6.0.3/pixman-0.34.0/.i686-openelec-linux-gnu/pixman'

    Makefile:503: recipe for target 'all-recursive' failed

    make[2]: *** [all-recursive] Error 1

    make[2]: Leaving directory '/media/linuxuser/VMHDD-40G-2/OpenELEC.tv-6.0.3/build.OpenELEC-Generic.i386-6.0.3/pixman-0.34.0/.i686-openelec-linux-gnu'

    Makefile:410: recipe for target 'all' failed

    make[1]: *** [all] Error 2

    make[1]: Leaving directory '/media/linuxuser/VMHDD-40G-2/OpenELEC.tv-6.0.3/build.OpenELEC-Generic.i386-6.0.3/pixman-0.34.0/.i686-openelec-linux-gnu'

    Makefile:9: recipe for target 'release' failed

    make: *** [release] Error 2

    ---------------------------------------------------------------------------------------------------

    It seems OpenELEC 6.0.3 needs pixman-0.34.0, but Ubuntu 16 only have pixman-0.33. I tried to manually install pixman-0.34 (./configure, make, sudo make install) but still not work.

    Is there a way to install pixman-0.34 only in the dir under OpenELEC.tv-6.03 (without affecting the pixman-0.33 on Ubuntu), so that OpenELEC 6.0.3 only look for pixman-0.34, not 0.33?

  • The build system is building pixman 0.34.0 for target so the host version being 0.33.0 is not relevant. That's the whole point of cross-compiling the packages. I've no idea what the failure is about (something bad during LTO).

    If you've been fiddling with dependencies it might be an idea to run a clean build in-case the toolchains are poluted with odd stuff.

  • Now, both OE 5.95.5 and 6.0.3 compiling are stuck with pixman.

    OE 5.95.5 depends on pixman-0.32.6, and OE 6.0.3 depends on pixman-0.34.0, while Ubuntu 16.04 has pixman-0.33.

    I think it does not matter whatever pixman Ubuntu 16 has, because in "sources/pixman" of OE5.95.5 and OE6.0.3, the pixman version is correct.

    Here is a more detail output (from compiling OE5.95.5). It's similar on OE6.0.3, so I think no need to post redundant output.

  • I missed these error message. In which directory should I run make distclean?

  • Thanks.

    I didn't know it. I switched to 32 bit UBUNTU VM when I encountered compiling errors on 64 bit VM. It's was when I started compiling OE 5.0.8 and before stared to ask questions in the thread. I thought it would be wise to compile 32 bit programs on 32 bit VMs. The fact may not be as I thought. Any way, I will setup a 64 bit VM to compile.

  • I switched to Ubunu16 64 bit VM Still no luck. The error occurred at pixman, too. At least I know that I don't have to stick to 32 bit VM to build 32 bit programs now.

  • I forgot to ask one question.

    During compiling, the terminal popped up a series options with Y/N to answer, just like when using apt install. I didn't even read them, so I have no idea which package needs the options. I just hit "Enter" key all the way because I thought it would use the default options. Does it make any difference if I change the options?

    Now I am doing a fresh new re-build. I will see these options again. I will read them this time.

    Added:

    I see the options now. They should be kernel related config option. Speaking frankly , I totally have no idea what each option means.

    Edited once, last by eloreson (September 9, 2021 at 2:22 PM).

  • I tried to build chewitt's fork (GitHub - chewitt/LibreELEC.tv: Just enough OS for KODI) in Ubuntu 20 64bit VM. The kernel seems too fancy for i386 architecture.