Создание Git на Sparc Solaris 9

#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