[Top][All Lists]

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

Re: Emacs Anyone?

From: Riccardo Mottola
Subject: Re: Emacs Anyone?
Date: Mon, 3 Apr 2017 10:01:00 +0200
User-agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0 SeaMonkey/2.46

Hi Wolfgang,

Wolfgang Lux wrote:
I'm afraid there's not really any trivial solution for at least NetBSD and 
OpenBSD that is not a gross hack. The problem is that the Objective-C runtime 
system expects that it's class and method tables are initialized when a program 
starts. In particular, for each compilation unit the compiler generates 
implicit calls to _objc_exec_class that makes sure the class structures and 
method dispatch tables are initialized for all classes used in that compilation 
unit. This code is added to the init section of the object file. At runtime the 
C startup code will execute all functions compiled into the init section. 
Unfortunately, in a sort of paranoia (that I generally appreciate), the NetBSD 
and OpenBSD startup code uses a flag in private memory to ensure that this code 
is executed only once. The final Emacs executable is the result of dumping the 
process with all essential modules loaded. Obviously, at that point the 
initialization code has been run and the flag is set, so when you execute the 
dumped emacs executable the initialization code is not run again. Now this 
would actually make sense if the data structures generated by the Objective-C 
runtime system were part of the dumped Emacs executable, but apparently they 
are not.

Do you mean this makes obj-c totally non functional or it only impedes our standard initialization, but once done it would work?

In any case, I repeat: this is an additional OpenBSD and NetBSD issu. On Linux I can get emacs to compile but it is not usuable anyway.


reply via email to

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