diff --git a/esp8266/Makefile b/esp8266/Makefile
index 306935210e535491d6c44f38155a56db6fd0be5d..3bb63dd87302f8dbbcd42990671118aa73a133cb 100644
--- a/esp8266/Makefile
+++ b/esp8266/Makefile
@@ -48,7 +48,7 @@ CFLAGS += -g
 COPT = -O0
 else
 CFLAGS += -fdata-sections -ffunction-sections
-COPT += -Os -DNDEBUG
+COPT += -Os -mforce-l32 -DNDEBUG
 LDFLAGS += --gc-sections
 endif
 
diff --git a/esp8266/esp8266.ld b/esp8266/esp8266.ld
index 05d788b8b291f627280585a8348a2885f220cb47..fae56c957540ea0157cd6271774ca820386a59b6 100644
--- a/esp8266/esp8266.ld
+++ b/esp8266/esp8266.ld
@@ -155,6 +155,9 @@ SECTIONS
         */frozen.o(.rodata.mp_frozen_sizes) /* frozen modules */
         */frozen.o(.rodata.mp_frozen_content) /* frozen modules */
 
+        /* for -mforce-l32 */
+        build/*.o(.rodata*)
+
         _irom0_text_end = ABSOLUTE(.);
     } >irom0_0_seg :irom0_0_phdr