[plt-scheme] 4.2.5.7 compilation error under SGI IRIX 6.

From: Valery Niamkovich (histfak at gmail.com)
Date: Sat May 8 20:01:13 EDT 2010

My log with foreign enabled:
Some of these errors occur because the compiler does not understand
³GCC'isms² such as __attribute__.
Here http://forums.nekochan.net/viewtopic.php?f=15&t=16717999  people are
faced with this when building Python.


IRIS 5% setenv MAKE gmake
IRIS 6% setenv CC "c99 -w"
IRIS 7% setenv CFLAGS "-O3 -mips4"
IRIS 8% setenv CXXFLAGS "-O3 -mips4"
IRIS 9% ../configure --prefix=/usr/people/val/plt-scheme
checking for gcc... c99 -w
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... no
checking whether c99 -w accepts -g... yes
checking for c99 -w option to accept ISO C89... none needed
checking how to run the C preprocessor... c99 -w -E
checking for g++... no
checking for c++... no
checking for gpp... no
checking for aCC... no
checking for CC... CC
checking whether we are using the GNU C++ compiler... no
checking whether CC accepts -g... yes
checking how to run the C++ preprocessor... CC -E
checking for ranlib... no
checking for X... libraries , headers
checking for gethostbyname... yes
checking for connect... yes
checking for remove... yes
checking for shmat... yes
checking for IceConnectionNumber in -lICE... yes
checking for cos in -lm... yes
checking for dlopen in -ldl... yes
checking for inline keyword... yes
checking for noinline attribute... yes
checking for GNU preprocessor... no
checking for nl_langinfo (CODESET)... yes
checking for getaddrinfo... yes
checking for grep that handles long lines and -e... /sbin/grep
checking for egrep... /sbin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking iconv.h usability... yes
checking iconv.h presence... yes
checking for iconv.h... yes
checking iconv is usable... yes
checking for mbsrtowcs... yes
checking for char... yes
checking size of char... 1
checking for short... yes
checking size of short... 2
checking for int... yes
checking size of int... 4
checking for long... yes
checking size of long... 4
checking for long long... yes
checking size of long long... 8
checking for stack direction... down
checking whether byte ordering is bigendian... yes
checking whether C++ compiler works... yes
checking whether new and new[] are different... yes
checking X11/Xlib.h usability... yes
checking X11/Xlib.h presence... yes
checking for X11/Xlib.h... yes
checking X11/Intrinsic.h usability... yes
checking X11/Intrinsic.h presence... yes
checking for X11/Intrinsic.h... yes
checking for XFlush in -lX11... yes
checking for XSyncQueryExtension in -lXext... yes
checking for XtDestroyWidget in -lXt... yes
checking for XmuInternAtom in -lXmu... yes
checking for vendorShellClassRec in -lXaw... yes
checking whether X11/XKBlib.h is available... yes
checking GL/glx.h usability... yes
checking GL/glx.h presence... yes
checking for GL/glx.h... yes
checking for glXChooseVisual in -lGL... yes
checking X11/extensions/Xrender.h usability... no
checking X11/extensions/Xrender.h presence... no
checking for X11/extensions/Xrender.h... no
no Xrender headers; Xrender support disabled
no information from pkg-config; Cairo support disabled
checking png.h usability... yes
checking png.h presence... yes
checking for png.h... yes
checking for png_read_info in -lpng... yes
checking jpeglib.h usability... yes
checking jpeglib.h presence... yes
checking for jpeglib.h... yes
checking for jpeg_start_decompress in -ljpeg... yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating mzscheme/Makefile
config.status: creating mzscheme/src/Makefile
config.status: creating mzscheme/dynsrc/Makefile
config.status: creating mzscheme/gc/Makefile
config.status: creating mzscheme/sgc/Makefile
config.status: creating mzscheme/gc2/Makefile
config.status: creating foreign/Makefile
config.status: creating mred/Makefile
config.status: creating mred/wxs/Makefile
config.status: creating mred/gc2/Makefile
config.status: creating wxxt/src/Makefile
config.status: creating wxxt/src/x/Makefile
config.status: creating wxxt/utils/image/src/Makefile
config.status: creating wxxt/contrib/xpm/lib/Makefile
config.status: creating mzscheme/mzconfig.h
=== configuring in foreign/gcc/libffi
(/usr/people/val/plt/src/build/foreign/gcc/libffi)
configure: running /bin/sh ../../../../foreign/gcc/libffi/configure
'--prefix=/usr/people/val/plt-scheme'  'CC=c99 -w' 'CFLAGS=-O3 -mips4'
'CXXFLAGS=-O3 -mips4' '--disable-multilib' --cache-file=/dev/null
--srcdir=../../../../foreign/gcc/libffi
checking build system type... mips-sgi-irix6.5
checking host system type... mips-sgi-irix6.5
checking target system type... mips-sgi-irix6.5
checking for a BSD-compatible install...
../../../../foreign/gcc/libffi/../install-sh -c
checking whether build environment is sane... yes
checking for gawk... no
checking for mawk... no
checking for nawk... nawk
checking whether gmake sets $(MAKE)... yes
checking for gcc... c99 -w
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... no
checking whether c99 -w accepts -g... yes
checking for c99 -w option to accept ISO C89... none needed
checking for style of include used by gmake... GNU
checking dependency style of c99 -w... sgi
checking whether c99 -w and cc understand -c and -o together... yes
checking for a sed that does not truncate output... /sbin/sed
checking for grep that handles long lines and -e... /sbin/grep
checking for egrep... /sbin/grep -E
checking for fgrep... /sbin/grep -F
checking for non-GNU ld... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... no
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 15360
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... no
checking for /usr/bin/ld option to reload object files... -r
checking how to recognize dependent libraries... pass_all
checking for ar... ar
checking for strip... strip
checking for ranlib... no
checking command to parse /usr/bin/nm -B output from c99 -w object... ok
checking how to run the C preprocessor... c99 -w -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking for c99 -w option to produce PIC...  -DPIC
checking if c99 -w PIC flag  -DPIC works... yes
checking if c99 -w static flag -non_shared works... no
checking if c99 -w supports -c -o file.o... yes
checking if c99 -w supports -c -o file.o... (cached) yes
checking whether the c99 -w linker (/usr/bin/ld -n32) supports shared
libraries... yes
checking dynamic linker characteristics... irix6.5 ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... no
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking whether to enable maintainer-specific portions of Makefiles... no
checking sys/mman.h usability... yes
checking sys/mman.h presence... yes
checking for sys/mman.h... yes
checking for mmap... yes
checking for sys/mman.h... (cached) yes
checking for mmap... (cached) yes
checking whether read-only mmap of a plain file works... yes
checking whether mmap from /dev/zero works... yes
checking for MAP_ANON(YMOUS)... no
checking for ANSI C header files... (cached) yes
checking for memcpy... yes
checking for working alloca.h... yes
checking for alloca... yes
checking for double... yes
checking size of double... 8
checking for long double... yes
checking size of long double... 16
checking whether byte ordering is bigendian... yes
checking assembler .cfi pseudo-op support... yes
checking whether .eh_frame section should be read-only... no
checking for __attribute__((visibility("hidden")))... no
c99 WARNING:  -p is no longer supported, use speedshop(1) instead
c99 ERROR parsing -print-multi-os-directory:  unknown flag
c99 ERROR:  no source or object file given
configure: creating ./config.status
config.status: creating include/Makefile
config.status: creating include/ffi.h
config.status: creating Makefile
config.status: creating fficonfig.h
config.status: linking ../../../../foreign/gcc/libffi/src/mips/ffitarget.h
to include/ffitarget.h
config.status: executing default-1 commands
config.status: executing depfiles commands
config.status: executing libtool commands
config.status: executing include commands
config.status: executing src commands
>>> Installation targets:
 executables  : ${exec_prefix}/bin/...
 Scheme code  : ${exec_prefix}/lib/plt/collects/...
 core docs    : ${datarootdir}/plt/doc/...
 C libraries  : ${exec_prefix}/lib/...
 C headers    : ${prefix}/include/plt/...
 extra C objs : ${exec_prefix}/lib/plt/...
 man pages    : ${datarootdir}/man/...
     where prefix = /usr/people/val/plt-scheme
  and datarootdir = ${prefix}/share
  and exec_prefix = ${prefix}
IRIS 10% make
.....
: ../libmzgc.a
gmake[4]: Leaving directory `/usr/people/val/plt/src/build/mzscheme/gc'
gmake[3]: Leaving directory `/usr/people/val/plt/src/build/mzscheme'
gmake foreign-stuff
gmake[3]: Entering directory `/usr/people/val/plt/src/build/mzscheme'
cd ../foreign; gmake all
gmake[4]: Entering directory `/usr/people/val/plt/src/build/foreign'
gmake foreign.o
gmake[5]: Entering directory `/usr/people/val/plt/src/build/foreign'
c99 -w -O3 -mips4 -I./../mzscheme -I../../foreign/../mzscheme/include
-I../../foreign/../mzscheme/src -Igcc/libffi/include -c
../../foreign/foreign.c -o foreign.o
cc-1065 c99: ERROR File = gcc/libffi/include/ffitarget.h, Line = 140
  A semicolon is expected at this point.

  typedef unsigned int     ffi_arg __attribute__((__mode__(__DI__)));
                                   ^

cc-1065 c99: ERROR File = gcc/libffi/include/ffitarget.h, Line = 141
  A semicolon is expected at this point.

  typedef signed   int     ffi_sarg __attribute__((__mode__(__DI__)));
                                    ^

cc-1065 c99: ERROR File = gcc/libffi/include/ffi.h, Line = 254
  A semicolon is expected at this point.

  } ffi_closure __attribute__((aligned (8)));
                ^

cc-1070 c99: ERROR File = ../../foreign/foreign.c, Line = 1799
  The indicated type is incomplete.

      if (intsize==0 && stars>0) RETSIZE(void);
                                 ^

4 errors detected in the compilation of "../../foreign/foreign.c".
gmake[5]: *** [foreign.o] Error 2
gmake[5]: Leaving directory `/usr/people/val/plt/src/build/foreign'
gmake[4]: *** [all] Error 2
gmake[4]: Leaving directory `/usr/people/val/plt/src/build/foreign'
gmake[3]: *** [foreign-stuff] Error 2
gmake[3]: Leaving directory `/usr/people/val/plt/src/build/mzscheme'
gmake[2]: *** [common] Error 2
gmake[2]: Leaving directory `/usr/people/val/plt/src/build/mzscheme'
gmake[1]: *** [cgc] Error 2
gmake[1]: Leaving directory `/usr/people/val/plt/src/build/mzscheme'
gmake: *** [cgc] Error 2
*** Error code 2 (bu21)

My log with foreign disabled:

IRIS 14% ../configure --prefix=/usr/people/val/plt-scheme --disable-foreign
=== Foreign disabled
checking for gcc... c99 -w
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... no
checking whether c99 -w accepts -g... yes
checking for c99 -w option to accept ISO C89... none needed
checking how to run the C preprocessor... c99 -w -E
checking for g++... no
checking for c++... no
checking for gpp... no
checking for aCC... no
checking for CC... CC
checking whether we are using the GNU C++ compiler... no
checking whether CC accepts -g... yes
checking how to run the C++ preprocessor... CC -E
checking for ranlib... no
checking for X... libraries , headers
checking for gethostbyname... yes
checking for connect... yes
checking for remove... yes
checking for shmat... yes
checking for IceConnectionNumber in -lICE... yes
checking for cos in -lm... yes
checking for dlopen in -ldl... yes
checking for inline keyword... yes
checking for noinline attribute... yes
checking for GNU preprocessor... no
checking for nl_langinfo (CODESET)... yes
checking for getaddrinfo... yes
checking for grep that handles long lines and -e... /sbin/grep
checking for egrep... /sbin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking iconv.h usability... yes
checking iconv.h presence... yes
checking for iconv.h... yes
checking iconv is usable... yes
checking for mbsrtowcs... yes
checking for char... yes
checking size of char... 1
checking for short... yes
checking size of short... 2
checking for int... yes
checking size of int... 4
checking for long... yes
checking size of long... 4
checking for long long... yes
checking size of long long... 8
checking for stack direction... down
checking whether byte ordering is bigendian... yes
checking whether C++ compiler works... yes
checking whether new and new[] are different... yes
checking X11/Xlib.h usability... yes
checking X11/Xlib.h presence... yes
checking for X11/Xlib.h... yes
checking X11/Intrinsic.h usability... yes
checking X11/Intrinsic.h presence... yes
checking for X11/Intrinsic.h... yes
checking for XFlush in -lX11... yes
checking for XSyncQueryExtension in -lXext... yes
checking for XtDestroyWidget in -lXt... yes
checking for XmuInternAtom in -lXmu... yes
checking for vendorShellClassRec in -lXaw... yes
checking whether X11/XKBlib.h is available... yes
checking GL/glx.h usability... yes
checking GL/glx.h presence... yes
checking for GL/glx.h... yes
checking for glXChooseVisual in -lGL... yes
checking X11/extensions/Xrender.h usability... no
checking X11/extensions/Xrender.h presence... no
checking for X11/extensions/Xrender.h... no
no Xrender headers; Xrender support disabled
no information from pkg-config; Cairo support disabled
checking png.h usability... yes
checking png.h presence... yes
checking for png.h... yes
checking for png_read_info in -lpng... yes
checking jpeglib.h usability... yes
checking jpeglib.h presence... yes
checking for jpeglib.h... yes
checking for jpeg_start_decompress in -ljpeg... yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating mzscheme/Makefile
config.status: creating mzscheme/src/Makefile
config.status: creating mzscheme/dynsrc/Makefile
config.status: creating mzscheme/gc/Makefile
config.status: creating mzscheme/sgc/Makefile
config.status: creating mzscheme/gc2/Makefile
config.status: creating mred/Makefile
config.status: creating mred/wxs/Makefile
config.status: creating mred/gc2/Makefile
config.status: creating wxxt/src/Makefile
config.status: creating wxxt/src/x/Makefile
config.status: creating wxxt/utils/image/src/Makefile
config.status: creating wxxt/contrib/xpm/lib/Makefile
config.status: creating mzscheme/mzconfig.h
config.status: mzscheme/mzconfig.h is unchanged
>>> Installation targets:
 executables  : ${exec_prefix}/bin/...
 Scheme code  : ${exec_prefix}/lib/plt/collects/...
 core docs    : ${datarootdir}/plt/doc/...
 C libraries  : ${exec_prefix}/lib/...
 C headers    : ${prefix}/include/plt/...
 extra C objs : ${exec_prefix}/lib/plt/...
 man pages    : ${datarootdir}/man/...
     where prefix = /usr/people/val/plt-scheme
  and datarootdir = ${prefix}/share
  and exec_prefix = ${prefix}
IRIS 15%  make
......
gmake[4]: Entering directory `/usr/people/val/plt/src/build/mzscheme/src'
c99 -w -I./.. -I../../../mzscheme/src/../include -O3 -mips4
-DDONT_USE_FOREIGN -c ../../../mzscheme/src/salloc.c -o salloc.o
cc-1117 c99: ERROR File = ../../../mzscheme/src/salloc.c, Line = 382
  An expression appears after a "return" in a "void" function.

    return scheme_init_os_thread_like(NULL);
           ^

1 error detected in the compilation of "../../../mzscheme/src/salloc.c".
gmake[4]: *** [salloc.o] Error 2
gmake[4]: Leaving directory `/usr/people/val/plt/src/build/mzscheme/src'
gmake[3]: *** [all] Error 2
gmake[3]: Leaving directory `/usr/people/val/plt/src/build/mzscheme/src'
gmake[2]: *** [mzlibrary] Error 2
gmake[2]: Leaving directory `/usr/people/val/plt/src/build/mzscheme'
gmake[1]: *** [cgc] Error 2
gmake[1]: Leaving directory `/usr/people/val/plt/src/build/mzscheme'
gmake: *** [cgc] Error 2
*** Error code 2 (bu21)
IRIS 16% 









-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20100509/e641af8c/attachment.html>

Posted on the users mailing list.