summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEsben Haabendal <esben@esben1.localdomain>2019-03-15 11:57:51 +0100
committerEsben Haabendal <esben@esben1.localdomain>2019-03-15 12:09:50 +0100
commit1a53d8f88a452847b25f9689f9a08dbcf82c86e4 (patch)
tree12c2ff882248d48bb5a91fdfdc26ec5c8d620fc7
parentd34132e62f666904158c7ec2f1eef5a9d5281c36 (diff)
downloadgnu-efi-1a53d8f88a452847b25f9689f9a08dbcf82c86e4.tar.gz
gnu-efi-1a53d8f88a452847b25f9689f9a08dbcf82c86e4.tar.xz
gnu-efi-1a53d8f88a452847b25f9689f9a08dbcf82c86e4.zip
Fix for problem with undeclared intptr_t type
When building gnu-efi with old compilers with pre C90 compilers: In file included from gnu-efi-3.0.9/lib/../inc/efilib.h:25:0, from gnu-efi-3.0.9/lib/lib.h:24, from gnu-efi-3.0.9/lib/dpath.c:25: gnu-efi-3.0.9/lib/dpath.c: In function 'FileDevicePath': gnu-efi-3.0.9/lib/../inc/efilink.h:145:47: error: 'intptr_t' undeclared (first use in this function) #define EFI_FIELD_OFFSET(TYPE,Field) ((UINTN)(intptr_t)(&(((TYPE *) 0)->Field))) Problem introduced with commit a46a62b12b58139c31d4288384808365c4053bf2 (Fix some types gcc doesn't like). Avoid this by adding intptr_t (and uintptr_t) typedefs for builds that does not include stdint.h. Signed-off-by: Esben Haabendal <esben@esben1.localdomain>
-rw-r--r--inc/aarch64/efibind.h2
-rw-r--r--inc/arm/efibind.h2
-rw-r--r--inc/ia32/efibind.h2
-rw-r--r--inc/ia64/efibind.h2
-rw-r--r--inc/mips64el/efibind.h2
-rw-r--r--inc/x86_64/efibind.h2
6 files changed, 12 insertions, 0 deletions
diff --git a/inc/aarch64/efibind.h b/inc/aarch64/efibind.h
index bdaa523..3c8cf96 100644
--- a/inc/aarch64/efibind.h
+++ b/inc/aarch64/efibind.h
@@ -27,6 +27,8 @@ typedef unsigned short uint16_t;
typedef short int16_t;
typedef unsigned char uint8_t;
typedef signed char int8_t; // unqualified 'char' is unsigned on ARM
+typedef uint64_t uintptr_t;
+typedef int64_t intptr_t;
#else
#include <stdint.h>
diff --git a/inc/arm/efibind.h b/inc/arm/efibind.h
index 40a5a9c..7a22b9c 100644
--- a/inc/arm/efibind.h
+++ b/inc/arm/efibind.h
@@ -27,6 +27,8 @@ typedef unsigned short uint16_t;
typedef short int16_t;
typedef unsigned char uint8_t;
typedef signed char int8_t; // unqualified 'char' is unsigned on ARM
+typedef uint32_t uintptr_t;
+typedef int32_t intptr_t;
#else
#include <stdint.h>
diff --git a/inc/ia32/efibind.h b/inc/ia32/efibind.h
index 1b11f10..dd01385 100644
--- a/inc/ia32/efibind.h
+++ b/inc/ia32/efibind.h
@@ -75,6 +75,8 @@ Revision History
typedef unsigned char uint8_t;
typedef char int8_t;
#endif
+ typedef uint32_t uintptr_t;
+ typedef int32_t intptr_t;
#elif defined(__GNUC__)
#include <stdint.h>
#endif
diff --git a/inc/ia64/efibind.h b/inc/ia64/efibind.h
index b415461..b9b2e62 100644
--- a/inc/ia64/efibind.h
+++ b/inc/ia64/efibind.h
@@ -62,6 +62,8 @@ Revision History
typedef unsigned char uint8_t;
typedef char int8_t;
#endif
+ typedef uint64_t uintptr_t;
+ typedef int64_t intptr_t;
#elif defined(__GNUC__)
#include <stdint.h>
#endif
diff --git a/inc/mips64el/efibind.h b/inc/mips64el/efibind.h
index 4adbca3..32241e5 100644
--- a/inc/mips64el/efibind.h
+++ b/inc/mips64el/efibind.h
@@ -29,6 +29,8 @@ typedef unsigned short uint16_t;
typedef short int16_t;
typedef unsigned char uint8_t;
typedef signed char int8_t; // unqualified 'char' is unsigned on ARM
+typedef uint64_t uintptr_t;
+typedef int64_t intptr_t;
#else
#include <stdint.h>
diff --git a/inc/x86_64/efibind.h b/inc/x86_64/efibind.h
index 4309f9f..ae40595 100644
--- a/inc/x86_64/efibind.h
+++ b/inc/x86_64/efibind.h
@@ -84,6 +84,8 @@ Revision History
typedef unsigned char uint8_t;
typedef char int8_t;
#endif
+ typedef uint64_t uintptr_t;
+ typedef int64_t intptr_t;
#elif defined(__GNUC__)
#include <stdint.h>
#endif