Subject: [bug-gnu-emacs] emacs-24.3.90: big build report

From: "Nelson H. F. Beebe" <[email-masked]>
Date: Thu, 24 Apr 2014 15:07:16 -0600 (MDT)

I have a test lab with about 40 flavors of Unix running on current and
historical CPU architectures.  I have now done more than 70 build
attempts for the new emacs-24.3.90 release of 19-Apr-2014, and
happily, I can report success on most of them.  There remain a few
failures, and on some of the successful systems, I had to make
repeated tries to find option combinations that would produce a
successful build of emacs, including X11 support on all systems.

In NO CASE did I have to resort to editing any file from
emacs-24.3.90.

First, here is a brief list of systems for which I have successful
builds and installations; compiler choices, configure options and
environment variable settings are omitted, but I can supply them
offlist on request.

	--------------------------------------------------
	O/S version				CPU family
	--------------------------------------------------
	DragonFly 3.6				x86-64
	FreeBSD 9.1				x86
	FreeBSD 10.0				x86-64
	GNU/Linux ArchLinux			x86-64
	GNU/Linux Debian 6.0.9			x86-64
	GNU/Linux Debian 7.4			x86-64
	GNU/Linux Fedora 19			x86
	GNU/Linux Gentoo 2.2			Alpha
	GNU/Linux Gentoo 2.2			PowerPC-32
	GNU/Linux Gentoo 2.2			PowerPC-64
	GNU/Linux Gentoo 2.2			SPARC
	GNU/Linux Red Hat 5.10			IA-64
	GNU/Linux Red Hat 5.10			x86
	GNU/Linux Red Hat 5.10			x86-64
	GNU/Linux Red Hat 6.5			x86-64
	GNU/Linux Red Hat 7.0 beta		x86-64
	GNU/Linux Scientific Linux 6.5		x86-64
	GNU/Linux Slackware 14.0		x86-64
	GNU/Linux Ubuntu 12.04			x86
	GNU/Linux openSUSE 11.2			x86_64
	GNU/Linux openSUSE 12.3			x86_64
	GNU/Linux openSUSE 13.1			x86_64
	Mac OS X 10.5.8				PowerPC-32
	Mac OS X 10.7.5				x86-64
	MirBSD 10				x86
	OpenBSD 4.7				x86
	OpenBSD 5.1				x86
	OpenBSD 5.4				x86-64
	Solaris 10				SPARC
	Solaris 10				x86
	Solaris 10				x86-64
	Solaris 11				x86-64
	--------------------------------------------------

Here are the failing systems:

    GNU/Hurd x86:
	Compilation fails with

	process.c: In function 'handle_child_signal':
	process.c:6228:58: error: 'WCONTINUED' undeclared (first use in this function)
	    && child_status_changed (p->pid, &status, WUNTRACED | WCONTINUED))
								  ^
	process.c:6228:58: note: each undeclared identifier is reported only once for each function it appears in

	The symbol WCONTINUED is not defined in any file under /usr/include.

    NetBSD 5.0.2 x86:
	Compilation fails with

	    process.c: In function 'handle_child_signal':
	    process.c:6228:58: error: 'WCONTINUED' undeclared (first use in this function)
	That symbol is not found in any file under /usr/include.

    SGI IRIX 6.5 MIPS:
	/usr/local/bin/gcc -std=gnu99 -c -Demacs  -I. -I. -I../lib -I./../lib -g3 -O2  process.c
	process.c: In function `conv_sockaddr_to_lisp':
	process.c:2002: error: dereferencing pointer to incomplete type
	process.c:2003: error: dereferencing pointer to incomplete type
	process.c:2006: error: dereferencing pointer to incomplete type
	process.c: In function `get_lisp_to_sockaddr_size':
	process.c:2070: error: invalid application of `sizeof' to incomplete type `sockaddr_in6'
	process.c: In function `conv_lisp_to_sockaddr':
	process.c:2125: error: dereferencing pointer to incomplete type
	process.c:2126: error: dereferencing pointer to incomplete type
	process.c:2128: error: dereferencing pointer to incomplete type
	process.c: In function `server_accept_connection':
	process.c:4024: error: field `in6' has incomplete type

On all three systems, it looks like changes in emacs source code, or
perhaps the configure-time tests, will be needed.  I could see no
--enable-xxx, --disable-xxx, --with-xxx, or --without-xxx option that
would appear to affect the compilation issues in process.c.

Finally, here are problems for which I found workarounds:

(1) On several systems, linking failed with a missing symbol from the
    ImageMagick libraries:

	    undefined: PixelSetMagickColor

    The solution was to either

	    (a) add the --without-imagemagick option to configure

	    (b) build and install the latest ImageMagick release
		(6.8.9-0), and then retry the emacs build

    I've tried both approaches, and work in (b) is continuing.

(2) On NetBSD 6, configure tests for -lpng fail because that library does
    not exist; instead, the vendor provides only -lpng16.  I fooled the
    emacs configure script by creating this symlink:

		    /usr/local/lib/libpng.a: symbolic link to `/usr/pkg/lib/libpng16.a'

    so that -lpng is now found.

(3) On MirBSD, configure quits with the error

	    Emacs does not support `i386-unknown-mirbsd10' systems.

    The solution was to use the option --build=i386-unknown-openbsd4.9 in
    the configure step.  MirBSD is a derivative of OpenBSD 4.x, and that
    --build option trick has been necessary for a number of other software
    packages.

(4) On some systems (GNU/Linux on Alpha, SPARC, x86, PowerPC-32, and
    PowerPC-64), in the final "make install", I get this error very near
    the end:

	    /bin/bash: line 0: [: !=: unary operator expected
	    make[1]: Leaving directory '/local/build/bare/emacs-24.3.90/lib-src'

P.S. For a package of this size (410K lines of C, 1620K lines of
Lisp), the portability of emacs is wonderful!  My thanks go to the
great emacs development team who keep it building and working (almost)
everywhere.

-------------------------------------------------------------------------------
- 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-masked]  -
- 155 S 1400 E RM 233                       [email-masked]  [email-masked] -
- Salt Lake City, UT 84112-0090, USA    URL: http://www.math.utah.edu/~beebe/ -
-------------------------------------------------------------------------------