#git #gcc #gnu-make #solaris
Вопрос:
Я пытаюсь создать git из исходного кода в Solaris 9 Sparc. Я использую цепочку инструментов с открытым исходным кодом (gcc и make). Я делаю :
make prefix=/usr/local all doc info
Я получаю ошибку в make :
/bin/sh: git: not found
Makefile:2765: *** unterminated variable reference. Stop.
Пакеты, которые я установил для сборки, являются :
-rw-r--r-- 1 dlsa staff 4230656 Sep 2 14:41 atk-1.18.0-sol9-sparc-local
-rw-r--r-- 1 dlsa staff 8043520 Sep 2 14:44 cairo-1.4.10-sol9-sparc-local
-rw-r--r-- 1 dlsa staff 4482048 Sep 26 15:00 curl-7.23.1-sol9-sparc-local
-rw-r--r-- 1 dlsa staff 7905280 Sep 4 07:58 cvs-1.12.13-sol9-sparc-local
-rw-r--r-- 1 dlsa staff 2384384 Sep 3 11:04 dbus-1.0.2-sol9-sparc-local
-rw-r--r-- 1 dlsa staff 122967552 Sep 2 13:51 emacs-23.3-sol9-sparc-local
-rw-r--r-- 1 dlsa staff 903168 Sep 3 11:19 expat-2.0.1-sol9-sparc-local
-rw-r--r-- 1 dlsa staff 7535104 Sep 3 11:06 fontconfig-2.8.0-sol9-sparc-local
-rw-r--r-- 1 dlsa staff 4377600 Sep 3 11:13 freetype-2.4.2-sol9-sparc-local
-rwxr-xr-x 1 dlsa staff 152377856 Sep 1 07:44 gcc-3.4.6-sol9-sparc-local
-rw-r--r-- 1 dlsa staff 232949760 Sep 26 14:38 git-sources.tar
-rw-r--r-- 1 dlsa staff 44610560 Sep 3 10:49 glib-2.25.13-sol9-sparc-local
-rw-r--r-- 1 dlsa staff 93400064 Sep 2 14:32 gtk -2.12.0-sol9-sparc-local
-rw-r--r-- 1 dlsa staff 1273344 Sep 3 10:55 jpeg-7-sol9-sparc-local
-rw-r--r-- 1 dlsa staff 1039360 Sep 3 11:18 libcroco-0.6.1-sol9-sparc-local
-rwxr-xr-x 1 dlsa staff 6132736 Sep 1 07:44 libgcc-3.4.6-sol9-sparc-local
-rw-r--r-- 1 dlsa staff 3074560 Sep 3 11:16 libgsf-1.14.7-sol9-sparc-local
-rw-r--r-- 1 dlsa staff 2579968 Sep 2 12:49 libiconv-1.13.1-sol9-sparc-local
-rw-r--r-- 1 dlsa staff 882176 Sep 2 14:00 libintl-3.4.0-sol9-sparc-local
-rw-r--r-- 1 dlsa staff 1184768 Sep 3 10:58 libpng-1.2.8-sol9-sparc-local
-rw-r--r-- 1 dlsa staff 1329664 Sep 3 11:02 librsvg-2.22.3-sol9-sparc-local
-rw-r--r-- 1 dlsa staff 1347584 Sep 3 11:00 libungif-4.1.4-sol9-sparc-local
-rwxr-xr-x 1 dlsa staff 2967552 Sep 1 07:44 make-3.82-sol9-sparc-local
-rw-r--r-- 1 dlsa staff 8839168 Sep 2 14:44 pango-1.18.2-sol9-sparc-local
-rw-r--r-- 1 dlsa staff 1172480 Sep 2 14:52 pygobject-2.14.0-sol9-sparc-local
-rw-r--r-- 1 dlsa staff 139776 Sep 3 11:10 xrender-0.8.3-sol9-sparc-local
Мне кажется, что моя цепочка инструментов устарела. Что я могу сделать, чтобы построить это ? Используйте компилятор Solaris 9 cc и сделайте ?
Комментарии:
1. Ну, а что происходит в файле Makefile около строки 2765?
2. Прошло много времени с тех пор , как я использовал Solaris, но тогда GNU make был установлен как
gmake
, так что вам нужно запускатьgmake
, а неmake
. Не уверен, что это все еще так, но это стоит проверить.3. TRACK_CFLAGS = $(куб. см):$(замест ‘,'»,$(ALL_CFLAGS)):$(USE_GETTEXT_SCHEME) ГИТ-значение CFLAGS: сил @флаги=’$(TRACK_CFLAGS)’; # вот если тест X»$$флагами» != х»
cat GIT-CFLAGS 2>/dev/null
» ; затем Эхо >amp;2 «* новые флаги сборки»; » Эхо » «$$флагами» >ГИТ-значение CFLAGS; Fi интернет4. Таким образом, мне удалось преодолеть эту ошибку, указав NO_CURL в команде make. Он прекрасно скомпилировал множество файлов (мне также пришлось взять config.mak.in создайте копию с именем config.mak и установите gcc в качестве компилятора c). Теперь я столкнулся с другой проблемой : при компиляции regex.o требуется заголовок (stdint.h), который соответствует стандарту C99. Я думаю, что Solaris 9 gcc был до этого. Есть ли какой-нибудь способ обойти это ?
5. Заголовки поступают из операционной системы. Solaris 10-это первая версия Solaris с поддержкой C99. Солярису 9 почти 20 лет — разве вы не можете использовать более новую версию ОС?
Ответ №1:
необходимые пакеты, отличные от gnu make и gcc : я установил их из набора пакетов sunfreeware.
binutils
openssl I had to build openssl from source because my arch is different
libcurl
libiconv
tcl
tk
в файл gc.c вставьте следующее :
#define SCNuMAX "lu"
создайте файл конфигурации makefile :
конфигурация git Makefile, включенная в основной файл Makefile
@configure_input@
CC = /usr/local/bin/gcc
CFLAGS =
CPPFLAGS =
LDFLAGS = -L/usr/local/lib
AR = /usr/local/bin/ar
TAR = /usr/bin/tar
DIFF = /usr/bin/diff
PACKAGE_TARNAME = @PACKAGE_TARNAME@
#INSTALL = @INSTALL@ # needs install-sh or install.sh in sources
prefix = /usr/local
exec_prefix = /usr/local/libexec
bindir = /usr/local/bin
gitexecdir = /usr/local/libexec/git-core
datarootdir = /usr/local/datadir
template_dir = /usr/local/datadir/git-core/templates
sysconfdir =/usr/local/sysconfig
docdir = /usr/local/doc
mandir = /usr/local/man
htmldir = /usr/local/html
У меня были проблемы с libcurl, поэтому я включил в командную строку make : NO_CURL=1
У меня были проблемы с libiconv, поэтому я включил в командную строку make : NO_ICONV=1