Re: basic incomplete NetBSD support

2011-02-09 Thread Brad Roberts
On 2/8/2011 6:37 AM, Thomas Klausner wrote:
 On Sun, Jan 30, 2011 at 09:23:50PM +0100, Thomas Klausner wrote:
 Since it looked like I would need D for a project, I started porting
 it to NetBSD. The project has been cancelled in the meantime, but I
 don't want my patches to be lost, so I offer them here for inclusion.
 
 Anyone interested?
  Thomas

A newsgroup / mailing list post by definition will get lost.  If you're 
interested in getting them folded in, a bugzilla
entry with the patches will help, or even better a branch on github with the 
changes and a pull request.

However, without a user base, it's almost certain that netbsd would bit rot.

Later,
Brad


Re: basic incomplete NetBSD support

2011-02-09 Thread Walter Bright

Brad Roberts wrote:

On 2/8/2011 6:37 AM, Thomas Klausner wrote:

On Sun, Jan 30, 2011 at 09:23:50PM +0100, Thomas Klausner wrote:

Since it looked like I would need D for a project, I started porting
it to NetBSD. The project has been cancelled in the meantime, but I
don't want my patches to be lost, so I offer them here for inclusion.

Anyone interested?
 Thomas


A newsgroup / mailing list post by definition will get lost.  If you're 
interested in getting them folded in, a bugzilla
entry with the patches will help, or even better a branch on github with the 
changes and a pull request.


I agree with Brad.



However, without a user base, it's almost certain that netbsd would bit rot.


We'd need to add a netbsd machine to the build/test farm!


Re: basic incomplete NetBSD support

2011-02-08 Thread Thomas Klausner
On Sun, Jan 30, 2011 at 09:23:50PM +0100, Thomas Klausner wrote:
 Since it looked like I would need D for a project, I started porting
 it to NetBSD. The project has been cancelled in the meantime, but I
 don't want my patches to be lost, so I offer them here for inclusion.

Anyone interested?
 Thomas


basic incomplete NetBSD support

2011-01-30 Thread Thomas Klausner
Hi!

Since it looked like I would need D for a project, I started porting
it to NetBSD. The project has been cancelled in the meantime, but I
don't want my patches to be lost, so I offer them here for inclusion.

Most of the time, NetBSD can be handled just like FreeBSD. Following
this rule, I got dmd to compile rather quickly; however, I didn't get
it to compile a simple d program.

# cat foo.d
int main() { return 42; }
# cat /tmp/dd  
./work/dmd2/src/dmd/dmd -Iwork/dmd2/src/druntime/import -Iwork/dmd2/src/phobos/ 
foo.d -L-Lwork/dmd2/src/phobos/generated/freebsd/release
# sh /tmp/dd
work/dmd2/src/phobos/generated/freebsd/release/libphobos2.a(thread_e9_897.o): 
In function `thread_suspendHandler':
src/core/thread.d:(.text.thread_suspendHandler+0x91): warning: warning: 
reference to compatibility sigsuspend(); include signal.h for correct 
reference
work/dmd2/src/phobos/generated/freebsd/release/libphobos2.a(runtime_d7_76e.o): 
In function `runModuleUnitTests':
src/core/runtime.d:(.text.runModuleUnitTests+0x4d): warning: warning: reference 
to compatibility sigaction(); include signal.h for correct reference
work/dmd2/src/phobos/generated/freebsd/release/libphobos2.a(thread_eb_258.o): 
In function `_D4core6thread6Thread5sleepFS4core4time8DurationZv':
src/core/thread.d:(.text._D4core6thread6Thread5sleepFS4core4time8DurationZv+0x65):
 warning: warning: reference to compatibility nanosleep(); include time.h to 
generate correct reference
work/dmd2/src/phobos/generated/freebsd/release/libphobos2.a(thread_e9_897.o): 
In function `thread_suspendHandler':
src/core/thread.d:(.text.thread_suspendHandler+0x74): warning: warning: 
reference to compatibility sigdelset(); include signal.h for correct reference
work/dmd2/src/phobos/generated/freebsd/release/libphobos2.a(runtime_d7_76e.o): 
In function `runModuleUnitTests':
src/core/runtime.d:(.text.runModuleUnitTests+0x23): warning: warning: reference 
to compatibility sigfillset(); include signal.h for correct reference
work/dmd2/src/phobos/generated/freebsd/release/libphobos2.a(memory_568_620.o): 
In function `_D2rt6memory16initStaticDataGCFZv':
src/rt/memory.d:(.text._D2rt6memory16initStaticDataGCFZv+0x7): undefined 
reference to `__data_start'
work/dmd2/src/phobos/generated/freebsd/release/libphobos2.a(runtime_d7_76e.o): 
In function 
`_D4core7runtime18runModuleUnitTestsUZb19unittestSegvHandlerUiPS4core3sys5posix6signal9siginfo_tPvZv':
src/core/runtime.d:(.text._D4core7runtime18runModuleUnitTestsUZb19unittestSegvHandlerUiPS4core3sys5posix6signal9siginfo_tPvZv+0x28):
 undefined reference to `backtrace'
src/core/runtime.d:(.text._D4core7runtime18runModuleUnitTestsUZb19unittestSegvHandlerUiPS4core3sys5posix6signal9siginfo_tPvZv+0x38):
 undefined reference to `backtrace_symbols_fd'
work/dmd2/src/phobos/generated/freebsd/release/libphobos2.a(memory_566_5d0.o): 
In function `rt_stackBottom':
src/rt/memory.d:(.text.rt_stackBottom+0x4): undefined reference to 
`__libc_stack_end'
work/dmd2/src/phobos/generated/freebsd/release/libphobos2.a(runtime_d8_792.o): 
In function 
`_D4core7runtime19defaultTraceHandlerFPvZC6object9Throwable9TraceInfo16DefaultTraceInfo6__ctorMFZC4core7runtime19defaultTraceHandlerFPvZC6object9Throwable9TraceInfo16DefaultTraceInfo':
src/core/runtime.d:(.text._D4core7runtime19defaultTraceHandlerFPvZC6object9Throwable9TraceInfo16DefaultTraceInfo6__ctorMFZC4core7runtime19defaultTraceHandlerFPvZC6object9Throwable9TraceInfo16DefaultTraceInfo+0x2b):
 undefined reference to `backtrace'
src/core/runtime.d:(.text._D4core7runtime19defaultTraceHandlerFPvZC6object9Throwable9TraceInfo16DefaultTraceInfo6__ctorMFZC4core7runtime19defaultTraceHandlerFPvZC6object9Throwable9TraceInfo16DefaultTraceInfo+0x3e):
 undefined reference to `backtrace_symbols'
work/dmd2/src/phobos/generated/freebsd/release/libphobos2.a(dmain2_513_2f9.o): 
In function `rt_init':
src/rt/dmain2.d:(.text.rt_init+0x1c): undefined reference to `__data_start'
work/dmd2/src/phobos/generated/freebsd/release/libphobos2.a(thread_e8_713.o): 
In function `thread_entryPoint':
src/core/thread.d:(.text.thread_entryPoint+0x8a): undefined reference to 
`_pthread_cleanup_push'
src/core/thread.d:(.text.thread_entryPoint+0xc7): undefined reference to 
`_pthread_cleanup_pop'
--- errorlevel 1

That's when I started looking at the runtime in more detail and found
that the header files (in C terms; is that the correct term for D?)
have cases for every operating system separately. The last patches in
the patch set started addressing this issue, but I got exhausted,
since basically I wanted to use the FreeBSD case for now and just add
NetBSD cases where needed (like for errno). It seems that my port is
using Linux as operating system (e.g. patch-bh changes the Linux case
to reduce errors), so I must have made an error in the operating
system checks as well.

My patchset against dmd.2.051.zip is attached. It touches some
Makefiles, which you can probably skip,