ISSOtm
7903c14993
Fix undefined behavior when reading constant in RGBLINK
2020-02-07 14:51:26 +01:00
ISSOtm
a7cb0a166a
Inline readRGBxObject
...
This was made separate with the intention of supporting multiple versions,
but after some discussion this was decided against, so better improve
readability instead.
2020-02-03 21:10:05 +01:00
ISSOtm
f363541611
Introduce revision number field
2020-02-03 21:10:05 +01:00
ISSOtm
d73fa09774
Remove RGB6 parsing
2020-02-03 21:07:12 +01:00
ISSOtm
b1cd730db2
Add link-time RST instruction
...
This allows using a label as the argument to a `rst` instruction
Fixes rednex#448
2020-02-03 21:07:12 +01:00
ISSOtm
359a048b6e
Bump object version number
...
We're about to break the format, so let's do this
2020-02-03 21:07:12 +01:00
ISSOtm
f2be601a13
Check "left" boundary as well in isLocationSuitable
...
"fixed" and "aligned" location checking advanced the target location to places
regardless of the associated free space, potentially breaking the assumption
that the location was always further in memory than the free space's base.
Rather than adding more code to try keeping that assumption true, harden
`isLocationSuitable` and handle that case as well.
2020-02-03 20:57:12 +01:00
ISSOtm
4d2379b3df
Merge both "single-side" code paths in placeSection
2020-02-03 20:19:30 +01:00
ISSOtm
24f41ef897
Expose link def arrays to RGBASM
2020-02-03 15:19:48 +01:00
ISSOtm
09dff85d5b
Merge common.h into linkdefs.h
2020-02-03 14:50:00 +01:00
ISSOtm
b11d121c48
Remove undefined behavior from shifts
...
`asl` and `asr` in `src/link/patch.c` courtesy of @pinobatch, and rearranged in RGBASM
evaluators.
2020-01-28 12:37:38 +01:00
Eldred Habert
fb81733b2b
Merge pull request #472 from ISSOtm/romx-tiny
...
Allow ROMX and WRAMX sections in restricted modes
2020-01-26 14:48:32 +01:00
ISSOtm
0665146dcd
Report line info on empty RPN stack
2020-01-21 03:12:43 +01:00
ISSOtm
4fe44447a2
Add license headers where missing
2020-01-19 11:11:36 +01:00
ISSOtm
23c600eef5
Remove unnecessary gitignore file
...
This became unnecessary when the linker script parser was rewritten ad-hoc
2020-01-19 11:02:47 +01:00
ISSOtm
50f091ab7c
Fix RGBLINK failing to read args on certain machines
...
`char` has implementation-defined signedness, and if it's chosen to be unsigned,
then -1 gets converted to 255, which is then promoted back to `int` as... 255,
always failing the loop condition in src/link/main.c:118
`int8_t` has the correct signedness, but considering `musl_getopt_long_only`
returns `int`, better use that so as not to lose any bits
2020-01-18 22:12:25 +01:00
ISSOtm
d6a99981d6
Fix checkcodebase warnings
2020-01-16 22:31:24 +01:00
ISSOtm
71fe652556
Allow ROMX and WRAMX sections in restricted modes
...
Closes #462 , although with this implementation `BANK("some ROMX section")` would
return 0 instead of 1, which I think is benign anyways
2020-01-16 22:24:05 +01:00
ISSOtm
10140f74dc
Allow RGBLINK to report multiple sanity check errors
2020-01-16 18:10:35 +01:00
ISSOtm
558e8f46ff
Sanity check fixed address of sections in RGBLINK
...
This could otherwise cause segfaults while reporting errors (!) during placement
2020-01-16 12:41:23 +01:00
Eldred Habert
4dfa3157e5
Merge pull request #454 from ISSOtm/unlocked_windows
...
Fix mingw build
2020-01-08 13:14:13 +01:00
Eldred Habert
f26cfa2d94
Merge pull request #455 from ISSOtm/man
...
Overhaul RGBDS man pages and help messages
2020-01-07 22:44:58 +01:00
ISSOtm
d3328406a2
Improve jr out-of-reach error message
2020-01-02 14:06:40 +01:00
ISSOtm
3564b3f9ea
Have jr offset wrap with 16 bits
...
Overflow with `int16_t` is defined to two's complement so it's OK
This could trigger when jumping from the top of ROM0 to HRAM
2020-01-02 14:03:54 +01:00
ISSOtm
6959b76749
Rework help/usage messages
...
Trimmed down the option lists as per @bentley's request;
Reinstated the man pages' synopsis
2019-12-29 17:38:08 +01:00
ISSOtm
34618e0294
Overhaul RGBDS man pages and help messages
2019-12-12 23:22:51 +01:00
ISSOtm
373762dedc
Fix lack of newline when passing no files to RGBLINK
2019-12-10 18:35:40 +01:00
ISSOtm
f262d3b34b
Fix undefined behavior in readlong
...
See the new comment for what caused the UB, and how it was fixed
2019-12-07 21:19:13 +01:00
ISSOtm
32f7860a4e
Fix possible 0-length array in RGBLINK
2019-12-07 15:23:52 +01:00
ISSOtm
2d7d9eef9f
Fix some make checkcodebase errors
...
- Reorder checkpatch ignore flags alphabetically
- Fix checkpatch WARNINGs and CHECKs when they make sense
- Add more checkpatch ignores
2019-12-04 00:16:28 +01:00
ISSOtm
5410dba4f4
Do prevent using org in linker scripts to go backwards
2019-11-27 01:37:00 +01:00
ISSOtm
d93ad2e650
Rename all functions imported from musl
...
This is to avoid conflicting with libraries, which occurred in the mingw builds
2019-11-23 23:08:44 +01:00
ISSOtm
68410d35d3
Get rid of unlocked_stdio functions
...
Those did not provide a significant speedup, and are not provided by mingw
2019-11-23 23:00:44 +01:00
ISSOtm
ceae4a44f3
Stop using f(un)?lockfile
...
Those are only useful for locking file IO across threads, but RGBLINK is
single-threaded anyways, so they don't matter. Plus, they aren't provided by
mingw, so that'll remove part of the problem
2019-11-23 22:21:11 +01:00
ISSOtm
44173dbe8b
Improve error messages slightly
2019-11-06 08:48:24 +01:00
ISSOtm
7233f568a7
Report overlapping sections whenever possible
2019-11-06 08:40:13 +01:00
ISSOtm
0649e6d65f
Add long options
2019-11-06 00:48:41 +01:00
ISSOtm
a40d599cd7
Fix extraneous comma in error message
2019-11-04 01:20:23 +01:00
ISSOtm
babf36e96e
Don't forget to initialize additional banks when using an overlay
2019-11-04 01:16:08 +01:00
ISSOtm
09c9395ff8
Fix NULL deref when fetching an unknown symbol in RPN expressions
...
was being overwritten with the result, so
was meaningless. Using a temporary instead is better.
2019-11-02 22:37:10 +01:00
ISSOtm
81047afb4b
Rework "overflow" error message
2019-11-02 22:37:10 +01:00
ISSOtm
f1441cc962
Make linker script error messages more descriptive
...
Provide file names when appropriate, print memory locations in hex
2019-11-02 22:37:10 +01:00
ISSOtm
50804d661a
Fix linkerscript not updating section categorization
2019-11-02 22:37:10 +01:00
ISSOtm
9b895e8a0a
Fix bank-fixed sections going in any bank
2019-11-02 22:37:10 +01:00
ISSOtm
4600f70fef
Fix address-fixed sections potentially incorrectly assigned
...
This happened if all space before their fixed location was taken
2019-11-02 22:37:10 +01:00
ISSOtm
9e33cc998f
Implement INCLUDE keyword in linker scripts
2019-11-02 22:37:10 +01:00
ISSOtm
5496c2e76f
Make linkerscript errors report file names
2019-11-02 22:37:10 +01:00
ISSOtm
bf75971a3a
Only open files when necessary
2019-11-02 22:37:10 +01:00
ISSOtm
8a59994c0d
Fix false positives in readstr
...
Reading the byte `EOF & 0xFF` would cause an incorrect termination
2019-11-02 22:37:10 +01:00
ISSOtm
f2e1b7d868
Add EOF checking in string reading
...
Fixes rednex/#422
2019-11-02 22:37:10 +01:00