x86_64なCentOS 5.5で、pkgsrcのparallel/sge をbmake installしてみたら、少々エラーが出たので、自分用にメモしておく。
Makefileの先頭部分はこんな感じだった。しばらくしたら修正されるかも?
# $NetBSD: Makefile,v 1.40 2011/07/05 01:30:52 dholland Exp $
#
PKGNAME= sge-6.2.2.1
DISTNAME= ge-V62u2_1_TAG-src
PKGREVISION= 4
CATEGORIES= parallel sysutils
MASTER_SITES= http://gridengine.sunsource.net/files/documents/7/197/
☆
bmakeがはじまってそうそうに、SGE_ARCHか何かが、Makefileに書いてあるものと、推定されたものとが、一致しない、みたいなことを言われたけど、とりあえずMakefileを書き換えてしまった。
たしか、Makefileのほうではx86とか書いてあるけど、推定されるのはamd64になるとか、そんな感じ。
☆
最初に出たコンパイルエラーはこんな感じ。
gcc -DSGE_ARCH_STRING=\"lx26-amd64\" -O3 -Wall -Werror -Wstrict-prototypes -DUSE_POLL -DLINUX -DLINUXAMD64 -DLINUXAMD64_26 -D_GNU_SOURCE -DGETHOSTBYNAME_R6 -DGETHOSTBYADDR_R8 -DLOAD_OPENSSL -I/usr/pkg/include/db4 -DTARGET_64BIT -DSPOOLING_dynamic -DSECURE -I/usr/pkg/include -Wno-strict-aliasing -DNO_JNI -DCOMPILE_DC -D__SGE_COMPILE_WITH_GETTEXT__ -D__SGE_NO_USERMAPPING__ -I../common -I../libs -I../libs/uti -I../libs/juti -I../libs/gdi -I../libs/japi -I../libs/sgeobj -I../libs/cull -I../libs/rmon -I../libs/comm -I../libs/comm/lists -I../libs/sched -I../libs/evc -I../libs/evm -I../libs/mir -I../libs/lck -I../daemons/common -I../daemons/qmaster -I../daemons/execd -I../daemons/schedd -I../clients/common -I. -Wno-strict-prototypes -fPIC -ULOAD_OPENSSL -c ../libs/comm/cl_ssl_framework.c -o cl_ssl_framework_static.o
cc1: warnings being treated as errors
../libs/comm/cl_ssl_framework.c: In function 'cl_com_ssl_build_symbol_table':
../libs/comm/cl_ssl_framework.c:1850: warning: assignment from incompatible pointer type
../libs/comm/cl_ssl_framework.c:1851: warning: assignment from incompatible pointer type
../libs/comm/cl_ssl_framework.c:1930: warning: assignment from incompatible pointer type
../libs/comm/cl_ssl_framework.c:1931: warning: assignment from incompatible pointer type
../libs/comm/cl_ssl_framework.c:1932: warning: assignment from incompatible pointer type
make: *** [cl_ssl_framework_static.o] Error 1
not done
*** Error code 1
Stop.
bmake: stopped in /usr/pkgsrc/parallel/sge
*** Error code 1
Stop.
bmake: stopped in /usr/pkgsrc/parallel/sge
キャストが足りないだけ。同じソースファイル中で検索してみたら、似たような代入をしていて、キチンとキャストしてるところがあったので、同じものをエラーしたところに追加しただけ。
cl_com_ssl_func__SSL_CTX_new = (SSL_CTX* (*)(const SSL_METHOD *meth))SSL_CTX_new;
cl_com_ssl_func__SSLv23_method = (const SSL_METHOD* (*)(void))SSLv23_method;
cl_com_ssl_func__X509_cmp_current_time = (int (*)(const ASN1_TIME *s))X509_cmp_current_time;
cl_com_ssl_func__ASN1_INTEGER_cmp = (int (*)(const ASN1_INTEGER *x, const ASN1_INTEGER *y))ASN1_INTEGER_cmp;
cl_com_ssl_func__ASN1_INTEGER_get = (long (*)(const ASN1_INTEGER *a))ASN1_INTEGER_get;
☆
次のエラーは
./utilbin/authuser.c -o authuser.o
../utilbin/authuser.c:74:31: error: security/pam_appl.h: No such file or directory
cc1: warnings being treated as errors
たしかに、security/pam_appl.hというファイルが無い。
パッケージpam-devel.x86_64をインストールすればよさそう、と直感で思って、
yum install pam-devel.x86_64
したら、それで当たりだった。
☆
これだけでbmake installまで、できたかな。
動作確認はまったくしてない。