Commit 6a15dd0d authored by Breno Leitao's avatar Breno Leitao Committed by Jakub Jirutka

main/cmocka: fix build and check on ppc64le

Currently cmocka fails to build on ppc64le due to a redefinition
for uintptr_t. This is declared at Musl and redeclared by cmocka.

This patch check if uintptr_t was not defined by MUSL before
re-defining it.
parent f226e7e8
......@@ -10,9 +10,19 @@ license="ASL-2.0"
prepare() {
default_prepare || return 1
# Just one single test (customer_database_test) is breaking on ppc64le.
if [ "$CARCH" = "ppc64le" ]; then
sed -i '/customer_database_test/d' "$builddir"/example/CMakeLists.txt
build() {
mkdir -p "$builddir"/build || return 1
cd "$builddir"/build
......@@ -35,6 +45,5 @@ package() {
make -C "$builddir"/build DESTDIR="$pkgdir" install
md5sums="59c9aa5735d9387fb591925ec53523ec cmocka-1.1.0.tar.xz"
sha256sums="e960d3bf1be618634a4b924f18bb4d6f20a825c109a8ad6d1af03913ba421330 cmocka-1.1.0.tar.xz"
sha512sums="b45b6c6bf6c1a0e12cbbfa203afc0172aa53215e0bd43a21b30db04c0490609a7a262f1b4d87be9df0c5c486c4f4891d3432e0e053418d373d9750a6cf5adf70 cmocka-1.1.0.tar.xz"
sha512sums="b45b6c6bf6c1a0e12cbbfa203afc0172aa53215e0bd43a21b30db04c0490609a7a262f1b4d87be9df0c5c486c4f4891d3432e0e053418d373d9750a6cf5adf70 cmocka-1.1.0.tar.xz
b20b5c0d172a9df756ec093a3df4bf5bdf2a0c06a3d3ad39ec001248ccb86e6fd3dcedfc9ce42e8309cc01ea34fadffd4ebcc0fb3af9f5e795e7fe40c461ac60 musl_uintptr.patch"
commit f81e5b71ce78f33250347914dacc75c8463bf102
Author: Breno Leitao <>
Date: Wed Mar 29 15:22:38 2017 -0300
include: Check for previous declaration of uintptr_t
Adding a extra check before declaring uintptr_t. Currently musl uses
macro __DEFINED_uintptr_t once it defines uintptr_t type. Checking
this macro before defining it, and, defining it when uintptr_t is
Signed-off-by: Breno Leitao <>
diff --git a/include/cmocka.h b/include/cmocka.h
index 303d0ae..a2bfc40 100644
--- a/include/cmocka.h
+++ b/include/cmocka.h
@@ -110,7 +110,7 @@
/* Smallest integral type capable of holding a pointer. */
-#if !defined(_UINTPTR_T) && !defined(_UINTPTR_T_DEFINED)
+#if !defined(_UINTPTR_T) && !defined(_UINTPTR_T_DEFINED) && !defined(__DEFINED_uintptr_t)
# if defined(_WIN32)
/* WIN32 is an ILP32 platform */
typedef unsigned int uintptr_t;
@@ -136,6 +136,8 @@
# define _UINTPTR_T
+# define __DEFINED_uintptr_t
#endif /* !defined(_UINTPTR_T) || !defined(_UINTPTR_T_DEFINED) */
/* Perform an unsigned cast to uintptr_t. */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment