Thread overview
Re: OPTLINK needs to die.
Feb 20, 2009
Walter Bright
Feb 20, 2009
Walter Bright
Feb 20, 2009
davidl
Feb 20, 2009
Jason House
February 20, 2009
On Mon, Feb 16, 2009 at 7:27 PM, Jarrett Billingsley <jarrett.billingsley@gmail.com> wrote:

>

So byte[] (Chris Miller, sans R.) suggested that I suggest that we get a flag for the Windows version of DMD to output ELF objects.  The ELF writer is already there.  Why not just give us the option, and let us fend for ourselves?  ;)
February 20, 2009
Jarrett Billingsley wrote:
> So byte[] (Chris Miller, sans R.) suggested that I suggest that we get
> a flag for the Windows version of DMD to output ELF objects.  The ELF
> writer is already there.  Why not just give us the option, and let us
> fend for ourselves?  ;)

There's more to it than that, such as the memory model. For example, are reals 10 bytes (Windows) or 12 (Linux) or 16 (OSX) ?
February 20, 2009
On Thu, Feb 19, 2009 at 10:44 PM, Walter Bright <newshound1@digitalmars.com> wrote:
> Jarrett Billingsley wrote:
>>
>> So byte[] (Chris Miller, sans R.) suggested that I suggest that we get a flag for the Windows version of DMD to output ELF objects.  The ELF writer is already there.  Why not just give us the option, and let us fend for ourselves?  ;)
>
> There's more to it than that, such as the memory model. For example, are
> reals 10 bytes (Windows) or 12 (Linux) or 16 (OSX) ?
>

So I'm assuming you have code like:

#if USING_ELF
    real.alignof = 12;
#elseif USING_OMF
    real.alignof = 10;
#elseif USING_MACH_O
    real.alignof = 16;
#endif

So.. all you'd have to do is separate the "OS" logical decisions from the "object type" decisions.

Or?
February 20, 2009
Jarrett Billingsley wrote:
> So.. all you'd have to do is separate the "OS" logical decisions from
> the "object type" decisions.
> 
> Or?

Let me put it this way - I thought doing the mac port, which is stuff like that, would take a week. It took 6 weeks.

An elf output would be targeting a different C/C++ compiler ABI and runtime library. It's not terribly difficult, it's just time consuming and not trivial.
February 20, 2009
On Thu, Feb 19, 2009 at 11:47 PM, Walter Bright <newshound1@digitalmars.com> wrote:
> Jarrett Billingsley wrote:
>>
>> So.. all you'd have to do is separate the "OS" logical decisions from the "object type" decisions.
>>
>> Or?
>
> Let me put it this way - I thought doing the mac port, which is stuff like that, would take a week. It took 6 weeks.
>
> An elf output would be targeting a different C/C++ compiler ABI and runtime library. It's not terribly difficult, it's just time consuming and not trivial.
>

But at the same time, the benefits are undeniable.  s/ELF/any object format other than OMF/, and it still holds.
February 20, 2009
Walter Bright Wrote:

> Let me put it this way - I thought doing the mac port, which is stuff like that, would take a week. It took 6 weeks.

... so we can expect a 64 bit dmd next week? <g>
February 20, 2009
在 Fri, 20 Feb 2009 12:59:17 +0800,Jarrett Billingsley <jarrett.billingsley@gmail.com> 写道:

> On Thu, Feb 19, 2009 at 11:47 PM, Walter Bright
> <newshound1@digitalmars.com> wrote:
>> Jarrett Billingsley wrote:
>>>
>>> So.. all you'd have to do is separate the "OS" logical decisions from
>>> the "object type" decisions.
>>>
>>> Or?
>>
>> Let me put it this way - I thought doing the mac port, which is stuff like
>> that, would take a week. It took 6 weeks.
>>
>> An elf output would be targeting a different C/C++ compiler ABI and runtime
>> library. It's not terribly difficult, it's just time consuming and not
>> trivial.
>>
>
> But at the same time, the benefits are undeniable.  s/ELF/any object
> format other than OMF/, and it still holds.

I've got an idea is that DDL linker load everything, then a PE dump(a lot debugger plugin can do this) to create the binary with some little post patch.