GNU bug report logs - #7178
24.0.50; Emacs 24 doesn't build on Solaris 10

Previous Next

Package: emacs;

Reported by: Rainer Orth <ro <at> CeBiTec.Uni-Bielefeld.DE>

Date: Fri, 8 Oct 2010 20:18:02 UTC

Severity: important

Found in version 24.0.50

Done: Chong Yidong <cyd <at> stupidchicken.com>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 7178 in the body.
You can then email your comments to 7178 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to owner <at> debbugs.gnu.org, bug-gnu-emacs <at> gnu.org:
bug#7178; Package emacs. (Fri, 08 Oct 2010 20:18:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Rainer Orth <ro <at> CeBiTec.Uni-Bielefeld.DE>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Fri, 08 Oct 2010 20:18:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Rainer Orth <ro <at> CeBiTec.Uni-Bielefeld.DE>
To: bug-gnu-emacs <at> gnu.org
Subject: 24.0.50; Emacs 24 doesn't build on Solaris 10
Date: Fri, 08 Oct 2010 22:04:28 +0200
When I tried to build Emacs bazaar trunk on Solaris 10 to check if
bug#7163 still occurs on trunk, I ran into two issues:

* lisp/Makefile.in (compile-clean) uses $() which the Solaris 10 /bin/sh
  doesn't understand.  This can easily be avoided by using `` instead.

* src/sysdep.c doesn't compile: 

"/usr/include/term.h", line 1034: syntax error before or at: bool

  <term.h> uses bool without providing bool.  <stdbool.h> cannot be
  included since it only works in C99 mode.  The documented solution
  (e.g. on the curs_terminfo(3CURSES) manpage) is to include <curses.h>
  before term.h.  The patch below hardcodes this, but this is most
  likely not the appropriate solution.  Some kind of autoconf magic is
  probably needed to check if <term.h> can be compiled on its own.

	Rainer


2010-10-08  Rainer Orth  <ro <at> CeBiTec.Uni-Bielefeld.DE>

	src:
	* sysdep.c [HAVE_TERM_H]: Include <curses.h> before <term.h>.

	lisp:
	* Makefile.in (compile-clean): Use `` instead of $().

=== modified file 'lisp/Makefile.in'
--- lisp/Makefile.in	2010-09-08 14:42:54 +0000
+++ lisp/Makefile.in	2010-09-08 20:49:05 +0000
@@ -249,7 +249,7 @@
 compile-clean:
 	@cd $(lisp); $(setwins); \
 	elcs=`echo "$$wins " | sed -e 's|/\./|/|g' -e 's|/\. | |g' -e 's| |/*.elc |g'`; \
-	for el in $$(echo $$elcs | sed -e 's/\.elc/\.el/g'); do \
+	for el in `echo $$elcs | sed -e 's/\.elc/\.el/g'`; do \
 	  if test -f "$$el" -o \! -f "$${el}c"; then :; else \
 	    echo rm "$${el}c"; \
 	    rm "$${el}c"; \

=== modified file 'src/sysdep.c'
--- src/sysdep.c	2010-08-22 15:14:37 +0000
+++ src/sysdep.c	2010-09-08 20:34:07 +0000
@@ -97,6 +97,7 @@
 /* Include this last.  If it is ncurses header file, it adds a lot of
    defines that interfere with stuff in other headers.  Someone responsible
    for ncurses messed up bigtime.  See bug#6812.  */
+#include <curses.h>
 #include <term.h>
 #endif
 

-- 
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University




Information forwarded to owner <at> debbugs.gnu.org, bug-gnu-emacs <at> gnu.org:
bug#7178; Package emacs. (Sun, 10 Oct 2010 14:05:02 GMT) Full text and rfc822 format available.

Message #8 received at 7178 <at> debbugs.gnu.org (full text, mbox):

From: Dan Nicolaescu <dann <at> gnu.org>
To: Rainer Orth <ro <at> CeBiTec.Uni-Bielefeld.DE>
Cc: 7178 <at> debbugs.gnu.org
Subject: Re: bug#7178: 24.0.50; Emacs 24 doesn't build on Solaris 10
Date: Sun, 10 Oct 2010 10:07:48 -0400
Rainer Orth <ro <at> CeBiTec.Uni-Bielefeld.DE> writes:

> When I tried to build Emacs bazaar trunk on Solaris 10 to check if
> bug#7163 still occurs on trunk, I ran into two issues:
>
> * lisp/Makefile.in (compile-clean) uses $() which the Solaris 10 /bin/sh
>   doesn't understand.  This can easily be avoided by using `` instead.
>
> * src/sysdep.c doesn't compile: 
>
> "/usr/include/term.h", line 1034: syntax error before or at: bool
>
>   <term.h> uses bool without providing bool.  <stdbool.h> cannot be
>   included since it only works in C99 mode.  The documented solution
>   (e.g. on the curs_terminfo(3CURSES) manpage) is to include <curses.h>
>   before term.h.  The patch below hardcodes this, but this is most
>   likely not the appropriate solution.  Some kind of autoconf magic is
>   probably needed to check if <term.h> can be compiled on its own.

> === modified file 'src/sysdep.c'
> --- src/sysdep.c	2010-08-22 15:14:37 +0000
> +++ src/sysdep.c	2010-09-08 20:34:07 +0000
> @@ -97,6 +97,7 @@
>  /* Include this last.  If it is ncurses header file, it adds a lot of
>     defines that interfere with stuff in other headers.  Someone responsible
>     for ncurses messed up bigtime.  See bug#6812.  */
> +#include <curses.h>
>  #include <term.h>
>  #endif

The only reason to include <term.h> in sysdep.c is to get a prototype
for `tputs' (used in `reset_sys_modes') .
cm.c also uses tputs, but it adds an extern declaration for it.

Given that including <term.h> seems to cause problems, maybe a good
workaround would be to move `reset_sys_modes' to cm.c.




Information forwarded to owner <at> debbugs.gnu.org, bug-gnu-emacs <at> gnu.org:
bug#7178; Package emacs. (Mon, 06 Dec 2010 17:02:02 GMT) Full text and rfc822 format available.

Message #11 received at 7178 <at> debbugs.gnu.org (full text, mbox):

From: Chong Yidong <cyd <at> stupidchicken.com>
To: Rainer Orth <ro <at> CeBiTec.Uni-Bielefeld.DE>
Cc: 7178 <at> debbugs.gnu.org
Subject: Re: 24.0.50; Emacs 24 doesn't build on Solaris 10
Date: Mon, 06 Dec 2010 12:07:23 -0500
> When I tried to build Emacs bazaar trunk on Solaris 10 to check if
> bug#7163 still occurs on trunk, I ran into two issues:
>
> * lisp/Makefile.in (compile-clean) uses $() which the Solaris 10 /bin/sh
>   doesn't understand.  This can easily be avoided by using `` instead.
>
> * src/sysdep.c doesn't compile:
>
> "/usr/include/term.h", line 1034: syntax error before or at: bool

Since the Makefile.in change and the tputs prototype suggested by Dan
have both been committed now, I'm closing the bug.  If the new changes
don't work properly please reopen if, or file another bug if you
encounter other problems building Emacs 24 on Solaris.  Thanks for the
report.




bug closed, send any further explanations to Rainer Orth <ro <at> CeBiTec.Uni-Bielefeld.DE> Request was from Chong Yidong <cyd <at> stupidchicken.com> to control <at> debbugs.gnu.org. (Mon, 06 Dec 2010 17:02:02 GMT) Full text and rfc822 format available.

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Tue, 04 Jan 2011 12:24:04 GMT) Full text and rfc822 format available.

This bug report was last modified 14 years and 228 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.