WLED icon indicating copy to clipboard operation
WLED copied to clipboard

esp32s2_saola warnings: <command-line>: warning: ISO C++11 requires whitespace after the macro name

Open henrygab opened this issue 3 years ago • 4 comments

This appears quite often for the first build, and will appear for each source file compiled.

This warning appears when a define passed via command-line parameter contains illegal characters in the identifier. If you build verbose (under advanced group for the board), the full command line for the compiler is output. The command line has the following invalid option:

-DARDUINO_PARTITION_tools/WLED_ESP32_4MB_1MB_FS

The partition choice is set via board_build.partitions in a given environment, and the value appears to be correct. Not that it should change anything, but changing from: default_partitions = tools/WLED_ESP32_4MB_1MB_FS.csv to: board_build.partitions = ${esp32.default_partitions} did not change the result.

Can anyone else pickup the trail from here? Is this a bug in the underlying ESP32s2 arduino support, or is it something in WLED's configuration?

henrygab avatar Feb 09 '22 17:02 henrygab

Thank you for the research :)

It is likely that this is a bug in the general PlatformIO arduino support, or in the espressif32 platform

Specifically, the presence of the character / invalidates this macro, which leads me to believe that the code that converts board_build.partitions to the compile flag has no concept of directories (and potentially characters legal in file names but not C macros)

This problem is by the way not limited to esp32s2, but to all ESP32 builds using the newer ESP32 Arduino core 2.0.x (WLED branch arduinocore2, adoption for regular ESP32 is frozen currently because of #2518). It is not yet officially supported by the espressif32 platformio platform, but required for S2 and C3 support.

Aircoookie avatar Feb 11 '22 01:02 Aircoookie

Yes, the '/' character is illegal for the identifier, although it would be legal as the content of an identifier (such as -DARDUINO_PARTITION=...).

Is this intentionally part of the identifier, then?

I had thought the problem was two part:

(a) incorrect name of the identifier (e.g., should be -DARDUINO_PARTITION=tools/WLED_ESP32_4MB_1MB_FS) (b) failing to wrap in quotes (e.g., and then more correctly: -DARDUINO_PARTITION="tools/WLED_ESP32_4MB_1MB_FS")

I suppose I didn't dig far enough into how this define is used in pre-core 2.x??

henrygab avatar Feb 11 '22 01:02 henrygab

Hey! This issue has been open for quite some time without any new comments now. It will be closed automatically in a week if no further activity occurs. Thank you for using WLED!

stale[bot] avatar Jul 10 '22 22:07 stale[bot]

foo

henrygab avatar Jul 13 '22 03:07 henrygab

Superseded by recent activities on 0.14.x to support new MCUs like ESP32-S2 (still experimental). DARDUINO_PARTITION is not used in platformio.ini any more.

softhack007 avatar Jan 06 '23 21:01 softhack007