texinfo-4.6.92 build feedback

"Nelson H. F. Beebe" <[email protected]> Thu, 18 Mar 2004 18:38:24 -0700 (MST)
Newsgroups gmane.comp.tex.texinfo.pretest
Message-ID <[email protected]>
I launched build attempts of texinfo-4.6.92 in 71 C/C++ compilation
environments on about 20 flavors of Unix. Of the 71 attempts, 30
reported "All 20 tests passed".

Examination of the build logs show that the code is not yet fully
conformant to 1989 ISO Standard C, and thus, cannot be compiled by C++
compilers.  I'm therefore ignoring all of the build failures with C++.

There are some systematic problems that foiled many builds:

------------------------------------------------------------------------
info/signals.c fails to compile on several systems because

static void
mask_termsig (sigset_t *set)
{ ... }

is seen by the compiler when sigset_t is not defined.
------------------------------------------------------------------------
info/session.c fails to compile on at least one system with this
error:

session.c: In function `incremental_search':
session.c:4122: `strncasecmp' undeclared (first use in this function)

That is a nonstandard function; don't use it, or provide an
alternative under a different name.  The str prefix is reserved in the
ISO C Standards for future library directions, so avoid it.
------------------------------------------------------------------------
On MacOS 10.3.2, configure failed with this error:

	configure:6111: checking build system type
	configure:6124: error: /bin/sh ./config.sub -apple-darwin7.2.0 failed
	...
	ac_cv_build='config.sub: invalid option -apple-darwin7.2.0

The config.{sub,guess} files are the latest available.  The problem
is that the argument should be powerpc-apple-darwin7.2.0, not
-apple-darwin7.2.0.  Evidently, powerpc is not being set properly.

I then tracked down the problem: after I installed the latest
coreutils-5.2.1 earlier this week, I forgot to replace
/usr/local/bin/uname with a link to /usr/bin/uname.  I've been through
this before with the coreutils developers, and they don't see an
acceptable way to solve this problem with the -p option:

	% /usr/bin/uname -p
	powerpc

	% /usr/local/bin/uname -p
	unknown

You may get build failure reports from other MacOS 10 sites; advise
them to do

	rm $prefix/bin/uname && ln -s /usr/bin/uname $prefix/bin/uname

where prefix is usually /usr/local, but might not be at theirs.

One I made that symlink and relaunched the builds, both succeeded and
reported that all 20 tests passed.
------------------------------------------------------------------------
Several systems got this failure:

"html.c", line 498: undefined symbol: start_or_end
"html.c", line 526: undefined symbol: tag

The problem is inconsistent argument lists in two definitions of the
function:


#if defined (VA_FPRINTF) && __STDC__
insert_html_tag_with_attribute (int start_or_end, char *tag, char *format, ...)
#else
insert_html_tag_with_attribute (elt, arg, format, va_alist)
     int arg;
     char *elt;
     char *format;
     va_dcl
#endif

The code body lacks similar protection in its use of start_or_end.
------------------------------------------------------------------------
Linking on Compaq/DEC Alpha OSF/1 fails because snprintf is not 
available.  It is the ONLY one of my 20+ Unix flavors that doesn't
have it, so a year ago, I tracked down a portable version at

	http://www.ijs.si/software/snprintf/

and build a private library for snprintf on that system.  A restart
with

	make LIBS='-L/usr/local/lib -lsnprintf -lc'

got a successful build, and all 20 tests passed.

However, I had to add -lc to the LIBS variable, because it incorrectly
appears in the link after -lc:

cc -std1 -ieee -I/usr/local/include -Wl,-rpath,/usr/local/lib \
	-Wl,-oldstyle_liblookup -L/usr/local/lib -o makeinfo cmds.o defun.o \
	files.o float.o footnote.o html.o index.o insertion.o lang.o macro.o \
	makeinfo.o multi.o node.o sectioning.o toc.o xml.o xref.o \
	../lib/libtxi.a /usr/local/lib/libintl.so /usr/local/lib/libiconv.so \
	-lc -rpath /usr/local/lib -L/usr/local/lib -lsnprintf -L/usr/lib -lc

A similar build with gcc failed at link time for both snprintf and
bcopy.  I don't see where the bcopy reference is coming from; there is
only a comment in one Texinfo source file about it, and it appears in
none of the *.a or *.o files in the build tree, or in the
/usr/local/lib/libgccsnprintf.a library.  I'd say forget this
particular build failure.
------------------------------------------------------------------------
On HP/Compaq/DEC Alpha OSF/1 5.1, compilation with native c89 
failed in info/session.c with a fatal internal compiler assertion
error.  A restart with -O added to CFLAGS worked around the problem.
and all 20 tests passed.
------------------------------------------------------------------------
Compilation with the Portland Group compiler, pgcc-5.1-3 (released in
January 2004) failed at info/m-x.c because this statement

    (*InfoFunction(command)) (active_window, count, 0);

expands to

    ( * ( ( command ) ? ( command ) -> func : ( ( void * ) 0 ) ) ) ( active_window , count , 0 ) ;

and the compiler rejects it with

	PGC-S-0098-Expression of type void * cannot be dereferenced (m-x.c: 151)
	PGC-S-0056-Attempt to call non-function (m-x.c: 151)
------------------------------------------------------------------------

-------------------------------------------------------------------------------
- Nelson H. F. Beebe                    Tel: +1 801 581 5254                  -
- University of Utah                    FAX: +1 801 581 4148                  -
- Department of Mathematics, 110 LCB    Internet e-mail: [email protected]  -
- 155 S 1400 E RM 233                       [email protected]  [email protected] -
- Salt Lake City, UT 84112-0090, USA    URL: http://www.math.utah.edu/~beebe  -
-------------------------------------------------------------------------------
_______________________________________________
Texinfo home page: http://www.gnu.org/software/texinfo/
[email protected]
http://ff0.org/mailman/listinfo/texinfo-pretest