IBCS module fails to compile on 2.1.35

David Williams (djw@smooth1.demon.co.uk)
Mon, 28 Apr 1997 01:43:31 +0100


I am trying to compile the latest IBCS module under a 2.1.35 kernel.

I get the following errors:-

set -e; for i in iBCSemul x286emul Tools; do \
test ! -d $i || \
{ make -C $i; }; done
make[1]: Entering directory `/djw/gz/ibcs/iBCSemul'
cc -D__KERNEL__=1 -DMODULE -D__NO_VERSION__ -I../include -Wall -Wstrict-
prototypes -O3 -fomit-frame-pointer -m486 -DSOCKSYS_MAJOR=30 -DEMU_SCO
-DEMU_ISC -DEMU_SVR4 -DEMU_BSD -DEMU_WYSE -DEMU_WYSEMP -DEMU_X286 -
DEMU_SPX -DEMU_XTI -DEMU_TLI_OPTMGMT -DEMU_BINFMT_AOUT -DEMU_BINFMT_COFF
-DEMU_BINFMT_XOUT -DEMU_BINFMT_OLDSCRIPT -DIBCS_TRACE -DVERBOSE_ERRORS -
DCOFF_TRACE -DELF_TRACE -DXOUT_DEBUG -c emulate.c
make[1]: Leaving directory `/djw/gz/ibcs/iBCSemul'
In file included from emulate.c:57:
../include/ibcs/ibcs.h:43: warning: function declaration isn't a
prototype
emulate.c: In function `iABI_emulate':
emulate.c:193: warning: implicit declaration of function `get_fs_long'
emulate.c: At top level:
emulate.c:475: `mod_use_count_' undeclared here (not in a function)
emulate.c:475: initializer element for `ibcs_exec_domain.module' is not
constant
emulate.c:484: `mod_use_count_' undeclared here (not in a function)
emulate.c:484: initializer element for `xnx_exec_domain.module' is not
constant
emulate.c:495: `mod_use_count_' undeclared here (not in a function)
emulate.c:495: initializer element for `isc_exec_domain.module' is not
constant
emulate.c:507: `mod_use_count_' undeclared here (not in a function)
emulate.c:507: initializer element for `bsd_exec_domain.module' is not
constant
emulate.c: In function `init_module':
emulate.c:517: warning: implicit declaration of function
`register_symtab'
make[1]: *** [emulate.o] Error 1
make: *** [all] Error 2

IF I add int mod_use_count_; near the top of the emulate.c file then I
get:-

In file included from emulate.c:57:
../include/ibcs/ibcs.h:43: warning: function declaration isn't a
prototype
emulate.c: In function `iABI_emulate':
emulate.c:193: warning: implicit declaration of function `get_fs_long'
emulate.c: At top level:
emulate.c:476: warning: initialization from incompatible pointer type
emulate.c:485: warning: initialization from incompatible pointer type
emulate.c:496: warning: initialization from incompatible pointer type
emulate.c:508: warning: initialization from incompatible pointer type
emulate.c: In function `init_module':
emulate.c:518: warning: implicit declaration of function
`register_symtab'
In file included from sysi86.c:33:
../include/ibcs/ibcs.h:43: warning: function declaration isn't a
prototype
sysi86.c: In function `ibcs_sysi86':
sysi86.c:120: warning: implicit declaration of function `get_fs_long'
sysi86.c:133: warning: implicit declaration of function `verify_area'
sysi86.c:133: `VERIFY_WRITE' undeclared (first use this function)
sysi86.c:133: (Each undeclared identifier is reported only once
sysi86.c:133: for each function it appears in.)
sysi86.c:136: warning: implicit declaration of function `put_fs_long'
sysi86.c:186: warning: implicit declaration of function `memcpy_tofs'
make[1]: *** [sysi86.o] Error 1
make: *** [all] Error 2


It appears that (from mod_use_count_) is not defined in the 2.1.35
kernel source. Since I have to get modutils.2.1.34 and this module
compiled ok under 2.0.30 I assume the interface to modules has
changed. I'd like to port the IBCS module myself for personal use
- I have ?4 years good C experience and should have no trouble if
I can just understand what has changed in the kernel since 2.0.30
regarding modules.

What do I need to do to fix the above errors??

-- 
David Williams