From bug-octave-request at bevo dot che dot wisc dot edu Tue Dec 1 10:22:21 1998 Subject: Continued problem with compilation From: "John W. Eaton" To: Nick Youd Cc: bug-octave at bevo dot che dot wisc dot edu Date: Tue, 1 Dec 1998 10:20:36 -0600 (CST) On 1-Dec-1998, Nick Youd wrote: | Bug report for Octave 2.0.13 configured for sparc-sun-sunos4.1.4 | | Description: | ----------- | | Thanks for your advice about libg++ 2.7.2. I checked and found | I had an earlier version. Installing 2.7.2 got me several hours | further in the compilation! | | There is a further problem (see below). Removing config.cache | and running configure again didn't take me any further. Or did | you mean that I should do this, and do a make clean as well? | | Regards | Nick | | Repeat-By: | --------- | | sighandlers.cc: In function `void my_friendly_exit(const char *, int)': | sighandlers.cc:120: passing `void (*)()' as argument 2 of `octave_set_signal_handler(int, void (*)(int))' | sighandlers.cc:141: passing `void (*)()' as argument 2 of `octave_set_signal_handler(int, void (*)(int))' There is a note about this problem in the Octave manual, in the section Installation Problems: * If you encounter errors like passing `void (*)()' as argument 2 of `octave_set_signal_handler(int, void (*)(int))' or warning: ANSI C++ prohibits conversion from `(int)' to `(...)' while compiling `sighandlers.cc', you may need to edit some files in the `gcc' include subdirectory to add proper prototypes for functions there. For example, Ultrix 4.2 needs proper declarations for the `signal' function and the `SIG_IGN' macro in the file `signal.h'. On some systems the `SIG_IGN' macro is defined to be something like this: #define SIG_IGN (void (*)())1 when it should really be something like: #define SIG_IGN (void (*)(int))1 to match the prototype declaration for the `signal' function. This change should also be made for the `SIG_DFL' and `SIG_ERR' symbols. It may be necessary to change the definitions in `sys/signal.h' as well. The `gcc' `fixincludes' and `fixproto' scripts should probably fix these problems when `gcc' installs its modified set of header files, but I don't think that's been done yet. *You should not change the files in `/usr/include'*. You can find the `gcc' include directory tree by running the command gcc -print-libgcc-file-name The directory of `gcc' include files normally begins in the same directory that contains the file `libgcc.a'. jwe