Maxs homepage |
Main BranchesContact Publications Talks Grants Teaching Mathematics Computer Images Private Links |
||||||||||
Navigation Tree
|
Compiling GAP 3r4p4 under modern LinuxUnder reasonably modern Linux the header files of the C library have changed in a way, such that GAP3r4p4 does no longer compile "out of the box". The typical error message while compiling via "make" ist something like: [root@localhost src] # make ibm-i386-linux-gcc2 make[1]:Entering directory '/usr/local/lib/gap3r4p4/src' gcc -DSYS_IS_USG _DSYS-HAS-TIME-PROTO -DSYS_HAS_SIG_T=void -c system.c -o system.o. system.c:1576:Conflicting types for 'ioctl' /usr/include/sys/ioctl.h:43:previous declaration of 'ioctl' system.c : In function 'syAnswerCont': system.c:1615:warning:'return' with a value, in function returning void. system.c: In function 'syAnswerTstp': system.c:1626:warning:'return ' value in function returning void. system.c:In function 'syAnswerIntr': system.c:2749:warning:'return' with a value in function returning void. make[1]:***[system.o] Error 1 make[1]:Leaving directory '/usr/local/lib/gap3r4p4/src' make : *** [ibm-i386-linux-gcc2] Error 2. What shall I do?Note that only the error about "ioctl" is serious. The warnings about return values can safely be ignored. The solution to this problem is: Edit the src/Makefile: Change the line 244 (2 lines after the target ibm-i386-linux-gcc2:):@$(MAKE) system.o CC=gcc CFLAGS="$(COPTS) -DSYS_IS_USG -DSYS_HAS_TIME_PROTO -DSYS_HAS_SIG_T=void" (note that the long line has been broken here!) into @$(MAKE) system.o CC=gcc CFLAGS="$(COPTS) -DSYS_IS_USG -DSYS_HAS_TIME_PROTO -DSYS_HAS_SIG_T=void -DSYS_HAS_IOCTL_PROTO" Note that the replacement line is rather long and you probably cannot see any difference without scrolling to the right. Then there remain 3 warnings, but they are not serious (as far as I know). I hope that helps. |
||||||||||
|