Did you do a clean build (ie "make clean") before you rebuilt?jumjum123 wrote:Thanks for the feedback, downloaded latest version from github and still got undefined reference
That's... strange. This stuff should all be taken care of by the build system behind the scenes.jumjum123 wrote: Next added
-T(ESP_IDF_PATH)/components/esp32/ld/esp32.rom.spiram_incompatible_fns.ld
Now got undefined reference for esp_pthread_init
Next added
-L$(ESP_APP_TEMPLATE_PATH)/build/pthread \
-I$(ESP_IDF_PATH)/components/pthread/include \
-lheap \
Compiling runs fine. Size of binary is about 30k less than before.
Are you able to please email me a zip file of your project directory by any chance (including the sdkconfig and the "build" directory)? angus at espressif dot com.
I don't really know, as this seems like a regression in the build system. We run a number of automated build tests, but clearly they missed something.Would there be any way to find changes like this, instead of my simple textsearch, trial & error ?
There are some debugging tips here which can give some insight but it's a pretty tedious amount of information to filter through:
https://esp-idf.readthedocs.io/en/lates ... ke-process
(At the moment "make V=1" isn't working due to a regression last week. This will be fixed on github very soon.)
Correct, there are a few details in the docs linked above but not a lot. The build system .mk files do have a lot of comments in them, but the IDF build system uses almost every feature GNU Make has so it relies on some prior familiarity (and/or close readings of the GNU Make manual).kolban wrote: To the best of my knowledge, the "internals" of the build system supplied be ESP-IDF aren't documented/broken apart and the high level expectation is to use the build environment to create ESP32 applications. That said, there should be no mystery nor magic in the build meaning that if you write your own scripts or build your own Makefile that does the same as the ESP-IDF build system, you should be just fine.
Git can also do this, ie:To perform "regression" checks, get yourself to a working environment and take a copy of the Makefiles necessary to build a regular ESP-IDF environment. Put them somewhere safe. Now, when ever you grab a new copy of the master ESP-IDF, you can perform a file diff against those few files and the ones you had saved when it was working. That way you will at least be "made aware" when a change is made to the build environment so that you can reflect any necessary changes back into your own build environment.
Code: Select all
git fetch origin
git diff origin/master..HEAD -- make
In general, if you follow the directions in the build system docs then the only problems you should have after an update are due to bugs.