Well that is why I am using LLVM bit code as the object file format (I have 
-emit-llvm lying in my Makefile's CFLAGS) as it is largely ABI and platform 
insensitive. And I also have -ffreestanding to make sure that the resulting bit 
code is suitable for bare metal execution.

发自我的 iPhone

在 2013-6-9,6:04,Ivan Vučica <ivuc...@gmail.com> 写道:

> Hi Maxthon,
> 
> I believe you'll really want to compile everything on the same platform, or 
> cross-compile for the target platform. I don't think you'll be able to easily 
> mix code targeting the GNUstep runtime with code targeting the NeXT runtime.
> 
> The only reason that I can think of why you might have to try getting away 
> with mixing code compiled for different runtimes is binary compatibility -- 
> which is what Luboš is trying to achieve :-)
> 
> Any other use case (including putting portions of the Objective-C runtime and 
> GNUstep into a kernel) should really involve compiling on a single machine, 
> with a single compiler; mixing compiler, target runtimes, et cetera in the 
> same binary means only asking for trouble down the road, even without 
> involving things like "figuring out if a pointer points to a small or regular 
> object"...
> 
> On Sat, Jun 8, 2013 at 11:51 PM, Chan Maxthon <xcvi...@me.com> wrote:
>> I am sort of looking into the concept of running Objective-C in a kernel of 
>> an operating system, which would require implementing a (partial) libobjc2 
>> and Foundation that can run on bare metal. Since all my develop machines 
>> have clang I can exchange compiled object files in LLVM bitcode and only the 
>> linking would ask for a Linux box. This is why I am asking this question.
>> 
>> 发自我的 iPhone
>> 
>> 在 2013-6-9,5:15,Ivan Vučica <ivuc...@gmail.com> 写道:
>> 
>>> On Sat, Jun 8, 2013 at 9:55 PM, Chan Maxthon <xcvi...@me.com> wrote:
>>>> I am expecting a solution that works on both OS X and GNUstep.
>>> 
>>> Why?
>>> 
>>> This is an implementation detail which can differ on OS X and GNUstep. As 
>>> far as I understand it, it's only needed inside CoreBase/Core Foundation. 
>>> Why would you need to even determine if something is a small pointer in 
>>> another library?
>>> 
>>> Luboš can correct me if I'm wrong, but you don't need to know whether the 
>>> pointer is a "small object" outside very small amount of runtime code and 
>>> toll-free bridging-related code, which will be implemented in core GNUstep 
>>> libraries; and for any binary compatibility you will not and should not 
>>> need to know this implementation detail about the kind of object that is 
>>> stored in a pointer.
>>> 
>>> Right? :-)
>>> -- 
>>> Ivan Vučica - i...@vucica.net
>> 
>> _______________________________________________
>> Gnustep-dev mailing list
>> Gnustep-dev@gnu.org
>> https://lists.gnu.org/mailman/listinfo/gnustep-dev
> 
> 
> 
> -- 
> Ivan Vučica - i...@vucica.net
> 
_______________________________________________
Gnustep-dev mailing list
Gnustep-dev@gnu.org
https://lists.gnu.org/mailman/listinfo/gnustep-dev

Reply via email to