Quoting ESP8266 section in the README of the BSEC library: > You will need to modify the file eagle.app.v6.common.ld.h typically found in {YourESP8266PPackageDirectory}\tools\sdk\ld. With reference to the linker script here, After line 177 *libwps.a:(.literal.* .text.*), add *libalgobsec.a:(.literal.* .text.*), which should look like, *libwpa.a:(.literal.* .text.*)
*libwpa2.a:(.literal.* .text.*)
*libwps.a:(.literal.* .text.*)
*libalgobsec.a:(.literal.* .text.*)
*(.irom0.literal .irom.literal .irom.text.literal .irom0.text .irom0.text.* .irom.text .irom.text.*)
/* __FUNCTION__ locals */
*(.rodata._ZZ*__FUNCTION__)
*(.rodata._ZZ*__PRETTY_FUNCTION__)
*(.rodata._ZZ*__func__) Referencing these lines at the top of the section: https://github.com/esp8266/Arduino/blob/c3c61a5f751fcc75440e571b5aa89254dce6e4f7/tools/sdk/ld/eagle.app.v6.common.ld.h#L142-L144 If libalgobsec.a file contents are renamed from .o to .c.o, there is no need to modify any framework files. [1] [2] Based on the comment of Core mainainer, this was done originally to keep Espressif SDK files in ram, as those also don't have any extension before the .o. This might be a subject of change in the Core though, but at least in the current state .ld file modification can be avoided. [1] https://gitter.im/esp8266/Arduino?at=5f020e983a0d3931fad43f1d [2] https://gitter.im/esp8266/Arduino?at=5f04432a3c217837fd815438
... View more