There are couple of places where 'extern C' specifier is missing and thus breaking consistency when using C++ - rp2_common\hardware_boot_lock\include\hardware\boot_lock.h - rp2_common\hardware_powman\include\hardware\powman.h