We have created an eclipse project with ESP8266_SDK and linked FreeRTOS from it and it compiled and linked successfully.
To use the MESH services, we have changed the SDK to ESP8266_MESH_SDK.
Since there is no libfreertos.a in ESP8266_MESH_SDK, we have copied it from ESP8266_SDK and tried to compile.
But we got the following linker errors.
+++++++++++++++++++++++++++++++++++++++++++++
driver/.output/eagle/release/lib/libdriver.a(i2s_freertos.o):(.irom0.text+0x9c): undefined reference to `_xt_isr_unmask'
driver/.output/eagle/release/lib/libdriver.a(i2s_freertos.o): In function `i2sInit':
C:\Users\sreerama\workspace\BitsFinalProject\app\driver/i2s_freertos.c:148: undefined reference to `_xt_isr_unmask'
c:/espressif/xtensa-lx106-elf/bin/../lib/gcc/xtensa-lx106-elf/5.1.0/../../../../xtensa-lx106-elf/lib\libc.a(lib_a-mallocr.o):(.literal+0x20): undefined reference to `_sbrk_r'
c:/espressif/xtensa-lx106-elf/bin/../lib/gcc/xtensa-lx106-elf/5.1.0/../../../../xtensa-lx106-elf/lib\libc.a(lib_a-mallocr.o): In function `malloc_extend_top':
d:\Neo\esp8266-devkit\Espressif\dl\esp-newlib\build\xtensa-lx106-elf\newlib\libc\stdlib/../../../../../newlib/libc/stdlib/mallocr.c:2165: undefined reference to `_sbrk_r'
d:\Neo\esp8266-devkit\Espressif\dl\esp-newlib\build\xtensa-lx106-elf\newlib\libc\stdlib/../../../../../newlib/libc/stdlib/mallocr.c:2202: undefined reference to `_sbrk_r'
c:/espressif/xtensa-lx106-elf/bin/../lib/gcc/xtensa-lx106-elf/5.1.0/../../../../xtensa-lx106-elf/lib\libc.a(lib_a-freer.o): In function `_malloc_trim_r':
d:\Neo\esp8266-devkit\Espressif\dl\esp-newlib\build\xtensa-lx106-elf\newlib\libc\stdlib/../../../../../newlib/libc/stdlib/mallocr.c:3325: undefined reference to `_sbrk_r'
d:\Neo\esp8266-devkit\Espressif\dl\esp-newlib\build\xtensa-lx106-elf\newlib\libc\stdlib/../../../../../newlib/libc/stdlib/mallocr.c:3332: undefined reference to `_sbrk_r'
c:/espressif/xtensa-lx106-elf/bin/../lib/gcc/xtensa-lx106-elf/5.1.0/../../../../xtensa-lx106-elf/lib\libc.a(lib_a-freer.o):d:\Neo\esp8266-devkit\Espressif\dl\esp-newlib\build\xtensa-lx106-elf\newlib\libc\stdlib/../../../../../newlib/libc/stdlib/mallocr.c:3340: more undefined references to `_sbrk_r' follow
c:/espressif/xtensa-lx106-elf/bin/../lib/gcc/xtensa-lx106-elf/5.1.0/../../../../xtensa-lx106-elf/lib\libc.a(lib_a-makebuf.o):(.literal+0x8): undefined reference to `_fstat_r'
c:/espressif/xtensa-lx106-elf/bin/../lib/gcc/xtensa-lx106-elf/5.1.0/../../../../xtensa-lx106-elf/lib\libc.a(lib_a-makebuf.o): In function `__smakebuf_r':
d:\Neo\esp8266-devkit\Espressif\dl\esp-newlib\build\xtensa-lx106-elf\newlib\libc\stdio/../../../../../newlib/libc/stdio/makebuf.c:59: undefined reference to `_fstat_r'
c:/espressif/xtensa-lx106-elf/bin/../lib/gcc/xtensa-lx106-elf/5.1.0/../../../../xtensa-lx106-elf/lib\libc.a(lib_a-stdio.o):(.literal+0x0): undefined reference to `_read_r'
c:/espressif/xtensa-lx106-elf/bin/../lib/gcc/xtensa-lx106-elf/5.1.0/../../../../xtensa-lx106-elf/lib\libc.a(lib_a-stdio.o):(.literal+0x4): undefined reference to `_lseek_r'
c:/espressif/xtensa-lx106-elf/bin/../lib/gcc/xtensa-lx106-elf/5.1.0/../../../../xtensa-lx106-elf/lib\libc.a(lib_a-stdio.o):(.literal+0x8): undefined reference to `_write_r'
c:/espressif/xtensa-lx106-elf/bin/../lib/gcc/xtensa-lx106-elf/5.1.0/../../../../xtensa-lx106-elf/lib\libc.a(lib_a-stdio.o):(.literal+0xc): undefined reference to `_close_r'
c:/espressif/xtensa-lx106-elf/bin/../lib/gcc/xtensa-lx106-elf/5.1.0/../../../../xtensa-lx106-elf/lib\libc.a(lib_a-stdio.o): In function `__sread':
d:\Neo\esp8266-devkit\Espressif\dl\esp-newlib\build\xtensa-lx106-elf\newlib\libc\stdio/../../../../../newlib/libc/stdio/stdio.c:48: undefined reference to `_read_r'
c:/espressif/xtensa-lx106-elf/bin/../lib/gcc/xtensa-lx106-elf/5.1.0/../../../../xtensa-lx106-elf/lib\libc.a(lib_a-stdio.o): In function `__swrite':
d:\Neo\esp8266-devkit\Espressif\dl\esp-newlib\build\xtensa-lx106-elf\newlib\libc\stdio/../../../../../newlib/libc/stdio/stdio.c:89: undefined reference to `_lseek_r'
d:\Neo\esp8266-devkit\Espressif\dl\esp-newlib\build\xtensa-lx106-elf\newlib\libc\stdio/../../../../../newlib/libc/stdio/stdio.c:97: undefined reference to `_write_r'
c:/espressif/xtensa-lx106-elf/bin/../lib/gcc/xtensa-lx106-elf/5.1.0/../../../../xtensa-lx106-elf/lib\libc.a(lib_a-stdio.o): In function `__sseek':
d:\Neo\esp8266-devkit\Espressif\dl\esp-newlib\build\xtensa-lx106-elf\newlib\libc\stdio/../../../../../newlib/libc/stdio/stdio.c:117: undefined reference to `_lseek_r'
c:/espressif/xtensa-lx106-elf/bin/../lib/gcc/xtensa-lx106-elf/5.1.0/../../../../xtensa-lx106-elf/lib\libc.a(lib_a-stdio.o): In function `__sclose':
d:\Neo\esp8266-devkit\Espressif\dl\esp-newlib\build\xtensa-lx106-elf\newlib\libc\stdio/../../../../../newlib/libc/stdio/stdio.c:135: undefined reference to `_close_r'
c:/espressif/xtensa-lx106-elf/bin/../lib/gcc/xtensa-lx106-elf/5.1.0/../../../../xtensa-lx106-elf/lib\libc.a(isatty.o): In function `_isatty_r':
d:\Neo\esp8266-devkit\Espressif\dl\esp-newlib\build\xtensa-lx106-elf\newlib\libc\sys\xtensa/../../../../../../newlib/libc/sys/xtensa/isatty.c:13: undefined reference to `_fstat_r'
../Makefile:335: recipe for target '.output/eagle/release/image/eagle.app.v6.out' failed
c:/Espressif/ESP8266_MESH_SDK/lib\libfreertos.a(port.o):(.text+0x0): undefined reference to `NMIIrqIsOn'
mingw32-make[1]: Leaving directory 'C:/Users/sreerama/workspace/BitsFinalProject/app'
c:/Espressif/ESP8266_MESH_SDK/lib\libfreertos.a(port.o): In function `PendSV':
(.text+0x5c): undefined reference to `MacIsrSigPostDefHdl'
C:/Users/sreerama/workspace/BitsFinalProject/Makefile:283: recipe for target '.subdirs' failed
c:/Espressif/ESP8266_MESH_SDK/lib\libfreertos.a(port.o): In function `PendSV':
(.text+0x60): undefined reference to `_xt_timer_int1'
c:/Espressif/ESP8266_MESH_SDK/lib\libfreertos.a(port.o): In function `PendSV':
(.text+0x77): undefined reference to `MacIsrSigPostDefHdl'
c:/Espressif/ESP8266_MESH_SDK/lib\libfreertos.a(port.o): In function `SoftIsrHdl':
(.text+0x92): undefined reference to `_xt_timer_int1'
c:/Espressif/ESP8266_MESH_SDK/lib\libfreertos.a(port.o): In function `PortEnableInt_NoNest':
(.text+0x174): undefined reference to `_xt_clear_ints'
c:/Espressif/ESP8266_MESH_SDK/lib\libfreertos.a(port.o): In function `_xt_isr_handler':
(.text+0x1ca): undefined reference to `_xt_clear_ints'
c:/Espressif/ESP8266_MESH_SDK/lib\libfreertos.a(port.o):(.irom0.text+0x0): undefined reference to `_xt_user_exit'
c:/Espressif/ESP8266_MESH_SDK/lib\libfreertos.a(port.o): In function `pxPortInitialiseStack':
(.irom0.text+0x3c): undefined reference to `_xt_tick_timer_init'
c:/Espressif/ESP8266_MESH_SDK/lib\libfreertos.a(port.o): In function `pxPortInitialiseStack':
(.irom0.text+0x44): undefined reference to `_xt_int_exit'
c:/Espressif/ESP8266_MESH_SDK/lib\libfreertos.a(port.o): In function `xPortStartScheduler':
(.irom0.text+0x5b): undefined reference to `_xt_isr_unmask'
c:/Espressif/ESP8266_MESH_SDK/lib\libfreertos.a(port.o): In function `xPortStartScheduler':
(.irom0.text+0x61): undefined reference to `_xt_tick_timer_init'
c:/Espressif/ESP8266_MESH_SDK/lib\libfreertos.a(port.o): In function `xPortStartScheduler':
(.irom0.text+0x76): undefined reference to `_xt_int_exit'
c:/Espressif/ESP8266_MESH_SDK/lib\libfreertos.a(tasks.o): In function `xTaskIncrementTick':
(.text+0x17c): undefined reference to `vApplicationStackOverflowHook'
c:/Espressif/ESP8266_MESH_SDK/lib\libfreertos.a(tasks.o): In function `vTaskSwitchContext':
(.text+0x1bf): undefined reference to `vApplicationStackOverflowHook'
c:/Espressif/ESP8266_MESH_SDK/lib\libfreertos.a(tasks.o): In function `vTaskSwitchContext':
(.text+0x1e3): undefined reference to `vApplicationStackOverflowHook'
c:/Espressif/ESP8266_MESH_SDK/lib\libfreertos.a(tasks.o): In function `vTaskPlaceOnEventList':
(.irom0.text+0x8c4): undefined reference to `vApplicationIdleHook'
c:/Espressif/ESP8266_MESH_SDK/lib\libfreertos.a(tasks.o): In function `vTaskPlaceOnEventList':
(.irom0.text+0x8e3): undefined reference to `vApplicationIdleHook'
collect2.exe: error: ld returned 1 exit status
mingw32-make[1]: *** [.output/eagle/release/image/eagle.app.v6.out] Error 1
mingw32-make.exe: *** [.subdirs] Error 2
+++++++++++++++++++++++++++++++++++++++++++++
My question here is, can't we link another (ESP8266_SDK) SDK's library with a different SDK (ESP8266_MESH_SDK)?
Your help is very much appreciated. Thanks.
Regards,
Sateesh