I've been testing 1.53 beta 3 and have only found one issue related to Arduino 1.8.13:
One of the fixes in Arduino 1.8.13 is to once again allow libraries marked as 'precompiled' in the library properties
to contain a pre-compiled static library as well as wrapper source code to interface with that library. The
pre-compiled static library is an archive (*.a placed in a subfolder named after the target architecture). I'll call
it 'archive' to avoid confusion with the Arduino use of 'library'.
As it stands with Teensyduino 1.53 beta 3, those fixes made in Arduino builder do not take effect. The builder
finds the archives inside pre-compiled libraries and adds them to the {compiler.libraries.ldflags} property, but
that property is not used in the link pattern for Teensyduino. The result is that the wrapper source gets compiled,
but the archive does not get linked, hence the wrapper code contains calls to unknown symbols and linking fails.
The fix is a simple one: Add {compiler.libraries.ldflags} to the link (combine) pattern. Also, to avoid any issues
when there are no archives to be linked in, initialize {compiler.libraries.ldflags} to an empty string. This matches
the changes made to Arduino's own platform.txt.
Here is the corresponding change for AVR:
https://github.com/arduino/ArduinoCore-avr/commit/bca2493a5c68ba5c0a2c6963b462d917794bfb2d
And also for SAMD:
https://github.com/arduino/ArduinoCore-samd/commit/37c8d4f36a86824def2e16a6e3701a4b41ea0078
I have confirmed that changing platform.txt in teensyduino accordingly allows Arduino libraries with mixed
source and pre-compiled code to link.
Here's my diff:
Code:
--- hardware/teensy/avr/platform.txt 2020-07-01 08:53:42.503934820 -0700
+++ hardware/teensy/avr/platform.txt.orig 2020-07-01 08:43:42.707939006 -0700
@@ -6,7 +6,6 @@
compiler.path={runtime.hardware.path}/../tools/
compiler.objcopy.eep.flags=-O ihex -j .eeprom --set-section-flags=.eeprom=alloc,load --no-change-warnings --change-section-lma .eeprom=0
compiler.elf2hex.flags=-O ihex -R .eeprom
-compiler.libraries.ldflags=
## Preprocessor Includes
recipe.preproc.includes="{compiler.path}{build.toolchain}{build.command.g++}" -M -MG -MP -x c++ -w {build.flags.cpp} {build.flags.cpu} {build.flags.defs} -DARDUINO={runtime.ide.version} -DARDUINO_{build.board} -DF_CPU={build.fcpu} -D{build.usbtype} -DLAYOUT_{build.keylayout} {includes} "{source_file}"
@@ -35,7 +34,7 @@
recipe.ar.pattern="{compiler.path}{build.toolchain}{build.command.ar}" rcs "{archive_file_path}" "{object_file}"
## Link
-recipe.c.combine.pattern="{compiler.path}{build.toolchain}{build.command.linker}" {build.flags.optimize} {build.flags.ld} {build.flags.ldspecs} {build.flags.cpu} -o "{build.path}/{build.project_name}.elf" {object_files} {compiler.libraries.ldflags} "{build.path}/{archive_file}" "-L{build.path}" {build.flags.libs}
+recipe.c.combine.pattern="{compiler.path}{build.toolchain}{build.command.linker}" {build.flags.optimize} {build.flags.ld} {build.flags.ldspecs} {build.flags.cpu} -o "{build.path}/{build.project_name}.elf" {object_files} "{build.path}/{archive_file}" "-L{build.path}" {build.flags.libs}
## Patch ELF - TODO: not supported by Arduino 1.6.6 builder
recipe.elfpatch.pattern="{compiler.path}/hardware/tools/{build.elfpatch}" -mmcu={build.mcu} "{build.path}/{build.project_name}.elf" "{sketch_path}/disk"