www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Ubuntu 12.04 and DMD 2.060

reply =?ISO-8859-1?Q?Alex_R=F8nne_Petersen?= <alex lycus.org> writes:
Hi,

Has anyone managed to get the 2.060 .deb working on Ubuntu 12.04? On all 
12.04 systems I have access to, all D programs consistently segmentation 
fault in gc_init().

-- 
Alex Rønne Petersen
alex lycus.org
http://lycus.org
Aug 06 2012
next sibling parent reply =?ISO-8859-1?Q?Alex_R=F8nne_Petersen?= <alex lycus.org> writes:
On 07-08-2012 02:12, Alex Rønne Petersen wrote:
 Hi,

 Has anyone managed to get the 2.060 .deb working on Ubuntu 12.04? On all
 12.04 systems I have access to, all D programs consistently segmentation
 fault in gc_init().

Seems to only occur for 64-bit binaries built with DMD. 32-bit ones work fine. Also, it seems to work for people who haven't enabled the precise-proposed repository. (And of course, it worked just fine either way in 11.10.) -- Alex Rønne Petersen alex lycus.org http://lycus.org
Aug 06 2012
parent reply =?ISO-8859-1?Q?Alex_R=F8nne_Petersen?= <alex lycus.org> writes:
On 07-08-2012 02:59, Alex Rønne Petersen wrote:
 On 07-08-2012 02:12, Alex Rønne Petersen wrote:
 Hi,

 Has anyone managed to get the 2.060 .deb working on Ubuntu 12.04? On all
 12.04 systems I have access to, all D programs consistently segmentation
 fault in gc_init().

Seems to only occur for 64-bit binaries built with DMD. 32-bit ones work fine. Also, it seems to work for people who haven't enabled the precise-proposed repository. (And of course, it worked just fine either way in 11.10.)

Digging further, it appears that in src/gc/gc.d:gc_init() in druntime, the ClassInfo object resulting from GC.classinfo contains bogus data (or something). It seems to fetch the right object, but ci.init.length is 0 and ci.init.ptr is null. Anyone have any ideas? -- Alex Rønne Petersen alex lycus.org http://lycus.org
Aug 06 2012
parent =?ISO-8859-1?Q?Alex_R=F8nne_Petersen?= <alex lycus.org> writes:
On 07-08-2012 03:39, Alex Rønne Petersen wrote:
 On 07-08-2012 02:59, Alex Rønne Petersen wrote:
 On 07-08-2012 02:12, Alex Rønne Petersen wrote:
 Hi,

 Has anyone managed to get the 2.060 .deb working on Ubuntu 12.04? On all
 12.04 systems I have access to, all D programs consistently segmentation
 fault in gc_init().

Seems to only occur for 64-bit binaries built with DMD. 32-bit ones work fine. Also, it seems to work for people who haven't enabled the precise-proposed repository. (And of course, it worked just fine either way in 11.10.)

Digging further, it appears that in src/gc/gc.d:gc_init() in druntime, the ClassInfo object resulting from GC.classinfo contains bogus data (or something). It seems to fetch the right object, but ci.init.length is 0 and ci.init.ptr is null. Anyone have any ideas?

Here's GDB output FWIW: $ gdb ./test GNU gdb (Ubuntu/Linaro 7.4-2012.04-0ubuntu2) 7.4-2012.04 Copyright (C) 2012 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-linux-gnu". For bug reporting instructions, please see: <http://bugs.launchpad.net/gdb-linaro/>... Reading symbols from /home/alexrp/Projects/tests/test...(no debugging symbols found)...done. (gdb) run Starting program: /home/alexrp/Projects/tests/test [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". Program received signal SIGSEGV, Segmentation fault. 0x000000000041a35c in gc_init () (gdb) bt #0 0x000000000041a35c in gc_init () #1 0x00007fffffffe118 in ?? () #2 0x00007fffffffdf30 in ?? () #3 0x000000000041782e in rt.dmain2.main() () #4 0x00007fffffffe118 in ?? () #5 0x00007fffffffdf90 in ?? () #6 0x000000000041718e in rt.dmain2.main() () #7 0x0000000000000001 in ?? () #8 0x0000000000000020 in ?? () #9 0x000000000043b020 in ?? () #10 0x0000000000000001 in ?? () #11 0x000000000043b020 in ?? () #12 0x00007fffffffe411 in ?? () #13 0x00007fffffffe030 in ?? () #14 0x00007fffffffe030 in ?? () #15 0x0000000000417820 in rt.dmain2.main() () #16 0x0000000000417119 in main () (gdb) disas Dump of assembler code for function gc_init: 0x000000000041a324 <+0>: push rbp 0x000000000041a325 <+1>: mov rbp,rsp 0x000000000041a328 <+4>: push rax 0x000000000041a329 <+5>: push rbx 0x000000000041a32a <+6>: mov rdi,QWORD PTR [rip+0x1c00b] # 0x43633c <_D2gc3gcx2GC7__ClassZ+4> 0x000000000041a331 <+13>: call 0x416650 <malloc plt> 0x000000000041a336 <+18>: mov rbx,rax 0x000000000041a339 <+21>: mov rdx,QWORD PTR [rip+0x1bffc] # 0x43633c <_D2gc3gcx2GC7__ClassZ+4> 0x000000000041a340 <+28>: mov rsi,QWORD PTR [rip+0x1bff5] # 0x43633c <_D2gc3gcx2GC7__ClassZ+4> 0x000000000041a347 <+35>: mov rdi,rbx 0x000000000041a34a <+38>: call 0x416730 <memcpy plt> 0x000000000041a34f <+43>: mov QWORD PTR [rip+0x1feda],rbx # 0x43a230 <_D2gc2gc3_gcC2gc3gcx2GC> 0x000000000041a356 <+50>: mov rdi,rbx 0x000000000041a359 <+53>: mov rax,QWORD PTR [rbx] => 0x000000000041a35c <+56>: rex.W call QWORD PTR [rax+0x30] (gdb) print $rax $1 = 0 -- Alex Rønne Petersen alex lycus.org http://lycus.org
Aug 07 2012
prev sibling next sibling parent reply Philippe Sigaud <philippe.sigaud gmail.com> writes:
On Tue, Aug 7, 2012 at 2:12 AM, Alex R=C3=B8nne Petersen <alex lycus.org> w=
rote:
 Hi,

 Has anyone managed to get the 2.060 .deb working on Ubuntu 12.04? On all
 12.04 systems I have access to, all D programs consistently segmentation
 fault in gc_init().

That won't help you much, but on Kubuntu 12.04 (32bits), the 2.060.deb is recognized but stops after a time (or, at least, stays dozens of minutes without doing anything visibly, which seems wrong to me). Installing 2.060 by hand have it work perfectly.
Aug 06 2012
parent =?UTF-8?B?QWxleCBSw7hubmUgUGV0ZXJzZW4=?= <alex lycus.org> writes:
On 07-08-2012 07:08, Philippe Sigaud wrote:
 On Tue, Aug 7, 2012 at 2:12 AM, Alex Rønne Petersen <alex lycus.org> wrote:
 Hi,

 Has anyone managed to get the 2.060 .deb working on Ubuntu 12.04? On all
 12.04 systems I have access to, all D programs consistently segmentation
 fault in gc_init().

That won't help you much, but on Kubuntu 12.04 (32bits), the 2.060.deb is recognized but stops after a time (or, at least, stays dozens of minutes without doing anything visibly, which seems wrong to me). Installing 2.060 by hand have it work perfectly.

Yeah, the entire 32-bit tool chain works fine for me as well (or the 64-bit one but building 32-bit binaries). It seems to only crash and burn when outputting 64-bit binaries one way or the other. -- Alex Rønne Petersen alex lycus.org http://lycus.org
Aug 06 2012
prev sibling next sibling parent reply "Minas Mina" <minas_mina1990 hotmail.co.uk> writes:
On Tuesday, 7 August 2012 at 00:12:55 UTC, Alex Rønne Petersen
wrote:
 Hi,

 Has anyone managed to get the 2.060 .deb working on Ubuntu 
 12.04? On all 12.04 systems I have access to, all D programs 
 consistently segmentation fault in gc_init().

I have dmd64 on ubuntu 12.04 64 bit, and it works fine. The code: import std.stdio; void main() { writeln("Hello, world!"); } Compiled with dmd test.d -m64 works fine, it prints "Hello, world!". Did you forget to uninstall dmd 2.059?
Aug 07 2012
parent =?UTF-8?B?QWxleCBSw7hubmUgUGV0ZXJzZW4=?= <alex lycus.org> writes:
On 07-08-2012 13:05, Minas Mina wrote:
 On Tuesday, 7 August 2012 at 00:12:55 UTC, Alex Rønne Petersen
 wrote:
 Hi,

 Has anyone managed to get the 2.060 .deb working on Ubuntu 12.04? On
 all 12.04 systems I have access to, all D programs consistently
 segmentation fault in gc_init().

I have dmd64 on ubuntu 12.04 64 bit, and it works fine. The code: import std.stdio; void main() { writeln("Hello, world!"); } Compiled with dmd test.d -m64 works fine, it prints "Hello, world!". Did you forget to uninstall dmd 2.059?

No, this is a clean system with no trace of any D compiler before 2.060. -- Alex Rønne Petersen alex lycus.org http://lycus.org
Aug 07 2012
prev sibling next sibling parent reply Jordi Sayol <g.sayol yahoo.es> writes:
Al 07/08/12 02:12, En/na Alex R=C3=B8nne Petersen ha escrit:
 Hi,
=20
 Has anyone managed to get the 2.060 .deb working on Ubuntu 12.04? On al=

n fault in gc_init().
=20

I've installed dmd_2.060-0_amd64.deb package on Ubuntu 12.04 64-bit, and = compiled without problems to both, 32-bit and 64-bit. Can you give more information please? Regards, --=20 Jordi Sayol
Aug 07 2012
parent reply =?UTF-8?B?QWxleCBSw7hubmUgUGV0ZXJzZW4=?= <alex lycus.org> writes:
On 07-08-2012 13:41, Jordi Sayol wrote:
 Al 07/08/12 02:12, En/na Alex Rønne Petersen ha escrit:
 Hi,

 Has anyone managed to get the 2.060 .deb working on Ubuntu 12.04? On all 12.04
systems I have access to, all D programs consistently segmentation fault in
gc_init().

I've installed dmd_2.060-0_amd64.deb package on Ubuntu 12.04 64-bit, and compiled without problems to both, 32-bit and 64-bit. Can you give more information please? Regards,

See my replies to the thread. Any other information? -- Alex Rønne Petersen alex lycus.org http://lycus.org
Aug 07 2012
parent =?ISO-8859-1?Q?Alex_R=F8nne_Petersen?= <alex lycus.org> writes:
On 16-08-2012 09:35, Iain Buclaw wrote:
 On 7 August 2012 16:53, Alex Rønne Petersen <alex lycus.org> wrote:
 On 07-08-2012 13:41, Jordi Sayol wrote:
 Al 07/08/12 02:12, En/na Alex Rønne Petersen ha escrit:
 Hi,


 Has anyone managed to get the 2.060 .deb working on Ubuntu 12.04? On all
 12.04 systems I have access to, all D programs consistently segmentation
 fault in gc_init().

I've installed dmd_2.060-0_amd64.deb package on Ubuntu 12.04 64-bit, and compiled without problems to both, 32-bit and 64-bit. Can you give more information please? Regards,

See my replies to the thread. Any other information? -- Alex Rønne Petersen alex lycus.org http://lycus.org

I would say rebuild druntime with debugging symbols so you can get the line where it crashes... but I guess building the library yourself will resolve the issue (as things have a habit of usually doing).

I already narrowed down the line (see my other replies): https://github.com/D-Programming-Language/druntime/blob/master/src/gc/gc.d#L103 The ClassInfo object resulting from GC.classinfo contains bogus data (or something). It seems to fetch the right object, but ci.init.length is 0 and ci.init.ptr is null. -- Alex Rønne Petersen alex lycus.org http://lycus.org
Aug 18 2012
prev sibling next sibling parent "Ivan Trombley" <itrombley dot-borg.org> writes:
On Tuesday, 7 August 2012 at 00:12:55 UTC, Alex Rønne Petersen 
wrote:
 Hi,

 Has anyone managed to get the 2.060 .deb working on Ubuntu 
 12.04? On all 12.04 systems I have access to, all D programs 
 consistently segmentation fault in gc_init().

I'm having the same issue.
Aug 15 2012
prev sibling next sibling parent Iain Buclaw <ibuclaw ubuntu.com> writes:
On 7 August 2012 16:53, Alex R=F8nne Petersen <alex lycus.org> wrote:
 On 07-08-2012 13:41, Jordi Sayol wrote:
 Al 07/08/12 02:12, En/na Alex R=F8nne Petersen ha escrit:
 Hi,


 Has anyone managed to get the 2.060 .deb working on Ubuntu 12.04? On al=



 12.04 systems I have access to, all D programs consistently segmentatio=



 fault in gc_init().

I've installed dmd_2.060-0_amd64.deb package on Ubuntu 12.04 64-bit, and compiled without problems to both, 32-bit and 64-bit. Can you give more information please? Regards,

See my replies to the thread. Any other information? -- Alex R=F8nne Petersen alex lycus.org http://lycus.org

I would say rebuild druntime with debugging symbols so you can get the line where it crashes... but I guess building the library yourself will resolve the issue (as things have a habit of usually doing). --=20 Iain Buclaw *(p < e ? p++ : p) =3D (c & 0x0f) + '0';
Aug 16 2012
prev sibling next sibling parent Jordi Sayol <g.sayol yahoo.es> writes:
Al 16/08/12 09:35, En/na Iain Buclaw ha escrit:
 I would say rebuild druntime with debugging symbols so you can get the
 line where it crashes...

I've built an special 64-bit dmd v2.060 deb package. It includes dmd, druntime and phobos compiled with "-g -g3" flags for gcc and cc, and "-gc" flag for dmd. Other binaries and 32-bit phobos library was removed. http://d-packages.googlecode.com/files/dmd_2.060-0debug_amd64.deb Best regards, -- Jordi Sayol
Aug 16 2012
prev sibling parent Russel Winder <russel winder.org.uk> writes:
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Thu, 2012-08-16 at 12:09 +0200, Jordi Sayol wrote:
[=E2=80=A6]
 I've built an special 64-bit dmd v2.060 deb package. It includes dmd, dru=

g for dmd.
 Other binaries and 32-bit phobos library was removed.
=20
 http://d-packages.googlecode.com/files/dmd_2.060-0debug_amd64.deb

I guess I should try this on Debian Unstable to catch extra data to see what is wrong with thread handling in 2.060 compared to 2.059 on Debian? --=20 Russel. =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D Dr Russel Winder t: +44 20 7585 2200 voip: sip:russel.winder ekiga.n= et 41 Buckmaster Road m: +44 7770 465 077 xmpp: russel winder.org.uk London SW11 1EN, UK w: www.russel.org.uk skype: russel_winder
Aug 16 2012