The assembly for apple_arm64 is adapted from linux_arm64 target with small modifications:
1. Re-enable FPU conditional save/restore as apple_x86_64 does
2. Workaround limitation in relocation in assembly for clang
The original call would jump to a meaningless low address on error,
but the upstream Boost context and 32bit version of this function
call exit to properly terminate the code when this error occurs.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6820
wxWidgets 3.1.5+ on Linux will compile with the Wayland EGL
canvas as the backend instead of the X11 backend. This requires a
version of GLEW compiled with the proper EGL defines and a different
header/code for certain parts that are X11 GLEW specific.
This introduces an in-tree version of GLEW that will be built with the
GLEW_EGL flag then statically linked into the KiCad executables when
EGL support is needed.
This should fix some Coverity warnings about memory management
in the lemon tool (less critical), but also fix improper
memory accesses in the generated parsers (labeled critical
by Coverity).
Ref: https://sqlite.org/forum/forumpost/edecf32da3
- Allows specifying FIBER_FLAG_FLOAT_SWITCH to save FP registers (it doesnt by default on win32 but does on win64)
- Specify a commit stack size one byte less than the reserve stack size or else Windows rounds up to the nearest allocation size above the desired size
This implements a copper-layer RTree with functions for iterating over
the elements in a copper layer and providing Nearest Neighbor returns
for BOARD_CONNECTED_ITEMS
This moves the generated files out of the source tree and into
the build directory. They are now regenerated each time they are
needed, based on the timestamp of the generated file compared to
the timestamp of the lemon file.
To do this, we also bundle lemon into the thirdparty directory
and build it for ourselves since it is a very tiny program and
not all platforms seem to distribute it in a consistent manner.
Fixes https://gitlab.com/kicad/code/kicad/issues/5013
Removes the TTL triangulator in favor of the delaunator triangulator.
This removes the only AGPL code in the KiCad codebase and therefore
allows the full project to be licensed under the GPLv3.
This moves EESchema DLIST structures to rtree. These changes are more
fundamental than the pcbnew changes from 9163ac543888c01d11d1877d7c1
and 961b22d60 as eeschema operations were more dependent on passing
drawing list references around with SCH_ITEM* objects.
Changing the section like this in inline assembly
is not supported, and leads to issues because code
following the inline assembly macro ends up in the
wrong assembly section. This was causing linking
errors on gcc.
The files appear to be compiled so that the stack
isn't executable anyway, so we don't need to manually
create the section to say that.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93190
* Split up the thirdparty code into the thirdparty folder (#3637)
* Create a new kimath static library containing all the math functions
This is part of cleaning the build system for #1906.