1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- From 28ce16b29911e5adc60140b572dee177adc7a178 Mon Sep 17 00:00:00 2001
- From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
- Date: Mon, 18 Nov 2019 18:56:46 +0100
- Subject: [PATCH] Don't redefine uintptr_t
- Add a call to check_type_size in ConfigureChecks.cmake and use it in
- include/cmocka.h to avoid the following redefinition error on riscv64:
- In file included from /data/buildroot/buildroot-test/instance-0/output/build/cmocka-1.1.5/src/cmocka.c:62:
- /data/buildroot/buildroot-test/instance-0/output/build/cmocka-1.1.5/include/cmocka.h:132:28: error: conflicting types for 'uintptr_t'
- typedef unsigned int uintptr_t;
- ^~~~~~~~~
- In file included from /data/buildroot/buildroot-test/instance-0/output/host/riscv64-buildroot-linux-musl/sysroot/usr/include/stdint.h:20,
- from /data/buildroot/buildroot-test/instance-0/output/host/riscv64-buildroot-linux-musl/sysroot/usr/include/inttypes.h:9,
- from /data/buildroot/buildroot-test/instance-0/output/build/cmocka-1.1.5/src/cmocka.c:27:
- /data/buildroot/buildroot-test/instance-0/output/host/riscv64-buildroot-linux-musl/sysroot/usr/include/bits/alltypes.h:104:24: note: previous declaration of 'uintptr_t' was here
- typedef unsigned _Addr uintptr_t;
- ^~~~~~~~~
- Fixes:
- - http://autobuild.buildroot.org/results/30922c18150ea62aefe123d1b7cd1444efab963f
- Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
- Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
- [Retrieved from:
- https://gitlab.com/cmocka/cmocka/commit/28ce16b29911e5adc60140b572dee177adc7a178]
- ---
- ConfigureChecks.cmake | 3 +++
- config.h.cmake | 4 ++++
- include/cmocka.h | 2 +-
- 3 files changed, 8 insertions(+), 1 deletion(-)
- diff --git a/ConfigureChecks.cmake b/ConfigureChecks.cmake
- index fe8da35..028774f 100644
- --- a/ConfigureChecks.cmake
- +++ b/ConfigureChecks.cmake
- @@ -70,6 +70,9 @@ if (HAVE_TIME_H)
- check_struct_has_member("struct timespec" tv_sec "time.h" HAVE_STRUCT_TIMESPEC)
- endif (HAVE_TIME_H)
-
- +# TYPES
- +check_type_size(uintptr_t UINTPTR_T)
- +
- # FUNCTIONS
- check_function_exists(calloc HAVE_CALLOC)
- check_function_exists(exit HAVE_EXIT)
- diff --git a/config.h.cmake b/config.h.cmake
- index f8d79da..55fc69f 100644
- --- a/config.h.cmake
- +++ b/config.h.cmake
- @@ -75,6 +75,10 @@
-
- #cmakedefine HAVE_STRUCT_TIMESPEC 1
-
- +/***************************** TYPES *****************************/
- +
- +#cmakedefine HAVE_UINTPTR_T 1
- +
- /*************************** FUNCTIONS ***************************/
-
- /* Define to 1 if you have the `calloc' function. */
- diff --git a/include/cmocka.h b/include/cmocka.h
- index 3e923dd..0aa557e 100644
- --- a/include/cmocka.h
- +++ b/include/cmocka.h
- @@ -120,7 +120,7 @@ typedef uintmax_t LargestIntegralType;
- ((LargestIntegralType)(value))
-
- /* 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(HAVE_UINTPTR_T)
- # if defined(_WIN32)
- /* WIN32 is an ILP32 platform */
- typedef unsigned int uintptr_t;
- --
- 2.22.0
|