DMD 2.063 produces broken binaries

Jerry jlquinn at optonline.net
Tue Jun 4 19:30:26 PDT 2013


"Gary Willoughby" <dev at kalekold.net> writes:

> On Tuesday, 4 June 2013 at 18:03:53 UTC, Jerry wrote:
>> Hi folks,
>>
>> I've downloaded the current dmd 2.063 zip and tried it out.  This is
>> Ubuntu 12.10 x86_64.  Every program I compile segfaults when I try to
>> run it.  As a simple example:
>>
>> jlquinn at wyvern:~/re/test$ cat junk.d
>> import std.stdio;
>> void main() {
>>   writeln("Hi");
>> }
>> jlquinn at wyvern:~/re/test$ /home/jlquinn/dmd2/linux/bin64/dmd junk.d
>> jlquinn at wyvern:~/re/test$ ./junk
>> Segmentation fault (core dumped)
>>
>> The gdb backtrace is somewhere in __libc_start_main, before main() is
>> run.
>>
>> I assume I'm not in the majority, but I literally can't compile and run
>> anything.
>>
>> Any help would be appreciated
>> Thanks
>> Jerry
>
> Try compiling with the -v -w flags for more verbose output. It may be an
> installation problem.

jlquinn at wyvern:~/re/test$ /home/jlquinn/dmd2/linux/bin64/dmd -v -w junk.d
binary    /home/jlquinn/dmd2/linux/bin64/dmd
version   v2.063
config    /home/jlquinn/dmd2/linux/bin64/dmd.conf
parse     junk
importall junk
import    object	(/home/jlquinn/dmd2/linux/bin64/../../src/druntime/import/object.di)
import    std.stdio	(/home/jlquinn/dmd2/linux/bin64/../../src/phobos/std/stdio.d)
import    core.stdc.stdio	(/home/jlquinn/dmd2/linux/bin64/../../src/druntime/import/core/stdc/stdio.d)
import    core.stdc.config	(/home/jlquinn/dmd2/linux/bin64/../../src/druntime/import/core/stdc/config.d)
import    core.stdc.stddef	(/home/jlquinn/dmd2/linux/bin64/../../src/druntime/import/core/stdc/stddef.d)
import    core.stdc.stdarg	(/home/jlquinn/dmd2/linux/bin64/../../src/druntime/import/core/stdc/stdarg.d)
import    std.string	(/home/jlquinn/dmd2/linux/bin64/../../src/phobos/std/string.d)
import    core.exception	(/home/jlquinn/dmd2/linux/bin64/../../src/druntime/import/core/exception.d)
import    core.vararg	(/home/jlquinn/dmd2/linux/bin64/../../src/druntime/import/core/vararg.d)
import    core.stdc.stdlib	(/home/jlquinn/dmd2/linux/bin64/../../src/druntime/import/core/stdc/stdlib.d)
import    core.stdc.string	(/home/jlquinn/dmd2/linux/bin64/../../src/druntime/import/core/stdc/string.d)
import    std.algorithm	(/home/jlquinn/dmd2/linux/bin64/../../src/phobos/std/algorithm.d)
import    std.c.string	(/home/jlquinn/dmd2/linux/bin64/../../src/phobos/std/c/string.d)
import    core.bitop	(/home/jlquinn/dmd2/linux/bin64/../../src/druntime/import/core/bitop.d)
import    std.array	(/home/jlquinn/dmd2/linux/bin64/../../src/phobos/std/array.d)
import    core.memory	(/home/jlquinn/dmd2/linux/bin64/../../src/druntime/import/core/memory.d)
import    std.ascii	(/home/jlquinn/dmd2/linux/bin64/../../src/phobos/std/ascii.d)
import    std.conv	(/home/jlquinn/dmd2/linux/bin64/../../src/phobos/std/conv.d)
import    std.math	(/home/jlquinn/dmd2/linux/bin64/../../src/phobos/std/math.d)
import    core.stdc.math	(/home/jlquinn/dmd2/linux/bin64/../../src/druntime/import/core/stdc/math.d)
import    std.range	(/home/jlquinn/dmd2/linux/bin64/../../src/phobos/std/range.d)
import    std.exception	(/home/jlquinn/dmd2/linux/bin64/../../src/phobos/std/exception.d)
import    std.traits	(/home/jlquinn/dmd2/linux/bin64/../../src/phobos/std/traits.d)
import    std.typetuple	(/home/jlquinn/dmd2/linux/bin64/../../src/phobos/std/typetuple.d)
import    std.typecons	(/home/jlquinn/dmd2/linux/bin64/../../src/phobos/std/typecons.d)
import    std.format	(/home/jlquinn/dmd2/linux/bin64/../../src/phobos/std/format.d)
import    std.bitmanip	(/home/jlquinn/dmd2/linux/bin64/../../src/phobos/std/bitmanip.d)
import    std.system	(/home/jlquinn/dmd2/linux/bin64/../../src/phobos/std/system.d)
import    std.functional	(/home/jlquinn/dmd2/linux/bin64/../../src/phobos/std/functional.d)
import    std.utf	(/home/jlquinn/dmd2/linux/bin64/../../src/phobos/std/utf.d)
import    core.stdc.errno	(/home/jlquinn/dmd2/linux/bin64/../../src/druntime/import/core/stdc/errno.d)
import    std.uni	(/home/jlquinn/dmd2/linux/bin64/../../src/phobos/std/uni.d)
import    std.container	(/home/jlquinn/dmd2/linux/bin64/../../src/phobos/std/container.d)
import    std.random	(/home/jlquinn/dmd2/linux/bin64/../../src/phobos/std/random.d)
import    std.c.time	(/home/jlquinn/dmd2/linux/bin64/../../src/phobos/std/c/time.d)
import    core.stdc.time	(/home/jlquinn/dmd2/linux/bin64/../../src/druntime/import/core/stdc/time.d)
import    std.numeric	(/home/jlquinn/dmd2/linux/bin64/../../src/phobos/std/numeric.d)
import    std.c.stdlib	(/home/jlquinn/dmd2/linux/bin64/../../src/phobos/std/c/stdlib.d)
import    std.complex	(/home/jlquinn/dmd2/linux/bin64/../../src/phobos/std/complex.d)
import    core.thread	(/home/jlquinn/dmd2/linux/bin64/../../src/druntime/import/core/thread.di)
import    core.time	(/home/jlquinn/dmd2/linux/bin64/../../src/druntime/import/core/time.d)
import    core.sys.posix.time	(/home/jlquinn/dmd2/linux/bin64/../../src/druntime/import/core/sys/posix/time.d)
import    core.sys.posix.config	(/home/jlquinn/dmd2/linux/bin64/../../src/druntime/import/core/sys/posix/config.d)
import    core.sys.posix.sys.types	(/home/jlquinn/dmd2/linux/bin64/../../src/druntime/import/core/sys/posix/sys/types.d)
import    core.stdc.stdint	(/home/jlquinn/dmd2/linux/bin64/../../src/druntime/import/core/stdc/stdint.d)
import    core.stdc.signal	(/home/jlquinn/dmd2/linux/bin64/../../src/druntime/import/core/stdc/signal.d)
import    core.stdc.wchar_	(/home/jlquinn/dmd2/linux/bin64/../../src/druntime/import/core/stdc/wchar_.d)
import    core.sys.posix.signal	(/home/jlquinn/dmd2/linux/bin64/../../src/druntime/import/core/sys/posix/signal.d)
import    core.sys.posix.sys.time	(/home/jlquinn/dmd2/linux/bin64/../../src/druntime/import/core/sys/posix/sys/time.d)
import    core.sys.posix.sys.select	(/home/jlquinn/dmd2/linux/bin64/../../src/druntime/import/core/sys/posix/sys/select.d)
import    core.sys.posix.unistd	(/home/jlquinn/dmd2/linux/bin64/../../src/druntime/import/core/sys/posix/unistd.d)
import    core.sys.posix.inttypes	(/home/jlquinn/dmd2/linux/bin64/../../src/druntime/import/core/sys/posix/inttypes.d)
import    core.stdc.inttypes	(/home/jlquinn/dmd2/linux/bin64/../../src/druntime/import/core/stdc/inttypes.d)
import    std.regex	(/home/jlquinn/dmd2/linux/bin64/../../src/phobos/std/regex.d)
import    std.internal.uni	(/home/jlquinn/dmd2/linux/bin64/../../src/phobos/std/internal/uni.d)
import    std.internal.uni_tab	(/home/jlquinn/dmd2/linux/bin64/../../src/phobos/std/internal/uni_tab.d)
import    std.c.stdio	(/home/jlquinn/dmd2/linux/bin64/../../src/phobos/std/c/stdio.d)
import    std.stdiobase	(/home/jlquinn/dmd2/linux/bin64/../../src/phobos/std/stdiobase.d)
import    core.sys.posix.stdio	(/home/jlquinn/dmd2/linux/bin64/../../src/druntime/import/core/sys/posix/stdio.d)
import    std.c.linux.linux	(/home/jlquinn/dmd2/linux/bin64/../../src/phobos/std/c/linux/linux.d)
import    std.c.linux.pthread	(/home/jlquinn/dmd2/linux/bin64/../../src/phobos/std/c/linux/pthread.d)
import    core.sys.posix.dirent	(/home/jlquinn/dmd2/linux/bin64/../../src/druntime/import/core/sys/posix/dirent.d)
import    core.sys.posix.dlfcn	(/home/jlquinn/dmd2/linux/bin64/../../src/druntime/import/core/sys/posix/dlfcn.d)
import    core.sys.posix.fcntl	(/home/jlquinn/dmd2/linux/bin64/../../src/druntime/import/core/sys/posix/fcntl.d)
import    core.sys.posix.sys.stat	(/home/jlquinn/dmd2/linux/bin64/../../src/druntime/import/core/sys/posix/sys/stat.d)
import    core.sys.posix.pwd	(/home/jlquinn/dmd2/linux/bin64/../../src/druntime/import/core/sys/posix/pwd.d)
import    core.sys.posix.utime	(/home/jlquinn/dmd2/linux/bin64/../../src/druntime/import/core/sys/posix/utime.d)
import    core.sys.posix.sys.mman	(/home/jlquinn/dmd2/linux/bin64/../../src/druntime/import/core/sys/posix/sys/mman.d)
import    core.sys.posix.sys.wait	(/home/jlquinn/dmd2/linux/bin64/../../src/druntime/import/core/sys/posix/sys/wait.d)
import    std.c.linux.socket	(/home/jlquinn/dmd2/linux/bin64/../../src/phobos/std/c/linux/socket.d)
import    core.sys.posix.arpa.inet	(/home/jlquinn/dmd2/linux/bin64/../../src/druntime/import/core/sys/posix/arpa/inet.d)
import    core.sys.posix.sys.socket	(/home/jlquinn/dmd2/linux/bin64/../../src/druntime/import/core/sys/posix/sys/socket.d)
import    core.sys.posix.sys.uio	(/home/jlquinn/dmd2/linux/bin64/../../src/druntime/import/core/sys/posix/sys/uio.d)
import    core.sys.posix.netdb	(/home/jlquinn/dmd2/linux/bin64/../../src/druntime/import/core/sys/posix/netdb.d)
import    core.sys.posix.netinet.in_	(/home/jlquinn/dmd2/linux/bin64/../../src/druntime/import/core/sys/posix/netinet/in_.d)
import    core.sys.posix.netinet.tcp	(/home/jlquinn/dmd2/linux/bin64/../../src/druntime/import/core/sys/posix/netinet/tcp.d)
semantic  junk
import    core.sys.posix.pthread	(/home/jlquinn/dmd2/linux/bin64/../../src/druntime/import/core/sys/posix/pthread.d)
import    core.sys.posix.sched	(/home/jlquinn/dmd2/linux/bin64/../../src/druntime/import/core/sys/posix/sched.d)
entry     main      	junk.d
semantic2 junk
semantic3 junk
code      junk
function  D main
function  std.traits.Demangle!(uint).Demangle.__xopEquals
function  std.complex.Complex!(real).Complex.toString
function  std.complex.Complex!(real).Complex.toString.__lambda1314
function  std.complex.Complex!(real).Complex.__xopEquals
function  std.complex.Complex!(real).Complex.opAssign!(real).opAssign
function  std.complex.Complex!(real).Complex.opEquals!(real).opEquals
function  std.stdio.writeln!(string).writeln
function  std.stdio.writeln!(string).writeln.__dgliteral1469
function  std.exception.enforce!(bool).enforce
function  object.reserve!(char).reserve
function  std.format.formattedWrite!(void delegate(const(char)[]), char, const(real)).formattedWrite
function  std.format.formattedWrite!(void delegate(const(char)[]), char, const(real)).formattedWrite.__dgliteral1642
function  std.format.FormatSpec!(char).FormatSpec.flDash
function  std.format.FormatSpec!(char).FormatSpec.flDash
function  std.format.FormatSpec!(char).FormatSpec.flZero
function  std.format.FormatSpec!(char).FormatSpec.flZero
function  std.format.FormatSpec!(char).FormatSpec.flSpace
function  std.format.FormatSpec!(char).FormatSpec.flSpace
function  std.format.FormatSpec!(char).FormatSpec.flPlus
function  std.format.FormatSpec!(char).FormatSpec.flPlus
function  std.format.FormatSpec!(char).FormatSpec.flHash
function  std.format.FormatSpec!(char).FormatSpec.flHash
function  std.format.FormatSpec!(char).FormatSpec.this
function  std.format.FormatSpec!(char).FormatSpec.fillUp
function  std.format.FormatSpec!(char).FormatSpec.fillUp.check
function  std.format.FormatSpec!(char).FormatSpec.fillUp.check.__dgliteral1530
function  std.format.FormatSpec!(char).FormatSpec.fillUp.__dgliteral1629
function  std.format.FormatSpec!(char).FormatSpec.fillUp.__dgliteral1630
function  std.format.FormatSpec!(char).FormatSpec.fillUp.__dgliteral1636
function  std.format.FormatSpec!(char).FormatSpec.fillUp.__dgliteral1641
function  std.format.FormatSpec!(char).FormatSpec.getCurFmtStr
function  std.format.FormatSpec!(char).FormatSpec.headUpToNextSpec
function  std.format.FormatSpec!(char).FormatSpec.toString
function  std.format.FormatSpec!(char).FormatSpec.__xopEquals
function  std.format.formatGeneric!(void delegate(const(char)[]), const(real), char).formatGeneric
function  std.format.formatValue!(void delegate(const(char)[]), const(real), char).formatValue
function  std.format.formatValue!(void delegate(const(char)[]), const(real), char).formatValue.__dgliteral1519
function  std.format.formatValue!(void delegate(const(char)[]), const(real), char).formatValue.__dgliteral1520
function  std.range.put!(void delegate(const(char)[]), const(char)).put
function  std.array.empty!(char).empty
function  std.array.popFront!(immutable(char)).popFront
function  std.array.front!(immutable(char)).front
function  std.utf.decode!(string).decode
function  std.utf.decodeImpl!(true, string).decodeImpl
function  std.utf.decodeImpl!(true, string).decodeImpl.invalidUTF
function  std.utf.decodeImpl!(true, string).decodeImpl.outOfBounds
function  std.utf.decodeImpl!(true, string).decodeImpl.exception!(string).exception
function  std.functional.binaryFun!("a == b").binaryFun!(dchar, char).binaryFun
function  std.array.save!(immutable(char)).save
function  std.array.popBack!(immutable(char)).popBack
function  std.utf.strideBack!(string).strideBack
function  std.array.back!(immutable(char)).back
function  std.algorithm.find!("a == b", string, char).find
function  std.exception.enforceEx!(FormatException).enforceEx!(ulong).enforceEx
function  std.exception.enforceEx!(FormatException).enforceEx!(bool).enforceEx
function  std.range.put!(void delegate(const(char)[]), char[]).put
function  std.format.FormatSpec!(char).FormatSpec.writeUpToNextSpec!(void delegate(const(char)[])).writeUpToNextSpec
function  std.range.put!(void delegate(const(char)[]), const(char)[]).put
function  std.conv.text!(string, const(char)[]).text
function  std.conv.textImpl!(string, string, const(char)[]).textImpl
function  std.conv.to!(string).to!(string).to
function  std.conv.toImpl!(string, string).toImpl
function  std.conv.to!(string).to!(const(char)[]).to
function  std.conv.toImpl!(string, const(char)[]).toImpl
function  std.conv.to!(const(char)[]).to!(const(char)[]).to
function  std.conv.toImpl!(const(char)[], const(char)[]).toImpl
function  std.array.front!(const(char)).front
function  std.utf.decode!(const(char)[]).decode
function  std.array.popFront!(const(char)).popFront
function  std.utf.decodeImpl!(true, const(char)[]).decodeImpl
function  std.utf.decodeImpl!(true, const(char)[]).decodeImpl.invalidUTF
function  std.utf.decodeImpl!(true, const(char)[]).decodeImpl.outOfBounds
function  std.utf.decodeImpl!(true, const(char)[]).decodeImpl.exception!(const(char)[]).exception
function  std.conv.parse!(int, const(char)[]).parse
function  std.conv.convError!(const(char)[], int).convError
function  std.conv.convError_unexpected!(const(char)[]).convError_unexpected
function  std.conv.text!(string, dchar, string).text
function  std.conv.textImpl!(string, string, dchar, string).textImpl
function  std.conv.to!(string).to!(dchar).to
function  std.conv.toImpl!(string, dchar).toImpl
function  std.conv.toStr!(string, dchar).toStr
function  std.array.appender!(string, immutable(char)).appender
function  std.array.Appender!(string).Appender.Data.__xopEquals
function  std.array.Appender!(string).Appender.this
function  std.array.Appender!(string).Appender.reserve
function  std.array.Appender!(string).Appender.capacity
function  std.array.Appender!(string).Appender.data
function  std.array.Appender!(string).Appender.ensureAddable
function  std.array.Appender!(string).Appender.newCapacity
function  object.capacity!(immutable(char)).capacity
function  std.format.formatValue!(Appender!(string), dchar, char).formatValue
function  std.range.put!(Appender!(string), dchar).put
function  std.array.Appender!(string).Appender.put!(dchar).put
function  std.array.popFront!(char).popFront
function  std.array.front!(char).front
function  std.utf.decode!(char[]).decode
function  std.utf.decodeImpl!(true, char[]).decodeImpl
function  std.utf.decodeImpl!(true, char[]).decodeImpl.invalidUTF
function  std.utf.decodeImpl!(true, char[]).decodeImpl.outOfBounds
function  std.utf.decodeImpl!(true, char[]).decodeImpl.exception!(char[]).exception
function  std.array.Appender!(string).Appender.put!(char[]).put
function  std.format.formatValue!(Appender!(string), uint, char).formatValue
function  std.range.put!(Appender!(string), const(char)).put
function  std.array.Appender!(string).Appender.put!(const(char)).put
function  std.format.formatIntegral!(Appender!(string), ulong, char).formatIntegral
function  std.format.formatIntegral!(Appender!(string), ulong, char).formatIntegral.__dgliteral1619
function  std.format.formatUnsigned!(Appender!(string), char).formatUnsigned
function  std.range.put!(Appender!(string), char).put
function  std.array.Appender!(string).Appender.put!(char).put
function  std.range.put!(Appender!(string), char[]).put
function  std.conv.text!(string, string, string).text
function  std.conv.textImpl!(string, string, string, string).textImpl
function  std.conv.parse!(uint, const(char)[]).parse
function  std.conv.convError!(const(char)[], uint).convError
function  std.algorithm.startsWith!("a == b", const(char)[], char).startsWith
function  std.conv.to!(ubyte).to!(const(uint)).to
function  std.conv.toImpl!(ubyte, const(uint)).toImpl
function  std.conv.parse!(ubyte, const(char)[]).parse
function  std.conv.convError!(const(char)[], ubyte).convError
function  std.conv.to!(int).to!(const(uint)).to
function  std.conv.toImpl!(int, const(uint)).toImpl
function  std.conv.toImpl!(int, const(uint)).toImpl.__dgliteral1640
function  std.exception.enforce!(bool).enforce
function  std.format.getNthInt!(const(real)).getNthInt
function  std.format.getNthInt!().getNthInt
function  std.conv.to!(int).to!(int).to
function  std.conv.toImpl!(int, int).toImpl
function  std.format.formatNth!(void delegate(const(char)[]), char, const(real)).formatNth
function  std.format.formatNth!(void delegate(const(char)[]), char, const(real)).formatNth.gencode!(1LU).gencode
function  std.conv.to!(string).to!(ulong).to
function  std.conv.toImpl!(string, ulong).toImpl
function  std.conv.toStr!(string, ulong).toStr
function  std.format.formatValue!(Appender!(string), ulong, char).formatValue
function  std.format.formatValue!(Appender!(string), const(ubyte), char).formatValue
function  std.format.formatValue!(Appender!(string), const(int), char).formatValue
function  std.format.formatIntegral!(Appender!(string), long, char).formatIntegral
function  std.format.formatIntegral!(Appender!(string), long, char).formatIntegral.__dgliteral1690
function  std.array.appender!(const(char)[], const(char)).appender
function  std.array.Appender!(const(char)[]).Appender.Data.__xopEquals
function  std.array.Appender!(const(char)[]).Appender.this
function  std.array.Appender!(const(char)[]).Appender.reserve
function  std.array.Appender!(const(char)[]).Appender.capacity
function  std.array.Appender!(const(char)[]).Appender.data
function  std.array.Appender!(const(char)[]).Appender.ensureAddable
function  std.array.Appender!(const(char)[]).Appender.newCapacity
function  object.capacity!(const(char)).capacity
function  std.array.Appender!(const(char)[]).Appender.put!(char).put
function  std.array.Appender!(const(char)[]).Appender.put!(dchar).put
function  std.array.Appender!(const(char)[]).Appender.put!(char[]).put
function  std.conv.text!(string, void*, string, int, string, int, string, char, string, ubyte, string, ubyte, string, bool, string, bool, string, bool, string, bool, string, bool, string, const(char)[], string, const(char)[], string).text
function  std.conv.textImpl!(string, string, void*, string, int, string, int, string, char, string, ubyte, string, ubyte, string, bool, string, bool, string, bool, string, bool, string, bool, string, const(char)[], string, const(char)[], string).textImpl
function  std.conv.to!(string).to!(void*).to
function  std.conv.toImpl!(string, void*).toImpl
function  std.conv.toStr!(string, void*).toStr
function  std.format.formatValue!(Appender!(string), void*, char).formatValue
function  std.format.formatValue!(Appender!(string), void*, char).formatValue.__dgliteral1720
function  std.range.put!(Appender!(string), string).put
function  std.array.Appender!(string).Appender.put!(string).put
function  std.conv.to!(string).to!(int).to
function  std.conv.toImpl!(string, int).toImpl
function  std.conv.toStr!(string, int).toStr
function  std.format.formatValue!(Appender!(string), int, char).formatValue
function  std.conv.to!(string).to!(char).to
function  std.conv.toImpl!(string, char).toImpl
function  std.conv.toStr!(string, char).toStr
function  std.format.formatValue!(Appender!(string), char, char).formatValue
function  std.conv.to!(string).to!(ubyte).to
function  std.conv.toImpl!(string, ubyte).toImpl
function  std.conv.toStr!(string, ubyte).toStr
function  std.format.formatValue!(Appender!(string), ubyte, char).formatValue
function  std.conv.to!(string).to!(bool).to
function  std.conv.toImpl!(string, bool).toImpl
function  std.conv.toStr!(string, bool).toStr
function  std.format.formatValue!(Appender!(string), bool, char).formatValue
gcc junk.o -o junk -m64 -L/home/jlquinn/dmd2/linux/bin64/../lib64 -L/home/jlquinn/dmd2/linux/bin64/../lib32 -Xlinker --no-warn-search-mismatch -Xlinker --export-dynamic -l:libphobos2.a -lpthread -lm -lrt 
jlquinn at wyvern:~/re/test$ ./junk 
Segmentation fault (core dumped)
jlquinn at wyvern:~/re/test$



More information about the Digitalmars-d mailing list