circuitpython/py
Volodymyr Shymanskyy 51976110e2 tools/mpy_ld.py: Allow linking static libraries.
This commit introduces an additional symbol resolution mechanism to the
natmod linking process.  This allows the build scripts to look for required
symbols into selected libraries that are provided by the compiler
installation (libgcc and libm at the moment).

For example, using soft-float code in natmods, whilst technically possible,
was not an easy process and required some additional work to pull it off.
With this addition all the manual (and error-prone) operations have been
automated and folded into `tools/mpy_ld.py`.

Both newlib and picolibc toolchains are supported, albeit the latter may
require a bit of extra configuration depending on the environment the build
process runs on.  Picolibc's soft-float functions aren't in libm - in fact
the shipped libm is nothing but a stub - but they are inside libc.  This is
usually not a problem as these changes cater for that configuration quirk,
but on certain compilers the include paths used to find libraries in may
not be updated to take Picolibc's library directory into account.  The bare
metal RISC-V compiler shipped with the CI OS image (GCC 10.2.0 on Ubuntu
22.04LTS) happens to exhibit this very problem.

To work around that for CI builds, the Picolibc libraries' path is
hardcoded in the Makefile directives used by the linker, but this can be
changed by setting the PICOLIBC_ROOT environment library when building
natmods.

Signed-off-by: Volodymyr Shymanskyy <vshymanskyi@gmail.com>
Co-authored-by: Alessandro Gatti <a.gatti@frob.it>
2025-03-17 13:03:27 +11:00
..
argcheck.c py: Remove the word "yet" from exception messages. 2022-12-06 13:34:52 +11:00
asmarm.c py/asmarm: Fix halfword loads with larger offsets. 2025-01-16 12:52:32 +11:00
asmarm.h py/asm: Add ASM_NOT_REG and ASM_NEG_REG macros for unary ops. 2024-03-19 10:31:36 +11:00
asmbase.c py/emitndebug: Add native debug emitter. 2024-06-21 16:21:27 +10:00
asmbase.h py/asmrv32: Add RISC-V RV32IMC native code emitter. 2024-06-21 15:06:07 +10:00
asmrv32.c py/emitinlinerv32: Add inline assembler support for RV32. 2025-01-02 11:49:10 +11:00
asmrv32.h py/emitnative: Emit shorter exception handler entry code on RV32. 2025-01-26 23:42:36 +11:00
asmthumb.c py/misc: Move mp_clz and mp_ctz intrinsics into misc.h. 2024-06-24 14:06:54 +10:00
asmthumb.h py/asm: Add ASM_NOT_REG and ASM_NEG_REG macros for unary ops. 2024-03-19 10:31:36 +11:00
asmx64.c py/asm: Add ASM_NOT_REG and ASM_NEG_REG macros for unary ops. 2024-03-19 10:31:36 +11:00
asmx64.h py/asm: Add ASM_NOT_REG and ASM_NEG_REG macros for unary ops. 2024-03-19 10:31:36 +11:00
asmx86.c py/asm: Add ASM_NOT_REG and ASM_NEG_REG macros for unary ops. 2024-03-19 10:31:36 +11:00
asmx86.h py/asm: Add ASM_NOT_REG and ASM_NEG_REG macros for unary ops. 2024-03-19 10:31:36 +11:00
asmxtensa.c py/asmxtensa: Optimise asm_xtensa_mov_reg_i32_optimised() for tiny ints. 2024-03-19 10:31:36 +11:00
asmxtensa.h py/emitnative: Optimise Viper register offset load/stores on Xtensa. 2025-01-26 23:42:36 +11:00
bc.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
bc.h py/emitglue: Include fun_data_len in mp_raw_code_t only when saving. 2024-02-16 14:17:01 +11:00
bc0.h py: Change jump-if-x-or-pop opcodes to have unsigned offset argument. 2022-03-28 15:43:09 +11:00
binary.c all: Use new mp_obj_new_str_from_cstr() function. 2024-07-04 15:55:03 +10:00
binary.h py/binary: Change mp_uint_t to size_t for index, size, align args. 2019-09-02 13:14:27 +10:00
builtin.h extmod/modmachine: Use sys.exit as implementation of machine.soft_reset. 2024-07-20 12:18:07 +10:00
builtinevex.c py/objcode: Factor code object out into its own file. 2025-02-11 16:42:14 +11:00
builtinhelp.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
builtinimport.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
compile.c py/objcode: Factor code object out into its own file. 2025-02-11 16:42:14 +11:00
compile.h py/objcode: Factor code object out into its own file. 2025-02-11 16:42:14 +11:00
cstack.c py: Add new cstack API for stack checking, with limit margin macro. 2024-08-14 12:55:45 +10:00
cstack.h py: Add new cstack API for stack checking, with limit margin macro. 2024-08-14 12:55:45 +10:00
dynruntime.h py/dynruntime: Export mp_load_method_maybe and mp_arg_parse_all* funcs. 2024-05-24 13:50:57 +10:00
dynruntime.mk tools/mpy_ld.py: Allow linking static libraries. 2025-03-17 13:03:27 +11:00
emit.h py/emitinlinerv32: Add inline assembler support for RV32. 2025-01-02 11:49:10 +11:00
emitbc.c py: Remove 5 TODOs in emitbc, objrange and repl. 2024-07-18 12:35:42 +10:00
emitcommon.c py/compile: Fix scope of assignment expression target in comprehensions. 2023-03-09 12:13:12 +11:00
emitglue.c py/emitglue: Fix clear cache builtin warning on Clang for AArch32. 2024-12-10 12:04:14 +11:00
emitglue.h py/emitglue: Add explicit cast of proto_fun to uint8_t pointer. 2024-03-04 10:27:07 +11:00
emitinlinerv32.c py/emitinlinerv32: Reduce the footprint of compiled code. 2025-02-27 18:42:28 +01:00
emitinlinethumb.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
emitinlinextensa.c py/emitinlinextensa: Simplify register name lookup. 2025-02-28 13:21:44 +11:00
emitnarm.c py/emitnative: Access qstr values using indirection table qstr_table. 2022-05-23 15:43:06 +10:00
emitnative.c py/emitnative: Load and store words just once for Viper code. 2025-02-07 17:45:10 +11:00
emitndebug.c py/emitndebug: Add native debug emitter. 2024-06-21 16:21:27 +10:00
emitnrv32.c py/asmrv32: Add RISC-V RV32IMC native code emitter. 2024-06-21 15:06:07 +10:00
emitnthumb.c py/emitnative: Access qstr values using indirection table qstr_table. 2022-05-23 15:43:06 +10:00
emitnx64.c py/emitnative: Access qstr values using indirection table qstr_table. 2022-05-23 15:43:06 +10:00
emitnx86.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
emitnxtensa.c py/emitnative: Access qstr values using indirection table qstr_table. 2022-05-23 15:43:06 +10:00
emitnxtensawin.c py/emitnative: Access qstr values using indirection table qstr_table. 2022-05-23 15:43:06 +10:00
formatfloat.c all: Fix various spelling mistakes found by codespell 2.2.6. 2023-10-03 11:24:50 +11:00
formatfloat.h all: Use the name MicroPython consistently in comments 2017-07-31 18:35:40 +10:00
frozenmod.c py: Rework bytecode and .mpy file format to be mostly static data. 2022-02-24 18:08:43 +11:00
frozenmod.h py/builtin: Clean up and simplify import_stat and builtin_open config. 2022-05-25 13:04:45 +10:00
gc.c py/gc: Reorder static functions for clarity. 2025-02-03 15:02:02 +11:00
gc.h py/gc: Add "max new split" value in result of gc.mem_free(). 2023-09-15 12:19:13 +10:00
grammar.h py/compile: Implement PEP 526, syntax for variable annotations. 2020-06-16 23:18:01 +10:00
lexer.c py/lexer: Add static assert that token enum values all fit in a byte. 2024-07-18 12:44:44 +10:00
lexer.h py/lexer: Add static assert that token enum values all fit in a byte. 2024-07-18 12:44:44 +10:00
make_root_pointers.py py/make_root_pointers: Add MP_REGISTER_ROOT_POINTER parser/generator. 2022-07-18 13:48:23 +10:00
makecompresseddata.py all: Fix spelling mistakes based on codespell check. 2023-04-27 18:03:06 +10:00
makemoduledefs.py py/makemoduledefs.py: Automatically declare delegation attr functions. 2023-06-14 19:03:46 +10:00
makeqstrdata.py py/makeqstrdata.py: Implement MicroPython compatibility. 2025-03-05 16:00:32 +11:00
makeqstrdefs.py py/makeqstrdefs.py: Stop generating temporary intermediate file. 2023-12-14 22:55:08 -08:00
makeversionhdr.py py/makeversionhdr.py: Reinstate MICROPY_GIT_HASH in mpversion.h. 2024-02-19 23:36:25 +11:00
malloc.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
map.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
misc.h py/misc: Add a popcount(uint32_t) implementation. 2025-01-01 10:44:53 +01:00
mkenv.mk esp32: Pass V=1 or BUILD_VERBOSE through to idf.py when building. 2024-12-10 11:28:38 +11:00
mkrules.cmake py/modsys: Add sys.implementation._build entry. 2025-03-05 12:23:40 +11:00
mkrules.mk py/modsys: Add sys.implementation._build entry. 2025-03-05 12:23:40 +11:00
modarray.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
modbuiltins.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
modcmath.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
modcollections.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
moderrno.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
modgc.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
modio.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
modmath.c py/modmath: Add option to work around -inf bug in a port's tgamma. 2024-08-07 14:10:46 +10:00
modmicropython.c py/gc: Allow gc_free from inside a gc_sweep finalizer. 2025-02-03 15:02:02 +11:00
modstruct.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
modsys.c py/modsys: Add sys.implementation._build entry. 2025-03-05 12:23:40 +11:00
modthread.c py: Add new cstack API for stack checking, with limit margin macro. 2024-08-14 12:55:45 +10:00
mpconfig.h extmod/modvfs: Add vfs.rom_ioctl function and its ioctl constants. 2025-03-06 12:52:35 +11:00
mperrno.h all: Rename UMODULE to MODULE in preprocessor/Makefile vars. 2023-06-08 17:54:11 +10:00
mphal.h ports: Fix sys.stdout.buffer.write() return value. 2023-12-22 10:32:46 +11:00
mpprint.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
mpprint.h py/mpprint: Fix formatting typo with mp_print_ext_t struct name. 2022-08-10 14:30:47 +10:00
mpstate.c all: Use the name MicroPython consistently in comments 2017-07-31 18:35:40 +10:00
mpstate.h py: Add optional support for recursive mutexes, use for gc mutex. 2025-02-03 15:02:02 +11:00
mpthread.h py: Add optional support for recursive mutexes, use for gc mutex. 2025-02-03 15:02:02 +11:00
mpz.c py/mpz: Skip separators when running out of digits to print. 2024-09-26 23:39:06 +10:00
mpz.h py/objint: Fix int.to_bytes() buffer size checks. 2024-06-24 14:07:00 +10:00
nativeglue.c py/dynruntime: Export mp_load_method_maybe and mp_arg_parse_all* funcs. 2024-05-24 13:50:57 +10:00
nativeglue.h py/dynruntime: Export mp_load_method_maybe and mp_arg_parse_all* funcs. 2024-05-24 13:50:57 +10:00
nlr.c py/nlr: Implement jump callbacks. 2023-06-02 21:50:57 +10:00
nlr.h py/nlrrv64: Add RISC-V RV64I NLR implementation. 2024-10-03 12:06:19 +10:00
nlraarch64.c py/nlr: Add "memory" to asm clobbers list in nlr_jump. 2024-03-25 11:52:26 +11:00
nlrmips.c py/nlr: Add "memory" to asm clobbers list in nlr_jump. 2024-03-25 11:52:26 +11:00
nlrpowerpc.c py/nlr: Add "memory" to asm clobbers list in nlr_jump. 2024-03-25 11:52:26 +11:00
nlrrv32.c py/nlrrv32: Add RISC-V RV32I NLR implementation. 2024-06-06 11:56:58 +10:00
nlrrv64.c py/nlrrv64: Add RISC-V RV64I NLR implementation. 2024-10-03 12:06:19 +10:00
nlrsetjmp.c py/nlrsetjmp: Use MP_NLR_JUMP_HEAD macro to simplify code. 2023-06-02 21:47:34 +10:00
nlrthumb.c py/nlrthumb: Make non-Thumb2 long-jump workaround opt-in. 2024-04-25 16:06:28 +10:00
nlrx64.c py/nlr: Add "memory" to asm clobbers list in nlr_jump. 2024-03-25 11:52:26 +11:00
nlrx86.c py/nlr: Add "memory" to asm clobbers list in nlr_jump. 2024-03-25 11:52:26 +11:00
nlrxtensa.c py/nlr: Add "memory" to asm clobbers list in nlr_jump. 2024-03-25 11:52:26 +11:00
obj.c py: Add new cstack API for stack checking, with limit margin macro. 2024-08-14 12:55:45 +10:00
obj.h py/objcode: Factor code object out into its own file. 2025-02-11 16:42:14 +11:00
objarray.c py/objarray: Fix buffer overflow in case of memory allocation failure. 2024-06-26 14:12:57 +10:00
objarray.h py/objarray: Add MP_DEFINE_MEMORYVIEW_OBJ convenience macro. 2025-03-06 12:52:35 +11:00
objattrtuple.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
objbool.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
objboundmeth.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
objcell.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
objclosure.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
objcode.c py/objcode: Factor code object out into its own file. 2025-02-11 16:42:14 +11:00
objcode.h py/objcode: Factor code object out into its own file. 2025-02-11 16:42:14 +11:00
objcomplex.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
objdeque.c py/objdeque: Fix buffer overflow in deque_subscr. 2024-11-04 11:21:56 +11:00
objdict.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
objenumerate.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
objexcept.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
objexcept.h py/obj: Convert make_new into a mp_obj_type_t slot. 2022-09-19 19:06:15 +10:00
objfilter.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
objfloat.c py/objfloat: Workaround non-constant NAN definition on Windows MSVC. 2024-11-28 23:11:24 +11:00
objfun.c py/objfun: Implement function.__code__ and function constructor. 2025-02-11 16:51:50 +11:00
objfun.h py/objfun: Fix C++ compatibility with casting in inline functions. 2024-04-22 10:34:01 +10:00
objgenerator.c py: Add new cstack API for stack checking, with limit margin macro. 2024-08-14 12:55:45 +10:00
objgenerator.h all: Use the name MicroPython consistently in comments 2017-07-31 18:35:40 +10:00
objgetitemiter.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
objint.c py/parsenum: Throw an exception for invalid int literals like "01". 2025-01-26 22:54:58 +11:00
objint.h py/objint: Fix int.to_bytes() buffer size checks. 2024-06-24 14:07:00 +10:00
objint_longlong.c py/objint: Try to convert big-int back to small-int after binary op. 2024-07-01 13:52:59 +10:00
objint_mpz.c py/objint: Try to convert big-int back to small-int after binary op. 2024-07-01 13:52:59 +10:00
objlist.c py: Add new cstack API for stack checking, with limit margin macro. 2024-08-14 12:55:45 +10:00
objlist.h py/obj: Convert make_new into a mp_obj_type_t slot. 2022-09-19 19:06:15 +10:00
objmap.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
objmodule.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
objmodule.h py/makemoduledefs.py: Automatically declare delegation attr functions. 2023-06-14 19:03:46 +10:00
objnamedtuple.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
objnamedtuple.h py/obj: Convert make_new into a mp_obj_type_t slot. 2022-09-19 19:06:15 +10:00
objnone.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
objobject.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
objpolyiter.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
objproperty.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
objrange.c py: Remove 5 TODOs in emitbc, objrange and repl. 2024-07-18 12:35:42 +10:00
objreversed.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
objringio.c py/objringio: Add micropython.RingIO() interface for general use. 2024-09-19 18:00:44 +10:00
objset.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
objsingleton.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
objslice.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
objstr.c py/objstr: Support tuples and start/end args in startswith and endswith. 2025-03-02 22:15:31 +11:00
objstr.h py/objstr: Add a macro to define a bytes object at compile time. 2024-03-15 13:37:31 +11:00
objstringio.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
objstringio.h py/objstringio: If created from immutable object, follow copy on write policy. 2017-06-09 17:33:01 +03:00
objstrunicode.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
objtuple.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
objtuple.h all: Reformat C and Python source code with tools/codeformat.py. 2020-02-28 10:33:03 +11:00
objtype.c py/objtype: Don't delegate lookup of descriptor methods to __getattr__. 2024-10-16 15:03:30 +11:00
objtype.h py/obj: Optimise code size and performance for make_new as a slot. 2022-09-19 19:06:16 +10:00
objzip.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
opmethods.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
pairheap.c py/pairheap: Properly unlink node on pop and delete. 2020-03-26 01:21:04 +11:00
pairheap.h py/pairheap: Add helper function to initialise a new node. 2020-03-26 01:21:04 +11:00
parse.c py/parse: Remove old esp32 compiler workaround. 2024-09-27 00:03:16 +10:00
parse.h py/parse: Factor obj extract code to mp_parse_node_extract_const_object. 2022-04-14 22:44:56 +10:00
parsenum.c py/parsenum: Reduce code footprint of mp_parse_num_float. 2025-02-28 13:35:12 +11:00
parsenum.h py/parsenum: Optimise when building with complex disabled. 2022-06-23 11:46:47 +10:00
parsenumbase.c py/parsenumbase: Favor clarity of code over manual optimisation. 2025-01-29 12:39:05 +11:00
parsenumbase.h all: Use the name MicroPython consistently in comments 2017-07-31 18:35:40 +10:00
persistentcode.c py/persistentcode: Add mp_raw_code_save_fun_to_bytes. 2025-02-11 16:54:02 +11:00
persistentcode.h py/persistentcode: Add mp_raw_code_save_fun_to_bytes. 2025-02-11 16:54:02 +11:00
profile.c py/objcode: Factor code object out into its own file. 2025-02-11 16:42:14 +11:00
profile.h py/objcode: Factor code object out into its own file. 2025-02-11 16:42:14 +11:00
py.cmake py/objcode: Factor code object out into its own file. 2025-02-11 16:42:14 +11:00
py.mk py/objcode: Factor code object out into its own file. 2025-02-11 16:42:14 +11:00
pystack.c py: Introduce and use mp_raise_type_arg helper. 2021-07-15 00:12:41 +10:00
pystack.h all: Reformat C and Python source code with tools/codeformat.py. 2020-02-28 10:33:03 +11:00
qstr.c py/qstr: Add qstr_from_strn_static() helper function. 2024-12-23 13:04:54 +11:00
qstr.h py/qstr: Add qstr_from_strn_static() helper function. 2024-12-23 13:04:54 +11:00
qstrdefs.h extmod/vfs: Add mp_vfs_mount_romfs_protected() helper. 2025-03-06 12:52:35 +11:00
reader.c py/reader: Provide mp_reader_try_read_rom() function. 2024-12-23 13:04:54 +11:00
reader.h all: Upgrade codespell to v2.4.1. 2025-02-25 16:11:33 +11:00
repl.c py: Remove 5 TODOs in emitbc, objrange and repl. 2024-07-18 12:35:42 +10:00
repl.h py/modsys: Add optional mutable attributes sys.ps1/ps2 and use them. 2022-03-10 10:58:33 +11:00
ringbuf.c py/objringio: Add micropython.RingIO() interface for general use. 2024-09-19 18:00:44 +10:00
ringbuf.h py/objringio: Add micropython.RingIO() interface for general use. 2024-09-19 18:00:44 +10:00
runtime.c py/runtime: Automatically mount ROMFS as part of mp_init. 2025-03-06 12:52:35 +11:00
runtime.h py: Add new cstack API for stack checking, with limit margin macro. 2024-08-14 12:55:45 +10:00
runtime0.h py/emitglue: Simplify mp_raw_code_t's kind and scope_flags members. 2024-02-16 12:48:02 +11:00
runtime_utils.c py: mp_call_function_*_protected(): Pass-thru return value if possible. 2017-12-05 00:38:41 +02:00
scheduler.c py/scheduler: Only run callbacks on the main thread if GIL is disabled. 2024-09-19 13:17:01 +10:00
scope.c py/makeqstrdata.py: Ensure that scope names get low qstr values. 2024-03-26 22:52:25 +11:00
scope.h py/emitglue: Include fun_data_len in mp_raw_code_t only when saving. 2024-02-16 14:17:01 +11:00
sequence.c py/sequence: Remove unused len argument from mp_seq_extract_slice. 2024-07-18 12:51:29 +10:00
showbc.c py/emitglue: Include fun_data_len in mp_raw_code_t only when saving. 2024-02-16 14:17:01 +11:00
smallint.c all: Use the name MicroPython consistently in comments 2017-07-31 18:35:40 +10:00
smallint.h py/smallint: Introduce MP_SMALL_INT_BITS macro. 2022-03-25 12:23:43 +11:00
stackctrl.c py: Add new cstack API for stack checking, with limit margin macro. 2024-08-14 12:55:45 +10:00
stackctrl.h py: Add new cstack API for stack checking, with limit margin macro. 2024-08-14 12:55:45 +10:00
stream.c py/stream: Factor stream implementations. 2024-03-15 18:11:28 +11:00
stream.h py/stream: Factor stream implementations. 2024-03-15 18:11:28 +11:00
unicode.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
unicode.h py/objstr: Add check for valid UTF-8 when making a str from bytes. 2017-09-06 16:43:09 +10:00
usermod.cmake py/usermod.cmake: If USER_C_MODULES is a folder add micropython.cmake. 2024-11-20 17:38:39 +11:00
verbose.mk esp32: Pass V=1 or BUILD_VERBOSE through to idf.py when building. 2024-12-10 11:28:38 +11:00
vm.c py/emitglue: Introduce mp_proto_fun_t as a more general mp_raw_code_t. 2024-02-16 14:17:01 +11:00
vmentrytable.h py/vmentrytable: Ignore GCC -Woverride-init. 2020-10-22 11:47:36 +02:00
vstr.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
warning.c py: Update my copyright info on some files. 2019-02-06 00:19:00 +11:00