On 10/01/2020 14:21, Kwok Cheung Yeung wrote:
The patch for sub-word atomics support added an include of stdint.h for
the definition of uintptr_h, but this can result in GCC compilation
failing if the stdint.h header has not been installed (from newlib in
the case of AMD GCN).
I have fixed this by removing the stdint.h include and replacing
uintptr_t with __UINTPTR_TYPE__, which is a predefined macro in the C
preprocessor.
Okay for trunk?
Kwok
2020-01-10 Kwok Cheung Yeung <k...@codesourcery.com>
libgcc/
* config/gcn/atomic.c: Remove include of stdint.h.
(__sync_val_compare_and_swap_##SIZE): Replace uintptr_t with
__UINTPTR_TYPE__.
---
libgcc/config/gcn/atomic.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/libgcc/config/gcn/atomic.c b/libgcc/config/gcn/atomic.c
index 214c9a5..adceb02 100644
--- a/libgcc/config/gcn/atomic.c
+++ b/libgcc/config/gcn/atomic.c
@@ -22,15 +22,14 @@
<http://www.gnu.org/licenses/>. */
#include <stdbool.h>
-#include <stdint.h>
#define __SYNC_SUBWORD_COMPARE_AND_SWAP(TYPE, SIZE) \
\
TYPE \
__sync_val_compare_and_swap_##SIZE (TYPE *ptr, TYPE oldval, TYPE
newval) \
{ \
- unsigned int *wordptr = (unsigned int *)((uintptr_t) ptr &
~3UL); \
- int shift = ((uintptr_t) ptr & 3UL) * 8; \
+ unsigned int *wordptr = (unsigned int *)((__UINTPTR_TYPE__ ) ptr &
~3UL); \
+ int shift = ((__UINTPTR_TYPE__ ) ptr & 3UL) * 8; \
unsigned int valmask = (1 << (SIZE * 8)) - 1; \
unsigned int wordmask = ~(valmask << shift); \
unsigned int oldword = *wordptr; \
OK, thanks.
Andrew