LINUX.ORG.RU

LFS 7.5 шаг 6.10 Adjusting the Toolchain

 , ,


0

2

При компиляции фиктивной программы dummy.c выдаёт ошибку. Из лога следует что он не может найти и открыть файлы содержащие -lgcc_s и -lc:


attempt to open /tools/lib/gcc/i686-pc-linux-gnu/4.8.2/libgcc.so failed
attempt to open /tools/lib/gcc/i686-pc-linux-gnu/4.8.2/libgcc.a succeeded
attempt to open /tools/lib/gcc/i686-pc-linux-gnu/4.8.2/libgcc_s.so failed
attempt to open /tools/lib/gcc/i686-pc-linux-gnu/4.8.2/libgcc_s.a failed
attempt to open /tools/lib/gcc/i686-pc-linux-gnu/4.8.2/../../../../i686-pc-linux-gnu/lib/libgcc_s.so failed
attempt to open /tools/lib/gcc/i686-pc-linux-gnu/4.8.2/../../../../i686-pc-linux-gnu/lib/libgcc_s.a failed
attempt to open /usr/libgcc_s.so failed
attempt to open /usr/libgcc_s.a failed
attempt to open /lib/libgcc_s.so failed
attempt to open /lib/libgcc_s.a failed
attempt to open /tools/lib/gcc/i686-pc-linux-gnu/4.8.2/libc.so failed
attempt to open /tools/lib/gcc/i686-pc-linux-gnu/4.8.2/libc.a failed
attempt to open /tools/lib/gcc/i686-pc-linux-gnu/4.8.2/../../../../i686-pc-linux-gnu/lib/libc.so failed
attempt to open /tools/lib/gcc/i686-pc-linux-gnu/4.8.2/../../../../i686-pc-linux-gnu/lib/libc.a failed
attempt to open /usr/libc.so failed
attempt to open /usr/libc.a failed
attempt to open /lib/libc.so failed
attempt to open /lib/libc.a failed
attempt to open /tools/lib/gcc/i686-pc-linux-gnu/4.8.2/libgcc.so failed
attempt to open /tools/lib/gcc/i686-pc-linux-gnu/4.8.2/libgcc.a succeeded
attempt to open /tools/lib/gcc/i686-pc-linux-gnu/4.8.2/libgcc_s.so failed
attempt to open /tools/lib/gcc/i686-pc-linux-gnu/4.8.2/libgcc_s.a failed
attempt to open /tools/lib/gcc/i686-pc-linux-gnu/4.8.2/../../../../i686-pc-linux-gnu/lib/libgcc_s.so failed
attempt to open /tools/lib/gcc/i686-pc-linux-gnu/4.8.2/../../../../i686-pc-linux-gnu/lib/libgcc_s.a failed
attempt to open /usr/libgcc_s.so failed
attempt to open /usr/libgcc_s.a failed
attempt to open /lib/libgcc_s.so failed
attempt to open /lib/libgcc_s.a failed
attempt to open /tools/lib/gcc/i686-pc-linux-gnu/4.8.2/crtend.o succeeded
/tools/lib/gcc/i686-pc-linux-gnu/4.8.2/crtend.o
attempt to open /usr/lib/crtn.o succeeded
/usr/lib/crtn.o/tools/lib/gcc/i686-pc-linux-gnu/4.8.2/../../../../i686-pc-linux-gnu/bin/ld: cannot find -lgcc_s
/tools/lib/gcc/i686-pc-linux-gnu/4.8.2/../../../../i686-pc-linux-gnu/bin/ld: cannot find -lc
/tools/lib/gcc/i686-pc-linux-gnu/4.8.2/../../../../i686-pc-linux-gnu/bin/ld: cannot find -lgcc_s
collect2: error: ld returned 1 exit status

Притом что в директории /lib имеются символьные ссылки на эти файлы, но он в упор отказывается их замечать. Может я что-то делаю не так?

Ответ на: комментарий от IvS
echo $LD_LIBRARY_PATH

ls -l /lib
total 3616
-rwxr-xr-x 1 root root  159623 Jun  2 12:08 ld-2.19.so
lrwxrwxrwx 1 root root      10 Jun  2 12:08 ld-linux.so.2 -> ld-2.19.so
-rwxr-xr-x 1 root root    7181 Jun  2 12:07 libBrokenLocale-2.19.so
lrwxrwxrwx 1 root root      23 Jun  2 12:08 libBrokenLocale.so.1 -> libBrokenLocale-2.19.so
-rwxr-xr-x 1 root root   16169 Jun  2 12:08 libSegFault.so
-rwxr-xr-x 1 root root   17676 Jun  2 12:08 libanl-2.19.so
lrwxrwxrwx 1 root root      14 Jun  2 12:08 libanl.so.1 -> libanl-2.19.so
-rwxr-xr-x 1 root root 2052446 Jun  2 12:08 libc-2.19.so
lrwxrwxrwx 1 root root      23 Jun  2 15:29 libc.a -> /mnt/lfs/usr/lib/libc.a
lrwxrwxrwx 1 root root      24 Jun  2 15:29 libc.so -> /mnt/lfs/usr/lib/libc.so
lrwxrwxrwx 1 root root      12 Jun  2 12:08 libc.so.6 -> libc-2.19.so
-rwxr-xr-x 1 root root  191130 Jun  2 12:08 libcidn-2.19.so
lrwxrwxrwx 1 root root      15 Jun  2 12:08 libcidn.so.1 -> libcidn-2.19.so
-rwxr-xr-x 1 root root   47238 Jun  2 12:08 libcrypt-2.19.so
lrwxrwxrwx 1 root root      16 Jun  2 12:08 libcrypt.so.1 -> libcrypt-2.19.so
-rwxr-xr-x 1 root root   17725 Jun  2 12:07 libdl-2.19.so
lrwxrwxrwx 1 root root      13 Jun  2 12:08 libdl.so.2 -> libdl-2.19.so
lrwxrwxrwx 1 root root      32 Jun  2 15:38 libgcc_s.so -> /mnt/lfs/tools/lib/libgcc_s.so.1
-rwxr-xr-x 1 root root  338064 Jun  2 12:07 libm-2.19.so
lrwxrwxrwx 1 root root      12 Jun  2 12:08 libm.so.6 -> libm-2.19.so
-rwxr-xr-x 1 root root   21287 Jun  2 12:07 libmemusage.so
-rwxr-xr-x 1 root root  109780 Jun  2 12:08 libnsl-2.19.so
lrwxrwxrwx 1 root root      14 Jun  2 12:08 libnsl.so.1 -> libnsl-2.19.so
-rwxr-xr-x 1 root root   40125 Jun  2 12:08 libnss_compat-2.19.so
lrwxrwxrwx 1 root root      21 Jun  2 12:08 libnss_compat.so.2 -> libnss_compat-2.19.so
-rwxr-xr-x 1 root root   35547 Jun  2 12:08 libnss_db-2.19.so
lrwxrwxrwx 1 root root      17 Jun  2 12:08 libnss_db.so.2 -> libnss_db-2.19.so
-rwxr-xr-x 1 root root   25514 Jun  2 12:08 libnss_dns-2.19.so
lrwxrwxrwx 1 root root      18 Jun  2 12:08 libnss_dns.so.2 -> libnss_dns-2.19.so
-rwxr-xr-x 1 root root   54941 Jun  2 12:08 libnss_files-2.19.so
lrwxrwxrwx 1 root root      20 Jun  2 12:08 libnss_files.so.2 -> libnss_files-2.19.so
-rwxr-xr-x 1 root root   26093 Jun  2 12:08 libnss_hesiod-2.19.so
lrwxrwxrwx 1 root root      21 Jun  2 12:08 libnss_hesiod.so.2 -> libnss_hesiod-2.19.so
-rwxr-xr-x 1 root root   50074 Jun  2 12:08 libnss_nis-2.19.so
lrwxrwxrwx 1 root root      18 Jun  2 12:08 libnss_nis.so.2 -> libnss_nis-2.19.so
-rwxr-xr-x 1 root root   63059 Jun  2 12:08 libnss_nisplus-2.19.so
lrwxrwxrwx 1 root root      22 Jun  2 12:08 libnss_nisplus.so.2 -> libnss_nisplus-2.19.so
-rwxr-xr-x 1 root root    7354 Jun  2 12:08 libpcprofile.so
-rwxr-xr-x 1 root root  149538 Jun  2 12:08 libpthread-2.19.so
lrwxrwxrwx 1 root root      18 Jun  2 12:08 libpthread.so.0 -> libpthread-2.19.so
-rwxr-xr-x 1 root root   95899 Jun  2 12:08 libresolv-2.19.so
lrwxrwxrwx 1 root root      17 Jun  2 12:08 libresolv.so.2 -> libresolv-2.19.so
-rwxr-xr-x 1 root root   39820 Jun  2 12:08 librt-2.19.so
lrwxrwxrwx 1 root root      13 Jun  2 12:08 librt.so.1 -> librt-2.19.so
-rwxr-xr-x 1 root root   35911 Jun  2 12:08 libthread_db-1.0.so
lrwxrwxrwx 1 root root      19 Jun  2 12:08 libthread_db.so.1 -> libthread_db-1.0.so
-rwxr-xr-x 1 root root   12685 Jun  2 12:08 libutil-2.19.so
lrwxrwxrwx 1 root root      15 Jun  2 12:08 libutil.so.1 -> libutil-2.19.so

ls -l /
total 88
drwxr-xr-x  2 root root  4096 Jun  2 12:06 bin
drwxr-xr-x  2 root root  4096 May 30 16:58 boot
-rwxr-xr-x  1 root root   156 May 30 12:30 chroot.sh
drwxr-xr-x 14 root root  3320 Jun  2 15:33 dev
drwxr-xr-x  5 root root  4096 Jun  2 12:37 etc
drwxr-xr-x  2 root root  4096 May 30 16:58 home
drwxr-xr-x  2 root root  4096 Jun  2 15:38 lib
drwxr-xr-x  4 root root  4096 May 30 16:58 media
drwxr-xr-x  3 root root  4096 Jun  2 12:19 mnt
-rwxr-xr-x  1 root root   261 May 30 12:29 mounting_VFS.sh
drwxr-xr-x  2 root root  4096 May 30 16:58 opt
dr-xr-xr-x 77 root root     0 Jun  2 15:33 proc
drwxr-xr-x  2 root root  4096 May 30 16:59 root
drwxrwxrwt  3 root root    60 Jun  2 15:34 run
drwxr-xr-x  2 root root  4096 Jun  2 12:08 sbin
drwxr-xr-x  3 1001 1001  4096 Jun  2 16:24 sources
drwxr-xr-x  2 root root  4096 May 30 16:58 srv
drwxr-xr-x 13 root root     0 Jun  2 15:33 sys
drwxr-xr-x  2 root root 20480 Jun  2 15:39 tmp
drwxr-xr-x 13 root root  4096 May 30 13:12 tools
drwxr-xr-x 10 root root  4096 May 30 16:58 usr
drwxr-xr-x 10 root root  4096 May 30 17:05 var

cat /etc/ld.so.conf
# Begin /etc/ld.so.conf
/usr/local/lib
/opt/lib
# Add an include directory
include /etc/ld.so.conf.d/*.conf

То есть необходимо определить переменную $LD_LIBRARY_PATH?

uberalles ()
Ответ на: комментарий от uberalles

Понял. Некоторые из искомых файлов оказались ссылками созданными в хост-системе. После перехода в окружение chroot они оакзались бездействующими. Исправил ссылки и заработало. Только вот теперь мне интересно, сколько таких ссылок может меня поджидать впереди....

uberalles ()
Ответ на: комментарий от uberalles

Только вот теперь мне интересно, сколько таких ссылок может меня поджидать впереди....

find DIR -xtype l

Это найдёт все «сломанные» символьные ссылки в каталоге DIR.

intelfx ★★★★★ ()
Ответ на: комментарий от uberalles

Как оказалось всё ещё интереснее. В настройках линкера выставлены не те директории для поиска. Кто нибудь знает где находится «internal linker script file»?

uberalles ()
Ответ на: комментарий от uberalles

Посмотри в книжке пункт «6.9.3. Configuring the Dynamic Loader» И таки примонтируй все rbind'ы правильно, после этого всё заработает... наверно

IvS ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.