diff --git a/gnu-efi-3.0d-pragma.patch b/gnu-efi-3.0d-pragma.patch index 5192c02..81edca3 100644 --- a/gnu-efi-3.0d-pragma.patch +++ b/gnu-efi-3.0d-pragma.patch @@ -1,42 +1,65 @@ -diff -up gnu-efi-3.0d/lib/runtime/rtdata.c.pragma gnu-efi-3.0d/lib/runtime/rtdata.c ---- gnu-efi-3.0d/lib/runtime/rtdata.c.pragma 2007-05-09 14:37:27.000000000 -0400 -+++ gnu-efi-3.0d/lib/runtime/rtdata.c 2007-12-19 15:00:21.000000000 -0500 -@@ -26,7 +26,9 @@ Revision History - // right data section if it is explicitly initialized.. +diff -up gnu-efi-3.0d/lib/ia32/math.c.pragma gnu-efi-3.0d/lib/ia32/math.c +--- gnu-efi-3.0d/lib/ia32/math.c.pragma 2008-03-10 14:43:48.000000000 -0400 ++++ gnu-efi-3.0d/lib/ia32/math.c 2008-03-10 14:43:32.000000000 -0400 +@@ -23,11 +23,13 @@ Revision History // + #ifdef RUNTIME_CODE +#ifndef __GNUC__ - #pragma BEGIN_RUNTIME_DATA() + #pragma RUNTIME_CODE(LShiftU64) + #pragma RUNTIME_CODE(RShiftU64) + #pragma RUNTIME_CODE(MultU64x32) + #pragma RUNTIME_CODE(DivU64x32) + #endif +#endif // - // RT - pointer to the runtime table -diff -up gnu-efi-3.0d/lib/runtime/vm.c.pragma gnu-efi-3.0d/lib/runtime/vm.c ---- gnu-efi-3.0d/lib/runtime/vm.c.pragma 2007-05-09 14:37:27.000000000 -0400 -+++ gnu-efi-3.0d/lib/runtime/vm.c 2007-12-19 15:00:21.000000000 -0500 -@@ -24,7 +24,9 @@ Revision History + // +diff -up gnu-efi-3.0d/lib/print.c.pragma gnu-efi-3.0d/lib/print.c +--- gnu-efi-3.0d/lib/print.c.pragma 2007-05-11 13:03:05.000000000 -0400 ++++ gnu-efi-3.0d/lib/print.c 2008-03-10 14:42:54.000000000 -0400 +@@ -23,6 +23,7 @@ Revision History + // + + #ifdef RUNTIME_CODE ++#ifndef __GNUC__ + #pragma RUNTIME_CODE(DbgPrint) + + // For debugging.. +@@ -39,6 +40,7 @@ Revision History + #pragma RUNTIME_CODE(TimeToString) + */ + ++#endif /* !defined(__GNUC__) */ + #endif + + // +diff -up gnu-efi-3.0d/lib/runtime/rtlock.c.pragma gnu-efi-3.0d/lib/runtime/rtlock.c +--- gnu-efi-3.0d/lib/runtime/rtlock.c.pragma 2007-05-11 13:03:05.000000000 -0400 ++++ gnu-efi-3.0d/lib/runtime/rtlock.c 2008-03-10 14:42:54.000000000 -0400 +@@ -21,7 +21,9 @@ Revision History + - #include "lib.h" +#ifndef __GNUC__ - #pragma RUNTIME_CODE(RtLibEnableVirtualMappings) + #pragma RUNTIME_CODE(RtAcquireLock) +#endif VOID - RUNTIMEFUNCTION - RtLibEnableVirtualMappings ( -@@ -64,7 +66,9 @@ RtLibEnableVirtualMappings ( + RtAcquireLock ( + IN FLOCK *Lock +@@ -58,7 +60,9 @@ Returns: } +#ifndef __GNUC__ - #pragma RUNTIME_CODE(RtConvertList) + #pragma RUNTIME_CODE(RtAcquireLock) +#endif VOID - RUNTIMEFUNCTION - RtConvertList ( + RtReleaseLock ( + IN FLOCK *Lock diff -up gnu-efi-3.0d/lib/runtime/efirtlib.c.pragma gnu-efi-3.0d/lib/runtime/efirtlib.c --- gnu-efi-3.0d/lib/runtime/efirtlib.c.pragma 2007-05-09 14:37:27.000000000 -0400 -+++ gnu-efi-3.0d/lib/runtime/efirtlib.c 2007-12-19 15:00:21.000000000 -0500 ++++ gnu-efi-3.0d/lib/runtime/efirtlib.c 2008-03-10 14:42:54.000000000 -0400 @@ -20,7 +20,9 @@ Revision History #include "efilib.h" #include "efirtlib.h" @@ -87,32 +110,9 @@ diff -up gnu-efi-3.0d/lib/runtime/efirtlib.c.pragma gnu-efi-3.0d/lib/runtime/efi INTN RUNTIMEFUNCTION RtCompareGuid ( -diff -up gnu-efi-3.0d/lib/runtime/rtlock.c.pragma gnu-efi-3.0d/lib/runtime/rtlock.c ---- gnu-efi-3.0d/lib/runtime/rtlock.c.pragma 2007-05-11 13:03:05.000000000 -0400 -+++ gnu-efi-3.0d/lib/runtime/rtlock.c 2007-12-19 15:00:21.000000000 -0500 -@@ -21,7 +21,9 @@ Revision History - - - -+#ifndef __GNUC__ - #pragma RUNTIME_CODE(RtAcquireLock) -+#endif - VOID - RtAcquireLock ( - IN FLOCK *Lock -@@ -58,7 +60,9 @@ Returns: - } - - -+#ifndef __GNUC__ - #pragma RUNTIME_CODE(RtAcquireLock) -+#endif - VOID - RtReleaseLock ( - IN FLOCK *Lock diff -up gnu-efi-3.0d/lib/runtime/rtstr.c.pragma gnu-efi-3.0d/lib/runtime/rtstr.c --- gnu-efi-3.0d/lib/runtime/rtstr.c.pragma 2007-05-09 14:37:27.000000000 -0400 -+++ gnu-efi-3.0d/lib/runtime/rtstr.c 2007-12-19 15:00:21.000000000 -0500 ++++ gnu-efi-3.0d/lib/runtime/rtstr.c 2008-03-10 14:42:54.000000000 -0400 @@ -17,7 +17,9 @@ Revision History #include "lib.h" @@ -183,9 +183,45 @@ diff -up gnu-efi-3.0d/lib/runtime/rtstr.c.pragma gnu-efi-3.0d/lib/runtime/rtstr. UINT8 RUNTIMEFUNCTION RtDecimaltoBCD ( +diff -up gnu-efi-3.0d/lib/runtime/vm.c.pragma gnu-efi-3.0d/lib/runtime/vm.c +--- gnu-efi-3.0d/lib/runtime/vm.c.pragma 2007-05-09 14:37:27.000000000 -0400 ++++ gnu-efi-3.0d/lib/runtime/vm.c 2008-03-10 14:42:54.000000000 -0400 +@@ -24,7 +24,9 @@ Revision History + + #include "lib.h" + ++#ifndef __GNUC__ + #pragma RUNTIME_CODE(RtLibEnableVirtualMappings) ++#endif + VOID + RUNTIMEFUNCTION + RtLibEnableVirtualMappings ( +@@ -64,7 +66,9 @@ RtLibEnableVirtualMappings ( + } + + ++#ifndef __GNUC__ + #pragma RUNTIME_CODE(RtConvertList) ++#endif + VOID + RUNTIMEFUNCTION + RtConvertList ( +diff -up gnu-efi-3.0d/lib/runtime/rtdata.c.pragma gnu-efi-3.0d/lib/runtime/rtdata.c +--- gnu-efi-3.0d/lib/runtime/rtdata.c.pragma 2007-05-09 14:37:27.000000000 -0400 ++++ gnu-efi-3.0d/lib/runtime/rtdata.c 2008-03-10 14:42:54.000000000 -0400 +@@ -26,7 +26,9 @@ Revision History + // right data section if it is explicitly initialized.. + // + ++#ifndef __GNUC__ + #pragma BEGIN_RUNTIME_DATA() ++#endif + + // + // RT - pointer to the runtime table diff -up gnu-efi-3.0d/lib/x86_64/math.c.pragma gnu-efi-3.0d/lib/x86_64/math.c ---- gnu-efi-3.0d/lib/x86_64/math.c.pragma 2007-12-19 15:00:46.000000000 -0500 -+++ gnu-efi-3.0d/lib/x86_64/math.c 2007-12-19 15:01:07.000000000 -0500 +--- gnu-efi-3.0d/lib/x86_64/math.c.pragma 2007-05-11 13:03:05.000000000 -0400 ++++ gnu-efi-3.0d/lib/x86_64/math.c 2008-03-10 14:43:31.000000000 -0400 @@ -23,11 +23,13 @@ Revision History // @@ -200,23 +236,3 @@ diff -up gnu-efi-3.0d/lib/x86_64/math.c.pragma gnu-efi-3.0d/lib/x86_64/math.c // // -diff -up gnu-efi-3.0d/lib/x86_64/callwrap.c.pragma gnu-efi-3.0d/lib/x86_64/callwrap.c -diff -up gnu-efi-3.0d/lib/print.c.pragma gnu-efi-3.0d/lib/print.c ---- gnu-efi-3.0d/lib/print.c.pragma 2007-05-11 13:03:05.000000000 -0400 -+++ gnu-efi-3.0d/lib/print.c 2007-12-19 15:00:21.000000000 -0500 -@@ -23,6 +23,7 @@ Revision History - // - - #ifdef RUNTIME_CODE -+#ifndef __GNUC__ - #pragma RUNTIME_CODE(DbgPrint) - - // For debugging.. -@@ -39,6 +40,7 @@ Revision History - #pragma RUNTIME_CODE(TimeToString) - */ - -+#endif /* !defined(__GNUC__) */ - #endif - - // diff --git a/gnu-efi-3.0d-uefi_wrap_call10.patch b/gnu-efi-3.0d-uefi_wrap_call10.patch new file mode 100644 index 0000000..413cd57 --- /dev/null +++ b/gnu-efi-3.0d-uefi_wrap_call10.patch @@ -0,0 +1,12 @@ +diff -up gnu-efi-3.0d/lib/x86_64/callwrap.c.call10 gnu-efi-3.0d/lib/x86_64/callwrap.c +--- gnu-efi-3.0d/lib/x86_64/callwrap.c.call10 2008-03-27 13:37:37.000000000 -0400 ++++ gnu-efi-3.0d/lib/x86_64/callwrap.c 2008-03-27 13:38:08.000000000 -0400 +@@ -307,6 +307,7 @@ static UINT64 LIN2WIN10( + "movq %[rarg7], " lin2win_win_arg(7,10) "\n\t" + "movq %[rarg8], " lin2win_win_arg(8,10) "\n\t" + "movq %[rarg9], " lin2win_win_arg(9,10) "\n\t" ++ "movq %[rarg10], " lin2win_win_arg(10,10) "\n\t" + alloc_win_stack_frame(10) + "call *%[fptr]\n\t" + free_win_stack_frame(10) +diff -up gnu-efi-3.0d/inc/x86_64/efibind.h.call10 gnu-efi-3.0d/inc/x86_64/efibind.h diff --git a/gnu-efi-3.0d-unwrap.patch b/gnu-efi-3.0d-unwrap.patch new file mode 100644 index 0000000..e5730e4 --- /dev/null +++ b/gnu-efi-3.0d-unwrap.patch @@ -0,0 +1,289 @@ +diff -up gnu-efi-3.0d/inc/ia32/pe.h.unwrap gnu-efi-3.0d/inc/ia32/pe.h +--- gnu-efi-3.0d/inc/ia32/pe.h.unwrap 2008-03-10 14:38:18.000000000 -0400 ++++ gnu-efi-3.0d/inc/ia32/pe.h 2008-03-10 14:39:21.000000000 -0400 +@@ -588,4 +588,6 @@ typedef struct _IMAGE_IMPORT_DESCRIPTOR + PIMAGE_THUNK_DATA FirstThunk; + } IMAGE_IMPORT_DESCRIPTOR, *PIMAGE_IMPORT_DESCRIPTOR; + ++#define EFI_CALL(sym, argc) sym ++ + #endif +diff -up gnu-efi-3.0d/inc/ia32/efibind.h.unwrap gnu-efi-3.0d/inc/ia32/efibind.h +--- gnu-efi-3.0d/inc/ia32/efibind.h.unwrap 2008-03-10 14:34:58.000000000 -0400 ++++ gnu-efi-3.0d/inc/ia32/efibind.h 2008-03-10 14:35:49.000000000 -0400 +@@ -234,7 +234,22 @@ typedef uint32_t UINTN; + // one big module. + // + +- #define EFI_DRIVER_ENTRY_POINT(InitFunction) ++ #define EFI_DRIVER_ENTRY_POINT(InitFunction) \ ++ UINTN \ ++ InitializeDriver ( \ ++ VOID *ImageHandle, \ ++ VOID *SystemTable \ ++ ) \ ++ { \ ++ return InitFunction(ImageHandle, \ ++ SystemTable); \ ++ } \ ++ \ ++ EFI_STATUS efi_main( \ ++ EFI_HANDLE image, \ ++ EFI_SYSTEM_TABLE *systab \ ++ ) __attribute__((weak, \ ++ alias ("InitializeDriver"))); + + #define LOAD_INTERNAL_DRIVER(_if, type, name, entry) \ + (_if)->LoadInternal(type, name, entry) +diff -up gnu-efi-3.0d/inc/x86_64/pe.h.unwrap gnu-efi-3.0d/inc/x86_64/pe.h +--- gnu-efi-3.0d/inc/x86_64/pe.h.unwrap 2008-03-10 14:37:23.000000000 -0400 ++++ gnu-efi-3.0d/inc/x86_64/pe.h 2008-03-10 14:38:08.000000000 -0400 +@@ -588,4 +588,184 @@ typedef struct _IMAGE_IMPORT_DESCRIPTOR + PIMAGE_THUNK_DATA FirstThunk; + } IMAGE_IMPORT_DESCRIPTOR, *PIMAGE_IMPORT_DESCRIPTOR; + ++#define alloc_lin_stack_frame(argc) \ ++ "subq ($" #argc "-6)*8, %rsp\n\t" ++#define free_lin_stack_frame(argc) \ ++ "addq ($" #argc "-6)*8, %rsp\n\t" ++ ++#define efi2lin_prolog \ ++ "push %rsi\n\t" \ ++ "push %rdi\n\t" ++ ++#define efi2lin_epilog \ ++ "pop %rdi\n\t" \ ++ "pop %rsi\n\t" ++ ++#define call_lin_func \ ++ "xor %rax, %rax\n\t" \ ++ "call *%r10\n\t" ++ ++#define efi2lin_efi_arg(n) "(" #n "+2)*8(%rsp)" ++ ++#define efi2lin_arg1 "mov %rcx, %rdi\n\t" ++#define efi2lin_arg2 "mov %rdx, %rsi\n\t" ++#define efi2lin_arg3 "mov %r8, %rdx\n\t" ++#define efi2lin_arg4 "mov %r9, %rcx\n\t" ++#define efi2lin_arg5 "mov " efi2lin_efi_arg(5) ", %r8\n\t" ++#define efi2lin_arg6 "mov " efi2lin_efi_arg(6) ", %r9\n\t" ++ ++#define efi2lin0 \ ++ efi2lin_prolog \ ++ call_lin_func \ ++ efi2lin_epilog \ ++ "ret\n\t" ++ ++#define efi2lin1 \ ++ efi2lin_prolog \ ++ efi2lin_arg1 \ ++ call_lin_func \ ++ efi2lin_epilog \ ++ "ret\n\t" ++ ++#define efi2lin2 \ ++ efi2lin_prolog \ ++ efi2lin_arg1 \ ++ efi2lin_arg2 \ ++ call_lin_func \ ++ efi2lin_epilog \ ++ "ret\n\t" ++ ++#define efi2lin3 \ ++ efi2lin_prolog \ ++ efi2lin_arg1 \ ++ efi2lin_arg2 \ ++ efi2lin_arg3 \ ++ call_lin_func \ ++ efi2lin_epilog \ ++ "ret\n\t" ++ ++#define efi2lin4 \ ++ efi2lin_prolog \ ++ efi2lin_arg1 \ ++ efi2lin_arg2 \ ++ efi2lin_arg3 \ ++ efi2lin_arg4 \ ++ call_lin_func \ ++ efi2lin_epilog \ ++ "ret\n\t" ++ ++#define efi2lin5 \ ++ efi2lin_prolog \ ++ efi2lin_arg1 \ ++ efi2lin_arg2 \ ++ efi2lin_arg3 \ ++ efi2lin_arg4 \ ++ efi2lin_arg5 \ ++ call_lin_func \ ++ efi2lin_epilog \ ++ "ret\n\t" ++ ++#define efi2lin6 \ ++ efi2lin_prolog \ ++ efi2lin_arg1 \ ++ efi2lin_arg2 \ ++ efi2lin_arg3 \ ++ efi2lin_arg4 \ ++ efi2lin_arg5 \ ++ efi2lin_arg6 \ ++ call_lin_func \ ++ efi2lin_epilog \ ++ "ret\n\t" ++ ++#define call_lin_func_args(n) \ ++ "subq $(" #n "-6) *8, %rsp\n\t" \ ++ call_lin_func \ ++ "addq $(" #n "-6) *8, %rsp\n\t" ++ ++#define efi2lin_lin_arg(m, n) "(" #m "-1-" #n ")*8(%rsp)" ++ ++#define efi2lin7 \ ++ efi2lin_prolog \ ++ \ ++ efi2lin_arg1 \ ++ efi2lin_arg2 \ ++ efi2lin_arg3 \ ++ efi2lin_arg4 \ ++ efi2lin_arg5 \ ++ efi2lin_arg6 \ ++ \ ++ "# copy efidows argument 7 onto stack for Linux function" \ ++ "mov " efi2lin_efi_arg(7) ", %r11 \n\t" \ ++ "mov %r11, " efi2lin_lin_arg(7,7) "\n\t" \ ++ \ ++ call_lin_func_args(7) \ ++ efi2lin_epilog \ ++ "ret\n\t" ++ ++#define efi2lin8 \ ++ efi2lin_prolog \ ++ \ ++ efi2lin_arg1 \ ++ efi2lin_arg2 \ ++ efi2lin_arg3 \ ++ efi2lin_arg4 \ ++ efi2lin_arg5 \ ++ efi2lin_arg6 \ ++ \ ++ "# copy efidows arguments 7 and 8 onto stack for Linux function" \ ++ "mov " efi2lin_efi_arg(7) ", %r11\n\t" \ ++ "mov %r11, " efi2lin_lin_arg(7,8) "\n\t" \ ++ "mov " efi2lin_efi_arg(8) ", %r11\n\t" \ ++ "mov %r11, " efi2lin_lin_arg(8,8) "\n\t" \ ++ \ ++ call_lin_func_args(8) \ ++ efi2lin_epilog \ ++ "ret\n\t" ++ ++#define efi2lin9to12 \ ++ efi2lin_prolog \ ++ \ ++ "# since we destroy rsi and rdi here, first copy efidows\n\t" \ ++ "# arguments 7 through 12 onto stack for Linux function\n\t" \ ++ "mov %rcx, %r11 # save rcx\n\t" \ ++ "lea " efi2lin_efi_arg(7) ", %rsi # source (efidows arg 7 and up)\n\t" \ ++ "lea " efi2lin_lin_arg(7,12) ", %rdi # = destination\n\t" \ ++ "mov $6, %rcx # 6 arguments\n\t" \ ++ "rep\n\t" \ ++ "movsq\n\t" \ ++ "mov %r11, %rcx # restore rcx\n\t" \ ++ \ ++ efi2lin_arg1 \ ++ efi2lin_arg2 \ ++ efi2lin_arg3 \ ++ efi2lin_arg4 \ ++ efi2lin_arg5 \ ++ efi2lin_arg6 \ ++ \ ++ call_lin_func_args(12) \ ++ efi2lin_epilog \ ++ "ret\n\t" ++ ++#define efi2lin9 efi2lin9to12 ++#define efi2lin10 efi2lin9to12 ++#define efi2lin11 efi2lin9to12 ++#define efi2lin12 efi2lin9to12 ++ ++#define EFI_TOKEN_PASTE(a,b) a ## b ++#define EFI_TOKEN_STRING(a) #a ++#define EFI_CALL_NAME(sym) _efi_wrap_ ## sym ++#define EFI_CALL(sym, argc) \ ++ extern EFI_CALL_NAME(sym)(); \ ++ \ ++ __asm__ ("\n" \ ++ ".globl " #sym "\n\t" \ ++ ".type\t" #sym ", @function\n" \ ++ #sym ":\n\t" \ ++ "lea\t_efi_wrap_" #sym "@PLT, %r10\n\t" \ ++ EFI_TOKEN_PASTE(efi2lin, argc) \ ++ ".size\t" #sym ", .-" #sym "\n\t" \ ++ ); \ ++ \ ++ EFI_STATUS EFI_CALL_NAME(sym) ++ + #endif +diff -up gnu-efi-3.0d/inc/x86_64/efibind.h.unwrap gnu-efi-3.0d/inc/x86_64/efibind.h +--- gnu-efi-3.0d/inc/x86_64/efibind.h.unwrap 2008-03-10 14:30:40.000000000 -0400 ++++ gnu-efi-3.0d/inc/x86_64/efibind.h 2008-03-10 14:35:51.000000000 -0400 +@@ -234,7 +234,22 @@ typedef uint64_t UINTN; + // one big module. + // + +- #define EFI_DRIVER_ENTRY_POINT(InitFunction) ++ #define EFI_DRIVER_ENTRY_POINT(InitFunction) \ ++ UINTN \ ++ InitializeDriver ( \ ++ VOID *ImageHandle, \ ++ VOID *SystemTable \ ++ ) \ ++ { \ ++ return InitFunction(ImageHandle, \ ++ SystemTable); \ ++ } \ ++ \ ++ EFI_STATUS efi_main( \ ++ EFI_HANDLE image, \ ++ EFI_SYSTEM_TABLE *systab \ ++ ) __attribute__((weak, \ ++ alias ("InitializeDriver"))); + + #define LOAD_INTERNAL_DRIVER(_if, type, name, entry) \ + (_if)->LoadInternal(type, name, entry) +diff -up gnu-efi-3.0d/inc/ia64/pe.h.unwrap gnu-efi-3.0d/inc/ia64/pe.h +--- gnu-efi-3.0d/inc/ia64/pe.h.unwrap 2008-03-10 14:39:01.000000000 -0400 ++++ gnu-efi-3.0d/inc/ia64/pe.h 2008-03-10 14:39:20.000000000 -0400 +@@ -594,4 +594,6 @@ typedef struct _IMAGE_IMPORT_DESCRIPTOR + PIMAGE_THUNK_DATA FirstThunk; + } IMAGE_IMPORT_DESCRIPTOR, *PIMAGE_IMPORT_DESCRIPTOR; + ++#define EFI_CALL(sym, argc) sym ++ + #endif +diff -up gnu-efi-3.0d/inc/ia64/efibind.h.unwrap gnu-efi-3.0d/inc/ia64/efibind.h +--- gnu-efi-3.0d/inc/ia64/efibind.h.unwrap 2008-03-10 14:36:00.000000000 -0400 ++++ gnu-efi-3.0d/inc/ia64/efibind.h 2008-03-10 14:36:59.000000000 -0400 +@@ -187,7 +187,22 @@ void __mf (void); + // one big module. + // + +-#define EFI_DRIVER_ENTRY_POINT(InitFunction) ++#define EFI_DRIVER_ENTRY_POINT(InitFunction) \ ++ UINTN \ ++ InitializeDriver ( \ ++ VOID *ImageHandle, \ ++ VOID *SystemTable \ ++ ) \ ++ { \ ++ return InitFunction(ImageHandle, \ ++ SystemTable); \ ++ } \ ++ \ ++ EFI_STATUS efi_main( \ ++ EFI_HANDLE image, \ ++ EFI_SYSTEM_TABLE *systab \ ++ ) __attribute__((weak, \ ++ alias ("InitializeDriver"))); + + #define LOAD_INTERNAL_DRIVER(_if, type, name, entry) \ + (_if)->LoadInternal(type, name, entry) diff --git a/gnu-efi.spec b/gnu-efi.spec index a3b3cd5..be5f5a3 100644 --- a/gnu-efi.spec +++ b/gnu-efi.spec @@ -1,7 +1,7 @@ Summary: Development Libraries and headers for EFI Name: gnu-efi Version: 3.0d -Release: 3%{?dist} +Release: 4%{?dist} Group: Development/System License: GPL URL: ftp://ftp.hpl.hp.com/pub/linux-ia64 @@ -10,6 +10,8 @@ Patch0: gnu-efi-3.0d-pragma.patch Patch1: gnu-efi-3.0d-uefi_wrap.patch Patch2: gnu-efi-3.0d-x86_64.patch Patch3: gnu-efi-3.0d-rpm.patch +Patch4: gnu-efi-3.0d-unwrap.patch +Patch5: gnu-efi-3.0d-uefi_wrap_call10.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) ExclusiveArch: ia64 i386 x86_64 @@ -19,10 +21,12 @@ applications that run under EFI (Extensible Firmware Interface). %prep %setup -q -%patch0 -p1 -b .pragma -%patch1 -p1 -b .uefi_wrap -%patch2 -p1 -b .x86_64 -%patch3 -p1 -b .rpm +%patch0 -p1 +%patch1 -p1 +%patch2 -p1 +%patch3 -p1 +%patch4 -p1 +%patch5 -p1 %build # Package cannot build with %{?_smp_mflags}. @@ -50,6 +54,10 @@ rm -rf %{buildroot} %{_libdir}/* %changelog +* Thu Mar 27 2008 Peter Jones - 3.0d-4 +- Fix uefi_call_wrapper(x, 10, ...) . +- Add efi_main wrappers and EFI_CALL() macro so drivers are possible. + * Mon Feb 18 2008 Fedora Release Engineering - 3.0d-3 - Autorebuild for GCC 4.3