Beta D 2.068.0-b2

Kelet via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Fri Jul 31 10:56:21 PDT 2015


On Friday, 31 July 2015 at 15:58:24 UTC, Gerald Jansen wrote:
> I'm not sure if this is the right place to report issues. I 
> downloaded dmd.2.068.0-b2.linux.zip, unzipped it and added the 
> bin64 directory to my path. The standard hello.d compiles fine 
> but segfaults immediately. Details follow. Also rdmd segfaults 
> with the same message. (The same process with the 2.067.1 zip 
> works fine on the same box.)
>
> Details:
> gjansen at gamma:~$ uname -a
> Linux gamma 2.6.32-279.14.1.el6.x86_64 #1 SMP Mon Oct 15 
> 13:44:51 EDT 2012 x86_64 x86_64 x86_64 GNU/Linux
> gjansen at gamma:~$ dmd --version
> DMD64 D Compiler v2.068.0-b2
> Copyright (c) 1999-2015 by Digital Mars written by Walter Bright
> gjansen at gamma:~$ dmd hello.d
> gjansen at gamma:~$ ./hello
> Segmentation fault (core dumped)
> gjansen at gamma:~$ gdb hello
> <snip>
> (gdb) run
> Starting program: /ricerca/gjansen/hello
> [Thread debugging using libthread_db enabled]
>
> Program received signal SIGSEGV, Segmentation fault.
> 0x00000000004418e1 in _d_initMonoTime ()
> Missing separate debuginfos, use: debuginfo-install 
> glibc-2.12-1.80.el6_3.6.x86_64

Hi Gerald,

MonoTime is the replacement for TickDuration and it's initialized 
from the runtime initialization function (rt_init). This is 
because the GC and others may need time functionality.

Unfortunately, it looks like MonoTime does not currently support 
your kernel version. It needs at least Linux 2.6.39. The reason 
being is that it has the CLOCK_BOOTTIME clock which was 
implemented in Linux 2.6.39. Without this clock, the minimum 
version would be Linux 2.6.32.

If I had to hazard a guess, I'd say the offending segfault is 
coming from calling clock_getres(clockArg, &ts) (where clockArg 
is essentially CLOCK_BOOTTIME) in _d_initMonoTime(). It seems to 
call this for all supported Clocks for your platform.

Hopefully some code can be added to only allow CLOCK_BOOTTIME on 
kernels that support it. 2.6.32 is still supported as a longterm 
kernel release.

Regards,
Kelet


More information about the Digitalmars-d-announce mailing list