Teensyduino 1.59 Beta #1

Paul

Administrator
Staff member
Here is a first beta test for Teensyduino 1.59.

Arduino 2.0.x, all systems platforms:
use Boards Manager to install Teensy version 0.59.1
(to refresh versions, Shift-Ctrl-P and click "Arduino: Update Package Index")

Arduino 1.8.x, Linux 32 bit:
https://www.pjrc.com/teensy/td_159-beta1/TeensyduinoInstall.linux32

Arduino 1.8.x, Linux 64 bit:
https://www.pjrc.com/teensy/td_159-beta1/TeensyduinoInstall.linux64

Arduino 1.8.x, Linux ARM:
https://www.pjrc.com/teensy/td_159-beta1/TeensyduinoInstall.linuxarm

Arduino 1.8.x, Linux ARM64:
https://www.pjrc.com/teensy/td_159-beta1/TeensyduinoInstall.linuxaarch64

Arduino 1.8.x, MacOS (Catalina to Ventura)
https://www.pjrc.com/teensy/td_159-beta1/Teensyduino_MacOS_Catalina.zip

Arduino 1.8.x, Old MacOS (Mojave)
https://www.pjrc.com/teensy/td_159-beta1/TeensyduinoInstall.dmg

Arduino 1.8.x, Windows:
https://www.pjrc.com/teensy/td_159-beta1/TeensyduinoInstall.exe

PlatformIO, DIY beta support:
https://forum.pjrc.com/threads/71730


Changes since Teensyduino 1.58:

C++17 used for Teensy 3.x and 4.x
Enable LTO options in Arduino Tools > Optimization menu
Fix startup for LTO optimization
Remove serialEvent_default, refactor yield_active_check_flags
 
Ok surprised me :)

Just installed 0.59.1 on windows 10x64 using IDE 2.0.5 nightly 3/11/23:
Code:
Tool teensy:teensy-compile@11.3.1 already installed
Tool teensy:teensy-discovery@1.58.0 already installed
Tool teensy:teensy-monitor@1.58.0 already installed
Downloading packages
teensy:teensy-tools@0.59.1
teensy:avr@0.59.1
Installing teensy:teensy-tools@0.59.1
Configuring tool.
teensy:teensy-tools@0.59.1 installed
Replacing platform teensy:avr@1.58.0 with teensy:avr@0.59.1
Uninstalling teensy:avr@1.58.0
Platform teensy:avr@1.58.0 uninstalled
Uninstalling teensy:teensy-compile@11.3.1, tool is no more required
Uninstalling teensy:teensy-tools@1.58.0, tool is no more required
Uninstalling teensy:teensy-discovery@1.58.0, tool is no more required
Uninstalling teensy:teensy-monitor@1.58.0, tool is no more required
Configuring platform.
Platform teensy:avr@0.59.1 installed

Compile a couple of sketches and nothing new popping up like when we changed compilers the last time;
1. MTP integrity sketch
2. USBMidi test sketch
3. BME688 sensor test sketch

EDIT: going to be playing more today with MTP and LFS so if any pops up will post.
 
Installed, one sketch (my triple USB Serial code which I built for USB Triple serial...)

But then tried my mtp_tft+picture_view, setup on T4.1 RA8876 and I built for Serial + MTP

And it failed:

Code:
Compiling core...
Using precompiled core: C:\Users\kurte\AppData\Local\Temp\arduino\cores\teensy_avr_teensy41_101959c6bdaa9a37abb86f6cd0e474a6\core.a
Linking everything together...
"C:\\Users\\kurte\\AppData\\Local\\Arduino15\\packages\\teensy\\tools\\teensy-compile\\11.3.1/arm/bin/arm-none-eabi-gcc" -O2 -Wl,--gc-sections,--relax "-TC:\\Users\\kurte\\AppData\\Local\\Arduino15\\packages\\teensy\\hardware\\avr\\0.59.1\\cores\\teensy4/imxrt1062_t41.ld" -mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -o "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE/mtp_tft_picture_view.ino.elf" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\sketch\\mtp_tft_picture_view.ino.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SPI\\SPI.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SD\\SD.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\ExFatLib\\ExFatDbg.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\ExFatLib\\ExFatFile.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\ExFatLib\\ExFatFilePrint.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\ExFatLib\\ExFatFileWrite.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\ExFatLib\\ExFatFormatter.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\ExFatLib\\ExFatName.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\ExFatLib\\ExFatPartition.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\ExFatLib\\ExFatVolume.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\ExFatLib\\upcase.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\FatLib\\FatDbg.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\FatLib\\FatFile.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\FatLib\\FatFileLFN.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\FatLib\\FatFilePrint.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\FatLib\\FatFileSFN.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\FatLib\\FatFormatter.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\FatLib\\FatName.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\FatLib\\FatPartition.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\FatLib\\FatVolume.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\FreeStack.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\FsLib\\FsFile.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\FsLib\\FsNew.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\FsLib\\FsVolume.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\MinimumSerial.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\SdCard\\SdCardInfo.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\SdCard\\SdSpiCard.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\SdCard\\SdioTeensy.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\SpiDriver\\SdSpiArtemis.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\SpiDriver\\SdSpiChipSelect.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\SpiDriver\\SdSpiDue.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\SpiDriver\\SdSpiESP.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\SpiDriver\\SdSpiParticle.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\SpiDriver\\SdSpiSTM32.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\SpiDriver\\SdSpiSTM32Core.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\SpiDriver\\SdSpiTeensy3.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\common\\FmtNumber.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\common\\FsCache.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\common\\FsDateTime.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\common\\FsName.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\common\\FsStructs.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\common\\FsUtf.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\common\\PrintBasic.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\common\\upcase.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\iostream\\StdioStream.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\iostream\\StreamBaseClass.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\iostream\\istream.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\iostream\\ostream.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\MTP_Teensy\\MTP_SD_Callbacks.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\MTP_Teensy\\MTP_Storage.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\MTP_Teensy\\MTP_Teensy.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\MTP_Teensy\\MTP_USBFS_Callbacks.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\JPEGDEC\\JPEGDEC.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\PNGdec\\PNGdec.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\PNGdec\\adler32.c.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\PNGdec\\crc32.c.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\PNGdec\\infback.c.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\PNGdec\\inffast.c.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\PNGdec\\inflate.c.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\PNGdec\\inftrees.c.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\PNGdec\\zutil.c.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\Ra8876LiteTeensy\\Ra8876LiteTeensy.a" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\Wire\\Wire.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\Wire\\WireIMXRT.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\Wire\\WireKinetis.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\Wire\\utility\\twi.c.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE/..\\..\\cores\\teensy_avr_teensy41_101959c6bdaa9a37abb86f6cd0e474a6\\core.a" "-LC:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE" -larm_cortexM7lfsp_math -lm -lstdc++
c:/users/kurte/appdata/local/arduino15/packages/teensy/tools/teensy-compile/11.3.1/arm/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/bin/ld.exe: C:\Users\kurte\AppData\Local\Temp\arduino\sketches\479771791AB690CB5AEED20B64877CBE\libraries\MTP_Teensy\MTP_Teensy.cpp.o: in function `MTP_class::begin()':
c:\Users\kurte\Documents\Arduino\libraries\MTP_Teensy\src/MTP_Teensy.cpp:91: undefined reference to `usb_mtp_rxSize'
c:/users/kurte/appdata/local/arduino15/packages/teensy/tools/teensy-compile/11.3.1/arm/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/bin/ld.exe: C:\Users\kurte\AppData\Local\Temp\arduino\sketches\479771791AB690CB5AEED20B64877CBE\libraries\MTP_Teensy\MTP_Teensy.cpp.o: in function `MTP_class::receive_bulk(unsigned long)':
c:\Users\kurte\Documents\Arduino\libraries\MTP_Teensy\src/MTP_Teensy.cpp:1594: undefined reference to `usb_mtp_recv'
c:/users/kurte/appdata/local/arduino15/packages/teensy/tools/teensy-compile/11.3.1/arm/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/bin/ld.exe: C:\Users\kurte\AppData\Local\Temp\arduino\sketches\479771791AB690CB5AEED20B64877CBE\libraries\MTP_Teensy\MTP_Teensy.cpp.o: in function `MTP_class::read(void*, unsigned long)':
c:\Users\kurte\Documents\Arduino\libraries\MTP_Teensy\src/MTP_Teensy.cpp:1418: undefined reference to `usb_mtp_status'
c:/users/kurte/appdata/local/arduino15/packages/teensy/tools/teensy-compile/11.3.1/arm/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/bin/ld.exe: C:\Users\kurte\AppData\Local\Temp\arduino\sketches\479771791AB690CB5AEED20B64877CBE\libraries\MTP_Teensy\MTP_Teensy.cpp.o: in function `MTP_class::receive_bulk(unsigned long)':
c:\Users\kurte\Documents\Arduino\libraries\MTP_Teensy\src/MTP_Teensy.cpp:1594: undefined reference to `usb_mtp_recv'
c:/users/kurte/appdata/local/arduino15/packages/teensy/tools/teensy-compile/11.3.1/arm/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/bin/ld.exe: c:\Users\kurte\Documents\Arduino\libraries\MTP_Teensy\src/MTP_Teensy.cpp:1594: undefined reference to `usb_mtp_recv'
c:/users/kurte/appdata/local/arduino15/packages/teensy/tools/teensy-compile/11.3.1/arm/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/bin/ld.exe: C:\Users\kurte\AppData\Local\Temp\arduino\sketches\479771791AB690CB5AEED20B64877CBE\libraries\MTP_Teensy\MTP_Teensy.cpp.o: in function `MTP_class::SendObject(MTP_class::MTPContainer&)':
c:\Users\kurte\Documents\Arduino\libraries\MTP_Teensy\src/MTP_Teensy.cpp:490: undefined reference to `usb_mtp_status'
c:/users/kurte/appdata/local/arduino15/packages/teensy/tools/teensy-compile/11.3.1/arm/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/bin/ld.exe: C:\Users\kurte\AppData\Local\Temp\arduino\sketches\479771791AB690CB5AEED20B64877CBE\libraries\MTP_Teensy\MTP_Teensy.cpp.o: in function `MTP_class::allocate_transmit_bulk()':
c:\Users\kurte\Documents\Arduino\libraries\MTP_Teensy\src/MTP_Teensy.cpp:1613: undefined reference to `usb_mtp_txSize'
c:/users/kurte/appdata/local/arduino15/packages/teensy/tools/teensy-compile/11.3.1/arm/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/bin/ld.exe: C:\Users\kurte\AppData\Local\Temp\arduino\sketches\479771791AB690CB5AEED20B64877CBE\libraries\MTP_Teensy\MTP_Teensy.cpp.o: in function `MTP_class::transmit_bulk()':
c:\Users\kurte\Documents\Arduino\libraries\MTP_Teensy\src/MTP_Teensy.cpp:1623: undefined reference to `usb_mtp_send'
c:/users/kurte/appdata/local/arduino15/packages/teensy/tools/teensy-compile/11.3.1/arm/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/bin/ld.exe: c:\Users\kurte\Documents\Arduino\libraries\MTP_Teensy\src/MTP_Teensy.cpp:1621: undefined reference to `usb_mtp_status'
c:/users/kurte/appdata/local/arduino15/packages/teensy/tools/teensy-compile/11.3.1/arm/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/bin/ld.exe: C:\Users\kurte\AppData\Local\Temp\arduino\sketches\479771791AB690CB5AEED20B64877CBE\libraries\MTP_Teensy\MTP_Teensy.cpp.o: in function `MTP_class::allocate_transmit_bulk()':
c:\Users\kurte\Documents\Arduino\libraries\MTP_Teensy\src/MTP_Teensy.cpp:1613: undefined reference to `usb_mtp_txSize'
c:/users/kurte/appdata/local/arduino15/packages/teensy/tools/teensy-compile/11.3.1/arm/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/bin/ld.exe: C:\Users\kurte\AppData\Local\Temp\arduino\sketches\479771791AB690CB5AEED20B64877CBE\libraries\MTP_Teensy\MTP_Teensy.cpp.o: in function `MTP_class::transmit_bulk()':
c:\Users\kurte\Documents\Arduino\libraries\MTP_Teensy\src/MTP_Teensy.cpp:1623: undefined reference to `usb_mtp_send'
c:/users/kurte/appdata/local/arduino15/packages/teensy/tools/teensy-compile/11.3.1/arm/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/bin/ld.exe: c:\Users\kurte\Documents\Arduino\libraries\MTP_Teensy\src/MTP_Teensy.cpp:1621: undefined reference to `usb_mtp_status'
c:/users/kurte/appdata/local/arduino15/packages/teensy/tools/teensy-compile/11.3.1/arm/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/bin/ld.exe: C:\Users\kurte\AppData\Local\Temp\arduino\sketches\479771791AB690CB5AEED20B64877CBE\libraries\MTP_Teensy\MTP_Teensy.cpp.o: in function `MTP_class::allocate_transmit_bulk()':
c:\Users\kurte\Documents\Arduino\libraries\MTP_Teensy\src/MTP_Teensy.cpp:1613: undefined reference to `usb_mtp_txSize'
c:/users/kurte/appdata/local/arduino15/packages/teensy/tools/teensy-compile/11.3.1/arm/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/bin/ld.exe: C:\Users\kurte\AppData\Local\Temp\arduino\sketches\479771791AB690CB5AEED20B64877CBE\libraries\MTP_Teensy\MTP_Teensy.cpp.o: in function `MTP_class::transmit_bulk()':
c:\Users\kurte\Documents\Arduino\libraries\MTP_Teensy\src/MTP_Teensy.cpp:1623: undefined reference to `usb_mtp_send'
c:/users/kurte/appdata/local/arduino15/packages/teensy/tools/teensy-compile/11.3.1/arm/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/bin/ld.exe: C:\Users\kurte\AppData\Local\Temp\arduino\sketches\479771791AB690CB5AEED20B64877CBE\libraries\MTP_Teensy\MTP_Teensy.cpp.o: in function `MTP_class::GetObject(MTP_class::MTPContainer&)':
c:\Users\kurte\Documents\Arduino\libraries\MTP_Teensy\src/MTP_Teensy.cpp:605: undefined reference to `usb_mtp_status'
c:/users/kurte/appdata/local/arduino15/packages/teensy/tools/teensy-compile/11.3.1/arm/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/bin/ld.exe: C:\Users\kurte\AppData\Local\Temp\arduino\sketches\479771791AB690CB5AEED20B64877CBE\libraries\MTP_Teensy\MTP_Teensy.cpp.o: in function `MTP_class::allocate_transmit_bulk()':
c:\Users\kurte\Documents\Arduino\libraries\MTP_Teensy\src/MTP_Teensy.cpp:1613: undefined reference to `usb_mtp_txSize'
c:/users/kurte/appdata/local/arduino15/packages/teensy/tools/teensy-compile/11.3.1/arm/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/bin/ld.exe: C:\Users\kurte\AppData\Local\Temp\arduino\sketches\479771791AB690CB5AEED20B64877CBE\libraries\MTP_Teensy\MTP_Teensy.cpp.o: in function `MTP_class::transmit_bulk()':
c:\Users\kurte\Documents\Arduino\libraries\MTP_Teensy\src/MTP_Teensy.cpp:1623: undefined reference to `usb_mtp_send'
c:/users/kurte/appdata/local/arduino15/packages/teensy/tools/teensy-compile/11.3.1/arm/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/bin/ld.exe: C:\Users\kurte\AppData\Local\Temp\arduino\sketches\479771791AB690CB5AEED20B64877CBE\libraries\MTP_Teensy\MTP_Teensy.cpp.o: in function `MTP_class::GetPartialObject(MTP_class::MTPContainer&)':
c:\Users\kurte\Documents\Arduino\libraries\MTP_Teensy\src/MTP_Teensy.cpp:643: undefined reference to `usb_mtp_status'
c:/users/kurte/appdata/local/arduino15/packages/teensy/tools/teensy-compile/11.3.1/arm/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/bin/ld.exe: C:\Users\kurte\AppData\Local\Temp\arduino\sketches\479771791AB690CB5AEED20B64877CBE\libraries\MTP_Teensy\MTP_Teensy.cpp.o: in function `MTP_class::receive_bulk(unsigned long)':
c:\Users\kurte\Documents\Arduino\libraries\MTP_Teensy\src/MTP_Teensy.cpp:1594: undefined reference to `usb_mtp_recv'
c:/users/kurte/appdata/local/arduino15/packages/teensy/tools/teensy-compile/11.3.1/arm/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/bin/ld.exe: C:\Users\kurte\AppData\Local\Temp\arduino\sketches\479771791AB690CB5AEED20B64877CBE\libraries\MTP_Teensy\MTP_Teensy.cpp.o: in function `MTP_class::send_DeviceResetEvent()':
c:\Users\kurte\Documents\Arduino\libraries\MTP_Teensy\src/MTP_Teensy.cpp:1827: undefined reference to `usb_mtp_status'
c:/users/kurte/appdata/local/arduino15/packages/teensy/tools/teensy-compile/11.3.1/arm/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/bin/ld.exe: C:\Users\kurte\AppData\Local\Temp\arduino\sketches\479771791AB690CB5AEED20B64877CBE\libraries\MTP_Teensy\MTP_Teensy.cpp.o: in function `MTP_class::allocate_transmit_bulk()':
c:\Users\kurte\Documents\Arduino\libraries\MTP_Teensy\src/MTP_Teensy.cpp:1613: undefined reference to `usb_mtp_txSize'
c:/users/kurte/appdata/local/arduino15/packages/teensy/tools/teensy-compile/11.3.1/arm/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/bin/ld.exe: C:\Users\kurte\AppData\Local\Temp\arduino\sketches\479771791AB690CB5AEED20B64877CBE\libraries\MTP_Teensy\MTP_Teensy.cpp.o: in function `MTP_class::transmit_bulk()':
c:\Users\kurte\Documents\Arduino\libraries\MTP_Teensy\src/MTP_Teensy.cpp:1623: undefined reference to `usb_mtp_send'
c:/users/kurte/appdata/local/arduino15/packages/teensy/tools/teensy-compile/11.3.1/arm/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/bin/ld.exe: C:\Users\kurte\AppData\Local\Temp\arduino\sketches\479771791AB690CB5AEED20B64877CBE\libraries\MTP_Teensy\MTP_Teensy.cpp.o: in function `MTP_class::processIntervalTimer()':
c:\Users\kurte\Documents\Arduino\libraries\MTP_Teensy\src/MTP_Teensy.cpp:315: undefined reference to `usb_mtp_status'
c:/users/kurte/appdata/local/arduino15/packages/teensy/tools/teensy-compile/11.3.1/arm/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/bin/ld.exe: C:\Users\kurte\AppData\Local\Temp\arduino\sketches\479771791AB690CB5AEED20B64877CBE\libraries\MTP_Teensy\MTP_Teensy.cpp.o: in function `MTP_class::receive_bulk(unsigned long)':
c:\Users\kurte\Documents\Arduino\libraries\MTP_Teensy\src/MTP_Teensy.cpp:1594: undefined reference to `usb_mtp_recv'
c:/users/kurte/appdata/local/arduino15/packages/teensy/tools/teensy-compile/11.3.1/arm/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/bin/ld.exe: C:\Users\kurte\AppData\Local\Temp\arduino\sketches\479771791AB690CB5AEED20B64877CBE\libraries\MTP_Teensy\MTP_Teensy.cpp.o: in function `MTP_class::_interval_timer_handler()':
c:\Users\kurte\Documents\Arduino\libraries\MTP_Teensy\src/MTP_Teensy.cpp:298: undefined reference to `usb_mtp_status'
collect2.exe: error: ld returned 1 exit status
Multiple libraries were found for "SD.h"
  Used: C:\Users\kurte\AppData\Local\Arduino15\packages\teensy\hardware\avr\0.59.1\libraries\SD
  Not used: C:\Users\kurte\AppData\Local\Arduino15\libraries\SD
  Not used: C:\Users\kurte\Documents\Arduino\libraries\SD
Multiple libraries were found for "SdFat.h"
  Used: C:\Users\kurte\AppData\Local\Arduino15\packages\teensy\hardware\avr\0.59.1\libraries\SdFat
  Not used: C:\Users\kurte\Documents\Arduino\libraries\SdFat_-_Adafruit_Fork
Using library SPI at version 1.0 in folder: C:\Users\kurte\AppData\Local\Arduino15\packages\teensy\hardware\avr\0.59.1\libraries\SPI 
Using library SD at version 2.0.0 in folder: C:\Users\kurte\AppData\Local\Arduino15\packages\teensy\hardware\avr\0.59.1\libraries\SD 
Using library SdFat at version 2.1.2 in folder: C:\Users\kurte\AppData\Local\Arduino15\packages\teensy\hardware\avr\0.59.1\libraries\SdFat 
Using library MTP_Teensy at version 1.0.0 in folder: D:\github\MTP_Teensy 
Using library JPEGDEC at version 1.2.8 in folder: C:\Users\kurte\Documents\Arduino\libraries\JPEGDEC 
Using library PNGdec at version 1.0.1 in folder: C:\Users\kurte\Documents\Arduino\libraries\PNGdec 
Using library Ra8876LiteTeensy at version 1.0.0 in folder: D:\github\Ra8876LiteTeensy 
Using library Wire at version 1.0 in folder: C:\Users\kurte\AppData\Local\Arduino15\packages\teensy\hardware\avr\0.59.1\libraries\Wire 
exit status 1

Investigating. I am guessing if I clear out %temp% it will work... But guessing.

EDIT: Yep
I went to %temp%
deleted all of the arduino*.* files, plus *.clangd files
restarted Arduino IDE and it built
 
FYI - I also posted about the issue I ran into with it not building correctly until I cleared stuff out of temp on the Arduino Forum:
https://forum.arduino.cc/t/teensy-compile-sketch-fails-clear-out-temp-build-completes/1110104

But as I finished writing that up on their forum, I started to wonder, when I do a new build, what decides which files that need to be recompiled and which ones it can use the object file from the previous build?

Does it take into effect that the USB option type changed? As the previous build I did was for USB type of triple Serial and then I changed to Serial + MTP and the build failed to get any of the usb_mtp.cpp symbols out of core.
 
Do they work if you use LTO optimization?

I tried building the mtp_tft_picture_view with Faster + LTO and it fails:
Code:
c:\Users\kurte\Documents\Arduino\libraries\Ra8876LiteTeensy\src\RA8876_t3.cpp:102:23: error: 'gImage_arrow_il' causes a section type conflict with 'options_file_name'
  102 | PROGMEM unsigned char gImage_arrow_il[256] = { /* 0X00,0X02,0X20,0X00,0X20,0X00, */
      |                       ^
D:\github\mtp_tft_picture_view\mtp_tft_picture_view.ino:332:27: note: 'options_file_name' was declared here
  332 | static const PROGMEM char options_file_name[] = "PictureViewOptions.ini";
      |                           ^
lto-wrapper.exe: fatal error: C:\Users\kurte\AppData\Local\Arduino15\packages\teensy\tools\teensy-compile\11.3.1/arm/bin/arm-none-eabi-gcc returned 1 exit status
compilation terminated.

Note: I almost never tried using LTO... Maybe as I sometimes don't like TLAs and had to google to remember what is LTO...

I had to remove a static const from a few things defined in the sketch with PROGMEM before it built with the option.

And the app looks like it at least comes up properly
 
Last edited:
Do they work if you use LTO optimization?

Sorry was off doing chores. No rest for the weary. As @KurtE said - never use LTO so..

the USBMidi test sketch builds with faster+LTO but has a couple of warnings:
Code:
C:\Users\Merli\AppData\Local\Arduino15\packages\teensy\hardware\avr\0.59.1\cores\teensy4\startup.c:18:22: warning: type of '_ebss' does not match original declaration [-Wlto-type-mismatch]
   18 | extern unsigned long _ebss;
      |                      ^
C:\Users\Merli\AppData\Local\Arduino15\packages\teensy\hardware\avr\0.59.1\libraries\SdFat\src\FreeStack.h:56:16: note: type 'uint8_t' should match type 'unsigned int'
   56 | extern uint8_t _ebss;
      |                ^
C:\Users\Merli\AppData\Local\Arduino15\packages\teensy\hardware\avr\0.59.1\libraries\SdFat\src\FreeStack.h:56:16: note: '_ebss' was previously declared here

My MTP Integrity test sketch has a bunch more:
Code:
D:\Users\Merli\Documents\Arduino\mtp-test-integrityV2\mtpFuncs.ino: In function 'void storage_configure()':
D:\Users\Merli\Documents\Arduino\mtp-test-integrityV2\mtpFuncs.ino:3:15: warning: unused variable 'pn' [-Wunused-variable]
    3 |   const char *pn;
      |               ^~
D:\Users\Merli\Documents\Arduino\mtp-test-integrityV2\mtpFuncs.ino: In function 'void test_write_file(int)':
D:\Users\Merli\Documents\Arduino\mtp-test-integrityV2\mtpFuncs.ino:815:9: warning: unused variable 'cb' [-Wunused-variable]
  815 |     int cb = Serial.readBytesUntil( '\n', test_file_name, sizeof(test_file_name));
      |         ^~
C:\Users\Merli\AppData\Local\Arduino15\packages\teensy\hardware\avr\0.59.1\libraries\LittleFS\src\LittleFS.cpp:30:29: warning: type 'struct chipinfo' violates the C++ One Definition Rule [-Wodr]
   30 | PROGMEM static const struct chipinfo {
      |                             ^
C:\Users\Merli\AppData\Local\Arduino15\packages\teensy\hardware\avr\0.59.1\libraries\LittleFS\src\LittleFS_NAND.cpp:68:29: note: a different type is defined in another translation unit
   68 | PROGMEM static const struct chipinfo {
      |                             ^
C:\Users\Merli\AppData\Local\Arduino15\packages\teensy\hardware\avr\0.59.1\libraries\LittleFS\src\LittleFS.cpp:39:20: note: the first difference of corresponding definitions is field 'pn'
   39 |         const char pn[22];              //flash name
      |                    ^
C:\Users\Merli\AppData\Local\Arduino15\packages\teensy\hardware\avr\0.59.1\libraries\LittleFS\src\LittleFS_NAND.cpp:77:20: note: a field of same name but different type is defined in another translation unit
   77 |         const char pn[14];              //flash name
      |                    ^
C:\Users\Merli\AppData\Local\Arduino15\packages\teensy\hardware\avr\0.59.1\libraries\LittleFS\src\LittleFS.cpp:30:29: note: array types have different bounds
   30 | PROGMEM static const struct chipinfo {
      |                             ^
C:\Users\Merli\AppData\Local\Arduino15\packages\teensy\hardware\avr\0.59.1\cores\teensy4\CrashReport.cpp:18:22: warning: type of '_ebss' does not match original declaration [-Wlto-type-mismatch]
   18 | extern unsigned long _ebss;
      |                      ^
C:\Users\Merli\AppData\Local\Arduino15\packages\teensy\hardware\avr\0.59.1\libraries\SdFat\src\FreeStack.h:56:16: note: type 'uint8_t' should match type 'unsigned int'
   56 | extern uint8_t _ebss;
      |                ^
C:\Users\Merli\AppData\Local\Arduino15\packages\teensy\hardware\avr\0.59.1\libraries\SdFat\src\FreeStack.h:56:16: note: '_ebss' was previously declared here
d:\Users\Merli\Documents\Arduino\libraries\MTP_Teensy-main\src\MTP_Teensy.cpp:40:44: warning: type of 'usb_string_serial_number' does not match original declaration [-Wlto-type-mismatch]
   40 | extern struct usb_string_descriptor_struct usb_string_serial_number;
      |                                            ^
C:\Users\Merli\AppData\Local\Arduino15\packages\teensy\hardware\avr\0.59.1\cores\teensy4\usb_desc.c:2726:44: note: type 'struct usb_string_descriptor_struct' should match type 'struct usb_string_descriptor_struct'
 2726 | extern struct usb_string_descriptor_struct usb_string_serial_number
      |                                            ^
C:\Users\Merli\AppData\Local\Arduino15\packages\teensy\hardware\avr\0.59.1\cores\teensy4/usb_names.h:43:8: note: the incompatible type is defined here
   43 | struct usb_string_descriptor_struct {
      |        ^
C:\Users\Merli\AppData\Local\Arduino15\packages\teensy\hardware\avr\0.59.1\cores\teensy4\usb_desc.c:2726:44: note: 'usb_string_serial_number' was previously declared here
 2726 | extern struct usb_string_descriptor_struct usb_string_serial_number
      |                                            ^
C:\Users\Merli\AppData\Local\Arduino15\packages\teensy\hardware\avr\0.59.1\cores\teensy4\usb_desc.c:2726:44: note: code may be misoptimized unless '-fno-strict-aliasing' is used
Memory Usage on Teensy 4.1:
  FLASH: code:132440, data:15468, headers:8760   free for files:7969796
   RAM1: variables:67552, code:126952, padding:4120   free for local variables:325664
   RAM2: variables:28800  free for malloc/new:495488
 
Paul and all, the needing to delete stuff out of temp is probably not related to the beta specifically. But it appears, like at least in certain cases changing the USB type and building again, does not retrigger to rebuild everyting in core.

As I also posted on Arduino.
I was building in one window for USB type Serial + MTP and then decided to try to rebuild the sketch that I earlier built as Tripple Serial.

And now this failed:
Code:
Using board 'teensy41' from platform in folder: C:\Users\kurte\AppData\Local\Arduino15\packages\teensy\hardware\avr\0.59.1
Using core 'teensy4' from platform in folder: C:\Users\kurte\AppData\Local\Arduino15\packages\teensy\hardware\avr\0.59.1
Detecting libraries used...
"C:\\Users\\kurte\\AppData\\Local\\Arduino15\\packages\\teensy\\tools\\teensy-compile\\11.3.1/arm/bin/arm-none-eabi-g++" -E -CC -x c++ -w -g -Wall -ffunction-sections -fdata-sections -nostdlib -std=gnu++17 -fno-exceptions -fpermissive -fno-rtti -fno-threadsafe-statics -felide-constructors -Wno-error=narrowing -mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -D__IMXRT1062__ -DTEENSYDUINO=159 -DARDUINO=10607 -DARDUINO_TEENSY41 -DF_CPU=600000000 -DUSB_TRIPLE_SERIAL -DLAYOUT_US_ENGLISH "-IC:\\Users\\kurte\\AppData\\Local\\Arduino15\\packages\\teensy\\hardware\\avr\\0.59.1\\cores\\teensy4" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\DF3C6F8663ED76A115E18319F4CDED14\\sketch\\USBtoSerialMulti.ino.cpp" -o nul
Generating function prototypes...
"C:\\Users\\kurte\\AppData\\Local\\Arduino15\\packages\\teensy\\tools\\teensy-compile\\11.3.1/arm/bin/arm-none-eabi-g++" -E -CC -x c++ -w -g -Wall -ffunction-sections -fdata-sections -nostdlib -std=gnu++17 -fno-exceptions -fpermissive -fno-rtti -fno-threadsafe-statics -felide-constructors -Wno-error=narrowing -mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -D__IMXRT1062__ -DTEENSYDUINO=159 -DARDUINO=10607 -DARDUINO_TEENSY41 -DF_CPU=600000000 -DUSB_TRIPLE_SERIAL -DLAYOUT_US_ENGLISH "-IC:\\Users\\kurte\\AppData\\Local\\Arduino15\\packages\\teensy\\hardware\\avr\\0.59.1\\cores\\teensy4" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\DF3C6F8663ED76A115E18319F4CDED14\\sketch\\USBtoSerialMulti.ino.cpp" -o "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\DF3C6F8663ED76A115E18319F4CDED14\\preproc\\ctags_target_for_gcc_minus_e.cpp"
"C:\\Users\\kurte\\AppData\\Local\\Arduino15\\packages\\builtin\\tools\\ctags\\5.8-arduino11/ctags" -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\DF3C6F8663ED76A115E18319F4CDED14\\preproc\\ctags_target_for_gcc_minus_e.cpp"
Compiling sketch...
"C:\\Users\\kurte\\AppData\\Local\\Arduino15\\packages\\teensy\\tools\\teensy-tools\\0.59.1/precompile_helper" "C:\\Users\\kurte\\AppData\\Local\\Arduino15\\packages\\teensy\\hardware\\avr\\0.59.1/cores/teensy4" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\DF3C6F8663ED76A115E18319F4CDED14" "C:\\Users\\kurte\\AppData\\Local\\Arduino15\\packages\\teensy\\tools\\teensy-compile\\11.3.1/arm/bin/arm-none-eabi-g++" -x c++-header -O2 -flto -fno-fat-lto-objects -g -Wall -ffunction-sections -fdata-sections -nostdlib -MMD -std=gnu++17 -fno-exceptions -fpermissive -fno-rtti -fno-threadsafe-statics -felide-constructors -Wno-error=narrowing -mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -D__IMXRT1062__ -DTEENSYDUINO=159 -DARDUINO=10607 -DARDUINO_TEENSY41 -DF_CPU=600000000 -DUSB_TRIPLE_SERIAL -DLAYOUT_US_ENGLISH "-IC:\\Users\\kurte\\AppData\\Local\\Arduino15\\packages\\teensy\\hardware\\avr\\0.59.1/cores/teensy4" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\DF3C6F8663ED76A115E18319F4CDED14/pch/Arduino.h" -o "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\DF3C6F8663ED76A115E18319F4CDED14/pch/Arduino.h.gch"
"C:\\Users\\kurte\\AppData\\Local\\Arduino15\\packages\\teensy\\tools\\teensy-compile\\11.3.1/arm/bin/arm-none-eabi-g++" -c -O2 -flto -fno-fat-lto-objects -g -Wall -ffunction-sections -fdata-sections -nostdlib -MMD -std=gnu++17 -fno-exceptions -fpermissive -fno-rtti -fno-threadsafe-statics -felide-constructors -Wno-error=narrowing -mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -D__IMXRT1062__ -DTEENSYDUINO=159 -DARDUINO=10607 -DARDUINO_TEENSY41 -DF_CPU=600000000 -DUSB_TRIPLE_SERIAL -DLAYOUT_US_ENGLISH "-IC:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\DF3C6F8663ED76A115E18319F4CDED14/pch" "-IC:\\Users\\kurte\\AppData\\Local\\Arduino15\\packages\\teensy\\hardware\\avr\\0.59.1\\cores\\teensy4" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\DF3C6F8663ED76A115E18319F4CDED14\\sketch\\USBtoSerialMulti.ino.cpp" -o "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\DF3C6F8663ED76A115E18319F4CDED14\\sketch\\USBtoSerialMulti.ino.cpp.o"
Compiling libraries...
Compiling core...
Using precompiled core: C:\Users\kurte\AppData\Local\Temp\arduino\cores\teensy_avr_teensy41_101959c6bdaa9a37abb86f6cd0e474a6\core.a
Linking everything together...
"C:\\Users\\kurte\\AppData\\Local\\Arduino15\\packages\\teensy\\tools\\teensy-compile\\11.3.1/arm/bin/arm-none-eabi-gcc" -O2 -flto -fno-fat-lto-objects -Wl,--gc-sections,--relax "-TC:\\Users\\kurte\\AppData\\Local\\Arduino15\\packages\\teensy\\hardware\\avr\\0.59.1\\cores\\teensy4/imxrt1062_t41.ld" -fuse-linker-plugin -mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -o "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\DF3C6F8663ED76A115E18319F4CDED14/USBtoSerialMulti.ino.elf" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\DF3C6F8663ED76A115E18319F4CDED14\\sketch\\USBtoSerialMulti.ino.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\DF3C6F8663ED76A115E18319F4CDED14/..\\..\\cores\\teensy_avr_teensy41_101959c6bdaa9a37abb86f6cd0e474a6\\core.a" "-LC:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\DF3C6F8663ED76A115E18319F4CDED14" -larm_cortexM7lfsp_math -lm -lstdc++
c:/users/kurte/appdata/local/arduino15/packages/teensy/tools/teensy-compile/11.3.1/arm/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/bin/ld.exe: C:\Users\kurte\AppData\Local\Temp\ccLQXFlU.ltrans0.ltrans.o: in function `loop':
C:\Users\kurte\Documents\Arduino\USBtoSerialMulti/USBtoSerialMulti.ino:63: undefined reference to `usb_cdc2_line_coding'
c:/users/kurte/appdata/local/arduino15/packages/teensy/tools/teensy-compile/11.3.1/arm/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/bin/ld.exe: C:\Users\kurte\Documents\Arduino\USBtoSerialMulti/USBtoSerialMulti.ino:63: undefined reference to `usb_cdc2_line_rtsdtr'
c:/users/kurte/appdata/local/arduino15/packages/teensy/tools/teensy-compile/11.3.1/arm/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/bin/ld.exe: C:\Users\kurte\Documents\Arduino\USBtoSerialMulti/USBtoSerialMulti.ino:63: undefined reference to `SerialUSB1'
c:/users/kurte/appdata/local/arduino15/packages/teensy/tools/teensy-compile/11.3.1/arm/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/bin/ld.exe: C:\Users\kurte\Documents\Arduino\USBtoSerialMulti/USBtoSerialMulti.ino:63: undefined reference to `usb_cdc3_line_rtsdtr'
c:/users/kurte/appdata/local/arduino15/packages/teensy/tools/teensy-compile/11.3.1/arm/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/bin/ld.exe: C:\Users\kurte\Documents\Arduino\USBtoSerialMulti/USBtoSerialMulti.ino:63: undefined reference to `usb_cdc3_line_coding'
c:/users/kurte/appdata/local/arduino15/packages/teensy/tools/teensy-compile/11.3.1/arm/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/bin/ld.exe: C:\Users\kurte\Documents\Arduino\USBtoSerialMulti/USBtoSerialMulti.ino:63: undefined reference to `SerialUSB2'
collect2.exe: error: ld returned 1 exit status

exit status 1

Compilation error: exit status 1
Notice where it directly used the core.a and did not build anything.
 
Glad you reported it :)

Normally I'm reluctant to bother the Arduino developers with Teensy stuff, but this one is absolutely a critical bug in Arduino, probably in CLI underneath the IDE.
 
Glad you reported it :)

Normally I'm reluctant to bother the Arduino developers with Teensy stuff, but this one is absolutely a critical bug in Arduino, probably in CLI underneath the IDE.

I hear you. I try to keep current on both forums, so I do some cross posting initially, as a lot of these things are not obvious if Teensy specific or not.

I issued it under the IDE as, I don't know if it is CLI, could easily be, probably my first guess. But also maybe it is the interaction/glue between them, as maybe there is some state information stored for each window, that is passed to the CLI stuff, that is out of date...
 
As I mentioned on the 1.58.0 thread, about warnings with MTP, that 1.59 B1 with Faster +LTO different issues.

I rebuilt the mtp_tft_picture_view sketch with this (Cleaned out temp), and the build fails:
Code:
Archiving built core (caching) in: C:\Users\kurte\AppData\Local\Temp\arduino\cores\teensy_avr_teensy41_101959c6bdaa9a37abb86f6cd0e474a6\core.a
Linking everything together...
"C:\\Users\\kurte\\AppData\\Local\\Arduino15\\packages\\teensy\\tools\\teensy-compile\\11.3.1/arm/bin/arm-none-eabi-gcc" -O2 -flto -fno-fat-lto-objects -Wl,--gc-sections,--relax "-TC:\\Users\\kurte\\AppData\\Local\\Arduino15\\packages\\teensy\\hardware\\avr\\0.59.1\\cores\\teensy4/imxrt1062_t41.ld" -fuse-linker-plugin -mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -o "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE/mtp_tft_picture_view.ino.elf" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\sketch\\mtp_tft_picture_view.ino.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SPI\\SPI.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SD\\SD.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\ExFatLib\\ExFatDbg.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\ExFatLib\\ExFatFile.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\ExFatLib\\ExFatFilePrint.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\ExFatLib\\ExFatFileWrite.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\ExFatLib\\ExFatFormatter.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\ExFatLib\\ExFatName.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\ExFatLib\\ExFatPartition.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\ExFatLib\\ExFatVolume.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\ExFatLib\\upcase.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\FatLib\\FatDbg.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\FatLib\\FatFile.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\FatLib\\FatFileLFN.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\FatLib\\FatFilePrint.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\FatLib\\FatFileSFN.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\FatLib\\FatFormatter.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\FatLib\\FatName.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\FatLib\\FatPartition.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\FatLib\\FatVolume.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\FreeStack.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\FsLib\\FsFile.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\FsLib\\FsNew.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\FsLib\\FsVolume.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\MinimumSerial.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\SdCard\\SdCardInfo.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\SdCard\\SdSpiCard.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\SdCard\\SdioTeensy.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\SpiDriver\\SdSpiArtemis.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\SpiDriver\\SdSpiChipSelect.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\SpiDriver\\SdSpiDue.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\SpiDriver\\SdSpiESP.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\SpiDriver\\SdSpiParticle.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\SpiDriver\\SdSpiSTM32.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\SpiDriver\\SdSpiSTM32Core.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\SpiDriver\\SdSpiTeensy3.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\common\\FmtNumber.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\common\\FsCache.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\common\\FsDateTime.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\common\\FsName.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\common\\FsStructs.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\common\\FsUtf.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\common\\PrintBasic.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\common\\upcase.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\iostream\\StdioStream.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\iostream\\StreamBaseClass.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\iostream\\istream.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\SdFat\\iostream\\ostream.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\MTP_Teensy\\MTP_SD_Callbacks.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\MTP_Teensy\\MTP_Storage.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\MTP_Teensy\\MTP_Teensy.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\MTP_Teensy\\MTP_USBFS_Callbacks.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\JPEGDEC\\JPEGDEC.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\PNGdec\\PNGdec.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\PNGdec\\adler32.c.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\PNGdec\\crc32.c.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\PNGdec\\infback.c.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\PNGdec\\inffast.c.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\PNGdec\\inflate.c.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\PNGdec\\inftrees.c.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\PNGdec\\zutil.c.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\Ra8876LiteTeensy\\Ra8876LiteTeensy.a" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\Wire\\Wire.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\Wire\\WireIMXRT.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\Wire\\WireKinetis.cpp.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE\\libraries\\Wire\\utility\\twi.c.o" "C:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE/core\\core.a" "-LC:\\Users\\kurte\\AppData\\Local\\Temp\\arduino\\sketches\\479771791AB690CB5AEED20B64877CBE" -larm_cortexM7lfsp_math -lm -lstdc++
c:\Users\kurte\Documents\Arduino\libraries\MTP_Teensy\src\MTP_Teensy.cpp:40:44: warning: type of 'usb_string_serial_number' does not match original declaration [-Wlto-type-mismatch]
   40 | extern struct usb_string_descriptor_struct usb_string_serial_number;
      |                                            ^
C:\Users\kurte\AppData\Local\Arduino15\packages\teensy\hardware\avr\0.59.1\cores\teensy4\usb_desc.c:2726:44: note: type 'struct usb_string_descriptor_struct' should match type 'struct usb_string_descriptor_struct'
 2726 | extern struct usb_string_descriptor_struct usb_string_serial_number
      |                                            ^
C:\Users\kurte\AppData\Local\Arduino15\packages\teensy\hardware\avr\0.59.1\cores\teensy4/usb_names.h:43:8: note: the incompatible type is defined here
   43 | struct usb_string_descriptor_struct {
      |        ^
C:\Users\kurte\AppData\Local\Arduino15\packages\teensy\hardware\avr\0.59.1\cores\teensy4\usb_desc.c:2726:44: note: 'usb_string_serial_number' was previously declared here
 2726 | extern struct usb_string_descriptor_struct usb_string_serial_number
      |                                            ^
C:\Users\kurte\AppData\Local\Arduino15\packages\teensy\hardware\avr\0.59.1\cores\teensy4\usb_desc.c:2726:44: note: code may be misoptimized unless '-fno-strict-aliasing' is used
C:\Users\kurte\AppData\Local\Arduino15\packages\teensy\hardware\avr\0.59.1\cores\teensy4\CrashReport.cpp:18:22: warning: type of '_ebss' does not match original declaration [-Wlto-type-mismatch]
   18 | extern unsigned long _ebss;
      |                      ^
C:\Users\kurte\AppData\Local\Arduino15\packages\teensy\hardware\avr\0.59.1\libraries\SdFat\src\FreeStack.h:56:16: note: type 'uint8_t' should match type 'unsigned int'
   56 | extern uint8_t _ebss;
      |                ^
C:\Users\kurte\AppData\Local\Arduino15\packages\teensy\hardware\avr\0.59.1\libraries\SdFat\src\FreeStack.h:56:16: note: '_ebss' was previously declared here
C:\Users\kurte\AppData\Local\Arduino15\packages\teensy\hardware\avr\0.59.1\cores\teensy4\main.cpp: In function 'main':
c:\Users\kurte\Documents\Arduino\libraries\Ra8876LiteTeensy\src\RA8876_t3.cpp:102:23: error: 'gImage_arrow_il' causes a section type conflict with 'usb_config_descriptor_12'
  102 | PROGMEM unsigned char gImage_arrow_il[256] = { /* 0X00,0X02,0X20,0X00,0X20,0X00, */
      |                       ^
C:\Users\kurte\AppData\Local\Arduino15\packages\teensy\hardware\avr\0.59.1\cores\teensy4\usb_desc.c:1685:23: note: 'usb_config_descriptor_12' was declared here
 1685 | PROGMEM const uint8_t usb_config_descriptor_12[CONFIG_DESC_SIZE] = {
      |                       ^
lto-wrapper.exe: fatal error: C:\Users\kurte\AppData\Local\Arduino15\packages\teensy\tools\teensy-compile\11.3.1/arm/bin/arm-none-eabi-gcc returned 1 exit status
compilation terminated.
c:/users/kurte/appdata/local/arduino15/packages/teensy/tools/teensy-compile/11.3.1/arm/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/bin/ld.exe: error: lto-wrapper failed
collect2.exe: error: ld returned 1 exit status
Multiple libraries were found for "SD.h"
  Used: C:\Users\kurte\AppData\Local\Arduino15\packages\teensy\hardware\avr\0.59.1\libraries\SD
  Not used: C:\Users\kurte\AppData\Local\Arduino15\libraries\SD
  Not used: C:\Users\kurte\Documents\Arduino\libraries\SD
Multiple libraries were found for "SdFat.h"
  Used: C:\Users\kurte\AppData\Local\Arduino15\packages\teensy\hardware\avr\0.59.1\libraries\SdFat
  Not used: C:\Users\kurte\Documents\Arduino\libraries\SdFat_-_Adafruit_Fork
Using library SPI at version 1.0 in folder: C:\Users\kurte\AppData\Local\Arduino15\packages\teensy\hardware\avr\0.59.1\libraries\SPI 
Using library SD at version 2.0.0 in folder: C:\Users\kurte\AppData\Local\Arduino15\packages\teensy\hardware\avr\0.59.1\libraries\SD 
Using library SdFat at version 2.1.2 in folder: C:\Users\kurte\AppData\Local\Arduino15\packages\teensy\hardware\avr\0.59.1\libraries\SdFat 
Using library MTP_Teensy at version 1.0.0 in folder: D:\github\MTP_Teensy 
Using library JPEGDEC at version 1.2.8 in folder: C:\Users\kurte\Documents\Arduino\libraries\JPEGDEC 
Using library PNGdec at version 1.0.1 in folder: C:\Users\kurte\Documents\Arduino\libraries\PNGdec 
Using library Ra8876LiteTeensy at version 1.0.0 in folder: D:\github\Ra8876LiteTeensy 
Using library Wire at version 1.0 in folder: C:\Users\kurte\AppData\Local\Arduino15\packages\teensy\hardware\avr\0.59.1\libraries\Wire 
exit status 1

Compilation error: exit status 1

Edit: I don't think there is much special with the sketch for these warnings/errors, but can be found up at:
https://github.com/KurtE/mtp_tft_picture_view
 
Quick update on the usb_string_serial_number mentioned above. I removed one of the warnings, by not having the code in MTP do the extern. It already includes the usb_names.h which already had it defined as extern and inside of a extern "C" bracket...

But I think just having something else refer to it causes it to error with all of the inconsistent ...

I think the issue is: the usb_names.h has:
Code:
extern struct usb_string_descriptor_struct usb_string_serial_number;

But the actual define for it inside of usb_desc.c has:
Code:
extern struct usb_string_descriptor_struct usb_string_serial_number
        __attribute__ ((weak, alias("usb_string_serial_number_default")));

and then:
Code:
struct usb_string_descriptor_struct usb_string_serial_number_default = {
        12,
        3,
        {0,0,0,0,0,0,0,0,0,0}
};
I don't think the LTO stuff like the weak alias stuff... Again guessing.

Not sure of best fix here. Some options maybe:
a) Punt - I don't use LTO anyway ;)
b) Not sure if there is any special c++ special stuff to say don't error on this.
c) Maybe have method in same .c file with something like: getSerialNumberDescriptor that returns pointer... again don't know if that will work or not.

Or...

Edit: Another option: replicate the code from T3.x and T4.x that is used in usb_init_serialnumber(), to get the number and then process.
Upside, this maybe avoids the LTO issue... Maybe, downside, if a setup is made that does not want to use the default serial number, this would avoid whatever that setup was doing.
 
Last edited:
Hi,

just compiled our space stuff for Exp.007 / https://www.dlr.de/content/en/artic...-with-a-spy-amongst-numerous-experiments.html.
Uses: BME280, BusIO, HMC5883, MCP9600, MLX90614, Neopixel, TMP007, UnifiedSensor, FlexCAN_T4, MPU6886, LittleFS, OneWire, RDA5807, SD+SdFat, SPI, teensy4_i2, TeensyThreads, Time, WDT_T4.
LittleFS has a bunch of warnings. But the rest works like a charm. Could not check LTO yet. Because we use a custom build process. Will dive into that later if useful.
@PaulStoffregen: I've sent you an email with a feature request for teensy_secure.exe to put lockable Teensys into more use in production environments and scientific experiments. :)

All the best,
CK
 
LTO was enabled and worked well in some cases for T_3.6. T_4.x never liked it and fixes may be in place.
Nice when it can pare down unused code safely.
Other day did a quick build test of CoreMark - not exhaustive. Interesting that LTO build roughly same COREMARK (slower than not LTO) between IDE's - unlike without LTO.
Code in FLASH size dropped - and ITCM RAM1 usage - could free a 32KB block to DTCM in some cases , but not here.
Code:
Faster with LTO:
ide1: CoreMark 1.0 : [B]2361.28 [/B]/ GCC11.3.1 20220712 (flags unknown) / STACK

ide2: CoreMark 1.0 : [B]2361.09 [/B]/ GCC11.3.1 20220712 (flags unknown) / STACK
Memory Usage on Teensy 4.1:
  FLASH: code:[B]15156[/B], data:4040, headers:8448   free for files:8098820
   RAM1: variables:4864, code:[B]12336[/B], padding:20432   free for local variables:486656
   RAM2: variables:12416  free for malloc/new:511872

FASTER:
ide1: CoreMark 1.0 : [B]2406.93 [/B]/ GCC11.3.1 20220712 (flags unknown) / STACK

ide2: CoreMark 1.0 : [B]2401.54 [/B]/ GCC11.3.1 20220712 (flags unknown) / STACK
Memory Usage on Teensy 4.1:
  FLASH: code:[B]16860[/B], data:4040, headers:8792   free for files:8096772
   RAM1: variables:4864, code:[B]14192[/B], padding:18576   free for local variables:486656
   RAM2: variables:12416  free for malloc/new:511872
 
Hi,

It would be great, if the CSF contained in teensy_secure.exe (and also teensy.exe) would be extended with the UNLOCK command for SNVS SET ZMK (B2 00 08 1E 00 00 00 03).
Just validated it works after manually patching the 1.57.2 teensy_secure windows executable.

No NDA documents were needed for this, only the HAB4_API.pdf from cst and "RT1060 Manufacturing User's Guide", both of them are publicly available.

Best regards,
Alice
 
Hi all,

It would be great, if the CSF contained in teensy_secure.exe (and also teensy.exe) would be extended with the UNLOCK command for SNVS SET ZMK (B2 00 08 1E 00 00 00 03).
Just validated it works after manually patching the 1.57.2 teensy_secure windows executable.

No NDA documents were needed for this, only the HAB4_API.pdf from cst and "RT1060 Manufacturing User's Guide", both of them are publicly available.

Confirmative. ZMK access works as intended and is selectable as (combined) master key for DCP.
So, on fatal security events the keys gets eliminated and all data encrypted with this key rendered
useless for the attacker.

Thank you @ali1c3!

Best,
CK
 
FYI: I opened a pull request https://github.com/PaulStoffregen/cores/pull/698 to include a fix for handling stack pointers correctly. We set MSP to HAB log file space and use PSP for stack in regular thread mode. Without the fix, the exception handler will try to read from the MSP, which in this case doesn't contain a stack frame, and stack[6] / stack[7] mostly result in subsequent errors.
 
Back
Top