Am Fri, 10 Feb 2012 14:12:11 +0000 schrieb Iain Buclaw <ibuc...@ubuntu.com>:
> On 10 February 2012 10:36, Johannes Pfau <nos...@example.com> wrote: > > When trying to add a --disable-libphobos switch to GCC I saw that > > GCC already has code that makes it possible to --disable any target > > library, although I think this is not documented in the configure > > --help output. > > > > Anyway, this means configure --disable-libphobos works fine and > > builds a gdc without phobos. Obviously object.di isn't installed > > then and this error pops up when trying to compile something: > > > > object.d: Error: module object is in file 'object.d' which cannot be > > read > > > > However, for C-like code a completely empty object.di works fine, so > > could we disable the object.di detection when -nostdlib or > > -nophoboslib is passed, or at least make it a warning instead of an > > error? > > > > Or add a new switch to ignore a missing object.di? It just doesn't > > seem to make sense, that object.di must be there, but can be > > completely empty. > > object.[d, di] is special to the compiler, I think it would be best to > _always_ ship it, or have it separate from being directly under the > usual /usr/include directories for the standard library. > Yep, anything 'class' related won't work without object.di and probably much more. But to make a app using those features link, object_.d needs to be compiled in as well, and that pulls in some druntime dependencies (not too many), so to ship a minimal working object.di we'd also have to ship a minimal 'runtime' library. I'm not sure what's the right decision here, but it'd be great if could make a minimal compiler work for C-like code with minimal dependencies (one object.di file shipped by default definitely counts as minimal dependencies though).