2013-05-09 2 views
3

О создании Glibc на моей инструментальной цепочке. Библиотеки успешно завершают (и проверяют все) все FLAGS unset, за исключением тех, которые указаны для построения glibc по умолчанию. то я начинаю создавать программы как с FLAGS без, так и без него, и каждый раз, когда что-то в папке iconv всегда ломается ...Glibc-2.17 toolchain issue iconv папка undefined reference

Я расхожусь на секунду, чтобы застонать, как его всегда значок, который ломается в GLibc для меня и всегда делал это до тех пор, пока я помню ... двигался, хотя ....

Когда gcc-4.8.0 передан gcc -nostdlib -nostartfiles -o/glibc-build/iconv/iconvconfig -Wl, -dynamic-linker =/tools/lib/ld-linux-x86-64.so.2 -Wl, - hash-style = both -Wl, - warn-shared-textrel, - fatal-warnings /glibc-build/csu/Scrt1.o /glibc-build/csu/crti.o gcc --print-file-name=crtbeginS.o /glibc-build/iconv/iconvconfig.o /glibc-build/iconv/strtab.o/glibc-build/iconv/xmalloc. o /glibc-build/iconv/hash-string.o -Wl, -rpath-link =/glibc-build:/glibc-bu ILD/математика:/Glibc-сборка/Эльф:/Glibc-сборка/dlfcn:/Glibc-сборка/NSS:/Glibc-сборка/Nis:/Glibc-сборка/RT:/Glibc-сборка/Резо:/Glibc-сборка/crypt:/glibc-build/nptl /glibc-build/libc.so.6 /glibc-build/libc_nonshared.a -Wl, - по мере необходимости /glibc-build/elf/ld.so -Wl, - no-as-needed -lgcc gcc --print-file-name=crtendS.o /glibc-build/csu/crtn.o gcc -nostdlib -nostartfiles -o/glibc-build/iconv/iconv_prog -Wl, -dynamic-linker =/tools/lib/ld-linux -x86-64.so.2 -Wl, - hash-style = both -Wl, - warn-shared-textrel, - fatal-warnings /mnt/lfs/glibc-build/csu/Scrt1.o/glibc -build/csu/crti.o gcc --print-file-name=crtbeginS.o /glibc-build/iconv/iconv_prog.o/glibc-build/iconv/iconv_charmap.o/glibc-build/iconv/charmap.o/glibc-build/iconv/charmap-dir. o /glibc-build/iconv/linereader.o/glibc-build/iconv/dummy-repertoire.o/glibc-build/iconv/simple-hash.o/glibc-build/iconv/xstrdup.o/glibc-build/iconv/xmalloc.o -Wl, -rpath-link =/glibc-build:/glibc-build/math:/glibc-build/elf:/glibc-build/dlfcn:/glibc- build/nss:/glibc-build/nis:/glibc-build/rt:/glibc-build/resolv:/glibc-build/crypt:/glibc-build/nptl /glibc-build/libc.so.6/glibc -build/libc_nonshared.a -Wl, - по мере необходимости /glibc-build/elf/ld.so -Wl, - no-as-needed -lgcc gcc --print-file-name=crtendS.o /glibc-build/csu/crtn.o

я получаю 2 страниц ссылающихся вопросов

/glibc-build/iconv/iconvconfig.o: в функции more_help': iconvconfig.c:(.text+0x12e): undefined reference to __tsan_func_entry. iconvconfig.c :(текст + 0x136): неопределенная ссылка на __tsan_write8' iconvconfig.c:(.text+0x150): undefined reference to __tsan_func_exit ' iconvconfig.c :(текст + 0x1cc): неопределенная ссылка на __tsan_read8' /glibc-build/iconv/iconvconfig.o: In function alias_compare ': iconvconfig.c :(. текст + 0x226): неопределенная ссылка на __tsan_func_entry' iconvconfig.c:(.text+0x233): undefined reference to __tsan_read1. iconvconfig.c :(текст + 0x246): неопределенная ссылка на __tsan_read8' iconvconfig.c:(.text+0x25d): undefined reference to __tsan_read1' iconvconfig.c :(текст + 0x26e):.. Неопределенная ссылку на __tsan_read8' iconvconfig.c:(.text+0x282): undefined reference to __tsan_func_exit» iconvconfig.c :(текст + 0x2b4) не определена ссылка на __asan_report_load8' iconvconfig.c:(.text+0x2b9): undefined reference to __asan_report_load8' /glibc-build/iconv/iconvconfig.o: в функции module_compare': iconvconfig.c:(.text+0x2fb): undefined reference to __tsan_func_entry» iconvconfig.c :(текст + 0x308):.. неопределенная ссылка на __tsan_read1' iconvconfig.c:(.text+0x326): undefined reference to __tsan_read8' iconvconfig.c :(текст + 0x337): неопределенная ссылка на __tsan_read1' iconvconfig.c:(.text+0x34a): undefined reference to __tsan_read8 ' iconvconfig.c :(текст + 0x36f): неопределенная ссылка на __tsan_func_exit' iconvconfig.c:(.text+0x3a6): undefined reference to __asan_report_load8' iconvconfig.c :(. Text + 0x3ab): undefined re ference to __asan_report_load8' /glibc-build/iconv/iconvconfig.o: In function name_compare ':

после 2 недель попытки получить его, чтобы скомпилировать каждый возможный способ, которым я немного устал. Любые идеи, пожалуйста?

Emma

ответ

1

Немного поздно, но, надеюсь, полезно.

Символы с цзан и асаном в их названии связаны с проектом address sanitizer, который предоставляет LLVM clang и gcc инструменты для обнаружения и представления целого ряда проблем, связанных с незаконным доступом к памяти.

Для их использования вы должны установить инструменты и библиотеки, использовать правильные версии компиляторов и правильные комбинации флагов во время компиляции и компоновки в зависимости от вашей версии.

По моему опыту documentation является настолько полезным, и тема довольно продвинутая. В моем проекте, над которым у меня есть полный контроль, я в конечном итоге отключил все, кроме одного параметра командной строки -fsanitize=address, вместе с рекомендуемым -fno-omit-frame-pointer для компиляции и ссылки (gcc 4.8 на x64 ubuntu 14.04LTS).

Поскольку вы пытаетесь построить существующий проект, вы находитесь во власти своих настроек. Я бы посмотрел документы для этого проекта и попытался определить рекомендуемые версии инструментов компилятора и дезинфицирующего средства оттуда или некоторые параметры конфигурации, чтобы отключить его, если вам все равно.