1
0

8 Commits

Author SHA1 Message Date
Florian Fleissner
7708c601a9 Adds build recipe to paste header/footer to sketch
This change adds a build recipe that pastes a header and footer file
to the preprocessed sketch file.

Signed-off-by: Florian Fleissner <florian.fleissner@inpartik.de>
2019-12-12 13:57:47 +01:00
Jesse Vincent
03788138d8
Blindly pull all plugins up to current 2019-09-25 12:50:13 -07:00
Jesse Vincent
d21f5f5cfb
Rename the "Keyboardio Keyboards" section to "Kaleidoscope Keyboards" 2019-08-20 14:04:48 -07:00
Florian Fleissner
6334f327fb Fixed build errors with follow up builds after a failed attempt to link
In rare occasions during development when e.g. a missing symbol caused
the linker process to abort, the joined library was not removed
at the end of the build. In subsequent builds this possibly
caused problems during creation of the joined library as a
static library cannot be updated but must be removed and re-created.

This change solves the described problem by removing a possibly
pre-exising joined library before the link.

Signed-off-by: Florian Fleissner <florian.fleissner@inpartik.de>
2019-06-11 12:38:37 +02:00
Florian Fleissner
e5b97afa48 Fix link order problems with inter-library/inter-plugin dependencies
Before this change, when Arduino was linking the elf binary, it added all
objects and archives (libraries/plugins) to a long linker command line.
This would sometimes cause issues due to the linker's gargabe collection feature.
When one library A referenced a symbol from a library B but library A appeared after B
in the linker command line, the referenced symbol was in some cases garbage
collected as to the linker it appeared to be unreferenced.

To understand this better it is important to know that the linker processes
objects and archives one by one in the order of their appearance at the command
line. For every object or archive encountered it runs garbage collection individually.
That's why symbols might get discarded although an object or archives that is
encountered later on while processing the linker command line might have referenced it.

To fix this problem this commit divides up the linker process into two steps.

First, all objects and archives are combined in a large .a archive. Then, this
archive is passed to the original linker command line, thereby replacing the
original set of objects and archives.

The final link now sees all symbols together. Thus, it is able to determine the true
interdependencies and do a proper garbage collection without accidentally
generating unresolved symbols.

With this fix, the order of appearance of include directives in the sketch file that formerly had an
influence on the link order (as Arduino passes library archives to the linker in
the order of the appearance of the matching includes in the sketch),
can now be savely chosen arbitrarily.

To erase the joined archive file that is generated from all objects and
archives, we have to use different solutions on Linux/macOS and Windows. This is
done via defining tools.rm.cmd differently for those platforms.

Signed-off-by: Florian Fleissner <florian.fleissner@inpartik.de>
2019-05-29 17:18:18 +02:00
Gergely Nagy
de1e7e6d98
Add support for the SOFT/HRUF Splitography
As a side effect, this changes the dfu-programmer invocation in platform.txt for
all boards (Planck included) that use it.

Signed-off-by: Gergely Nagy <algernon@keyboard.io>
2018-12-07 02:09:30 +01:00
Jesse Vincent
62bc403579
boards.txt: Planck with Caterina bootloader config
Signed-off-by: Jesse Vincent <jesse@keyboard.io>
2018-11-17 10:29:47 +01:00
Jesse Vincent
ae612b8b5c Starting to break out the content of the Arduino-Boards repository into
something more multiplatform.
2018-08-14 14:06:43 -07:00