Marvee Amasi
Marvee Amasi
DIIDevHeads IoT Integration Server
Created by Marvee Amasi on 9/27/2024 in #middleware-and-os
Why will there be issues while trying to build the Boot to Gecko (B2G) project on my x86-64 Ubuntu
Why will there be issues while trying to build the Boot to Gecko (B2G) project on my x86-64 Ubuntu 12.10 system. The Gecko build fails when attempting to link librt, even though the library is present on my system. When running the build command for Gecko:
$ ./build.sh -j1 gecko
$ ./build.sh -j1 gecko
The error occurs during the linking step:
TEST-PASS | check-sync-dirs.py | /home/user/src/MOZILLA/B2G/gecko/js/src/config <= /home/user/src/MOZILLA/B2G/gecko/config
/home/user/src/MOZILLA/B2G/prebuilt/linux-x86/toolchain/i686-android-linux-4.4.3/bin/../lib/gcc/i686-android-linux/4.4.3/../../../../i686-android-linux/bin/ld: cannot find -lrt
collect2: ld returned 1 exit status
TEST-PASS | check-sync-dirs.py | /home/user/src/MOZILLA/B2G/gecko/js/src/config <= /home/user/src/MOZILLA/B2G/gecko/config
/home/user/src/MOZILLA/B2G/prebuilt/linux-x86/toolchain/i686-android-linux-4.4.3/bin/../lib/gcc/i686-android-linux/4.4.3/../../../../i686-android-linux/bin/ld: cannot find -lrt
collect2: ld returned 1 exit status
I expected the build process to complete successfully, as the necessary libraries, including librt, are present on my system. The linker (ld) fails to find librt despite the library being installed. The following command shows that librt.so exists in several locations:
$ locate librt.so

/home/user/src/MOZILLA/B2G/prebuilt/linux-x86/toolchain/i686-linux-glibc2.7-4.4.3/sysroot/usr/lib/librt.so
/home/user/src/MOZILLA/B2G/prebuilt/linux-x86/toolchain/i686-linux-glibc2.7-4.4.3/sysroot/usr/lib/librt.so.1
/home/user/src/MOZILLA/B2G/prebuilts/gcc/linux-x86/host/i686-linux-glibc2.7-4.6/sysroot/usr/lib/librt.so
/home/user/src/MOZILLA/B2G/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.7-4.6/sysroot/usr/lib/librt.so
/lib/i386-linux-gnu/librt.so.1
/lib/x86_64-linux-gnu/librt.so.1
/usr/lib/x86_64-linux-gnu/librt.so
$ locate librt.so

/home/user/src/MOZILLA/B2G/prebuilt/linux-x86/toolchain/i686-linux-glibc2.7-4.4.3/sysroot/usr/lib/librt.so
/home/user/src/MOZILLA/B2G/prebuilt/linux-x86/toolchain/i686-linux-glibc2.7-4.4.3/sysroot/usr/lib/librt.so.1
/home/user/src/MOZILLA/B2G/prebuilts/gcc/linux-x86/host/i686-linux-glibc2.7-4.6/sysroot/usr/lib/librt.so
/home/user/src/MOZILLA/B2G/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.7-4.6/sysroot/usr/lib/librt.so
/lib/i386-linux-gnu/librt.so.1
/lib/x86_64-linux-gnu/librt.so.1
/usr/lib/x86_64-linux-gnu/librt.so
Despite the presence of the library in both x86_64 and i386 directories, the build fails to locate librt. Just worried why the linker is unable to find librt even though it’s installed and located in the system, any help?
3 replies