Kaynağa Gözat

efibind: Fix usage of efi headers from C++ code

* __STDC_VERSION__ is undefined when headers are called from C++
  code resulting in not using stdint.h and efibind.h
  "making a guess" on what they are. extern "C" will not define
  __STDC_VERSION__.
* Always leverage stdint.h on C++.
* Honestly, gnu-efi should always use stdint.h, or find a better
  way to detect it. (or platforms without it need to catch up to 2007)
Alexander von Gluck IV 5 yıl önce
ebeveyn
işleme
6685cd0002

+ 1 - 1
inc/aarch64/efibind.h

@@ -15,7 +15,7 @@
  * either version 2 of the License, or (at your option) any later version.
  */
 
-#if !defined(_MSC_VER) && (!defined(__STDC_VERSION__) || (__STDC_VERSION__ < 199901L ))
+#if !defined(_MSC_VER) && (!defined(__STDC_VERSION__) || (__STDC_VERSION__ < 199901L )) && !defined(__cplusplus)
 
 // ANSI C 1999/2000 stdint.h integer width declarations
 

+ 1 - 1
inc/arm/efibind.h

@@ -15,7 +15,7 @@
  * either version 2 of the License, or (at your option) any later version.
  */
 
-#if !defined(_MSC_VER) && (!defined(__STDC_VERSION__) || (__STDC_VERSION__ < 199901L ))
+#if !defined(_MSC_VER) && (!defined(__STDC_VERSION__) || (__STDC_VERSION__ < 199901L )) && !defined(__cplusplus)
 
 // ANSI C 1999/2000 stdint.h integer width declarations
 

+ 1 - 1
inc/ia32/efibind.h

@@ -25,7 +25,7 @@ Revision History
 // Basic int types of various widths
 //
 
-#if !defined(__STDC_VERSION__) || (__STDC_VERSION__ < 199901L )
+#if !defined(__STDC_VERSION__) || (__STDC_VERSION__ < 199901L ) && !defined(__cplusplus)
 
     // No ANSI C 1999/2000 stdint.h integer width declarations 
 

+ 1 - 1
inc/ia64/efibind.h

@@ -24,7 +24,7 @@ Revision History
 // Basic int types of various widths
 //
 
-#if !defined(__STDC_VERSION__) || (__STDC_VERSION__ < 199901L )
+#if !defined(__STDC_VERSION__) || (__STDC_VERSION__ < 199901L ) && !defined(__cplusplus)
 
     // No ANSI C 1999/2000 stdint.h integer width declarations 
 

+ 1 - 1
inc/mips64el/efibind.h

@@ -17,7 +17,7 @@
  * either version 2 of the License, or (at your option) any later version.
  */
 
-#if !defined(__STDC_VERSION__) || (__STDC_VERSION__ < 199901L )
+#if !defined(__STDC_VERSION__) || (__STDC_VERSION__ < 199901L ) && !defined(__cplusplus)
 
 // ANSI C 1999/2000 stdint.h integer width declarations
 

+ 2 - 2
inc/x86_64/efibind.h

@@ -34,7 +34,7 @@ Revision History
 // Basic int types of various widths
 //
 
-#if !defined(__STDC_VERSION__) || (__STDC_VERSION__ < 199901L )
+#if !defined(__STDC_VERSION__) || (__STDC_VERSION__ < 199901L ) && !defined(__cplusplus)
 
     // No ANSI C 1999/2000 stdint.h integer width declarations 
 
@@ -86,7 +86,7 @@ Revision History
     #endif
     typedef uint64_t            uintptr_t;
     typedef int64_t             intptr_t;
-#elif defined(__GNUC__)
+#else
     #include <stdint.h>
 #endif