@@ -262,10 +262,19 @@ else ifeq ($(CC_rv32_version_major),13)
262
262
else
263
263
NEWLIB_VERSION_rv32 := 4.3.0.20230120
264
264
endif
265
- NEWLIB_VERSION_rv32i := $(NEWLIB_VERSION_rv32 )
266
- NEWLIB_VERSION_rv32imc := $(NEWLIB_VERSION_rv32 )
267
- NEWLIB_VERSION_rv32imac := $(NEWLIB_VERSION_rv32 )
268
- NEWLIB_BASE_DIR_rv32 := $(TOCK_USERLAND_BASE_DIR ) /lib/libtock-newlib-$(NEWLIB_VERSION_rv32 )
265
+
266
+ ifeq ($(PICOLIB ) ,)
267
+ # Use newlib
268
+ TOCK_LIBC_FOLDER_rv32 := libtock-newlib-$(NEWLIB_VERSION_rv32 )
269
+ else
270
+ # Use picolib
271
+ TOCK_LIBC_FOLDER_rv32 := libtock-picolib-1.8.5
272
+ endif
273
+
274
+ TOCK_LIBC_FOLDER_rv32i := $(TOCK_LIBC_FOLDER_rv32 )
275
+ TOCK_LIBC_FOLDER_rv32imc := $(TOCK_LIBC_FOLDER_rv32 )
276
+ TOCK_LIBC_FOLDER_rv32imac := $(TOCK_LIBC_FOLDER_rv32 )
277
+ TOCK_LIBC_BASE_DIR_rv32 := $(TOCK_USERLAND_BASE_DIR ) /lib/$(TOCK_LIBC_FOLDER_rv32 )
269
278
270
279
# Match compiler version to supported libtock-libc++ versions.
271
280
ifeq ($(CC_rv32_version_major ) ,10)
@@ -305,7 +314,7 @@ override CFLAGS_rv32imac += $(CFLAGS_rv32)
305
314
# Set the base `CPPFLAGS` for all RISC-V variants based on the toolchain family.
306
315
override CPPFLAGS_rv32 += \
307
316
$(CPPFLAGS_toolchain_rv32 ) \
308
- -isystem $(NEWLIB_BASE_DIR_rv32 ) /riscv/riscv64-unknown-elf/include \
317
+ -isystem $(TOCK_LIBC_BASE_DIR_rv32 ) /riscv/riscv64-unknown-elf/include \
309
318
-isystem $(LIBCPP_BASE_DIR_rv32 ) /riscv/riscv64-unknown-elf/include/c++/$(LIBCPP_VERSION_rv32 ) \
310
319
-isystem $(LIBCPP_BASE_DIR_rv32 ) /riscv/riscv64-unknown-elf/include/c++/$(LIBCPP_VERSION_rv32 ) /riscv64-unknown-elf
311
320
@@ -336,26 +345,26 @@ override WLFLAGS_rv32imc += $(WLFLAGS_rv32)
336
345
override WLFLAGS_rv32imac += $(WLFLAGS_rv32 )
337
346
338
347
override SYSTEM_LIBS_rv32i += \
339
- $(NEWLIB_BASE_DIR_rv32 ) /riscv/riscv64-unknown-elf/lib/rv32i/ilp32/libc.a \
340
- $(NEWLIB_BASE_DIR_rv32 ) /riscv/riscv64-unknown-elf/lib/rv32i/ilp32/libm.a
348
+ $(TOCK_LIBC_BASE_DIR_rv32 ) /riscv/riscv64-unknown-elf/lib/rv32i/ilp32/libc.a \
349
+ $(TOCK_LIBC_BASE_DIR_rv32 ) /riscv/riscv64-unknown-elf/lib/rv32i/ilp32/libm.a
341
350
342
351
override SYSTEM_LIBS_CXX_rv32i += \
343
352
$(LIBCPP_BASE_DIR_rv32 ) /riscv/riscv64-unknown-elf/lib/rv32i/ilp32/libstdc++.a \
344
353
$(LIBCPP_BASE_DIR_rv32 ) /riscv/riscv64-unknown-elf/lib/rv32i/ilp32/libsupc++.a \
345
354
$(LIBCPP_BASE_DIR_rv32 ) /riscv/lib/gcc/riscv64-unknown-elf/$(LIBCPP_VERSION_rv32 ) /rv32i/ilp32/libgcc.a
346
355
347
356
override SYSTEM_LIBS_rv32imc += \
348
- $(NEWLIB_BASE_DIR_rv32 ) /riscv/riscv64-unknown-elf/lib/rv32im/ilp32/libc.a \
349
- $(NEWLIB_BASE_DIR_rv32 ) /riscv/riscv64-unknown-elf/lib/rv32im/ilp32/libm.a
357
+ $(TOCK_LIBC_BASE_DIR_rv32 ) /riscv/riscv64-unknown-elf/lib/rv32im/ilp32/libc.a \
358
+ $(TOCK_LIBC_BASE_DIR_rv32 ) /riscv/riscv64-unknown-elf/lib/rv32im/ilp32/libm.a
350
359
351
360
override SYSTEM_LIBS_CXX_rv32imc += \
352
361
$(LIBCPP_BASE_DIR_rv32 ) /riscv/riscv64-unknown-elf/lib/rv32im/ilp32/libstdc++.a \
353
362
$(LIBCPP_BASE_DIR_rv32 ) /riscv/riscv64-unknown-elf/lib/rv32im/ilp32/libsupc++.a \
354
363
$(LIBCPP_BASE_DIR_rv32 ) /riscv/lib/gcc/riscv64-unknown-elf/$(LIBCPP_VERSION_rv32 ) /rv32im/ilp32/libgcc.a
355
364
356
365
override SYSTEM_LIBS_rv32imac += \
357
- $(NEWLIB_BASE_DIR_rv32 ) /riscv/riscv64-unknown-elf/lib/rv32imac/ilp32/libc.a \
358
- $(NEWLIB_BASE_DIR_rv32 ) /riscv/riscv64-unknown-elf/lib/rv32imac/ilp32/libm.a
366
+ $(TOCK_LIBC_BASE_DIR_rv32 ) /riscv/riscv64-unknown-elf/lib/rv32imac/ilp32/libc.a \
367
+ $(TOCK_LIBC_BASE_DIR_rv32 ) /riscv/riscv64-unknown-elf/lib/rv32imac/ilp32/libm.a
359
368
360
369
override SYSTEM_LIBS_CXX_rv32imac += \
361
370
$(LIBCPP_BASE_DIR_rv32 ) /riscv/riscv64-unknown-elf/lib/rv32imac/ilp32/libstdc++.a \
@@ -402,11 +411,20 @@ else ifeq ($(CC_cortex-m_version_major),13)
402
411
else
403
412
NEWLIB_VERSION_cortex-m := 4.3.0.20230120
404
413
endif
405
- NEWLIB_VERSION_cortex-m0 := $(NEWLIB_VERSION_cortex-m )
406
- NEWLIB_VERSION_cortex-m3 := $(NEWLIB_VERSION_cortex-m )
407
- NEWLIB_VERSION_cortex-m4 := $(NEWLIB_VERSION_cortex-m )
408
- NEWLIB_VERSION_cortex-m7 := $(NEWLIB_VERSION_cortex-m )
409
- NEWLIB_BASE_DIR_cortex-m := $(TOCK_USERLAND_BASE_DIR ) /lib/libtock-newlib-$(NEWLIB_VERSION_cortex-m )
414
+
415
+ ifeq ($(PICOLIB ) ,)
416
+ # Use newlib
417
+ TOCK_LIBC_FOLDER_cortex-m := libtock-newlib-$(NEWLIB_VERSION_cortex-m )
418
+ else
419
+ # Use picolib
420
+ TOCK_LIBC_FOLDER_cortex-m := libtock-picolib-1.8.5
421
+ endif
422
+
423
+ TOCK_LIBC_FOLDER_cortex-m0 := $(TOCK_LIBC_FOLDER_cortex-m )
424
+ TOCK_LIBC_FOLDER_cortex-m3 := $(TOCK_LIBC_FOLDER_cortex-m )
425
+ TOCK_LIBC_FOLDER_cortex-m4 := $(TOCK_LIBC_FOLDER_cortex-m )
426
+ TOCK_LIBC_FOLDER_cortex-m7 := $(TOCK_LIBC_FOLDER_cortex-m )
427
+ TOCK_LIBC_BASE_DIR_cortex-m := $(TOCK_USERLAND_BASE_DIR ) /lib/$(TOCK_LIBC_FOLDER_cortex-m )
410
428
411
429
# Match compiler version to supported libtock-libc++ versions.
412
430
ifeq ($(CC_cortex-m_version_major ) ,10)
@@ -447,7 +465,7 @@ override CPPFLAGS_cortex-m += \
447
465
-msingle-pic-base\
448
466
-mpic-register=r9\
449
467
-mno-pic-data-is-text-relative\
450
- -isystem $(NEWLIB_BASE_DIR_cortex -m ) /arm/arm-none-eabi/include\
468
+ -isystem $(TOCK_LIBC_BASE_DIR_cortex -m ) /arm/arm-none-eabi/include\
451
469
-isystem $(LIBCPP_BASE_DIR_cortex-m ) /arm/arm-none-eabi/include/c++/$(LIBCPP_VERSION_cortex-m ) \
452
470
-isystem $(LIBCPP_BASE_DIR_cortex-m ) /arm/arm-none-eabi/include/c++/$(LIBCPP_VERSION_cortex-m ) /arm-none-eabi
453
471
@@ -466,35 +484,35 @@ override CPPFLAGS_cortex-m7 += $(CPPFLAGS_cortex-m) \
466
484
-mcpu=cortex-m7
467
485
468
486
override SYSTEM_LIBS_cortex-m0 += \
469
- $(NEWLIB_BASE_DIR_cortex -m ) /arm/arm-none-eabi/lib/thumb/v6-m/nofp/libc.a \
470
- $(NEWLIB_BASE_DIR_cortex -m ) /arm/arm-none-eabi/lib/thumb/v6-m/nofp/libm.a
487
+ $(TOCK_LIBC_BASE_DIR_cortex -m ) /arm/arm-none-eabi/lib/thumb/v6-m/nofp/libc.a \
488
+ $(TOCK_LIBC_BASE_DIR_cortex -m ) /arm/arm-none-eabi/lib/thumb/v6-m/nofp/libm.a
471
489
472
490
override SYSTEM_LIBS_CXX_cortex-m0 += \
473
491
$(LIBCPP_BASE_DIR_cortex-m ) /arm/arm-none-eabi/lib/thumb/v6-m/nofp/libstdc++.a \
474
492
$(LIBCPP_BASE_DIR_cortex-m ) /arm/arm-none-eabi/lib/thumb/v6-m/nofp/libsupc++.a \
475
493
$(LIBCPP_BASE_DIR_cortex-m ) /arm/lib/gcc/arm-none-eabi/$(LIBCPP_VERSION_cortex-m ) /thumb/v6-m/nofp/libgcc.a
476
494
477
495
override SYSTEM_LIBS_cortex-m3 += \
478
- $(NEWLIB_BASE_DIR_cortex -m ) /arm/arm-none-eabi/lib/thumb/v7-m/nofp/libc.a \
479
- $(NEWLIB_BASE_DIR_cortex -m ) /arm/arm-none-eabi/lib/thumb/v7-m/nofp/libm.a
496
+ $(TOCK_LIBC_BASE_DIR_cortex -m ) /arm/arm-none-eabi/lib/thumb/v7-m/nofp/libc.a \
497
+ $(TOCK_LIBC_BASE_DIR_cortex -m ) /arm/arm-none-eabi/lib/thumb/v7-m/nofp/libm.a
480
498
481
499
override SYSTEM_LIBS_CXX_cortex-m3 += \
482
500
$(LIBCPP_BASE_DIR_cortex-m ) /arm/arm-none-eabi/lib/thumb/v7-m/nofp/libstdc++.a \
483
501
$(LIBCPP_BASE_DIR_cortex-m ) /arm/arm-none-eabi/lib/thumb/v7-m/nofp/libsupc++.a \
484
502
$(LIBCPP_BASE_DIR_cortex-m ) /arm/lib/gcc/arm-none-eabi/$(LIBCPP_VERSION_cortex-m ) /thumb/v7-m/nofp/libgcc.a
485
503
486
504
override SYSTEM_LIBS_cortex-m4 += \
487
- $(NEWLIB_BASE_DIR_cortex -m ) /arm/arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a \
488
- $(NEWLIB_BASE_DIR_cortex -m ) /arm/arm-none-eabi/lib/thumb/v7e-m/nofp/libm.a
505
+ $(TOCK_LIBC_BASE_DIR_cortex -m ) /arm/arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a \
506
+ $(TOCK_LIBC_BASE_DIR_cortex -m ) /arm/arm-none-eabi/lib/thumb/v7e-m/nofp/libm.a
489
507
490
508
override SYSTEM_LIBS_CXX_cortex-m4 += \
491
509
$(LIBCPP_BASE_DIR_cortex-m ) /arm/arm-none-eabi/lib/thumb/v7e-m/nofp/libstdc++.a \
492
510
$(LIBCPP_BASE_DIR_cortex-m ) /arm/arm-none-eabi/lib/thumb/v7e-m/nofp/libsupc++.a \
493
511
$(LIBCPP_BASE_DIR_cortex-m ) /arm/lib/gcc/arm-none-eabi/$(LIBCPP_VERSION_cortex-m ) /thumb/v7e-m/nofp/libgcc.a
494
512
495
513
override SYSTEM_LIBS_cortex-m7 += \
496
- $(NEWLIB_BASE_DIR_cortex -m ) /arm/arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a \
497
- $(NEWLIB_BASE_DIR_cortex -m ) /arm/arm-none-eabi/lib/thumb/v7e-m/nofp/libm.a
514
+ $(TOCK_LIBC_BASE_DIR_cortex -m ) /arm/arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a \
515
+ $(TOCK_LIBC_BASE_DIR_cortex -m ) /arm/arm-none-eabi/lib/thumb/v7e-m/nofp/libm.a
498
516
499
517
override SYSTEM_LIBS_CXX_cortex-m7 += \
500
518
$(LIBCPP_BASE_DIR_cortex-m ) /arm/arm-none-eabi/lib/thumb/v7e-m/nofp/libstdc++.a \
0 commit comments