From 79948be3a0e09bd1acbac40e8f5fe0b80e6b6c32 Mon Sep 17 00:00:00 2001 From: Rangi <35663410+Rangi42@users.noreply.github.com> Date: Tue, 31 Oct 2023 15:04:27 -0400 Subject: [PATCH] Improve incorrect object file revision error (#1189) Fixes #1118 --- src/link/object.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/link/object.c b/src/link/object.c index d55afa1c..f4d0cebe 100644 --- a/src/link/object.c +++ b/src/link/object.c @@ -25,6 +25,7 @@ #include "error.h" #include "helpers.h" #include "linkdefs.h" +#include "version.h" static struct SymbolList { size_t nbSymbols; @@ -509,7 +510,7 @@ void obj_ReadFile(char const *fileName, unsigned int fileID) if (fscanf(file, RGBDS_OBJECT_VERSION_STRING "%n", &matchedElems) == 1 && matchedElems != strlen(RGBDS_OBJECT_VERSION_STRING)) - errx("\"%s\" is not a RGBDS object file", fileName); + errx("%s: Not a RGBDS object file", fileName); verbosePrint("Reading object file %s\n", fileName); @@ -519,8 +520,10 @@ void obj_ReadFile(char const *fileName, unsigned int fileID) tryReadlong(revNum, file, "%s: Cannot read revision number: %s", fileName); if (revNum != RGBDS_OBJECT_REV) - errx("%s is a revision 0x%04" PRIx32 " object file; only 0x%04x is supported", - fileName, revNum, RGBDS_OBJECT_REV); + errx("%s: Unsupported object file for rgblink %s; try rebuilding it%s" + " (expected revision %d, got %d)", fileName, get_package_version_string(), + revNum > RGBDS_OBJECT_REV ? " or updating rgblink" : "", RGBDS_OBJECT_REV, + revNum); uint32_t nbSymbols; uint32_t nbSections;