rpms/gnu-efi/devel gnu-efi-3.0d-uefi_wrap_call10.patch, NONE, 1.1 gnu-efi-3.0d-unwrap.patch, NONE, 1.1 gnu-efi-3.0d-pragma.patch, 1.1, 1.2 gnu-efi.spec, 1.20, 1.21

Peter Jones (pjones) fedora-extras-commits at redhat.com
Thu Mar 27 17:41:57 UTC 2008


Author: pjones

Update of /cvs/extras/rpms/gnu-efi/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv22357

Modified Files:
	gnu-efi-3.0d-pragma.patch gnu-efi.spec 
Added Files:
	gnu-efi-3.0d-uefi_wrap_call10.patch gnu-efi-3.0d-unwrap.patch 
Log Message:
* Thu Mar 27 2008 Peter Jones <pjones at redhat.com> - 3.0d-4
- Fix uefi_call_wrapper(x, 10, ...) .
- Add efi_main wrappers and EFI_CALL() macro so drivers are possible.


gnu-efi-3.0d-uefi_wrap_call10.patch:

--- NEW FILE gnu-efi-3.0d-uefi_wrap_call10.patch ---
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

gnu-efi-3.0d-unwrap.patch:

--- NEW FILE gnu-efi-3.0d-unwrap.patch ---
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)

gnu-efi-3.0d-pragma.patch:

Index: gnu-efi-3.0d-pragma.patch
===================================================================
RCS file: /cvs/extras/rpms/gnu-efi/devel/gnu-efi-3.0d-pragma.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- gnu-efi-3.0d-pragma.patch	19 Dec 2007 20:18:49 -0000	1.1
+++ gnu-efi-3.0d-pragma.patch	27 Mar 2008 17:41:50 -0000	1.2
@@ -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 @@
  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 @@
  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/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
- 
- //


Index: gnu-efi.spec
===================================================================
RCS file: /cvs/extras/rpms/gnu-efi/devel/gnu-efi.spec,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
--- gnu-efi.spec	18 Feb 2008 22:58:41 -0000	1.20
+++ gnu-efi.spec	27 Mar 2008 17:41:50 -0000	1.21
@@ -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 @@
 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 @@
 
 %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 @@
 %{_libdir}/*
 
 %changelog
+* Thu Mar 27 2008 Peter Jones <pjones at redhat.com> - 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 <rel-eng at fedoraproject.org> - 3.0d-3
 - Autorebuild for GCC 4.3
 




More information about the fedora-extras-commits mailing list