Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enable libstdc++ v2 #146

Open
wants to merge 20 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,14 @@
path = esp-open-lwip
url = https://github.com/pfalcon/esp-open-lwip
branch = sdk-1.5.0-experimental
[submodule "esp_newlib_port"]
path = esp_newlib_port
url = https://github.com/Sermus/esp_newlib_port.git
branch = lx106
[submodule "esp_stdcpp_port"]
path = esp_stdcpp_port
url = https://github.com/Sermus/esp_stdcpp_port.git
branch = lx106
[submodule "examples/esp8266_sgi_stl_tests"]
path = examples/esp8266_sgi_stl_tests
url = https://github.com/Sermus/esp8266_sgi_stl_tests.git
123 changes: 101 additions & 22 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@ TOOLCHAIN = $(TOP)/xtensa-lx106-elf

# Vendor SDK version to install, see VENDOR_SDK_ZIP_* vars below
# for supported versions.
VENDOR_SDK = 1.5.2
VENDOR_SDK = 2.0.0

.PHONY: crosstool-NG toolchain libhal libcirom sdk
.PHONY: crosstool-NG toolchain libhal romizedlibs libnewlibport libstdc++port sdk



Expand All @@ -23,6 +23,10 @@ UNZIP = unzip -q -o
VENDOR_SDK_ZIP = $(VENDOR_SDK_ZIP_$(VENDOR_SDK))
VENDOR_SDK_DIR = $(VENDOR_SDK_DIR_$(VENDOR_SDK))

VENDOR_SDK_ZIP_2.0.0 = ESP8266_NONOS_SDK_V2.0.0_16_08_10.zip
VENDOR_SDK_DIR_2.0.0 = ESP8266_NONOS_SDK_V2.0.0_16_08_10
VENDOR_SDK_ZIP_1.5.4 = ESP8266_NONOS_SDK_V1.5.4_16_05_20.zip
VENDOR_SDK_DIR_1.5.4 = ESP8266_NONOS_SDK_V1.5.4_16_05_20
VENDOR_SDK_ZIP_1.5.3 = ESP8266_NONOS_SDK_V1.5.3_16_04_18.zip
VENDOR_SDK_DIR_1.5.3 = ESP8266_NONOS_SDK_V1.5.3_16_04_18/ESP8266_NONOS_SDK
VENDOR_SDK_ZIP_1.5.2 = ESP8266_NONOS_SDK_V1.5.2_16_01_29.zip
Expand Down Expand Up @@ -67,7 +71,7 @@ VENDOR_SDK_DIR_0.9.2 = esp_iot_sdk_v0.9.2



all: esptool libcirom standalone sdk sdk_patch $(TOOLCHAIN)/xtensa-lx106-elf/sysroot/usr/lib/libhal.a $(TOOLCHAIN)/bin/xtensa-lx106-elf-gcc lwip
all: esptool romizedlibs libnewlibport libstdc++port standalone sdk sdk_patch $(TOOLCHAIN)/xtensa-lx106-elf/sysroot/usr/lib/libhal.a $(TOOLCHAIN)/bin/xtensa-lx106-elf-gcc lwip
@echo
@echo "Xtensa toolchain is built, to use it:"
@echo
Expand All @@ -92,15 +96,32 @@ ifeq ($(STANDALONE),y)
@cp -Rf sdk/lib/* $(TOOLCHAIN)/xtensa-lx106-elf/sysroot/usr/lib/
@echo "Installing vendor SDK linker scripts into toolchain sysroot"
@sed -e 's/\r//' sdk/ld/eagle.app.v6.ld | sed -e s@../ld/@@ >$(TOOLCHAIN)/xtensa-lx106-elf/sysroot/usr/lib/eagle.app.v6.ld
@sed -e 's/\r//' sdk/ld/eagle.app.v6.irom.ld | sed -e s@../ld/@@ >$(TOOLCHAIN)/xtensa-lx106-elf/sysroot/usr/lib/eagle.app.v6.irom.ld
@sed -e 's/\r//' sdk/ld/eagle.app.v6.new.2048.ld | sed -e s@../ld/@@ >$(TOOLCHAIN)/xtensa-lx106-elf/sysroot/usr/lib/eagle.app.v6.new.2048.ld
@sed -e 's/\r//' sdk/ld/eagle.app.v6.new.2048.irom.ld | sed -e s@../ld/@@ >$(TOOLCHAIN)/xtensa-lx106-elf/sysroot/usr/lib/eagle.app.v6.new.2048.irom.ld
@sed -e 's/\r//' sdk/ld/eagle.rom.addr.v6.ld >$(TOOLCHAIN)/xtensa-lx106-elf/sysroot/usr/lib/eagle.rom.addr.v6.ld
@echo "Installing port lib headers into toolchain sysroot"
@cp -Rf esp_stdcpp_port/cpp_routines.h $(TOOLCHAIN)/xtensa-lx106-elf/sysroot/usr/include/cpp_routines.h
endif

clean: clean-sdk
make -C crosstool-NG clean MAKELEVEL=0
make -C esp_newlib_port clean MAKELEVEL=0
make -C esp_stdcpp_port clean MAKELEVEL=0
-rm -rf crosstool-NG/.build/src
-rm -f crosstool-NG/local-patches/gcc/4.8.5/1000-*
-rm -rf $(TOOLCHAIN)

clean-sdk:
rm -rf $(VENDOR_SDK_DIR)
rm -f sdk
rm -f .sdk_patch_$(VENDOR_SDK)
rm -f user_rf_cal_sector_set.o empty_user_rf_pre_init.o
make -C esp-open-lwip -f Makefile.open clean

clean-sysroot:
rm -rf $(TOOLCHAIN)/xtensa-lx106-elf/sysroot/usr/lib/*
rm -rf $(TOOLCHAIN)/xtensa-lx106-elf/sysroot/usr/include/*


esptool: toolchain
Expand All @@ -119,9 +140,6 @@ _toolchain:
cat ../crosstool-config-overrides >> .config
./ct-ng build

clean-sysroot:
rm -rf $(TOOLCHAIN)/xtensa-lx106-elf/sysroot/usr/lib/*
rm -rf $(TOOLCHAIN)/xtensa-lx106-elf/sysroot/usr/include/*

crosstool-NG: crosstool-NG/ct-ng

Expand All @@ -138,13 +156,29 @@ crosstool-NG/bootstrap:
@echo "You cloned without --recursive, fetching submodules for you."
git submodule update --init --recursive

romizedlibs: libcirom libstdc++irom libmirom

libcirom: $(TOOLCHAIN)/xtensa-lx106-elf/sysroot/lib/libcirom.a

$(TOOLCHAIN)/xtensa-lx106-elf/sysroot/lib/libcirom.a: $(TOOLCHAIN)/xtensa-lx106-elf/sysroot/lib/libc.a $(TOOLCHAIN)/bin/xtensa-lx106-elf-gcc
@echo "Creating irom version of libc..."
$(TOOLCHAIN)/bin/xtensa-lx106-elf-objcopy --rename-section .text=.irom0.text \
--rename-section .literal=.irom0.literal $(<) $(@);

libstdc++irom: $(TOOLCHAIN)/xtensa-lx106-elf/sysroot/lib/libstdc++irom.a

$(TOOLCHAIN)/xtensa-lx106-elf/sysroot/lib/libstdc++irom.a: $(TOOLCHAIN)/xtensa-lx106-elf/sysroot/lib/libstdc++.a $(TOOLCHAIN)/bin/xtensa-lx106-elf-gcc
@echo "Creating irom version of libstdc++..."
$(TOOLCHAIN)/bin/xtensa-lx106-elf-objcopy --rename-section .text=.irom0.text \
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since it has pretty much been established that this objcopy doesn't do anything useful, might it not be more efficient to just use cp instead?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I tend to agree, but there is one argument against this approach. I tried to keep backward compatibility meaning the patch mustn't break solutions which worked before. If we change libstdc++irom just to a copy we either keep inconsistency between the way how libcirom is built and the way how libstdc++irom is built or we may break those solutions which used libcirom assuming that the functions inside are packed into .irom0.text.
So i'd rather keep it the way it's done now to keep backward compatibility and unified way of building *irom libs.

--rename-section .literal=.irom0.literal $(<) $(@);

libmirom: $(TOOLCHAIN)/xtensa-lx106-elf/sysroot/lib/libmirom.a

$(TOOLCHAIN)/xtensa-lx106-elf/sysroot/lib/libmirom.a: $(TOOLCHAIN)/xtensa-lx106-elf/sysroot/lib/libm.a $(TOOLCHAIN)/bin/xtensa-lx106-elf-gcc
@echo "Creating irom version of libm..."
$(TOOLCHAIN)/bin/xtensa-lx106-elf-objcopy --rename-section .text=.irom0.text \
--rename-section .literal=.irom0.literal $(<) $(@);

libhal: $(TOOLCHAIN)/xtensa-lx106-elf/sysroot/usr/lib/libhal.a

$(TOOLCHAIN)/xtensa-lx106-elf/sysroot/usr/lib/libhal.a: $(TOOLCHAIN)/bin/xtensa-lx106-elf-gcc
Expand All @@ -156,7 +190,23 @@ _libhal:
PATH=$(TOOLCHAIN)/bin:$(PATH) make
PATH=$(TOOLCHAIN)/bin:$(PATH) make install

libnewlibport: $(TOOLCHAIN)/xtensa-lx106-elf/sysroot/usr/lib/libnewlibport.a

$(TOOLCHAIN)/xtensa-lx106-elf/sysroot/usr/lib/libnewlibport.a: $(TOOLCHAIN)/bin/xtensa-lx106-elf-gcc sdk sdk_patch toolchain standalone
make -C esp_newlib_port -f ../Makefile _libnewlibport
cp -f esp_newlib_port/libnewlibport.a $(TOOLCHAIN)/xtensa-lx106-elf/sysroot/usr/lib/libnewlibport.a

_libnewlibport:
PATH=$(TOOLCHAIN)/bin:$(PATH) make

libstdc++port: $(TOOLCHAIN)/xtensa-lx106-elf/sysroot/usr/lib/libstdc++port.a

$(TOOLCHAIN)/xtensa-lx106-elf/sysroot/usr/lib/libstdc++port.a: $(TOOLCHAIN)/bin/xtensa-lx106-elf-gcc sdk sdk_patch toolchain standalone
make -C esp_stdcpp_port -f ../Makefile _libstdc++port
cp -f esp_stdcpp_port/libstdc++port.a $(TOOLCHAIN)/xtensa-lx106-elf/sysroot/usr/lib/libstdc++port.a

_libstdc++port:
PATH=$(TOOLCHAIN)/bin:$(PATH) make

sdk: $(VENDOR_SDK_DIR)/.dir
ln -snf $(VENDOR_SDK_DIR) sdk
Expand All @@ -166,8 +216,35 @@ $(VENDOR_SDK_DIR)/.dir: $(VENDOR_SDK_ZIP)
-mv License $(VENDOR_SDK_DIR)
touch $@

$(VENDOR_SDK_DIR_2.0.0)/.dir: $(VENDOR_SDK_ZIP_2.0.0)
$(UNZIP) $^
mv ESP8266_NONOS_SDK $(VENDOR_SDK_DIR_2.0.0)
-mv License $(VENDOR_SDK_DIR)
touch $@

$(VENDOR_SDK_DIR_1.5.4)/.dir: $(VENDOR_SDK_ZIP_1.5.4)
$(UNZIP) $^
mv ESP8266_NONOS_SDK $(VENDOR_SDK_DIR_1.5.4)
-mv License $(VENDOR_SDK_DIR)
touch $@

sdk_patch: $(VENDOR_SDK_DIR)/.dir .sdk_patch_$(VENDOR_SDK)

.sdk_patch_2.0.0: ESP8266_NONOS_SDK_V2.0.0_patch_16_08_09.zip user_rf_cal_sector_set.o
echo -e "#undef ESP_SDK_VERSION\n#define ESP_SDK_VERSION 020000" >>$(VENDOR_SDK_DIR)/include/esp_sdk_ver.h
$(UNZIP) ESP8266_NONOS_SDK_V2.0.0_patch_16_08_09.zip
mv libmain.a libnet80211.a libpp.a $(VENDOR_SDK_DIR_2.0.0)/lib/
$(PATCH) -d $(VENDOR_SDK_DIR) -p1 < c_types-c99_sdk_2.patch
cd $(VENDOR_SDK_DIR)/lib; mkdir -p tmp; cd tmp; $(TOOLCHAIN)/bin/xtensa-lx106-elf-ar x ../libcrypto.a; cd ..; $(TOOLCHAIN)/bin/xtensa-lx106-elf-ar rs libwpa.a tmp/*.o
$(TOOLCHAIN)/bin/xtensa-lx106-elf-ar r $(VENDOR_SDK_DIR)/lib/libmain.a user_rf_cal_sector_set.o
@touch $@

.sdk_patch_1.5.4:
echo -e "#undef ESP_SDK_VERSION\n#define ESP_SDK_VERSION 010504" >>$(VENDOR_SDK_DIR)/include/esp_sdk_ver.h
$(PATCH) -d $(VENDOR_SDK_DIR) -p1 < c_types-c99.patch
cd $(VENDOR_SDK_DIR)/lib; mkdir -p tmp; cd tmp; $(TOOLCHAIN)/bin/xtensa-lx106-elf-ar x ../libcrypto.a; cd ..; $(TOOLCHAIN)/bin/xtensa-lx106-elf-ar rs libwpa.a tmp/*.o
@touch $@

.sdk_patch_1.5.3:
echo -e "#undef ESP_SDK_VERSION\n#define ESP_SDK_VERSION 010503" >>$(VENDOR_SDK_DIR)/include/esp_sdk_ver.h
$(PATCH) -d $(VENDOR_SDK_DIR) -p1 < c_types-c99.patch
Expand All @@ -179,6 +256,9 @@ sdk_patch: $(VENDOR_SDK_DIR)/.dir .sdk_patch_$(VENDOR_SDK)
$(UNZIP) Patch01_for_ESP8266_NONOS_SDK_V1.5.2.zip
mv libssl.a libnet80211.a libmain.a $(VENDOR_SDK_DIR_1.5.2)/lib/
$(PATCH) -d $(VENDOR_SDK_DIR) -p1 < c_types-c99.patch
cp -f $(VENDOR_SDK_DIR)/ld/eagle.app.v6.ld $(VENDOR_SDK_DIR)/ld/eagle.app.v6.irom.ld
cp -f $(VENDOR_SDK_DIR)/ld/eagle.app.v6.new.2048.ld $(VENDOR_SDK_DIR)/ld/eagle.app.v6.new.2048.irom.ld
$(PATCH) -d $(VENDOR_SDK_DIR) -p1 < ld-script-irom.patch
cd $(VENDOR_SDK_DIR)/lib; mkdir -p tmp; cd tmp; $(TOOLCHAIN)/bin/xtensa-lx106-elf-ar x ../libcrypto.a; cd ..; $(TOOLCHAIN)/bin/xtensa-lx106-elf-ar rs libwpa.a tmp/*.o
@touch $@

Expand Down Expand Up @@ -289,8 +369,11 @@ sdk_patch: $(VENDOR_SDK_DIR)/.dir .sdk_patch_$(VENDOR_SDK)
cp FRM_ERR_PATCH/*.a $(VENDOR_SDK_DIR)/lib/
@touch $@

empty_user_rf_pre_init.o: empty_user_rf_pre_init.c $(TOOLCHAIN)/bin/xtensa-lx106-elf-gcc
$(TOOLCHAIN)/bin/xtensa-lx106-elf-gcc -O2 -c $<
empty_user_rf_pre_init.o: empty_user_rf_pre_init.c $(TOOLCHAIN)/bin/xtensa-lx106-elf-gcc $(VENDOR_SDK_DIR)/.dir
$(TOOLCHAIN)/bin/xtensa-lx106-elf-gcc -O2 -I$(VENDOR_SDK_DIR)/include -c $<

user_rf_cal_sector_set.o: user_rf_cal_sector_set.c $(TOOLCHAIN)/bin/xtensa-lx106-elf-gcc $(VENDOR_SDK_DIR)/.dir
$(TOOLCHAIN)/bin/xtensa-lx106-elf-gcc -O2 -I$(VENDOR_SDK_DIR)/include -c $<

lwip: toolchain sdk_patch
ifeq ($(STANDALONE),y)
Expand All @@ -303,6 +386,14 @@ ifeq ($(STANDALONE),y)
$(TOOLCHAIN)/xtensa-lx106-elf/sysroot/usr/include/
endif

# The only change wrt to ESP8266_NONOS_SDK_V2.0.0_16_07_19.zip is licensing blurb in source/
# header files. Libs are the same (and patch is required just the same).
ESP8266_NONOS_SDK_V2.0.0_16_08_10.zip:
wget --content-disposition "http://bbs.espressif.com/download/file.php?id=1690"
ESP8266_NONOS_SDK_V2.0.0_16_07_19.zip:
wget --content-disposition "http://bbs.espressif.com/download/file.php?id=1613"
ESP8266_NONOS_SDK_V1.5.4_16_05_20.zip:
wget --content-disposition "http://bbs.espressif.com/download/file.php?id=1469"
ESP8266_NONOS_SDK_V1.5.3_16_04_18.zip:
wget --content-disposition "http://bbs.espressif.com/download/file.php?id=1361"
ESP8266_NONOS_SDK_V1.5.2_16_01_29.zip:
Expand Down Expand Up @@ -370,17 +461,5 @@ lib_mem_optimize_150714.zip:
wget --content-disposition "http://bbs.espressif.com/download/file.php?id=594"
Patch01_for_ESP8266_NONOS_SDK_V1.5.2.zip:
wget --content-disposition "http://bbs.espressif.com/download/file.php?id=1168"

clean-sdk:
rm -rf $(VENDOR_SDK_DIR)
rm -f sdk
rm -f .sdk_patch_$(VENDOR_SDK)
make -C esp-open-lwip -f Makefile.open clean








ESP8266_NONOS_SDK_V2.0.0_patch_16_08_09.zip:
wget --content-disposition "http://bbs.espressif.com/download/file.php?id=1654"
13 changes: 9 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,9 @@ Please make sure that the machine you use to build the toolchain has at least

Ubuntu 14.04:
```
$ sudo apt-get install make unrar autoconf automake libtool gcc g++ gperf \
flex bison texinfo gawk ncurses-dev libexpat-dev python python-serial sed \
git unzip bash help2man
$ sudo apt-get install make unrar-free autoconf automake libtool gcc g++ gperf \
flex bison texinfo gawk ncurses-dev libexpat-dev python-dev python python-serial \
sed git unzip bash help2man wget bzip2
```

Later Debian/Ubuntu versions may require:
Expand All @@ -58,7 +58,7 @@ $ sudo apt-get install libtool-bin
## MacOS:
```bash
$ brew tap homebrew/dupes
$ brew install binutils coreutils automake wget gawk libtool gperf gnu-sed --with-default-names grep
$ brew install binutils coreutils automake wget gawk libtool help2man gperf gnu-sed --with-default-names grep
$ export PATH="/usr/local/opt/gnu-sed/libexec/gnubin:$PATH"
```

Expand Down Expand Up @@ -139,6 +139,11 @@ $ xtensa-lx106-elf-gcc -I$(THISDIR)/sdk/include -L$(THISDIR)/sdk/lib

The extra -I and -L flags are not needed when using the standalone SDK.

Subdirectory `examples/` contains some example application(s) which
can be built with esp-open-sdk. If you are interested in real-world,
full-fledged, advanced example of a project built using esp-open-sdk,
check https://github.com/micropython/micropython/tree/master/esp8266 .

Pulling updates
===============
The project is updated from time to time, to get updates and prepare to
Expand Down
45 changes: 45 additions & 0 deletions c_types-c99_sdk_2.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
This patch fixes vendor SDK header "c_types.h" for C99 compatibility.

--- ESP8266_NONOS_SDK_V2.0.0_16_07_19/include/c_types.h.orig 2016-07-18 07:16:07.000000000 -0700
+++ ESP8266_NONOS_SDK_V2.0.0_16_07_19/include/c_types.h 2016-07-26 21:45:18.904657700 -0700
@@ -6,17 +6,19 @@
#ifndef _C_TYPES_H_
#define _C_TYPES_H_

-typedef unsigned char uint8_t;
+#include <stdint.h>
+#include <stdbool.h>
+//typedef unsigned char uint8_t;
typedef signed char sint8_t;
-typedef signed char int8_t;
-typedef unsigned short uint16_t;
+//typedef signed char int8_t;
+//typedef unsigned short uint16_t;
typedef signed short sint16_t;
-typedef signed short int16_t;
-typedef unsigned int uint32_t;
+//typedef signed short int16_t;
+//typedef unsigned int uint32_t;
typedef signed long sint32_t;
-typedef signed int int32_t;
+//typedef signed int int32_t;
typedef signed long long sint64_t;
-typedef unsigned long long uint64_t;
+//typedef unsigned long long uint64_t;
typedef unsigned long long u_int64_t;
typedef float real32_t;
typedef double real64_t;
@@ -82,10 +84,10 @@
#define STORE_ATTR __attribute__((aligned(4)))

#ifndef __cplusplus
-typedef unsigned char bool;
+//typedef unsigned char bool;
#define BOOL bool
-#define true (1)
-#define false (0)
+//#define true (1)
+//#define false (0)
#define TRUE true
#define FALSE false

2 changes: 1 addition & 1 deletion crosstool-NG
Submodule crosstool-NG updated 43 files
+1 −0 Makefile.in
+16 −0 configure.ac
+2 −1 kconfig/Makefile
+1 −1 kconfig/zconf.gperf
+9 −9 local-patches/gcc/4.8.5/0001-WIP-xtensa-fix-lib-code-for-call0-ABI.patch
+7 −7 local-patches/gcc/4.8.5/0002-WIP-xtensa-implement-call0-ABI.patch
+10 −10 local-patches/gcc/4.8.5/0003-WIP-xtensa-implement-callee-saved-register-saving.patch
+3 −3 local-patches/gcc/4.8.5/0004-xtensa-always-emit-.literal_position-for-call0-ABI.patch
+6 −6 local-patches/gcc/4.8.5/0005-xtensa-use-subsi3-instead-of-addsi3-in-call0-prologu.patch
+6 −6 local-patches/gcc/4.8.5/0006-xtensa-don-t-mess-with-argument-in-a7-in-CALL0-ABI.patch
+3 −3 local-patches/gcc/4.8.5/0007-xtensa-use-correct-guards-on-CRT_CALL_STATIC_FUNCTIO.patch
+8 −8 local-patches/gcc/4.8.5/0008-xtensa-move-callee-saved-register-check-to-xtensa_ca.patch
+3 −3 local-patches/gcc/4.8.5/0009-WIP-xtensa-fix-_mcount-call-for-CALL0-ABI.patch
+8 −8 local-patches/gcc/4.8.5/0010-xtensa-replace-if-ifdef-with-if-where-possible.patch
+7 −7 local-patches/gcc/4.8.5/0011-xtensa-use-default-nonlocal_goto-in-CALL0-ABI.patch
+3 −3 local-patches/gcc/4.8.5/0012-xtensa-allow-direct-loading-of-sp-in-CALL0-ABI.patch
+7 −7 local-patches/gcc/4.8.5/0013-xtensa-fix-trampolines-generation-for-CALL0-ABI.patch
+3 −3 local-patches/gcc/4.8.5/0014-xtensa-drop-special-cases-for-SP-in-machine-definiti.patch
+3 −3 local-patches/gcc/4.8.5/0015-xtensa-fix-addsi3-pattern-for-windowed-ABI.patch
+3 −3 local-patches/gcc/4.8.5/0016-xtensa-don-t-change-entry-pattern-in-machine-descrip.patch
+5 −5 local-patches/gcc/4.8.5/0017-xtensa-don-t-modify-call-patterns-use-is_leaf.patch
+6 −6 local-patches/gcc/4.8.5/0018-xtensa-adjust-register-class-definitions-at-runtime.patch
+7 −7 local-patches/gcc/4.8.5/0019-Turn-RETURN_ADDR_IN_PREVIOUS_FRAME-into-C-expression.patch
+6 −6 local-patches/gcc/4.8.5/0020-xtensa-fix-__builtin_return_address-for-call0-ABI.patch
+7 −7 local-patches/gcc/4.8.5/0021-xtensa-don-t-emit-CFA-notes-in-epilogue.patch
+10 −10 local-patches/gcc/4.8.5/0022-xtensa-add-notes-to-registers-saved-in-prologue.patch
+7 −7 local-patches/gcc/4.8.5/0023-xtensa-implement-exception-return-for-call0-ABI.patch
+5 −5 local-patches/gcc/4.8.5/0024-xtensa-use-default-DWARF-unwinder-for-call0-ABI.patch
+3 −3 local-patches/gcc/4.8.5/0025-xtensa-align-data-naturally-when-optimizing-for-size.patch
+36 −0 local-patches/gcc/4.8.5/0026-xtensa-report-stack-usage.patch
+93 −0 local-patches/gcc/4.8.5/0027-xtensa-drop-unimplemented-floating-point-operations.patch
+112 −0 local-patches/gcc/4.8.5/0028-xtensa-use-pre-and-postincrement-FP-load-store-when-.patch
+426 −0 local-patches/gcc/4.8.5/0029-xtensa-add-HW-FPU-sequences-for-DIV-SQRT-RECIP-RSQRT.patch
+3 −3 local-patches/gcc/5.2.0/0001-WIP-don-t-bring-extra-u-int_least32_t-into-std.patch
+36 −0 local-patches/gcc/5.2.0/0002-xtensa-report-stack-usage.patch
+426 −0 local-patches/gcc/5.2.0/0003-xtensa-add-HW-FPU-sequences-for-DIV-SQRT-RECIP-RSQRT.patch
+ overlays/xtensa_esp32.tar
+151 −0 patches/gcc/4.8.5/132-build_gcc-5_with_gcc-6.patch
+151 −0 patches/gcc/5.2.0/130-build_gcc-5_with_gcc-6.patch
+55 −0 patches/gcc/5.2.0/874-xtensa-don-t-use-unwind-dw2-fde-dip-with-elf-targets.patch
+151 −0 patches/gcc/5.3.0/130-build_gcc-5_with_gcc-6.patch
+19 −0 samples/xtensa-esp32-elf/crosstool.config
+3 −0 samples/xtensa-esp32-elf/reported.by
1 change: 1 addition & 0 deletions esp_newlib_port
Submodule esp_newlib_port added at 20d62a
1 change: 1 addition & 0 deletions esp_stdcpp_port
Submodule esp_stdcpp_port added at 77e48e
2 changes: 1 addition & 1 deletion examples/blinky/Makefile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
CC = xtensa-lx106-elf-gcc
CFLAGS = -I. -mlongcalls
LDLIBS = -nostdlib -Wl,--start-group -lmain -lnet80211 -lwpa -llwip -lpp -lphy -Wl,--end-group -lgcc
LDLIBS = -nostdlib -Wl,--start-group -lmain -lnet80211 -lwpa -llwip -lpp -lphy -lc -Wl,--end-group -lgcc
LDFLAGS = -Teagle.app.v6.ld

blinky-0x00000.bin: blinky
Expand Down
1 change: 1 addition & 0 deletions examples/esp8266_sgi_stl_tests
Submodule esp8266_sgi_stl_tests added at f5464c
Loading