Add -B/--backtrace option to RGBASM and RGBLINK (#1787)

This commit is contained in:
Rangi
2025-08-11 14:30:14 -04:00
committed by GitHub
parent 92a9c73ee7
commit 5f8b7474b4
303 changed files with 2729 additions and 2409 deletions

View File

@@ -1,5 +1,7 @@
warning: assert.asm(5): [-Wassert]
Worry about me, but not too much.
error: assert.asm(6): Okay, this is getting serious!
FATAL: assert.asm(7): It all ends now.
warning: Worry about me, but not too much. [-Wassert]
at assert.asm(5)
error: Okay, this is getting serious!
at assert.asm(6)
FATAL: It all ends now.
at assert.asm(7)
Linking aborted with 2 errors

View File

@@ -1,2 +1,3 @@
error: bank-const/b.asm(2): Requested BANK() of non-label symbol "CONSTANT"
error: Requested BANK() of non-label symbol "CONSTANT"
at bank-const/b.asm(2)
Linking failed with 1 error

View File

@@ -1,4 +1,7 @@
error: bit-res-set-bad.asm(5): Value $ff00 is not a bit index
error: bit-res-set-bad.asm(4): Value $8 is not a bit index
error: bit-res-set-bad.asm(3): Value $ffffffff is not a bit index
error: Value $ff00 is not a bit index
at bit-res-set-bad.asm(5)
error: Value $8 is not a bit index
at bit-res-set-bad.asm(4)
error: Value $ffffffff is not a bit index
at bit-res-set-bad.asm(3)
Linking failed with 3 errors

View File

@@ -1,3 +1,5 @@
error: cascading-errors-fatal-assert.asm(1): Undefined symbol "UnknownSymbol"
FATAL: cascading-errors-fatal-assert.asm(1): Failed to evaluate assertion
error: Undefined symbol "UnknownSymbol"
at cascading-errors-fatal-assert.asm(1)
FATAL: Failed to evaluate assertion
at cascading-errors-fatal-assert.asm(1)
Linking aborted with 2 errors

View File

@@ -1,11 +1,21 @@
error: cascading-errors.asm(18): Undefined symbol "Foo"
error: cascading-errors.asm(19): Undefined symbol "Bar"
error: cascading-errors.asm(16): Undefined symbol "hNonExist"
error: cascading-errors.asm(14): Undefined symbol "NonExist"
error: cascading-errors.asm(12): Undefined symbol "Foo"
error: cascading-errors.asm(10): Undefined symbol "Foo"
error: cascading-errors.asm(10): Division by 0
error: cascading-errors.asm(9): Undefined symbol "Foo"
error: cascading-errors.asm(9): Undefined symbol "Bar"
error: cascading-errors.asm(8): Undefined symbol "Bar"
error: Undefined symbol "Foo"
at cascading-errors.asm(18)
error: Undefined symbol "Bar"
at cascading-errors.asm(19)
error: Undefined symbol "hNonExist"
at cascading-errors.asm(16)
error: Undefined symbol "NonExist"
at cascading-errors.asm(14)
error: Undefined symbol "Foo"
at cascading-errors.asm(12)
error: Undefined symbol "Foo"
at cascading-errors.asm(10)
error: Division by 0
at cascading-errors.asm(10)
error: Undefined symbol "Foo"
at cascading-errors.asm(9)
error: Undefined symbol "Bar"
at cascading-errors.asm(9)
error: Undefined symbol "Bar"
at cascading-errors.asm(8)
Linking failed with 10 errors

View File

@@ -1 +1,5 @@
error: Section "Frag" is defined with 2-byte alignment (offset 1) at fragment-align/base-bad/a.asm(2), but with 4-byte alignment (offset 3) at fragment-align/base-bad/b.asm(2)
FATAL: Section "Frag" is defined with 2-byte alignment (offset 1), but also with 4-byte alignment (offset 3)
at fragment-align/base-bad/a.asm(2)
and also:
at fragment-align/base-bad/b.asm(2)
Linking aborted with 1 error

View File

@@ -1 +1,5 @@
error: Section "Frag" is defined with address $0000 at fragment-align/org-bad/a.asm(2), but with 4-byte alignment (offset 2) at fragment-align/org-bad/b.asm(2)
FATAL: Section "Frag" is defined with address $0000, but also with 4-byte alignment (offset 2)
at fragment-align/org-bad/a.asm(2)
and also:
at fragment-align/org-bad/b.asm(2)
Linking aborted with 1 error

View File

@@ -1 +1,5 @@
error: Section "Frag" is defined with 4-byte alignment (offset 1) at fragment-align/org-rev-bad/a.asm(6), but with address $0006 at fragment-align/org-rev-bad/b.asm(2)
FATAL: Section "Frag" is defined with 4-byte alignment (offset 1), but also with address $0006
at fragment-align/org-rev-bad/a.asm(6)
and also:
at fragment-align/org-rev-bad/b.asm(2)
Linking aborted with 1 error

View File

@@ -1,9 +1,17 @@
error: invalid-patches.asm(10): JR target must be between -128 and 127 bytes away, not 190; use JP instead
error: invalid-patches.asm(9): Address $0 for LDH is not in HRAM range
error: invalid-patches.asm(8): Requested SIZEOF() of undefined section "NonexistentSection"
error: invalid-patches.asm(7): Requested STARTOF() of undefined section "NonexistentSection"
error: invalid-patches.asm(6): Requested BANK() of undefined section "NonexistentSection"
error: invalid-patches.asm(5): Requested BANK() of undefined symbol "NonexistentSymbol"
error: invalid-patches.asm(4): Exponent by negative value -1
error: invalid-patches.asm(3): Modulo by 0
error: JR target must be between -128 and 127 bytes away, not 190; use JP instead
at invalid-patches.asm(10)
error: Address $0 for LDH is not in HRAM range
at invalid-patches.asm(9)
error: Requested SIZEOF() of undefined section "NonexistentSection"
at invalid-patches.asm(8)
error: Requested STARTOF() of undefined section "NonexistentSection"
at invalid-patches.asm(7)
error: Requested BANK() of undefined section "NonexistentSection"
at invalid-patches.asm(6)
error: Requested BANK() of undefined symbol "NonexistentSymbol"
at invalid-patches.asm(5)
error: Exponent by negative value -1
at invalid-patches.asm(4)
error: Modulo by 0
at invalid-patches.asm(3)
Linking failed with 8 errors

View File

@@ -1,2 +1,3 @@
error: ldh-bad.asm(2): Address $1234 for LDH is not in HRAM range
error: Address $1234 for LDH is not in HRAM range
at ldh-bad.asm(2)
Linking failed with 1 error

View File

@@ -1,18 +1,18 @@
warning: patch-diagnostics.asm(10): [-Wshift-amount]
Shifting right by large amount 32
warning: patch-diagnostics.asm(9): [-Wshift-amount]
Shifting right by negative amount -1
warning: patch-diagnostics.asm(8): [-Wshift-amount]
Shifting right by large amount 32
warning: patch-diagnostics.asm(7): [-Wshift-amount]
Shifting right by negative amount -1
warning: patch-diagnostics.asm(6): [-Wshift]
Shifting right negative value -1
warning: patch-diagnostics.asm(5): [-Wshift-amount]
Shifting left by large amount 32
warning: patch-diagnostics.asm(4): [-Wshift-amount]
Shifting left by negative amount -1
warning: patch-diagnostics.asm(3): [-Wdiv]
Division of -2147483648 by -1 yields -2147483648
warning: patch-diagnostics.asm(3): [-Wtruncation]
Value $80000000 (may be negative?) is not 8-bit
warning: Shifting right by large amount 32 [-Wshift-amount]
at patch-diagnostics.asm(10)
warning: Shifting right by negative amount -1 [-Wshift-amount]
at patch-diagnostics.asm(9)
warning: Shifting right by large amount 32 [-Wshift-amount]
at patch-diagnostics.asm(8)
warning: Shifting right by negative amount -1 [-Wshift-amount]
at patch-diagnostics.asm(7)
warning: Shifting right negative value -1 [-Wshift]
at patch-diagnostics.asm(6)
warning: Shifting left by large amount 32 [-Wshift-amount]
at patch-diagnostics.asm(5)
warning: Shifting left by negative amount -1 [-Wshift-amount]
at patch-diagnostics.asm(4)
warning: Division of -2147483648 by -1 yields -2147483648 [-Wdiv]
at patch-diagnostics.asm(3)
warning: Value $80000000 (may be negative?) is not 8-bit [-Wtruncation]
at patch-diagnostics.asm(3)

View File

@@ -1,4 +1,4 @@
warning: patch-overflow.asm(3): [-Wtruncation]
Value $14000 is not 16-bit
warning: patch-overflow.asm(2): [-Wtruncation]
Value $4000 is not 8-bit
warning: Value $14000 is not 16-bit [-Wtruncation]
at patch-overflow.asm(3)
warning: Value $4000 is not 8-bit [-Wtruncation]
at patch-overflow.asm(2)

View File

@@ -1,2 +1,3 @@
error: rst-bad.asm(2): Value $1 is not a RST vector
error: Value $1 is not a RST vector
at rst-bad.asm(2)
Linking failed with 1 error

View File

@@ -1 +1,5 @@
error: Section "test" is defined as SECTION FRAGMENT at section-conflict/different-mod/a.asm(1), but as SECTION UNION at section-conflict/different-mod/b.asm(1)
FATAL: Section "test" is defined as SECTION FRAGMENT, but also as SECTION UNION
at section-conflict/different-mod/a.asm(1)
and also:
at section-conflict/different-mod/b.asm(1)
Linking aborted with 1 error

View File

@@ -1 +1,5 @@
error: Section "Same" is defined at section-normal/same-name/a.asm(1), but also at section-normal/same-name/b.asm(1)
FATAL: Section "Same" is already defined
at section-normal/same-name/a.asm(1)
and also:
at section-normal/same-name/b.asm(1)
Linking aborted with 1 error

View File

@@ -1,6 +1,10 @@
error: Section "conflicting alignment" is defined with 4-byte alignment (offset 0) at section-union/align-conflict.asm(7), but with address $cafe at section-union/align-conflict.asm(7)
FATAL: Section "conflicting alignment" is defined with 4-byte alignment (offset 0), but also with address $cafe
at section-union/align-conflict.asm(7)
and also:
at section-union/align-conflict.asm(7)
Linking aborted with 1 error
---
error: <stdin>(18):
Section already declared as aligned to 4 bytes (offset 0)
FATAL: <stdin>(18):
Cannot create section "conflicting alignment" (1 error)
error: Section already declared as aligned to 4 bytes (offset 0)
at <stdin>(18)
FATAL: Cannot create section "conflicting alignment" (1 error)
at <stdin>(18)

View File

@@ -1,6 +1,10 @@
error: Section "conflicting alignment" is defined with 8-byte alignment (offset 7) at section-union/align-ofs-conflict.asm(7), but with 16-byte alignment (offset 14) at section-union/align-ofs-conflict.asm(7)
FATAL: Section "conflicting alignment" is defined with 8-byte alignment (offset 7), but also with 16-byte alignment (offset 14)
at section-union/align-ofs-conflict.asm(7)
and also:
at section-union/align-ofs-conflict.asm(7)
Linking aborted with 1 error
---
error: <stdin>(18):
Section already declared with incompatible 8-byte alignment (offset 7)
FATAL: <stdin>(18):
Cannot create section "conflicting alignment" (1 error)
error: Section already declared with incompatible 8-byte alignment (offset 7)
at <stdin>(18)
FATAL: Cannot create section "conflicting alignment" (1 error)
at <stdin>(18)

View File

@@ -1,6 +1,7 @@
error: section-union/assert.asm(11): Force failing the build
error: Force failing the build
at section-union/assert.asm(11)
Linking failed with 1 error
---
error: <stdin>(30):
Assertion failed: Force failing the build
error: Assertion failed: Force failing the build
at <stdin>(30)
Assembly aborted with 1 error!

View File

@@ -1,6 +1,10 @@
error: Section "conflicting types" is defined with type HRAM at section-union/bad-types.asm(7), but with type WRAM0 at section-union/bad-types.asm(7)
FATAL: Section "conflicting types" is defined with type HRAM, but also with type WRAM0
at section-union/bad-types.asm(7)
and also:
at section-union/bad-types.asm(7)
Linking aborted with 1 error
---
error: <stdin>(18):
Section already exists but with type HRAM
FATAL: <stdin>(18):
Cannot create section "conflicting types" (1 error)
error: Section already exists but with type HRAM
at <stdin>(18)
FATAL: Cannot create section "conflicting types" (1 error)
at <stdin>(18)

View File

@@ -1,6 +1,10 @@
error: Section "conflicting banks" is defined with bank 4 at section-union/bank-conflict.asm(5), but with bank 1 at section-union/bank-conflict.asm(5)
FATAL: Section "conflicting banks" is defined with bank 4, but also with bank 1
at section-union/bank-conflict.asm(5)
and also:
at section-union/bank-conflict.asm(5)
Linking aborted with 1 error
---
error: <stdin>(14):
Section already declared with different bank 4
FATAL: <stdin>(14):
Cannot create section "conflicting banks" (1 error)
error: Section already declared with different bank 4
at <stdin>(14)
FATAL: Cannot create section "conflicting banks" (1 error)
at <stdin>(14)

View File

@@ -1,7 +1,7 @@
FATAL: Section "overlaid data" is of type ROM0, which cannot be unionized
Linking aborted with 1 error
---
error: <stdin>(18):
Cannot declare ROM sections as UNION
FATAL: <stdin>(18):
Cannot create section "overlaid data" (1 error)
error: Cannot declare ROM sections as UNION
at <stdin>(18)
FATAL: Cannot create section "overlaid data" (1 error)
at <stdin>(18)

View File

@@ -1,7 +1,7 @@
FATAL: Section "different data" is of type ROM0, which cannot be unionized
Linking aborted with 1 error
---
error: <stdin>(16):
Cannot declare ROM sections as UNION
FATAL: <stdin>(16):
Cannot create section "different data" (1 error)
error: Cannot declare ROM sections as UNION
at <stdin>(16)
FATAL: Cannot create section "different data" (1 error)
at <stdin>(16)

View File

@@ -1,6 +1,10 @@
error: Section "conflicting alignment" is defined with 8-byte alignment (offset 7) at section-union/different-ofs.asm(7), but with 8-byte alignment (offset 6) at section-union/different-ofs.asm(7)
FATAL: Section "conflicting alignment" is defined with 8-byte alignment (offset 7), but also with 8-byte alignment (offset 6)
at section-union/different-ofs.asm(7)
and also:
at section-union/different-ofs.asm(7)
Linking aborted with 1 error
---
error: <stdin>(18):
Section already declared with incompatible 8-byte alignment (offset 7)
FATAL: <stdin>(18):
Cannot create section "conflicting alignment" (1 error)
error: Section already declared with incompatible 8-byte alignment (offset 7)
at <stdin>(18)
FATAL: Cannot create section "conflicting alignment" (1 error)
at <stdin>(18)

View File

@@ -1,7 +1,7 @@
FATAL: Section "different section sizes" is of type ROM0, which cannot be unionized
Linking aborted with 1 error
---
error: <stdin>(16):
Cannot declare ROM sections as UNION
FATAL: <stdin>(16):
Cannot create section "different section sizes" (1 error)
error: Cannot declare ROM sections as UNION
at <stdin>(16)
FATAL: Cannot create section "different section sizes" (1 error)
at <stdin>(16)

View File

@@ -1,7 +1,7 @@
FATAL: Section "different syntaxes" is of type ROM0, which cannot be unionized
Linking aborted with 1 error
---
error: <stdin>(18):
Cannot declare ROM sections as UNION
FATAL: <stdin>(18):
Cannot create section "different syntaxes" (1 error)
error: Cannot declare ROM sections as UNION
at <stdin>(18)
FATAL: Cannot create section "different syntaxes" (1 error)
at <stdin>(18)

View File

@@ -1,6 +1,10 @@
error: Section "conflicting address" is defined with address $beef at section-union/org-conflict.asm(7), but with address $babe at section-union/org-conflict.asm(7)
FATAL: Section "conflicting address" is defined with address $beef, but also with address $babe
at section-union/org-conflict.asm(7)
and also:
at section-union/org-conflict.asm(7)
Linking aborted with 1 error
---
error: <stdin>(16):
Section already declared as fixed at different address $beef
FATAL: <stdin>(16):
Cannot create section "conflicting address" (1 error)
error: Section already declared as fixed at different address $beef
at <stdin>(16)
FATAL: Cannot create section "conflicting address" (1 error)
at <stdin>(16)

View File

@@ -1 +1,5 @@
error: "Same" is defined as a label at section-union/same-export/b.asm(2), but as another label at section-union/same-export/a.asm(2)
FATAL: "Same" is defined as a label, but also as another label
at section-union/same-export/b.asm(2)
and also:
at section-union/same-export/a.asm(2)
Linking aborted with 1 error

View File

@@ -1,7 +1,7 @@
FATAL: Section "mutually-overlaid data" is of type ROM0, which cannot be unionized
Linking aborted with 1 error
---
error: <stdin>(18):
Cannot declare ROM sections as UNION
FATAL: <stdin>(18):
Cannot create section "mutually-overlaid data" (1 error)
error: Cannot declare ROM sections as UNION
at <stdin>(18)
FATAL: Cannot create section "mutually-overlaid data" (1 error)
at <stdin>(18)

View File

@@ -1,3 +1,5 @@
error: sym-noexist.asm(3): Undefined symbol "nothing"
error: sym-noexist.asm(2): Undefined symbol "where"
error: Undefined symbol "nothing"
at sym-noexist.asm(3)
error: Undefined symbol "where"
at sym-noexist.asm(2)
Linking failed with 2 errors

View File

@@ -1 +1,5 @@
error: "SAME" is defined as 2 at symbols/conflict/b.asm(1), but as 1 at symbols/conflict/a.asm(1)
FATAL: "SAME" is defined as 2, but also as 1
at symbols/conflict/b.asm(1)
and also:
at symbols/conflict/a.asm(1)
Linking aborted with 1 error

View File

@@ -1,6 +1,8 @@
error: symbols/unknown/a.asm(2): Undefined symbol "Label"
A label with that name is defined but not exported at symbols/unknown/b.asm(2)
A constant with that name is defined but not exported at symbols/unknown/c.asm(1)
A constant with that name is defined but not exported at symbols/unknown/d.asm(1)
...and 1 more symbol with that name is defined but not exported
error: Undefined symbol "Label"
at symbols/unknown/a.asm(2)
4 symbols with that name are defined but not exported:
at symbols/unknown/b.asm(2)
at symbols/unknown/c.asm(1)
at symbols/unknown/d.asm(1)
...and 1 more
Linking failed with 1 error

View File

@@ -71,7 +71,7 @@ tryCmpRomSize () {
}
rgblinkQuiet () {
out="$(env $RGBLINK -Weverything "$@")" || return $?
out="$(env $RGBLINK -Weverything -B collapse "$@")" || return $?
if [[ -n "$out" ]]; then
echo "$bold${red}Linking shouldn't produce anything on stdout!${rescolors}${resbold}"
false