mirror of
https://github.com/gbdev/rgbds.git
synced 2026-09-18 11:47:06 +00:00
@@ -11,7 +11,8 @@ void out_AddSection(Section const §ion);
|
||||
// Finds an assigned section overlapping another one.
|
||||
Section const *out_OverlappingSection(Section const §ion);
|
||||
|
||||
// Writes all output (bin, sym, map) files.
|
||||
void out_WriteFiles();
|
||||
void out_WriteROMIfAny();
|
||||
void out_WriteSymIfAny();
|
||||
void out_WriteMapIfAny();
|
||||
|
||||
#endif // RGBDS_LINK_OUTPUT_HPP
|
||||
|
||||
+14
-5
@@ -433,14 +433,14 @@ int main(int argc, char *argv[]) {
|
||||
sectionTypeInfo[SECTTYPE_VRAM].lastBank = 0;
|
||||
}
|
||||
|
||||
// Read all object files first,
|
||||
// Read all object files...
|
||||
size_t nbFiles = localOptions.inputFileNames.size();
|
||||
obj_Setup(nbFiles);
|
||||
for (size_t i = 0; i < nbFiles; ++i) {
|
||||
obj_ReadFile(localOptions.inputFileNames[i], nbFiles - i - 1);
|
||||
}
|
||||
|
||||
// apply the linker script's modifications,
|
||||
// Apply the linker script's modifications...
|
||||
if (localOptions.linkerScriptName) {
|
||||
verbosePrint(VERB_NOTICE, "Reading linker script...\n");
|
||||
|
||||
@@ -453,16 +453,25 @@ int main(int argc, char *argv[]) {
|
||||
requireZeroErrors();
|
||||
}
|
||||
|
||||
// then process them,
|
||||
// Attempt to generate a layout...
|
||||
sect_DoSanityChecks();
|
||||
requireZeroErrors();
|
||||
assign_AssignSections();
|
||||
|
||||
// Emit the symbol and/or map files now (if requested on the CLI),
|
||||
// so that more link-time info is available to debug any failing assertions.
|
||||
// This is safe to do, since we have a valid layout at this point;
|
||||
// assertions only check user-level assumptions made about it.
|
||||
out_WriteSymIfAny();
|
||||
out_WriteMapIfAny();
|
||||
|
||||
// Make any last-minute verifications...
|
||||
patch_CheckAssertions();
|
||||
|
||||
// and finally output the result.
|
||||
// And, finally, make the ROM and emit it!
|
||||
patch_ApplyPatches();
|
||||
requireZeroErrors();
|
||||
out_WriteFiles();
|
||||
out_WriteROMIfAny();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
+3
-9
@@ -204,7 +204,7 @@ static void
|
||||
}
|
||||
}
|
||||
|
||||
static void writeROM() {
|
||||
void out_WriteROMIfAny() {
|
||||
if (options.outputFileName) {
|
||||
char const *outputFileName = options.outputFileName->c_str();
|
||||
if (*options.outputFileName != "-") {
|
||||
@@ -536,7 +536,7 @@ static void writeMapSummary() {
|
||||
}
|
||||
}
|
||||
|
||||
static void writeSym() {
|
||||
void out_WriteSymIfAny() {
|
||||
if (!options.symFileName) {
|
||||
return;
|
||||
}
|
||||
@@ -587,7 +587,7 @@ static void writeSym() {
|
||||
}
|
||||
}
|
||||
|
||||
static void writeMap() {
|
||||
void out_WriteMapIfAny() {
|
||||
if (!options.mapFileName) {
|
||||
return;
|
||||
}
|
||||
@@ -615,9 +615,3 @@ static void writeMap() {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void out_WriteFiles() {
|
||||
writeROM();
|
||||
writeSym();
|
||||
writeMap();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user