LINUX.ORG.RU

Сообщения hardbasser

 

Не подхватывается вручную собранная glibc в кастомной директории

Форум — Development

Есть устройство на arm с предустановленной glibc 2.28. Пытаюсь собрать программу с использованием SDL2, у которой множество зависимостей. Все зависимости установлены в /mnt/SDCARD/miyoo/lib/custom и нормально подватываются при установке LD_LIBRARY_PATH, однако, среди этих зависимостей есть libsystemd, которая требует glibc версии не ниже 2.30. glibc нужной версии так же есть в /mnt/SDCARD/miyoo/lib/custom, но libsystemd как будто ее не видит. Пробовал как уже готовые версии glibc, поставляемые через различные пакеты apt для armhf, так и собранную вручную, но ничего не помогает:

./test: /lib/libc.so.6:
version `GLIBC_2.30' not found (required by /mnt/SDCARD/miyoo/lib/custom/libsystemd.so.0)

Пробовал даже вручную прописать RUNPATH в libsystemd, вот так:

Dynamic section at offset 0x7a000 contains 37 entries:
  Tag        Type                         Name/Value
 0x0000001d (RUNPATH)                    Library runpath: [/mnt/SDCARD/miyoo/lib/custom/]
 0x00000001 (NEEDED)                     Shared library: [librt.so.1]
 0x00000001 (NEEDED)                     Shared library: [liblzma.so.5]
 0x00000001 (NEEDED)                     Shared library: [libzstd.so.1]
 0x00000001 (NEEDED)                     Shared library: [liblz4.so.1]
 0x00000001 (NEEDED)                     Shared library: [libgcrypt.so.20]
 0x00000001 (NEEDED)                     Shared library: [libpthread.so.0]
 0x00000001 (NEEDED)                     Shared library: [libc.so.6]
 0x00000001 (NEEDED)                     Shared library: [ld-linux-armhf.so.3]
 0x0000000e (SONAME)                     Library soname: [libsystemd.so.0]

Но и это не помогло. С самим компилятором все нормально, hello world на целевом устройстве отрабатывает как надо. glibc тоже собрана, вроде, правильно. Конфигурировал вот такой командой:

CC=arm-linux-gnueabihf-gcc ../configure arm-linux-gnueabi --target=arm-linux-gnueabihf --with-float=hard --prefix=/usr/lib/arm-linux-gnueabihf/ --with-headers=/usr/arm-linux-gnueabihf/include:/usr/include --disable-werror

И вот еще вывод objdump -f для моей либы:

libc.so.6:     file format elf32-little
architecture: UNKNOWN!, flags 0x00000150:
HAS_SYMS, DYNAMIC, D_PAGED
start address 0x0001ac39

и для предустановленной 2.28:

libc-2.28.so:     file format elf32-little
architecture: UNKNOWN!, flags 0x00000150:
HAS_SYMS, DYNAMIC, D_PAGED
start address 0x0001785c

И лог при LD_DEBUG=all:

       893:	file=libc.so.6 [0];  needed by ./test [0] --- вот так ищет libc.so.6
       893:	find library=libc.so.6 [0]; searching
       893:	 search path=/mnt/SDCARD/miyoo/lib/custom		(LD_LIBRARY_PATH)
       893:	  trying file=/mnt/SDCARD/miyoo/lib/custom/libc.so.6
       893:	 search path=/lib/tls/v7l/neon/vfp:/lib/tls/v7l/neon:/lib/tls/v7l/vfp:/lib/tls/v7l:/lib/tls/neon/vfp:/lib/tls/neon:/lib/tls/vfp:/lib/tls:/lib/v7l/neon/vfp:/lib/v7l/neon:/lib/v7l/vfp:/lib/v7l:/lib/neon/vfp:/lib/neon:/lib/vfp:/lib		(system search path)
       893:	  trying file=/lib/tls/v7l/neon/vfp/libc.so.6
       893:	  trying file=/lib/tls/v7l/neon/libc.so.6
       893:	  trying file=/lib/tls/v7l/vfp/libc.so.6
       893:	  trying file=/lib/tls/v7l/libc.so.6
       893:	  trying file=/lib/tls/neon/vfp/libc.so.6
       893:	  trying file=/lib/tls/neon/libc.so.6
       893:	  trying file=/lib/tls/vfp/libc.so.6
       893:	  trying file=/lib/tls/libc.so.6
       893:	  trying file=/lib/v7l/neon/vfp/libc.so.6
       893:	  trying file=/lib/v7l/neon/libc.so.6
       893:	  trying file=/lib/v7l/vfp/libc.so.6
       893:	  trying file=/lib/v7l/libc.so.6
       893:	  trying file=/lib/neon/vfp/libc.so.6
       893:	  trying file=/lib/neon/libc.so.6
       893:	  trying file=/lib/vfp/libc.so.6
       893:	  trying file=/lib/libc.so.6


       893:	file=libasound.so.2 [0];  needed by /mnt/SDCARD/miyoo/lib/custom/libSDL2-2.0.so.0 [0] --- вот так ищет любую другую либу
       893:	find library=libasound.so.2 [0]; searching
       893:	 search path=/mnt/SDCARD/miyoo/lib/custom		(LD_LIBRARY_PATH)
       893:	  trying file=/mnt/SDCARD/miyoo/lib/custom/libasound.so.2

В чем может быть проблема? Как проверить, правильно ли собрана моя glibc, если она никак не хочет подхватываться?

 , ,

hardbasser
()

RSS подписка на новые темы