xref: /OK3568_Linux_fs/buildroot/package/cmocka/0001-Don-t-redefine-uintptr_t.patch (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunFrom 28ce16b29911e5adc60140b572dee177adc7a178 Mon Sep 17 00:00:00 2001
2*4882a593SmuzhiyunFrom: Fabrice Fontaine <fontaine.fabrice@gmail.com>
3*4882a593SmuzhiyunDate: Mon, 18 Nov 2019 18:56:46 +0100
4*4882a593SmuzhiyunSubject: [PATCH] Don't redefine uintptr_t
5*4882a593Smuzhiyun
6*4882a593SmuzhiyunAdd a call to check_type_size in ConfigureChecks.cmake and use it in
7*4882a593Smuzhiyuninclude/cmocka.h to avoid the following redefinition error on riscv64:
8*4882a593Smuzhiyun
9*4882a593SmuzhiyunIn file included from /data/buildroot/buildroot-test/instance-0/output/build/cmocka-1.1.5/src/cmocka.c:62:
10*4882a593Smuzhiyun/data/buildroot/buildroot-test/instance-0/output/build/cmocka-1.1.5/include/cmocka.h:132:28: error: conflicting types for 'uintptr_t'
11*4882a593Smuzhiyun       typedef unsigned int uintptr_t;
12*4882a593Smuzhiyun                            ^~~~~~~~~
13*4882a593SmuzhiyunIn file included from /data/buildroot/buildroot-test/instance-0/output/host/riscv64-buildroot-linux-musl/sysroot/usr/include/stdint.h:20,
14*4882a593Smuzhiyun                 from /data/buildroot/buildroot-test/instance-0/output/host/riscv64-buildroot-linux-musl/sysroot/usr/include/inttypes.h:9,
15*4882a593Smuzhiyun                 from /data/buildroot/buildroot-test/instance-0/output/build/cmocka-1.1.5/src/cmocka.c:27:
16*4882a593Smuzhiyun/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
17*4882a593Smuzhiyun typedef unsigned _Addr uintptr_t;
18*4882a593Smuzhiyun                        ^~~~~~~~~
19*4882a593Smuzhiyun
20*4882a593SmuzhiyunFixes:
21*4882a593Smuzhiyun - http://autobuild.buildroot.org/results/30922c18150ea62aefe123d1b7cd1444efab963f
22*4882a593Smuzhiyun
23*4882a593SmuzhiyunSigned-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
24*4882a593SmuzhiyunReviewed-by: Andreas Schneider <asn@cryptomilk.org>
25*4882a593Smuzhiyun[Retrieved from:
26*4882a593Smuzhiyunhttps://gitlab.com/cmocka/cmocka/commit/28ce16b29911e5adc60140b572dee177adc7a178]
27*4882a593Smuzhiyun---
28*4882a593Smuzhiyun ConfigureChecks.cmake | 3 +++
29*4882a593Smuzhiyun config.h.cmake        | 4 ++++
30*4882a593Smuzhiyun include/cmocka.h      | 2 +-
31*4882a593Smuzhiyun 3 files changed, 8 insertions(+), 1 deletion(-)
32*4882a593Smuzhiyun
33*4882a593Smuzhiyundiff --git a/ConfigureChecks.cmake b/ConfigureChecks.cmake
34*4882a593Smuzhiyunindex fe8da35..028774f 100644
35*4882a593Smuzhiyun--- a/ConfigureChecks.cmake
36*4882a593Smuzhiyun+++ b/ConfigureChecks.cmake
37*4882a593Smuzhiyun@@ -70,6 +70,9 @@ if (HAVE_TIME_H)
38*4882a593Smuzhiyun     check_struct_has_member("struct timespec" tv_sec "time.h" HAVE_STRUCT_TIMESPEC)
39*4882a593Smuzhiyun endif (HAVE_TIME_H)
40*4882a593Smuzhiyun
41*4882a593Smuzhiyun+# TYPES
42*4882a593Smuzhiyun+check_type_size(uintptr_t UINTPTR_T)
43*4882a593Smuzhiyun+
44*4882a593Smuzhiyun # FUNCTIONS
45*4882a593Smuzhiyun check_function_exists(calloc HAVE_CALLOC)
46*4882a593Smuzhiyun check_function_exists(exit HAVE_EXIT)
47*4882a593Smuzhiyundiff --git a/config.h.cmake b/config.h.cmake
48*4882a593Smuzhiyunindex f8d79da..55fc69f 100644
49*4882a593Smuzhiyun--- a/config.h.cmake
50*4882a593Smuzhiyun+++ b/config.h.cmake
51*4882a593Smuzhiyun@@ -75,6 +75,10 @@
52*4882a593Smuzhiyun
53*4882a593Smuzhiyun #cmakedefine HAVE_STRUCT_TIMESPEC 1
54*4882a593Smuzhiyun
55*4882a593Smuzhiyun+/***************************** TYPES *****************************/
56*4882a593Smuzhiyun+
57*4882a593Smuzhiyun+#cmakedefine HAVE_UINTPTR_T 1
58*4882a593Smuzhiyun+
59*4882a593Smuzhiyun /*************************** FUNCTIONS ***************************/
60*4882a593Smuzhiyun
61*4882a593Smuzhiyun /* Define to 1 if you have the `calloc' function. */
62*4882a593Smuzhiyundiff --git a/include/cmocka.h b/include/cmocka.h
63*4882a593Smuzhiyunindex 3e923dd..0aa557e 100644
64*4882a593Smuzhiyun--- a/include/cmocka.h
65*4882a593Smuzhiyun+++ b/include/cmocka.h
66*4882a593Smuzhiyun@@ -120,7 +120,7 @@ typedef uintmax_t LargestIntegralType;
67*4882a593Smuzhiyun     ((LargestIntegralType)(value))
68*4882a593Smuzhiyun
69*4882a593Smuzhiyun /* Smallest integral type capable of holding a pointer. */
70*4882a593Smuzhiyun-#if !defined(_UINTPTR_T) && !defined(_UINTPTR_T_DEFINED)
71*4882a593Smuzhiyun+#if !defined(_UINTPTR_T) && !defined(_UINTPTR_T_DEFINED) && !defined(HAVE_UINTPTR_T)
72*4882a593Smuzhiyun # if defined(_WIN32)
73*4882a593Smuzhiyun     /* WIN32 is an ILP32 platform */
74*4882a593Smuzhiyun     typedef unsigned int uintptr_t;
75*4882a593Smuzhiyun--
76*4882a593Smuzhiyun2.22.0
77*4882a593Smuzhiyun
78