Bug 10783 - ELF emacs 19.34 hangs under X windows
Summary: ELF emacs 19.34 hangs under X windows
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: Normal Affects Only Me
Assignee: freebsd-ports (Nobody)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 1999-03-25 05:10 UTC by Peter Jeremy
Modified: 1999-04-10 01:16 UTC (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Peter Jeremy 1999-03-25 05:10:00 UTC
	When an ELF emacs is started as an X11 client, emacs opens a
	window and then nothing happens.  ktrace and and xscope show
	emacs is continuously sending GetInputFocus commands to the
	X-server.

	The immediate cause is emacs looping in x_make_frame_visible().
	It is apparently waiting for an input event indicating that
	the window has been mapped.  It expects to get informed of
	this when a signal (presumably SIGIO) invokes XTread_socket().
	The only problem is that I can't find anything to enable SIGIO
	and sigaction(2) is never called.

	This problem does not occur with a 2.x aout emacs running with
	2.x X11 libraries.  (Although I don't have an aout debugger to
	follow the control flow).

How-To-Repeat: 
	cd /usr/ports/editors/emacs
	make
	make install
	DISPLAY=:0 emacs
Comment 1 Peter Jeremy 1999-04-09 22:20:23 UTC
[Changing the subject line to suit gnats]

"Deatherage, David" <DDeatherage@bridge.com> wrote:
> I've found where this problem is coming from.  It's in
> emacs20.3/src/s/freebsd.h.  It sets a macro called BSD_SYSTEM based upon the
> version number contained in __FreeBSD__, checking for 1, 2 and 3.  Of
> course, -current uses 4.  I have found that you can check for __FreeBSD__ >=
> 3, and it will work, but this feels a bit like a hack.  I've never updated a
> port, so I can either get some instruction from someone to put in a patch,
> or let someone else do it.

Thanks David.  It's the same problem in the editors/emacs port.  I
should have thought of something like this when I first saw the
problem :-(.  The equality tests on __FreeBSD__ are used to define a
macro `BSD'.  At least in 19.34, the value of this macro is never
checked, just its definition, so David's change is adequate.

Joel Ray Holveck <joelh@gnu.org> 
>I'll make the patch if a committer can get it in.
Going thru the proper FreeBSD channels...  (Joel might like to see if he
can get it integrated into emacs).

The fix for 19.34 is a patch file:

diff -bur work.old/emacs-19.34/src/s/freebsd.h work/emacs-19.34/src/s/freebsd.h
--- work.old/emacs-19.34/src/s/freebsd.h        Fri Mar 12 12:18:16 1999
+++ work/emacs-19.34/src/s/freebsd.h    Sat Apr 10 06:32:00 1999
@@ -112,7 +112,7 @@
 #define BSD 199103
 #elif __FreeBSD__ == 2
 #define BSD 199306
-#elif __FreeBSD__ == 3
+#elif __FreeBSD__ >= 3
 #define BSD 199506
 #endif
 
Satoshi (or someone else with the complete ports tree):  How about doing
a quick search for any other equality checks against __FreeBSD__ or
__FreeBSD_version that are biting us.  (And maybe keeping the list
around so we don't go thru the same thing next year when we move to
FreeBSD-5.x)

Peter
Comment 2 sprice 1999-04-10 00:09:14 UTC
On Sat, 10 Apr 1999, Peter Jeremy wrote:

# Going thru the proper FreeBSD channels...  (Joel might like to see if he
# can get it integrated into emacs).
# 
# The fix for 19.34 is a patch file:
# 
# diff -bur work.old/emacs-19.34/src/s/freebsd.h work/emacs-19.34/src/s/freebsd.h
# --- work.old/emacs-19.34/src/s/freebsd.h        Fri Mar 12 12:18:16 1999
# +++ work/emacs-19.34/src/s/freebsd.h    Sat Apr 10 06:32:00 1999
# @@ -112,7 +112,7 @@
#  #define BSD 199103
#  #elif __FreeBSD__ == 2
#  #define BSD 199306
# -#elif __FreeBSD__ == 3
# +#elif __FreeBSD__ >= 3
#  #define BSD 199506
#  #endif

Got it.  Let me build both versions of emacs, do a couple of
quick tests, and I'll commit these changes.

# Satoshi (or someone else with the complete ports tree):  How about doing
# a quick search for any other equality checks against __FreeBSD__ or
# __FreeBSD_version that are biting us.  (And maybe keeping the list
# around so we don't go thru the same thing next year when we move to
# FreeBSD-5.x)

The biggest part of the list is pretty easy - anything that uses
libtool. :)  I'm pretty sure that most (all?) of the existing ports
that use libtool have been fixed.  Jeremy Lea has some patches
floating around that should take care of remaining broken ones and
all newcomer ports that use libtool.

-steve
Comment 3 Steve Price freebsd_committer freebsd_triage 1999-04-10 01:15:03 UTC
State Changed
From-To: open->closed

Patch committed to both emacs ports.  Thanks!