Thread overview | |||||||
---|---|---|---|---|---|---|---|
|
March 26, 2008 [Issue 1949] New: Remove internal dependency on stdarg | ||||
---|---|---|---|---|
| ||||
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@users.sf.net ReportedBy: larsivar@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 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. -- |
March 26, 2008 [Issue 1949] Remove internal dependency on stdarg | ||||
---|---|---|---|---|
| ||||
Posted in reply to d-bugmail | http://d.puremagic.com/issues/show_bug.cgi?id=1949 ------- Comment #1 from darrylbleau@gmail.com 2008-03-26 18:14 ------- Alternatively, one could allow the stdarg import to come from somewhere else, something like 'gcc.stdarg' might be a good fit. That would be a fairly trivial change, just changing the line: else if (md->packages->dim >= 1 && !strcmp( ((Identifier *) md->packages->data[0])->string, "std" )) To also strcmp for "gcc" would allow for std.stdarg, gcc.stdarg, std.c.stdarg, or gcc.c.stdarg, which seems reasonable and would be a very simple way to resolve this problem without introducing pragmas or some other (though possibly more flexible) complex solution. -- |
April 01, 2008 Re: [Issue 1949] New: Remove internal dependency on stdarg | ||||
---|---|---|---|---|
| ||||
Posted in reply to d-bugmail | On 2008-03-26 22:47:41 +0100, d-bugmail@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@users.sf.net > ReportedBy: larsivar@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. |
April 01, 2008 [Issue 1949] Remove internal dependency on stdarg | ||||
---|---|---|---|---|
| ||||
Posted in reply to d-bugmail | http://d.puremagic.com/issues/show_bug.cgi?id=1949 fawzi@gmx.ch changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |lugaidster@gmail.com, | |fawzi@gmx.ch ------- Comment #2 from fawzi@gmx.ch 2008-04-01 07:24 ------- I was able to remove the issue with tango and tangobos removing the (unnecessary) import std.compat from tangobos std.stdarg . So the severity is less important. -- |
April 01, 2008 [Issue 1949] Remove internal dependency on stdarg | ||||
---|---|---|---|---|
| ||||
Posted in reply to d-bugmail | http://d.puremagic.com/issues/show_bug.cgi?id=1949 ------- Comment #3 from larsivar@igesund.net 2008-04-01 10:02 ------- I don't think it is less important - even if it solves the particular problem leading up to this report. -- |
Copyright © 1999-2021 by the D Language Foundation