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
[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
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
State Changed From-To: open->closed Patch committed to both emacs ports. Thanks!