As the title says... Chat on...

User avatar
By zeroday
#5713
RogerClark wrote:Hi

I just tried running make, using the Lubuntu VM image version supplied by Expressif and I get this error

/opt/xtensa-lx106-elf/lib/gcc/xtensa-lx106-elf/4.8.2/include/sys/fcntl.h:31:34: fatal error: xtensa/simcall-fcntl.h: No such file or directory
#include <xtensa/simcall-fcntl.h>
^

which seems to imply that here is something missing from the toolchain :-(

It looks like its in the version here

https://github.com/esp8266/esp8266-wiki/wiki/Toolchain

But I'm a bit loathed to just replace all of my headers

Especially when I"m not sure why any should be missing from the Expressif VM image

I guess perhaps I should post to the compiler thread


(798 Bytes) Downloaded 666 times

(3.86 KiB) Downloaded 643 times


these two files from xp vm.
put it in toolchain/ include/xtensa/
if there is no xtensa folder, create one.
User avatar
By zeroday
#5715
sej7278 wrote:apparently the two missing simcall headers are in the xp vm but not the lubuntu one or the xtensa-lx106-elf.tar.bz2 (in fact this is discussed a whole page back from this one!)

they don't actually seem to be needed in the crosstool-ng toolchains like the wiki one you linked to or esp-open-sdk.

people need to move away from using dodgy vm's that are running some unknown version of what appears to be a closed toolchain, to proper gcc toolchains.

unfortunately the xp vm seems to be the only way to reliably compile nodemcu at least, so we need to spot the difference and figure out why.


the first difference is the way C structure memory alignment was treated. causes exception(9) in file api...
there is a long way to go, I am not familiar with toolchain and compiler. and any help from the community is appreciated.
User avatar
By RogerClark
#5717 The reason I'm using the Lubuntu VM was that it was the one on supplied by Espressif themselves, hence I assumed this was the officially sanctioned way to compile - and consequentially going to be the most stable.

I did briefly look at the Windows route, and may still try that route again, but last time I tried (a few week ago) there were some problems with the Windows native toolchain (well kinda native as I think it uses Cygwin)


Re: where this is discussed

Umm.

I did a search on the forum but it didn't turn up any results for that file name

I'll just add those files to my VM and see how it goes.

Thanks
User avatar
By sej7278
#5747 i copied the two simcall header files to /opt/xtensa-lx106-elf/lib/gcc/xtensa-lx106-elf/4.8.2/include/xtensa (had to "mkdir xtensa" first as it doesn't exist) in the lubuntu vm and compiled nodemcu and its different to my debian desktop, but still has the same problems with reboots etc.

lubuntu 32-bit vm:
Code: Select allls -lh | awk '{print $5" "$9}' | column -t
354K  eagle.app.flash.bin
7.1M  eagle.app.v6.dump
53K   eagle.app.v6.flash.bin
290K  eagle.app.v6.irom0text.bin
8.2M  eagle.app.v6.S


debian jessie 64-bit:
Code: Select all354K  eagle.app.flash.bin
7.2M  eagle.app.v6.dump
52K   eagle.app.v6.flash.bin
290K  eagle.app.v6.irom0text.bin
8.3M  eagle.app.v6.S


i tried to compare the esp-open-sdk toolchain with what's on the vm and they're pretty different - certainly the headers are in different include directories, and the open toolchain is missing the xcc stuff and by default doesn't have the xt-* tools as symlinks:

Code: Select allxt-addr2line         ->  xtensa-lx106-elf-addr2line
xt-ar                ->  xtensa-lx106-elf-ar
xt-as                ->  xtensa-lx106-elf-as
xt-c++filt           ->  xtensa-lx106-elf-c++filt
xtensa-lx106-elf-cc  ->  xtensa-lx106-elf-gcc
xt-gprof             ->  xtensa-lx106-elf-gprof
xt-ld                ->  xtensa-lx106-elf-ld
xt-nm                ->  xtensa-lx106-elf-nm
xt-objcopy           ->  xtensa-lx106-elf-objcopy
xt-objdump           ->  xtensa-lx106-elf-objdump
xt-ranlib            ->  xtensa-lx106-elf-ranlib
xt-readelf           ->  xtensa-lx106-elf-readelf
xt-size              ->  xtensa-lx106-elf-size
xt-strings           ->  xtensa-lx106-elf-strings
xt-strip             ->  xtensa-lx106-elf-strip
xt-xc++              ->  xtensa-lx106-elf-cpp
xt-xcc               ->  xtensa-lx106-elf-gcc


so definitely the only way to compile nodemcu at the moment is espressif's windows xp vm, which is all in chinese, unlicensed and has some weird flexlm server, and closed tools, yuck. certainly not a maintainable system to base a product on. has anyone got anything to build in the lubuntu vm that's more advanced than just at/Iot_demo ?