-
-
Notifications
You must be signed in to change notification settings - Fork 671
Description
@matthijskooijman
I'm tried to compile new mjs branch (for ESP8266) but it does not work. I listed there the problems and the fix I've done
- 1st point
using USE_ORIGINAL_AES in config.h fire multiple undefined reference.
S:\Skydrive\devt\Arduino\hardware\esp8266com\esp8266/tools/xtensa-lx106-elf/bin/xtensa-lx106-elf-gcc" -g -Os -nostdlib -Wl,--no-check-sections -u call_user_start -u _printf_float -u _scanf_float -Wl,-static "-LS:\Skydrive\devt\Arduino\hardware\esp8266com\esp8266/tools/sdk/lib" "-LS:\Skydrive\devt\Arduino\hardware\esp8266com\esp8266/tools/sdk/ld" "-LS:\Skydrive\devt\Arduino\hardware\esp8266com\esp8266/tools/sdk/libc/xtensa-lx106-elf/lib" "-Teagle.flash.4m1m.ld" -Wl,--gc-sections -Wl,-wrap,system_restart_local -Wl,-wrap,register_chipv6_phy -o "C:\Users\CHARLE~1\AppData\Local\Temp\build20a4a2935c21ce58917d68130563504a.tmp/ttn-abp.ino.elf" -Wl,--start-group "C:\Users\CHARLE~1\AppData\Local\Temp\build20a4a2935c21ce58917d68130563504a.tmp\sketch\ttn-abp.ino.cpp.o" "C:\Users\CHARLE~1\AppData\Local\Temp\build20a4a2935c21ce58917d68130563504a.tmp\libraries\arduino-lmic\aes\lmic.c.o" "C:\Users\CHARLE~1\AppData\Local\Temp\build20a4a2935c21ce58917d68130563504a.tmp\libraries\arduino-lmic\aes\other.c.o" "C:\Users\CHARLE~1\AppData\Local\Temp\build20a4a2935c21ce58917d68130563504a.tmp\libraries\arduino-lmic\aes\ideetron\AES-128_V10.cpp.o" "C:\Users\CHARLE~1\AppData\Local\Temp\build20a4a2935c21ce58917d68130563504a.tmp\libraries\arduino-lmic\hal\hal.cpp.o" "C:\Users\CHARLE~1\AppData\Local\Temp\build20a4a2935c21ce58917d68130563504a.tmp\libraries\arduino-lmic\lmic\lmic.c.o" "C:\Users\CHARLE~1\AppData\Local\Temp\build20a4a2935c21ce58917d68130563504a.tmp\libraries\arduino-lmic\lmic\oslmic.c.o" "C:\Users\CHARLE~1\AppData\Local\Temp\build20a4a2935c21ce58917d68130563504a.tmp\libraries\arduino-lmic\lmic\radio.c.o" "C:\Users\CHARLE~1\AppData\Local\Temp\build20a4a2935c21ce58917d68130563504a.tmp\libraries\SPI\SPI.cpp.o" "C:\Users\CHARLE~1\AppData\Local\Temp\build20a4a2935c21ce58917d68130563504a.tmp\libraries\ESP8266WiFi\ESP8266WiFi.cpp.o" "C:\Users\CHARLE~1\AppData\Local\Temp\build20a4a2935c21ce58917d68130563504a.tmp\libraries\ESP8266WiFi\ESP8266WiFiAP.cpp.o" "C:\Users\CHARLE~1\AppData\Local\Temp\build20a4a2935c21ce58917d68130563504a.tmp\libraries\ESP8266WiFi\ESP8266WiFiGeneric.cpp.o" "C:\Users\CHARLE~1\AppData\Local\Temp\build20a4a2935c21ce58917d68130563504a.tmp\libraries\ESP8266WiFi\ESP8266WiFiMulti.cpp.o" "C:\Users\CHARLE~1\AppData\Local\Temp\build20a4a2935c21ce58917d68130563504a.tmp\libraries\ESP8266WiFi\ESP8266WiFiSTA.cpp.o" "C:\Users\CHARLE~1\AppData\Local\Temp\build20a4a2935c21ce58917d68130563504a.tmp\libraries\ESP8266WiFi\ESP8266WiFiScan.cpp.o" "C:\Users\CHARLE~1\AppData\Local\Temp\build20a4a2935c21ce58917d68130563504a.tmp\libraries\ESP8266WiFi\WiFiClient.cpp.o" "C:\Users\CHARLE~1\AppData\Local\Temp\build20a4a2935c21ce58917d68130563504a.tmp\libraries\ESP8266WiFi\WiFiClientSecure.cpp.o" "C:\Users\CHARLE~1\AppData\Local\Temp\build20a4a2935c21ce58917d68130563504a.tmp\libraries\ESP8266WiFi\WiFiServer.cpp.o" "C:\Users\CHARLE~1\AppData\Local\Temp\build20a4a2935c21ce58917d68130563504a.tmp\libraries\ESP8266WiFi\WiFiUdp.cpp.o" "C:\Users\CHARLE~1\AppData\Local\Temp\build20a4a2935c21ce58917d68130563504a.tmp/arduino.ar" -lhal -lphy -lpp -lnet80211 -llwip_gcc -lwpa -lcrypto -lmain -lwps -laxtls -lsmartconfig -lmesh -lwpa2 -lstdc++ -lm -lc -lgcc -Wl,--end-group "-LC:\Users\CHARLE~1\AppData\Local\Temp\build20a4a2935c21ce58917d68130563504a.tmp"
C:\Users\CHARLE~1\AppData\Local\Temp\build20a4a2935c21ce58917d68130563504a.tmp\libraries\arduino-lmic\lmic\lmic.c.o: In function `convFreq':
S:\Skydrive\devt\Arduino\libraries\arduino-lmic\src\lmic/lmic.c:85: undefined reference to `AESAUX'
C:\Users\CHARLE~1\AppData\Local\Temp\build20a4a2935c21ce58917d68130563504a.tmp\libraries\arduino-lmic\lmic\lmic.c.o:(.text.aes_cipher$part$3+0x4): undefined reference to `AESAUX'
C:\Users\CHARLE~1\AppData\Local\Temp\build20a4a2935c21ce58917d68130563504a.tmp\libraries\arduino-lmic\lmic\lmic.c.o:(.text.aes_cipher$part$3+0x8): undefined reference to `AESAUX'
C:\Users\CHARLE~1\AppData\Local\Temp\build20a4a2935c21ce58917d68130563504a.tmp\libraries\arduino-lmic\lmic\lmic.c.o:(.text.aes_cipher$part$3+0xc): undefined reference to `AESKEY'
C:\Users\CHARLE~1\AppData\Local\Temp\build20a4a2935c21ce58917d68130563504a.tmp\libraries\arduino-lmic\lmic\lmic.c.o:(.text.aes_cipher$part$3+0x10): undefined reference to `os_aes'
C:\Users\CHARLE~1\AppData\Local\Temp\build20a4a2935c21ce58917d68130563504a.tmp\libraries\arduino-lmic\lmic\lmic.c.o: In function `aes_cipher':
S:\Skydrive\devt\Arduino\libraries\arduino-lmic\src\lmic/lmic.c:85: undefined reference to `os_aes'
C:\Users\CHARLE~1\AppData\Local\Temp\build20a4a2935c21ce58917d68130563504a.tmp\libraries\arduino-lmic\lmic\lmic.c.o: In function `rxschedInit':
S:\Skydrive\devt\Arduino\libraries\arduino-lmic\src\lmic/lmic.c:85: undefined reference to `os_aes'
C:\Users\CHARLE~1\AppData\Local\Temp\build20a4a2935c21ce58917d68130563504a.tmp\libraries\arduino-lmic\lmic\lmic.c.o: In function `decodeFrame':
S:\Skydrive\devt\Arduino\libraries\arduino-lmic\src\lmic/lmic.c:85: undefined reference to `os_aes'
C:\Users\CHARLE~1\AppData\Local\Temp\build20a4a2935c21ce58917d68130563504a.tmp\libraries\arduino-lmic\lmic\lmic.c.o: In function `engineUpdate':
S:\Skydrive\devt\Arduino\libraries\arduino-lmic\src\lmic/lmic.c:85: undefined reference to `os_aes'
C:\Users\CHARLE~1\AppData\Local\Temp\build20a4a2935c21ce58917d68130563504a.tmp\libraries\arduino-lmic\lmic\lmic.c.o:S:\Skydrive\devt\Arduino\libraries\arduino-lmic\src\lmic/lmic.c:85: more undefined references to `os_aes' follow
collect2.exe: error: ld returned 1 exit status
Using library arduino-lmic at version 1.5.0+arduino-1 in folder: S:\Skydrive\devt\Arduino\libraries\arduino-lmic
Using library SPI at version 1.0 in folder: S:\Skydrive\devt\Arduino\hardware\esp8266com\esp8266\libraries\SPI
Using library ESP8266WiFi at version 1.0 in folder: S:\Skydrive\devt\Arduino\hardware\esp8266com\esp8266\libraries\ESP8266WiFi
exit status 1
Error compiling for board WeMos D1 R2 & mini.
Fix is in the file src/aes/limc.c, change at the beginning, the test #if defined after the include for the compiler knows the USE_ORIGINAL_AES and also change the #include file name (set te relative) because it was not found so
#if defined(USE_ORIGINAL_AES)
#include "oslmic.h"
becomes
#include "../lmic/oslmic.h"
#if defined(USE_ORIGINAL_AES)
- Second point
Using USE_IDEETRON_AES in config.h fire a linker error with double definition of aes_encrypt only on ESP8266 but this is because SDK already contain aes_encrypt() function in libcrypto.a.
S:\Skydrive\devt\Arduino\hardware\esp8266com\esp8266/tools/xtensa-lx106-elf/bin/xtensa-lx106-elf-gcc" -g -Os -nostdlib -Wl,--no-check-sections -u call_user_start -u _printf_float -u _scanf_float -Wl,-static "-LS:\Skydrive\devt\Arduino\hardware\esp8266com\esp8266/tools/sdk/lib" "-LS:\Skydrive\devt\Arduino\hardware\esp8266com\esp8266/tools/sdk/ld" "-LS:\Skydrive\devt\Arduino\hardware\esp8266com\esp8266/tools/sdk/libc/xtensa-lx106-elf/lib" "-Teagle.flash.4m1m.ld" -Wl,--gc-sections -Wl,-wrap,system_restart_local -Wl,-wrap,register_chipv6_phy -o "C:\Users\CHARLE~1\AppData\Local\Temp\build20a4a2935c21ce58917d68130563504a.tmp/ttn-abp.ino.elf" -Wl,--start-group "C:\Users\CHARLE~1\AppData\Local\Temp\build20a4a2935c21ce58917d68130563504a.tmp\sketch\ttn-abp.ino.cpp.o" "C:\Users\CHARLE~1\AppData\Local\Temp\build20a4a2935c21ce58917d68130563504a.tmp\libraries\arduino-lmic\aes\lmic.c.o" "C:\Users\CHARLE~1\AppData\Local\Temp\build20a4a2935c21ce58917d68130563504a.tmp\libraries\arduino-lmic\aes\other.c.o" "C:\Users\CHARLE~1\AppData\Local\Temp\build20a4a2935c21ce58917d68130563504a.tmp\libraries\arduino-lmic\aes\ideetron\AES-128_V10.cpp.o" "C:\Users\CHARLE~1\AppData\Local\Temp\build20a4a2935c21ce58917d68130563504a.tmp\libraries\arduino-lmic\hal\hal.cpp.o" "C:\Users\CHARLE~1\AppData\Local\Temp\build20a4a2935c21ce58917d68130563504a.tmp\libraries\arduino-lmic\lmic\lmic.c.o" "C:\Users\CHARLE~1\AppData\Local\Temp\build20a4a2935c21ce58917d68130563504a.tmp\libraries\arduino-lmic\lmic\oslmic.c.o" "C:\Users\CHARLE~1\AppData\Local\Temp\build20a4a2935c21ce58917d68130563504a.tmp\libraries\arduino-lmic\lmic\radio.c.o" "C:\Users\CHARLE~1\AppData\Local\Temp\build20a4a2935c21ce58917d68130563504a.tmp\libraries\SPI\SPI.cpp.o" "C:\Users\CHARLE~1\AppData\Local\Temp\build20a4a2935c21ce58917d68130563504a.tmp\libraries\ESP8266WiFi\ESP8266WiFi.cpp.o" "C:\Users\CHARLE~1\AppData\Local\Temp\build20a4a2935c21ce58917d68130563504a.tmp\libraries\ESP8266WiFi\ESP8266WiFiAP.cpp.o" "C:\Users\CHARLE~1\AppData\Local\Temp\build20a4a2935c21ce58917d68130563504a.tmp\libraries\ESP8266WiFi\ESP8266WiFiGeneric.cpp.o" "C:\Users\CHARLE~1\AppData\Local\Temp\build20a4a2935c21ce58917d68130563504a.tmp\libraries\ESP8266WiFi\ESP8266WiFiMulti.cpp.o" "C:\Users\CHARLE~1\AppData\Local\Temp\build20a4a2935c21ce58917d68130563504a.tmp\libraries\ESP8266WiFi\ESP8266WiFiSTA.cpp.o" "C:\Users\CHARLE~1\AppData\Local\Temp\build20a4a2935c21ce58917d68130563504a.tmp\libraries\ESP8266WiFi\ESP8266WiFiScan.cpp.o" "C:\Users\CHARLE~1\AppData\Local\Temp\build20a4a2935c21ce58917d68130563504a.tmp\libraries\ESP8266WiFi\WiFiClient.cpp.o" "C:\Users\CHARLE~1\AppData\Local\Temp\build20a4a2935c21ce58917d68130563504a.tmp\libraries\ESP8266WiFi\WiFiClientSecure.cpp.o" "C:\Users\CHARLE~1\AppData\Local\Temp\build20a4a2935c21ce58917d68130563504a.tmp\libraries\ESP8266WiFi\WiFiServer.cpp.o" "C:\Users\CHARLE~1\AppData\Local\Temp\build20a4a2935c21ce58917d68130563504a.tmp\libraries\ESP8266WiFi\WiFiUdp.cpp.o" "C:\Users\CHARLE~1\AppData\Local\Temp\build20a4a2935c21ce58917d68130563504a.tmp/arduino.ar" -lhal -lphy -lpp -lnet80211 -llwip_gcc -lwpa -lcrypto -lmain -lwps -laxtls -lsmartconfig -lmesh -lwpa2 -lstdc++ -lm -lc -lgcc -Wl,--end-group "-LC:\Users\CHARLE~1\AppData\Local\Temp\build20a4a2935c21ce58917d68130563504a.tmp"
S:\Skydrive\devt\Arduino\hardware\esp8266com\esp8266/tools/sdk/lib\libcrypto.a(aes-internal-enc.o): In function `aes_encrypt':
(.irom0.text+0x490): multiple definition of `aes_encrypt'
C:\Users\CHARLE~1\AppData\Local\Temp\build20a4a2935c21ce58917d68130563504a.tmp\libraries\arduino-lmic\aes\ideetron\AES-128_V10.cpp.o:S:\Skydrive\devt\Arduino\libraries\arduino-lmic\src\aes\ideetron/AES-128_V10.cpp:92: first defined here
collect2.exe: error: ld returned 1 exit status
Using library arduino-lmic at version 1.5.0+arduino-1 in folder: S:\Skydrive\devt\Arduino\libraries\arduino-lmic
Using library SPI at version 1.0 in folder: S:\Skydrive\devt\Arduino\hardware\esp8266com\esp8266\libraries\SPI
Using library ESP8266WiFi at version 1.0 in folder: S:\Skydrive\devt\Arduino\hardware\esp8266com\esp8266\libraries\ESP8266WiFi
exit status 1
Error compiling for board WeMos D1 R2 & mini.
Workaround was (may be better solution) to rename all aes_encrypt() to limc_aes_encrypt() to avoid target error due to existing function.