digitalmars.D.learn - Dparser link error
- Knud Soerensen (27/27) Mar 20 2007 Hi
- Frits van Bommel (13/23) Mar 20 2007 That's the TypeInfo for a tuple(char[],char[],char[],char[],char[]),
- Knud Soerensen (106/136) Mar 24 2007 Yes, it is defined like
Hi I am trying to link the mars.d program which come with Dparser and i get the following errors. ../dparser/dparser.dmd.Aggregate.o: In function `_D7dparser3dmd9Aggregate11accessCheckFS7dparser3dmd4Root3LocC7dparser3dmd5Scope5ScopeC7dparser3dmd10Expression10ExpressionC7dparser3dmd11Declaration11DeclarationZv': ../dparser/dmd/Aggregate.d:(.gnu.linkonce.t_D7dparser3dmd9Aggregate11accessCheckFS7dparser3dmd4Root3LocC7dparser3dmd5Scope5ScopeC7dparser3dmd10Expression10ExpressionC7dparser3dmd11Declaration11 eclarationZv+0xad): undefined reference to `_D22TypeInfo_B10AaAaAaAaAa6__initZ' ../dparser/dparser.dmd.ScopeSymbol.o: In function `_D7dparser3dmd11ScopeSymbol12ScopeDSymbol15multiplyDefinedFS7dparser3dmd4Root3LocC7dparser3dmd6Symbol7DSymbolC7dparser3dmd6Symbol7DSymbolZv': ../dparser/dmd/ScopeSymbol.d:(.gnu.linkonce.t_D7dparser3dmd11ScopeSymbol12ScopeDSymbol15multiplyDefinedFS7dparser3dmd4Root3LocC7dparser3dmd6Symbol7DSymbolC7dparser3dmd6Sym ol7DSymbolZv+0x85): undefined reference to `_D22TypeInfo_B10AaAaAaAaAa6__initZ' collect2: ld returned 1 exit status --- errorlevel 1 Does anybody know what the problem is ?? The last error seems to referrer to the following function can anyone spot the error ?? static void multiplyDefined(Loc loc, DSymbol s1, DSymbol s2) { //printf("s1 = '%s'\n", s1.toChars()); //printf("s2 = '%s', parent = %p\n", s2.toChars(), s2.parent); // #if 1 s1.error( "conflicts with %s at %s", s2.toPrettyChars(), s2.locToChars() ); if (loc.filename) { .errorLoc(loc, "%s at %s conflicts with %s at %s", s1.toPrettyChars(), s1.locToChars(), s2.toPrettyChars(), s2.locToChars()); } else { s1.errorLoc(loc, "conflicts with %s at %s", s2.toPrettyChars(), s2.locToChars()); } }
Mar 20 2007
Knud Soerensen wrote:Hi I am trying to link the mars.d program which come with Dparser and i get the following errors.[snip]: undefined reference to `_D22TypeInfo_B10AaAaAaAaAa6__initZ'collect2: ld returned 1 exit status --- errorlevel 1 Does anybody know what the problem is ??That's the TypeInfo for a tuple(char[],char[],char[],char[],char[]), probably from:.errorLoc(loc, "%s at %s conflicts with %s at %s", s1.toPrettyChars(), s1.locToChars(), s2.toPrettyChars(), s2.locToChars());Is that function by any chance declared as something like "void errorLoc(Loc, ...)"? (IIRC TypeInfo for tuples is used to pass varargs, and this is the only function call with >= 5 parameters) As to why that TypeInfo doesn't get emitted, that may be a long story. What is your compiler command line? (including compiler please) Do you use -c to compile files one-by-one and then link or do you just pass all files at the same time? Whichever it is, does this error disappear if you switch?
Mar 20 2007
On Tue, 20 Mar 2007 23:44:16 +0100, Frits van Bommel wrote:Knud Soerensen wrote:Yes, it is defined like // print an error message for a location void errorLoc( Loc loc, ... ) { if( !global.gag ) { doError(loc, _arguments, _argptr); } }Hi I am trying to link the mars.d program which come with Dparser and i get the following errors.[snip]: undefined reference to `_D22TypeInfo_B10AaAaAaAaAa6__initZ'collect2: ld returned 1 exit status --- errorlevel 1 Does anybody know what the problem is ??That's the TypeInfo for a tuple(char[],char[],char[],char[],char[]), probably from:.errorLoc(loc, "%s at %s conflicts with %s at %s", s1.toPrettyChars(), s1.locToChars(), s2.toPrettyChars(), s2.locToChars());Is that function by any chance declared as something like "void errorLoc(Loc, ...)"? (IIRC TypeInfo for tuples is used to pass varargs, and this is the only function call with >= 5 parameters)As to why that TypeInfo doesn't get emitted, that may be a long story. What is your compiler command line? (including compiler please)dmd mars.d -I../ ../dparser/dparser.*.o ArgParser.o gcc mars.o ../dparser/dparser.dmd.Aggregate.o ../dparser/dparser.dmd.Array.o ../dparser/dparser.dmd.Attrib.o ../dparser/dparser.dmd.BackEnd.o ../dparser/dparser.dmd.Class.o ../dparser/dparser.dmd.Condition.o ../dparser/dparser.dmd.Declaration.o ../dparser/dparser.dmd.Doc.o ../dparser/dparser.dmd.Dump.o ../dparser/dparser.dmd.entity.o ../dparser/dparser.dmd.Enum.o ../dparser/dparser.dmd.Expression.o ../dparser/dparser.dmd.Func.o ../dparser/dparser.dmd.globals.o ../dparser/dparser.dmd.Identifier.o ../dparser/dparser.dmd.ID.o ../dparser/dparser.dmd.impcnvtab.o ../dparser/dparser.dmd.Import.o ../dparser/dparser.dmd.Initializer.o ../dparser/dparser.dmd.Inline.o ../dparser/dparser.dmd.Keyword.o ../dparser/dparser.dmd.Lexer.o ../dparser/dparser.dmd.Macro.o ../dparser/dparser.dmd.Module.o ../dparser/dparser.dmd.OutBuffer.o ../dparser/dparser.dmd.Package.o ../dparser/dparser.dmd.Parse.o ../dparser/dparser.dmd.Root.o ../dparser/dparser.dmd.Scope.o ../dparser/dparser.dmd.ScopeSymbol.o ../dparser/dparser.dmd.Statement.o ../dparser/dparser.dmd.StaticAssert.o ../dparser/dparser.dmd.Struct.o ../dparser/dparser.dmd.Symbol.o ../dparser/dparser.dmd.Template.o ../dparser/dparser.dmd.Token.o ../dparser/dparser.dmd.Tokens.o ../dparser/dparser.dmd.TypeInfo.o ../dparser/dparser.dmd.Type.o ../dparser/dparser.dmd.Types.o ../dparser/dparser.dmd.unialpha.o ../dparser/dparser.dmd.Version.o ../dparser/dparser.DParser.o ../dparser/dparser.Error.o ../dparser/dparser.SymbolDisplay.o ../dparser/dparser.SymbolListing.o ../dparser/dparser.Visitor.o ArgParser.o -o mars -m32 -lphobos -lpthread -lm -Xlinker -L/home/knud/dsss/lib ../dparser/dparser.dmd.Aggregate.o: In function `_D7dparser3dmd9Aggregate11accessCheckFS7dparser3dmd4Root3LocC7dparser3dmd5Scope5ScopeC7dparser3dmd10Expression10ExpressionC7dparser3dmd11Declaration11DeclarationZv': ../dparser/dmd/Aggregate.d:(.gnu.linkonce.t_D7dparser3dmd9Aggregate11accessCheckFS7dparser3dmd4Root3LocC7dparser3dmd5Scope5ScopeC7dparser3dmd10Expression10ExpressionC7dparser3dmd11Declaration11DeclarationZv+0xad): undefined reference to `_D22TypeInfo_B10AaAaAaAaAa6__initZ' ../dparser/dparser.dmd.ScopeSymbol.o: In function `_D7dparser3dmd11ScopeSymbol12ScopeDSymbol15multiplyDefinedFS7dparser3dmd4Root3LocC7dparser3dmd6Symbol7DSymbolC7dparser3dmd6Symbol7DSymbolZv': ../dparser/dmd/ScopeSymbol.d:(.gnu.linkonce.t_D7dparser3dmd11ScopeSymbol12ScopeDSymbol15multiplyDefinedFS7dparser3dmd4Root3LocC7dparser3dmd6Symbol7DSymbolC7dparser3dmd6Symbol7DSymbolZv+0x85): undefined reference to `_D22TypeInfo_B10AaAaAaAaAa6__initZ' collect2: ld returned 1 exit status --- errorlevel 1Do you use -c to compile files one-by-one and then link or do you just pass all files at the same time? Whichever it is, does this error disappear if you switch?no dmd -c mars.d -I.. dmd mars.o ../dparser/dparser.*.o ArgParser.o gcc mars.o ../dparser/dparser.dmd.Aggregate.o ../dparser/dparser.dmd.Array.o ../dparser/dparser.dmd.Attrib.o ../dparser/dparser.dmd.BackEnd.o ../dparser/dparser.dmd.Class.o ../dparser/dparser.dmd.Condition.o ../dparser/dparser.dmd.Declaration.o ../dparser/dparser.dmd.Doc.o ../dparser/dparser.dmd.Dump.o ../dparser/dparser.dmd.entity.o ../dparser/dparser.dmd.Enum.o ../dparser/dparser.dmd.Expression.o ../dparser/dparser.dmd.Func.o ../dparser/dparser.dmd.globals.o ../dparser/dparser.dmd.Identifier.o ../dparser/dparser.dmd.ID.o ../dparser/dparser.dmd.impcnvtab.o ../dparser/dparser.dmd.Import.o ../dparser/dparser.dmd.Initializer.o ../dparser/dparser.dmd.Inline.o ../dparser/dparser.dmd.Keyword.o ../dparser/dparser.dmd.Lexer.o ../dparser/dparser.dmd.Macro.o ../dparser/dparser.dmd.Module.o ../dparser/dparser.dmd.OutBuffer.o ../dparser/dparser.dmd.Package.o ../dparser/dparser.dmd.Parse.o ../dparser/dparser.dmd.Root.o ../dparser/dparser.dmd.Scope.o ../dparser/dparser.dmd.ScopeSymbol.o ../dparser/dparser.dmd.Statement.o ../dparser/dparser.dmd.StaticAssert.o ../dparser/dparser.dmd.Struct.o ../dparser/dparser.dmd.Symbol.o ../dparser/dparser.dmd.Template.o ../dparser/dparser.dmd.Token.o ../dparser/dparser.dmd.Tokens.o ../dparser/dparser.dmd.TypeInfo.o ../dparser/dparser.dmd.Type.o ../dparser/dparser.dmd.Types.o ../dparser/dparser.dmd.unialpha.o ../dparser/dparser.dmd.Version.o ../dparser/dparser.DParser.o ../dparser/dparser.Error.o ../dparser/dparser.SymbolDisplay.o ../dparser/dparser.SymbolListing.o ../dparser/dparser.Visitor.o ArgParser.o -o mars -m32 -lphobos -lpthread -lm -Xlinker -L/home/knud/dsss/lib ../dparser/dparser.dmd.Aggregate.o: In function `_D7dparser3dmd9Aggregate11accessCheckFS7dparser3dmd4Root3LocC7dparser3dmd5Scope5ScopeC7dparser3dmd10Expression10ExpressionC7dparser3dmd11Declaration11DeclarationZv': ../dparser/dmd/Aggregate.d:(.gnu.linkonce.t_D7dparser3dmd9Aggregate11accessCheckFS7dparser3dmd4Root3LocC7dparser3dmd5Scope5ScopeC7dparser3dmd10Expression10ExpressionC7dparser3dmd11Declaration11DeclarationZv+0xad): undefined reference to `_D22TypeInfo_B10AaAaAaAaAa6__initZ' ../dparser/dparser.dmd.ScopeSymbol.o: In function `_D7dparser3dmd11ScopeSymbol12ScopeDSymbol15multiplyDefinedFS7dparser3dmd4Root3LocC7dparser3dmd6Symbol7DSymbolC7dparser3dmd6Symbol7DSymbolZv': ../dparser/dmd/ScopeSymbol.d:(.gnu.linkonce.t_D7dparser3dmd11ScopeSymbol12ScopeDSymbol15multiplyDefinedFS7dparser3dmd4Root3LocC7dparser3dmd6Symbol7DSymbolC7dparser3dmd6Symbol7DSymbolZv+0x85): undefined reference to `_D22TypeInfo_B10AaAaAaAaAa6__initZ' collect2: ld returned 1 exit status --- errorlevel 1 However if I do. dmd mars.d -I../ ../dparser/DParser.d ../dparser/Error.d ../dparser/SymbolDisplay.d ../dparser/SymbolListing.d ../dparser/Visitor.d ../dparser/dmd/Aggregate.d ../dparser/dmd/entity.d ../dparser/dmd/Initializer.d ../dparser/dmd/Package.d ../dparser/dmd/Template.d ../dparser/dmd/Array.d ../dparser/dmd/Enum.d ../dparser/dmd/Inline.d ../dparser/dmd/Parse.d ../dparser/dmd/Token.d ../dparser/dmd/Attrib.d ../dparser/dmd/Expression.d ../dparser/dmd/Keyword.d ../dparser/dmd/Root.d ../dparser/dmd/Tokens.d ../dparser/dmd/BackEnd.d ../dparser/dmd/Func.d ../dparser/dmd/Lexer.d ../dparser/dmd/Scope.d ../dparser/dmd/Type.d ../dparser/dmd/Class.d ../dparser/dmd/globals.d ../dparser/dmd/Link.d ../dparser/dmd/ScopeSymbol.d ../dparser/dmd/TypeInfo.d ../dparser/dmd/Condition.d ../dparser/dmd/ID.d ../dparser/dmd/Macro.d ../dparser/dmd/Statement.d ../dparser/dmd/Types.d ../dparser/dmd/Declaration.d ../dparser/dmd/Identifier.d ../dparser/dmd/StaticAssert.d ../dparser/dmd/unialpha.d ../dparser/dmd/Doc.d ../dparser/dmd/impcnvtab.d ../dparser/dmd/Module.d ../dparser/dmd/Struct.d ../dparser/dmd/Version.d ../dparser/dmd/Dump.d ../dparser/dmd/Import.d ../dparser/dmd/OutBuffer.d ../dparser/dmd/Symbol.d ArgParser.d everything compiles ok.
Mar 24 2007