[Top][All Lists]

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

Re: How to correctly determine a small object?

From: Chan Maxthon
Subject: Re: How to correctly determine a small object?
Date: Sun, 09 Jun 2013 06:14:31 +0800

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 <address@hidden> 写道:

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 <address@hidden> 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 <address@hidden> 写道:

On Sat, Jun 8, 2013 at 9:55 PM, Chan Maxthon <address@hidden> wrote:
I am expecting a solution that works on both OS X and GNUstep.


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 - address@hidden

Gnustep-dev mailing list

Ivan Vučica - address@hidden

reply via email to

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