From 956de77e85da9609353a92dd292db9a6e45277c5 Mon Sep 17 00:00:00 2001 From: "Frederic.Pillon" Date: Tue, 25 Sep 2018 10:24:30 +0200 Subject: [PATCH 1/2] Fix build.flags.ldspec usage -flto options was use twice at link time. Signed-off-by: Frederic.Pillon --- boards.txt | 73 ---------------------------------------------------- platform.txt | 2 +- 2 files changed, 1 insertion(+), 74 deletions(-) diff --git a/boards.txt b/boards.txt index d8e096c444..6f7a86ec22 100644 --- a/boards.txt +++ b/boards.txt @@ -750,235 +750,162 @@ Disco.menu.usb.HID.build.enable_usb={build.usb_flags} -DUSBD_USE_HID_COMPOSITE Nucleo_144.menu.opt.osstd=Smallest (-Os default) Nucleo_144.menu.opt.oslto=Smallest (-Os) with LTO Nucleo_144.menu.opt.oslto.build.flags.optimize=-Os -flto -Nucleo_144.menu.opt.oslto.build.flags.ldspecs=-flto Nucleo_144.menu.opt.o1std=Fast (-O1) Nucleo_144.menu.opt.o1std.build.flags.optimize=-O1 -Nucleo_144.menu.opt.o1std.build.flags.ldspecs= Nucleo_144.menu.opt.o1lto=Fast (-O1) with LTO Nucleo_144.menu.opt.o1lto.build.flags.optimize=-O1 -flto -Nucleo_144.menu.opt.o1lto.build.flags.ldspecs=-flto Nucleo_144.menu.opt.o2std=Faster (-O2) Nucleo_144.menu.opt.o2std.build.flags.optimize=-O2 -Nucleo_144.menu.opt.o2std.build.flags.ldspecs= Nucleo_144.menu.opt.o2lto=Faster (-O2) with LTO Nucleo_144.menu.opt.o2lto.build.flags.optimize=-O2 -flto -Nucleo_144.menu.opt.o2lto.build.flags.ldspecs=-flto Nucleo_144.menu.opt.o3std=Fastest (-O3) Nucleo_144.menu.opt.o3std.build.flags.optimize=-O3 -Nucleo_144.menu.opt.o3std.build.flags.ldspecs= Nucleo_144.menu.opt.o3lto=Fastest (-O3) with LTO Nucleo_144.menu.opt.o3lto.build.flags.optimize=-O3 -flto -Nucleo_144.menu.opt.o3lto.build.flags.ldspecs=-flto Nucleo_144.menu.opt.ogstd=Debug (-g) Nucleo_144.menu.opt.ogstd.build.flags.optimize=-g -Og -Nucleo_144.menu.opt.ogstd.build.flags.ldspecs= Nucleo_64.menu.opt.osstd=Smallest (-Os default) Nucleo_64.menu.opt.oslto=Smallest (-Os) with LTO Nucleo_64.menu.opt.oslto.build.flags.optimize=-Os -flto -Nucleo_64.menu.opt.oslto.build.flags.ldspecs=-flto Nucleo_64.menu.opt.o1std=Fast (-O1) Nucleo_64.menu.opt.o1std.build.flags.optimize=-O1 -Nucleo_64.menu.opt.o1std.build.flags.ldspecs= Nucleo_64.menu.opt.o1lto=Fast (-O1) with LTO Nucleo_64.menu.opt.o1lto.build.flags.optimize=-O1 -flto -Nucleo_64.menu.opt.o1lto.build.flags.ldspecs=-flto Nucleo_64.menu.opt.o2std=Faster (-O2) Nucleo_64.menu.opt.o2std.build.flags.optimize=-O2 -Nucleo_64.menu.opt.o2std.build.flags.ldspecs= Nucleo_64.menu.opt.o2lto=Faster (-O2) with LTO Nucleo_64.menu.opt.o2lto.build.flags.optimize=-O2 -flto -Nucleo_64.menu.opt.o2lto.build.flags.ldspecs=-flto Nucleo_64.menu.opt.o3std=Fastest (-O3) Nucleo_64.menu.opt.o3std.build.flags.optimize=-O3 -Nucleo_64.menu.opt.o3std.build.flags.ldspecs= Nucleo_64.menu.opt.o3lto=Fastest (-O3) with LTO Nucleo_64.menu.opt.o3lto.build.flags.optimize=-O3 -flto -Nucleo_64.menu.opt.o3lto.build.flags.ldspecs=-flto Nucleo_64.menu.opt.ogstd=Debug (-g) Nucleo_64.menu.opt.ogstd.build.flags.optimize=-g -Og -Nucleo_64.menu.opt.ogstd.build.flags.ldspecs= Nucleo_32.menu.opt.osstd=Smallest (-Os default) Nucleo_32.menu.opt.oslto=Smallest (-Os) with LTO Nucleo_32.menu.opt.oslto.build.flags.optimize=-Os -flto -Nucleo_32.menu.opt.oslto.build.flags.ldspecs=-flto Nucleo_32.menu.opt.o1std=Fast (-O1) Nucleo_32.menu.opt.o1std.build.flags.optimize=-O1 -Nucleo_32.menu.opt.o1std.build.flags.ldspecs= Nucleo_32.menu.opt.o1lto=Fast (-O1) with LTO Nucleo_32.menu.opt.o1lto.build.flags.optimize=-O1 -flto -Nucleo_32.menu.opt.o1lto.build.flags.ldspecs=-flto Nucleo_32.menu.opt.o2std=Faster (-O2) Nucleo_32.menu.opt.o2std.build.flags.optimize=-O2 -Nucleo_32.menu.opt.o2std.build.flags.ldspecs= Nucleo_32.menu.opt.o2lto=Faster (-O2) with LTO Nucleo_32.menu.opt.o2lto.build.flags.optimize=-O2 -flto -Nucleo_32.menu.opt.o2lto.build.flags.ldspecs=-flto Nucleo_32.menu.opt.o3std=Fastest (-O3) Nucleo_32.menu.opt.o3std.build.flags.optimize=-O3 -Nucleo_32.menu.opt.o3std.build.flags.ldspecs= Nucleo_32.menu.opt.o3lto=Fastest (-O3) with LTO Nucleo_32.menu.opt.o3lto.build.flags.optimize=-O3 -flto -Nucleo_32.menu.opt.o3lto.build.flags.ldspecs=-flto Nucleo_32.menu.opt.ogstd=Debug (-g) Nucleo_32.menu.opt.ogstd.build.flags.optimize=-g -Og -Nucleo_32.menu.opt.ogstd.build.flags.ldspecs= Disco.menu.opt.osstd=Smallest (-Os default) Disco.menu.opt.oslto=Smallest (-Os) with LTO Disco.menu.opt.oslto.build.flags.optimize=-Os -flto -Disco.menu.opt.oslto.build.flags.ldspecs=-flto Disco.menu.opt.o1std=Fast (-O1) Disco.menu.opt.o1std.build.flags.optimize=-O1 -Disco.menu.opt.o1std.build.flags.ldspecs= Disco.menu.opt.o1lto=Fast (-O1) with LTO Disco.menu.opt.o1lto.build.flags.optimize=-O1 -flto -Disco.menu.opt.o1lto.build.flags.ldspecs=-flto Disco.menu.opt.o2std=Faster (-O2) Disco.menu.opt.o2std.build.flags.optimize=-O2 -Disco.menu.opt.o2std.build.flags.ldspecs= Disco.menu.opt.o2lto=Faster (-O2) with LTO Disco.menu.opt.o2lto.build.flags.optimize=-O2 -flto -Disco.menu.opt.o2lto.build.flags.ldspecs=-flto Disco.menu.opt.o3std=Fastest (-O3) Disco.menu.opt.o3std.build.flags.optimize=-O3 -Disco.menu.opt.o3std.build.flags.ldspecs= Disco.menu.opt.o3lto=Fastest (-O3) with LTO Disco.menu.opt.o3lto.build.flags.optimize=-O3 -flto -Disco.menu.opt.o3lto.build.flags.ldspecs=-flto Disco.menu.opt.ogstd=Debug (-g) Disco.menu.opt.ogstd.build.flags.optimize=-g -Og -Disco.menu.opt.ogstd.build.flags.ldspecs= GenF103.menu.opt.osstd=Smallest (-Os default) GenF103.menu.opt.oslto=Smallest (-Os) with LTO GenF103.menu.opt.oslto.build.flags.optimize=-Os -flto -GenF103.menu.opt.oslto.build.flags.ldspecs=-flto GenF103.menu.opt.o1std=Fast (-O1) GenF103.menu.opt.o1std.build.flags.optimize=-O1 -GenF103.menu.opt.o1std.build.flags.ldspecs= GenF103.menu.opt.o1lto=Fast (-O1) with LTO GenF103.menu.opt.o1lto.build.flags.optimize=-O1 -flto -GenF103.menu.opt.o1lto.build.flags.ldspecs=-flto GenF103.menu.opt.o2std=Faster (-O2) GenF103.menu.opt.o2std.build.flags.optimize=-O2 -GenF103.menu.opt.o2std.build.flags.ldspecs= GenF103.menu.opt.o2lto=Faster (-O2) with LTO GenF103.menu.opt.o2lto.build.flags.optimize=-O2 -flto -GenF103.menu.opt.o2lto.build.flags.ldspecs=-flto GenF103.menu.opt.o3std=Fastest (-O3) GenF103.menu.opt.o3std.build.flags.optimize=-O3 -GenF103.menu.opt.o3std.build.flags.ldspecs= GenF103.menu.opt.o3lto=Fastest (-O3) with LTO GenF103.menu.opt.o3lto.build.flags.optimize=-O3 -flto -GenF103.menu.opt.o3lto.build.flags.ldspecs=-flto GenF103.menu.opt.ogstd=Debug (-g) GenF103.menu.opt.ogstd.build.flags.optimize=-g -Og -GenF103.menu.opt.ogstd.build.flags.ldspecs= GenF4.menu.opt.osstd=Smallest (-Os default) GenF4.menu.opt.osstd.build.flags.optimize=-Os -GenF4.menu.opt.osstd.build.flags.ldspecs= GenF4.menu.opt.oslto=Smallest (-Os) with LTO GenF4.menu.opt.oslto.build.flags.optimize=-Os -flto -GenF4.menu.opt.oslto.build.flags.ldspecs=-flto GenF4.menu.opt.o1std=Fast (-O1) GenF4.menu.opt.o1std.build.flags.optimize=-O1 -GenF4.menu.opt.o1std.build.flags.ldspecs= GenF4.menu.opt.o1lto=Fast (-O1) with LTO GenF4.menu.opt.o1lto.build.flags.optimize=-O1 -flto -GenF4.menu.opt.o1lto.build.flags.ldspecs=-flto GenF4.menu.opt.o2std=Faster (-O2) GenF4.menu.opt.o2std.build.flags.optimize=-O2 -GenF4.menu.opt.o2std.build.flags.ldspecs= GenF4.menu.opt.o2lto=Faster (-O2) with LTO GenF4.menu.opt.o2lto.build.flags.optimize=-O2 -flto -GenF4.menu.opt.o2lto.build.flags.ldspecs=-flto GenF4.menu.opt.o3std=Fastest (-O3) GenF4.menu.opt.o3std.build.flags.optimize=-O3 -GenF4.menu.opt.o3std.build.flags.ldspecs= GenF4.menu.opt.o3lto=Fastest (-O3) with LTO GenF4.menu.opt.o3lto.build.flags.optimize=-O3 -flto -GenF4.menu.opt.o3lto.build.flags.ldspecs=-flto GenF4.menu.opt.ogstd=Debug (-g) GenF4.menu.opt.ogstd.build.flags.optimize=-g -Og -GenF4.menu.opt.ogstd.build.flags.ldspecs= Maple.menu.opt.osstd=Smallest (-Os default) Maple.menu.opt.oslto=Smallest (-Os) with LTO Maple.menu.opt.oslto.build.flags.optimize=-Os -flto -Maple.menu.opt.oslto.build.flags.ldspecs=-flto Maple.menu.opt.o1std=Fast (-O1) Maple.menu.opt.o1std.build.flags.optimize=-O1 -Maple.menu.opt.o1std.build.flags.ldspecs= Maple.menu.opt.o1lto=Fast (-O1) with LTO Maple.menu.opt.o1lto.build.flags.optimize=-O1 -flto -Maple.menu.opt.o1lto.build.flags.ldspecs=-flto Maple.menu.opt.o2std=Faster (-O2) Maple.menu.opt.o2std.build.flags.optimize=-O2 -Maple.menu.opt.o2std.build.flags.ldspecs= Maple.menu.opt.o2lto=Faster (-O2) with LTO Maple.menu.opt.o2lto.build.flags.optimize=-O2 -flto -Maple.menu.opt.o2lto.build.flags.ldspecs=-flto Maple.menu.opt.o3std=Fastest (-O3) Maple.menu.opt.o3std.build.flags.optimize=-O3 -Maple.menu.opt.o3std.build.flags.ldspecs= Maple.menu.opt.o3lto=Fastest (-O3) with LTO Maple.menu.opt.o3lto.build.flags.optimize=-O3 -flto -Maple.menu.opt.o3lto.build.flags.ldspecs=-flto Maple.menu.opt.ogstd=Debug (-g) Maple.menu.opt.ogstd.build.flags.optimize=-g -Og -Maple.menu.opt.ogstd.build.flags.ldspecs= RAK.menu.opt.osstd=Smallest (-Os default) RAK.menu.opt.oslto=Smallest (-Os) with LTO RAK.menu.opt.oslto.build.flags.optimize=-Os -flto -RAK.menu.opt.oslto.build.flags.ldspecs=-flto RAK.menu.opt.o1std=Fast (-O1) RAK.menu.opt.o1std.build.flags.optimize=-O1 -RAK.menu.opt.o1std.build.flags.ldspecs= RAK.menu.opt.o1lto=Fast (-O1) with LTO RAK.menu.opt.o1lto.build.flags.optimize=-O1 -flto -RAK.menu.opt.o1lto.build.flags.ldspecs=-flto RAK.menu.opt.o2std=Faster (-O2) RAK.menu.opt.o2std.build.flags.optimize=-O2 -RAK.menu.opt.o2std.build.flags.ldspecs= RAK.menu.opt.o2lto=Faster (-O2) with LTO RAK.menu.opt.o2lto.build.flags.optimize=-O2 -flto -RAK.menu.opt.o2lto.build.flags.ldspecs=-flto RAK.menu.opt.o3std=Fastest (-O3) RAK.menu.opt.o3std.build.flags.optimize=-O3 -RAK.menu.opt.o3std.build.flags.ldspecs= RAK.menu.opt.o3lto=Fastest (-O3) with LTO RAK.menu.opt.o3lto.build.flags.optimize=-O3 -flto -RAK.menu.opt.o3lto.build.flags.ldspecs=-flto RAK.menu.opt.ogstd=Debug (-g) RAK.menu.opt.ogstd.build.flags.optimize=-g -Og -RAK.menu.opt.ogstd.build.flags.ldspecs= RemRam.menu.opt.osstd=Smallest (-Os default) RemRam.menu.opt.oslto=Smallest (-Os) with LTO RemRam.menu.opt.oslto.build.flags.optimize=-Os -flto -RemRam.menu.opt.oslto.build.flags.ldspecs=-flto RemRam.menu.opt.o1std=Fast (-O1) RemRam.menu.opt.o1std.build.flags.optimize=-O1 -RemRam.menu.opt.o1std.build.flags.ldspecs= RemRam.menu.opt.o1lto=Fast (-O1) with LTO RemRam.menu.opt.o1lto.build.flags.optimize=-O1 -flto -RemRam.menu.opt.o1lto.build.flags.ldspecs=-flto RemRam.menu.opt.o2std=Faster (-O2) RemRam.menu.opt.o2std.build.flags.optimize=-O2 -RemRam.menu.opt.o2std.build.flags.ldspecs= RemRam.menu.opt.o2lto=Faster (-O2) with LTO RemRam.menu.opt.o2lto.build.flags.optimize=-O2 -flto -RemRam.menu.opt.o2lto.build.flags.ldspecs=-flto RemRam.menu.opt.o3std=Fastest (-O3) RemRam.menu.opt.o3std.build.flags.optimize=-O3 -RemRam.menu.opt.o3std.build.flags.ldspecs= RemRam.menu.opt.o3lto=Fastest (-O3) with LTO RemRam.menu.opt.o3lto.build.flags.optimize=-O3 -flto -RemRam.menu.opt.o3lto.build.flags.ldspecs=-flto RemRam.menu.opt.ogstd=Debug (-g) RemRam.menu.opt.ogstd.build.flags.optimize=-g -Og -RemRam.menu.opt.ogstd.build.flags.ldspecs= diff --git a/platform.txt b/platform.txt index 01ac507e35..4ae5f95864 100644 --- a/platform.txt +++ b/platform.txt @@ -46,7 +46,7 @@ compiler.objcopy.eep.flags=-O ihex -j .eeprom --set-section-flags=.eeprom=alloc, compiler.elf2bin.flags=-O binary compiler.elf2hex.flags=-O ihex -compiler.ldflags={build.flags.ldspecs} +compiler.ldflags= compiler.size.cmd=arm-none-eabi-size compiler.define=-DARDUINO= From 1220b4a9fbfdb7e287cf4c2d0d0f3cdcfb89f205 Mon Sep 17 00:00:00 2001 From: ppescher Date: Mon, 24 Sep 2018 14:51:22 +0200 Subject: [PATCH 2/2] Add menu options for C RunTime library Mainly to support floating point format strings in printf/scanf functions and their variants. Default settings uses Newlib Nano without floating point support (as before). One can add floating point support for Printf only, Scanf only or both, or just use the standard one. Signed-off-by: ppescher --- boards.txt | 92 ++++++++++++++++++++++++++++++++++++++++++++++++++++ platform.txt | 6 ++-- 2 files changed, 95 insertions(+), 3 deletions(-) diff --git a/boards.txt b/boards.txt index 6f7a86ec22..1c01b489fc 100644 --- a/boards.txt +++ b/boards.txt @@ -6,6 +6,7 @@ menu.xserial=Serial interface menu.usb=USB interface menu.opt=Optimize +menu.rtlib=C Runtime Library menu.upload_method=Upload method menu.flash=Flash Memory Size menu.ram=RAM Size @@ -909,3 +910,94 @@ RemRam.menu.opt.o3lto=Fastest (-O3) with LTO RemRam.menu.opt.o3lto.build.flags.optimize=-O3 -flto RemRam.menu.opt.ogstd=Debug (-g) RemRam.menu.opt.ogstd.build.flags.optimize=-g -Og + +# C Runtime Library +Nucleo_144.menu.rtlib.nano=Newlib Nano (default) +Nucleo_144.menu.rtlib.nanofp=Newlib Nano + Float Printf +Nucleo_144.menu.rtlib.nanofp.build.flags.ldspecs=--specs=nano.specs -u _printf_float +Nucleo_144.menu.rtlib.nanofs=Newlib Nano + Float Scanf +Nucleo_144.menu.rtlib.nanofs.build.flags.ldspecs=--specs=nano.specs -u _scanf_float +Nucleo_144.menu.rtlib.nanofps=Newlib Nano + Float Printf/Scanf +Nucleo_144.menu.rtlib.nanofps.build.flags.ldspecs=--specs=nano.specs -u _printf_float -u _scanf_float +Nucleo_144.menu.rtlib.full=Newlib Standard +Nucleo_144.menu.rtlib.full.build.flags.ldspecs= + +Nucleo_64.menu.rtlib.nano=Newlib Nano (default) +Nucleo_64.menu.rtlib.nanofp=Newlib Nano + Float Printf +Nucleo_64.menu.rtlib.nanofp.build.flags.ldspecs=--specs=nano.specs -u _printf_float +Nucleo_64.menu.rtlib.nanofs=Newlib Nano + Float Scanf +Nucleo_64.menu.rtlib.nanofs.build.flags.ldspecs=--specs=nano.specs -u _scanf_float +Nucleo_64.menu.rtlib.nanofps=Newlib Nano + Float Printf/Scanf +Nucleo_64.menu.rtlib.nanofps.build.flags.ldspecs=--specs=nano.specs -u _printf_float -u _scanf_float +Nucleo_64.menu.rtlib.full=Newlib Standard +Nucleo_64.menu.rtlib.full.build.flags.ldspecs= + +Nucleo_32.menu.rtlib.nano=Newlib Nano (default) +Nucleo_32.menu.rtlib.nanofp=Newlib Nano + Float Printf +Nucleo_32.menu.rtlib.nanofp.build.flags.ldspecs=--specs=nano.specs -u _printf_float +Nucleo_32.menu.rtlib.nanofs=Newlib Nano + Float Scanf +Nucleo_32.menu.rtlib.nanofs.build.flags.ldspecs=--specs=nano.specs -u _scanf_float +Nucleo_32.menu.rtlib.nanofps=Newlib Nano + Float Printf/Scanf +Nucleo_32.menu.rtlib.nanofps.build.flags.ldspecs=--specs=nano.specs -u _printf_float -u _scanf_float +Nucleo_32.menu.rtlib.full=Newlib Standard +Nucleo_32.menu.rtlib.full.build.flags.ldspecs= + +Disco.menu.rtlib.nano=Newlib Nano (default) +Disco.menu.rtlib.nanofp=Newlib Nano + Float Printf +Disco.menu.rtlib.nanofp.build.flags.ldspecs=--specs=nano.specs -u _printf_float +Disco.menu.rtlib.nanofs=Newlib Nano + Float Scanf +Disco.menu.rtlib.nanofs.build.flags.ldspecs=--specs=nano.specs -u _scanf_float +Disco.menu.rtlib.nanofps=Newlib Nano + Float Printf/Scanf +Disco.menu.rtlib.nanofps.build.flags.ldspecs=--specs=nano.specs -u _printf_float -u _scanf_float +Disco.menu.rtlib.full=Newlib Standard +Disco.menu.rtlib.full.build.flags.ldspecs= + +GenF103.menu.rtlib.nano=Newlib Nano (default) +GenF103.menu.rtlib.nanofp=Newlib Nano + Float Printf +GenF103.menu.rtlib.nanofp.build.flags.ldspecs=--specs=nano.specs -u _printf_float +GenF103.menu.rtlib.nanofs=Newlib Nano + Float Scanf +GenF103.menu.rtlib.nanofs.build.flags.ldspecs=--specs=nano.specs -u _scanf_float +GenF103.menu.rtlib.nanofps=Newlib Nano + Float Printf/Scanf +GenF103.menu.rtlib.nanofps.build.flags.ldspecs=--specs=nano.specs -u _printf_float -u _scanf_float +GenF103.menu.rtlib.full=Newlib Standard +GenF103.menu.rtlib.full.build.flags.ldspecs= + +GenF4.menu.rtlib.nano=Newlib Nano (default) +GenF4.menu.rtlib.nanofp=Newlib Nano + Float Printf +GenF4.menu.rtlib.nanofp.build.flags.ldspecs=--specs=nano.specs -u _printf_float +GenF4.menu.rtlib.nanofs=Newlib Nano + Float Scanf +GenF4.menu.rtlib.nanofs.build.flags.ldspecs=--specs=nano.specs -u _scanf_float +GenF4.menu.rtlib.nanofps=Newlib Nano + Float Printf/Scanf +GenF4.menu.rtlib.nanofps.build.flags.ldspecs=--specs=nano.specs -u _printf_float -u _scanf_float +GenF4.menu.rtlib.full=Newlib Standard +GenF4.menu.rtlib.full.build.flags.ldspecs= + +Maple.menu.rtlib.nano=Newlib Nano (default) +Maple.menu.rtlib.nanofp=Newlib Nano + Float Printf +Maple.menu.rtlib.nanofp.build.flags.ldspecs=--specs=nano.specs -u _printf_float +Maple.menu.rtlib.nanofs=Newlib Nano + Float Scanf +Maple.menu.rtlib.nanofs.build.flags.ldspecs=--specs=nano.specs -u _scanf_float +Maple.menu.rtlib.nanofps=Newlib Nano + Float Printf/Scanf +Maple.menu.rtlib.nanofps.build.flags.ldspecs=--specs=nano.specs -u _printf_float -u _scanf_float +Maple.menu.rtlib.full=Newlib Standard +Maple.menu.rtlib.full.build.flags.ldspecs= + +RAK.menu.rtlib.nano=Newlib Nano (default) +RAK.menu.rtlib.nanofp=Newlib Nano + Float Printf +RAK.menu.rtlib.nanofp.build.flags.ldspecs=--specs=nano.specs -u _printf_float +RAK.menu.rtlib.nanofs=Newlib Nano + Float Scanf +RAK.menu.rtlib.nanofs.build.flags.ldspecs=--specs=nano.specs -u _scanf_float +RAK.menu.rtlib.nanofps=Newlib Nano + Float Printf/Scanf +RAK.menu.rtlib.nanofps.build.flags.ldspecs=--specs=nano.specs -u _printf_float -u _scanf_float +RAK.menu.rtlib.full=Newlib Standard +RAK.menu.rtlib.full.build.flags.ldspecs= + +RemRam.menu.rtlib.nano=Newlib Nano (default) +RemRam.menu.rtlib.nanofp=Newlib Nano + Float Printf +RemRam.menu.rtlib.nanofp.build.flags.ldspecs=--specs=nano.specs -u _printf_float +RemRam.menu.rtlib.nanofs=Newlib Nano + Float Scanf +RemRam.menu.rtlib.nanofs.build.flags.ldspecs=--specs=nano.specs -u _scanf_float +RemRam.menu.rtlib.nanofps=Newlib Nano + Float Printf/Scanf +RemRam.menu.rtlib.nanofps.build.flags.ldspecs=--specs=nano.specs -u _printf_float -u _scanf_float +RemRam.menu.rtlib.full=Newlib Standard +RemRam.menu.rtlib.full.build.flags.ldspecs= diff --git a/platform.txt b/platform.txt index 4ae5f95864..4260277745 100644 --- a/platform.txt +++ b/platform.txt @@ -33,7 +33,7 @@ compiler.extra_flags=-mcpu={build.mcu} -mthumb "@{build.opt.path}" compiler.S.flags={compiler.extra_flags} -c -x assembler-with-cpp {compiler.stm.extra_include} -compiler.c.flags={compiler.extra_flags} -c {build.flags.optimize} {compiler.warning_flags} -std=gnu11 -ffunction-sections -fdata-sections -nostdlib --param max-inline-insns-single=500 -Dprintf=iprintf -MMD {compiler.stm.extra_include} +compiler.c.flags={compiler.extra_flags} -c {build.flags.optimize} {compiler.warning_flags} -std=gnu11 -ffunction-sections -fdata-sections -nostdlib --param max-inline-insns-single=500 -MMD {compiler.stm.extra_include} compiler.cpp.flags={compiler.extra_flags} -c {build.flags.optimize} {compiler.warning_flags} -std={compiler.cpp.std} -ffunction-sections -fdata-sections -nostdlib -fno-threadsafe-statics --param max-inline-insns-single=500 -fno-rtti -fno-exceptions -MMD {compiler.stm.extra_include} @@ -82,7 +82,7 @@ build.info.flags=-D{build.series} -DARDUINO={runtime.ide.version} -DARDUINO_{bui build.xSerial=-DHAL_UART_MODULE_ENABLED build.enable_usb= build.flags.optimize=-Os -build.flags.ldspecs= +build.flags.ldspecs=--specs=nano.specs # Pre and post build hooks build.opt.name=build_opt.h @@ -110,7 +110,7 @@ recipe.S.o.pattern="{compiler.path}{compiler.S.cmd}" {compiler.S.flags} {build.i recipe.ar.pattern="{compiler.path}{compiler.ar.cmd}" {compiler.ar.flags} {compiler.ar.extra_flags} "{archive_file_path}" "{object_file}" ## Combine gc-sections, archives, and objects -recipe.c.combine.pattern="{compiler.path}{compiler.c.elf.cmd}" {compiler.c.elf.flags} "-T{build.variant.path}/{build.ldscript}" "-Wl,-Map,{build.path}/{build.project_name}.map" {compiler.c.elf.extra_flags} {compiler.ldflags} {compiler.arm.cmsis.ldflags} -o "{build.path}/{build.project_name}.elf" "-L{build.path}" -Wl,--start-group {object_files} -Wl,--whole-archive "{archive_file_path}" -Wl,--no-whole-archive -lc -Wl,--end-group -lm -lgcc -lstdc++ --specs=nano.specs +recipe.c.combine.pattern="{compiler.path}{compiler.c.elf.cmd}" {compiler.c.elf.flags} "-T{build.variant.path}/{build.ldscript}" "-Wl,-Map,{build.path}/{build.project_name}.map" {compiler.c.elf.extra_flags} {compiler.ldflags} {compiler.arm.cmsis.ldflags} -o "{build.path}/{build.project_name}.elf" "-L{build.path}" -Wl,--start-group {object_files} -Wl,--whole-archive "{archive_file_path}" -Wl,--no-whole-archive -lc -Wl,--end-group -lm -lgcc -lstdc++ ## Create output (.bin file) recipe.objcopy.bin.pattern="{compiler.path}{compiler.objcopy.cmd}" {compiler.elf2bin.flags} {compiler.elf2bin.extra_flags} "{build.path}/{build.project_name}.elf" "{build.path}/{build.project_name}.bin"