ISSOtm
cdf6000618
Report failing file names in comparisons
...
The files being diffed (especially for variants) are temp files, so their
names are pretty nondescript. This improve error output, using ANSI escape
sequences to make those lines stand out.
2020-01-28 11:44:50 +01:00
ISSOtm
1bd41bf79a
Don't use diff to compare bin files in tests
2020-01-26 21:10:31 +01:00
ISSOtm
08ab34cf57
Fix a few checkpatch warnings in symbol.h
2020-01-26 18:26:57 +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
Eldred Habert
e7eac583da
Merge pull request #477 from ISSOtm/sym_overhaul
...
Overhaul the symbol system
2020-01-26 14:30:47 +01:00
ISSOtm
cd107855e7
Test new working label subtractions
2020-01-24 03:03:18 +01:00
ISSOtm
ab9307ac61
Clean up symbol management
...
Stop using that bitfield for everything, including what can be determined otherwise
It also makes it easier to have a sane state, since some bits were (supposedly)
mutually exclusive
2020-01-24 02:51:48 +01:00
ISSOtm
e3ef194b4f
Remove local label error checking
...
This is actually not necessary, because RGBLINK would warn about missing labels.
Besides, through semi-esoteric ways, it is possible to define more labels in this scope,
and there's no reason to prevent that.
2020-01-24 02:51:48 +01:00
ISSOtm
ab4ca9ad8c
Make symbol ref in patch symbols constant
2020-01-24 02:51:48 +01:00
ISSOtm
3fb5648880
Actually rely on createsymbol never returning NULL
...
This reduces complexity, basically
2020-01-24 02:51:48 +01:00
ISSOtm
a7c0616cd8
Rename export type enum to that
...
This prevents a conflict in the next commit
2020-01-24 02:51:48 +01:00
ISSOtm
51d5ff0567
Test subtracting labels
2020-01-24 02:50:24 +01:00
ISSOtm
0665146dcd
Report line info on empty RPN stack
2020-01-21 03:12:43 +01:00
ISSOtm
1f8422575e
Test that all-instructions does not error out
2020-01-21 03:05:22 +01:00
ISSOtm
61c381a62c
Systemize RGBLINK testing
2020-01-21 03:01:58 +01:00
ISSOtm
56d5f1588a
Do not run .pipe tests if the normal variant fails
...
They'll most likely fail as well, just adding redundant error output
2020-01-21 00:27:28 +01:00
ISSOtm
c05334dfc1
Upgrade testing to latest disasm commits
2020-01-20 14:51:25 +01:00
Eldred Habert
09d6c7a54f
Merge pull request #475 from ISSOtm/licensing
...
Add license headers where missing
2020-01-19 15:45:46 +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
7437f7eb85
Clarify redefinition error message
2020-01-17 03:53:27 +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
89917ef688
Put semicolons before labels in test suite
2020-01-16 22:09:31 +01:00
Eldred Habert
097e4c9799
Merge pull request #468 from ISSOtm/include_stem
...
Enforce trailing slash in include paths
2020-01-16 19:18:00 +01:00
ISSOtm
2c37a1e971
Fix default warning states
...
They were in the wrong order for some reason, this especially caused user
warnings to be off by default
2020-01-16 19:16:54 +01:00
ISSOtm
2c52364978
Add test for fixed section addresses
2020-01-16 18:12:42 +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
ISSOtm
9ccb71205a
Remove stale clean line
...
Those files don't exist in RGBLINK's source anymore
2020-01-14 11:42:07 +01:00
ISSOtm
e50bcaa272
Enforce trailing slash in include paths
...
Fixes rednex#456
2020-01-13 22:48:59 +01:00
ISSOtm
86a28e8201
Provide string arguments to errors in constexpr_BankSection
...
How the f did it work before
2020-01-13 15:13:19 +01:00
ISSOtm
95cd0c6e53
Add test for BANK() in constant context
2020-01-12 13:09:27 +01:00
ISSOtm
23ab245cec
Return a consistent number for const BANK() when erroring out
2020-01-12 13:07:48 +01:00
ISSOtm
eb82476591
Make bank of "bank 0" sections known to RGBASM
...
This allows `BANK("Some ROM0 section")` to be used in a constant expression
2020-01-10 14:57:39 +01:00
ISSOtm
f1f70d250a
Add test for DEF(@)
2020-01-09 06:10:28 +01:00
ISSOtm
98a221d6b6
Add test for DEF(@)
2020-01-09 02:10:48 +01:00
Eldred Habert
fb22d12b0f
Merge pull request #463 from ISSOtm/windows_test_suite
...
Run tests on MinGW versions
2020-01-09 01:15:47 +01:00
ISSOtm
83249ed69f
Cap the number of concurrent jobs for testing
...
This has a serious tendency to just blow up process load (~35 here with the shim)
2020-01-09 01:10:51 +01:00
ISSOtm
1534df0b3c
Use minGW's pkg-config
2020-01-09 01:10:51 +01:00
ISSOtm
ece9177f5a
Produce shims to run the test suite on Windows bins via Wine
2020-01-09 01:10:51 +01:00
ISSOtm
8a90d74340
Ignore line endings in test suite
...
This removes many false positives with Windows
2020-01-09 01:10:51 +01:00
ISSOtm
5a06fad31e
Separate stdout and stderr in tests
...
POSIX leaves undefined the order of output if stderr is injected into stdout,
and in practice it differs on Windows (Linux buffers both streams separately,
Windows interleaves them as they arrive without buffering).
This should help testing on other platforms
2020-01-09 01:10:51 +01:00
Eldred Habert
add07259f4
Merge pull request #465 from ISSOtm/rebuild_version
...
Always update version
2020-01-09 01:01:11 +01:00
Eldred Habert
36ca18bc7b
Merge pull request #466 from AntonioND/an/warning
...
Fix declaration of constexpr_BankSymbol()
2020-01-09 00:46:47 +01:00
ISSOtm
6d9399e3a0
Always update version
...
Implements https://github.com/rednex/rgbds/pull/378#issuecomment-569836686
2020-01-09 00:27:22 +01:00
Eldred Habert
676800476d
Merge pull request #430 from ISSOtm/known_selfbank
...
Make `BANK(@)` and `BANK("section")` known to RGBASM
2020-01-08 18:56:28 +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
b81faeccfa
Rename rgbfix long opt verbose to validate
...
The previous name was probably copy-pasted, it was completely wrong
2019-12-29 17:41:19 +01:00
ISSOtm
1c4cb2cd2d
Add warning option to RGBASM man synopsis
2019-12-29 17:38:46 +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
8a1e920e23
Fix incorrect line counting when running REPT blocks.
...
Fixes #461
2019-12-12 23:46:16 +01:00
ISSOtm
606519c515
Touch up ds documentation as per rednex#350
2019-12-12 23:22:51 +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
b30dfb166b
Fix a line over 80 chars
2019-12-08 00:08:44 +01:00
ISSOtm
36db3257f3
Align fatalerror return code with every other one
2019-12-08 00:07:48 +01:00
ISSOtm
cad23465a5
Remove flex from the list of dependencies in the README
2019-12-08 00:04:15 +01:00
ISSOtm
d23401316e
Improve pc-bank test
2019-12-07 23:44:00 +01:00
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