micropython/ports/unix
stijn 34a7d7ebeb unix/gcollect: Make sure stack/regs get captured properly for GC.
When building with link time optimization enabled it is possible both
gc_collect() and gc_collect_regs_and_stack() get inlined into gc_alloc()
which can result in the regs variable being pushed on the stack earlier
than some of the registers. Depending on the calling convention, those
registers might however contain pointers to blocks which have just been
allocated in the caller of gc_alloc(). Then those pointers end up higher on
the stack than regs, aren't marked by gc_collect_root() and hence get
sweeped, even though they're still in use.

As reported in #4652 this happened for in 32-bit msvc release builds:
mp_lexer_new() does two consecutive allocations and the latter triggered a
gc_collect() which would sweep the memory of the first allocation again.
2019-05-01 15:06:21 +10:00
..
coverage-frzmpy ports: Make new ports/ sub-directory and move all ports there. 2017-09-06 13:40:51 +10:00
coverage-frzstr ports: Make new ports/ sub-directory and move all ports there. 2017-09-06 13:40:51 +10:00
modules all: Update Makefiles and others to build with new ports/ dir layout. 2017-09-06 14:09:13 +10:00
.gitignore ports: Make new ports/ sub-directory and move all ports there. 2017-09-06 13:40:51 +10:00
Makefile unix/Makefile: Update coverage tests to match those in Travis. 2019-03-08 16:51:09 +11:00
alloc.c ports: Make new ports/ sub-directory and move all ports there. 2017-09-06 13:40:51 +10:00
coverage.c ports: Convert legacy uppercase macro names to lowercase. 2019-02-12 14:54:51 +11:00
fatfs_port.c ports: Make new ports/ sub-directory and move all ports there. 2017-09-06 13:40:51 +10:00
fdfile.h ports: Make new ports/ sub-directory and move all ports there. 2017-09-06 13:40:51 +10:00
file.c ports: Convert legacy uppercase macro names to lowercase. 2019-02-12 14:54:51 +11:00
gccollect.c unix/gcollect: Make sure stack/regs get captured properly for GC. 2019-05-01 15:06:21 +10:00
input.c ports: Make new ports/ sub-directory and move all ports there. 2017-09-06 13:40:51 +10:00
input.h ports: Make new ports/ sub-directory and move all ports there. 2017-09-06 13:40:51 +10:00
main.c unix/mpthreadport: Add thread deinit code to stop threads on exit. 2019-01-27 12:38:23 +11:00
modffi.c unix/modffi: Eliminate unused-argument warning when debugging disabled. 2019-02-25 14:53:17 +11:00
modjni.c ports: Convert legacy uppercase macro names to lowercase. 2019-02-12 14:54:51 +11:00
modmachine.c unix/modmachine: Handle repeated /dev/mem open errors. 2019-02-12 15:29:11 +11:00
modos.c unix/modos: Rename unlink to remove to be consistent with other ports. 2018-11-26 23:27:04 +11:00
modtermios.c ports: Convert legacy uppercase macro names to lowercase. 2019-02-12 14:54:51 +11:00
modtime.c ports: Make new ports/ sub-directory and move all ports there. 2017-09-06 13:40:51 +10:00
moduos_vfs.c unix/moduos_vfs: Add missing uos functions from traditional uos module. 2018-06-06 14:28:23 +10:00
moduselect.c ports: Convert legacy uppercase macro names to lowercase. 2019-02-12 14:54:51 +11:00
modusocket.c ports: Convert legacy uppercase macro names to lowercase. 2019-02-12 14:54:51 +11:00
mpconfigport.h ports: Update to work with new oofatfs version. 2019-03-05 15:56:39 +11:00
mpconfigport.mk ports: Make new ports/ sub-directory and move all ports there. 2017-09-06 13:40:51 +10:00
mpconfigport_coverage.h py/warning: Support categories for warnings. 2019-01-31 16:48:30 +11:00
mpconfigport_fast.h ports: Make new ports/ sub-directory and move all ports there. 2017-09-06 13:40:51 +10:00
mpconfigport_freedos.h ports: Make new ports/ sub-directory and move all ports there. 2017-09-06 13:40:51 +10:00
mpconfigport_minimal.h py/objstr: Make str.count() method configurable. 2018-10-22 22:49:05 +11:00
mpconfigport_nanbox.h ports: Make new ports/ sub-directory and move all ports there. 2017-09-06 13:40:51 +10:00
mphalport.h ports: Make new ports/ sub-directory and move all ports there. 2017-09-06 13:40:51 +10:00
mpthreadport.c unix/mpthreadport: Use named semaphores on Mac OS X. 2019-03-27 10:50:01 +11:00
mpthreadport.h unix/mpthreadport: Add thread deinit code to stop threads on exit. 2019-01-27 12:38:23 +11:00
qstrdefsport.h ports: Make new ports/ sub-directory and move all ports there. 2017-09-06 13:40:51 +10:00
unix_mphal.c extmod/uos_dupterm: Update uos.dupterm() and helper funcs to have index. 2017-10-13 20:01:57 +11:00