May 08, 2014
On Thursday, 8 May 2014 at 07:55:04 UTC, Jacob Carlborg wrote:
> On 08/05/14 08:53, iridium wrote:
>
>> That's what happens when linking:
>> http://itmages.ru/image/view/1655772/669acb30
>
> You need to link with both Phobos and the C standard library. Run "dmd -v main.d" and look at the linking step at the end.

dmd -v test.d result: http://itmages.ru/image/view/1655879/d0bb1c62

gcc -o main test.o ../../phobos/generated/haiku/release/32/libphobos2.a -lstdc++ -lroot result: http://itmages.ru/image/view/1655886/0be9d48f
May 08, 2014
On Thursday, 8 May 2014 at 08:18:16 UTC, iridium wrote:
> On Thursday, 8 May 2014 at 07:55:04 UTC, Jacob Carlborg wrote:
>> On 08/05/14 08:53, iridium wrote:
>>
>>> That's what happens when linking:
>>> http://itmages.ru/image/view/1655772/669acb30
>>
>> You need to link with both Phobos and the C standard library. Run "dmd -v main.d" and look at the linking step at the end.
>
> dmd -v test.d result: http://itmages.ru/image/view/1655879/d0bb1c62
>
> gcc -o main test.o ../../phobos/generated/haiku/release/32/libphobos2.a -lstdc++ -lroot result: http://itmages.ru/image/view/1655886/0be9d48f

Try linking to druntime alone first, before you start messing with phobos.  You'll notice that the makefile for druntime builds a libdruntime-haiku32.a library, if you modify the makefile for Haiku.  Try building some simple executables with that first before moving on to phobos.

You need to go through all the TARGET_FREEBSD blocks in the dmd source and all the version(FreeBSD) blocks in druntime and add TARGET_HAIKU, version(Haiku), and the appropriate source for Haiku inside those blocks.  We can't sit here and help you do that, unless it's something truly unusual that you're unable to figure out.  Most of these errors seem to be the result of missing some blocks here and there.

Admittedly, porting to a new OS is not a small job, and you seem to be going pretty fast.  Keep plugging away at it and I'm sure you'll be able to figure it out.
May 09, 2014
On Thursday, 8 May 2014 at 10:02:53 UTC, Joakim wrote:
> On Thursday, 8 May 2014 at 08:18:16 UTC, iridium wrote:
>> On Thursday, 8 May 2014 at 07:55:04 UTC, Jacob Carlborg wrote:
>>> On 08/05/14 08:53, iridium wrote:
>>>
>>>> That's what happens when linking:
>>>> http://itmages.ru/image/view/1655772/669acb30
>>>
>>> You need to link with both Phobos and the C standard library. Run "dmd -v main.d" and look at the linking step at the end.
>>
>> dmd -v test.d result: http://itmages.ru/image/view/1655879/d0bb1c62
>>
>> gcc -o main test.o ../../phobos/generated/haiku/release/32/libphobos2.a -lstdc++ -lroot result: http://itmages.ru/image/view/1655886/0be9d48f
>
> Try linking to druntime alone first, before you start messing with phobos.  You'll notice that the makefile for druntime builds a libdruntime-haiku32.a library, if you modify the makefile for Haiku.  Try building some simple executables with that first before moving on to phobos.
>
> You need to go through all the TARGET_FREEBSD blocks in the dmd source and all the version(FreeBSD) blocks in druntime and add TARGET_HAIKU, version(Haiku), and the appropriate source for Haiku inside those blocks.  We can't sit here and help you do that, unless it's something truly unusual that you're unable to figure out.  Most of these errors seem to be the result of missing some blocks here and there.
>
> Admittedly, porting to a new OS is not a small job, and you seem to be going pretty fast.  Keep plugging away at it and I'm sure you'll be able to figure it out.
I'm not asking to solve the problem for me. Just tell me what is that. I try to building some simple executables and get this and that: http://itmages.ru/image/view/1657447/92442093

dmd -c -v main.d: http://itmages.ru/image/view/1657453/3f46cbd9

main.d contains:

module main;

void main()
{

}

May 09, 2014
On Friday, 9 May 2014 at 07:21:36 UTC, iridium wrote:
> I'm not asking to solve the problem for me. Just tell me what is that. I try to building some simple executables and get this and that: http://itmages.ru/image/view/1657447/92442093
Those are linker errors, because you are missing symbols like __stdoutp and __stderrp.  My guess is that you simply cut and pasted the stdc.stdio block from FreeBSD, but Haiku likely doesn't define the same symbols.  You need to look at stdio.h and other header files in Haiku and fill those druntime blocks in with the declarations appropriate to Haiku.  It also looks like you messed something up with setting up rt.sections_haiku.  Finally, as Jacob mentioned, you should look at the flags that dmd normally uses when it links, as you're missing some of those.
1 2
Next ›   Last »