Discuss here different C compiler set ups, and compiling executables for the ESP8266

User avatar
By Necromant
#2375 Okay, I may be a newbie to ESP8266 development and be missing some trivia.
So far we have the following blobs:
  • libc.a
  • libhal.a
  • libjson.a
  • liblwip.a
  • libmain.a
  • libnet80211.a
  • libphy.a
  • libssl.a
  • libupgrade.a
  • libupgrade_ssl.a
  • libwpa.a

Out of these blobs we have sources for lwip (examples/IoT_Demo/lwip), and lwip is opensource anyway, libssl, json in 0.9.2 sdk.

libupgrade is useless anyway, like libjson. Giving lwip a quick look - we might be able to ditch stock sources for upstream lwip, that can be later compiled with more goodies (IPv6 ?), Looks like it's worth trying. Libc looks like newlib, but compiled in some weird way so that some things are missing (sscanf, atoi). Has anyone tried building newlib with crosstool? Why do we have to carry around libc.a?

That leaves us with a smallwer list of essential blobs we have no sources whatsoever:

  • libhal.a
  • libmain.a
  • libnet80211.a
  • libphy.a
  • libwpa.a (Part of WPA-supplicant? )

Out of this list - libmain.a is the one that's just asking to be ditched, since it affects the code execution flow greatly (main() is there). The rest can be dealt with later. Is anyone working on that?
I will be trying to compile things with upstream lwip tree, so I may be able to ditch liblwip.a for good and get some more nice features.
Last edited by Necromant on Sun Nov 09, 2014 1:45 pm, edited 1 time in total.
User avatar
By tinhead
#2387
Necromant wrote:libupgrade is useless anyway, like libjson.


libupgrade is usefull for ota fw updates, you can find sources of that lib on my 1drv. Json, well, that depends what one call usefull.

Necromant wrote:That leaves us with a smallwer list of essential blobs we have no sources whatsoever:
  • libhal.a
  • libmain.a
  • libnet80211.a
  • libphy.a
  • libwpa.a (Part of WPA-supplicant? )


so? where is your point?

Necromant wrote:Out of this list - libmain.a is the one that's just asking to be ditched, since it affects the code execution flow greatly (main() is there).


no, main is in ROM, libmain contains only call_user_start