- use LFS64 file/stat APIs only on glibc/Windows (absent in musl)
- use plain sched_priority outside glibc
- do not declare pow10(double) where the system provides C23 pow10() (musl)
- ICU is off by default: modern ICU (>= 75) needs C++17 for its headers,
the project is built with C++11; enable explicitly with -DICU=ON
- fix latent crash: PIThread::setThreadName() read the thread handle from
inside the new thread; the handle is not guaranteed to be visible before
start (musl publishes it later), rename the calling thread via
pthread_self() instead
- CMake: disable thread/socket-dependent modules (http_client, mqtt_client,
client_server) and fftw when the required feature flags are off;
client_server/cloud no longer tied to the crypt option
- host utils gated on filesystem and the modules they need
- Pico keeps the minimal set; generic FreeRTOS (ESP32) keeps filesystem,
sockets and serial as in master, module set limited to crypt/compress/io_utils
- PICAN, PIBroadcast, PIPackedTCP vanish without socket+threads
- PISerial: restore PISERIAL_NO_PINS (auto-enabled on PIP_EMBEDDED)
- PIFile: FREERTOS uses fopen/stat (no fopen64 in ESP-IDF newlib)
- drop invalid PICout buffer guards, guard PIObject::deleteLater,
remove (void)destroying hack, fake PIHIDevice non-Linux stub and the
redundant PICO_SDK guard in code_model_generator
- pifile.cpp: drop '|| !defined(PIP_HAS_FILESYSTEM)' from the
_fopen_call_ condition and the redundant inner
'#ifdef PIP_HAS_FILESYSTEM' - the whole file is already inside
PIP_HAS_FILESYSTEM
- remove PISERIAL_NO_PINS (piplatform.h, piserial.cpp): the whole
piserial.cpp is inside PIP_HAS_SERIAL which is forced OFF for
Pico/FREERTOS, so the macro could never be active where it mattered;
keep the Windows/POSIX branches as-is
PIThread::stopAndWait now returns bool
PIKbdListener on Linux now use piwaitevent_p and can immediately stop
new base method piZeroMemory, also migrate all "memset 0" to piZeroMemory