Поддержка glibc для oprofile
Я хотел бы получить некоторые разъяснения по следующей проблеме, с которой я сталкиваюсь при сборке oprofile
,
Я использую виртуальную машину со следующими характеристиками:
3.19.0-25-generiC#26~14.04.1-Ubuntu SMP пт 24 июля 21:16:20 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
Я использую кросс-компилятор crosstools-arm-gcc-5.3-linux-4.1-glibc-2.22-binutils-2.25
строить oprofile 0.9.9
которая завершилась с ошибкой oprofile_1.2.0
):
проверка bfd_fdopenr в -lbfd... нет
configure: error: библиотека bfd не найдена
make: *** [conditional_build] Ошибка 1 "
На той же машине, если я скомпилирую crosstools-arm-gcc-4.6-linux-3.4-uclibc-0.9.32-binutils-2.21-NPTL
, oprofile
строится успешно.
В обеих компиляциях связывание уже скомпилированных статических файлов библиотеки, созданных для соответствующих им имен хостов.
Для linux_3.4
./configure --host=arm-unknown-linux \
--prefix=/home/xxxx/lib/oprofile \
--with-kernel=/home/xxx/kernel/linux-3.4rt/ \
LDFLAGS="-static -L/home/xxx/gpl/libs/popt-1.16/.libs -L/home/xxx/gpl/apps/oprofile/binutils-2.29/libiberty -L/home/xxx/gpl/apps/oprofile/binutils-2.29/bfd/.libs -L/home/xxx/gpl/libs/zlib-1.2.7"; \
Для Linux 4.1
./configure --host=arm-buildroot-linux-uclibcgnueabi \
--prefix=/home/xxxx/lib/oprofile \
LDFLAGS="-static -L/home/xxx/gpl/libs/popt-1.16/.libs -L/home/xxx/gpl/apps/oprofile/binutils-2.29/libiberty -L/home/xxx/gpl/apps/oprofile/binutils-2.29/bfd/.libs -L/home/xxx/gpl/libs/zlib-1.2.7"; \
Почему oprofile
не строится для glibc?
Я пытался обойти ./configure
Сценарий, удалив проверку для if test "x$ac_cv_lib_bfd_bfd_fdopenr" = x""yes; then...
и жестко запрограммирован, чтобы продолжить сборку.
Остановился со следующими ошибками:
/home/xxx/gpl/apps/oprofile/binutils-2.29/bfd/.libs/libbfd.a(bfd.o): In function `_bfd_default_error_handler':
/home/che21908/latest/oprofile-0.9.9/binutils-2.27/bfd/bfd.c:789: undefined reference to `__fputc_unlocked'
/home/xxx/gpl/apps/oprofile/binutils-2.29/bfd/.libs/libbfd.a(opncls.o): In function `bfd_fdopenr':
/home/che21908/latest/oprofile-0.9.9/binutils-2.27/bfd/opncls.c:339: undefined reference to `fcntl64'
/home/xxx/gpl/apps/oprofile/binutils-2.29/bfd/.libs/libbfd.a(elf32-arm.o): In function `elf32_arm_print_private_bfd_data':
/home/che21908/latest/oprofile-0.9.9/binutils-2.27/bfd/elf32-arm.c:13437: undefined reference to `__fputc_unlocked'
/home/xxx/gpl/apps/oprofile/binutils-2.29/bfd/.libs/libbfd.a(elf.o): In function `bfd_elf_print_symbol':
/home/che21908/latest/oprofile-0.9.9/binutils-2.27/bfd/elf.c:1872: undefined reference to `__fputc_unlocked'
/home/xxx/gpl/apps/oprofile/binutils-2.29/bfd/.libs/libbfd.a(elf.o): In function `print_segment_map':
/home/che21908/latest/oprofile-0.9.9/binutils-2.27/bfd/elf.c:4981: undefined reference to `__fputc_unlocked'
/home/xxx/gpl/apps/oprofile/binutils-2.29/bfd/.libs/libbfd.a(plugin.o): In function `message':
/home/che21908/latest/oprofile-0.9.9/binutils-2.27/bfd/plugin.c:119: undefined reference to `__fputc_unlocked'
/home/che21908/latest/oprofile-0.9.9/binutils-2.27/bfd/plugin.c:119: undefined reference to `__stdout'
/home/xxx/gpl/apps/oprofile/binutils-2.29/bfd/.libs/libbfd.a(bfdio.o): In function `close_on_exec':
latest/oprofile-0.9.9/binutils-2.27/bfd/bfdio.c:76: undefined reference to `fcntl64'
oprofile-0.9.9/binutils-2.27/bfd/bfdio.c:78: undefined reference to `fcntl64'
collect2: error: ld returned 1 exit status
Пожалуйста, помогите мне разобраться в этой проблеме и предоставьте ваши ценные комментарии.