Hi Timo,
After some googling on this problem, I found that adding `#include
' before other includes in ./src/lib/restrict-access.c. Done.
However, the rc12 doesn't seem to have the line before the `#include
rpcgen -h /usr/include/rpcsvc/rquota.x >
rquota.h
Here it generates the rquota.h
In file included from quota-fs.c:28: rquota.h:8: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'xdr_getquota_args' rquota.h:13: error: expected specifier-qualifier-list before 'bool_t' rquota.h:24: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'xdr_rquota' rquota.h:32: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'xdr_gqr_status' rquota.h:42: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'xdr_getquota_rslt'
But for some reason it can't use it. I don't really know why. I suppose it's missing some include file? Does it include
itself? If not, does it help to include it?
The rquota.h doesn't include
gcc -DHAVE_CONFIG_H -I. -I../../.. -I../../../src/lib -I../../../src/lib-dict - I../../../src/lib-index -I../../../src/lib-mail -I../../../src/lib-storage -I../ ../../src/lib-storage/index -I../../../src/lib-storage/index/maildir -std=gnu99 -g -O2 -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wch ar-subscripts -Wformat=2 -Wbad-function-cast -Wstrict-aliasing=2 -MT rquota_xdr. lo -MD -MP -MF .deps/rquota_xdr.Tpo -c rquota_xdr.c -DPIC -o .libs/rquota_xdr.o rquota_xdr.c:1:17: warning: extra tokens at end of #include directive In file included from rquota_xdr.c:2: /usr/include/rpcsvc/rquota.h:49: error: expected specifier-qualifier-list before 'bool_t' rquota_xdr.c: In function 'xdr_getquota_args': rquota_xdr.c:8: error: expected declaration specifiers before 'getquota_args' rquota_xdr.c:9: warning: type of 'objp' defaults to 'int' rquota_xdr.c:9: error: argument 'objp' doesn't match prototype /usr/include/rpcsvc/rquota.h:73: error: prototype declaration rquota_xdr.c:10: error: invalid type argument of '->' rquota_xdr.c:10: error: 'RQ_PATHLEN' undeclared (first use in this function) rquota_xdr.c:10: error: (Each undeclared identifier is reported only once rquota_xdr.c:10: error: for each function it appears in.) rquota_xdr.c:13: error: invalid type argument of '->' rquota_xdr.c: In function 'xdr_rquota': rquota_xdr.c:25: error: expected declaration specifiers before 'rquota' rquota_xdr.c:26: warning: type of 'objp' defaults to 'int' rquota_xdr.c:26: error: argument 'objp' doesn't match prototype /usr/include/rpcsvc/rquota.h:75: error: prototype declaration rquota_xdr.c:27: error: invalid type argument of '->' rquota_xdr.c:30: error: invalid type argument of '->' rquota_xdr.c:33: error: invalid type argument of '->' rquota_xdr.c:36: error: invalid type argument of '->' rquota_xdr.c:39: error: invalid type argument of '->' rquota_xdr.c:42: error: invalid type argument of '->' rquota_xdr.c:45: error: invalid type argument of '->' rquota_xdr.c:48: error: invalid type argument of '->' rquota_xdr.c:51: error: invalid type argument of '->' rquota_xdr.c:54: error: invalid type argument of '->' rquota_xdr.c: At top level: rquota_xdr.c:65: warning: no previous prototype for 'xdr_gqr_status' rquota_xdr.c: In function 'xdr_gqr_status': rquota_xdr.c:66: error: expected declaration specifiers before 'gqr_status' rquota_xdr.c:67: warning: type of 'objp' defaults to 'int' rquota_xdr.c: In function 'xdr_getquota_rslt': rquota_xdr.c:80: error: expected declaration specifiers before 'getquota_rslt' rquota_xdr.c:81: warning: type of 'objp' defaults to 'int' rquota_xdr.c:81: error: argument 'objp' doesn't match prototype /usr/include/rpcsvc/rquota.h:74: error: prototype declaration rquota_xdr.c:82: error: invalid type argument of '->' rquota_xdr.c:85: error: invalid type argument of '->' rquota_xdr.c:87: error: invalid type argument of '->' make: 1254-004 The error code from the last command is 1.
I have googled and found a IBM document page: http://publib.boulder.ibm.com/infocenter/pseries/v5r3/index.jsp?topic=/com.i... (I clicked Programming in RPC' link and referred to the
Compiling and Linking RPC Programs' section.)
According to the page, I set the CFLAGS to `CFLAGS=-D_BSD -DBSD_INCLUDES', but it threw other errors:
gcc -DHAVE_CONFIG_H -I. -I../../.. -I../../../src/lib -I../../../src/lib-dict - I../../../src/lib-index -I../../../src/lib-mail -I../../../src/lib-storage -I../ ../../src/lib-storage/index -I../../../src/lib-storage/index/maildir -std=gnu99 -g -O2 -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wch ar-subscripts -Wformat=2 -Wbad-function-cast -Wstrict-aliasing=2 -D_BSD -DBSD_IN CLUDES -MT quota.lo -MD -MP -MF .deps/quota.Tpo -c quota.c -DPIC -o .libs/quota .o quota.c: In function 'quota_warning_execute': quota.c:705: error: request for member 'w_status' in something not a structure o r union quota.c:705: error: request for member 'w_status' in something not a structure o r union quota.c:706: error: request for member 'w_status' in something not a structure o r union quota.c:706: error: request for member 'w_status' in something not a structure o r union quota.c:706: error: request for member 'w_status' in something not a structure o r union quota.c:707: error: request for member 'w_status' in something not a structure o <Snip/> make: 1254-004 The error code from the last command is 1.
Again, I googled and added #include <sys/m_wait.h>' after
#include
By the way, I succeeded in making and installing rc12 on AIX with gcc, by brutally modifying the `configure' script like the following (It is to disable RQUOTA option forcefully):
have_rquota=no if test -f /usr/include/rpcsvc/rquota.x && test -n "$RPCGEN"; then
cat >>confdefs.h <<\_ACEOF /*#define HAVE_RQUOTA*/ _ACEOF
have_rquota=no fi
Anyway, there must be something regarding RPC or NFS on AIX, but I have no idea.
Regards,
Woonsan