Reworked and improved the SYMBOLS section. The old syntax (using symbol =
value) is now gone, attributes are used instead. The SYMBOLS section does now support imports, so the linker config can be used to force symbols (and therefore module) imports. Evaluation of start address and size for memory areas has been delayed even further, so it is now possible to use the values from one memory area in the definition of the next one. git-svn-id: svn://svn.cc65.org/cc65/trunk@4851 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
@@ -81,8 +81,8 @@ struct Export {
|
||||
ObjData* Obj; /* Object file that exports the name */
|
||||
unsigned ImpCount; /* How many imports for this symbol? */
|
||||
Import* ImpList; /* List of imports for this symbol */
|
||||
FilePos Pos; /* File position of definition */
|
||||
ExprNode* Expr; /* Expression (0 if not def'd) */
|
||||
FilePos Pos; /* File position of definition */
|
||||
unsigned char Type; /* Type of export */
|
||||
unsigned char AddrSize; /* Address size of export */
|
||||
unsigned char ConDes[CD_TYPE_COUNT]; /* Constructor/destructor decls */
|
||||
@@ -136,6 +136,9 @@ void InsertExport (Export* E);
|
||||
Export* CreateConstExport (unsigned Name, long Value);
|
||||
/* Create an export for a literal date */
|
||||
|
||||
Export* CreateExprExport (unsigned Name, ExprNode* Expr, unsigned char AddrSize);
|
||||
/* Create an export for an expression */
|
||||
|
||||
Export* CreateMemoryExport (unsigned Name, MemoryArea* Mem, unsigned long Offs);
|
||||
/* Create an relative export for a memory area offset */
|
||||
|
||||
|
||||
Reference in New Issue
Block a user