Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix compile issue on new environments #1013

Closed
wants to merge 1 commit into from

Conversation

ascillato
Copy link

@ascillato ascillato commented Jan 24, 2023

This PR fixes a dependency version for pyparsing needed for compiling ESP32.

There are some reports of this and the fix was being done manually:

@Jason2866
Copy link
Contributor

Hi Adrian, with the change CI fails https://github.com/Jason2866/platform-espressif32/actions/runs/4004743730

@ascillato
Copy link
Author

ascillato commented Jan 25, 2023

Hi @Jason2866 ,

I see from that link that it is failing only for the examples of:

examples/espidf-arduino-blink
examples/espidf-arduino-wifiscan
examples/espidf-aws-iot

The example of espidf-aws-iot is forcing to use the previous SDK so, it won't work either way with lastest version of esp-idf.

The 2 examples of espidf-arduino-XX has framework = arduino, espidf in platformio.ini. Just changing that to framework = arduino it compiles without any issue.

So, seems that those examples needs some reviewing perhaps.

@valeros What do you think?

@Jason2866
Copy link
Contributor

Jason2866 commented Jan 25, 2023

@ascillato agreed aws IoT example is out. But the other two should work. There is nothing special with. The examples are there to check the use of Arduino as a component of IDF.
The do work fine without the change of this PR. https://github.com/Jason2866/platform-espressif32/actions/runs/4006615412

@ascillato
Copy link
Author

ascillato commented Jan 25, 2023

@Jason2866 Yes, when using

framework = arduino, espidf

it gives the error:

Compiling .pio/build/esp-wrover-kit/bootloader/soc/esp32/rmt_periph.o
Compiling .pio/build/esp-wrover-kit/bootloader/soc/esp32/rtc_io_periph.o
Compiling .pio/build/esp-wrover-kit/bootloader/soc/esp32/sdio_slave_periph.o
linker script generation failed for /home/user/.platformio/packages/framework-espidf@3.40403.0/components/esp_system/ld/esp32/sections.ld.in
ERROR: failed to parse /home/user/.platformio/packages/framework-espidf@3.40403.0/components/esp_event/linker.lf
required keys ['entries'] for fragment not found, found '['  (at char 41), (line:2, col:5)
Compiling .pio/build/esp-wrover-kit/bootloader/soc/esp32/sdmmc_periph.o
Compiling .pio/build/esp-wrover-kit/bootloader/soc/esp32/sigmadelta_periph.o
Compiling .pio/build/esp-wrover-kit/bootloader/soc/esp32/spi_periph.o
Compiling .pio/build/esp-wrover-kit/bootloader/soc/esp32/timer_periph.o
*** [.pio/build/esp-wrover-kit/sections.ld] Error 1

but those 2 examples work if changing the framework to:
framework = arduino
or using the old version of pyparsing.

So, without updating pyparsing, a blank project on ESP32 with esp-idf 5.0 can't compile showing the error explained in the linked issues at the OP.

How can we fix the compilation for those 2 examples which use Arduino as a component of IDF? Which one is the script who do the compilation for framework = arduino, espidf?

@Jason2866
Copy link
Contributor

The only ugly way (don't like), i see is to install the old pyparsing version when using Arduino as a component of IDF. For all other cases the new pyparsing version.
Noticed that there was already an update of pyparsing in a commit for IDF5 support which was later removed.

@PetteriAimonen
Copy link

I'm also seeing this problem in nanopb CI for two weeks now ( https://github.com/nanopb/nanopb/actions/runs/4039824116/jobs/6944916384 )

with config using only espidf:

[env:pio_esp32_idf]
platform = espressif32
board = firebeetle32
framework = espidf
lib_deps = Nanopb

and build in a clean, new directory with pio run.

@Jason2866
Copy link
Contributor

Probably the best to merge this PR and remove Arduino as IDF component support. Users needing Arduino as a Component of IDF can use release v5.3.0.

@ascillato
Copy link
Author

Agree.

@valeros Please, can you take a look into this? Thanks.

@Itaiboss
Copy link

Itaiboss commented Jan 30, 2023

I have run into the same issue. I have been manually replacing the pyparsing version in my penv. This would reset on clears and I would have to repeat the process. Editing the version in the espidf.py file has solved this for me. Please review this pr.

@valeros valeros closed this in 8507dd8 Jan 31, 2023
@ascillato ascillato deleted the patch-1 branch February 1, 2023 20:16
@ascillato
Copy link
Author

ascillato commented Feb 1, 2023

The changes in the commit 8507dd8 work perfectly for me. Thank you so much!!!!

If in platformio.ini I use:
platform = https://github.com/platformio/platform-espressif32.git ; Latest Development
it works

But if I use
platform = espressif32 ; Latest Stable
or
platform = espressif32@6.0.0 ; Includes ESP-IDF v5.0
I obviously still having the same old compiling issue.

Are you planning on launching a new release for espressif32?

@ascillato
Copy link
Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants