Use the MdePkg version instead of maintaining a copy in BaseTools.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
.../Source/C/Include/AArch64/ProcessorBind.h | 148 --------------
.../Source/C/Include/Arm/ProcessorBind.h | 147 --------------
.../Source/C/Include/Ia32/ProcessorBind.h | 155 ---------------
.../C/Include/LoongArch64/ProcessorBind.h | 80 --------
.../Source/C/Include/RiscV64/ProcessorBind.h | 85 --------
.../Source/C/Include/X64/ProcessorBind.h | 183 ------------------
BaseTools/Source/C/Common/Decompress.c | 1 +
BaseTools/Source/C/Makefiles/header.makefile | 14 +-
BaseTools/Source/C/Makefiles/ms.common | 12 +-
9 files changed, 19 insertions(+), 806 deletions(-)
delete mode 100644 BaseTools/Source/C/Include/AArch64/ProcessorBind.h
delete mode 100644 BaseTools/Source/C/Include/Arm/ProcessorBind.h
delete mode 100644 BaseTools/Source/C/Include/Ia32/ProcessorBind.h
delete mode 100644 BaseTools/Source/C/Include/LoongArch64/ProcessorBind.h
delete mode 100644 BaseTools/Source/C/Include/RiscV64/ProcessorBind.h
delete mode 100644 BaseTools/Source/C/Include/X64/ProcessorBind.h
diff --git a/BaseTools/Source/C/Include/AArch64/ProcessorBind.h b/BaseTools/Source/C/Include/AArch64/ProcessorBind.h
deleted file mode 100644
index dfa725b2e363..000000000000
--- a/BaseTools/Source/C/Include/AArch64/ProcessorBind.h
+++ /dev/null
@@ -1,148 +0,0 @@
-/** @file
- Processor or Compiler specific defines and types for AArch64.
-
- Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
- Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
- Portions copyright (c) 2013, ARM Ltd. All rights reserved.<BR>
-
- SPDX-License-Identifier: BSD-2-Clause-Patent
-
-**/
-
-#ifndef __PROCESSOR_BIND_H__
-#define __PROCESSOR_BIND_H__
-
-///
-/// Define the processor type so other code can make processor based choices
-///
-#define MDE_CPU_AARCH64
-
-//
-// Make sure we are using the correct packing rules per EFI specification
-//
-#ifndef __GNUC__
-#pragma pack()
-#endif
-
-#if _MSC_EXTENSIONS
- //
- // use Microsoft* C compiler dependent integer width types
- //
- typedef unsigned __int64 UINT64;
- typedef __int64 INT64;
- typedef unsigned __int32 UINT32;
- typedef __int32 INT32;
- typedef unsigned short UINT16;
- typedef unsigned short CHAR16;
- typedef short INT16;
- typedef unsigned char BOOLEAN;
- typedef unsigned char UINT8;
- typedef char CHAR8;
- typedef signed char INT8;
-#else
- //
- // Use ANSI C 2000 stdint.h integer width declarations
- //
- #include <stdint.h>
- typedef uint8_t BOOLEAN;
- typedef int8_t INT8;
- typedef uint8_t UINT8;
- typedef int16_t INT16;
- typedef uint16_t UINT16;
- typedef int32_t INT32;
- typedef uint32_t UINT32;
- typedef int64_t INT64;
- typedef uint64_t UINT64;
- typedef char CHAR8;
- typedef uint16_t CHAR16;
-
-#endif
-
-///
-/// Unsigned value of native width. (4 bytes on supported 32-bit processor instructions,
-/// 8 bytes on supported 64-bit processor instructions)
-///
-typedef UINT64 UINTN;
-
-///
-/// Signed value of native width. (4 bytes on supported 32-bit processor instructions,
-/// 8 bytes on supported 64-bit processor instructions)
-///
-typedef INT64 INTN;
-
-//
-// Processor specific defines
-//
-
-///
-/// A value of native width with the highest bit set.
-///
-#define MAX_BIT 0x8000000000000000
-
-///
-/// A value of native width with the two highest bits set.
-///
-#define MAX_2_BITS 0xC000000000000000
-
-///
-/// The stack alignment required for AARCH64
-///
-#define CPU_STACK_ALIGNMENT 16
-
-//
-// Modifier to ensure that all protocol member functions and EFI intrinsics
-// use the correct C calling convention. All protocol member functions and
-// EFI intrinsics are required to modify their member functions with EFIAPI.
-//
-#define EFIAPI
-
-#if defined(__GNUC__)
- ///
- /// For GNU assembly code, .global or .globl can declare global symbols.
- /// Define this macro to unify the usage.
- ///
- #define ASM_GLOBAL .globl
-
- #if !defined(__APPLE__)
- ///
- /// ARM EABI defines that the linker should not manipulate call relocations
- /// (do bl/blx conversion) unless the target symbol has function type.
- /// CodeSourcery 2010.09 started requiring the .type to function properly
- ///
- #define INTERWORK_FUNC(func__) .type ASM_PFX(func__), %function
-
- #define GCC_ASM_EXPORT(func__) \
- .global _CONCATENATE (__USER_LABEL_PREFIX__, func__) ;\
- .type ASM_PFX(func__), %function
-
- #define GCC_ASM_IMPORT(func__) \
- .extern _CONCATENATE (__USER_LABEL_PREFIX__, func__)
-
- #else
- //
- // .type not supported by Apple Xcode tools
- //
- #define INTERWORK_FUNC(func__)
-
- #define GCC_ASM_EXPORT(func__) \
- .globl _CONCATENATE (__USER_LABEL_PREFIX__, func__) \
-
- #define GCC_ASM_IMPORT(name)
-
- #endif
-#endif
-
-/**
- Return the pointer to the first instruction of a function given a function pointer.
- On ARM CPU architectures, these two pointer values are the same,
- so the implementation of this macro is very simple.
-
- @param FunctionPointer A pointer to a function.
-
- @return The pointer to the first instruction of a function given a function pointer.
-
-**/
-#define FUNCTION_ENTRY_POINT(FunctionPointer) (VOID *)(UINTN)(FunctionPointer)
-
-#endif
-
diff --git a/BaseTools/Source/C/Include/Arm/ProcessorBind.h b/BaseTools/Source/C/Include/Arm/ProcessorBind.h
deleted file mode 100644
index 8fe4d5f1626a..000000000000
--- a/BaseTools/Source/C/Include/Arm/ProcessorBind.h
+++ /dev/null
@@ -1,147 +0,0 @@
-/** @file
- Processor or Compiler specific defines and types for ARM.
-
- Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
- Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
- SPDX-License-Identifier: BSD-2-Clause-Patent
-
-**/
-
-#ifndef __PROCESSOR_BIND_H__
-#define __PROCESSOR_BIND_H__
-
-///
-/// Define the processor type so other code can make processor based choices
-///
-#define MDE_CPU_ARM
-
-//
-// Make sure we are using the correct packing rules per EFI specification
-//
-#ifndef __GNUC__
-#pragma pack()
-#endif
-
-#if _MSC_EXTENSIONS
- //
- // use Microsoft* C compiler dependent integer width types
- //
- typedef unsigned __int64 UINT64;
- typedef __int64 INT64;
- typedef unsigned __int32 UINT32;
- typedef __int32 INT32;
- typedef unsigned short UINT16;
- typedef unsigned short CHAR16;
- typedef short INT16;
- typedef unsigned char BOOLEAN;
- typedef unsigned char UINT8;
- typedef char CHAR8;
- typedef signed char INT8;
-#else
- //
- // Assume standard ARM alignment.
- //
- typedef unsigned long long UINT64;
- typedef long long INT64;
- typedef unsigned int UINT32;
- typedef int INT32;
- typedef unsigned short UINT16;
- typedef unsigned short CHAR16;
- typedef short INT16;
- typedef unsigned char BOOLEAN;
- typedef unsigned char UINT8;
- typedef char CHAR8;
- typedef signed char INT8;
-
- #define UINT8_MAX 0xff
-#endif
-
-///
-/// Unsigned value of native width. (4 bytes on supported 32-bit processor instructions,
-/// 8 bytes on supported 64-bit processor instructions)
-///
-typedef UINT32 UINTN;
-
-///
-/// Signed value of native width. (4 bytes on supported 32-bit processor instructions,
-/// 8 bytes on supported 64-bit processor instructions)
-///
-typedef INT32 INTN;
-
-//
-// Processor specific defines
-//
-
-///
-/// A value of native width with the highest bit set.
-///
-#define MAX_BIT 0x80000000
-
-///
-/// A value of native width with the two highest bits set.
-///
-#define MAX_2_BITS 0xC0000000
-
-///
-/// The stack alignment required for ARM
-///
-#define CPU_STACK_ALIGNMENT sizeof(UINT64)
-
-//
-// Modifier to ensure that all protocol member functions and EFI intrinsics
-// use the correct C calling convention. All protocol member functions and
-// EFI intrinsics are required to modify their member functions with EFIAPI.
-//
-#define EFIAPI
-
-#if defined(__GNUC__)
- ///
- /// For GNU assembly code, .global or .globl can declare global symbols.
- /// Define this macro to unify the usage.
- ///
- #define ASM_GLOBAL .globl
-
- #if !defined(__APPLE__)
- ///
- /// ARM EABI defines that the linker should not manipulate call relocations
- /// (do bl/blx conversion) unless the target symbol has function type.
- /// CodeSourcery 2010.09 started requiring the .type to function properly
- ///
- #define INTERWORK_FUNC(func__) .type ASM_PFX(func__), %function
-
- #define GCC_ASM_EXPORT(func__) \
- .global _CONCATENATE (__USER_LABEL_PREFIX__, func__) ;\
- .type ASM_PFX(func__), %function
-
- #define GCC_ASM_IMPORT(func__) \
- .extern _CONCATENATE (__USER_LABEL_PREFIX__, func__)
-
- #else
- //
- // .type not supported by Apple Xcode tools
- //
- #define INTERWORK_FUNC(func__)
-
- #define GCC_ASM_EXPORT(func__) \
- .globl _CONCATENATE (__USER_LABEL_PREFIX__, func__) \
-
- #define GCC_ASM_IMPORT(name)
-
- #endif
-#endif
-
-/**
- Return the pointer to the first instruction of a function given a function pointer.
- On ARM CPU architectures, these two pointer values are the same,
- so the implementation of this macro is very simple.
-
- @param FunctionPointer A pointer to a function.
-
- @return The pointer to the first instruction of a function given a function pointer.
-
-**/
-#define FUNCTION_ENTRY_POINT(FunctionPointer) (VOID *)(UINTN)(FunctionPointer)
-
-#endif
-
-
diff --git a/BaseTools/Source/C/Include/Ia32/ProcessorBind.h b/BaseTools/Source/C/Include/Ia32/ProcessorBind.h
deleted file mode 100644
index d1b77ad04a8b..000000000000
--- a/BaseTools/Source/C/Include/Ia32/ProcessorBind.h
+++ /dev/null
@@ -1,155 +0,0 @@
-/** @file
- Processor or Compiler specific defines and types for x64.
-
- Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
-
- SPDX-License-Identifier: BSD-2-Clause-Patent
-
-**/
-
-#ifndef __PROCESSOR_BIND_H__
-#define __PROCESSOR_BIND_H__
-
-//
-// Define the processor type so other code can make processor based choices
-//
-#define MDE_CPU_IA32
-
-//
-// Make sure we are useing the correct packing rules per EFI specification
-//
-#ifndef __GNUC__
-#pragma pack()
-#endif
-
-#if _MSC_EXTENSIONS
-
-//
-// Disable warning that make it impossible to compile at /W4
-// This only works for Microsoft* tools
-//
-
-//
-// Disabling bitfield type checking warnings.
-//
-#pragma warning ( disable : 4214 )
-
-//
-// Disabling the unreferenced formal parameter warnings.
-//
-#pragma warning ( disable : 4100 )
-
-//
-// Disable slightly different base types warning as CHAR8 * can not be set
-// to a constant string.
-//
-#pragma warning ( disable : 4057 )
-
-//
-// ASSERT(FALSE) or while (TRUE) are legal constructs so suppress this warning
-//
-#pragma warning ( disable : 4127 )
-
-
-#endif
-
-
-#if !defined(__GNUC__) && (__STDC_VERSION__ < 199901L)
- //
- // No ANSI C 2000 stdint.h integer width declarations, so define equivalents
- //
-
- #if _MSC_EXTENSIONS
-
- //
- // use Microsoft* C compiler dependent integer width types
- //
- typedef unsigned __int64 UINT64;
- typedef __int64 INT64;
- typedef unsigned __int32 UINT32;
- typedef __int32 INT32;
- typedef unsigned short UINT16;
- typedef unsigned short CHAR16;
- typedef short INT16;
- typedef unsigned char BOOLEAN;
- typedef unsigned char UINT8;
- typedef char CHAR8;
- typedef char INT8;
- #else
-
- //
- // Assume standard IA-32 alignment.
- // BugBug: Need to check portability of long long
- //
- typedef unsigned long long UINT64;
- typedef long long INT64;
- typedef unsigned int UINT32;
- typedef int INT32;
- typedef unsigned short UINT16;
- typedef unsigned short CHAR16;
- typedef short INT16;
- typedef unsigned char BOOLEAN;
- typedef unsigned char UINT8;
- typedef char CHAR8;
- typedef char INT8;
- #endif
-
- #define UINT8_MAX 0xff
-
-#else
- //
- // Use ANSI C 2000 stdint.h integer width declarations
- //
- #include "stdint.h"
- typedef uint8_t BOOLEAN;
- typedef int8_t INT8;
- typedef uint8_t UINT8;
- typedef int16_t INT16;
- typedef uint16_t UINT16;
- typedef int32_t INT32;
- typedef uint32_t UINT32;
- typedef int64_t INT64;
- typedef uint64_t UINT64;
- typedef char CHAR8;
- typedef uint16_t CHAR16;
-
-#endif
-
-typedef UINT32 UINTN;
-typedef INT32 INTN;
-
-
-//
-// Processor specific defines
-//
-#define MAX_BIT 0x80000000
-#define MAX_2_BITS 0xC0000000
-
-//
-// Modifier to ensure that all protocol member functions and EFI intrinsics
-// use the correct C calling convention. All protocol member functions and
-// EFI intrinsics are required to modify their member functions with EFIAPI.
-//
-#if _MSC_EXTENSIONS
- //
- // Microsoft* compiler requires _EFIAPI usage, __cdecl is Microsoft* specific C.
- //
- #define EFIAPI __cdecl
-#endif
-
-#if __GNUC__
- #define EFIAPI __attribute__((cdecl))
-#endif
-
-//
-// The Microsoft* C compiler can removed references to unreferenced data items
-// if the /OPT:REF linker option is used. We defined a macro as this is a
-// a non standard extension
-//
-#if _MSC_EXTENSIONS
- #define GLOBAL_REMOVE_IF_UNREFERENCED __declspec(selectany)
-#else
- #define GLOBAL_REMOVE_IF_UNREFERENCED
-#endif
-
-#endif
diff --git a/BaseTools/Source/C/Include/LoongArch64/ProcessorBind.h b/BaseTools/Source/C/Include/LoongArch64/ProcessorBind.h
deleted file mode 100644
index 0267859deece..000000000000
--- a/BaseTools/Source/C/Include/LoongArch64/ProcessorBind.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/** @file
- Processor or Compiler specific defines and types for LoongArch
-
- Copyright (c) 2022, Loongson Technology Corporation Limited. All rights reserved.<BR>
-
- SPDX-License-Identifier: BSD-2-Clause-Patent
-
-**/
-#ifndef PROCESSOR_BIND_H_
-#define PROCESSOR_BIND_H_
-
-//
-// Define the processor type so other code can make processor based choices
-//
-#define MDE_CPU_LOONGARCH64
-
-#define EFIAPI
-
-//
-// Make sure we are using the correct packing rules per EFI specification
-//
-#ifndef __GNUC__
-#pragma pack()
-#endif
-
-//
-// Use ANSI C 2000 stdint.h integer width declarations
-//
-#include <stdint.h>
-typedef uint8_t BOOLEAN;
-typedef int8_t INT8;
-typedef uint8_t UINT8;
-typedef int16_t INT16;
-typedef uint16_t UINT16;
-typedef int32_t INT32;
-typedef uint32_t UINT32;
-typedef int64_t INT64;
-typedef uint64_t UINT64;
-typedef char CHAR8;
-typedef uint16_t CHAR16;
-
-//
-// Unsigned value of native width. (4 bytes on supported 32-bit processor instructions,
-// 8 bytes on supported 64-bit processor instructions)
-//
-typedef UINT64 UINTN;
-
-//
-// Signed value of native width. (4 bytes on supported 32-bit processor instructions,
-// 8 bytes on supported 64-bit processor instructions)
-//
-typedef INT64 INTN;
-
-//
-// Processor specific defines
-//
-
-//
-// A value of native width with the highest bit set.
-//
-#define MAX_BIT 0x8000000000000000ULL
-//
-// A value of native width with the two highest bits set.
-//
-#define MAX_2_BITS 0xC000000000000000ULL
-
-#if defined (__GNUC__)
-//
-// For GNU assembly code, .global or .globl can declare global symbols.
-// Define this macro to unify the usage.
-//
-#define ASM_GLOBAL .globl
-#endif
-
-//
-// The stack alignment required for LoongArch
-//
-#define CPU_STACK_ALIGNMENT 16
-
-#endif
diff --git a/BaseTools/Source/C/Include/RiscV64/ProcessorBind.h b/BaseTools/Source/C/Include/RiscV64/ProcessorBind.h
deleted file mode 100644
index 1612d6ea7f16..000000000000
--- a/BaseTools/Source/C/Include/RiscV64/ProcessorBind.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/** @file
- Processor or Compiler specific defines and types for RISC-V.
-
- SPDX-License-Identifier: BSD-2-Clause-Patent
-
-**/
-
-#ifndef __PROCESSOR_BIND_H__
-#define __PROCESSOR_BIND_H__
-
-//
-// Define the processor type so other code can make processor based choices
-//
-#define MDE_CPU_RISCV64
-
-//
-// Make sure we are using the correct packing rules per EFI specification
-//
-#ifndef __GNUC__
-#pragma pack()
-#endif
-
-//
-// Use ANSI C 2000 stdint.h integer width declarations
-//
-#include <stdint.h>
-typedef uint8_t BOOLEAN;
-typedef int8_t INT8;
-typedef uint8_t UINT8;
-typedef int16_t INT16;
-typedef uint16_t UINT16;
-typedef int32_t INT32;
-typedef uint32_t UINT32;
-typedef int64_t INT64;
-typedef uint64_t UINT64;
-typedef char CHAR8;
-typedef uint16_t CHAR16;
-
-//
-// Unsigned value of native width. (4 bytes on supported 32-bit processor instructions,
-// 8 bytes on supported 64-bit processor instructions)
-//
-typedef UINT64 UINTN;
-
-//
-// Signed value of native width. (4 bytes on supported 32-bit processor instructions,
-// 8 bytes on supported 64-bit processor instructions)
-//
-typedef INT64 INTN;
-
-//
-// Processor specific defines
-//
-
-//
-// A value of native width with the highest bit set.
-//
-#define MAX_BIT 0x8000000000000000
-
-//
-// A value of native width with the two highest bits set.
-//
-#define MAX_2_BITS 0xC000000000000000
-
-//
-// The stack alignment required for RISC-V
-//
-#define CPU_STACK_ALIGNMENT 16
-
-//
-// Modifier to ensure that all protocol member functions and EFI intrinsics
-// use the correct C calling convention. All protocol member functions and
-// EFI intrinsics are required to modify their member functions with EFIAPI.
-//
-#define EFIAPI
-
-#if defined(__GNUC__)
- //
- // For GNU assembly code, .global or .globl can declare global symbols.
- // Define this macro to unify the usage.
- //
- #define ASM_GLOBAL .globl
-#endif
-
-#endif
diff --git a/BaseTools/Source/C/Include/X64/ProcessorBind.h b/BaseTools/Source/C/Include/X64/ProcessorBind.h
deleted file mode 100644
index fce179fe7e3a..000000000000
--- a/BaseTools/Source/C/Include/X64/ProcessorBind.h
+++ /dev/null
@@ -1,183 +0,0 @@
-/** @file
- Processor or Compiler specific defines and types x64 (Intel(r) EM64T, AMD64).
-
- Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
-
- SPDX-License-Identifier: BSD-2-Clause-Patent
-
-**/
-
-#ifndef __PROCESSOR_BIND_H__
-#define __PROCESSOR_BIND_H__
-
-//
-// Define the processor type so other code can make processor based choices
-//
-#define MDE_CPU_X64
-
-
-//
-// Make sure we are useing the correct packing rules per EFI specification
-//
-#ifndef __GNUC__
-#pragma pack()
-#endif
-
-
-#if _MSC_EXTENSIONS
-
-//
-// Disable warning that make it impossible to compile at /W4
-// This only works for Microsoft* tools
-//
-
-//
-// Disabling bitfield type checking warnings.
-//
-#pragma warning ( disable : 4214 )
-
-//
-// Disabling the unreferenced formal parameter warnings.
-//
-#pragma warning ( disable : 4100 )
-
-//
-// Disable slightly different base types warning as CHAR8 * can not be set
-// to a constant string.
-//
-#pragma warning ( disable : 4057 )
-
-//
-// ASSERT(FALSE) or while (TRUE) are legal constructes so supress this warning
-//
-#pragma warning ( disable : 4127 )
-
-
-#endif
-
-
-#if !defined(__GNUC__) && (__STDC_VERSION__ < 199901L)
- //
- // No ANSI C 2000 stdint.h integer width declarations, so define equivalents
- //
-
- #if _MSC_EXTENSIONS
-
-
- //
- // use Microsoft C compiler dependent integer width types
- //
- typedef unsigned __int64 UINT64;
- typedef __int64 INT64;
- typedef unsigned __int32 UINT32;
- typedef __int32 INT32;
- typedef unsigned short UINT16;
- typedef unsigned short CHAR16;
- typedef short INT16;
- typedef unsigned char BOOLEAN;
- typedef unsigned char UINT8;
- typedef char CHAR8;
- typedef char INT8;
- #else
- #ifdef _EFI_P64
- //
- // P64 - is Intel Itanium(TM) speak for pointers being 64-bit and longs and ints
- // are 32-bits
- //
- typedef unsigned long long UINT64;
- typedef long long INT64;
- typedef unsigned int UINT32;
- typedef int INT32;
- typedef unsigned short CHAR16;
- typedef unsigned short UINT16;
- typedef short INT16;
- typedef unsigned char BOOLEAN;
- typedef unsigned char UINT8;
- typedef char CHAR8;
- typedef char INT8;
- #else
- //
- // Assume LP64 - longs and pointers are 64-bit. Ints are 32-bit.
- //
- typedef unsigned long UINT64;
- typedef long INT64;
- typedef unsigned int UINT32;
- typedef int INT32;
- typedef unsigned short UINT16;
- typedef unsigned short CHAR16;
- typedef short INT16;
- typedef unsigned char BOOLEAN;
- typedef unsigned char UINT8;
- typedef char CHAR8;
- typedef char INT8;
- #endif
- #endif
-
- #define UINT8_MAX 0xff
-
-#else
- //
- // Use ANSI C 2000 stdint.h integer width declarations
- //
- #include <stdint.h>
- typedef uint8_t BOOLEAN;
- typedef int8_t INT8;
- typedef uint8_t UINT8;
- typedef int16_t INT16;
- typedef uint16_t UINT16;
- typedef int32_t INT32;
- typedef uint32_t UINT32;
- typedef int64_t INT64;
- typedef uint64_t UINT64;
- typedef char CHAR8;
- typedef uint16_t CHAR16;
-
-#endif
-
-typedef UINT64 UINTN;
-typedef INT64 INTN;
-
-
-//
-// Processor specific defines
-//
-#define MAX_BIT 0x8000000000000000ULL
-#define MAX_2_BITS 0xC000000000000000ULL
-
-//
-// Modifier to ensure that all protocol member functions and EFI intrinsics
-// use the correct C calling convention. All protocol member functions and
-// EFI intrinsics are required to modify their member functions with EFIAPI.
-//
-#if _MSC_EXTENSIONS
- ///
- /// Define the standard calling convention regardless of optimization level.
- /// __cdecl is Microsoft* specific C extension.
- ///
- #define EFIAPI __cdecl
-#elif __GNUC__
- ///
- /// Define the standard calling convention regardless of optimization level.
- /// efidecl is an extension to GCC that supports the differnece between x64
- /// GCC ABI and x64 Microsoft* ABI. EFI is closer to the Microsoft* ABI and
- /// EFIAPI makes sure the right ABI is used for public interfaces.
- /// eficecl is a work in progress and we do not yet have the compiler
- ///
- #define EFIAPI
-#else
- #define EFIAPI
-#endif
-
-//
-// The Microsoft* C compiler can removed references to unreferenced data items
-// if the /OPT:REF linker option is used. We defined a macro as this is a
-// a non standard extension
-//
-#if _MSC_EXTENSIONS
- #define GLOBAL_REMOVE_IF_UNREFERENCED __declspec(selectany)
-#else
- #define GLOBAL_REMOVE_IF_UNREFERENCED
-#endif
-
-#endif
-
diff --git a/BaseTools/Source/C/Common/Decompress.c b/BaseTools/Source/C/Common/Decompress.c
index d85098f13140..8625ccd03618 100644
--- a/BaseTools/Source/C/Common/Decompress.c
+++ b/BaseTools/Source/C/Common/Decompress.c
@@ -15,6 +15,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
//
// Decompression algorithm begins here
//
+#define UINT8_MAX 0xff
#define BITBUFSIZ 32
#define MAXMATCH 256
#define THRESHOLD 3
diff --git a/BaseTools/Source/C/Makefiles/header.makefile b/BaseTools/Source/C/Makefiles/header.makefile
index 4e88a4fbd86b..cecca2c27462 100644
--- a/BaseTools/Source/C/Makefiles/header.makefile
+++ b/BaseTools/Source/C/Makefiles/header.makefile
@@ -8,6 +8,8 @@
# Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>
# SPDX-License-Identifier: BSD-2-Clause-Patent
+EDK2_PATH ?= $(MAKEROOT)/../../..
+
ifndef HOST_ARCH
#
# If HOST_ARCH is not defined, then we use 'uname -m' to attempt
@@ -59,22 +61,22 @@ BUILD_LD ?= ld
endif
LINKER ?= $(BUILD_CC)
ifeq ($(HOST_ARCH), IA32)
-ARCH_INCLUDE = -I $(MAKEROOT)/Include/Ia32/
+ARCH_INCLUDE = -I $(EDK2_PATH)/MdePkg/Include/Ia32/
else ifeq ($(HOST_ARCH), X64)
-ARCH_INCLUDE = -I $(MAKEROOT)/Include/X64/
+ARCH_INCLUDE = -I $(EDK2_PATH)/MdePkg/Include/X64/
else ifeq ($(HOST_ARCH), ARM)
-ARCH_INCLUDE = -I $(MAKEROOT)/Include/Arm/
+ARCH_INCLUDE = -I $(EDK2_PATH)/MdePkg/Include/Arm/
else ifeq ($(HOST_ARCH), AARCH64)
-ARCH_INCLUDE = -I $(MAKEROOT)/Include/AArch64/
+ARCH_INCLUDE = -I $(EDK2_PATH)/MdePkg/Include/AArch64/
else ifeq ($(HOST_ARCH), RISCV64)
-ARCH_INCLUDE = -I $(MAKEROOT)/Include/RiscV64/
+ARCH_INCLUDE = -I $(EDK2_PATH)/MdePkg/Include/RiscV64/
else ifeq ($(HOST_ARCH), LOONGARCH64)
-ARCH_INCLUDE = -I $(MAKEROOT)/Include/LoongArch64/
+ARCH_INCLUDE = -I $(EDK2_PATH)/MdePkg/Include/LoongArch64/
else
$(error Bad HOST_ARCH)
diff --git a/BaseTools/Source/C/Makefiles/ms.common b/BaseTools/Source/C/Makefiles/ms.common
index 8391f10d5dd2..985d9498ccb8 100644
--- a/BaseTools/Source/C/Makefiles/ms.common
+++ b/BaseTools/Source/C/Makefiles/ms.common
@@ -17,6 +17,14 @@
HOST_ARCH = IA32
!ENDIF
+!IFNDEF MAKEROOT
+MAKEROOT = $(SOURCE_PATH)
+!ENDIF
+
+!IFNDEF EDK2_PATH
+EDK2_PATH = $(MAKEROOT)\..\..\..
+!ENDIF
+
MAKE = nmake -nologo
# DOS del command doesn't support ":\\" in the file path, such as j:\\BaseTools. Convert ":\\" to ":\"
@@ -31,14 +39,14 @@ SYS_BIN_PATH=$(EDK_TOOLS_PATH)\Bin
SYS_LIB_PATH=$(EDK_TOOLS_PATH)\Lib
!IF "$(HOST_ARCH)"=="IA32"
-ARCH_INCLUDE = $(SOURCE_PATH)\Include\Ia32
+ARCH_INCLUDE = $(EDK2_PATH)\MdePkg\Include\Ia32
BIN_PATH = $(BASE_TOOLS_PATH)\Bin\Win32
LIB_PATH = $(BASE_TOOLS_PATH)\Lib\Win32
SYS_BIN_PATH = $(EDK_TOOLS_PATH)\Bin\Win32
SYS_LIB_PATH = $(EDK_TOOLS_PATH)\Lib\Win32
!ELSEIF "$(HOST_ARCH)"=="X64"
-ARCH_INCLUDE = $(SOURCE_PATH)\Include\X64
+ARCH_INCLUDE = $(EDK2_PATH)\MdePkg\Include\X64
BIN_PATH = $(BASE_TOOLS_PATH)\Bin\Win64
LIB_PATH = $(BASE_TOOLS_PATH)\Lib\Win64
SYS_BIN_PATH = $(EDK_TOOLS_PATH)\Bin\Win64
--
2.39.2
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#101658): https://edk2.groups.io/g/devel/message/101658
Mute This Topic: https://groups.io/mt/97798528/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
Reviewed-by: Chao Li <lichao@loongson.cn> Thanks, Chao 在 2023/3/23 19:17, Gerd Hoffmann 写道: > Use the MdePkg version instead of maintaining a copy in BaseTools. > > Signed-off-by: Gerd Hoffmann<kraxel@redhat.com> > --- > .../Source/C/Include/AArch64/ProcessorBind.h | 148 -------------- > .../Source/C/Include/Arm/ProcessorBind.h | 147 -------------- > .../Source/C/Include/Ia32/ProcessorBind.h | 155 --------------- > .../C/Include/LoongArch64/ProcessorBind.h | 80 -------- > .../Source/C/Include/RiscV64/ProcessorBind.h | 85 -------- > .../Source/C/Include/X64/ProcessorBind.h | 183 ------------------ > BaseTools/Source/C/Common/Decompress.c | 1 + > BaseTools/Source/C/Makefiles/header.makefile | 14 +- > BaseTools/Source/C/Makefiles/ms.common | 12 +- > 9 files changed, 19 insertions(+), 806 deletions(-) > delete mode 100644 BaseTools/Source/C/Include/AArch64/ProcessorBind.h > delete mode 100644 BaseTools/Source/C/Include/Arm/ProcessorBind.h > delete mode 100644 BaseTools/Source/C/Include/Ia32/ProcessorBind.h > delete mode 100644 BaseTools/Source/C/Include/LoongArch64/ProcessorBind.h > delete mode 100644 BaseTools/Source/C/Include/RiscV64/ProcessorBind.h > delete mode 100644 BaseTools/Source/C/Include/X64/ProcessorBind.h > > diff --git a/BaseTools/Source/C/Include/AArch64/ProcessorBind.h b/BaseTools/Source/C/Include/AArch64/ProcessorBind.h > deleted file mode 100644 > index dfa725b2e363..000000000000 > --- a/BaseTools/Source/C/Include/AArch64/ProcessorBind.h > +++ /dev/null > @@ -1,148 +0,0 @@ > -/** @file > - Processor or Compiler specific defines and types for AArch64. > - > - Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR> > - Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR> > - Portions copyright (c) 2013, ARM Ltd. All rights reserved.<BR> > - > - SPDX-License-Identifier: BSD-2-Clause-Patent > - > -**/ > - > -#ifndef __PROCESSOR_BIND_H__ > -#define __PROCESSOR_BIND_H__ > - > -/// > -/// Define the processor type so other code can make processor based choices > -/// > -#define MDE_CPU_AARCH64 > - > -// > -// Make sure we are using the correct packing rules per EFI specification > -// > -#ifndef __GNUC__ > -#pragma pack() > -#endif > - > -#if _MSC_EXTENSIONS > - // > - // use Microsoft* C compiler dependent integer width types > - // > - typedef unsigned __int64 UINT64; > - typedef __int64 INT64; > - typedef unsigned __int32 UINT32; > - typedef __int32 INT32; > - typedef unsigned short UINT16; > - typedef unsigned short CHAR16; > - typedef short INT16; > - typedef unsigned char BOOLEAN; > - typedef unsigned char UINT8; > - typedef char CHAR8; > - typedef signed char INT8; > -#else > - // > - // Use ANSI C 2000 stdint.h integer width declarations > - // > - #include <stdint.h> > - typedef uint8_t BOOLEAN; > - typedef int8_t INT8; > - typedef uint8_t UINT8; > - typedef int16_t INT16; > - typedef uint16_t UINT16; > - typedef int32_t INT32; > - typedef uint32_t UINT32; > - typedef int64_t INT64; > - typedef uint64_t UINT64; > - typedef char CHAR8; > - typedef uint16_t CHAR16; > - > -#endif > - > -/// > -/// Unsigned value of native width. (4 bytes on supported 32-bit processor instructions, > -/// 8 bytes on supported 64-bit processor instructions) > -/// > -typedef UINT64 UINTN; > - > -/// > -/// Signed value of native width. (4 bytes on supported 32-bit processor instructions, > -/// 8 bytes on supported 64-bit processor instructions) > -/// > -typedef INT64 INTN; > - > -// > -// Processor specific defines > -// > - > -/// > -/// A value of native width with the highest bit set. > -/// > -#define MAX_BIT 0x8000000000000000 > - > -/// > -/// A value of native width with the two highest bits set. > -/// > -#define MAX_2_BITS 0xC000000000000000 > - > -/// > -/// The stack alignment required for AARCH64 > -/// > -#define CPU_STACK_ALIGNMENT 16 > - > -// > -// Modifier to ensure that all protocol member functions and EFI intrinsics > -// use the correct C calling convention. All protocol member functions and > -// EFI intrinsics are required to modify their member functions with EFIAPI. > -// > -#define EFIAPI > - > -#if defined(__GNUC__) > - /// > - /// For GNU assembly code, .global or .globl can declare global symbols. > - /// Define this macro to unify the usage. > - /// > - #define ASM_GLOBAL .globl > - > - #if !defined(__APPLE__) > - /// > - /// ARM EABI defines that the linker should not manipulate call relocations > - /// (do bl/blx conversion) unless the target symbol has function type. > - /// CodeSourcery 2010.09 started requiring the .type to function properly > - /// > - #define INTERWORK_FUNC(func__) .type ASM_PFX(func__), %function > - > - #define GCC_ASM_EXPORT(func__) \ > - .global _CONCATENATE (__USER_LABEL_PREFIX__, func__) ;\ > - .type ASM_PFX(func__), %function > - > - #define GCC_ASM_IMPORT(func__) \ > - .extern _CONCATENATE (__USER_LABEL_PREFIX__, func__) > - > - #else > - // > - // .type not supported by Apple Xcode tools > - // > - #define INTERWORK_FUNC(func__) > - > - #define GCC_ASM_EXPORT(func__) \ > - .globl _CONCATENATE (__USER_LABEL_PREFIX__, func__) \ > - > - #define GCC_ASM_IMPORT(name) > - > - #endif > -#endif > - > -/** > - Return the pointer to the first instruction of a function given a function pointer. > - On ARM CPU architectures, these two pointer values are the same, > - so the implementation of this macro is very simple. > - > - @param FunctionPointer A pointer to a function. > - > - @return The pointer to the first instruction of a function given a function pointer. > - > -**/ > -#define FUNCTION_ENTRY_POINT(FunctionPointer) (VOID *)(UINTN)(FunctionPointer) > - > -#endif > - > diff --git a/BaseTools/Source/C/Include/Arm/ProcessorBind.h b/BaseTools/Source/C/Include/Arm/ProcessorBind.h > deleted file mode 100644 > index 8fe4d5f1626a..000000000000 > --- a/BaseTools/Source/C/Include/Arm/ProcessorBind.h > +++ /dev/null > @@ -1,147 +0,0 @@ > -/** @file > - Processor or Compiler specific defines and types for ARM. > - > - Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR> > - Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR> > - SPDX-License-Identifier: BSD-2-Clause-Patent > - > -**/ > - > -#ifndef __PROCESSOR_BIND_H__ > -#define __PROCESSOR_BIND_H__ > - > -/// > -/// Define the processor type so other code can make processor based choices > -/// > -#define MDE_CPU_ARM > - > -// > -// Make sure we are using the correct packing rules per EFI specification > -// > -#ifndef __GNUC__ > -#pragma pack() > -#endif > - > -#if _MSC_EXTENSIONS > - // > - // use Microsoft* C compiler dependent integer width types > - // > - typedef unsigned __int64 UINT64; > - typedef __int64 INT64; > - typedef unsigned __int32 UINT32; > - typedef __int32 INT32; > - typedef unsigned short UINT16; > - typedef unsigned short CHAR16; > - typedef short INT16; > - typedef unsigned char BOOLEAN; > - typedef unsigned char UINT8; > - typedef char CHAR8; > - typedef signed char INT8; > -#else > - // > - // Assume standard ARM alignment. > - // > - typedef unsigned long long UINT64; > - typedef long long INT64; > - typedef unsigned int UINT32; > - typedef int INT32; > - typedef unsigned short UINT16; > - typedef unsigned short CHAR16; > - typedef short INT16; > - typedef unsigned char BOOLEAN; > - typedef unsigned char UINT8; > - typedef char CHAR8; > - typedef signed char INT8; > - > - #define UINT8_MAX 0xff > -#endif > - > -/// > -/// Unsigned value of native width. (4 bytes on supported 32-bit processor instructions, > -/// 8 bytes on supported 64-bit processor instructions) > -/// > -typedef UINT32 UINTN; > - > -/// > -/// Signed value of native width. (4 bytes on supported 32-bit processor instructions, > -/// 8 bytes on supported 64-bit processor instructions) > -/// > -typedef INT32 INTN; > - > -// > -// Processor specific defines > -// > - > -/// > -/// A value of native width with the highest bit set. > -/// > -#define MAX_BIT 0x80000000 > - > -/// > -/// A value of native width with the two highest bits set. > -/// > -#define MAX_2_BITS 0xC0000000 > - > -/// > -/// The stack alignment required for ARM > -/// > -#define CPU_STACK_ALIGNMENT sizeof(UINT64) > - > -// > -// Modifier to ensure that all protocol member functions and EFI intrinsics > -// use the correct C calling convention. All protocol member functions and > -// EFI intrinsics are required to modify their member functions with EFIAPI. > -// > -#define EFIAPI > - > -#if defined(__GNUC__) > - /// > - /// For GNU assembly code, .global or .globl can declare global symbols. > - /// Define this macro to unify the usage. > - /// > - #define ASM_GLOBAL .globl > - > - #if !defined(__APPLE__) > - /// > - /// ARM EABI defines that the linker should not manipulate call relocations > - /// (do bl/blx conversion) unless the target symbol has function type. > - /// CodeSourcery 2010.09 started requiring the .type to function properly > - /// > - #define INTERWORK_FUNC(func__) .type ASM_PFX(func__), %function > - > - #define GCC_ASM_EXPORT(func__) \ > - .global _CONCATENATE (__USER_LABEL_PREFIX__, func__) ;\ > - .type ASM_PFX(func__), %function > - > - #define GCC_ASM_IMPORT(func__) \ > - .extern _CONCATENATE (__USER_LABEL_PREFIX__, func__) > - > - #else > - // > - // .type not supported by Apple Xcode tools > - // > - #define INTERWORK_FUNC(func__) > - > - #define GCC_ASM_EXPORT(func__) \ > - .globl _CONCATENATE (__USER_LABEL_PREFIX__, func__) \ > - > - #define GCC_ASM_IMPORT(name) > - > - #endif > -#endif > - > -/** > - Return the pointer to the first instruction of a function given a function pointer. > - On ARM CPU architectures, these two pointer values are the same, > - so the implementation of this macro is very simple. > - > - @param FunctionPointer A pointer to a function. > - > - @return The pointer to the first instruction of a function given a function pointer. > - > -**/ > -#define FUNCTION_ENTRY_POINT(FunctionPointer) (VOID *)(UINTN)(FunctionPointer) > - > -#endif > - > - > diff --git a/BaseTools/Source/C/Include/Ia32/ProcessorBind.h b/BaseTools/Source/C/Include/Ia32/ProcessorBind.h > deleted file mode 100644 > index d1b77ad04a8b..000000000000 > --- a/BaseTools/Source/C/Include/Ia32/ProcessorBind.h > +++ /dev/null > @@ -1,155 +0,0 @@ > -/** @file > - Processor or Compiler specific defines and types for x64. > - > - Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR> > - > - SPDX-License-Identifier: BSD-2-Clause-Patent > - > -**/ > - > -#ifndef __PROCESSOR_BIND_H__ > -#define __PROCESSOR_BIND_H__ > - > -// > -// Define the processor type so other code can make processor based choices > -// > -#define MDE_CPU_IA32 > - > -// > -// Make sure we are useing the correct packing rules per EFI specification > -// > -#ifndef __GNUC__ > -#pragma pack() > -#endif > - > -#if _MSC_EXTENSIONS > - > -// > -// Disable warning that make it impossible to compile at /W4 > -// This only works for Microsoft* tools > -// > - > -// > -// Disabling bitfield type checking warnings. > -// > -#pragma warning ( disable : 4214 ) > - > -// > -// Disabling the unreferenced formal parameter warnings. > -// > -#pragma warning ( disable : 4100 ) > - > -// > -// Disable slightly different base types warning as CHAR8 * can not be set > -// to a constant string. > -// > -#pragma warning ( disable : 4057 ) > - > -// > -// ASSERT(FALSE) or while (TRUE) are legal constructs so suppress this warning > -// > -#pragma warning ( disable : 4127 ) > - > - > -#endif > - > - > -#if !defined(__GNUC__) && (__STDC_VERSION__ < 199901L) > - // > - // No ANSI C 2000 stdint.h integer width declarations, so define equivalents > - // > - > - #if _MSC_EXTENSIONS > - > - // > - // use Microsoft* C compiler dependent integer width types > - // > - typedef unsigned __int64 UINT64; > - typedef __int64 INT64; > - typedef unsigned __int32 UINT32; > - typedef __int32 INT32; > - typedef unsigned short UINT16; > - typedef unsigned short CHAR16; > - typedef short INT16; > - typedef unsigned char BOOLEAN; > - typedef unsigned char UINT8; > - typedef char CHAR8; > - typedef char INT8; > - #else > - > - // > - // Assume standard IA-32 alignment. > - // BugBug: Need to check portability of long long > - // > - typedef unsigned long long UINT64; > - typedef long long INT64; > - typedef unsigned int UINT32; > - typedef int INT32; > - typedef unsigned short UINT16; > - typedef unsigned short CHAR16; > - typedef short INT16; > - typedef unsigned char BOOLEAN; > - typedef unsigned char UINT8; > - typedef char CHAR8; > - typedef char INT8; > - #endif > - > - #define UINT8_MAX 0xff > - > -#else > - // > - // Use ANSI C 2000 stdint.h integer width declarations > - // > - #include "stdint.h" > - typedef uint8_t BOOLEAN; > - typedef int8_t INT8; > - typedef uint8_t UINT8; > - typedef int16_t INT16; > - typedef uint16_t UINT16; > - typedef int32_t INT32; > - typedef uint32_t UINT32; > - typedef int64_t INT64; > - typedef uint64_t UINT64; > - typedef char CHAR8; > - typedef uint16_t CHAR16; > - > -#endif > - > -typedef UINT32 UINTN; > -typedef INT32 INTN; > - > - > -// > -// Processor specific defines > -// > -#define MAX_BIT 0x80000000 > -#define MAX_2_BITS 0xC0000000 > - > -// > -// Modifier to ensure that all protocol member functions and EFI intrinsics > -// use the correct C calling convention. All protocol member functions and > -// EFI intrinsics are required to modify their member functions with EFIAPI. > -// > -#if _MSC_EXTENSIONS > - // > - // Microsoft* compiler requires _EFIAPI usage, __cdecl is Microsoft* specific C. > - // > - #define EFIAPI __cdecl > -#endif > - > -#if __GNUC__ > - #define EFIAPI __attribute__((cdecl)) > -#endif > - > -// > -// The Microsoft* C compiler can removed references to unreferenced data items > -// if the /OPT:REF linker option is used. We defined a macro as this is a > -// a non standard extension > -// > -#if _MSC_EXTENSIONS > - #define GLOBAL_REMOVE_IF_UNREFERENCED __declspec(selectany) > -#else > - #define GLOBAL_REMOVE_IF_UNREFERENCED > -#endif > - > -#endif > diff --git a/BaseTools/Source/C/Include/LoongArch64/ProcessorBind.h b/BaseTools/Source/C/Include/LoongArch64/ProcessorBind.h > deleted file mode 100644 > index 0267859deece..000000000000 > --- a/BaseTools/Source/C/Include/LoongArch64/ProcessorBind.h > +++ /dev/null > @@ -1,80 +0,0 @@ > -/** @file > - Processor or Compiler specific defines and types for LoongArch > - > - Copyright (c) 2022, Loongson Technology Corporation Limited. All rights reserved.<BR> > - > - SPDX-License-Identifier: BSD-2-Clause-Patent > - > -**/ > -#ifndef PROCESSOR_BIND_H_ > -#define PROCESSOR_BIND_H_ > - > -// > -// Define the processor type so other code can make processor based choices > -// > -#define MDE_CPU_LOONGARCH64 > - > -#define EFIAPI > - > -// > -// Make sure we are using the correct packing rules per EFI specification > -// > -#ifndef __GNUC__ > -#pragma pack() > -#endif > - > -// > -// Use ANSI C 2000 stdint.h integer width declarations > -// > -#include <stdint.h> > -typedef uint8_t BOOLEAN; > -typedef int8_t INT8; > -typedef uint8_t UINT8; > -typedef int16_t INT16; > -typedef uint16_t UINT16; > -typedef int32_t INT32; > -typedef uint32_t UINT32; > -typedef int64_t INT64; > -typedef uint64_t UINT64; > -typedef char CHAR8; > -typedef uint16_t CHAR16; > - > -// > -// Unsigned value of native width. (4 bytes on supported 32-bit processor instructions, > -// 8 bytes on supported 64-bit processor instructions) > -// > -typedef UINT64 UINTN; > - > -// > -// Signed value of native width. (4 bytes on supported 32-bit processor instructions, > -// 8 bytes on supported 64-bit processor instructions) > -// > -typedef INT64 INTN; > - > -// > -// Processor specific defines > -// > - > -// > -// A value of native width with the highest bit set. > -// > -#define MAX_BIT 0x8000000000000000ULL > -// > -// A value of native width with the two highest bits set. > -// > -#define MAX_2_BITS 0xC000000000000000ULL > - > -#if defined (__GNUC__) > -// > -// For GNU assembly code, .global or .globl can declare global symbols. > -// Define this macro to unify the usage. > -// > -#define ASM_GLOBAL .globl > -#endif > - > -// > -// The stack alignment required for LoongArch > -// > -#define CPU_STACK_ALIGNMENT 16 > - > -#endif > diff --git a/BaseTools/Source/C/Include/RiscV64/ProcessorBind.h b/BaseTools/Source/C/Include/RiscV64/ProcessorBind.h > deleted file mode 100644 > index 1612d6ea7f16..000000000000 > --- a/BaseTools/Source/C/Include/RiscV64/ProcessorBind.h > +++ /dev/null > @@ -1,85 +0,0 @@ > -/** @file > - Processor or Compiler specific defines and types for RISC-V. > - > - SPDX-License-Identifier: BSD-2-Clause-Patent > - > -**/ > - > -#ifndef __PROCESSOR_BIND_H__ > -#define __PROCESSOR_BIND_H__ > - > -// > -// Define the processor type so other code can make processor based choices > -// > -#define MDE_CPU_RISCV64 > - > -// > -// Make sure we are using the correct packing rules per EFI specification > -// > -#ifndef __GNUC__ > -#pragma pack() > -#endif > - > -// > -// Use ANSI C 2000 stdint.h integer width declarations > -// > -#include <stdint.h> > -typedef uint8_t BOOLEAN; > -typedef int8_t INT8; > -typedef uint8_t UINT8; > -typedef int16_t INT16; > -typedef uint16_t UINT16; > -typedef int32_t INT32; > -typedef uint32_t UINT32; > -typedef int64_t INT64; > -typedef uint64_t UINT64; > -typedef char CHAR8; > -typedef uint16_t CHAR16; > - > -// > -// Unsigned value of native width. (4 bytes on supported 32-bit processor instructions, > -// 8 bytes on supported 64-bit processor instructions) > -// > -typedef UINT64 UINTN; > - > -// > -// Signed value of native width. (4 bytes on supported 32-bit processor instructions, > -// 8 bytes on supported 64-bit processor instructions) > -// > -typedef INT64 INTN; > - > -// > -// Processor specific defines > -// > - > -// > -// A value of native width with the highest bit set. > -// > -#define MAX_BIT 0x8000000000000000 > - > -// > -// A value of native width with the two highest bits set. > -// > -#define MAX_2_BITS 0xC000000000000000 > - > -// > -// The stack alignment required for RISC-V > -// > -#define CPU_STACK_ALIGNMENT 16 > - > -// > -// Modifier to ensure that all protocol member functions and EFI intrinsics > -// use the correct C calling convention. All protocol member functions and > -// EFI intrinsics are required to modify their member functions with EFIAPI. > -// > -#define EFIAPI > - > -#if defined(__GNUC__) > - // > - // For GNU assembly code, .global or .globl can declare global symbols. > - // Define this macro to unify the usage. > - // > - #define ASM_GLOBAL .globl > -#endif > - > -#endif > diff --git a/BaseTools/Source/C/Include/X64/ProcessorBind.h b/BaseTools/Source/C/Include/X64/ProcessorBind.h > deleted file mode 100644 > index fce179fe7e3a..000000000000 > --- a/BaseTools/Source/C/Include/X64/ProcessorBind.h > +++ /dev/null > @@ -1,183 +0,0 @@ > -/** @file > - Processor or Compiler specific defines and types x64 (Intel(r) EM64T, AMD64). > - > - Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR> > - > - SPDX-License-Identifier: BSD-2-Clause-Patent > - > -**/ > - > -#ifndef __PROCESSOR_BIND_H__ > -#define __PROCESSOR_BIND_H__ > - > -// > -// Define the processor type so other code can make processor based choices > -// > -#define MDE_CPU_X64 > - > - > -// > -// Make sure we are useing the correct packing rules per EFI specification > -// > -#ifndef __GNUC__ > -#pragma pack() > -#endif > - > - > -#if _MSC_EXTENSIONS > - > -// > -// Disable warning that make it impossible to compile at /W4 > -// This only works for Microsoft* tools > -// > - > -// > -// Disabling bitfield type checking warnings. > -// > -#pragma warning ( disable : 4214 ) > - > -// > -// Disabling the unreferenced formal parameter warnings. > -// > -#pragma warning ( disable : 4100 ) > - > -// > -// Disable slightly different base types warning as CHAR8 * can not be set > -// to a constant string. > -// > -#pragma warning ( disable : 4057 ) > - > -// > -// ASSERT(FALSE) or while (TRUE) are legal constructes so supress this warning > -// > -#pragma warning ( disable : 4127 ) > - > - > -#endif > - > - > -#if !defined(__GNUC__) && (__STDC_VERSION__ < 199901L) > - // > - // No ANSI C 2000 stdint.h integer width declarations, so define equivalents > - // > - > - #if _MSC_EXTENSIONS > - > - > - // > - // use Microsoft C compiler dependent integer width types > - // > - typedef unsigned __int64 UINT64; > - typedef __int64 INT64; > - typedef unsigned __int32 UINT32; > - typedef __int32 INT32; > - typedef unsigned short UINT16; > - typedef unsigned short CHAR16; > - typedef short INT16; > - typedef unsigned char BOOLEAN; > - typedef unsigned char UINT8; > - typedef char CHAR8; > - typedef char INT8; > - #else > - #ifdef _EFI_P64 > - // > - // P64 - is Intel Itanium(TM) speak for pointers being 64-bit and longs and ints > - // are 32-bits > - // > - typedef unsigned long long UINT64; > - typedef long long INT64; > - typedef unsigned int UINT32; > - typedef int INT32; > - typedef unsigned short CHAR16; > - typedef unsigned short UINT16; > - typedef short INT16; > - typedef unsigned char BOOLEAN; > - typedef unsigned char UINT8; > - typedef char CHAR8; > - typedef char INT8; > - #else > - // > - // Assume LP64 - longs and pointers are 64-bit. Ints are 32-bit. > - // > - typedef unsigned long UINT64; > - typedef long INT64; > - typedef unsigned int UINT32; > - typedef int INT32; > - typedef unsigned short UINT16; > - typedef unsigned short CHAR16; > - typedef short INT16; > - typedef unsigned char BOOLEAN; > - typedef unsigned char UINT8; > - typedef char CHAR8; > - typedef char INT8; > - #endif > - #endif > - > - #define UINT8_MAX 0xff > - > -#else > - // > - // Use ANSI C 2000 stdint.h integer width declarations > - // > - #include <stdint.h> > - typedef uint8_t BOOLEAN; > - typedef int8_t INT8; > - typedef uint8_t UINT8; > - typedef int16_t INT16; > - typedef uint16_t UINT16; > - typedef int32_t INT32; > - typedef uint32_t UINT32; > - typedef int64_t INT64; > - typedef uint64_t UINT64; > - typedef char CHAR8; > - typedef uint16_t CHAR16; > - > -#endif > - > -typedef UINT64 UINTN; > -typedef INT64 INTN; > - > - > -// > -// Processor specific defines > -// > -#define MAX_BIT 0x8000000000000000ULL > -#define MAX_2_BITS 0xC000000000000000ULL > - > -// > -// Modifier to ensure that all protocol member functions and EFI intrinsics > -// use the correct C calling convention. All protocol member functions and > -// EFI intrinsics are required to modify their member functions with EFIAPI. > -// > -#if _MSC_EXTENSIONS > - /// > - /// Define the standard calling convention regardless of optimization level. > - /// __cdecl is Microsoft* specific C extension. > - /// > - #define EFIAPI __cdecl > -#elif __GNUC__ > - /// > - /// Define the standard calling convention regardless of optimization level. > - /// efidecl is an extension to GCC that supports the differnece between x64 > - /// GCC ABI and x64 Microsoft* ABI. EFI is closer to the Microsoft* ABI and > - /// EFIAPI makes sure the right ABI is used for public interfaces. > - /// eficecl is a work in progress and we do not yet have the compiler > - /// > - #define EFIAPI > -#else > - #define EFIAPI > -#endif > - > -// > -// The Microsoft* C compiler can removed references to unreferenced data items > -// if the /OPT:REF linker option is used. We defined a macro as this is a > -// a non standard extension > -// > -#if _MSC_EXTENSIONS > - #define GLOBAL_REMOVE_IF_UNREFERENCED __declspec(selectany) > -#else > - #define GLOBAL_REMOVE_IF_UNREFERENCED > -#endif > - > -#endif > - > diff --git a/BaseTools/Source/C/Common/Decompress.c b/BaseTools/Source/C/Common/Decompress.c > index d85098f13140..8625ccd03618 100644 > --- a/BaseTools/Source/C/Common/Decompress.c > +++ b/BaseTools/Source/C/Common/Decompress.c > @@ -15,6 +15,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent > // > // Decompression algorithm begins here > // > +#define UINT8_MAX 0xff > #define BITBUFSIZ 32 > #define MAXMATCH 256 > #define THRESHOLD 3 > diff --git a/BaseTools/Source/C/Makefiles/header.makefile b/BaseTools/Source/C/Makefiles/header.makefile > index 4e88a4fbd86b..cecca2c27462 100644 > --- a/BaseTools/Source/C/Makefiles/header.makefile > +++ b/BaseTools/Source/C/Makefiles/header.makefile > @@ -8,6 +8,8 @@ > # Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR> > # SPDX-License-Identifier: BSD-2-Clause-Patent > > +EDK2_PATH ?= $(MAKEROOT)/../../.. > + > ifndef HOST_ARCH > # > # If HOST_ARCH is not defined, then we use 'uname -m' to attempt > @@ -59,22 +61,22 @@ BUILD_LD ?= ld > endif > LINKER ?= $(BUILD_CC) > ifeq ($(HOST_ARCH), IA32) > -ARCH_INCLUDE = -I $(MAKEROOT)/Include/Ia32/ > +ARCH_INCLUDE = -I $(EDK2_PATH)/MdePkg/Include/Ia32/ > > else ifeq ($(HOST_ARCH), X64) > -ARCH_INCLUDE = -I $(MAKEROOT)/Include/X64/ > +ARCH_INCLUDE = -I $(EDK2_PATH)/MdePkg/Include/X64/ > > else ifeq ($(HOST_ARCH), ARM) > -ARCH_INCLUDE = -I $(MAKEROOT)/Include/Arm/ > +ARCH_INCLUDE = -I $(EDK2_PATH)/MdePkg/Include/Arm/ > > else ifeq ($(HOST_ARCH), AARCH64) > -ARCH_INCLUDE = -I $(MAKEROOT)/Include/AArch64/ > +ARCH_INCLUDE = -I $(EDK2_PATH)/MdePkg/Include/AArch64/ > > else ifeq ($(HOST_ARCH), RISCV64) > -ARCH_INCLUDE = -I $(MAKEROOT)/Include/RiscV64/ > +ARCH_INCLUDE = -I $(EDK2_PATH)/MdePkg/Include/RiscV64/ > > else ifeq ($(HOST_ARCH), LOONGARCH64) > -ARCH_INCLUDE = -I $(MAKEROOT)/Include/LoongArch64/ > +ARCH_INCLUDE = -I $(EDK2_PATH)/MdePkg/Include/LoongArch64/ > > else > $(error Bad HOST_ARCH) > diff --git a/BaseTools/Source/C/Makefiles/ms.common b/BaseTools/Source/C/Makefiles/ms.common > index 8391f10d5dd2..985d9498ccb8 100644 > --- a/BaseTools/Source/C/Makefiles/ms.common > +++ b/BaseTools/Source/C/Makefiles/ms.common > @@ -17,6 +17,14 @@ > HOST_ARCH = IA32 > !ENDIF > > +!IFNDEF MAKEROOT > +MAKEROOT = $(SOURCE_PATH) > +!ENDIF > + > +!IFNDEF EDK2_PATH > +EDK2_PATH = $(MAKEROOT)\..\..\.. > +!ENDIF > + > MAKE = nmake -nologo > > # DOS del command doesn't support ":\\" in the file path, such as j:\\BaseTools. Convert ":\\" to ":\" > @@ -31,14 +39,14 @@ SYS_BIN_PATH=$(EDK_TOOLS_PATH)\Bin > SYS_LIB_PATH=$(EDK_TOOLS_PATH)\Lib > > !IF "$(HOST_ARCH)"=="IA32" > -ARCH_INCLUDE = $(SOURCE_PATH)\Include\Ia32 > +ARCH_INCLUDE = $(EDK2_PATH)\MdePkg\Include\Ia32 > BIN_PATH = $(BASE_TOOLS_PATH)\Bin\Win32 > LIB_PATH = $(BASE_TOOLS_PATH)\Lib\Win32 > SYS_BIN_PATH = $(EDK_TOOLS_PATH)\Bin\Win32 > SYS_LIB_PATH = $(EDK_TOOLS_PATH)\Lib\Win32 > > !ELSEIF "$(HOST_ARCH)"=="X64" > -ARCH_INCLUDE = $(SOURCE_PATH)\Include\X64 > +ARCH_INCLUDE = $(EDK2_PATH)\MdePkg\Include\X64 > BIN_PATH = $(BASE_TOOLS_PATH)\Bin\Win64 > LIB_PATH = $(BASE_TOOLS_PATH)\Lib\Win64 > SYS_BIN_PATH = $(EDK_TOOLS_PATH)\Bin\Win64 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#101680): https://edk2.groups.io/g/devel/message/101680 Mute This Topic: https://groups.io/mt/97798528/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
© 2016 - 2026 Red Hat, Inc.