ISSOtm
b49e025703
Allow BANK() in constexpr expressions
2019-12-07 23:43:02 +01:00
ISSOtm
e4f4706508
Add tests for new "known self-bank"
2019-12-07 22:15:07 +01:00
ISSOtm
02fe73d1f3
Make BANK("Section") known at assembling time when possible
...
If the target section is in the current file and its bank is known,
this means this value is known prior to linking.
2019-12-07 22:15:07 +01:00
ISSOtm
74f43d4e09
Add a way to seek a SECTION by name without creating one
2019-12-07 22:15:07 +01:00
ISSOtm
54ed050ecf
Make BANK(@) known at assembling time when possible
...
If the current section's bank is fixed, this means this value is
known prior to linking.
2019-12-07 22:12:57 +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
b62832e94d
Move empty entries warning to -Wextra
...
Since the behavior actually kinda makes sense, it's better as extra.
2019-12-07 02:48:06 +01:00
ISSOtm
e5820312d4
Document actual behavior of empty entries in db and co
2019-12-07 02:46:59 +01:00
ISSOtm
f710f21ad8
Reorder warnings alphabetically
2019-12-06 12:06:21 +01:00
ISSOtm
90fefb468b
Remove user warnings from -Wall
...
It does not make sense to include it there, as it's enabled by default.
2019-12-06 12:06:21 +01:00
ISSOtm
21f4cafef5
Make -Werror= with a meta warning an error
...
The previous behavior was to just enable the meta warning's warnings.
This is an error now because it doesn't make sense to do that, does it?
2019-12-06 12:06:21 +01:00
ISSOtm
b1d4be66e4
Remove deprecated "section charmap" feature
2019-12-04 01:56:06 +01:00
ISSOtm
ef43ae0eea
Add a verbose print each time a file is included
2019-12-04 01:55:01 +01:00
ISSOtm
9976a139de
Update test repos to latest commits
...
They work, and after an upcoming change the current ones are not
going to anymore!
2019-12-04 01:54:22 +01:00
ISSOtm
5718354500
Get rid of joinexpr()
...
This macro hid away the arguments to the underlying call, and served
no purpose beyond saving the programmer some typing. This is 2019,
people have IDEs (even Vim!) with autocompletion.
2019-12-04 00:21:57 +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
a290e19f46
Make make checkcodebase ignore extern/
...
That folder contains external code, and modifying it to conform to our
code style would make applying upstream patches, amongst others,
problematic. Therefore, skip checking it.
Ideally, the folder should also be excluded from `make checkpatch`,
but I haven't figured out a way to do that yet.
2019-12-03 23:09:07 +01:00
ISSOtm
92a2be62fe
Remove lex rules from Makefile
...
Since the RGBLINK rewrite, there have been no .l files in the whole codebase
(RGBASM has the C file directly, for better and for worse)
Since flex isn't used anymore, it's a good idea to remove it from the Makefile
so people don't think it's a dependency.
2019-12-03 23:02:38 +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
ea003487aa
Use trap_ instead of abort() for consistency
2019-11-23 21:59:36 +01:00
Eldred Habert
401fd8b56b
Merge pull request #452 from ISSOtm/warn
...
Add support for toggleable warnings
2019-11-18 20:58:21 +01:00
ISSOtm
191ee4ba1f
Add support for toggleable warnings
2019-11-18 20:45:21 +01:00
ISSOtm
58556f91f7
Disable chcecking for global initialisers
...
This is specific to the kernel and does not apply to us
2019-11-18 12:45:38 +01:00
ISSOtm
faa7893761
Fix develop error in getopt_long_only
...
The error was due to casting `const` away for permuting argv
elements, which is necessary for a libc for compatibility with older
systems, but not for us.
Checkpatch will complain about the style not being followed, but this is not
our code, so it can be ignored.
2019-11-09 00:48:00 +01:00
Eldred Habert
648df0dc7d
Merge pull request #449 from ISSOtm/better_error_msg
...
Report overlapping sections whenever possible
2019-11-06 09:00: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
Eldred Habert
197f1e9b7b
Merge pull request #444 from ISSOtm/fix_develop
...
Fix errors in `make develop`
2019-11-06 08:34:37 +01:00
Eldred Habert
7063f66b2d
Merge pull request #450 from ISSOtm/labels_in_sections
...
Prevent creating labels outside of sections
2019-11-06 08:33:25 +01:00
Eldred Habert
6e59bcb60e
Merge pull request #447 from ISSOtm/long_opts
...
Add long options
2019-11-06 02:34:26 +01:00
ISSOtm
0649e6d65f
Add long options
2019-11-06 00:48:41 +01:00
ISSOtm
072c965ba5
Add musl's implementation of getopt_long_only
...
Both `getopt_long` and `getopt_long_only` are GNU-specific, so we'll be
copying musl's implementation for portability.
This was retrieved as of commit 90251cf73dfdd44e7a3f085d236e89a7dff1b00b.
musl is licensed as MIT, which is compatible (being identical...) to RGBDS'.
The file is being copied as-is, without a copyright notice or attribution,
but this is only to have a verbatim copy in the history. Those will be added
in the next commit.
2019-11-06 00:40:55 +01:00
ISSOtm
122f5fe12e
Prevent creating labels outside of sections
...
This doesn't make sense, and causes RGBLINK to misbehave
2019-11-04 08:35:00 +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
d6a43f6a53
Fix RGBGFX man page
...
- Add color curve option to synopsis
- Fix ordering of `-d`'d description
2019-11-03 21:21:53 +01:00
Eldred Habert
ff8e38fcc6
Merge pull request #441 from ISSOtm/linker_error_stack
...
Make linker output error stacks instead of their top level
2019-11-03 16:41:09 +01:00
Eldred Habert
192f2de704
Merge pull request #440 from ISSOtm/nested_brackets
...
Allow nested bracketed symbols
2019-11-03 16:40:34 +01:00
Eldred Habert
c568b3a976
Merge pull request #439 from ISSOtm/tests_locale
...
Run tests under a specific locale
2019-11-03 16:30:38 +01:00
Eldred Habert
9c818ef3e1
Merge pull request #438 from ISSOtm/sub_doc_fix
...
Fix documentation for `sub`, `sbc` and `cp`
2019-11-03 16:18:09 +01:00
Eldred Habert
5aea30f40d
Merge pull request #434 from ISSOtm/rgblink_rewrite
...
Rewrite RGBLINK entirely
2019-11-03 16:15:37 +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