Cross compiling Micropython from GITHUb source -errors

All ESP32 boards running MicroPython.
Target audience: MicroPython users with an ESP32 board.
RobinMosedale
Posts: 29
Joined: Fri Jul 26, 2019 9:40 pm

Cross compiling Micropython from GITHUb source -errors

Post by RobinMosedale » Wed Nov 11, 2020 8:02 pm

Having gone around in circles for a few weeks, I think it's time to request some help.

I'm getting a consistent error while cross compiling micropython from a github clone.

I am using the correct hash for the esp-idf toolchain, and the cross compiler is correctly compiled itself.
Having found that the espressif guide doesn't work (I'm far from alone), and having diverted to setting up and giving up on dockers,
The most helpful guide that came close to success was this one:-
https://lemariva.com/blog/2020/03/tutor ... python-v20

Knowing that each route could have left unwanted residuals lying around, a fresh rapsberry pi environment was installed, updated and only the minimum needs of python3 and IDLE installed.

Here is the build sequence output:-


pi@raspberrypi:~/esp/micropython/ports/esp32 $ export PATH="$HOME/esp/xtensa-esp32-elf/bin:$PATH"
pi@raspberrypi:~/esp/micropython/ports/esp32 $ echo $PATH
/home/pi/esp/xtensa-esp32-elf/bin:/home/pi/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games
pi@raspberrypi:~/esp/micropython/ports/esp32 $ export IDF_PATH="$HOME/esp/esp-idf
> echo $PATH
> ^C
pi@raspberrypi:~/esp/micropython/ports/esp32 $ export IDF_PATH="$HOME/esp/esp-idf"
pi@raspberrypi:~/esp/micropython/ports/esp32 $ export ESPIDF="$HOME/esp/esp-idf"
pi@raspberrypi:~/esp/micropython/ports/esp32 $ cd ..
pi@raspberrypi:~/esp/micropython/ports $ cd ..
pi@raspberrypi:~/esp/micropython $ cd ..
pi@raspberrypi:~/esp $ cd micropython/mpy-cross
pi@raspberrypi:~/esp/micropython/mpy-cross $ make
Use make V=1 or set BUILD_VERBOSE in your environment to increase build verbosity.
mkdir -p build/genhdr
GEN build/genhdr/mpversion.h
GEN build/genhdr/moduledefs.h
GEN build/genhdr/qstr.i.last
GEN build/genhdr/qstr.split
GEN build/genhdr/qstrdefs.collected.h
QSTR updated
GEN build/genhdr/qstrdefs.generated.h
mkdir -p build/lib/utils/
mkdir -p build/py/
CC ../py/mpstate.c
CC ../py/nlr.c
CC ../py/nlrx86.c
CC ../py/nlrx64.c
CC ../py/nlrthumb.c
CC ../py/nlrpowerpc.c
CC ../py/nlrxtensa.c
CC ../py/nlrsetjmp.c
CC ../py/malloc.c
CC ../py/gc.c
CC ../py/pystack.c
CC ../py/qstr.c
CC ../py/vstr.c
CC ../py/mpprint.c
CC ../py/unicode.c
CC ../py/mpz.c
CC ../py/reader.c
CC ../py/lexer.c
CC ../py/parse.c
CC ../py/scope.c
CC ../py/compile.c
CC ../py/emitcommon.c
CC ../py/emitbc.c
CC ../py/asmbase.c
CC ../py/asmx64.c
CC ../py/emitnx64.c
CC ../py/asmx86.c
CC ../py/emitnx86.c
CC ../py/asmthumb.c
CC ../py/emitnthumb.c
CC ../py/emitinlinethumb.c
CC ../py/asmarm.c
CC ../py/emitnarm.c
CC ../py/asmxtensa.c
CC ../py/emitnxtensa.c
CC ../py/emitinlinextensa.c
CC ../py/emitnxtensawin.c
CC ../py/formatfloat.c
CC ../py/parsenumbase.c
CC ../py/parsenum.c
CC ../py/emitglue.c
CC ../py/persistentcode.c
CC ../py/runtime.c
CC ../py/runtime_utils.c
CC ../py/scheduler.c
CC ../py/nativeglue.c
CC ../py/pairheap.c
CC ../py/ringbuf.c
CC ../py/stackctrl.c
CC ../py/argcheck.c
CC ../py/warning.c
CC ../py/profile.c
CC ../py/map.c
CC ../py/obj.c
CC ../py/objarray.c
CC ../py/objattrtuple.c
CC ../py/objbool.c
CC ../py/objboundmeth.c
CC ../py/objcell.c
CC ../py/objclosure.c
CC ../py/objcomplex.c
CC ../py/objdeque.c
CC ../py/objdict.c
CC ../py/objenumerate.c
CC ../py/objexcept.c
CC ../py/objfilter.c
CC ../py/objfloat.c
CC ../py/objfun.c
CC ../py/objgenerator.c
CC ../py/objgetitemiter.c
CC ../py/objint.c
CC ../py/objint_longlong.c
CC ../py/objint_mpz.c
CC ../py/objlist.c
CC ../py/objmap.c
CC ../py/objmodule.c
CC ../py/objobject.c
CC ../py/objpolyiter.c
CC ../py/objproperty.c
CC ../py/objnone.c
CC ../py/objnamedtuple.c
CC ../py/objrange.c
CC ../py/objreversed.c
CC ../py/objset.c
CC ../py/objsingleton.c
CC ../py/objslice.c
CC ../py/objstr.c
CC ../py/objstrunicode.c
CC ../py/objstringio.c
CC ../py/objtuple.c
CC ../py/objtype.c
CC ../py/objzip.c
CC ../py/opmethods.c
CC ../py/sequence.c
CC ../py/stream.c
CC ../py/binary.c
CC ../py/builtinimport.c
CC ../py/builtinevex.c
CC ../py/builtinhelp.c
CC ../py/modarray.c
CC ../py/modbuiltins.c
CC ../py/modcollections.c
CC ../py/modgc.c
CC ../py/modio.c
CC ../py/modmath.c
CC ../py/modcmath.c
CC ../py/modmicropython.c
CC ../py/modstruct.c
CC ../py/modsys.c
CC ../py/moduerrno.c
CC ../py/modthread.c
CC ../py/vm.c
CC ../py/bc.c
CC ../py/showbc.c
CC ../py/repl.c
CC ../py/smallint.c
CC ../py/frozenmod.c
CC main.c
CC gccollect.c
CC ../lib/utils/gchelper_generic.c
LINK mpy-cross
text data bss dec hex filename
273309 396 444 274149 42ee5 mpy-cross
pi@raspberrypi:~/esp/micropython/mpy-cross $ cd ../ports/esp32
pi@raspberrypi:~/esp/micropython/ports/esp32 $ nano boards/GENERIC/mpconfigboard.mk
pi@raspberrypi:~/esp/micropython/ports/esp32 $ export BOARD=GENERIC_SPIRAM
pi@raspberrypi:~/esp/micropython/ports/esp32 $ make PYTHON=python3 -verbose -j2 submodules
GNU Make 4.2.1
Built for arm-unknown-linux-gnueabihf
Copyright (C) 1988-2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
pi@raspberrypi:~/esp/micropython/ports/esp32 $ make PYTHON=python3 -verbose -j2
GNU Make 4.2.1
Built for arm-unknown-linux-gnueabihf
Copyright (C) 1988-2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
pi@raspberrypi:~/esp/micropython/ports/esp32 $ make -j2 submodules
Use make V=1 or set BUILD_VERBOSE in your environment to increase build verbosity.
Building with ESP IDF v3
Updating submodules: lib/berkeley-db-1.xx
pi@raspberrypi:~/esp/micropython/ports/esp32 $ make -j2
Use make V=1 or set BUILD_VERBOSE in your environment to increase build verbosity.
Building with ESP IDF v3
CC /home/pi/esp/esp-idf/components/bootloader_support/src/bootloader_clock.c
CC /home/pi/esp/esp-idf/components/bootloader_support/src/bootloader_common.c
/home/pi/esp/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc: 3: /home/pi/esp/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc: Syntax error: Unterminated quoted string
make: *** [Makefile:948: build-GENERIC_SPIRAM/bootloader//home/pi/esp/esp-idf/components/bootloader_support/src/bootloader_clock.o] Error 2
make: *** Waiting for unfinished jobs....
/home/pi/esp/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc: 3: /home/pi/esp/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc: Syntax error: Unterminated quoted string
make: *** [Makefile:948: build-GENERIC_SPIRAM/bootloader//home/pi/esp/esp-idf/components/bootloader_support/src/bootloader_common.o] Error 2
pi@raspberrypi:~/esp/micropython/ports/esp32 $

Build sequence output ends.
Narrative begins again.

You may ask why not just load the binary image. I have and do use the standard binary.
However, the basic micropython build from source was in preparation of compiling an image containing other source modules (in support of the OV2460 CAM- the only binary image containing that is bare minimum and performs a specific task and excludes repl so adding python functions of my own wasn't possible)

However, I'm stuck on building a simple GENERIC_SPIRAM or even GENERIC.

It appears that few have achieved successful builds.

Along the past few weeks attempting this 'simple' task, it has been necessary to overcome ignorance of GITHub pulls, building configrations, docker environments (abandoned).

All of which I have absolutely no interest, merely as a means of obtaining the binary build for micropython on an esp32

Inspecting the directory above where the error 2 occurs (whatever that is, I can find no listing for xtensa error codes)
/home/pi/esp/esp-idf/components/bootloader_support/src/bootloader_common.o]
there is nothing in /home/pi/esp/esp-idf/components/bootloader_support/src/

I am deducing that the source files for micropython are incomplete.

I have seen other errors declaring further files missing.

I've no idea what the undelimeted string message means.

Is my deduction correct, and if so, how do I raise a fault report against espressive micropython.

Or am I doing something wrong in ignorance of this somewhat overly complex build for such a fundamental component of micropython for esp32?

In fact, I'd be delighted if someone has a script file that just simply pulls the right hash files for all the components and builds the blasted thing.
If there isn't one why not?

Oh, I forgot to add, in an attempt to remove any complications wrt raspberry pi xtensa cross compile, all of the above was attempted on the Widows Debian system too (WIN10 Intel Processor 64 bit), clean build, python3 etc as above, with the same result.

Robin

User avatar
jimmo
Posts: 2013
Joined: Tue Aug 08, 2017 1:57 am
Location: Sydney, Australia
Contact:

Re: Cross compiling Micropython from GITHUb source -errors

Post by jimmo » Wed Nov 11, 2020 11:30 pm

RobinMosedale wrote:
Wed Nov 11, 2020 8:02 pm
/home/pi/esp/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc: 3: /home/pi/esp/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc: Syntax error: Unterminated quoted string
This is quite a surprising error... this looks like it's trying to run xtensa-esp32-elf-gcc as if it were a bash script.

Can you please try doing:

Code: Select all

$ xtensa-esp32-elf-gcc --version
and

Code: Select all

$ file `which xtensa-esp32-elf-gcc`
Where are you building the compiler from?

I don't know about Raspberry Pi, but FWIW on Debian you should be able to use the instructions under the heading "Using the IDF scripts to install the toolchain (IDF 4.x only)" which will use "install.sh" to download the toolchain binaries directy.

RobinMosedale
Posts: 29
Joined: Fri Jul 26, 2019 9:40 pm

Re: Cross compiling Micropython from GITHUb source -errors

Post by RobinMosedale » Thu Nov 12, 2020 8:09 pm

Thank you Jimmo.

I have read that there may be oddities with xtensa on RasPi, so I'm cleaning out my Windows SL and reinstalling from scratch with a clean system

I'll report with a full command/response system then together with Versions

Thanks again
Robin

RobinMosedale
Posts: 29
Joined: Fri Jul 26, 2019 9:40 pm

Re: Cross compiling Micropython from GITHUb source -errors

Post by RobinMosedale » Fri Nov 13, 2020 4:51 pm

On a clean Debian WSL.
robin@Rose:~/esp/micropython/ports/esp32$ make -j4 PYTHON=python3 submodules
Use make V=1 or set BUILD_VERBOSE in your environment to increase build verbosity.
Building with ESP IDF v3
Updating submodules: lib/berkeley-db-1.xx
robin@Rose:~/esp/micropython/ports/esp32$ make -j4 PYTHON=python3
Use make V=1 or set BUILD_VERBOSE in your environment to increase build verbosity.
Building with ESP IDF v3
mkdir -p build-GENERIC_SPIRAM/bootloader//home/robin/esp/esp-idf/components/bootloader/subproject/main/
mkdir -p build-GENERIC_SPIRAM/bootloader//home/robin/esp/esp-idf/components/bootloader_support/src/
mkdir -p build-GENERIC_SPIRAM/bootloader//home/robin/esp/esp-idf/components/log/
mkdir -p build-GENERIC_SPIRAM/bootloader//home/robin/esp/esp-idf/components/micro-ecc/micro-ecc/
mkdir -p build-GENERIC_SPIRAM/bootloader//home/robin/esp/esp-idf/components/soc/esp32/
mkdir -p build-GENERIC_SPIRAM/bootloader//home/robin/esp/esp-idf/components/soc/src/
mkdir -p build-GENERIC_SPIRAM/bootloader//home/robin/esp/esp-idf/components/spi_flash/
Create build-GENERIC_SPIRAM/partitions.bin
mkdir -p build-GENERIC_SPIRAM/genhdr
mkdir -p build-GENERIC_SPIRAM/build-GENERIC_SPIRAM/
mkdir -p build-GENERIC_SPIRAM/drivers/bus/
mkdir -p build-GENERIC_SPIRAM/drivers/dht/
mkdir -p build-GENERIC_SPIRAM/extmod/
mkdir -p build-GENERIC_SPIRAM/extmod/nimble/
mkdir -p build-GENERIC_SPIRAM/lib/berkeley-db-1.xx/btree/
mkdir -p build-GENERIC_SPIRAM/lib/berkeley-db-1.xx/mpool/
mkdir -p build-GENERIC_SPIRAM/lib/embed/
mkdir -p build-GENERIC_SPIRAM/lib/littlefs/
mkdir -p build-GENERIC_SPIRAM/lib/mbedtls_errors/
mkdir -p build-GENERIC_SPIRAM/lib/mp-readline/
mkdir -p build-GENERIC_SPIRAM/lib/netutils/
mkdir -p build-GENERIC_SPIRAM/lib/oofatfs/
mkdir -p build-GENERIC_SPIRAM/lib/timeutils/
mkdir -p build-GENERIC_SPIRAM/lib/utils/
mkdir -p build-GENERIC_SPIRAM/py/
mkdir -p build-GENERIC_SPIRAM//home/robin/esp/esp-idf/components/app_trace/
mkdir -p build-GENERIC_SPIRAM//home/robin/esp/esp-idf/components/app_update/
mkdir -p build-GENERIC_SPIRAM//home/robin/esp/esp-idf/components/bootloader_support/src/
mkdir -p build-GENERIC_SPIRAM//home/robin/esp/esp-idf/components/bt/
mkdir -p build-GENERIC_SPIRAM//home/robin/esp/esp-idf/components/cxx/
mkdir -p build-GENERIC_SPIRAM//home/robin/esp/esp-idf/components/driver/
mkdir -p build-GENERIC_SPIRAM//home/robin/esp/esp-idf/components/efuse/esp32/
mkdir -p build-GENERIC_SPIRAM//home/robin/esp/esp-idf/components/efuse/src/
mkdir -p build-GENERIC_SPIRAM//home/robin/esp/esp-idf/components/esp32/
mkdir -p build-GENERIC_SPIRAM//home/robin/esp/esp-idf/components/esp32/hwcrypto/
mkdir -p build-GENERIC_SPIRAM//home/robin/esp/esp-idf/components/esp_ringbuf/
mkdir -p build-GENERIC_SPIRAM//home/robin/esp/esp-idf/components/ethernet/
mkdir -p build-GENERIC_SPIRAM//home/robin/esp/esp-idf/components/ethernet/eth_phy/
mkdir -p build-GENERIC_SPIRAM//home/robin/esp/esp-idf/components/freertos/
mkdir -p build-GENERIC_SPIRAM//home/robin/esp/esp-idf/components/heap/
mkdir -p build-GENERIC_SPIRAM//home/robin/esp/esp-idf/components/json/cJSON/
mkdir -p build-GENERIC_SPIRAM//home/robin/esp/esp-idf/components/log/
mkdir -p build-GENERIC_SPIRAM//home/robin/esp/esp-idf/components/lwip/apps/dhcpserver/
mkdir -p build-GENERIC_SPIRAM//home/robin/esp/esp-idf/components/lwip/lwip/src/api/
mkdir -p build-GENERIC_SPIRAM//home/robin/esp/esp-idf/components/lwip/lwip/src/apps/sntp/
mkdir -p build-GENERIC_SPIRAM//home/robin/esp/esp-idf/components/lwip/lwip/src/core/
mkdir -p build-GENERIC_SPIRAM//home/robin/esp/esp-idf/components/lwip/lwip/src/core/ipv4/
mkdir -p build-GENERIC_SPIRAM//home/robin/esp/esp-idf/components/lwip/lwip/src/core/ipv6/
mkdir -p build-GENERIC_SPIRAM//home/robin/esp/esp-idf/components/lwip/lwip/src/netif/
mkdir -p build-GENERIC_SPIRAM//home/robin/esp/esp-idf/components/lwip/lwip/src/netif/ppp/
mkdir -p build-GENERIC_SPIRAM//home/robin/esp/esp-idf/components/lwip/lwip/src/netif/ppp/polarssl/
mkdir -p build-GENERIC_SPIRAM//home/robin/esp/esp-idf/components/lwip/port/esp32/
mkdir -p build-GENERIC_SPIRAM//home/robin/esp/esp-idf/components/lwip/port/esp32/debug/
mkdir -p build-GENERIC_SPIRAM//home/robin/esp/esp-idf/components/lwip/port/esp32/freertos/
mkdir -p build-GENERIC_SPIRAM//home/robin/esp/esp-idf/components/lwip/port/esp32/netif/
mkdir -p build-GENERIC_SPIRAM//home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/
mkdir -p build-GENERIC_SPIRAM//home/robin/esp/esp-idf/components/mbedtls/port/
mkdir -p build-GENERIC_SPIRAM//home/robin/esp/esp-idf/components/mdns/
mkdir -p build-GENERIC_SPIRAM//home/robin/esp/esp-idf/components/newlib/
mkdir -p build-GENERIC_SPIRAM//home/robin/esp/esp-idf/components/nimble/esp-hci/src/
mkdir -p build-GENERIC_SPIRAM//home/robin/esp/esp-idf/components/nimble/nimble/ext/tinycrypt/src/
mkdir -p build-GENERIC_SPIRAM//home/robin/esp/esp-idf/components/nimble/nimble/nimble/host/services/ans/src/
mkdir -p build-GENERIC_SPIRAM//home/robin/esp/esp-idf/components/nimble/nimble/nimble/host/services/bas/src/
mkdir -p build-GENERIC_SPIRAM//home/robin/esp/esp-idf/components/nimble/nimble/nimble/host/services/gap/src/
mkdir -p build-GENERIC_SPIRAM//home/robin/esp/esp-idf/components/nimble/nimble/nimble/host/services/gatt/src/
mkdir -p build-GENERIC_SPIRAM//home/robin/esp/esp-idf/components/nimble/nimble/nimble/host/services/ias/src/
mkdir -p build-GENERIC_SPIRAM//home/robin/esp/esp-idf/components/nimble/nimble/nimble/host/services/lls/src/
mkdir -p build-GENERIC_SPIRAM//home/robin/esp/esp-idf/components/nimble/nimble/nimble/host/services/tps/src/
mkdir -p build-GENERIC_SPIRAM//home/robin/esp/esp-idf/components/nimble/nimble/nimble/host/src/
mkdir -p build-GENERIC_SPIRAM//home/robin/esp/esp-idf/components/nimble/nimble/nimble/host/store/config/src/
mkdir -p build-GENERIC_SPIRAM//home/robin/esp/esp-idf/components/nimble/nimble/nimble/host/store/ram/src/
mkdir -p build-GENERIC_SPIRAM//home/robin/esp/esp-idf/components/nimble/nimble/nimble/host/util/src/
mkdir -p build-GENERIC_SPIRAM//home/robin/esp/esp-idf/components/nimble/nimble/nimble/src/
mkdir -p build-GENERIC_SPIRAM//home/robin/esp/esp-idf/components/nimble/nimble/porting/nimble/src/
mkdir -p build-GENERIC_SPIRAM//home/robin/esp/esp-idf/components/nimble/nimble/porting/npl/freertos/src/
mkdir -p build-GENERIC_SPIRAM//home/robin/esp/esp-idf/components/nimble/port/src/
mkdir -p build-GENERIC_SPIRAM//home/robin/esp/esp-idf/components/nvs_flash/src/
mkdir -p build-GENERIC_SPIRAM//home/robin/esp/esp-idf/components/pthread/
mkdir -p build-GENERIC_SPIRAM//home/robin/esp/esp-idf/components/sdmmc/
mkdir -p build-GENERIC_SPIRAM//home/robin/esp/esp-idf/components/smartconfig_ack/
mkdir -p build-GENERIC_SPIRAM//home/robin/esp/esp-idf/components/soc/esp32/
mkdir -p build-GENERIC_SPIRAM//home/robin/esp/esp-idf/components/soc/src/
mkdir -p build-GENERIC_SPIRAM//home/robin/esp/esp-idf/components/spi_flash/
mkdir -p build-GENERIC_SPIRAM//home/robin/esp/esp-idf/components/tcpip_adapter/
mkdir -p build-GENERIC_SPIRAM//home/robin/esp/esp-idf/components/ulp/
mkdir -p build-GENERIC_SPIRAM//home/robin/esp/esp-idf/components/vfs/
mkdir -p build-GENERIC_SPIRAM//home/robin/esp/esp-idf/components/wpa_supplicant/port/
mkdir -p build-GENERIC_SPIRAM//home/robin/esp/esp-idf/components/wpa_supplicant/src/crypto/
mkdir -p build-GENERIC_SPIRAM//home/robin/esp/esp-idf/components/wpa_supplicant/src/fast_crypto/
mkdir -p build-GENERIC_SPIRAM//home/robin/esp/esp-idf/components/wpa_supplicant/src/wps/
mkdir -p build-GENERIC_SPIRAM//home/robin/esp/esp-idf/components/xtensa-debug-module/
mkdir -p build-GENERIC_SPIRAM/esp-idf
mkdir -p build-GENERIC_SPIRAM/esp-idf/bootloader_support
mkdir -p build-GENERIC_SPIRAM/esp-idf/driver
mkdir -p build-GENERIC_SPIRAM/esp-idf/efuse
mkdir -p build-GENERIC_SPIRAM/esp-idf/esp32
mkdir -p build-GENERIC_SPIRAM/esp-idf/esp_ringbuf
mkdir -p build-GENERIC_SPIRAM/esp-idf/heap
mkdir -p build-GENERIC_SPIRAM/esp-idf/soc
mkdir -p build-GENERIC_SPIRAM/esp-idf/cxx
mkdir -p build-GENERIC_SPIRAM/esp-idf/pthread
mkdir -p build-GENERIC_SPIRAM/esp-idf/freertos
mkdir -p build-GENERIC_SPIRAM/esp-idf/vfs
mkdir -p build-GENERIC_SPIRAM/esp-idf/json
mkdir -p build-GENERIC_SPIRAM/esp-idf/log
mkdir -p build-GENERIC_SPIRAM/esp-idf/xtensa-debug-module
mkdir -p build-GENERIC_SPIRAM/esp-idf/tcpip_adapter
mkdir -p build-GENERIC_SPIRAM/esp-idf/app_trace
mkdir -p build-GENERIC_SPIRAM/esp-idf/app_update
mkdir -p build-GENERIC_SPIRAM/esp-idf/newlib
mkdir -p build-GENERIC_SPIRAM/esp-idf/nvs_flash
mkdir -p build-GENERIC_SPIRAM/esp-idf/smartconfig_ack
mkdir -p build-GENERIC_SPIRAM/esp-idf/spi_flash
mkdir -p build-GENERIC_SPIRAM/esp-idf/ulp
mkdir -p build-GENERIC_SPIRAM/esp-idf/lwip
mkdir -p build-GENERIC_SPIRAM/esp-idf/mbedtls
mkdir -p build-GENERIC_SPIRAM/esp-idf/mdns
mkdir -p build-GENERIC_SPIRAM/esp-idf/wpa_supplicant
mkdir -p build-GENERIC_SPIRAM/esp-idf/sdmmc
mkdir -p build-GENERIC_SPIRAM/esp-idf/bt_nimble
mkdir -p build-GENERIC_SPIRAM/esp-idf/ethernet
GEN build-GENERIC_SPIRAM/sdkconfig.h
CC /home/robin/esp/esp-idf/components/bootloader_support/src/bootloader_clock.c
CC /home/robin/esp/esp-idf/components/bootloader_support/src/bootloader_common.c
CC /home/robin/esp/esp-idf/components/bootloader_support/src/bootloader_flash.c
CC /home/robin/esp/esp-idf/components/bootloader_support/src/bootloader_flash_config.c
CC /home/robin/esp/esp-idf/components/bootloader_support/src/bootloader_init.c
CC /home/robin/esp/esp-idf/components/bootloader_support/src/bootloader_random.c
CC /home/robin/esp/esp-idf/components/bootloader_support/src/bootloader_utility.c
GEN build-GENERIC_SPIRAM/genhdr/mpversion.h
CC /home/robin/esp/esp-idf/components/bootloader_support/src/flash_qio_mode.c
CC /home/robin/esp/esp-idf/components/bootloader_support/src/esp_image_format.c
CC /home/robin/esp/esp-idf/components/bootloader_support/src/flash_encrypt.c
CC /home/robin/esp/esp-idf/components/bootloader_support/src/flash_partitions.c
CC /home/robin/esp/esp-idf/components/bootloader_support/src/bootloader_sha.c
CC /home/robin/esp/esp-idf/components/bootloader_support/src/secure_boot_signatures.c
CC /home/robin/esp/esp-idf/components/bootloader_support/src/secure_boot.c
CC /home/robin/esp/esp-idf/components/log/log.c
CC /home/robin/esp/esp-idf/components/spi_flash/spi_flash_rom_patch.c
CC /home/robin/esp/esp-idf/components/micro-ecc/micro-ecc/uECC.c
CC /home/robin/esp/esp-idf/components/soc/esp32/cpu_util.c
CC /home/robin/esp/esp-idf/components/soc/esp32/gpio_periph.c
CC /home/robin/esp/esp-idf/components/soc/esp32/rtc_clk.c
CC /home/robin/esp/esp-idf/components/soc/esp32/rtc_clk_init.c
CC /home/robin/esp/esp-idf/components/soc/esp32/rtc_init.c
CC /home/robin/esp/esp-idf/components/soc/esp32/rtc_periph.c
CC /home/robin/esp/esp-idf/components/soc/esp32/rtc_pm.c
CC /home/robin/esp/esp-idf/components/soc/esp32/rtc_sleep.c
CC /home/robin/esp/esp-idf/components/soc/esp32/rtc_time.c
CC /home/robin/esp/esp-idf/components/soc/esp32/rtc_wdt.c
CC /home/robin/esp/esp-idf/components/soc/esp32/sdio_slave_periph.c
CC /home/robin/esp/esp-idf/components/soc/esp32/sdmmc_periph.c
CC /home/robin/esp/esp-idf/components/soc/esp32/soc_memory_layout.c
CC /home/robin/esp/esp-idf/components/soc/esp32/spi_periph.c
CC /home/robin/esp/esp-idf/components/soc/src/memory_layout_utils.c
CC /home/robin/esp/esp-idf/components/bootloader/subproject/main/bootloader_start.c
GEN build-GENERIC_SPIRAM/genhdr/moduledefs.h
CC /home/robin/esp/esp-idf/components/bootloader_support/src/bootloader_flash.c
CC /home/robin/esp/esp-idf/components/bootloader_support/src/flash_qio_mode.c
CC /home/robin/esp/esp-idf/components/bootloader_support/src/bootloader_flash_config.c
CC /home/robin/esp/esp-idf/components/bootloader_support/src/secure_boot_signatures.c
CC /home/robin/esp/esp-idf/components/bootloader_support/src/bootloader_common.c
CC /home/robin/esp/esp-idf/components/bootloader_support/src/secure_boot.c
CC /home/robin/esp/esp-idf/components/bootloader_support/src/bootloader_clock.c
CC /home/robin/esp/esp-idf/components/bootloader_support/src/bootloader_random.c
CC /home/robin/esp/esp-idf/components/bootloader_support/src/flash_partitions.c
CC /home/robin/esp/esp-idf/components/bootloader_support/src/esp_image_format.c
CC /home/robin/esp/esp-idf/components/bootloader_support/src/bootloader_sha.c
CC /home/robin/esp/esp-idf/components/bootloader_support/src/flash_encrypt.c
CC /home/robin/esp/esp-idf/components/bootloader_support/src/bootloader_utility.c
CC /home/robin/esp/esp-idf/components/driver/spi_master.c
CC /home/robin/esp/esp-idf/components/driver/sigmadelta.c
CC /home/robin/esp/esp-idf/components/driver/uart.c
CC /home/robin/esp/esp-idf/components/driver/sdspi_transaction.c
CC /home/robin/esp/esp-idf/components/driver/sdio_slave.c
CC /home/robin/esp/esp-idf/components/driver/i2c.c
CC /home/robin/esp/esp-idf/components/driver/periph_ctrl.c
CC /home/robin/esp/esp-idf/components/driver/ledc.c
CC /home/robin/esp/esp-idf/components/driver/spi_common.c
CC /home/robin/esp/esp-idf/components/driver/sdspi_host.c
CC /home/robin/esp/esp-idf/components/driver/gpio.c
CC /home/robin/esp/esp-idf/components/driver/timer.c
CC /home/robin/esp/esp-idf/components/driver/pcnt.c
CC /home/robin/esp/esp-idf/components/driver/sdspi_crc.c
CC /home/robin/esp/esp-idf/components/driver/rmt.c
CC /home/robin/esp/esp-idf/components/driver/mcpwm.c
CC /home/robin/esp/esp-idf/components/driver/sdmmc_transaction.c
CC /home/robin/esp/esp-idf/components/driver/can.c
CC /home/robin/esp/esp-idf/components/driver/spi_slave.c
CC /home/robin/esp/esp-idf/components/driver/sdmmc_host.c
CC /home/robin/esp/esp-idf/components/driver/i2s.c
CC /home/robin/esp/esp-idf/components/driver/rtc_module.c
CC /home/robin/esp/esp-idf/components/efuse/esp32/esp_efuse_table.c
CC /home/robin/esp/esp-idf/components/efuse/src/esp_efuse_api.c
CC /home/robin/esp/esp-idf/components/efuse/src/esp_efuse_utility.c
CC /home/robin/esp/esp-idf/components/efuse/src/esp_efuse_fields.c
CC /home/robin/esp/esp-idf/components/esp32/spiram.c
CC /home/robin/esp/esp-idf/components/esp32/esp_adapter.c
CC /home/robin/esp/esp-idf/components/esp32/lib_printf.c
CC /home/robin/esp/esp-idf/components/esp32/task_wdt.c
CC /home/robin/esp/esp-idf/components/esp32/sleep_modes.c
CC /home/robin/esp/esp-idf/components/esp32/dbg_stubs.c
CC /home/robin/esp/esp-idf/components/esp32/hw_random.c
CC /home/robin/esp/esp-idf/components/esp32/cpu_start.c
CC /home/robin/esp/esp-idf/components/esp32/cache_sram_mmu.c
CC /home/robin/esp/esp-idf/components/esp32/restore.c
CC /home/robin/esp/esp-idf/components/esp32/int_wdt.c
CC /home/robin/esp/esp-idf/components/esp32/phy_init.c
CC /home/robin/esp/esp-idf/components/esp32/pm_trace.c
CC /home/robin/esp/esp-idf/components/esp32/spiram_psram.c
CC /home/robin/esp/esp-idf/components/esp32/cache_err_int.c
CC /home/robin/esp/esp-idf/components/esp32/esp_timer_esp32.c
CC /home/robin/esp/esp-idf/components/esp32/clk.c
CC /home/robin/esp/esp-idf/components/esp32/panic.c
CC /home/robin/esp/esp-idf/components/esp32/freertos_hooks.c
CC /home/robin/esp/esp-idf/components/esp32/gdbstub.c
CC /home/robin/esp/esp-idf/components/esp32/crosscore_int.c
CC /home/robin/esp/esp-idf/components/esp32/fast_crypto_ops.c
CC /home/robin/esp/esp-idf/components/esp32/ets_timer_legacy.c
CC /home/robin/esp/esp-idf/components/esp32/ipc.c
CC /home/robin/esp/esp-idf/components/esp32/intr_alloc.c
CC /home/robin/esp/esp-idf/components/esp32/reset_reason.c
CC /home/robin/esp/esp-idf/components/esp32/coexist.c
CC /home/robin/esp/esp-idf/components/esp32/wifi_init.c
CC /home/robin/esp/esp-idf/components/esp32/event_loop.c
CC /home/robin/esp/esp-idf/components/esp32/pm_esp32.c
CC /home/robin/esp/esp-idf/components/esp32/esp_err_to_name.c
CC /home/robin/esp/esp-idf/components/esp32/stack_check.c
CC /home/robin/esp/esp-idf/components/esp32/esp_timer.c
CC /home/robin/esp/esp-idf/components/esp32/dport_access.c
CC /home/robin/esp/esp-idf/components/esp32/pm_locks.c
CC /home/robin/esp/esp-idf/components/esp32/system_api.c
CC /home/robin/esp/esp-idf/components/esp32/brownout.c
CC /home/robin/esp/esp-idf/components/esp32/event_default_handlers.c
CC /home/robin/esp/esp-idf/components/esp32/esp_himem.c
CC /home/robin/esp/esp-idf/components/esp32/hwcrypto/sha.c
CC /home/robin/esp/esp-idf/components/esp32/hwcrypto/aes.c
CC /home/robin/esp/esp-idf/components/esp32/dport_panic_highint_hdl.S
CC /home/robin/esp/esp-idf/components/esp_ringbuf/ringbuf.c
CC /home/robin/esp/esp-idf/components/heap/multi_heap.c
CC /home/robin/esp/esp-idf/components/heap/heap_caps_init.c
CC /home/robin/esp/esp-idf/components/heap/heap_caps.c
CC /home/robin/esp/esp-idf/components/heap/heap_task_info.c
CC /home/robin/esp/esp-idf/components/heap/heap_trace.c
CC /home/robin/esp/esp-idf/components/heap/multi_heap_poisoning.c
CC /home/robin/esp/esp-idf/components/soc/esp32/soc_memory_layout.c
CC /home/robin/esp/esp-idf/components/soc/esp32/rtc_pm.c
CC /home/robin/esp/esp-idf/components/soc/esp32/rtc_periph.c
CC /home/robin/esp/esp-idf/components/soc/esp32/cpu_util.c
CC /home/robin/esp/esp-idf/components/soc/esp32/sdmmc_periph.c
CC /home/robin/esp/esp-idf/components/soc/esp32/rtc_wdt.c
CC /home/robin/esp/esp-idf/components/soc/esp32/sdio_slave_periph.c
CC /home/robin/esp/esp-idf/components/soc/esp32/rtc_init.c
CC /home/robin/esp/esp-idf/components/soc/esp32/spi_periph.c
CC /home/robin/esp/esp-idf/components/soc/esp32/rtc_clk_init.c
CC /home/robin/esp/esp-idf/components/soc/esp32/gpio_periph.c
CC /home/robin/esp/esp-idf/components/soc/esp32/rtc_sleep.c
CC /home/robin/esp/esp-idf/components/soc/esp32/rtc_time.c
CC /home/robin/esp/esp-idf/components/soc/esp32/rtc_clk.c
CC /home/robin/esp/esp-idf/components/soc/src/memory_layout_utils.c
CXX /home/robin/esp/esp-idf/components/cxx/cxx_guards.cpp
CXX /home/robin/esp/esp-idf/components/cxx/cxx_exception_stubs.cpp
CC /home/robin/esp/esp-idf/components/pthread/pthread_local_storage.c
CC /home/robin/esp/esp-idf/components/pthread/pthread_cond_var.c
CC /home/robin/esp/esp-idf/components/pthread/pthread.c
CC /home/robin/esp/esp-idf/components/freertos/xtensa_intr.c
In file included from /home/robin/esp/esp-idf/components/freertos/include/freertos/portable.h:89,
from /home/robin/esp/esp-idf/components/freertos/include/freertos/FreeRTOS.h:105,
from /home/robin/esp/esp-idf/components/cxx/cxx_guards.cpp:22:
/home/robin/esp/esp-idf/components/soc/esp32/include/soc/cpu.h: In function 'void cpu_configure_region_protection()':
/home/robin/esp/esp-idf/components/soc/esp32/include/soc/cpu.h:77:23: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare]
for (int i = 0; i < sizeof(pages_to_protect)/sizeof(pages_to_protect[0]); ++i) {
~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CC /home/robin/esp/esp-idf/components/freertos/queue.c
CC /home/robin/esp/esp-idf/components/freertos/croutine.c
CC /home/robin/esp/esp-idf/components/freertos/list.c
CC /home/robin/esp/esp-idf/components/freertos/xtensa_init.c
CC /home/robin/esp/esp-idf/components/freertos/port.c
CC /home/robin/esp/esp-idf/components/freertos/event_groups.c
CC /home/robin/esp/esp-idf/components/freertos/tasks.c
CC /home/robin/esp/esp-idf/components/freertos/timers.c
CC /home/robin/esp/esp-idf/components/freertos/FreeRTOS-openocd.c
CC /home/robin/esp/esp-idf/components/freertos/xtensa_overlay_os_hook.c
CC /home/robin/esp/esp-idf/components/freertos/xtensa_context.S
CC /home/robin/esp/esp-idf/components/freertos/portasm.S
CC /home/robin/esp/esp-idf/components/freertos/xtensa_vectors.S
CC /home/robin/esp/esp-idf/components/freertos/xtensa_vector_defaults.S
CC /home/robin/esp/esp-idf/components/freertos/xtensa_intr_asm.S
CC /home/robin/esp/esp-idf/components/vfs/vfs_uart.c
CC /home/robin/esp/esp-idf/components/vfs/vfs.c
CC /home/robin/esp/esp-idf/components/json/cJSON/cJSON_Utils.c
CC /home/robin/esp/esp-idf/components/json/cJSON/cJSON.c
CC /home/robin/esp/esp-idf/components/log/log.c
CC /home/robin/esp/esp-idf/components/xtensa-debug-module/eri.c
CC /home/robin/esp/esp-idf/components/xtensa-debug-module/trax.c
CC /home/robin/esp/esp-idf/components/tcpip_adapter/tcpip_adapter_lwip.c
CC /home/robin/esp/esp-idf/components/app_trace/app_trace_util.c
CC /home/robin/esp/esp-idf/components/app_trace/host_file_io.c
CC /home/robin/esp/esp-idf/components/app_trace/app_trace.c
CC /home/robin/esp/esp-idf/components/app_update/esp_ota_ops.c
CC /home/robin/esp/esp-idf/components/app_update/esp_app_desc.c
CC /home/robin/esp/esp-idf/components/newlib/time.c
CC /home/robin/esp/esp-idf/components/newlib/reent_init.c
CC /home/robin/esp/esp-idf/components/newlib/termios.c
CC /home/robin/esp/esp-idf/components/newlib/syscalls.c
CC /home/robin/esp/esp-idf/components/newlib/syscall_table.c
CC /home/robin/esp/esp-idf/components/newlib/poll.c
CC /home/robin/esp/esp-idf/components/newlib/utime.c
CC /home/robin/esp/esp-idf/components/newlib/locks.c
CC /home/robin/esp/esp-idf/components/newlib/random.c
CC /home/robin/esp/esp-idf/components/newlib/pthread.c
CC /home/robin/esp/esp-idf/components/newlib/select.c
CXX /home/robin/esp/esp-idf/components/nvs_flash/src/nvs_types.cpp
CXX /home/robin/esp/esp-idf/components/nvs_flash/src/nvs_ops.cpp
CXX /home/robin/esp/esp-idf/components/nvs_flash/src/nvs_page.cpp
CXX /home/robin/esp/esp-idf/components/nvs_flash/src/nvs_item_hash_list.cpp
CXX /home/robin/esp/esp-idf/components/nvs_flash/src/nvs_encr.cpp
CXX /home/robin/esp/esp-idf/components/nvs_flash/src/nvs_pagemanager.cpp
CXX /home/robin/esp/esp-idf/components/nvs_flash/src/nvs_storage.cpp
CXX /home/robin/esp/esp-idf/components/nvs_flash/src/nvs_api.cpp
CC /home/robin/esp/esp-idf/components/smartconfig_ack/smartconfig_ack.c
CC /home/robin/esp/esp-idf/components/spi_flash/flash_mmap.c
CC /home/robin/esp/esp-idf/components/spi_flash/partition.c
In file included from /home/robin/esp/esp-idf/components/freertos/include/freertos/portable.h:89,
from /home/robin/esp/esp-idf/components/freertos/include/freertos/FreeRTOS.h:105,
from /home/robin/esp/esp-idf/components/nvs_flash/src/nvs_platform.hpp:19,
from /home/robin/esp/esp-idf/components/nvs_flash/src/nvs_api.cpp:18:
/home/robin/esp/esp-idf/components/soc/esp32/include/soc/cpu.h: In function 'void cpu_configure_region_protection()':
/home/robin/esp/esp-idf/components/soc/esp32/include/soc/cpu.h:77:23: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare]
for (int i = 0; i < sizeof(pages_to_protect)/sizeof(pages_to_protect[0]); ++i) {
~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CC /home/robin/esp/esp-idf/components/spi_flash/spi_flash_rom_patch.c
CC /home/robin/esp/esp-idf/components/spi_flash/cache_utils.c
CC /home/robin/esp/esp-idf/components/spi_flash/flash_ops.c
CC /home/robin/esp/esp-idf/components/ulp/ulp.c
CC /home/robin/esp/esp-idf/components/ulp/ulp_macro.c
CC /home/robin/esp/esp-idf/components/lwip/apps/dhcpserver/dhcpserver.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/api/netdb.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/api/api_lib.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/api/netifapi.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/api/tcpip.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/api/netbuf.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/api/err.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/api/api_msg.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/api/sockets.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/apps/sntp/sntp.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/core/stats.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/core/mem.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/core/inet_chksum.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/core/init.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/core/memp.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/core/tcp_in.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/core/dns.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/core/timeouts.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/core/ip.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/core/raw.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/core/tcp.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/core/pbuf.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/core/netif.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/core/sys.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/core/def.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/core/udp.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/core/tcp_out.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/core/ipv4/ip4_frag.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/core/ipv4/dhcp.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/core/ipv4/etharp.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/core/ipv4/ip4_addr.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/core/ipv4/igmp.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/core/ipv4/ip4.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/core/ipv4/autoip.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/core/ipv4/icmp.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/core/ipv6/ip6_frag.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/core/ipv6/dhcp6.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/core/ipv6/inet6.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/core/ipv6/ip6_addr.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/core/ipv6/ip6.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/core/ipv6/nd6.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/core/ipv6/mld6.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/core/ipv6/ethip6.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/core/ipv6/icmp6.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/netif/slipif.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/netif/ethernet.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/netif/lowpan6.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/netif/ethernetif.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/netif/ppp/eap.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/netif/ppp/pppol2tp.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/netif/ppp/magic.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/netif/ppp/pppapi.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/netif/ppp/chap_ms.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/netif/ppp/ppp.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/netif/ppp/ecp.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/netif/ppp/chap-md5.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/netif/ppp/vj.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/netif/ppp/ipv6cp.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/netif/ppp/ccp.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/netif/ppp/chap-new.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/netif/ppp/auth.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/netif/ppp/utils.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/netif/ppp/pppcrypt.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/netif/ppp/multilink.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/netif/ppp/mppe.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/netif/ppp/pppos.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/netif/ppp/ipcp.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/netif/ppp/lcp.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/netif/ppp/pppoe.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/netif/ppp/eui64.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/netif/ppp/demand.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/netif/ppp/upap.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/netif/ppp/fsm.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/netif/ppp/polarssl/des.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/netif/ppp/polarssl/sha1.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/netif/ppp/polarssl/md4.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/netif/ppp/polarssl/md5.c
CC /home/robin/esp/esp-idf/components/lwip/lwip/src/netif/ppp/polarssl/arc4.c
CC /home/robin/esp/esp-idf/components/lwip/port/esp32/vfs_lwip.c
CC /home/robin/esp/esp-idf/components/lwip/port/esp32/debug/lwip_debug.c
CC /home/robin/esp/esp-idf/components/lwip/port/esp32/netif/wlanif.c
CC /home/robin/esp/esp-idf/components/lwip/port/esp32/netif/dhcp_state.c
CC /home/robin/esp/esp-idf/components/lwip/port/esp32/netif/ethernetif.c
CC /home/robin/esp/esp-idf/components/lwip/port/esp32/freertos/sys_arch.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/oid.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/camellia.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/chachapoly.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/blowfish.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/ecp_curves.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/cipher.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/pkcs11.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/entropy_poll.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/ssl_ticket.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/ctr_drbg.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/x509write_csr.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/version_features.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/md5.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/nist_kw.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/dhm.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/rsa.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/md4.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/ssl_cookie.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/sha256.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/pkwrite.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/ssl_cli.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/timing.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/asn1parse.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/padlock.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/pem.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/version.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/ssl_cache.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/memory_buffer_alloc.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/x509_create.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/md2.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/ecdsa.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/ssl_srv.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/x509_crt.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/ecdh.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/asn1write.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/aria.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/chacha20.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/debug.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/ssl_tls.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/ecjpake.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/net_sockets.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/ssl_ciphersuites.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/sha512.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/base64.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/xtea.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/ecp.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/aes.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/rsa_internal.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/cipher_wrap.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/arc4.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/bignum.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/pkparse.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/havege.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/threading.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/x509_crl.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/gcm.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/cmac.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/md_wrap.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/x509.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/certs.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/pkcs5.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/hkdf.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/platform_util.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/poly1305.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/hmac_drbg.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/des.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/pk.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/platform.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/ccm.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/x509write_crt.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/pk_wrap.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/entropy.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/aesni.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/pkcs12.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/md.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/ripemd160.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/sha1.c
CC /home/robin/esp/esp-idf/components/mbedtls/mbedtls/library/x509_csr.c
CC /home/robin/esp/esp-idf/components/mbedtls/port/mbedtls_debug.c
CC /home/robin/esp/esp-idf/components/mbedtls/port/esp_sha1.c
CC /home/robin/esp/esp-idf/components/mbedtls/port/esp_sha256.c
CC /home/robin/esp/esp-idf/components/mbedtls/port/esp_bignum.c
CC /home/robin/esp/esp-idf/components/mbedtls/port/net_sockets.c
CC /home/robin/esp/esp-idf/components/mbedtls/port/esp_hardware.c
CC /home/robin/esp/esp-idf/components/mbedtls/port/esp_mem.c
CC /home/robin/esp/esp-idf/components/mbedtls/port/esp_sha512.c
CC /home/robin/esp/esp-idf/components/mdns/mdns_console.c
CC /home/robin/esp/esp-idf/components/mdns/mdns_networking.c
CC /home/robin/esp/esp-idf/components/mdns/mdns.c
CC /home/robin/esp/esp-idf/components/wpa_supplicant/port/os_xtensa.c
CC /home/robin/esp/esp-idf/components/wpa_supplicant/src/crypto/aes-internal-enc.c
CC /home/robin/esp/esp-idf/components/wpa_supplicant/src/crypto/sha256-internal.c
CC /home/robin/esp/esp-idf/components/wpa_supplicant/src/crypto/md5-internal.c
CC /home/robin/esp/esp-idf/components/wpa_supplicant/src/crypto/aes-internal.c
CC /home/robin/esp/esp-idf/components/wpa_supplicant/src/crypto/sha1.c
CC /home/robin/esp/esp-idf/components/wpa_supplicant/src/crypto/aes-internal-dec.c
CC /home/robin/esp/esp-idf/components/wpa_supplicant/src/crypto/aes-unwrap.c
CC /home/robin/esp/esp-idf/components/wpa_supplicant/src/crypto/aes-wrap.c
CC /home/robin/esp/esp-idf/components/wpa_supplicant/src/crypto/crypto_internal-rsa.c
CC /home/robin/esp/esp-idf/components/wpa_supplicant/src/crypto/des-internal.c
CC /home/robin/esp/esp-idf/components/wpa_supplicant/src/crypto/dh_group5.c
CC /home/robin/esp/esp-idf/components/wpa_supplicant/src/crypto/ms_funcs.c
CC /home/robin/esp/esp-idf/components/wpa_supplicant/src/crypto/crypto_mbedtls.c
CC /home/robin/esp/esp-idf/components/wpa_supplicant/src/crypto/sha1-internal.c
CC /home/robin/esp/esp-idf/components/wpa_supplicant/src/crypto/md4-internal.c
CC /home/robin/esp/esp-idf/components/wpa_supplicant/src/crypto/dh_groups.c
CC /home/robin/esp/esp-idf/components/wpa_supplicant/src/crypto/crypto_internal.c
CC /home/robin/esp/esp-idf/components/wpa_supplicant/src/crypto/sha256.c
CC /home/robin/esp/esp-idf/components/wpa_supplicant/src/crypto/md5.c
CC /home/robin/esp/esp-idf/components/wpa_supplicant/src/crypto/aes-cbc.c
CC /home/robin/esp/esp-idf/components/wpa_supplicant/src/crypto/sha1-pbkdf2.c
CC /home/robin/esp/esp-idf/components/wpa_supplicant/src/crypto/rc4.c
CC /home/robin/esp/esp-idf/components/wpa_supplicant/src/crypto/crypto_internal-modexp.c
CC /home/robin/esp/esp-idf/components/wpa_supplicant/src/crypto/crypto_internal-cipher.c
CC /home/robin/esp/esp-idf/components/wpa_supplicant/src/crypto/bignum.c
CC /home/robin/esp/esp-idf/components/wpa_supplicant/src/fast_crypto/fast_aes-wrap.c
CC /home/robin/esp/esp-idf/components/wpa_supplicant/src/fast_crypto/fast_sha256-internal.c
CC /home/robin/esp/esp-idf/components/wpa_supplicant/src/fast_crypto/fast_aes-cbc.c
CC /home/robin/esp/esp-idf/components/wpa_supplicant/src/fast_crypto/fast_crypto_internal.c
CC /home/robin/esp/esp-idf/components/wpa_supplicant/src/fast_crypto/fast_sha256.c
CC /home/robin/esp/esp-idf/components/wpa_supplicant/src/fast_crypto/fast_aes-unwrap.c
CC /home/robin/esp/esp-idf/components/wpa_supplicant/src/fast_crypto/fast_crypto_internal-modexp.c
CC /home/robin/esp/esp-idf/components/wpa_supplicant/src/fast_crypto/fast_crypto_internal-cipher.c
CC /home/robin/esp/esp-idf/components/wpa_supplicant/src/wps/eap_common.c
CC /home/robin/esp/esp-idf/components/wpa_supplicant/src/wps/wps_attr_process.c
CC /home/robin/esp/esp-idf/components/wpa_supplicant/src/wps/wps_validate.c
CC /home/robin/esp/esp-idf/components/wpa_supplicant/src/wps/wps_attr_parse.c
CC /home/robin/esp/esp-idf/components/wpa_supplicant/src/wps/wps_dev_attr.c
CC /home/robin/esp/esp-idf/components/wpa_supplicant/src/wps/wps.c
CC /home/robin/esp/esp-idf/components/wpa_supplicant/src/wps/wps_common.c
CC /home/robin/esp/esp-idf/components/wpa_supplicant/src/wps/wps_registrar.c
CC /home/robin/esp/esp-idf/components/wpa_supplicant/src/wps/wps_attr_build.c
CC /home/robin/esp/esp-idf/components/wpa_supplicant/src/wps/uuid.c
CC /home/robin/esp/esp-idf/components/wpa_supplicant/src/wps/wps_enrollee.c
CC /home/robin/esp/esp-idf/components/sdmmc/sdmmc_init.c
CC /home/robin/esp/esp-idf/components/sdmmc/sdmmc_io.c
CC /home/robin/esp/esp-idf/components/sdmmc/sdmmc_common.c
CC /home/robin/esp/esp-idf/components/sdmmc/sdmmc_mmc.c
CC /home/robin/esp/esp-idf/components/sdmmc/sdmmc_cmd.c
CC /home/robin/esp/esp-idf/components/sdmmc/sdmmc_sd.c
CC /home/robin/esp/esp-idf/components/bt/bt.c
CC /home/robin/esp/esp-idf/components/nimble/esp-hci/src/esp_nimble_hci.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/ext/tinycrypt/src/ctr_prng.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/ext/tinycrypt/src/aes_encrypt.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/ext/tinycrypt/src/ecc_dh.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/ext/tinycrypt/src/cbc_mode.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/ext/tinycrypt/src/ccm_mode.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/ext/tinycrypt/src/hmac_prng.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/ext/tinycrypt/src/ctr_mode.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/ext/tinycrypt/src/aes_decrypt.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/ext/tinycrypt/src/hmac.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/ext/tinycrypt/src/ecc_platform_specific.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/ext/tinycrypt/src/sha256.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/ext/tinycrypt/src/cmac_mode.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/ext/tinycrypt/src/ecc.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/ext/tinycrypt/src/ecc_dsa.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/nimble/host/services/ans/src/ble_svc_ans.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/ext/tinycrypt/src/utils.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/nimble/host/services/bas/src/ble_svc_bas.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/nimble/host/services/gap/src/ble_svc_gap.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/nimble/host/services/gatt/src/ble_svc_gatt.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/nimble/host/services/ias/src/ble_svc_ias.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/nimble/host/services/lls/src/ble_svc_lls.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/nimble/host/services/tps/src/ble_svc_tps.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/nimble/host/src/ble_ibeacon.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/nimble/host/src/ble_eddystone.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/nimble/host/src/ble_l2cap_sig_cmd.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/nimble/host/src/ble_store.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/nimble/host/src/ble_hs_misc.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/nimble/host/src/ble_att_svr.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/nimble/host/src/ble_hs_atomic.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/nimble/host/src/ble_hs_mbuf.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/nimble/host/src/ble_hs_mqueue.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/nimble/host/src/ble_hs_shutdown.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/nimble/host/src/ble_hs_dbg.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/nimble/host/src/ble_gatts.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/nimble/host/src/ble_uuid.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/nimble/host/src/ble_att.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/nimble/host/src/ble_hs_adv.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/nimble/host/src/ble_hs_resolv.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/nimble/host/src/ble_hs_log.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/nimble/host/src/ble_sm_sc.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/nimble/host/src/ble_hs_cfg.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/nimble/host/src/ble_hs_hci.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/nimble/host/src/ble_sm.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/nimble/host/src/ble_hs_hci_evt.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/nimble/host/src/ble_hs_pvcy.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/nimble/host/src/ble_hs_flow.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/nimble/host/src/ble_hs_hci_util.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/nimble/host/src/ble_hs_startup.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/nimble/host/src/ble_l2cap.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/nimble/host/src/ble_l2cap_sig.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/nimble/host/src/ble_hs_stop.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/nimble/host/src/ble_att_cmd.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/nimble/host/src/ble_store_util.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/nimble/host/src/ble_l2cap_coc.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/nimble/host/src/ble_hs_id.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/nimble/host/src/ble_gatts_lcl.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/nimble/host/src/ble_monitor.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/nimble/host/src/ble_hs_hci_cmd.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/nimble/host/src/ble_att_clt.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/nimble/host/src/ble_hs.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/nimble/host/src/ble_gattc.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/nimble/host/src/ble_hs_conn.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/nimble/host/src/ble_sm_alg.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/nimble/host/src/ble_sm_cmd.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/nimble/host/src/ble_sm_lgcy.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/nimble/host/src/ble_gap.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/nimble/host/store/config/src/ble_store_config.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/nimble/host/store/config/src/ble_store_nvs.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/nimble/host/store/ram/src/ble_store_ram.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/nimble/host/util/src/addr.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/nimble/src/ble_util.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/porting/nimble/src/os_mbuf.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/porting/nimble/src/mem.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/porting/nimble/src/os_mempool.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/porting/nimble/src/hal_timer.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/porting/nimble/src/nimble_port.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/porting/nimble/src/os_cputime_pwr2.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/porting/nimble/src/os_cputime.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/porting/nimble/src/os_msys_init.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/porting/nimble/src/endian.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/porting/npl/freertos/src/nimble_port_freertos.c
CC /home/robin/esp/esp-idf/components/nimble/nimble/porting/npl/freertos/src/npl_os_freertos.c
CC /home/robin/esp/esp-idf/components/nimble/port/src/esp_nimble_mem.c
CC /home/robin/esp/esp-idf/components/ethernet/emac_dev.c
CC /home/robin/esp/esp-idf/components/ethernet/emac_main.c
CC /home/robin/esp/esp-idf/components/ethernet/eth_phy/phy_common.c
CC /home/robin/esp/esp-idf/components/ethernet/eth_phy/phy_lan8720.c
CC /home/robin/esp/esp-idf/components/ethernet/eth_phy/phy_ip101.c
CC /home/robin/esp/esp-idf/components/ethernet/eth_phy/phy_tlk110.c
AR build-GENERIC_SPIRAM/bootloader/libbootloader_support.a
AR build-GENERIC_SPIRAM/bootloader/liblog.a
AR build-GENERIC_SPIRAM/bootloader/libspi_flash.a
AR build-GENERIC_SPIRAM/bootloader/libmicro-ecc.a
AR build-GENERIC_SPIRAM/bootloader/libsoc.a
AR build-GENERIC_SPIRAM/bootloader/libmain.a
GEN build-GENERIC_SPIRAM/genhdr/qstr.i.last
AR build-GENERIC_SPIRAM/esp-idf/bootloader_support/libbootloader_support.a
AR build-GENERIC_SPIRAM/esp-idf/driver/libdriver.a
AR build-GENERIC_SPIRAM/esp-idf/efuse/libefuse.a
AR build-GENERIC_SPIRAM/esp-idf/esp32/libesp32.a
AR build-GENERIC_SPIRAM/esp-idf/esp_ringbuf/libesp_ringbuf.a
AR build-GENERIC_SPIRAM/esp-idf/heap/libheap.a
AR build-GENERIC_SPIRAM/esp-idf/soc/libsoc.a
AR build-GENERIC_SPIRAM/esp-idf/cxx/libcxx.a
AR build-GENERIC_SPIRAM/esp-idf/pthread/libpthread.a
AR build-GENERIC_SPIRAM/esp-idf/freertos/libfreertos.a
AR build-GENERIC_SPIRAM/esp-idf/vfs/libvfs.a
AR build-GENERIC_SPIRAM/esp-idf/json/libjson.a
AR build-GENERIC_SPIRAM/esp-idf/log/liblog.a
AR build-GENERIC_SPIRAM/esp-idf/xtensa-debug-module/libxtensa-debug-module.a
AR build-GENERIC_SPIRAM/esp-idf/tcpip_adapter/libtcpip_adapter.a
AR build-GENERIC_SPIRAM/esp-idf/app_trace/libapp_trace.a
AR build-GENERIC_SPIRAM/esp-idf/app_update/libapp_update.a
AR build-GENERIC_SPIRAM/esp-idf/newlib/libnewlib.a
AR build-GENERIC_SPIRAM/esp-idf/nvs_flash/libnvs_flash.a
AR build-GENERIC_SPIRAM/esp-idf/smartconfig_ack/libsmartconfig_ack.a
AR build-GENERIC_SPIRAM/esp-idf/spi_flash/libspi_flash.a
AR build-GENERIC_SPIRAM/esp-idf/ulp/libulp.a
AR build-GENERIC_SPIRAM/esp-idf/lwip/liblwip.a
AR build-GENERIC_SPIRAM/esp-idf/mbedtls/libmbedtls.a
AR build-GENERIC_SPIRAM/esp-idf/mdns/libmdns.a
AR build-GENERIC_SPIRAM/esp-idf/wpa_supplicant/libwpa_supplicant.a
AR build-GENERIC_SPIRAM/esp-idf/sdmmc/libsdmmc.a
AR build-GENERIC_SPIRAM/esp-idf/bt_nimble/libbt_nimble.a
GEN build-GENERIC_SPIRAM/esp-idf/bootloader_support/libbootloader_support.a.sections_info
GEN build-GENERIC_SPIRAM/esp-idf/driver/libdriver.a.sections_info
GEN build-GENERIC_SPIRAM/esp-idf/efuse/libefuse.a.sections_info
GEN build-GENERIC_SPIRAM/esp-idf/esp32/libesp32.a.sections_info
GEN build-GENERIC_SPIRAM/esp-idf/esp_ringbuf/libesp_ringbuf.a.sections_info
GEN build-GENERIC_SPIRAM/esp-idf/heap/libheap.a.sections_info
GEN build-GENERIC_SPIRAM/esp-idf/soc/libsoc.a.sections_info
GEN build-GENERIC_SPIRAM/esp-idf/cxx/libcxx.a.sections_info
GEN build-GENERIC_SPIRAM/esp-idf/pthread/libpthread.a.sections_info
GEN build-GENERIC_SPIRAM/esp-idf/freertos/libfreertos.a.sections_info
GEN build-GENERIC_SPIRAM/esp-idf/vfs/libvfs.a.sections_info
GEN build-GENERIC_SPIRAM/esp-idf/json/libjson.a.sections_info
GEN build-GENERIC_SPIRAM/esp-idf/log/liblog.a.sections_info
GEN build-GENERIC_SPIRAM/esp-idf/xtensa-debug-module/libxtensa-debug-module.a.sections_info
GEN build-GENERIC_SPIRAM/esp-idf/tcpip_adapter/libtcpip_adapter.a.sections_info
GEN build-GENERIC_SPIRAM/esp-idf/app_trace/libapp_trace.a.sections_info
GEN build-GENERIC_SPIRAM/esp-idf/app_update/libapp_update.a.sections_info
GEN build-GENERIC_SPIRAM/esp-idf/newlib/libnewlib.a.sections_info
GEN build-GENERIC_SPIRAM/esp-idf/nvs_flash/libnvs_flash.a.sections_info
GEN build-GENERIC_SPIRAM/esp-idf/smartconfig_ack/libsmartconfig_ack.a.sections_info
GEN build-GENERIC_SPIRAM/esp-idf/spi_flash/libspi_flash.a.sections_info
GEN build-GENERIC_SPIRAM/esp-idf/ulp/libulp.a.sections_info
GEN build-GENERIC_SPIRAM/esp-idf/lwip/liblwip.a.sections_info
GEN build-GENERIC_SPIRAM/esp-idf/mbedtls/libmbedtls.a.sections_info
GEN build-GENERIC_SPIRAM/esp-idf/mdns/libmdns.a.sections_info
GEN build-GENERIC_SPIRAM/esp-idf/wpa_supplicant/libwpa_supplicant.a.sections_info
GEN build-GENERIC_SPIRAM/esp-idf/sdmmc/libsdmmc.a.sections_info
GEN build-GENERIC_SPIRAM/esp-idf/bt_nimble/libbt_nimble.a.sections_info
LINK build-GENERIC_SPIRAM/bootloader.elf
AR build-GENERIC_SPIRAM/esp-idf/ethernet/libethernet.a
GEN build-GENERIC_SPIRAM/esp-idf/ethernet/libethernet.a.sections_info
GEN build-GENERIC_SPIRAM/esp32.project.ld
Traceback (most recent call last):
File "/home/robin/esp/esp-idf/tools/ldgen/ldgen.py", line 22, in <module>
from fragments import FragmentFileModel
File "/home/robin/esp/esp-idf/tools/ldgen/fragments.py", line 20, in <module>
from sdkconfig import SDKConfig
File "/home/robin/esp/esp-idf/tools/ldgen/sdkconfig.py", line 18, in <module>
from pyparsing import Word, printables, Combine, Literal, hexnums, quotedString, Optional, nums, removeQuotes, oneOf, Group, infixNotation, opAssoc
ModuleNotFoundError: No module named 'pyparsing'
make: *** [Makefile:714: build-GENERIC_SPIRAM/esp32.project.ld] Error 1
make: *** Waiting for unfinished jobs....

RobinMosedale
Posts: 29
Joined: Fri Jul 26, 2019 9:40 pm

Re: Cross compiling Micropython from GITHUb source -errors

Post by RobinMosedale » Fri Nov 13, 2020 4:52 pm

xtensa-esp32-elf-gcc --version
xtensa-esp32-elf-gcc (crosstool-NG esp-2019r2) 8.2.0
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

RobinMosedale
Posts: 29
Joined: Fri Jul 26, 2019 9:40 pm

Re: Cross compiling Micropython from GITHUb source -errors

Post by RobinMosedale » Fri Nov 13, 2020 4:53 pm

file `which xtensa-esp32-elf-gcc`
/home/robin/esp/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=53aa911a5d30050f70db09ca7ba69ffaf3f294a3, stripped

User avatar
jimmo
Posts: 2013
Joined: Tue Aug 08, 2017 1:57 am
Location: Sydney, Australia
Contact:

Re: Cross compiling Micropython from GITHUb source -errors

Post by jimmo » Sat Nov 14, 2020 4:36 am

RobinMosedale wrote:
Fri Nov 13, 2020 4:51 pm
File "/home/robin/esp/esp-idf/tools/ldgen/sdkconfig.py", line 18, in <module>
from pyparsing import Word, printables, Combine, Literal, hexnums, quotedString, Optional, nums, removeQuotes, oneOf, Group, infixNotation, opAssoc
ModuleNotFoundError: No module named 'pyparsing'
You need the pyparsing module. See the section "Python dependencies" in ports/esp32/README.md

I recommend using a virtual environment so you can install the specific version that the ESP-IDF requires.

RobinMosedale
Posts: 29
Joined: Fri Jul 26, 2019 9:40 pm

Re: Cross compiling Micropython from GITHUb source -errors

Post by RobinMosedale » Mon Nov 16, 2020 9:36 pm

Thank you Jimmo.

Well, I've spent many hours since your advice. I foolishly pursued a windows installation but of course..............

So I have performed carefully ensuring the correct checkout, and making sure that the dependencies are installed. Each head banging attempt with a fresh uninstall/install of WSL/Debian.

"robin@Rose:~/esp/micropython/ports/esp32$ ## go to the esp32 porting files
robin@Rose:~/esp/micropython/ports/esp32$ cd ../ports/esp32^C
robin@Rose:~/esp/micropython/ports/esp32$ sudo PYTHON=python3 pip install -r /home/robin/esp/esp-idf/requirements.txt
Requirement already satisfied: setuptools in /usr/lib/python2.7/dist-packages (from -r /home/robin/esp/esp-idf/requirements.txt (line 4)) (40.8.0)
Requirement already satisfied: click>=5.0 in /usr/lib/python2.7/dist-packages (from -r /home/robin/esp/esp-idf/requirements.txt (line 8)) (7.0)
Requirement already satisfied: pyserial>=3.0 in /usr/lib/python2.7/dist-packages (from -r /home/robin/esp/esp-idf/requirements.txt (line 9)) (3.4)
Requirement already satisfied: future>=0.15.2 in /usr/lib/python2.7/dist-packages (from -r /home/robin/esp/esp-idf/requirements.txt (line 10)) (0.16.0)
Requirement already satisfied: cryptography>=2.1.4 in /usr/lib/python2.7/dist-packages (from -r /home/robin/esp/esp-idf/requirements.txt (line 11)) (2.6.1)
Requirement already satisfied: pyparsing<2.4.0,>=2.0.3 in /usr/lib/python2.7/dist-packages (from -r /home/robin/esp/esp-idf/requirements.txt (line 12)) (2.2.0)
Requirement already satisfied: pyelftools>=0.22 in /usr/lib/python2.7/dist-packages (from -r /home/robin/esp/esp-idf/requirements.txt (line 13)) (0.25)
robin@Rose:~/esp/micropython/ports/esp32$ make -j4 submodules
Use make V=1 or set BUILD_VERBOSE in your environment to increase build verbosity.
Building with ESP IDF v4
Traceback (most recent call last):
File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'pyparsing'
** ERROR **
EDP IDF requires pyparsing version less than 2.4
You will need to set up a Python virtual environment with pyparsing 2.3.1
Please see README.md for more information
Makefile:97: *** Incorrect pyparsing version. Stop.
robin@Rose:~/esp/micropython/ports/esp32$
"

Inordinately complicated and fragile.

I'm aging. Aging far too rapidly.
Long gone are my days of writing Self Consistent Field Convergent Hartee Fock programmes for theoretic quantum mechanics.
Long gone are my days writing machine code for mainframe operating systems.
So are my Autopilots and flight critical flight controls, 'weapons management', navigation.
So are my days running the largest team of mathematicians/software engineers/cryptographers outside the USA. Mostly double firsts Oxford/Cambridge.
So are the days of designing and building the most powerful MPP with custom HW kept at liquid Nitrogen temperatures

I think I can still follow simple instructions.
This is less than helpful

I am absolutely not interested in delving into the niceties (fuff) of various Linux builds.

This exercise is merely a means to an end:-

I merely wish to compile the 2640 CAM modules found elsewhere into micropython in order that I may write my own application on it.

Forgive me. I rant. Anyone would after banging one's head against each and every stage. Each one not necessarily transparent.
Sure I should know more about GIT, Linux, and virtual environments.

You may well ask why I haven't followed the usual route of invoking source - install.h and export.sh, they open and fail.

I can successfully use esp-idf to compile C, build and burn and monitor. But this micropython suite is defeating me completely.

User avatar
jimmo
Posts: 2013
Joined: Tue Aug 08, 2017 1:57 am
Location: Sydney, Australia
Contact:

Re: Cross compiling Micropython from GITHUb source -errors

Post by jimmo » Mon Nov 16, 2020 11:38 pm

RobinMosedale wrote:
Mon Nov 16, 2020 9:36 pm
You may well ask why I haven't followed the usual route of invoking source - install.h and export.sh, they open and fail.
I'm sorry this isn't working for you! I completely agree too, it's awful and complicated in a way that does seem unnecessary, but unfortunately MicroPython on ESP32 is a bit of a difficult combination of two very different systems.

MicroPython was originally designed to run "bare metal", and the ESP32 doesn't fit that assumption (as it provides its own OS). Also MicroPython's "make" based build system is very different to ESP-IDF's "layers-on-top-of-cmake" system. We have invested a considerable number of hours trying to make this work better but the ESP-IDF is also a moving target -- every release breaks it in a new and exciting way.

This is not helped by the fact that the IDF has dependencies on things like specific versions of Python libraries etc, as well as having to support multiple versions of the IDF.

More recently there have been efforts to move MicroPython itself to cmake, so that it becomes a component of the ESP-IDF build system. See https://github.com/micropython/micropython/pull/6473

On other non-ESP platforms (e.g. STM32) the situation is much simpler as the compiler comes from the OS package manager, and you can just run "make" directly.
RobinMosedale wrote:
Mon Nov 16, 2020 9:36 pm
I can successfully use esp-idf to compile C, build and burn and monitor. But this micropython suite is defeating me completely.
If install.sh / export.sh are not working, then how are you building other ESP-IDF projects?
RobinMosedale wrote:
Mon Nov 16, 2020 9:36 pm
robin@Rose:~/esp/micropython/ports/esp32$ sudo PYTHON=python3 pip install -r /home/robin/esp/esp-idf/requirements.txt
For what it's worth though, the issue you're seeing is that this isn't how "pip" works -- the "PYTHON=python3" doesn't do anything, as pip is itself either python2 or python3. Setting the "PYTHON" env variable is only an option for invoking MicroPython's makefiles to tell it what to use.

So what's happening here is that your "system" Python is python2.7, but MicroPython uses python3 by default. When you run "sudo PYTHON=python3 pip install -r /home/robin/esp/esp-idf/requirements.txt" it's installing those packages for python2.7.

Then when you run "make -j4 submodules" it's using python3 by default.

So... either you need to install the required modules for python3 (i.e. by using "sudo pip3" if that's available, or by creating a python3 virtual environment), OR you need to tell MicroPython's build to use python2 (using "make PYTHON=python2"). I recommend the former.

RobinMosedale
Posts: 29
Joined: Fri Jul 26, 2019 9:40 pm

Re: Cross compiling Micropython from GITHUb source -errors

Post by RobinMosedale » Tue Nov 17, 2020 12:10 am

Thank you Jimmo.

I'll attempt to resolve.

It would be useful to have a configuration of compatible hash's to pull from git and explicit commands just to build a 'standard' build as a test.

I am by the way very cognisant of variant version control as you would deduce from the safety critical background, but unless one knows the correct variant/version associated with particular 'hashes' as Git uses them, then I'm finding this all hit and miss. Well all miss really.

The number of incorrect permutations means that I've expended 10's of hours. I could send the stuff to the Cray's in Cheltenham to cover all possible permutations but that seems to be a diversion of resources from National Security. Nonetheless I'm purely guessing.

Do me a favour.

I've reverted to a standard system: abandoned the Pi, and windows is no use, so I'm on Debian with lxde (gnome), clean each time.
I could set up a partition on a dedicated machine with Intel x64, but that seems a further abstraction.
This is the simplest cleanest system, recreated after each failure.
I'm happy to use Ubutnu or some other build if that helps, but just tell me how a 'absolute standard build' runs.
Do the build yourself from scratch, ab initio as it were. Scrape your screens and send them to me.

Happy head banging

PS. I do have a veritably happy disposition, wicked sense of humour, and infinite determination and tolerance.
If this isn't possible, I'd suggest pulling all the time wasting misleading build stuff off GitHub, or perhaps I should.

Bless
Robin

Post Reply