Bug 8554 – ddemangle is doing nothing on 64 bit linux

Status
RESOLVED
Resolution
INVALID
Severity
normal
Priority
P2
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2012-08-15T14:04:00Z
Last change time
2014-01-20T01:41:16Z
Assigned to
nobody
Creator
michal.minich

Comments

Comment #0 by michal.minich — 2012-08-15T14:04:37Z
dmd <params> | ddemangle works on win xp, but for the same linker error ouput it does not for 64 bit arch linux with ddemangle OPTLINK (R) for Win32 Release 8.00.12 Copyright (C) Digital Mars 1989-2010 All rights reserved. http://www.digitalmars.com/ctg/optlink.html main.obj(main) Error 42: Symbol Undefined void main.IKlazz.accept!(int).accept(main.Visitor!(int).Visitor) --- errorlevel 1 on windows without ddemangle OPTLINK (R) for Win32 Release 8.00.12 Copyright (C) Digital Mars 1989-2010 All rights reserved. http://www.digitalmars.com/ctg/optlink.html main.obj(main) Error 42: Symbol Undefined _D4main6IKlazz13__T6acceptTiZ6acceptMFC4main14__T7VisitorTiZ7VisitorZv --- errorlevel 1 on linux with ddemangle ..main.o: In function `_Dmain': main.d:25: undefined reference to `_D4main6IKlazz13__T6acceptTiZ6acceptMFC4main14__T7VisitorTiZ7VisitorZv' collect2: error: ld returned 1 exit status --- errorlevel 1
Comment #1 by yebblies — 2013-11-24T08:35:04Z
I don't suppose there's any chance you were piping stdout instead of stderr by mistake?
Comment #2 by michal.minich — 2013-11-25T03:30:38Z
(In reply to comment #1) > I don't suppose there's any chance you were piping stdout instead of stderr by > mistake? This kind of thing could happen to me easily :) but in this case, considering that I posted output of dmd piped to ddemangle and printed, I think not - the output mangled, so it seems that ddemangle did not processed it, just forwarded. Unfortunately I don't have exact command I used and I can't replicate now, it was long time ago.
Comment #3 by yebblies — 2013-11-25T03:55:19Z
(In reply to comment #2) > (In reply to comment #1) > > I don't suppose there's any chance you were piping stdout instead of stderr by > > mistake? > > This kind of thing could happen to me easily :) but in this case, considering > that I posted output of dmd piped to ddemangle and printed, I think not - the > output mangled, so it seems that ddemangle did not processed it, just > forwarded. Unfortunately I don't have exact command I used and I can't > replicate now, it was long time ago. Does it still fail if you put that mangle string in manually?
Comment #4 by hsteoh — 2014-01-19T07:51:08Z
Did you try this: dmd <params> | ddemangle 2>&1 From your command-line, it looks like you're just piping stdout to ddemangle, and stdout, since it's not redirected, just gets passed through to the terminal unmodified.
Comment #5 by michal.minich — 2014-01-20T01:41:16Z
I did not try it but it seems reasonable. If DMD/Linker outputs errors to stderr, then it makes sense.