* cygwin emacs gtk2 problem fix
@ 2008-07-07 0:32 d.henman
0 siblings, 0 replies; 3+ messages in thread
From: d.henman @ 2008-07-07 0:32 UTC (permalink / raw)
To: emacs-devel
I have found a simple fix to for the cygwin emacs gtk2 problem, as mentioned in the etc/PROBLEM file. I do not have, the proper status to change the cvs files, so I am presenting this patch for the etc/PROBLEM file. The patch below describes my fix fo
r the gtk2 emacs crash problem on startup, due to failure to allocate memory.
Regards,
Darel Henman
For reference, this fix works on my machine which uses the following gtk2 elements and cygwin version:
glib-2.16.4 , atk-1.9.0 , pixman-0.11.4 , cairo-1.6.4 , pango-1.21.3 , gtk+-2.12.11
CYGWIN_NT-5.1 1.5.25(0.156/4/2) 2008-06-12
compiled with: gcc (GCC) 4.3.2 20080619 (prerelease)
================ submitted patch for etc/PROBLEMS file follows ================
--- emacs/etc/PROBLEMS
+++ modified-20080707
@@ -233,7 +233,7 @@
This happens because of bugs in Gtk+. Gtk+ 2.10 seems to be OK. See bug
http://bugzilla.gnome.org/show_bug.cgi?id=85715.
-** Emacs compiled with Gtk+ crashes on startup on Cygwin.
+** Emacs compiled with Gtk+ crashes on startup from Cygwin's X11 window.
A typical error message is
***MEMORY-ERROR***: emacs[5172]: GSlice: failed to allocate 504 bytes
@@ -241,8 +241,18 @@
Emacs supplies its own malloc, but glib (part of Gtk+) calls memalign and on
Cygwin, that becomes the Cygwin supplied memalign. As malloc is not the
-Cygwin malloc, the Cygwin memalign always returns ENOSYS. A fix for this
-problem would be welcome.
+Cygwin malloc, the Cygwin memalign always returns ENOSYS.
+
+A fix for this, that worked for me, involves setting the G_SLICE environment
+variable, which allows reconfiguration of the GSlice memory allocator. It is
+convenient to do this in your X11's $HOME/.xinitrc file as follows, before any
+"exec emacs &" line in the file, if you have any:
+
+export G_SLICE=always-malloc
+
+This fix can be easily tested on a cygwin x-window command line by typing:
+ $ export G_SLICE=always-malloc
+ $ emacs
* General runtime problems
================ end of submitted etc/PROBLEMS patch ================
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: cygwin emacs gtk2 problem fix
@ 2008-07-07 22:41 Angelo Graziosi
2008-07-08 3:03 ` d.henman
0 siblings, 1 reply; 3+ messages in thread
From: Angelo Graziosi @ 2008-07-07 22:41 UTC (permalink / raw)
To: d.henman; +Cc: eliz, emacs-devel
d.henman wrote:
> I have found a simple fix to for the cygwin emacs gtk2 problem,
> as mentioned in the etc/PROBLEM file.
> [...]
>
> + $ export G_SLICE=always-malloc
> + $ emacs
Confirmed. It works just fine!
Now the question is: could that be done at level of source code?
Cheers,
Angelo.
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: cygwin emacs gtk2 problem fix
2008-07-07 22:41 Angelo Graziosi
@ 2008-07-08 3:03 ` d.henman
0 siblings, 0 replies; 3+ messages in thread
From: d.henman @ 2008-07-08 3:03 UTC (permalink / raw)
To: emacs-devel; +Cc: eliz, Angelo Graziosi
Thanks for the confirmation that the fix works for you as well.
As to your question:
"> Now the question is: could that be done at level of source code?"
I am not familiar with the source code, though I did try something like the following in "../lisp/startup.el", thinking it might work.
Ideally I7d use the below (if (and ...)) structure, but I don't now how to determine the toolkit emacs was built with. I simply wrote "x-toolkit" to illustrate.
(if (and (string= system-type "cygwin") (string= x-toolkit "gtk2"))
(setenv "G_SLICE" "always-malloc"))
but, since I don't know how to find the toolkit used I just used the below:
(if (string= system-type "cygwin")
(setenv "G_SLICE" "always-malloc"))
But, this did not work. emacs just crashed. I guess startup.el is called after doing some processing with the toolkit.
Regards,
Darel Henman
Angelo Graziosi <angelo.graziosi@alice.it> wrote:
> d.henman wrote:
>
> > I have found a simple fix to for the cygwin emacs gtk2 problem,
> > as mentioned in the etc/PROBLEM file.
> > [...]
> >
> > + $ export G_SLICE=always-malloc
> > + $ emacs
>
> Confirmed. It works just fine!
>
> Now the question is: could that be done at level of source code?
>
>
> Cheers,
> Angelo.
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2008-07-08 3:03 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-07-07 0:32 cygwin emacs gtk2 problem fix d.henman
-- strict thread matches above, loose matches on Subject: below --
2008-07-07 22:41 Angelo Graziosi
2008-07-08 3:03 ` d.henman
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.