Bug 15625 – Internal error: backend/elfobj.c 1014

Status
RESOLVED
Resolution
WORKSFORME
Severity
normal
Priority
P1
Component
dmd
Product
D
Version
D2
Platform
x86
OS
Linux
Creation time
2016-01-29T21:06:24Z
Last change time
2022-10-31T13:39:22Z
Keywords
ice
Assigned to
No Owner
Creator
Mark Isaacson

Comments

Comment #0 by markisaa — 2016-01-29T21:06:24Z
I'm getting Internal error: backend/elfobj.c 1014 when I build druntime 2.070.0 with dmd 2.070.0 on my Linux box. Compiling with -v shows the following lines preceding the error: http://pastebin.com/hbY719BD No idea how to debug this. It does repro though, so happy to provide more details if you can tell me how. Looks like it's hitting this assertion: https://github.com/D-Programming-Language/dmd/blob/v2.070.0/src/backend/elfobj.c#L1014
Comment #1 by zunkree — 2016-04-04T13:28:59Z
Faced with the same issue: Internal error: backend/elfobj.c 1014 on my linux boxes: * tiny core linux x86_64, glibc 2.20, gcc-4.9 * tiny core linux x86_64, glibc 2.22, gcc-5.2
Comment #2 by zunkree — 2016-04-05T20:32:46Z
Looks like following PR https://github.com/D-Programming-Language/dmd/pull/5324 the reason of this issue.
Comment #3 by markisaa — 2016-04-05T20:40:21Z
Super excited that you know what you're doing/how to root cause this. I had/have no idea how to proceed with fixing this.
Comment #4 by bugzilla — 2016-09-03T01:20:03Z
Can't do anything without a reproducible example.
Comment #5 by markisaa — 2016-09-03T18:02:10Z
I'll work on getting one at the next hackathon.
Comment #6 by lance — 2016-10-08T15:51:43Z
I got this error on Ubuntu with dmd 2.070. Upon ugrading to 2.071.2, the error disappeared. It would be difficult to provide an example (it relies on several C libraries as well as an installation of R) but the problem surfaced when I created an alias for enforce inside a version block.
Comment #7 by Marco.Leise — 2017-07-06T14:41:54Z
This patch seems to work for me: --- dmd2/src/dmd/backend/backconfig.c 2016-03-03 11:42:12.000000000 +0100 +++ dmd2/src/dmd/backend/backconfig.c 2017-07-06 16:32:03.540184944 +0200 @@ -95,7 +95,7 @@ #if TARGET_LINUX if (model == 64) { config.exe = EX_LINUX64; - config.ehmethod = EH_DWARF; + config.ehmethod = EH_DM; config.fpxmmregs = TRUE; } else It switches exception handling on 64-bit Linux back from DWARF to the old druntime method, in case someone needs a quick fix to get this old version compiling again.
Comment #8 by dlang-bugzilla — 2017-07-07T06:35:24Z
(In reply to Mark Isaacson from comment #0) > No idea how to debug this. Dustmite! https://github.com/CyberShadow/DustMite I would suggest trying to narrow it down to a certain module first, as a brute reduction of building all of Druntime may take a few days.
Comment #9 by razvan.nitu1305 — 2022-10-31T13:39:22Z
This is an old issue and it seems that it has been fixed in subsequent versions of druntime. Closing as WORKSFORME.