[Issue 1949] New: Remove internal dependency on stdarg
Fawzi Mohamed
fmohamed at mac.com
Tue Apr 1 05:11:50 PDT 2008
On 2008-03-26 22:47:41 +0100, d-bugmail at puremagic.com said:
> http://d.puremagic.com/issues/show_bug.cgi?id=1949
>
> Summary: Remove internal dependency on stdarg
> Product: DGCC aka GDC
> Version: 0.24
> Platform: Other
> OS/Version: All
> Status: NEW
> Severity: major
> Priority: P2
> Component: glue layer
> AssignedTo: dvdfrdmn at users.sf.net
> ReportedBy: larsivar at igesund.net
>
>
> Use of varargs does not work in GDC unless the necessary symbols from
> gcc.builtins are imported via std.stdarg. This check happens in
>
> void d_gcc_magic_module(Module *m)
>
> in d-builtins2.cc
>
> This means that Tango (and all other runtime libraries for D) needs to have
> std.stdarg, even if this leads to an obvious conflict if one is to try to
> install two such libraries at the same time (Tango and Tangobos is a typical
> example that is affected by this.)
I was able to fix at least the issue with tango and tangobos removing
the (superfluos) import of std.compat from tangobos std.stdarg.
So the severity is not so major :)
Fawzi
> I can see no reason why gcc.builtins (which also is hardcoded into the magic
> function above) should be the only required module to have varargs working. An
> alternative would be adding tango.core.Vararg, but that would be an equally
> broken solution.
>
> Another solution proposed by Bommel, was that the dependency on gcc.builtins
> could also be removed, by using a pragma to register the required symbols with
> the compiler. Probably more work though.
More information about the D.gnu
mailing list