Yocto Rocko ld: не удается найти -lgcc в glibc 2.23 do_compile - PullRequest
0 голосов
/ 15 ноября 2018

Я использую 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)

Любая помощь будет высоко оценена!

...