arduino-esp32 v2.0.17's libraries/WiFiClientSecure/src/ssl_client.cpp:23
wraps its entire body in:
#if !defined(MBEDTLS_KEY_EXCHANGE__SOME__PSK_ENABLED) \
&& !defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED)
# warning "Please call idf.py menuconfig ..."
#else
ssl_init / start_ssl_client / stop_ssl_socket /
send_ssl_data / get_ssl_receive / data_to_read
#endif
Our esp-idf-template/sdkconfig.defaults did not enable any PSK key-exchange
mode, so MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED was never auto-set by
mbedtls and ssl_client.cpp compiled to an empty translation unit. The
companion WiFiClientSecure.cpp still compiled and ended up in
libarduino-esp32.a with dangling references, breaking the link of every
sketch that pulls in HTTPClient or WiFiClientSecure (directly or
transitively).
Reproduced against the user's WiFi + HTTPClient example.com sketch on the
prod server and again locally with ESP-IDF v4.4.7 + arduino-esp32 v2.0.17;
the prebuilt sdkconfig that ships with arduino-esp32 itself sets both
flags, so we just align with that.
After the fix the same sketch links cleanly:
velxio-sketch.bin binary size 0xbf470 bytes ... 25% free
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
||
|---|---|---|
| .. | ||
| esp-idf-template | ||
| picow_net | ||
| __init__.py | ||
| arduino_cli.py | ||
| chip_compile.py | ||
| esp32_flash_image.py | ||
| esp32_i2c_slaves.py | ||
| esp32_lib_bridge.py | ||
| esp32_lib_manager.py | ||
| esp32_spi_slaves.py | ||
| esp32_worker.py | ||
| esp_qemu_manager.py | ||
| espidf_compiler.py | ||
| gpio_shim.py | ||
| metrics.py | ||
| odoo_mail.py | ||
| picow_net_bridge.py | ||
| project_files.py | ||
| qemu_manager.py | ||
| wasm_chip_runtime.py | ||
| wasm_chip_slave.py | ||
| wifi_status_parser.py | ||