Bug 1894

Summary: Не собирается kernel24-2.4.20-alt0.8.src.rpm
Product: Sisyphus Reporter: vasy <vasy>
Component: kernel24-upAssignee: Peter 'Nidd' Novodvorsky <nidd>
Status: CLOSED FIXED QA Contact:
Severity: critical    
Priority: P4    
Version: unstable   
Hardware: all   
OS: Linux   

Description vasy 2003-01-10 19:21:27 MSK
Говорит:
make -C aic7xxx modules
make[3]: Entering directory `/home/vasy/RPM/BUILD/linux-2.4.20/drivers/scsi/aic7xxx\'
make -C aicasm
make[4]: Entering directory `/home/vasy/RPM/BUILD/linux-2.4.20/drivers/scsi/aic7xxx/aicasm\'
*** Install db development libraries
yacc -d -b aicasm_gram aicasm_gram.y
mv aicasm_gram.tab.c aicasm_gram.c
mv aicasm_gram.tab.h aicasm_gram.h
yacc -d -b aicasm_macro_gram -p mm aicasm_macro_gram.y
mv aicasm_macro_gram.tab.c aicasm_macro_gram.c
mv aicasm_macro_gram.tab.h aicasm_macro_gram.h
lex  -oaicasm_scan.c aicasm_scan.l
lex  -Pmm -oaicasm_macro_scan.c aicasm_macro_scan.l
gcc -I/usr/include -I. -ldb1 -ldb_cxx -lstdc++ aicasm.c aicasm_symbol.c aicasm_gram.c aicasm_macro_gr
am.c aicasm_scan.c aicasm_macro_scan.c -o aicasm
aicasm.c:291:1: warning: multi-line string literals are deprecated
aicasm.c:338:1: warning: multi-line string literals are deprecated
aicasm.c:377:1: warning: multi-line string literals are deprecated
aicasm.c:392:1: warning: multi-line string literals are deprecated
aicasm.c:412:1: warning: multi-line string literals are deprecated
aicasm.c:428:1: warning: multi-line string literals are deprecated
aicasm_symbol.c:47:19: aicdb.h: No such file or directory
aicasm_symbol.c:61: parse error before \'*\' token
aicasm_symbol.c:61: warning: data definition has no type or storage class
aicasm_symbol.c: In function `symbol_delete\':
aicasm_symbol.c:83: `DBT\' undeclared (first use in this function)
aicasm_symbol.c:83: (Each undeclared identifier is reported only once
aicasm_symbol.c:83: for each function it appears in.)
aicasm_symbol.c:83: parse error before \&quot;key\&quot;
aicasm_symbol.c:85: `key\' undeclared (first use in this function)
aicasm_symbol.c:87: request for member `del\' in something not a structure or union
aicasm_symbol.c: In function `symtable_open\':
aicasm_symbol.c:128: `DB_HASH\' undeclared (first use in this function)
aicasm_symbol.c:129: warning: assignment makes pointer from integer without a cast
aicasm_symbol.c: In function `symtable_close\':
aicasm_symbol.c:142: `DBT\' undeclared (first use in this function)
aicasm_symbol.c:142: parse error before \&quot;key\&quot;
aicasm_symbol.c:145: request for member `seq\' in something not a structure or union
aicasm_symbol.c:145: `key\' undeclared (first use in this function)
aicasm_symbol.c:145: `data\' undeclared (first use in this function)
aicasm_symbol.c:145: `R_FIRST\' undeclared (first use in this function)
aicasm_symbol.c:151: request for member `close\' in something not a structure or union
aicasm_symbol.c: In function `symtable_get\':
aicasm_symbol.c:163: `DBT\' undeclared (first use in this function)
aicasm_symbol.c:163: parse error before \&quot;key\&quot;
aicasm_symbol.c:167: `key\' undeclared (first use in this function)
aicasm_symbol.c:170: request for member `get\' in something not a structure or union
aicasm_symbol.c:170: `data\' undeclared (first use in this function)
aicasm_symbol.c:182: request for member `put\' in something not a structure or union
aicasm_symbol.c: In function `symtable_dump\':
aicasm_symbol.c:333: `DBT\' undeclared (first use in this function)
aicasm_symbol.c:333: parse error before \&quot;key\&quot;
aicasm_symbol.c:335: `R_FIRST\' undeclared (first use in this function)
aicasm_symbol.c:337: request for member `seq\' in something not a structure or union
aicasm_symbol.c:337: `key\' undeclared (first use in this function)
aicasm_symbol.c:337: `data\' undeclared (first use in this function)
aicasm_symbol.c:372: `R_NEXT\' undeclared (first use in this function)
aicasm_symbol.c:407:1: warning: multi-line string literals are deprecated
aicasm_gram.y: In function `format_1_instr\':
aicasm_gram.y:1590: warning: deprecated use of label at end of compound statement
make[4]: *** [aicasm] Error 1
make[4]: Leaving directory `/home/vasy/RPM/BUILD/linux-2.4.20/drivers/scsi/aic7xxx/aicasm\'
make[3]: *** [aicasm/aicasm] Error 2
make[3]: Leaving directory `/home/vasy/RPM/BUILD/linux-2.4.20/drivers/scsi/aic7xxx\'
make[2]: *** [_modsubdir_aic7xxx] Error 2
make[2]: Leaving directory `/home/vasy/RPM/BUILD/linux-2.4.20/drivers/scsi\'
make[1]: *** [_modsubdir_scsi] Error 2
make[1]: Leaving directory `/home/vasy/RPM/BUILD/linux-2.4.20/drivers\'
make: *** [_mod_drivers] Error 2
ошибка: Неверный код возврата из /var/tmp/rpm-tmp.40043 (%build)
Ошибки сборки пакетов:    Неверный код возврата из /var/tmp/rpm-tmp.40043 (%build)



---

---
Пока решил проблему так:
ln -s /usr/include/db4 /usr/include/db
Comment 1 Sergey Vlasov 2003-01-10 19:55:17 MSK
Так, хорошо, что вспомнил.

Сейчас там в drivers/scsi/aic7xxx/aicasm/Makefile следующее:

AICASM_CFLAGS:= -I/usr/include -I. -ldb1 -ldb_cxx -lstdc++
...
aicdb.h:
	@if [ -e \&quot;/usr/include/db3/db_185.h\&quot; ]; then		\\
		echo \&quot;#include &lt;db3/db_185.h&gt;\&quot; &gt; aicdb.h;	\\
	 elif [ -e \&quot;/usr/include/db2/db_185.h\&quot; ]; then		\\
		echo \&quot;#include &lt;db2/db_185.h&gt;\&quot; &gt; aicdb.h;	\\
	 elif [ -e \&quot;/usr/include/db1/db_185.h\&quot; ]; then		\\
		echo \&quot;#include &lt;db1/db_185.h&gt;\&quot; &gt; aicdb.h;	\\
	 elif [ -e \&quot;/usr/include/db/db_185.h\&quot; ]; then		\\
		echo \&quot;#include &lt;db/db_185.h&gt;\&quot; &gt; aicdb.h;	\\
	 elif [ -e \&quot;/usr/include/db_185.h\&quot; ]; then		\\
		echo \&quot;#include &lt;db_185.h&gt;\&quot; &gt; aicdb.h;		\\
	 else							\\
		echo \&quot;*** Install db development libraries\&quot;;	\\
	 fi

Вопрос: какая версия Berkeley DB нужна этому aicasm? Подозреваю, что хватит libdb1.

Если это так, следует соответствующим патчем выкинуть из Makefile все варианты путей к db185.h, кроме нужного - /usr/include/db1/db.h, и прописать соответствующую версию в AICASM_CFLAGS, после чего прописать libdb1-devel в BuildRequires. Путь /usr/include/db1/db_185.h неправильный - на самом деле там просто db.h (имя db_185.h используется только в следующих версиях). Никаких -ldb_cxx и тем более -lstdc++ в AICASM_CFLAGS не нужно - я подозреваю, что это просто очень кривой workaround для сборки при несоответствии версий библиотеки (-ldb1) и заголовка (одного из найденных db_185.h). BuildRequires: libdb4_cxx при этом скорее всего должен уйти (C++, к сожалению, используется еще где-то).
Comment 2 Sergey Vlasov 2003-01-10 19:55:17 MSK
Так, хорошо, что вспомнил.

Сейчас там в drivers/scsi/aic7xxx/aicasm/Makefile следующее:

AICASM_CFLAGS:= -I/usr/include -I. -ldb1 -ldb_cxx -lstdc++
...
aicdb.h:
	@if [ -e \&quot;/usr/include/db3/db_185.h\&quot; ]; then		\\
		echo \&quot;#include &lt;db3/db_185.h&gt;\&quot; &gt; aicdb.h;	\\
	 elif [ -e \&quot;/usr/include/db2/db_185.h\&quot; ]; then		\\
		echo \&quot;#include &lt;db2/db_185.h&gt;\&quot; &gt; aicdb.h;	\\
	 elif [ -e \&quot;/usr/include/db1/db_185.h\&quot; ]; then		\\
		echo \&quot;#include &lt;db1/db_185.h&gt;\&quot; &gt; aicdb.h;	\\
	 elif [ -e \&quot;/usr/include/db/db_185.h\&quot; ]; then		\\
		echo \&quot;#include &lt;db/db_185.h&gt;\&quot; &gt; aicdb.h;	\\
	 elif [ -e \&quot;/usr/include/db_185.h\&quot; ]; then		\\
		echo \&quot;#include &lt;db_185.h&gt;\&quot; &gt; aicdb.h;		\\
	 else							\\
		echo \&quot;*** Install db development libraries\&quot;;	\\
	 fi

Вопрос: какая версия Berkeley DB нужна этому aicasm? Подозреваю, что хватит libdb1.

Если это так, следует соответствующим патчем выкинуть из Makefile все варианты путей к db185.h, кроме нужного - /usr/include/db1/db.h, и прописать соответствующую версию в AICASM_CFLAGS, после чего прописать libdb1-devel в BuildRequires. Путь /usr/include/db1/db_185.h неправильный - на самом деле там просто db.h (имя db_185.h используется только в следующих версиях). Никаких -ldb_cxx и тем более -lstdc++ в AICASM_CFLAGS не нужно - я подозреваю, что это просто очень кривой workaround для сборки при несоответствии версий библиотеки (-ldb1) и заголовка (одного из найденных db_185.h). BuildRequires: libdb4_cxx при этом скорее всего должен уйти (C++, к сожалению, используется еще где-то).
Comment 3 Michael Shigorin 2003-01-27 23:50:50 MSK
оно не дубликат с еще одной багой на тему libdb2-devel? (#1498)

edited on: 27-01 23:52
Comment 4 Michael Shigorin 2003-01-27 23:50:50 MSK
оно не дубликат с еще одной багой на тему libdb2-devel? (#1498)

edited on: 27-01 23:52
Comment 5 Anton Farygin 2003-02-06 20:59:00 MSK
fixed (kernel24-2.4.20-alt1)
Comment 6 Anton Farygin 2003-02-06 20:59:00 MSK
fixed (kernel24-2.4.20-alt1)