blob: 8d83116dfcb867fdd056410dfda81bd64d1e8ea7 [file] [log] [blame]
From 7ea7fe229ea6195938d9eadbe783cb1aa74380ba Mon Sep 17 00:00:00 2001
From: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Date: Sun, 26 Apr 2020 15:33:39 +0200
Subject: [PATCH] Use LONG_BIT to define RADIX_BITS
This allows to avoid having to support each CPU architecture
individually.
Also, add the necessary defines in the makefile to expose
LONG_BIT. Adding those defines end up requiring using <sys/select.h>
as we're now using >= POSIX.1-2001 definitions of fd_set and friends.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Vincent Fazio <vfazio@gmail.com>
[Bernd: rebased for git rev 5452af422edeff70fcae8ea99dd28a0922051d7b]
Signed-off-by: Bernd Kuhls <bernd@kuhls.net>
[Fabrice: rebase for rev183-2024-03-27]
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
---
src/LibSupport.h | 21 +++------------------
src/TcpServerPosix.c | 1 +
src/makefile | 2 ++
3 files changed, 6 insertions(+), 18 deletions(-)
diff --git a/src/tpm_radix.h b/src/tpm_radix.h
index 5055560..48b1e16 100644
--- a/src/tpm_radix.h
+++ b/src/tpm_radix.h
@@ -61,27 +61,9 @@
//** Introduction
// Common defines for supporting large numbers and cryptographic buffer sizing.
//*********************
-#ifndef RADIX_BITS
-# if defined(__x86_64__) || defined(__x86_64) || defined(__amd64__) \
- || defined(__amd64) || defined(_WIN64) || defined(_M_X64) || defined(_M_ARM64) \
- || defined(__aarch64__) || defined(__PPC64__) || defined(__s390x__) \
- || defined(__powerpc64__) || defined(__ppc64__)
-# define RADIX_BITS 64
-# elif defined(__i386__) || defined(__i386) || defined(i386) || defined(_WIN32) \
- || defined(_M_IX86)
-# define RADIX_BITS 32
-# elif defined(_M_ARM) || defined(__arm__) || defined(__thumb__)
-# define RADIX_BITS 32
-# elif defined(__riscv)
-// __riscv and __riscv_xlen are standardized by the RISC-V community and should be available
-// on any compliant compiler.
-//
-// https://github.com/riscv-non-isa/riscv-toolchain-conventions
-# define RADIX_BITS __riscv_xlen
-# else
-# error Unable to determine RADIX_BITS from compiler environment
-# endif
-#endif // RADIX_BITS
+#include <limits.h>
+
+#define RADIX_BITS LONG_BIT
#if RADIX_BITS == 64
# define RADIX_BYTES 8
diff --git a/src/TcpServerPosix.c b/src/TcpServerPosix.c
index cad0402..6293cdd 100644
--- a/src/TcpServerPosix.c
+++ b/src/TcpServerPosix.c
@@ -66,6 +66,7 @@
#include <stdio.h>
#include <stdbool.h>
+#include <sys/select.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
diff --git a/src/makefile b/src/makefile
index f124e78..6ee128e 100644
--- a/src/makefile
+++ b/src/makefile
@@ -47,6 +47,8 @@ CCFLAGS = -Wall \
-c -ggdb -O0 \
-DTPM_POSIX \
-D_POSIX_ \
+ -D_DEFAULT_SOURCE \
+ -D_XOPEN_SOURCE=500 \
-DTPM_NUVOTON
# add this line for big endian platforms
--
2.17.1