我在CentOS 5.7系統上運行。rpmbuild:我如何使用rpmbuild告訴autoconf或配置禁用一個標誌?
我從別人那裏下載了一個源碼包和一個.spec文件。我試圖使用vanilla命令從源代碼構建RPM,如:
% rpmbuild -ba ~/rpmbuild/SPECS/foo.spec
...
Configuration summary:
======================
Host type................: x86_64-redhat-linux-gnu
CC.......................: gcc
CFLAGS...................: -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -Werror
Package..................: sudosh2
Version..................: 1.0.4
Installation prefix......: /usr
Man directory............: /usr/share/man
sysconfdir...............: /etc
recording input..........: no
但是,此構建失敗。該代碼有點草率,正在產生一些警告。該工具鏈的某些部分啓用了-Werror
標誌,這使得「all warnings into errors」。因此,構建失敗,出現錯誤:
gcc -DHAVE_CONFIG_H -I. -I.. -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -Werror -MT parse.o -MD -MP -MF .deps/parse.Tpo -c -o parse.o parse.c
cc1: warnings being treated as errors
sudosh.c: In function 'main':
sudosh.c:486: warning: unused variable 'written'
sudosh.c:112: warning: unused variable 'found'
cc1: warnings being treated as errors
parse.c: In function 'parse':
parse.c:20: warning: unused variable 'y'
parse.c:14: warning: unused variable 'opt'
parse.c:14: warning: unused variable 'cmt'
parse.c:14: warning: unused variable 'arg'
parse.c:10: warning: unused variable 'i'
parse.c:10: warning: unused variable 'line_number'
make[2]: *** [sudosh.o] Error 1
我知道正確的解決方法就是筆者修復代碼,但我想解決這個問題,在短期內。我需要一個工作RPM。
它看起來像./configure
或autoconf
正在自動添加-Werror
標誌。我如何禁用我的構建的-Werror
標誌,而不是自己編輯Makefile?
響應@ pwan的答案更新:
代表.spec文件是非常通用的,不指定任何特殊標誌:
%build
%configure \
--program-prefix="%{?_program_prefix}"
%{__make} %{?_smp_mflags}
我發現這是由'-Werror'標誌而不是'-Wall'標誌造成的。更新了我的答案。 –