[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