Skip to content

Commit

Permalink
Clarify current compiler requirements
Browse files Browse the repository at this point in the history
Clang+lld now works, looks like MSVC does aswell so update the text

Signed-off-by: Callum Farmer <[email protected]>
  • Loading branch information
gmbr3 committed Sep 18, 2024
1 parent 79eb20b commit 48c7e47
Showing 1 changed file with 11 additions and 26 deletions.
37 changes: 11 additions & 26 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,41 +28,26 @@ environment works.

## Prerequisites:

To develop x86 and x86_64 EFI applications, the following tools are needed:
To develop EFI applications, the following tools are needed:

- gcc-3.0 or newer (gcc 2.7.2 is NOT sufficient!)
As of gnu-efi-3.0b, the Redhat 8.0 toolchain is known to work,
but the Redhat 9.0 toolchain is not currently supported.
- A C11 compiler: gcc, clang (Supported since 4.0) or MSVC (Supported since 4.0)

- A version of "objcopy" that supports EFI applications. To
check if your version includes EFI support, issue the
- A version of "objcopy" that supports EFI applications (if using a GNU based toolchain).
To check if your version includes EFI support, issue the
command: `objcopy --help`

Verify that the line "supported targets" contains the string
"efi-app-ia32" and "efi-app-x86_64" and that the "-j" option
accepts wildcards. The binutils release binutils-2.24
supports Intel64 EFI and accepts wildcard section names.

- For debugging purposes, it's useful to have a version of
"objdump" that supports EFI applications as well. This
allows inspect and disassemble EFI binaries.

To develop IA-64 EFI applications, the following tools are needed:

- A version of gcc newer than July 30th 1999 (older versions
had problems with generating position independent code).
As of gnu-efi-3.0b, gcc-3.1 is known to work well.

- A version of "objcopy" that supports EFI applications. To
check if your version includes EFI support, issue the
command: `objcopy --help`

Verify that the line "supported targets" contains the string
"efi-app-ia64" and that the "-j" option accepts wildcards.
"efi-app-ia32" and "efi-app-x86_64" (for x86 and x64 respectively)
and that the "-j" option accepts wildcards.
The binutils release binutils-2.24 supports Intel64 EFI and
accepts wildcard section names.

- For debugging purposes, it's useful to have a version of
"objdump" that supports EFI applications as well. This
allows inspect and disassemble EFI binaries.
Alternatively, use dumpbin on Windows from Visual Studio
Development Tools, by launching it through Developer Command
Prompt for Visual Studio.


## Directory Structure
Expand Down

0 comments on commit 48c7e47

Please sign in to comment.