During bitbaking core-image-ros-world for v0.2-rc1 release testing,
compiling libpoco for the qemuarm64 machine failed with:
In file included from [...]/poco-poco-1.5.3-release/Foundation/src/diy-fp.h:31:0,
from [...]/poco-poco-1.5.3-release/Foundation/src/diy-fp.cc:29,
from [...]/poco-poco-1.5.3-release/Foundation/src/NumericString.cpp:23:
[...]/poco-poco-1.5.3-release/Foundation/src/utils.h:72:2: error: #error Target architecture was not detected as supported by Double-Conversion.
This issue has been already been reported in the libpoco github issue
tracker [1] and has been resolved with a simple patch [2] in the libpoco
repository and libpoco releases since 1.5.4. Hence, this commit simply
adds this patch to the current libpoco recipe.
To address the libpoco issue, I also considered to update libpoco to
version 1.6.0. However, this was not possible as version 1.6.0 requires
CMake >= 3.0.0 and this would require updating cmake in
OpenEmbedded-Core, which has major impact on all layers. Also, updating
libpoco to 1.5.4 lead to a problem with the OpenEmbedded-Core-provided
pcre 1.5.36 and the POCO_UNBUNDLED setting during compilation:
In file included from [...]/poco-poco-1.5.4-release/Foundation/src/RegularExpression.cpp:21:0:
[...]/usr/include/pcre.h:325:26: error: conflicting declaration 'typedef struct real_pcre pcre'
In file included from [...]/poco-poco-1.5.4-release/Foundation/src/RegularExpression.cpp:17:0:
[...]/poco-poco-1.5.4-release/Foundation/include/Poco/RegularExpression.h:37:34: note: previous declaration as 'typedef struct real_pcre8_or_16 pcre'
This issue is probably caused by the commit 'PCRE 8.35.0 Update' [3],
which defines types from pcre 8.35 that are incompatible to pcre 8.36.
[1] https://github.com/pocoproject/poco/issues/508
[2] 9258e482d7.patch
[3] 010f7a5370.patch
Signed-off-by: Lukas Bulwahn <lukas.bulwahn@oss.bmw-carit.de>