[Issue 14255] Since DMD is used to build idgen, one can't have dmd.conf for dev and system wide.

via Digitalmars-d-bugs digitalmars-d-bugs at puremagic.com
Tue Dec 29 16:31:48 PST 2015


https://issues.dlang.org/show_bug.cgi?id=14255

--- Comment #6 from hsteoh at quickfur.ath.cx ---
Got bitten by this today. I have an old version of dmd for bootstrapping
purposes in /usr/src/d/install, and git checkout of dmd in /usr/src/d/dmd. This
setup used to work fine, except that recently, due to changes in
druntime/phobos, they no longer compile with the bootstrap version of dmd.

So the solution is to put a dmd.conf in /usr/src/d/install so that the old
compiler uses its own version of druntime/phobos, which it can compile. Now
/usr/src/d/dmd successfully compiles... except that now it can't link anything,
because it can't find the right dmd.conf, so it fails to find the correct
version of object.d.

Solution: put another dmd.conf in /usr/src/d/dmd so that the new compiler can
find the right paths, right? Yes, it works... however, now dmd cannot be
recompiled, because when posix.mak is running in /usr/src/d/dmd/src, it tries
to invoke HOST_DMD, and the old compiler picks up ./dmd.conf instead of the
correct one in /usr/src/d/install.  Worse, attempting to remedy this by
specifying -conf doesn't work, because posix.mak assumes HOST_DMD contains only
the pathname to the host dmd executable; any extra parameters appended to
HOST_DMD causes the existence check to fail and it refuses to run.

So now I'm stuck. The only way out I can see is to put dmd.conf in /etc or
$HOME, but that overrides the system-wide dmd.conf. So this is not workable
either.

I need a way to tell posix.mak to run HOST_DMD with additional flags. Is there
a way to do this??

--


More information about the Digitalmars-d-bugs mailing list