Проблемы компиляции coreutils-8.5 на Solaris 5.10 на платформе Intel

У меня возникают проблемы при компиляции coreutils-8.5 на Solaris 5.10 на платформе Intel с использованием cc,

Во-первых, у меня была следующая ошибка во время ./configure:

checking whether <wchar.h> uses 'inline' correctly... no
configure: error: <wchar.h> cannot be used with this compiler (/tool/sunstudio12.1/bin/cc -xc99=all -g  -D_REENTRANT).

Это похоже на проблему в этом вопросе. Решение было редактировать configure и заменить ссылку -xc99=all в -xc99=all,no_lib,

Это позволило завершить настройку.

Потом я побежал /usr/sfw/bin/gmake и это продолжалось, пока я не получил следующее сообщение:

Making all in src
gmake[2]: Entering directory `/home/peterp/src/coreutils-8.5/src'
gmake  all-am
gmake[3]: Entering directory `/home/peterp/src/coreutils-8.5/src'
  CCLD     chroot
Undefined                       first referenced
 symbol                             in file
eaccess                             ../lib/libcoreutils.a(euidaccess.o)
ld: fatal: Symbol referencing errors. No output written to chroot

Что может вызвать эту проблему?

PS Я собирал только coreutils, потому что хотел цвет ls,

2 ответа

Решение

Я нашел этот пост, который подразумевал, что может быть пропавший -lgen параметр, необходимый для libcoreutils.a связывать.

Я редактировал src/Makefile и изменил строку:

LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@

чтобы:

LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -lgen -o $@

и работает gmake снова прошел успешно до завершения.

Вы также можете скомпилировать (ну, установить) одну отдельную программу, если хотите. Вот как я просто устанавливаю "ginstall" самостоятельно:

cd /var/tmp
rm -rf /coreutils coreutils-8.5
untgz /usr/local/src/gnu/coreutils-8.5.tar.gz
cd coreutils-8.5
setenv LDFLAGS -lgen
./configure --prefix=/usr/local \
            --with-libiconv-prefix=/usr/local \
            --with-libintl-prefix=/usr/local
gmake
cd /var/tmp/coreutils-8.5/src
gmake install OPTIONAL_BIN_PROGS="" bin_PROGRAMS=ginstall pkglibdir=""
cd /var/tmp/coreutils-8.5/man
gmake install MAN=install.1
mv /usr/local/bin/install /usr/local/bin/ginstall
mv /usr/local/share/man/man1/install.1 /usr/local/share/man/man1/ginstall.1
Другие вопросы по тегам