Я использую Yocto Rocko для своего продукта.
Я использую версию ядра 2.6.35 вместо версии по умолчанию для Rocko.(это связано с проблемой рендеринга графики в новом ядре, исправление которой может занять больше времени)
Для поддержки этого старого ядра 2.6.35 я вынужден использовать glibc 2.23 (папка yocto rocko glibcзаменен на yocto krogoth glibc folder) вместо glibc v 2.26 по умолчанию с rocko (так как glibc 2.26 поддерживает ядро версии 3.2 выше. Я могу скомпилировать rocko со старым ядром, но во время загрузки запускается паника ядра с сообщением «kernel is old».установить переменную old_kernel, но получить тот же результат).
С glibc 2.23 я получаю ошибку -lgcc, не найденную во время do_compile.Пожалуйста, обратитесь к ниже для получения дополнительной информации.
Я обновил tclib файлы с предпочтительной версией, установленной на glibc 2.23, но все еще получаю ошибку.Кроме того, я проверил, что libgcc должным образом присутствует в хосте в / usr / lib (Linux 18.04 Bionic)
Как мне указать путь и библиотеки?
Полное сообщение об ошибке приведено ниже:
Ядро Linux - 2.6.35 Glibc - 2.23 Binutils - 2.29
При компиляции настроенного poky-образа я получаю следующую ошибку:
arm-poky-linux-gnueabi-gcc -march=armv6 -mfpu=vfp -mfloat-abi=softfp --sysroot=/work/repo/bsp2/build-ebox/tmp/work/armv6-vfp-poky-linux-gnueabi/glibc/2.23-r0/recipe-sysroot-tcbootstrap -nostdlib -nostartfiles -r -o /work/repo/bsp2/build-ebox/tmp/work/armv6-vfp-poky-linux-gnueabi/glibc/2.23-r0/build-arm-poky-linux-gnueabi/elf/librtld.map.o '-Wl,-(' /work/repo/bsp2/build-ebox/tmp/work/armv6-vfp-poky-linux-gnueabi/glibc/2.23-r0/build-arm-poky-linux-gnueabi/elf/dl-allobjs.os /work/repo/bsp2/build-ebox/tmp/work/armv6-vfp-poky-linux-gnueabi/glibc/2.23-r0/build-arm-poky-linux-gnueabi/libc_pic.a -lgcc '-Wl,-)' -Wl,-Map,/work/repo/bsp2/build-ebox/tmp/work/armv6-vfp-poky-linux-gnueabi/glibc/2.23-r0/build-arm-poky-linux-gnueabi/elf/librtld.mapT
| /work/repo/bsp2/build-ebox/tmp/work/armv6-vfp-poky-linux-gnueabi/glibc/2.23-r0/recipe-sysroot-native/usr/bin/arm-poky-linux-gnueabi.gcc-cross-initial-arm/../../libexec/arm-poky-linux-gnueabi.gcc-cross-initial-arm/gcc/arm-poky-linux-gnueabi/7.3.0/ld: cannot find -lgcc
| collect2: error: ld returned 1 exit status
| Makefile:340: recipe for target '/work/repo/bsp2/build-ebox/tmp/work/armv6-vfp-poky-linux-gnueabi/glibc/2.23-r0/build-arm-poky-linux-gnueabi/elf/librtld.map' failed
| make[2]: *** [/work/repo/bsp2/build-ebox/tmp/work/armv6-vfp-poky-linux-gnueabi/glibc/2.23-r0/build-arm-poky-linux-gnueabi/elf/librtld.map] Error 1
| make[2]: Leaving directory '/work/repo/bsp2/build-ebox/tmp/work/armv6-vfp-poky-linux-gnueabi/glibc/2.23-r0/git/elf'
| Makefile:234: recipe for target 'elf/subdir_lib' failed
| make[1]: *** [elf/subdir_lib] Error 2
| make[1]: Leaving directory '/work/repo/bsp2/build-ebox/tmp/work/armv6-vfp-poky-linux-gnueabi/glibc/2.23-r0/git'
| ERROR: oe_runmake failed
| Makefile:9: recipe for target 'all' failed
| make: *** [all] Error 2
| WARNING: exit code 1 from a shell command.
| ERROR: Function failed: do_compile (log file is located at /work/repo/bsp2/build-ebox/tmp/work/armv6-vfp-poky-linux-gnueabi/glibc/2.23-r0/temp/log.do_compile.27335)
ERROR: Task (/work/repo/bsp2/sources/poky/meta/recipes-core/glibc/glibc_2.23.bb:do_compile) failed with exit code '1'
NOTE: Tasks Summary: Attempted 2002 tasks of which 1980 didn't need to be rerun and 1 failed.
Summary: 1 task failed:
/work/repo/bsp2/sources/poky/meta/recipes-core/glibc/glibc_2.23.bb:do_compile
Summary: There were 2 ERROR messages shown, returning a non-zero exit code.
(Please note I had to add STAGING_DIR_TCBOOTSTRAP = "${STAGING_DIR_TARGET}-tcbootstrap" in bitbake.conf to start compilation of glibc v2.23 taken from yocto krogoth)
Любая помощь будет высоко оценена!