From ef00048fed079c922a4e2bc9ce854cc3824e2bfc Mon Sep 17 00:00:00 2001
From: Damien George <damien.p.george@gmail.com>
Date: Wed, 3 Jul 2019 12:55:57 +1000
Subject: [PATCH] extmod/modwebrepl: Add config option to put filebuf[512] on
 stack/bss.

Since the esp8266 has a small stack this buffer is kept in the BSS.
---
 extmod/modwebrepl.c          | 6 +++++-
 ports/esp8266/mpconfigport.h | 1 +
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/extmod/modwebrepl.c b/extmod/modwebrepl.c
index 3c0cfe72f..c92d1dc1b 100644
--- a/extmod/modwebrepl.c
+++ b/extmod/modwebrepl.c
@@ -245,7 +245,11 @@ STATIC mp_uint_t _webrepl_read(mp_obj_t self_in, void *buf, mp_uint_t size, int
     }
 
     if (self->data_to_recv != 0) {
-        static byte filebuf[512];
+        // Ports that don't have much available stack can make this filebuf static
+        #if MICROPY_PY_WEBREPL_STATIC_FILEBUF
+        static
+        #endif
+        byte filebuf[512];
         filebuf[0] = *(byte*)buf;
         mp_uint_t buf_sz = 1;
         if (--self->data_to_recv != 0) {
diff --git a/ports/esp8266/mpconfigport.h b/ports/esp8266/mpconfigport.h
index 03be59b06..3bf822028 100644
--- a/ports/esp8266/mpconfigport.h
+++ b/ports/esp8266/mpconfigport.h
@@ -90,6 +90,7 @@
 #define MICROPY_PY_UWEBSOCKET       (1)
 #define MICROPY_PY_WEBREPL          (1)
 #define MICROPY_PY_WEBREPL_DELAY    (20)
+#define MICROPY_PY_WEBREPL_STATIC_FILEBUF (1)
 #define MICROPY_PY_FRAMEBUF         (1)
 #define MICROPY_PY_MICROPYTHON_MEM_INFO (1)
 #define MICROPY_PY_OS_DUPTERM       (2)
-- 
GitLab