Merge lp:~ubuntu-branches/ubuntu/wily/gnu-efi/wily-201505271737 into lp:ubuntu/wily/gnu-efi

Proposed by Ubuntu Package Importer
Status: Needs review
Proposed branch: lp:~ubuntu-branches/ubuntu/wily/gnu-efi/wily-201505271737
Merge into: lp:ubuntu/wily/gnu-efi
Diff against target: 405 lines (+385/-0) (has conflicts)
2 files modified
.pc/gcc46-compatibility/inc/x86_64/efibind.h (+383/-0)
debian/patches/series (+2/-0)
Text conflict in .pc/gcc46-compatibility/inc/x86_64/efibind.h
Conflict adding file debian/patches.  Moved existing file to debian/patches.moved.
Path conflict: debian/patches.moved/gcc46-compatibility / debian/patches/gcc46-compatibility
Path conflict: debian/patches.moved/inc-efistdarg.h-Use-gcc-builtins-instead-of-stdarg.h.patch / debian/patches/inc-efistdarg.h-Use-gcc-builtins-instead-of-stdarg.h.patch
To merge this branch: bzr merge lp:~ubuntu-branches/ubuntu/wily/gnu-efi/wily-201505271737
Reviewer Review Type Date Requested Status
Ubuntu branches Pending
Review via email: mp+260350@code.launchpad.net

Description of the change

The package importer has detected a possible inconsistency between the package history in the archive and the history in bzr. As the archive is authoritative the importer has made lp:ubuntu/wily/gnu-efi reflect what is in the archive and the old bzr branch has been pushed to lp:~ubuntu-branches/ubuntu/wily/gnu-efi/wily-201505271737. This merge proposal was created so that an Ubuntu developer can review the situations and perform a merge/upload if necessary. There are three typical cases where this can happen.
  1. Where someone pushes a change to bzr and someone else uploads the package without that change. This is the reason that this check is done by the importer. If this appears to be the case then a merge/upload should be done if the changes that were in bzr are still desirable.
  2. The importer incorrectly detected the above situation when someone made a change in bzr and then uploaded it.
  3. The importer incorrectly detected the above situation when someone just uploaded a package and didn't touch bzr.

If this case doesn't appear to be the first situation then set the status of the merge proposal to "Rejected" and help avoid the problem in future by filing a bug at https://bugs.launchpad.net/udd linking to this merge proposal.

(this is an automatically generated message)

To post a comment you must log in.

Unmerged revisions

26. By Steve Langasek

Merge missing history

25. By Steve Langasek

Merge version 3.0v-5 from Debian

24. By Steve Langasek

Merge version 3.0v-1 from Debian

23. By Steve Langasek

releasing package gnu-efi version 3.0u+debian-1ubuntu2

22. By Steve Langasek

debian/patches/gcc46-compatibility: don't break with old compilers
and -DGNU_EFI_USE_MS_ABI.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file '.pc/gcc46-compatibility/inc/x86_64/efibind.h'
2--- .pc/gcc46-compatibility/inc/x86_64/efibind.h 2015-05-12 17:45:11 +0000
3+++ .pc/gcc46-compatibility/inc/x86_64/efibind.h 2015-05-27 17:46:24 +0000
4@@ -1,3 +1,4 @@
5+<<<<<<< TREE
6 /*++
7
8 Copyright (c) 1998 Intel Corporation
9@@ -378,3 +379,385 @@
10 #endif
11
12 #endif
13+=======
14+/*++
15+
16+Copyright (c) 1998 Intel Corporation
17+
18+Module Name:
19+
20+ efefind.h
21+
22+Abstract:
23+
24+ EFI to compile bindings
25+
26+
27+
28+
29+Revision History
30+
31+--*/
32+#ifndef X86_64_EFI_BIND
33+#define X86_64_EFI_BIND
34+#ifndef __GNUC__
35+#pragma pack()
36+#endif
37+
38+#if defined(GNU_EFI_USE_MS_ABI)
39+ #if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7))
40+ #define HAVE_USE_MS_ABI 1
41+ #else
42+ #error Compiler is too old for GNU_EFI_USE_MS_ABI
43+ #endif
44+#endif
45+
46+//
47+// Basic int types of various widths
48+//
49+
50+#if !defined(__STDC_VERSION__) || (__STDC_VERSION__ < 199901L )
51+
52+ // No ANSI C 1999/2000 stdint.h integer width declarations
53+
54+ #if defined(_MSC_EXTENSIONS)
55+
56+ // Use Microsoft C compiler integer width declarations
57+
58+ typedef unsigned __int64 uint64_t;
59+ typedef __int64 int64_t;
60+ typedef unsigned __int32 uint32_t;
61+ typedef __int32 int32_t;
62+ typedef unsigned short uint16_t;
63+ typedef short int16_t;
64+ typedef unsigned char uint8_t;
65+ typedef char int8_t;
66+ #elif defined(__GNUC__)
67+ typedef int __attribute__((__mode__(__DI__))) int64_t;
68+ typedef unsigned int __attribute__((__mode__(__DI__))) uint64_t;
69+ typedef unsigned int uint32_t;
70+ typedef int int32_t;
71+ typedef unsigned short uint16_t;
72+ typedef short int16_t;
73+ typedef unsigned char uint8_t;
74+ typedef signed char int8_t;
75+ #elif defined(UNIX_LP64)
76+
77+ /* Use LP64 programming model from C_FLAGS for integer width declarations */
78+
79+ typedef unsigned long uint64_t;
80+ typedef long int64_t;
81+ typedef unsigned int uint32_t;
82+ typedef int int32_t;
83+ typedef unsigned short uint16_t;
84+ typedef short int16_t;
85+ typedef unsigned char uint8_t;
86+ typedef char int8_t;
87+ #else
88+
89+ /* Assume P64 programming model from C_FLAGS for integer width declarations */
90+
91+ typedef unsigned long long uint64_t __attribute__((aligned (8)));
92+ typedef long long int64_t __attribute__((aligned (8)));
93+ typedef unsigned int uint32_t;
94+ typedef int int32_t;
95+ typedef unsigned short uint16_t;
96+ typedef short int16_t;
97+ typedef unsigned char uint8_t;
98+ typedef char int8_t;
99+ #endif
100+#elif defined(__GNUC__)
101+ #include <stdint.h>
102+#endif
103+
104+//
105+// Basic EFI types of various widths
106+//
107+
108+#ifndef __WCHAR_TYPE__
109+# define __WCHAR_TYPE__ short
110+#endif
111+
112+typedef uint64_t UINT64;
113+typedef int64_t INT64;
114+
115+#ifndef _BASETSD_H_
116+ typedef uint32_t UINT32;
117+ typedef int32_t INT32;
118+#endif
119+
120+typedef uint16_t UINT16;
121+typedef int16_t INT16;
122+typedef uint8_t UINT8;
123+typedef int8_t INT8;
124+typedef __WCHAR_TYPE__ WCHAR;
125+
126+#undef VOID
127+#define VOID void
128+
129+
130+typedef int64_t INTN;
131+typedef uint64_t UINTN;
132+
133+#ifdef EFI_NT_EMULATOR
134+ #define POST_CODE(_Data)
135+#else
136+ #ifdef EFI_DEBUG
137+#define POST_CODE(_Data) __asm mov eax,(_Data) __asm out 0x80,al
138+ #else
139+ #define POST_CODE(_Data)
140+ #endif
141+#endif
142+
143+#define EFIERR(a) (0x8000000000000000 | a)
144+#define EFI_ERROR_MASK 0x8000000000000000
145+#define EFIERR_OEM(a) (0xc000000000000000 | a)
146+
147+
148+#define BAD_POINTER 0xFBFBFBFBFBFBFBFB
149+#define MAX_ADDRESS 0xFFFFFFFFFFFFFFFF
150+
151+#ifdef EFI_NT_EMULATOR
152+ #define BREAKPOINT() __asm { int 3 }
153+#else
154+ #define BREAKPOINT() while (TRUE); // Make it hang on Bios[Dbg]32
155+#endif
156+
157+//
158+// Pointers must be aligned to these address to function
159+//
160+
161+#define MIN_ALIGNMENT_SIZE 4
162+
163+#define ALIGN_VARIABLE(Value ,Adjustment) \
164+ (UINTN)Adjustment = 0; \
165+ if((UINTN)Value % MIN_ALIGNMENT_SIZE) \
166+ (UINTN)Adjustment = MIN_ALIGNMENT_SIZE - ((UINTN)Value % MIN_ALIGNMENT_SIZE); \
167+ Value = (UINTN)Value + (UINTN)Adjustment
168+
169+
170+//
171+// Define macros to build data structure signatures from characters.
172+//
173+
174+#define EFI_SIGNATURE_16(A,B) ((A) | (B<<8))
175+#define EFI_SIGNATURE_32(A,B,C,D) (EFI_SIGNATURE_16(A,B) | (EFI_SIGNATURE_16(C,D) << 16))
176+#define EFI_SIGNATURE_64(A,B,C,D,E,F,G,H) (EFI_SIGNATURE_32(A,B,C,D) | ((UINT64)(EFI_SIGNATURE_32(E,F,G,H)) << 32))
177+//
178+// To export & import functions in the EFI emulator environment
179+//
180+
181+#ifdef EFI_NT_EMULATOR
182+ #define EXPORTAPI __declspec( dllexport )
183+#else
184+ #define EXPORTAPI
185+#endif
186+
187+
188+//
189+// EFIAPI - prototype calling convention for EFI function pointers
190+// BOOTSERVICE - prototype for implementation of a boot service interface
191+// RUNTIMESERVICE - prototype for implementation of a runtime service interface
192+// RUNTIMEFUNCTION - prototype for implementation of a runtime function that is not a service
193+// RUNTIME_CODE - pragma macro for declaring runtime code
194+//
195+
196+#ifndef EFIAPI // Forces EFI calling conventions reguardless of compiler options
197+ #ifdef _MSC_EXTENSIONS
198+ #define EFIAPI __cdecl // Force C calling convention for Microsoft C compiler
199+ #elif defined(HAVE_USE_MS_ABI)
200+ // Force amd64/ms calling conventions.
201+ #define EFIAPI __attribute__((ms_abi))
202+ #else
203+ #define EFIAPI // Substitute expresion to force C calling convention
204+ #endif
205+#endif
206+
207+#define BOOTSERVICE
208+//#define RUNTIMESERVICE(proto,a) alloc_text("rtcode",a); proto a
209+//#define RUNTIMEFUNCTION(proto,a) alloc_text("rtcode",a); proto a
210+#define RUNTIMESERVICE
211+#define RUNTIMEFUNCTION
212+
213+
214+#define RUNTIME_CODE(a) alloc_text("rtcode", a)
215+#define BEGIN_RUNTIME_DATA() data_seg("rtdata")
216+#define END_RUNTIME_DATA() data_seg("")
217+
218+#define VOLATILE volatile
219+
220+#define MEMORY_FENCE()
221+
222+#ifdef EFI_NT_EMULATOR
223+
224+//
225+// To help ensure proper coding of integrated drivers, they are
226+// compiled as DLLs. In NT they require a dll init entry pointer.
227+// The macro puts a stub entry point into the DLL so it will load.
228+//
229+
230+#define EFI_DRIVER_ENTRY_POINT(InitFunction) \
231+ UINTN \
232+ __stdcall \
233+ _DllMainCRTStartup ( \
234+ UINTN Inst, \
235+ UINTN reason_for_call, \
236+ VOID *rserved \
237+ ) \
238+ { \
239+ return 1; \
240+ } \
241+ \
242+ int \
243+ EXPORTAPI \
244+ __cdecl \
245+ InitializeDriver ( \
246+ void *ImageHandle, \
247+ void *SystemTable \
248+ ) \
249+ { \
250+ return InitFunction(ImageHandle, SystemTable); \
251+ }
252+
253+
254+ #define LOAD_INTERNAL_DRIVER(_if, type, name, entry) \
255+ (_if)->LoadInternal(type, name, NULL)
256+
257+#else // EFI_NT_EMULATOR
258+
259+//
260+// When build similiar to FW, then link everything together as
261+// one big module.
262+//
263+
264+ #define EFI_DRIVER_ENTRY_POINT(InitFunction) \
265+ UINTN \
266+ InitializeDriver ( \
267+ VOID *ImageHandle, \
268+ VOID *SystemTable \
269+ ) \
270+ { \
271+ return InitFunction(ImageHandle, \
272+ SystemTable); \
273+ } \
274+ \
275+ EFI_STATUS efi_main( \
276+ EFI_HANDLE image, \
277+ EFI_SYSTEM_TABLE *systab \
278+ ) __attribute__((weak, \
279+ alias ("InitializeDriver")));
280+
281+ #define LOAD_INTERNAL_DRIVER(_if, type, name, entry) \
282+ (_if)->LoadInternal(type, name, entry)
283+
284+#endif // EFI_FW_NT
285+
286+//
287+// Some compilers don't support the forward reference construct:
288+// typedef struct XXXXX
289+//
290+// The following macro provide a workaround for such cases.
291+//
292+#ifdef NO_INTERFACE_DECL
293+#define INTERFACE_DECL(x)
294+#else
295+#ifdef __GNUC__
296+#define INTERFACE_DECL(x) struct x
297+#else
298+#define INTERFACE_DECL(x) typedef struct x
299+#endif
300+#endif
301+
302+/* for x86_64, EFI_FUNCTION_WRAPPER must be defined */
303+#if defined(HAVE_USE_MS_ABI)
304+#define uefi_call_wrapper(func, va_num, ...) func(__VA_ARGS__)
305+#else
306+/*
307+ Credits for macro-magic:
308+ https://groups.google.com/forum/?fromgroups#!topic/comp.std.c/d-6Mj5Lko_s
309+ http://efesx.com/2010/08/31/overloading-macros/
310+*/
311+#define __VA_NARG__(...) \
312+ __VA_NARG_(_0, ## __VA_ARGS__, __RSEQ_N())
313+#define __VA_NARG_(...) \
314+ __VA_ARG_N(__VA_ARGS__)
315+#define __VA_ARG_N( \
316+ _0,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,N,...) N
317+#define __RSEQ_N() \
318+ 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0
319+
320+#define __VA_ARG_NSUFFIX__(prefix,...) \
321+ __VA_ARG_NSUFFIX_N(prefix, __VA_NARG__(__VA_ARGS__))
322+#define __VA_ARG_NSUFFIX_N(prefix,nargs) \
323+ __VA_ARG_NSUFFIX_N_(prefix, nargs)
324+#define __VA_ARG_NSUFFIX_N_(prefix,nargs) \
325+ prefix ## nargs
326+
327+/* Prototypes of EFI cdecl -> stdcall trampolines */
328+UINT64 efi_call0(void *func);
329+UINT64 efi_call1(void *func, UINT64 arg1);
330+UINT64 efi_call2(void *func, UINT64 arg1, UINT64 arg2);
331+UINT64 efi_call3(void *func, UINT64 arg1, UINT64 arg2, UINT64 arg3);
332+UINT64 efi_call4(void *func, UINT64 arg1, UINT64 arg2, UINT64 arg3,
333+ UINT64 arg4);
334+UINT64 efi_call5(void *func, UINT64 arg1, UINT64 arg2, UINT64 arg3,
335+ UINT64 arg4, UINT64 arg5);
336+UINT64 efi_call6(void *func, UINT64 arg1, UINT64 arg2, UINT64 arg3,
337+ UINT64 arg4, UINT64 arg5, UINT64 arg6);
338+UINT64 efi_call7(void *func, UINT64 arg1, UINT64 arg2, UINT64 arg3,
339+ UINT64 arg4, UINT64 arg5, UINT64 arg6, UINT64 arg7);
340+UINT64 efi_call8(void *func, UINT64 arg1, UINT64 arg2, UINT64 arg3,
341+ UINT64 arg4, UINT64 arg5, UINT64 arg6, UINT64 arg7,
342+ UINT64 arg8);
343+UINT64 efi_call9(void *func, UINT64 arg1, UINT64 arg2, UINT64 arg3,
344+ UINT64 arg4, UINT64 arg5, UINT64 arg6, UINT64 arg7,
345+ UINT64 arg8, UINT64 arg9);
346+UINT64 efi_call10(void *func, UINT64 arg1, UINT64 arg2, UINT64 arg3,
347+ UINT64 arg4, UINT64 arg5, UINT64 arg6, UINT64 arg7,
348+ UINT64 arg8, UINT64 arg9, UINT64 arg10);
349+
350+/* Front-ends to efi_callX to avoid compiler warnings */
351+#define _cast64_efi_call0(f) \
352+ efi_call0(f)
353+#define _cast64_efi_call1(f,a1) \
354+ efi_call1(f, (UINT64)(a1))
355+#define _cast64_efi_call2(f,a1,a2) \
356+ efi_call2(f, (UINT64)(a1), (UINT64)(a2))
357+#define _cast64_efi_call3(f,a1,a2,a3) \
358+ efi_call3(f, (UINT64)(a1), (UINT64)(a2), (UINT64)(a3))
359+#define _cast64_efi_call4(f,a1,a2,a3,a4) \
360+ efi_call4(f, (UINT64)(a1), (UINT64)(a2), (UINT64)(a3), (UINT64)(a4))
361+#define _cast64_efi_call5(f,a1,a2,a3,a4,a5) \
362+ efi_call5(f, (UINT64)(a1), (UINT64)(a2), (UINT64)(a3), (UINT64)(a4), \
363+ (UINT64)(a5))
364+#define _cast64_efi_call6(f,a1,a2,a3,a4,a5,a6) \
365+ efi_call6(f, (UINT64)(a1), (UINT64)(a2), (UINT64)(a3), (UINT64)(a4), \
366+ (UINT64)(a5), (UINT64)(a6))
367+#define _cast64_efi_call7(f,a1,a2,a3,a4,a5,a6,a7) \
368+ efi_call7(f, (UINT64)(a1), (UINT64)(a2), (UINT64)(a3), (UINT64)(a4), \
369+ (UINT64)(a5), (UINT64)(a6), (UINT64)(a7))
370+#define _cast64_efi_call8(f,a1,a2,a3,a4,a5,a6,a7,a8) \
371+ efi_call8(f, (UINT64)(a1), (UINT64)(a2), (UINT64)(a3), (UINT64)(a4), \
372+ (UINT64)(a5), (UINT64)(a6), (UINT64)(a7), (UINT64)(a8))
373+#define _cast64_efi_call9(f,a1,a2,a3,a4,a5,a6,a7,a8,a9) \
374+ efi_call9(f, (UINT64)(a1), (UINT64)(a2), (UINT64)(a3), (UINT64)(a4), \
375+ (UINT64)(a5), (UINT64)(a6), (UINT64)(a7), (UINT64)(a8), \
376+ (UINT64)(a9))
377+#define _cast64_efi_call10(f,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10) \
378+ efi_call10(f, (UINT64)(a1), (UINT64)(a2), (UINT64)(a3), (UINT64)(a4), \
379+ (UINT64)(a5), (UINT64)(a6), (UINT64)(a7), (UINT64)(a8), \
380+ (UINT64)(a9), (UINT64)(a10))
381+
382+/* main wrapper (va_num ignored) */
383+#define uefi_call_wrapper(func,va_num,...) \
384+ __VA_ARG_NSUFFIX__(_cast64_efi_call, __VA_ARGS__) (func, __VA_ARGS__)
385+
386+#endif
387+#define EFI_FUNCTION __attribute__((ms_abi))
388+
389+#ifdef _MSC_EXTENSIONS
390+#pragma warning ( disable : 4731 ) // Suppress warnings about modification of EBP
391+#endif
392+
393+#endif
394+>>>>>>> MERGE-SOURCE
395
396=== added directory 'debian/patches'
397=== renamed directory 'debian/patches' => 'debian/patches.moved'
398=== renamed file 'debian/patches/gcc46-compatibility' => 'debian/patches/gcc46-compatibility'
399=== renamed file 'debian/patches/inc-efistdarg.h-Use-gcc-builtins-instead-of-stdarg.h.patch' => 'debian/patches/inc-efistdarg.h-Use-gcc-builtins-instead-of-stdarg.h.patch'
400=== added file 'debian/patches/series'
401--- debian/patches/series 1970-01-01 00:00:00 +0000
402+++ debian/patches/series 2015-05-27 17:46:24 +0000
403@@ -0,0 +1,2 @@
404+gcc46-compatibility
405+inc-efistdarg.h-Use-gcc-builtins-instead-of-stdarg.h.patch

Subscribers

People subscribed via source and target branches

to all changes: