BLE library for ESP32x implements its own version of `os_msys_init`, which is used by the BLE controller implementation for ESP32x and is implicitly called when the BLE controller is enabled.
BLE library for ESP32x defines its own `g_msys_pool_list` in binary libraries. To avoid multiple definitions, the definition of `g_msys_pool_list` is conditional here.
`pkg/nimble/Makefile.include` includes logic for the module, however the corresponding Make target is missing.
This produces the following error:
```
make[3]: *** No rule to make target 'nimble_svc_bas', needed by 'all'. Stop.
```
Also brutally silence -Wcast-align warnings in OS_MBUF_PKTHDR()
and OS_MBUF_PKTHDR_TO_MBUF(), as those are used by nimble users.
It might make sense to check if the silenced / disabled warnings do
indeed point out unaligned memory accesses.
Nimble contains a couple of casts that discard alignment information.
This causes a warning with clang's -Wno-address-of-packed-member.
A previous PR (#10503) supressed that warning. This commit re-enables
them and provides a patch to fix the offending code.
The fix has been submitted upstream, see
https://github.com/apache/mynewt-nimble/pull/252