diff --git a/main/gnu-efi/APKBUILD b/main/gnu-efi/APKBUILD index a976d3c2b24..219bcf55913 100644 --- a/main/gnu-efi/APKBUILD +++ b/main/gnu-efi/APKBUILD @@ -1,7 +1,7 @@ # Maintainer: Natanael Copa pkgname=gnu-efi -pkgver=3.0.17 -pkgrel=1 +pkgver=3.0.15 +pkgrel=4 pkgdesc="Development Libraries and headers for EFI" url="https://sourceforge.net/projects/gnu-efi/" arch="all !armhf !s390x !ppc64le !mips !mips64" @@ -10,11 +10,9 @@ subpackages="$pkgname-dev" depends_dev="$pkgname" source="https://downloads.sourceforge.net/project/gnu-efi/gnu-efi-$pkgver.tar.bz2 no-werror.patch - avoid-processor-dependent-sizes-in-assembly.patch " build() { - unset LDFLAGS make -j1 } @@ -23,7 +21,6 @@ package() { } sha512sums=" -0893ca234272584f889b1ae1c75341a9ceee60acfd32765daa5d704191ba00450536a287b949304c6d055d1bf125cc29e24fc41df8e5230e0da4f9d944876512 gnu-efi-3.0.17.tar.bz2 -271b12d516f1e5eeb6fc5b0d02879f0c3c4875539f4a9419d10ee88cc27b74b8dd5f5677b78f04062bb29120b3b44727d800efc50d82b3d6626517ce113759e7 no-werror.patch -7e22ef4d1170b44ad1b7c00d5bb2d4e428a90de40e2a24145561ccc9da12968d46012ba6ade7377e9336ce87473f4449a9be9d3f5361589d33126c682c3c9970 avoid-processor-dependent-sizes-in-assembly.patch +64d408b6d115bdc6eebae12fbd6cd907ed5f847f54e506c1e8f8ea5de38a95cf6fac66ab1009bd1d0bd2d54ad45ad598d29bcc303926a5899bf5cc25448cbb2f gnu-efi-3.0.15.tar.bz2 +f384597dc967cc9b1cf738d4002dc75847606c8ab10efbaf9e23844c767f5b9a33518374321b2ae5c5d7e4c9c3abaed996d0690ea81a7906355cabec1426d248 no-werror.patch " diff --git a/main/gnu-efi/avoid-processor-dependent-sizes-in-assembly.patch b/main/gnu-efi/avoid-processor-dependent-sizes-in-assembly.patch deleted file mode 100644 index e48524e52de..00000000000 --- a/main/gnu-efi/avoid-processor-dependent-sizes-in-assembly.patch +++ /dev/null @@ -1,754 +0,0 @@ -From 9e6cb2150bee08e83ec0cdfb8d6c2f83975dd3df Mon Sep 17 00:00:00 2001 -From: Callum Farmer -Date: Sat, 20 May 2023 13:37:04 +0100 -Subject: [PATCH] Avoid processor dependent sizes in assembly - -.word -> .2byte -.short -> .2byte -.long -> .4byte -.quad -> .8byte - -Reference: https://github.com/rhboot/gnu-efi/commit/b83f0845b556506265d25d6a839a23c77b037ae4 -Fixes: https://sourceforge.net/p/gnu-efi/bugs/37/ - -Signed-off-by: Callum Farmer ---- - gnuefi/crt0-efi-aarch64.S | 10 +-- - gnuefi/crt0-efi-arm.S | 128 +++++++++++++++++----------------- - gnuefi/crt0-efi-ia32.S | 10 +-- - gnuefi/crt0-efi-loongarch64.S | 126 ++++++++++++++++----------------- - gnuefi/crt0-efi-mips64el.S | 126 ++++++++++++++++----------------- - gnuefi/crt0-efi-riscv64.S | 120 +++++++++++++++---------------- - gnuefi/crt0-efi-x86_64.S | 10 +-- - 7 files changed, 265 insertions(+), 265 deletions(-) - -diff --git a/gnuefi/crt0-efi-aarch64.S b/gnuefi/crt0-efi-aarch64.S -index 6016698..0652b73 100644 ---- a/gnuefi/crt0-efi-aarch64.S -+++ b/gnuefi/crt0-efi-aarch64.S -@@ -42,15 +42,15 @@ _start: - // hand-craft a dummy .reloc section so EFI knows it's a relocatable executable: - - .data --dummy: .long 0 -+dummy: .4byte 0 - - #define IMAGE_REL_ABSOLUTE 0 - .section .reloc, "a" - label1: -- .long dummy-label1 // Page RVA -- .long 12 // Block Size (2*4+2*2), must be aligned by 32 Bits -- .word (IMAGE_REL_ABSOLUTE<<12) + 0 // reloc for dummy -- .word (IMAGE_REL_ABSOLUTE<<12) + 0 // reloc for dummy -+ .4byte dummy-label1 // Page RVA -+ .4byte 12 // Block Size (2*4+2*2), must be aligned by 32 Bits -+ .2byte (IMAGE_REL_ABSOLUTE<<12) + 0 // reloc for dummy -+ .2byte (IMAGE_REL_ABSOLUTE<<12) + 0 // reloc for dummy - - #if defined(__ELF__) && defined(__linux__) - .section .note.GNU-stack,"",%progbits -diff --git a/gnuefi/crt0-efi-arm.S b/gnuefi/crt0-efi-arm.S -index 716699b..21e92b9 100644 ---- a/gnuefi/crt0-efi-arm.S -+++ b/gnuefi/crt0-efi-arm.S -@@ -25,65 +25,65 @@ - ImageBase: - .ascii "MZ" - .skip 58 // 'MZ' + pad + offset == 64 -- .long pe_header - ImageBase // Offset to the PE header. -+ .4byte pe_header - ImageBase // Offset to the PE header. - pe_header: - .ascii "PE" -- .short 0 -+ .2byte 0 - coff_header: -- .short 0x1c2 // Mixed ARM/Thumb -- .short 2 // nr_sections -- .long 0 // TimeDateStamp -- .long 0 // PointerToSymbolTable -- .long 0 // NumberOfSymbols -- .short section_table - optional_header // SizeOfOptionalHeader -- .short 0x306 // Characteristics. -+ .2byte 0x1c2 // Mixed ARM/Thumb -+ .2byte 2 // nr_sections -+ .4byte 0 // TimeDateStamp -+ .4byte 0 // PointerToSymbolTable -+ .4byte 0 // NumberOfSymbols -+ .2byte section_table - optional_header // SizeOfOptionalHeader -+ .2byte 0x306 // Characteristics. - // IMAGE_FILE_32BIT_MACHINE | - // IMAGE_FILE_DEBUG_STRIPPED | - // IMAGE_FILE_EXECUTABLE_IMAGE | - // IMAGE_FILE_LINE_NUMS_STRIPPED - optional_header: -- .short 0x10b // PE32+ format -+ .2byte 0x10b // PE32+ format - .byte 0x02 // MajorLinkerVersion - .byte 0x14 // MinorLinkerVersion -- .long _edata - _start // SizeOfCode -- .long 0 // SizeOfInitializedData -- .long 0 // SizeOfUninitializedData -- .long _start - ImageBase // AddressOfEntryPoint -- .long _start - ImageBase // BaseOfCode -- .long 0 // BaseOfData -+ .4byte _edata - _start // SizeOfCode -+ .4byte 0 // SizeOfInitializedData -+ .4byte 0 // SizeOfUninitializedData -+ .4byte _start - ImageBase // AddressOfEntryPoint -+ .4byte _start - ImageBase // BaseOfCode -+ .4byte 0 // BaseOfData - - extra_header_fields: -- .long 0 // ImageBase -- .long 0x20 // SectionAlignment -- .long 0x8 // FileAlignment -- .short 0 // MajorOperatingSystemVersion -- .short 0 // MinorOperatingSystemVersion -- .short 0 // MajorImageVersion -- .short 0 // MinorImageVersion -- .short 0 // MajorSubsystemVersion -- .short 0 // MinorSubsystemVersion -- .long 0 // Win32VersionValue -- -- .long _edata - ImageBase // SizeOfImage -+ .4byte 0 // ImageBase -+ .4byte 0x20 // SectionAlignment -+ .4byte 0x8 // FileAlignment -+ .2byte 0 // MajorOperatingSystemVersion -+ .2byte 0 // MinorOperatingSystemVersion -+ .2byte 0 // MajorImageVersion -+ .2byte 0 // MinorImageVersion -+ .2byte 0 // MajorSubsystemVersion -+ .2byte 0 // MinorSubsystemVersion -+ .4byte 0 // Win32VersionValue -+ -+ .4byte _edata - ImageBase // SizeOfImage - - // Everything before the kernel image is considered part of the header -- .long _start - ImageBase // SizeOfHeaders -- .long 0 // CheckSum -- .short EFI_SUBSYSTEM // Subsystem -- .short 0 // DllCharacteristics -- .long 0 // SizeOfStackReserve -- .long 0 // SizeOfStackCommit -- .long 0 // SizeOfHeapReserve -- .long 0 // SizeOfHeapCommit -- .long 0 // LoaderFlags -- .long 0x6 // NumberOfRvaAndSizes -- -- .quad 0 // ExportTable -- .quad 0 // ImportTable -- .quad 0 // ResourceTable -- .quad 0 // ExceptionTable -- .quad 0 // CertificationTable -- .quad 0 // BaseRelocationTable -+ .4byte _start - ImageBase // SizeOfHeaders -+ .4byte 0 // CheckSum -+ .2byte EFI_SUBSYSTEM // Subsystem -+ .2byte 0 // DllCharacteristics -+ .4byte 0 // SizeOfStackReserve -+ .4byte 0 // SizeOfStackCommit -+ .4byte 0 // SizeOfHeapReserve -+ .4byte 0 // SizeOfHeapCommit -+ .4byte 0 // LoaderFlags -+ .4byte 0x6 // NumberOfRvaAndSizes -+ -+ .8byte 0 // ExportTable -+ .8byte 0 // ImportTable -+ .8byte 0 // ResourceTable -+ .8byte 0 // ExceptionTable -+ .8byte 0 // CertificationTable -+ .8byte 0 // BaseRelocationTable - - // Section table - section_table: -@@ -96,31 +96,31 @@ section_table: - .ascii ".reloc" - .byte 0 - .byte 0 // end of 0 padding of section name -- .long 0 -- .long 0 -- .long 0 // SizeOfRawData -- .long 0 // PointerToRawData -- .long 0 // PointerToRelocations -- .long 0 // PointerToLineNumbers -- .short 0 // NumberOfRelocations -- .short 0 // NumberOfLineNumbers -- .long 0x42100040 // Characteristics (section flags) -+ .4byte 0 -+ .4byte 0 -+ .4byte 0 // SizeOfRawData -+ .4byte 0 // PointerToRawData -+ .4byte 0 // PointerToRelocations -+ .4byte 0 // PointerToLineNumbers -+ .2byte 0 // NumberOfRelocations -+ .2byte 0 // NumberOfLineNumbers -+ .4byte 0x42100040 // Characteristics (section flags) - - - .ascii ".text" - .byte 0 - .byte 0 - .byte 0 // end of 0 padding of section name -- .long _edata - _start // VirtualSize -- .long _start - ImageBase // VirtualAddress -- .long _edata - _start // SizeOfRawData -- .long _start - ImageBase // PointerToRawData -+ .4byte _edata - _start // VirtualSize -+ .4byte _start - ImageBase // VirtualAddress -+ .4byte _edata - _start // SizeOfRawData -+ .4byte _start - ImageBase // PointerToRawData - -- .long 0 // PointerToRelocations (0 for executables) -- .long 0 // PointerToLineNumbers (0 for executables) -- .short 0 // NumberOfRelocations (0 for executables) -- .short 0 // NumberOfLineNumbers (0 for executables) -- .long 0xe0500020 // Characteristics (section flags) -+ .4byte 0 // PointerToRelocations (0 for executables) -+ .4byte 0 // PointerToLineNumbers (0 for executables) -+ .2byte 0 // NumberOfRelocations (0 for executables) -+ .2byte 0 // NumberOfLineNumbers (0 for executables) -+ .4byte 0xe0500020 // Characteristics (section flags) - - _start: - stmfd sp!, {r0-r2, lr} -@@ -142,7 +142,7 @@ _start: - ldr pc, [sp], #4 - - .L_DYNAMIC: -- .word _DYNAMIC - . -+ .2byte _DYNAMIC - . - - #if defined(__ELF__) && defined(__linux__) - .section .note.GNU-stack,"",%progbits -diff --git a/gnuefi/crt0-efi-ia32.S b/gnuefi/crt0-efi-ia32.S -index df3340a..4e9439b 100644 ---- a/gnuefi/crt0-efi-ia32.S -+++ b/gnuefi/crt0-efi-ia32.S -@@ -67,14 +67,14 @@ _start: - // hand-craft a dummy .reloc section so EFI knows it's a relocatable executable: - - .data --dummy: .long 0 -+dummy: .4byte 0 - - #define IMAGE_REL_ABSOLUTE 0 - .section .reloc -- .long dummy // Page RVA -- .long 12 // Block Size (2*4+2*2), must be aligned by 32 Bits -- .word (IMAGE_REL_ABSOLUTE<<12) + 0 // reloc for dummy -- .word (IMAGE_REL_ABSOLUTE<<12) + 0 // reloc for dummy -+ .4byte dummy // Page RVA -+ .4byte 12 // Block Size (2*4+2*2), must be aligned by 32 Bits -+ .2byte (IMAGE_REL_ABSOLUTE<<12) + 0 // reloc for dummy -+ .2byte (IMAGE_REL_ABSOLUTE<<12) + 0 // reloc for dummy - - #if defined(__ELF__) && defined(__linux__) - .section .note.GNU-stack,"",%progbits -diff --git a/gnuefi/crt0-efi-loongarch64.S b/gnuefi/crt0-efi-loongarch64.S -index af45d46..4c89e1b 100644 ---- a/gnuefi/crt0-efi-loongarch64.S -+++ b/gnuefi/crt0-efi-loongarch64.S -@@ -29,63 +29,63 @@ - ImageBase: - .ascii "MZ" - .skip 58 // 'MZ' + pad + offset == 64 -- .long pe_header - ImageBase // Offset to the PE header. -+ .4byte pe_header - ImageBase // Offset to the PE header. - pe_header: - .ascii "PE" -- .short 0 -+ .2byte 0 - coff_header: -- .short 0x6264 // loongarch64 little endian -- .short 2 // nr_sections -- .long 0 // TimeDateStamp -- .long 0 // PointerToSymbolTable -- .long 1 // NumberOfSymbols -- .short section_table - optional_header // SizeOfOptionalHeader -- .short 0x206 // Characteristics. -+ .2byte 0x6264 // loongarch64 little endian -+ .2byte 2 // nr_sections -+ .4byte 0 // TimeDateStamp -+ .4byte 0 // PointerToSymbolTable -+ .4byte 1 // NumberOfSymbols -+ .2byte section_table - optional_header // SizeOfOptionalHeader -+ .2byte 0x206 // Characteristics. - // IMAGE_FILE_DEBUG_STRIPPED | - // IMAGE_FILE_EXECUTABLE_IMAGE | - // IMAGE_FILE_LINE_NUMS_STRIPPED - optional_header: -- .short 0x20b // PE32+ format -+ .2byte 0x20b // PE32+ format - .byte 0x02 // MajorLinkerVersion - .byte 0x14 // MinorLinkerVersion -- .long _edata - _start // SizeOfCode -- .long 0 // SizeOfInitializedData -- .long 0 // SizeOfUninitializedData -- .long _start - ImageBase // AddressOfEntryPoint -- .long _start - ImageBase // BaseOfCode -+ .4byte _edata - _start // SizeOfCode -+ .4byte 0 // SizeOfInitializedData -+ .4byte 0 // SizeOfUninitializedData -+ .4byte _start - ImageBase // AddressOfEntryPoint -+ .4byte _start - ImageBase // BaseOfCode - - extra_header_fields: -- .quad 0 // ImageBase -- .long 0x20 // SectionAlignment -- .long 0x8 // FileAlignment -- .short 0 // MajorOperatingSystemVersion -- .short 0 // MinorOperatingSystemVersion -- .short 0 // MajorImageVersion -- .short 0 // MinorImageVersion -- .short 0 // MajorSubsystemVersion -- .short 0 // MinorSubsystemVersion -- .long 0 // Win32VersionValue -- -- .long _edata - ImageBase // SizeOfImage -+ .8byte 0 // ImageBase -+ .4byte 0x20 // SectionAlignment -+ .4byte 0x8 // FileAlignment -+ .2byte 0 // MajorOperatingSystemVersion -+ .2byte 0 // MinorOperatingSystemVersion -+ .2byte 0 // MajorImageVersion -+ .2byte 0 // MinorImageVersion -+ .2byte 0 // MajorSubsystemVersion -+ .2byte 0 // MinorSubsystemVersion -+ .4byte 0 // Win32VersionValue -+ -+ .4byte _edata - ImageBase // SizeOfImage - - // Everything before the kernel image is considered part of the header -- .long _start - ImageBase // SizeOfHeaders -- .long 0 // CheckSum -- .short EFI_SUBSYSTEM // Subsystem -- .short 0 // DllCharacteristics -- .quad 0 // SizeOfStackReserve -- .quad 0 // SizeOfStackCommit -- .quad 0 // SizeOfHeapReserve -- .quad 0 // SizeOfHeapCommit -- .long 0 // LoaderFlags -- .long 0x6 // NumberOfRvaAndSizes -- -- .quad 0 // ExportTable -- .quad 0 // ImportTable -- .quad 0 // ResourceTable -- .quad 0 // ExceptionTable -- .quad 0 // CertificationTable -- .quad 0 // BaseRelocationTable -+ .4byte _start - ImageBase // SizeOfHeaders -+ .4byte 0 // CheckSum -+ .2byte EFI_SUBSYSTEM // Subsystem -+ .2byte 0 // DllCharacteristics -+ .8byte 0 // SizeOfStackReserve -+ .8byte 0 // SizeOfStackCommit -+ .8byte 0 // SizeOfHeapReserve -+ .8byte 0 // SizeOfHeapCommit -+ .4byte 0 // LoaderFlags -+ .4byte 0x6 // NumberOfRvaAndSizes -+ -+ .8byte 0 // ExportTable -+ .8byte 0 // ImportTable -+ .8byte 0 // ResourceTable -+ .8byte 0 // ExceptionTable -+ .8byte 0 // CertificationTable -+ .8byte 0 // BaseRelocationTable - - // Section table - section_table: -@@ -98,31 +98,31 @@ section_table: - .ascii ".reloc" - .byte 0 - .byte 0 // end of 0 padding of section name -- .long 0 -- .long 0 -- .long 0 // SizeOfRawData -- .long 0 // PointerToRawData -- .long 0 // PointerToRelocations -- .long 0 // PointerToLineNumbers -- .short 0 // NumberOfRelocations -- .short 0 // NumberOfLineNumbers -- .long 0x42100040 // Characteristics (section flags) -+ .4byte 0 -+ .4byte 0 -+ .4byte 0 // SizeOfRawData -+ .4byte 0 // PointerToRawData -+ .4byte 0 // PointerToRelocations -+ .4byte 0 // PointerToLineNumbers -+ .2byte 0 // NumberOfRelocations -+ .2byte 0 // NumberOfLineNumbers -+ .4byte 0x42100040 // Characteristics (section flags) - - - .ascii ".text" - .byte 0 - .byte 0 - .byte 0 // end of 0 padding of section name -- .long _edata - _start // VirtualSize -- .long _start - ImageBase // VirtualAddress -- .long _edata - _start // SizeOfRawData -- .long _start - ImageBase // PointerToRawData -- -- .long 0 // PointerToRelocations (0 for executables) -- .long 0 // PointerToLineNumbers (0 for executables) -- .short 0 // NumberOfRelocations (0 for executables) -- .short 0 // NumberOfLineNumbers (0 for executables) -- .long 0xe0500020 // Characteristics (section flags) -+ .4byte _edata - _start // VirtualSize -+ .4byte _start - ImageBase // VirtualAddress -+ .4byte _edata - _start // SizeOfRawData -+ .4byte _start - ImageBase // PointerToRawData -+ -+ .4byte 0 // PointerToRelocations (0 for executables) -+ .4byte 0 // PointerToLineNumbers (0 for executables) -+ .2byte 0 // NumberOfRelocations (0 for executables) -+ .2byte 0 // NumberOfLineNumbers (0 for executables) -+ .4byte 0xe0500020 // Characteristics (section flags) - - .align 4 - -diff --git a/gnuefi/crt0-efi-mips64el.S b/gnuefi/crt0-efi-mips64el.S -index cecabfb..7fe6585 100644 ---- a/gnuefi/crt0-efi-mips64el.S -+++ b/gnuefi/crt0-efi-mips64el.S -@@ -26,63 +26,63 @@ - ImageBase: - .ascii "MZ" - .skip 58 // 'MZ' + pad + offset == 64 -- .long pe_header - ImageBase // Offset to the PE header. -+ .4byte pe_header - ImageBase // Offset to the PE header. - pe_header: - .ascii "PE" -- .short 0 -+ .2byte 0 - coff_header: -- .short 0x166 // MIPS little endian -- .short 2 // nr_sections -- .long 0 // TimeDateStamp -- .long 0 // PointerToSymbolTable -- .long 0 // NumberOfSymbols -- .short section_table - optional_header // SizeOfOptionalHeader -- .short 0x206 // Characteristics. -+ .2byte 0x166 // MIPS little endian -+ .2byte 2 // nr_sections -+ .4byte 0 // TimeDateStamp -+ .4byte 0 // PointerToSymbolTable -+ .4byte 0 // NumberOfSymbols -+ .2byte section_table - optional_header // SizeOfOptionalHeader -+ .2byte 0x206 // Characteristics. - // IMAGE_FILE_DEBUG_STRIPPED | - // IMAGE_FILE_EXECUTABLE_IMAGE | - // IMAGE_FILE_LINE_NUMS_STRIPPED - optional_header: -- .short 0x20b // PE32+ format -+ .2byte 0x20b // PE32+ format - .byte 0x02 // MajorLinkerVersion - .byte 0x14 // MinorLinkerVersion -- .long _edata - _start // SizeOfCode -- .long 0 // SizeOfInitializedData -- .long 0 // SizeOfUninitializedData -- .long _start - ImageBase // AddressOfEntryPoint -- .long _start - ImageBase // BaseOfCode -+ .4byte _edata - _start // SizeOfCode -+ .4byte 0 // SizeOfInitializedData -+ .4byte 0 // SizeOfUninitializedData -+ .4byte _start - ImageBase // AddressOfEntryPoint -+ .4byte _start - ImageBase // BaseOfCode - - extra_header_fields: -- .quad 0 // ImageBase -- .long 0x20 // SectionAlignment -- .long 0x8 // FileAlignment -- .short 0 // MajorOperatingSystemVersion -- .short 0 // MinorOperatingSystemVersion -- .short 0 // MajorImageVersion -- .short 0 // MinorImageVersion -- .short 0 // MajorSubsystemVersion -- .short 0 // MinorSubsystemVersion -- .long 0 // Win32VersionValue -- -- .long _edata - ImageBase // SizeOfImage -+ .8byte 0 // ImageBase -+ .4byte 0x20 // SectionAlignment -+ .4byte 0x8 // FileAlignment -+ .2byte 0 // MajorOperatingSystemVersion -+ .2byte 0 // MinorOperatingSystemVersion -+ .2byte 0 // MajorImageVersion -+ .2byte 0 // MinorImageVersion -+ .2byte 0 // MajorSubsystemVersion -+ .2byte 0 // MinorSubsystemVersion -+ .4byte 0 // Win32VersionValue -+ -+ .4byte _edata - ImageBase // SizeOfImage - - // Everything before the kernel image is considered part of the header -- .long _start - ImageBase // SizeOfHeaders -- .long 0 // CheckSum -- .short EFI_SUBSYSTEM // Subsystem -- .short 0 // DllCharacteristics -- .quad 0 // SizeOfStackReserve -- .quad 0 // SizeOfStackCommit -- .quad 0 // SizeOfHeapReserve -- .quad 0 // SizeOfHeapCommit -- .long 0 // LoaderFlags -- .long 0x6 // NumberOfRvaAndSizes -- -- .quad 0 // ExportTable -- .quad 0 // ImportTable -- .quad 0 // ResourceTable -- .quad 0 // ExceptionTable -- .quad 0 // CertificationTable -- .quad 0 // BaseRelocationTable -+ .4byte _start - ImageBase // SizeOfHeaders -+ .4byte 0 // CheckSum -+ .2byte EFI_SUBSYSTEM // Subsystem -+ .2byte 0 // DllCharacteristics -+ .8byte 0 // SizeOfStackReserve -+ .8byte 0 // SizeOfStackCommit -+ .8byte 0 // SizeOfHeapReserve -+ .8byte 0 // SizeOfHeapCommit -+ .4byte 0 // LoaderFlags -+ .4byte 0x6 // NumberOfRvaAndSizes -+ -+ .8byte 0 // ExportTable -+ .8byte 0 // ImportTable -+ .8byte 0 // ResourceTable -+ .8byte 0 // ExceptionTable -+ .8byte 0 // CertificationTable -+ .8byte 0 // BaseRelocationTable - - // Section table - section_table: -@@ -95,31 +95,31 @@ section_table: - .ascii ".reloc" - .byte 0 - .byte 0 // end of 0 padding of section name -- .long 0 -- .long 0 -- .long 0 // SizeOfRawData -- .long 0 // PointerToRawData -- .long 0 // PointerToRelocations -- .long 0 // PointerToLineNumbers -- .short 0 // NumberOfRelocations -- .short 0 // NumberOfLineNumbers -- .long 0x42100040 // Characteristics (section flags) -+ .4byte 0 -+ .4byte 0 -+ .4byte 0 // SizeOfRawData -+ .4byte 0 // PointerToRawData -+ .4byte 0 // PointerToRelocations -+ .4byte 0 // PointerToLineNumbers -+ .2byte 0 // NumberOfRelocations -+ .2byte 0 // NumberOfLineNumbers -+ .4byte 0x42100040 // Characteristics (section flags) - - - .ascii ".text" - .byte 0 - .byte 0 - .byte 0 // end of 0 padding of section name -- .long _edata - _start // VirtualSize -- .long _start - ImageBase // VirtualAddress -- .long _edata - _start // SizeOfRawData -- .long _start - ImageBase // PointerToRawData -- -- .long 0 // PointerToRelocations (0 for executables) -- .long 0 // PointerToLineNumbers (0 for executables) -- .short 0 // NumberOfRelocations (0 for executables) -- .short 0 // NumberOfLineNumbers (0 for executables) -- .long 0xe0500020 // Characteristics (section flags) -+ .4byte _edata - _start // VirtualSize -+ .4byte _start - ImageBase // VirtualAddress -+ .4byte _edata - _start // SizeOfRawData -+ .4byte _start - ImageBase // PointerToRawData -+ -+ .4byte 0 // PointerToRelocations (0 for executables) -+ .4byte 0 // PointerToLineNumbers (0 for executables) -+ .2byte 0 // NumberOfRelocations (0 for executables) -+ .2byte 0 // NumberOfLineNumbers (0 for executables) -+ .4byte 0xe0500020 // Characteristics (section flags) - - .set push - .set noreorder -diff --git a/gnuefi/crt0-efi-riscv64.S b/gnuefi/crt0-efi-riscv64.S -index 2322b56..8b62574 100644 ---- a/gnuefi/crt0-efi-riscv64.S -+++ b/gnuefi/crt0-efi-riscv64.S -@@ -29,63 +29,63 @@ - ImageBase: - .ascii "MZ" - .skip 58 // 'MZ' + pad + offset == 64 -- .long pe_header - ImageBase // Offset to the PE header. -+ .4byte pe_header - ImageBase // Offset to the PE header. - pe_header: - .ascii "PE" -- .short 0 -+ .2byte 0 - coff_header: -- .short 0x5064 // riscv64 -- .short 2 // nr_sections -- .long 0 // TimeDateStamp -- .long 0 // PointerToSymbolTable -- .long 0 // NumberOfSymbols -- .short section_table - optional_header // SizeOfOptionalHeader -- .short 0x206 // Characteristics. -+ .2byte 0x5064 // riscv64 -+ .2byte 2 // nr_sections -+ .4byte 0 // TimeDateStamp -+ .4byte 0 // PointerToSymbolTable -+ .4byte 0 // NumberOfSymbols -+ .2byte section_table - optional_header // SizeOfOptionalHeader -+ .2byte 0x206 // Characteristics. - // IMAGE_FILE_DEBUG_STRIPPED | - // IMAGE_FILE_EXECUTABLE_IMAGE | - // IMAGE_FILE_LINE_NUMS_STRIPPED - optional_header: -- .short 0x20b // PE32+ format -+ .2byte 0x20b // PE32+ format - .byte 0x02 // MajorLinkerVersion - .byte 0x14 // MinorLinkerVersion -- .long _data - _start // SizeOfCode -- .long _data_size // SizeOfInitializedData -- .long 0 // SizeOfUninitializedData -- .long _start - ImageBase // AddressOfEntryPoint -- .long _start - ImageBase // BaseOfCode -+ .4byte _data - _start // SizeOfCode -+ .4byte _data_size // SizeOfInitializedData -+ .4byte 0 // SizeOfUninitializedData -+ .4byte _start - ImageBase // AddressOfEntryPoint -+ .4byte _start - ImageBase // BaseOfCode - - extra_header_fields: -- .quad 0 // ImageBase -- .long 0x1000 // SectionAlignment -- .long 0x200 // FileAlignment -- .short 0 // MajorOperatingSystemVersion -- .short 0 // MinorOperatingSystemVersion -- .short 0 // MajorImageVersion -- .short 0 // MinorImageVersion -- .short 0 // MajorSubsystemVersion -- .short 0 // MinorSubsystemVersion -- .long 0 // Win32VersionValue -+ .8byte 0 // ImageBase -+ .4byte 0x1000 // SectionAlignment -+ .4byte 0x200 // FileAlignment -+ .2byte 0 // MajorOperatingSystemVersion -+ .2byte 0 // MinorOperatingSystemVersion -+ .2byte 0 // MajorImageVersion -+ .2byte 0 // MinorImageVersion -+ .2byte 0 // MajorSubsystemVersion -+ .2byte 0 // MinorSubsystemVersion -+ .4byte 0 // Win32VersionValue - -- .long _edata - ImageBase // SizeOfImage -+ .4byte _edata - ImageBase // SizeOfImage - - // Everything before the kernel image is considered part of the header -- .long _start - ImageBase // SizeOfHeaders -- .long 0 // CheckSum -- .short EFI_SUBSYSTEM // Subsystem -- .short 0 // DllCharacteristics -- .quad 0 // SizeOfStackReserve -- .quad 0 // SizeOfStackCommit -- .quad 0 // SizeOfHeapReserve -- .quad 0 // SizeOfHeapCommit -- .long 0 // LoaderFlags -- .long 0x6 // NumberOfRvaAndSizes -+ .4byte _start - ImageBase // SizeOfHeaders -+ .4byte 0 // CheckSum -+ .2byte EFI_SUBSYSTEM // Subsystem -+ .2byte 0 // DllCharacteristics -+ .8byte 0 // SizeOfStackReserve -+ .8byte 0 // SizeOfStackCommit -+ .8byte 0 // SizeOfHeapReserve -+ .8byte 0 // SizeOfHeapCommit -+ .4byte 0 // LoaderFlags -+ .4byte 0x6 // NumberOfRvaAndSizes - -- .quad 0 // ExportTable -- .quad 0 // ImportTable -- .quad 0 // ResourceTable -- .quad 0 // ExceptionTable -- .quad 0 // CertificationTable -- .quad 0 // BaseRelocationTable -+ .8byte 0 // ExportTable -+ .8byte 0 // ImportTable -+ .8byte 0 // ResourceTable -+ .8byte 0 // ExceptionTable -+ .8byte 0 // CertificationTable -+ .8byte 0 // BaseRelocationTable - - // Section table - section_table: -@@ -95,27 +95,27 @@ section_table: - * dummy section as far as we are concerned. - */ - .ascii ".reloc\0\0" -- .long 0 -- .long 0 -- .long 0 // SizeOfRawData -- .long 0 // PointerToRawData -- .long 0 // PointerToRelocations -- .long 0 // PointerToLineNumbers -- .short 0 // NumberOfRelocations -- .short 0 // NumberOfLineNumbers -- .long 0x42100040 // Characteristics (section flags) -+ .4byte 0 -+ .4byte 0 -+ .4byte 0 // SizeOfRawData -+ .4byte 0 // PointerToRawData -+ .4byte 0 // PointerToRelocations -+ .4byte 0 // PointerToLineNumbers -+ .2byte 0 // NumberOfRelocations -+ .2byte 0 // NumberOfLineNumbers -+ .4byte 0x42100040 // Characteristics (section flags) - - .ascii ".text\0\0\0" -- .long _edata - _start // VirtualSize -- .long _start - ImageBase // VirtualAddress -- .long _edata - _start // SizeOfRawData -- .long _start - ImageBase // PointerToRawData -+ .4byte _edata - _start // VirtualSize -+ .4byte _start - ImageBase // VirtualAddress -+ .4byte _edata - _start // SizeOfRawData -+ .4byte _start - ImageBase // PointerToRawData - -- .long 0 // PointerToRelocations (0 for executables) -- .long 0 // PointerToLineNumbers (0 for executables) -- .short 0 // NumberOfRelocations (0 for executables) -- .short 0 // NumberOfLineNumbers (0 for executables) -- .long 0xe0500020 // Characteristics (section flags) -+ .4byte 0 // PointerToRelocations (0 for executables) -+ .4byte 0 // PointerToLineNumbers (0 for executables) -+ .2byte 0 // NumberOfRelocations (0 for executables) -+ .2byte 0 // NumberOfLineNumbers (0 for executables) -+ .4byte 0xe0500020 // Characteristics (section flags) - - .align 12 - .globl _start -diff --git a/gnuefi/crt0-efi-x86_64.S b/gnuefi/crt0-efi-x86_64.S -index 5179439..71c0048 100644 ---- a/gnuefi/crt0-efi-x86_64.S -+++ b/gnuefi/crt0-efi-x86_64.S -@@ -65,15 +65,15 @@ _start: - // hand-craft a dummy .reloc section so EFI knows it's a relocatable executable: - - .data --dummy: .long 0 -+dummy: .4byte 0 - - #define IMAGE_REL_ABSOLUTE 0 - .section .reloc, "a" - label1: -- .long dummy-label1 // Page RVA -- .long 12 // Block Size (2*4+2*2), must be aligned by 32 Bits -- .word (IMAGE_REL_ABSOLUTE<<12) + 0 // reloc for dummy -- .word (IMAGE_REL_ABSOLUTE<<12) + 0 // reloc for dummy -+ .4byte dummy-label1 // Page RVA -+ .4byte 12 // Block Size (2*4+2*2), must be aligned by 32 Bits -+ .2byte (IMAGE_REL_ABSOLUTE<<12) + 0 // reloc for dummy -+ .2byte (IMAGE_REL_ABSOLUTE<<12) + 0 // reloc for dummy - - #if defined(__ELF__) && defined(__linux__) - .section .note.GNU-stack,"",%progbits diff --git a/main/gnu-efi/no-werror.patch b/main/gnu-efi/no-werror.patch index 7e7864bf733..fa559e315a6 100644 --- a/main/gnu-efi/no-werror.patch +++ b/main/gnu-efi/no-werror.patch @@ -1,27 +1,13 @@ diff --git a/Make.defaults b/Make.defaults -index 1277d14..731af6b 100755 +index ba743f1..5fd1b66 100755 --- a/Make.defaults +++ b/Make.defaults -@@ -138,7 +138,7 @@ endif - - ifneq (,$(filter $(ARCH),ia32 x86_64)) - # Disable AVX, if the compiler supports that. -- CC_CAN_DISABLE_AVX=$(shell $(CC) -Werror -c -o /dev/null -xc -mno-avx - /dev/null 2>&1 && echo 1) -+ CC_CAN_DISABLE_AVX=$(shell $(CC) -c -o /dev/null -xc -mno-avx - /dev/null 2>&1 && echo 1) - ifeq ($(CC_CAN_DISABLE_AVX), 1) - CFLAGS += -mno-avx - endif -@@ -183,11 +183,11 @@ ifneq (mingw32,$(findstring mingw32, $(GCCMACHINE))) - endif - - ifeq (FreeBSD, $(findstring FreeBSD, $(OS))) --CFLAGS += $(ARCH3264) -g -O2 -Wall -Wextra -Werror \ -+CFLAGS += $(ARCH3264) -g -O2 -Wall -Wextra \ - -funsigned-char -fshort-wchar -fno-strict-aliasing \ +@@ -170,7 +170,7 @@ CFLAGS += $(ARCH3264) -g -O2 -Wall -Wextra -Werror \ + -fshort-wchar -fno-strict-aliasing \ -ffreestanding -fno-stack-protector else --CFLAGS += $(ARCH3264) -g -O2 -Wall -Wextra -Wno-pointer-sign -Werror \ -+CFLAGS += $(ARCH3264) -g -O2 -Wall -Wextra -Wno-pointer-sign \ - -funsigned-char -fshort-wchar -fno-strict-aliasing \ +-CFLAGS += $(ARCH3264) -g -O2 -Wall -Wextra -Werror \ ++CFLAGS += $(ARCH3264) -g -O2 -Wall -Wextra \ + -fshort-wchar -fno-strict-aliasing \ -ffreestanding -fno-stack-protector -fno-stack-check \ -fno-stack-check \