Page 1 of 1

SDK Version question

Posted: Fri Jul 20, 2018 5:07 pm
by fly135
When the device boots it prints the 2nd stage bootloader sdk ver. But the version it prints is different than the "git describe" version from the IDF_PATH directory. So how does the bootloader have an ESP-IDF 3.1 version when the SDK is v3.0?

John A

Re: SDK Version question

Posted: Fri Jul 20, 2018 7:07 pm
by WiFive
https://github.com/espressif/esp-idf/bl ... ct.mk#L234

If you checkout a different branch/commit of idf and the bootloader is not rebuild and reflashed then it might not match

Re: SDK Version question

Posted: Fri Jul 20, 2018 7:55 pm
by fly135
I thought the 2nd stage bootloader was built anytime you make a change with menuconfig or the build directory is erased. I'm building with the same SDK all the time and I believe the 2nd stage bootloader is burned every time I do a make flash. Not even sure how you could build with a different ver of the SDK without the 2nd stage BL being rebuilt.

John A

Re: SDK Version question

Posted: Fri Jul 20, 2018 8:14 pm
by ESP_igrr
Can you please post the output you are getting from the 2nd stage bootloader, and output of 'git describe --tags' command? It will make it easier to answer your question.

Re: SDK Version question

Posted: Fri Jul 20, 2018 8:19 pm
by fly135
On boot...

I (29) boot: ESP-IDF v3.1-dev-449-gc97b8756-dirty 2nd stage bootloader

git describe...

v3.0-dev-1839-gc97b8756

Re: SDK Version question

Posted: Mon Jul 23, 2018 4:10 am
by ESP_Angus
Hi fly135,

Something odd seems to happen when you're running "git describe" manually. If I check out the same commit as you ("git checkout c97b8756f"), I get:

Code: Select all

$ git describe --tags --dirty
v3.1-dev-449-gc97b8756f-dirty
This matches what the build system is reporting, and appears correct (the tag v3.1-dev comes 449 commits before c97b8756f).

The description "v3.0-dev-1839" is not exactly wrong - the tag v3.0-dev is part of the git log as well, and there are 1839 commits between that tag and commit c97b8756f). Git should pick up that there's a newer tag (v3.1-dev) in the log and use that instead, though...

Do you think it's possible the "git" which the build system runs and the "git" which you ran to test the version are different git binaries? (ie were they run from different types of terminals?)

Re: SDK Version question

Posted: Mon Jul 23, 2018 3:17 pm
by fly135
I just typed "git describe". When I type "git describe --tags --dirty", then I get the same results you did.

i.e. v3.1-dev-449-gc97b8756-dirty

John A

Re: SDK Version question

Posted: Mon Jul 23, 2018 11:30 pm
by ESP_Angus
Thanks for clarifying, I realise what happened now.

The "--tags" option causes git to consult non-annotated tags as well as annotated. If you don't include this, git will only use annotated tags for the version. "v3.1-dev" is accidentally a non-annotated tag so it's not consulted unless you pass --tags. All the other version tags are annotated.

If you fast forward your checked out IDF version to v3.1-beta1 (or any newer commit on the release/v3.1 branch), this tag is annotated and the behaviour (--tags or not) will become consistent again.

("--dirty" appends the -dirty suffix if the tree has some modifications, but that's all it does.)