[Dlang-internal] Cannot build dmd from git going from v2.78.3

Sebastian Wilzbach seb at wilzba.ch
Wed May 15 08:08:21 UTC 2019


Well, what you need to do is bootstrapping as DMD is now written fully in D.

tl;dr: you need to set HOST_DMD after you build 2.078 for all future 
builds. However, as this is a very old release, chances that things don't 
work are pretty high.

You could also give the dmd-cxx branch a go. IIRC it doesn't pass the full 
DMD testsuite, but it might just be enough to build a newer DMD compiler.

Also, LDC and GDC have a better maintained C++ branch (LTS for LDC and e.g. 
official GCC 9.1 for GDC) which very likely might work better for you.

To build current DMD master you will need a dmd compiler with a frontend of 
2.076 or higher (>= GDC 8), so it might require multiple hops to build the 
latest, greatest DMD from scratch.

On 15 May 2019 09:50:42 Patrick Schluter via Dlang-internal 
<dlang-internal at puremagic.com> wrote:

> Hi,
>
> I have a problem with the dmd git repository. I cannot compile de
> compiler for versions newer than v2.78.2.
> I can build every version up until v2.78.2. When I try to build
> v2.78.3 I get following error message:
>
> CC="c++" dmd -lib -of../generated/linux/release/64/lexer.a -m64
> -J../generated/linux/release/64 -L-lstdc++ -version=MARS -fPIC -w
> -de dmd/console.d dmd/entity.d dmd/errors.d dmd/globals.d
> dmd/id.d dmd/identifier.d dmd/lexer.d dmd/tokens.d dmd/utf.d
> dmd/root/array.d dmd/root/ctfloat.d dmd/root/file.d
> dmd/root/filename.d dmd/root/outbuffer.d dmd/root/port.d
> dmd/root/rmem.d dmd/root/rootobject.d dmd/root/stringtable.d
> dmd/root/hash.d
> dmd/entity.d(2387): Error: undefined identifier __equals in
> module object
> make[1]: *** [../generated/linux/release/64/lexer.a] Error 1
> rm optabgen.out
> make[1]: Leaving directory
> `/ec/dev/server/euramis/u000/schlupa/D/dmd/src'
> make: *** [all] Error 2
> error: make failed
>
> Does anyone have an idea what can be wrong? Is something missing
> somewhere?
>
>
> PS: the machine this is built on is an old Linux RHEL 5 which
> config is stuck to what it was when it initially came out. I
> don't have sudo or root access on it and all tools and programs I
> need have to be built from source, either from packets or git
> repos. Installing ready made binaries does not work in general.
> I know, it sucks but I cannot change the policies of our IT
> environment.





More information about the Dlang-internal mailing list