Added support for --large-alignment in ld65.
Implemented the same way as in ca65.
This commit is contained in:
parent
5b56c6e3a2
commit
ad1eadd60d
5 changed files with 24 additions and 3 deletions
|
@ -79,6 +79,7 @@ Long options:
|
||||||
--end-group End a library group
|
--end-group End a library group
|
||||||
--force-import sym Force an import of symbol 'sym'
|
--force-import sym Force an import of symbol 'sym'
|
||||||
--help Help (this text)
|
--help Help (this text)
|
||||||
|
--large-alignment Don't warn about large alignments
|
||||||
--lib file Link this library
|
--lib file Link this library
|
||||||
--lib-path path Specify a library search path
|
--lib-path path Specify a library search path
|
||||||
--mapfile name Create a map file
|
--mapfile name Create a map file
|
||||||
|
@ -298,6 +299,12 @@ Here is a description of all of the command-line options:
|
||||||
information generation is currently being developed, so the format of the
|
information generation is currently being developed, so the format of the
|
||||||
file and its contents are subject to change without further notice.
|
file and its contents are subject to change without further notice.
|
||||||
|
|
||||||
|
<label id="option--large-alignment">
|
||||||
|
<tag><tt>--large-alignment</tt></tag>
|
||||||
|
|
||||||
|
Disable warnings about a large combined alignment. See the discussion of the
|
||||||
|
<tt><ref id=".ALIGN" name=".ALIGN"></tt> directive for futher information.
|
||||||
|
|
||||||
|
|
||||||
<tag><tt>--lib file</tt></tag>
|
<tag><tt>--lib file</tt></tag>
|
||||||
|
|
||||||
|
|
|
@ -52,8 +52,10 @@ unsigned ModuleId = 0; /* Id for o65 module */
|
||||||
unsigned char HaveStartAddr = 0; /* Start address not given */
|
unsigned char HaveStartAddr = 0; /* Start address not given */
|
||||||
unsigned long StartAddr = 0x200; /* Start address */
|
unsigned long StartAddr = 0x200; /* Start address */
|
||||||
|
|
||||||
unsigned char VerboseMap = 0; /* Verbose map file */
|
unsigned char VerboseMap = 0; /* Verbose map file */
|
||||||
unsigned char AllowMultDef = 0; /* Allow multiple definitions */
|
unsigned char AllowMultDef = 0; /* Allow multiple definitions */
|
||||||
|
unsigned char LargeAlignment = 0; /* Don't warn about large alignments */
|
||||||
|
|
||||||
const char* MapFileName = 0; /* Name of the map file */
|
const char* MapFileName = 0; /* Name of the map file */
|
||||||
const char* LabelFileName = 0; /* Name of the label file */
|
const char* LabelFileName = 0; /* Name of the label file */
|
||||||
const char* DbgFileName = 0; /* Name of the debug file */
|
const char* DbgFileName = 0; /* Name of the debug file */
|
||||||
|
|
|
@ -54,6 +54,8 @@ extern unsigned long StartAddr; /* Start address */
|
||||||
|
|
||||||
extern unsigned char VerboseMap; /* Verbose map file */
|
extern unsigned char VerboseMap; /* Verbose map file */
|
||||||
extern unsigned char AllowMultDef; /* Allow multiple definitions */
|
extern unsigned char AllowMultDef; /* Allow multiple definitions */
|
||||||
|
extern unsigned char LargeAlignment; /* Don't warn about large alignments */
|
||||||
|
|
||||||
extern const char* MapFileName; /* Name of the map file */
|
extern const char* MapFileName; /* Name of the map file */
|
||||||
extern const char* LabelFileName; /* Name of the label file */
|
extern const char* LabelFileName; /* Name of the label file */
|
||||||
extern const char* DbgFileName; /* Name of the debug file */
|
extern const char* DbgFileName; /* Name of the debug file */
|
||||||
|
|
|
@ -136,6 +136,7 @@ static void Usage (void)
|
||||||
" --end-group\t\t\tEnd a library group\n"
|
" --end-group\t\t\tEnd a library group\n"
|
||||||
" --force-import sym\t\tForce an import of symbol 'sym'\n"
|
" --force-import sym\t\tForce an import of symbol 'sym'\n"
|
||||||
" --help\t\t\tHelp (this text)\n"
|
" --help\t\t\tHelp (this text)\n"
|
||||||
|
" --large-alignment\t\tDon't warn about large alignments\n"
|
||||||
" --lib file\t\t\tLink this library\n"
|
" --lib file\t\t\tLink this library\n"
|
||||||
" --lib-path path\t\tSpecify a library search path\n"
|
" --lib-path path\t\tSpecify a library search path\n"
|
||||||
" --mapfile name\t\tCreate a map file\n"
|
" --mapfile name\t\tCreate a map file\n"
|
||||||
|
@ -406,6 +407,14 @@ static void OptHelp (const char* Opt attribute ((unused)),
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
static void OptLargeAlignment (const char* Opt attribute ((unused)),
|
||||||
|
const char* Arg attribute ((unused)))
|
||||||
|
/* Don't warn about large alignments */
|
||||||
|
{
|
||||||
|
LargeAlignment = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static void OptLib (const char* Opt attribute ((unused)), const char* Arg)
|
static void OptLib (const char* Opt attribute ((unused)), const char* Arg)
|
||||||
/* Link a library */
|
/* Link a library */
|
||||||
{
|
{
|
||||||
|
@ -617,6 +626,7 @@ static void ParseCommandLine(void)
|
||||||
{ "--end-group", 0, CmdlOptEndGroup },
|
{ "--end-group", 0, CmdlOptEndGroup },
|
||||||
{ "--force-import", 1, OptForceImport },
|
{ "--force-import", 1, OptForceImport },
|
||||||
{ "--help", 0, OptHelp },
|
{ "--help", 0, OptHelp },
|
||||||
|
{ "--large-alignment", 0, OptLargeAlignment },
|
||||||
{ "--lib", 1, OptLib },
|
{ "--lib", 1, OptLib },
|
||||||
{ "--lib-path", 1, OptLibPath },
|
{ "--lib-path", 1, OptLibPath },
|
||||||
{ "--mapfile", 1, OptMapFile },
|
{ "--mapfile", 1, OptMapFile },
|
||||||
|
|
|
@ -230,7 +230,7 @@ Section* ReadSection (FILE* F, ObjData* O)
|
||||||
"%lu. Last module requiring alignment was '%s'.",
|
"%lu. Last module requiring alignment was '%s'.",
|
||||||
GetString (Name), Alignment, MAX_ALIGNMENT,
|
GetString (Name), Alignment, MAX_ALIGNMENT,
|
||||||
GetObjFileName (O));
|
GetObjFileName (O));
|
||||||
} else if (Alignment >= LARGE_ALIGNMENT) {
|
} else if (Alignment >= LARGE_ALIGNMENT && !LargeAlignment) {
|
||||||
Warning ("Combined alignment for segment '%s' is suspiciously "
|
Warning ("Combined alignment for segment '%s' is suspiciously "
|
||||||
"large (%lu). Last module requiring alignment was '%s'.",
|
"large (%lu). Last module requiring alignment was '%s'.",
|
||||||
GetString (Name), Alignment, GetObjFileName (O));
|
GetString (Name), Alignment, GetObjFileName (O));
|
||||||
|
|
Loading…
Add table
Reference in a new issue