mirror of
https://github.com/gbdev/rgbds.git
synced 2025-11-20 10:12:06 +00:00
Change behavior of merging FRAGMENTs to constrain each fragment individually
Additionally, remove the deprecated merging of non-fragment SECTIONs
This commit is contained in:
20
test/link/fragment-align/base-bad/a.asm
Normal file
20
test/link/fragment-align/base-bad/a.asm
Normal file
@@ -0,0 +1,20 @@
|
||||
|
||||
SECTION FRAGMENT "Frag", ROM0/*[1]*/
|
||||
|
||||
db $40
|
||||
|
||||
SECTION "Word", ROM0/*[6]*/
|
||||
|
||||
dw $78d5
|
||||
|
||||
SECTION FRAGMENT "Frag", ROM0/*[2]*/,ALIGN[1]
|
||||
|
||||
db $2e
|
||||
|
||||
SECTION FRAGMENT "Frag", ROM0/*[3]*/
|
||||
|
||||
db $1f
|
||||
|
||||
SECTION "Byte", ROM0/*[0]*/
|
||||
|
||||
db $44
|
||||
5
test/link/fragment-align/base-bad/b.asm
Normal file
5
test/link/fragment-align/base-bad/b.asm
Normal file
@@ -0,0 +1,5 @@
|
||||
|
||||
SECTION FRAGMENT "Frag", ROM0/*[4]*/
|
||||
|
||||
db $7b
|
||||
align 2 ; Uh oh
|
||||
1
test/link/fragment-align/base-bad/out.err
Normal file
1
test/link/fragment-align/base-bad/out.err
Normal file
@@ -0,0 +1 @@
|
||||
error: Section "Frag" is defined with conflicting 2-byte alignment (offset 1) and 4-byte alignment (offset 3)
|
||||
20
test/link/fragment-align/base/a.asm
Normal file
20
test/link/fragment-align/base/a.asm
Normal file
@@ -0,0 +1,20 @@
|
||||
|
||||
SECTION FRAGMENT "Frag", ROM0/*[1]*/
|
||||
|
||||
db $40
|
||||
|
||||
SECTION "Word", ROM0/*[5]*/
|
||||
|
||||
dw $78d5
|
||||
|
||||
SECTION FRAGMENT "Frag", ROM0/*[2]*/,ALIGN[1]
|
||||
|
||||
db $2e
|
||||
|
||||
SECTION FRAGMENT "Frag", ROM0/*[3]*/
|
||||
|
||||
db $1f
|
||||
|
||||
SECTION "Byte", ROM0/*[0]*/
|
||||
|
||||
db $44
|
||||
5
test/link/fragment-align/base/b.asm
Normal file
5
test/link/fragment-align/base/b.asm
Normal file
@@ -0,0 +1,5 @@
|
||||
|
||||
SECTION FRAGMENT "Frag", ROM0/*[4]*/
|
||||
|
||||
db $7b
|
||||
align 2, 1
|
||||
0
test/link/fragment-align/base/out.err
Normal file
0
test/link/fragment-align/base/out.err
Normal file
1
test/link/fragment-align/base/out.gb
Normal file
1
test/link/fragment-align/base/out.gb
Normal file
@@ -0,0 +1 @@
|
||||
D@.{<7B>x
|
||||
8
test/link/fragment-align/org-bad/a.asm
Normal file
8
test/link/fragment-align/org-bad/a.asm
Normal file
@@ -0,0 +1,8 @@
|
||||
|
||||
SECTION FRAGMENT "Frag", ROM0[0] ; Uh oh
|
||||
|
||||
db $40
|
||||
|
||||
SECTION "Word", ROM0/*[6]*/
|
||||
|
||||
dw $78d5
|
||||
17
test/link/fragment-align/org-bad/b.asm
Normal file
17
test/link/fragment-align/org-bad/b.asm
Normal file
@@ -0,0 +1,17 @@
|
||||
|
||||
SECTION FRAGMENT "Frag", ROM0/*[2]*/,ALIGN[1]
|
||||
|
||||
db $2e
|
||||
|
||||
SECTION FRAGMENT "Frag", ROM0/*[3]*/
|
||||
|
||||
db $1f
|
||||
|
||||
SECTION "Byte", ROM0/*[0]*/
|
||||
|
||||
db $44
|
||||
|
||||
SECTION FRAGMENT "Frag", ROM0/*[4]*/
|
||||
|
||||
db $7b
|
||||
align 2, 1
|
||||
1
test/link/fragment-align/org-bad/out.err
Normal file
1
test/link/fragment-align/org-bad/out.err
Normal file
@@ -0,0 +1 @@
|
||||
error: Section "Frag" is defined with conflicting address $0000 and 4-byte alignment (offset 2)
|
||||
25
test/link/fragment-align/org-rev-bad/a.asm
Normal file
25
test/link/fragment-align/org-rev-bad/a.asm
Normal file
@@ -0,0 +1,25 @@
|
||||
|
||||
SECTION "Word", ROM0/*[5]*/
|
||||
|
||||
dw $78df
|
||||
|
||||
SECTION FRAGMENT "Frag", ROM0/*[1]*/
|
||||
|
||||
db $40
|
||||
|
||||
SECTION FRAGMENT "Frag", ROM0/*[2]*/
|
||||
|
||||
db $2e
|
||||
|
||||
SECTION FRAGMENT "Frag", ROM0/*[3]*/,ALIGN[1,1]
|
||||
|
||||
db $1f
|
||||
|
||||
SECTION "Byte", ROM0/*[0]*/
|
||||
|
||||
db $44
|
||||
|
||||
SECTION FRAGMENT "Frag", ROM0/*[4]*/
|
||||
|
||||
db $7b
|
||||
align 2, 1
|
||||
2
test/link/fragment-align/org-rev-bad/b.asm
Normal file
2
test/link/fragment-align/org-rev-bad/b.asm
Normal file
@@ -0,0 +1,2 @@
|
||||
|
||||
SECTION FRAGMENT "Frag", ROM0[6] ; Uh oh
|
||||
1
test/link/fragment-align/org-rev-bad/out.err
Normal file
1
test/link/fragment-align/org-rev-bad/out.err
Normal file
@@ -0,0 +1 @@
|
||||
error: Section "Frag" is defined with conflicting 4-byte alignment (offset 1) and address $0006
|
||||
25
test/link/fragment-align/org-rev/a.asm
Normal file
25
test/link/fragment-align/org-rev/a.asm
Normal file
@@ -0,0 +1,25 @@
|
||||
|
||||
SECTION "Word", ROM0/*[5]*/
|
||||
|
||||
dw $78df
|
||||
|
||||
SECTION FRAGMENT "Frag", ROM0/*[1]*/
|
||||
|
||||
db $40
|
||||
|
||||
SECTION FRAGMENT "Frag", ROM0/*[2]*/
|
||||
|
||||
db $2e
|
||||
|
||||
SECTION FRAGMENT "Frag", ROM0/*[3]*/,ALIGN[1,1]
|
||||
|
||||
db $1f
|
||||
|
||||
SECTION "Byte", ROM0/*[0]*/
|
||||
|
||||
db $44
|
||||
|
||||
SECTION FRAGMENT "Frag", ROM0/*[4]*/
|
||||
|
||||
db $7b
|
||||
align 2, 1
|
||||
2
test/link/fragment-align/org-rev/b.asm
Normal file
2
test/link/fragment-align/org-rev/b.asm
Normal file
@@ -0,0 +1,2 @@
|
||||
|
||||
SECTION FRAGMENT "Frag", ROM0[5]
|
||||
0
test/link/fragment-align/org-rev/out.err
Normal file
0
test/link/fragment-align/org-rev/out.err
Normal file
1
test/link/fragment-align/org-rev/out.gb
Normal file
1
test/link/fragment-align/org-rev/out.gb
Normal file
@@ -0,0 +1 @@
|
||||
D@.{<7B>x
|
||||
8
test/link/fragment-align/org/a.asm
Normal file
8
test/link/fragment-align/org/a.asm
Normal file
@@ -0,0 +1,8 @@
|
||||
|
||||
SECTION FRAGMENT "Frag", ROM0[1]
|
||||
|
||||
db $40
|
||||
|
||||
SECTION "Word", ROM0/*[6]*/
|
||||
|
||||
dw $78d5
|
||||
17
test/link/fragment-align/org/b.asm
Normal file
17
test/link/fragment-align/org/b.asm
Normal file
@@ -0,0 +1,17 @@
|
||||
|
||||
SECTION FRAGMENT "Frag", ROM0/*[2]*/,ALIGN[1]
|
||||
|
||||
db $2e
|
||||
|
||||
SECTION FRAGMENT "Frag", ROM0/*[3]*/
|
||||
|
||||
db $1f
|
||||
|
||||
SECTION "Byte", ROM0/*[0]*/
|
||||
|
||||
db $44
|
||||
|
||||
SECTION FRAGMENT "Frag", ROM0/*[4]*/
|
||||
|
||||
db $7b
|
||||
align 2, 1
|
||||
0
test/link/fragment-align/org/out.err
Normal file
0
test/link/fragment-align/org/out.err
Normal file
1
test/link/fragment-align/org/out.gb
Normal file
1
test/link/fragment-align/org/out.gb
Normal file
@@ -0,0 +1 @@
|
||||
D@.{<7B>x
|
||||
Reference in New Issue
Block a user