I've made build attempts for texinfo-4.0 on these systems:
Apple Macintosh PPC G3 Rhapsody 5.5
DEC Alpha OSF/1 4.0F
HP 9000/735 HP-UX 10.01
IBM PowerPC AIX 4.2
Intel Pentium II MMX GNU/Linux 2.2.5-22
NeXT Turbostation Mach 3.3
SGI Indigo/2 IRIX 5.3
SGI Origin 200 IRIX 6.5
Sun SPARC Solaris 2.6
Sun SPARC Solaris 2.7
Ultimately, I succeeded everywhere but IBM AIX 4.2, but not without
some hand tweaking of compiler options.
Normally, I try to build GNUware using vendor-provided compilers,
rather than gcc, so as to maximize the number of compilers hitting the
source code, and increasing the likelihood of exposure of problems.
On SGI IRIX 5.3, a compilation attempt with CC='cc -ansi -mips2 -O2'
failed in a few places because of missing, or incorrect prototypes, as
shown by the build log extracts below. I was able to get the build to
work by removing the -ansi option.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
make[2]: Entering directory `/export/home/0021/build-indigo-irix5/texinfo-4.0/intl'
cc -ansi -mips2 -O2 -c -DLOCALEDIR=\"/usr/local/share/locale\"
-DGNULOCALEDIR=\"/usr/local/share/locale\"
-DLOCALE_ALIAS_PATH=\"/usr/local/share/locale:.\" -DHAVE_CONFIG_H -I.. -I. -I../intl
-I../lib bindtextdom.c
cfe: Error: bindtextdom.c, line 116: Type int of rhs of assignment expression is
incompatible with type unsigned char * of lhs (3.3.16.1)
new_dirname = strdup (dirname);
------------------^
cfe: Error: bindtextdom.c, line 148: Type int of rhs of assignment expression is
incompatible with type unsigned char * of lhs (3.3.16.1)
new_binding->domainname = strdup (domainname);
------------------------------^
cfe: Error: bindtextdom.c, line 164: Type int of rhs of assignment expression is
incompatible with type unsigned char * of lhs (3.3.16.1)
new_binding->dirname = strdup (dirname);
-----------------------^
make[2]: [bindtextdom.o] Error 1 (ignored)
cc -ansi -mips2 -O2 -c -DLOCALEDIR=\"/usr/local/share/locale\"
-DGNULOCALEDIR=\"/usr/local/share/locale\"
-DLOCALE_ALIAS_PATH=\"/usr/local/share/locale:.\" -DHAVE_CONFIG_H -I.. -I. -I../intl
-I../lib finddomain.c
cfe: Error: finddomain.c, line 147: Type int of rhs of assignment expression is
incompatible with type unsigned char * of lhs (3.3.16.1)
locale = strdup (alias_value);
-------------^
make[2]: [finddomain.o] Error 1 (ignored)
cc -ansi -mips2 -O2 -c -DLOCALEDIR=\"/usr/local/share/locale\"
-DGNULOCALEDIR=\"/usr/local/share/locale\"
-DLOCALE_ALIAS_PATH=\"/usr/local/share/locale:.\" -DHAVE_CONFIG_H -I.. -I. -I../intl
-I../lib textdomain.c
cfe: Error: textdomain.c, line 89: Type int of rhs of assignment expression is
incompatible with type const unsigned char * of lhs (3.3.16.1)
_nl_current_default_domain = strdup (domainname);
---------------------------------^
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
make[2]: Entering directory `/export/home/0021/build-indigo-irix5/texinfo-4.0/info'
cc -ansi -mips2 -O2 -DINFODIR=\"/usr/local/info\"
-DLOCALEDIR=\"/usr/local/share/locale\" -DHAVE_CONFIG_H -I. -I../lib -I../intl -I..
-I. -c echo-area.c
cfe: Error: /usr/include/stdlib.h, line 143: Incompatible type for the function
parameter (3.5.4.3(15))
int (*)(const void *, const void *));
--------^
cfe: Error: echo-area.c, line 1291: Incompatible pointer type assignment (3.3.16.1,
3.5.4.1(21))
compare_references);
---------^
cfe: Error: echo-area.c, line 1291: Type int (* )(REFERENCE * * , REFERENCE * * ) of
this argument is incompatible with type int (* )(const void * , const void * ) of
function prototype description (3.3.16.1)
compare_references);
---------^
make[2]: [echo-area.o] Error 1 (ignored)
cc -ansi -mips2 -O2 -DINFODIR=\"/usr/local/info\"
-DLOCALEDIR=\"/usr/local/share/locale\" -DHAVE_CONFIG_H -I. -I../lib -I../intl -I..
-I. -c filesys.c
cfe: Error: filesys.c, line 554: Type int of rhs of assignment expression is
incompatible with type FILE * of lhs (3.3.16.1)
stream = popen (command, "r" );
---------^
make[2]: [filesys.o] Error 1 (ignored)
cc -ansi -mips2 -O2 -o makedoc makedoc.o ../lib/libtxi.a -lncurses
../intl/libintl.a
ld:
Can't read archive header in: ../intl/libintl.a (Error 0)
make[2]: [makedoc] Error 1 (ignored)
cc -ansi -mips2 -O2 -DINFODIR=\"/usr/local/info\"
-DLOCALEDIR=\"/usr/local/share/locale\" -DHAVE_CONFIG_H -I. -I../lib -I../intl -I..
-I. -c nodemenu.c
cfe: Error: /usr/include/stdlib.h, line 143: Incompatible type for the function
parameter (3.5.4.3(15))
int (*)(const void *, const void *));
--------^
cfe: Error: nodemenu.c, line 166: Incompatible pointer type assignment (3.3.16.1,
3.5.4.1(21))
qsort (lines, lines_index, sizeof (char *), compare_strings);
--------------------------------------------------^
cfe: Error: nodemenu.c, line 166: Type int (* )(unsigned char * * , unsigned char * *
) of this argument is incompatible with type int (* )(const void * , const void * )
of function prototype description (3.3.16.1)
qsort (lines, lines_index, sizeof (char *), compare_strings);
--------------------------------------------------^
make[2]: [nodemenu.o] Error 1 (ignored)
cc -ansi -mips2 -O2 -DINFODIR=\"/usr/local/info\"
-DLOCALEDIR=\"/usr/local/share/locale\" -DHAVE_CONFIG_H -I. -I../lib -I../intl -I..
-I. -c session.c
cfe: Error: session.c, line 3210: Type int of rhs of assignment expression is
incompatible with type FILE * of lhs (3.3.16.1)
printer_pipe = popen (print_command, "w");
-------------------^
make[2]: [session.o] Error 1 (ignored)
cc -ansi -mips2 -O2 -DINFODIR=\"/usr/local/info\"
-DLOCALEDIR=\"/usr/local/share/locale\" -DHAVE_CONFIG_H -I. -I../lib -I../intl -I..
-I. -c signals.c
cfe: Error: signals.c, line 154: Syntax Error
do { sigset_t nvar, ovar; sigemptyset (&ovar); sigemptyset
(&nvar); sigaddset (&nvar, sig); sigprocmask (SIG_UNBLOCK, &nvar, &ovar); }
while (0) ;
--------------------------^
cfe: Error: signals.c, line 192: Syntax Error
do { sigset_t nvar, ovar; sigemptyset (&ovar); sigemptyset
(&nvar); sigaddset (&nvar, sig); sigprocmask (SIG_UNBLOCK, &nvar, &ovar); }
while (0) ;
----------------------------^
make[2]: [signals.o] Error 1 (ignored)
rm -f doc.c funs.h
./makedoc ./session.c ./echo-area.c ./infodoc.c ./m-x.c ./indices.c ./nodemenu.c
./footnotes.c ./variables.c
make[2]: ./makedoc: Command not found
make[2]: [doc.c] Error 127 (ignored)
cc -ansi -mips2 -O2 -DINFODIR=\"/usr/local/info\"
-DLOCALEDIR=\"/usr/local/share/locale\" -DHAVE_CONFIG_H -I. -I../lib -I../intl -I..
-I. -c doc.c
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
make[3]: Entering directory `/export/home/0021/build-indigo-irix5/texinfo-4.0/makeinfo'
cc -ansi -mips2 -O2 -DHAVE_CONFIG_H -I. -I. -I.. -I../lib -I../intl
-DLOCALEDIR=\"/usr/local/share/locale\" -c index.c
cfe: Error: /usr/include/stdlib.h, line 143: Incompatible type for the function
parameter (3.5.4.3(15))
int (*)(const void *, const void *));
--------^
cfe: Error: index.c, line 611: Incompatible pointer type assignment (3.3.16.1,
3.5.4.1(21))
qsort (array, count, sizeof (INDEX_ELT *), index_element_compare);
---------------------------------------------^
cfe: Error: index.c, line 611: Type int (* )(INDEX_ELT * * , INDEX_ELT * * ) of this
argument is incompatible with type int (* )(const void * , const void * ) of
function prototype description (3.3.16.1)
qsort (array, count, sizeof (INDEX_ELT *), index_element_compare);
---------------------------------------------^
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
make[2]: Entering directory `/export/home/0021/build-indigo-irix5/texinfo-4.0/util'
cc -ansi -mips2 -O2 -DHAVE_CONFIG_H -I. -I. -I.. -I../lib -I../intl
-DLOCALEDIR=\"/usr/local/share/locale\" -c install-info.c
cfe: Error: install-info.c, line 572: Type int of rhs of assignment expression is
incompatible with type FILE * of lhs (3.3.16.1)
f = popen (command, "r");
--------^
cfe: Error: install-info.c, line 676: Type int of rhs of assignment expression is
incompatible with type FILE * of lhs (3.3.16.1)
output = popen (command, "w");
-------------^
make[2]: [install-info.o] Error 1 (ignored)
cc -ansi -mips2 -O2 -o install-info install-info.o ../lib/libtxi.a
../intl/libintl.a
ld:
Can't open: install-info.o (No such file or directory)
make[2]: [install-info] Error 1 (ignored)
cc -ansi -mips2 -O2 -DHAVE_CONFIG_H -I. -I. -I.. -I../lib -I../intl
-DLOCALEDIR=\"/usr/local/share/locale\" -c texindex.c
cfe: Error: /usr/include/stdlib.h, line 143: Incompatible type for the function
parameter (3.5.4.3(15))
int (*)(const void *, const void *));
--------^
cfe: Error: /usr/include/stdlib.h, line 143: Incompatible type for the function
parameter (3.5.4.3(15))
int (*)(const void *, const void *));
--------^
cfe: Error: texindex.c, line 1049: Incompatible pointer type assignment (3.3.16.1,
3.5.4.1(21))
compare_prepared);
-------------^
cfe: Error: texindex.c, line 1049: Type int (* )(struct lineinfo * , struct lineinfo
* ) of this argument is incompatible with type int (* )(const void * , const void *
) of function prototype description (3.3.16.1)
compare_prepared);
-------------^
cfe: Error: texindex.c, line 1057: Incompatible pointer type assignment (3.3.16.1,
3.5.4.1(21))
qsort (linearray, nextline - linearray, sizeof (char *), compare_full);
-------------------------------------------------------------^
cfe: Error: texindex.c, line 1057: Type int (* )(unsigned char * * , unsigned char *
* ) of this argument is incompatible with type int (* )(const void * , const void *
) of function prototype description (3.3.16.1)
qsort (linearray, nextline - linearray, sizeof (char *), compare_full);
-------------------------------------------------------------^
make[2]: [texindex.o] Error 1 (ignored)
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
On IBM AIX 4.2, I got a compilation failure
c89 -O3 -c -DLOCALEDIR=\"/usr/local/share/locale\"
-DGNULOCALEDIR=\"/usr/local/share/locale\"
-DLOCALE_ALIAS_PATH=\"/usr/local/share/locale:.\" -DHAVE_CONFIG_H -I.. -I. -I../intl
-I../lib bindtextdom.c
"bindtextdom.c", line 116.27: 1506-068 (S) Operation between types "char*" and "int"
is not allowed.
"bindtextdom.c", line 148.31: 1506-068 (S) Operation between types "char*" and "int"
is not allowed.
"bindtextdom.c", line 164.32: 1506-068 (S) Operation between types "char*" and "int"
is not allowed.
so I switched to gcc 2.95.2, where compilation is successful, but
linking fails:
gcc -g -O2 -o ginfo dir.o display.o dribble.o echo-area.o filesys.o footnotes.o
gc.o indices.o info-utils.o info.o infodoc.o infomap.o m-x.o man.o nodemenu.o nodes.o
search.o session.o signals.o terminal.o tilde.o variables.o window.o doc.o
../lib/libtxi.a -lcurses ../intl/libintl.a
ld: 0711-317 ERROR: Undefined symbol: BC
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
-------------------------------------------------------------------------------
- Nelson H. F. Beebe Tel: +1 801 581 5254 -
- Center for Scientific Computing FAX: +1 801 585 1640, +1 801 581 4148 -
- University of Utah Internet e-mail: [EMAIL PROTECTED] -
- Department of Mathematics, 322 INSCC [EMAIL PROTECTED] -
- 155 S 1400 E RM 233 [EMAIL PROTECTED] -
- Salt Lake City, UT 84112-0090, USA URL: http://www.math.utah.edu/~beebe -
-------------------------------------------------------------------------------