help-emacs-windows
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [h-e-w] Windows Emacs 22.1 does not start if called from cygwin bash


From: Reiner Hammer
Subject: Re: [h-e-w] Windows Emacs 22.1 does not start if called from cygwin bash
Date: Sat, 03 May 2008 22:28:27 +0200
User-agent: Thunderbird 2.0.0.14 (Windows/20080421)

Jason and Eli, thanks a lot for your consideration and suggestions.
I did some more tests, but still haven't succeeded.

Currently I still have two complete emacs installations (downloaded Windows binaries), the older emacs-21.3 and the new emacs-22.1, in parallel directories. Both run fine if called from Windows. My cygwin bash environment is free of emacs'ish stuff (tested with "set | grep -i emacs"). Even when I change directory into the respective emacs-xx.x/bin directories, add "." to the beginning my cygwin PATH and then call directly "./runemacs.exe" from my bash shell, then emacs-21.3 again starts up correctly, whereas emacs-22.1 just brings up an empty, nonresponsive window that I must ultimately kill manually (and answer "no" to Windows' suggestion to send an error report). Therefore the problem is not related to my older method of using symlinks.

In my previous mail I described a script that pushed everything into the environment that emacs normally stores in the Windows registry, before finally calling emacs. You are right: these environment variables did not make a difference.

There is one small exception, however: EMACSLOADPATH (see script below): If I DON't set this variable in the environment either, then the old emacs-21.3 comes up fine, whereas the new 22.1 produces that nasty unresponsive empty window.

If I DO set and export this variable with paths written in DOS style (see script), the old emacs produces nothing, the new one again the unresponsive window. But if the paths are written in Unix style (see script), both the old and new emacs pop up an error window saying they can't find "term/w32-win.el".

Here's the simple script (where various parts were alternatingly commented out during these tests):
   #!/bin/sh -x
   edir="C:\Programme\Emacs\emacs-22.1"
   #edir="/cygdrive/c/Programme/Emacs/emacs-22.1"
   EMACSLOADPATH="$edir/site_lisp;$edir/lisp"
   export EMACSLOADPATH

   #eval /cygdrive/c/Programme/Emacs/emacs-21.3/bin/runemacs.exe "$*"
   eval /cygdrive/c/Programme/Emacs/emacs-22.1/bin/runemacs.exe "$*"

From this I conclude that you're right: One should NOT set these environment variables at all.

But yet the new version of emacs doesn't come up in a working fashion. As I said, I don't think my other environment variables are responsible. I also checked that I had not set anything special for the old executable (such as a Windows execution exemption - sorry, I don't know how this is called in an English version of Windows; mine is German.) I also updated all of my installed cygwin packages last night before these tests.

The problem might have to do with dynamic libraries, as suggested in another mail by Eli. On our Solaris boxes at work, I would simply type "ldd <executable>" to see which library versions the executable links against if called. But under cygwin there seems to be no "ldd", and I don't know what other tools one should use instead; I never did any development in that environment.

Any further suggestions?

Thanks again -Reiner

Jason Rumney wrote on 03.05.2008 12:15:
Jason Rumney wrote:
Reiner Hammer wrote:

  #!/bin/sh
  edir="/cygdrive/c/Programme/Emacs/emacs-22.1"

Don't use Cygwin paths for non-Cygwin programs. You shouldn't need to set any environment variables anyway, as Emacs will pick up the registry entries (assuming they are correct), or if the registry entries are not there, it will find the files it needs relative to where emacs.exe is located.

Actually, its probably this last bit that's failing, since you're using a Cygwin symlink to start Emacs, so emacs may be getting confused about the location of emacs.exe. So setting the environment variables may be needed, but use a Windows path, not a Cygwin one.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]