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
=== modified file '.pc/gcc46-compatibility/inc/x86_64/efibind.h'
--- .pc/gcc46-compatibility/inc/x86_64/efibind.h 2015-05-12 17:45:11 +0000
+++ .pc/gcc46-compatibility/inc/x86_64/efibind.h 2015-05-27 17:46:24 +0000
@@ -1,3 +1,4 @@
1<<<<<<< TREE
1/*++2/*++
23
3Copyright (c) 1998 Intel Corporation4Copyright (c) 1998 Intel Corporation
@@ -378,3 +379,385 @@
378#endif379#endif
379380
380#endif381#endif
382=======
383/*++
384
385Copyright (c) 1998 Intel Corporation
386
387Module Name:
388
389 efefind.h
390
391Abstract:
392
393 EFI to compile bindings
394
395
396
397
398Revision History
399
400--*/
401#ifndef X86_64_EFI_BIND
402#define X86_64_EFI_BIND
403#ifndef __GNUC__
404#pragma pack()
405#endif
406
407#if defined(GNU_EFI_USE_MS_ABI)
408 #if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7))
409 #define HAVE_USE_MS_ABI 1
410 #else
411 #error Compiler is too old for GNU_EFI_USE_MS_ABI
412 #endif
413#endif
414
415//
416// Basic int types of various widths
417//
418
419#if !defined(__STDC_VERSION__) || (__STDC_VERSION__ < 199901L )
420
421 // No ANSI C 1999/2000 stdint.h integer width declarations
422
423 #if defined(_MSC_EXTENSIONS)
424
425 // Use Microsoft C compiler integer width declarations
426
427 typedef unsigned __int64 uint64_t;
428 typedef __int64 int64_t;
429 typedef unsigned __int32 uint32_t;
430 typedef __int32 int32_t;
431 typedef unsigned short uint16_t;
432 typedef short int16_t;
433 typedef unsigned char uint8_t;
434 typedef char int8_t;
435 #elif defined(__GNUC__)
436 typedef int __attribute__((__mode__(__DI__))) int64_t;
437 typedef unsigned int __attribute__((__mode__(__DI__))) uint64_t;
438 typedef unsigned int uint32_t;
439 typedef int int32_t;
440 typedef unsigned short uint16_t;
441 typedef short int16_t;
442 typedef unsigned char uint8_t;
443 typedef signed char int8_t;
444 #elif defined(UNIX_LP64)
445
446 /* Use LP64 programming model from C_FLAGS for integer width declarations */
447
448 typedef unsigned long uint64_t;
449 typedef long int64_t;
450 typedef unsigned int uint32_t;
451 typedef int int32_t;
452 typedef unsigned short uint16_t;
453 typedef short int16_t;
454 typedef unsigned char uint8_t;
455 typedef char int8_t;
456 #else
457
458 /* Assume P64 programming model from C_FLAGS for integer width declarations */
459
460 typedef unsigned long long uint64_t __attribute__((aligned (8)));
461 typedef long long int64_t __attribute__((aligned (8)));
462 typedef unsigned int uint32_t;
463 typedef int int32_t;
464 typedef unsigned short uint16_t;
465 typedef short int16_t;
466 typedef unsigned char uint8_t;
467 typedef char int8_t;
468 #endif
469#elif defined(__GNUC__)
470 #include <stdint.h>
471#endif
472
473//
474// Basic EFI types of various widths
475//
476
477#ifndef __WCHAR_TYPE__
478# define __WCHAR_TYPE__ short
479#endif
480
481typedef uint64_t UINT64;
482typedef int64_t INT64;
483
484#ifndef _BASETSD_H_
485 typedef uint32_t UINT32;
486 typedef int32_t INT32;
487#endif
488
489typedef uint16_t UINT16;
490typedef int16_t INT16;
491typedef uint8_t UINT8;
492typedef int8_t INT8;
493typedef __WCHAR_TYPE__ WCHAR;
494
495#undef VOID
496#define VOID void
497
498
499typedef int64_t INTN;
500typedef uint64_t UINTN;
501
502#ifdef EFI_NT_EMULATOR
503 #define POST_CODE(_Data)
504#else
505 #ifdef EFI_DEBUG
506#define POST_CODE(_Data) __asm mov eax,(_Data) __asm out 0x80,al
507 #else
508 #define POST_CODE(_Data)
509 #endif
510#endif
511
512#define EFIERR(a) (0x8000000000000000 | a)
513#define EFI_ERROR_MASK 0x8000000000000000
514#define EFIERR_OEM(a) (0xc000000000000000 | a)
515
516
517#define BAD_POINTER 0xFBFBFBFBFBFBFBFB
518#define MAX_ADDRESS 0xFFFFFFFFFFFFFFFF
519
520#ifdef EFI_NT_EMULATOR
521 #define BREAKPOINT() __asm { int 3 }
522#else
523 #define BREAKPOINT() while (TRUE); // Make it hang on Bios[Dbg]32
524#endif
525
526//
527// Pointers must be aligned to these address to function
528//
529
530#define MIN_ALIGNMENT_SIZE 4
531
532#define ALIGN_VARIABLE(Value ,Adjustment) \
533 (UINTN)Adjustment = 0; \
534 if((UINTN)Value % MIN_ALIGNMENT_SIZE) \
535 (UINTN)Adjustment = MIN_ALIGNMENT_SIZE - ((UINTN)Value % MIN_ALIGNMENT_SIZE); \
536 Value = (UINTN)Value + (UINTN)Adjustment
537
538
539//
540// Define macros to build data structure signatures from characters.
541//
542
543#define EFI_SIGNATURE_16(A,B) ((A) | (B<<8))
544#define EFI_SIGNATURE_32(A,B,C,D) (EFI_SIGNATURE_16(A,B) | (EFI_SIGNATURE_16(C,D) << 16))
545#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))
546//
547// To export & import functions in the EFI emulator environment
548//
549
550#ifdef EFI_NT_EMULATOR
551 #define EXPORTAPI __declspec( dllexport )
552#else
553 #define EXPORTAPI
554#endif
555
556
557//
558// EFIAPI - prototype calling convention for EFI function pointers
559// BOOTSERVICE - prototype for implementation of a boot service interface
560// RUNTIMESERVICE - prototype for implementation of a runtime service interface
561// RUNTIMEFUNCTION - prototype for implementation of a runtime function that is not a service
562// RUNTIME_CODE - pragma macro for declaring runtime code
563//
564
565#ifndef EFIAPI // Forces EFI calling conventions reguardless of compiler options
566 #ifdef _MSC_EXTENSIONS
567 #define EFIAPI __cdecl // Force C calling convention for Microsoft C compiler
568 #elif defined(HAVE_USE_MS_ABI)
569 // Force amd64/ms calling conventions.
570 #define EFIAPI __attribute__((ms_abi))
571 #else
572 #define EFIAPI // Substitute expresion to force C calling convention
573 #endif
574#endif
575
576#define BOOTSERVICE
577//#define RUNTIMESERVICE(proto,a) alloc_text("rtcode",a); proto a
578//#define RUNTIMEFUNCTION(proto,a) alloc_text("rtcode",a); proto a
579#define RUNTIMESERVICE
580#define RUNTIMEFUNCTION
581
582
583#define RUNTIME_CODE(a) alloc_text("rtcode", a)
584#define BEGIN_RUNTIME_DATA() data_seg("rtdata")
585#define END_RUNTIME_DATA() data_seg("")
586
587#define VOLATILE volatile
588
589#define MEMORY_FENCE()
590
591#ifdef EFI_NT_EMULATOR
592
593//
594// To help ensure proper coding of integrated drivers, they are
595// compiled as DLLs. In NT they require a dll init entry pointer.
596// The macro puts a stub entry point into the DLL so it will load.
597//
598
599#define EFI_DRIVER_ENTRY_POINT(InitFunction) \
600 UINTN \
601 __stdcall \
602 _DllMainCRTStartup ( \
603 UINTN Inst, \
604 UINTN reason_for_call, \
605 VOID *rserved \
606 ) \
607 { \
608 return 1; \
609 } \
610 \
611 int \
612 EXPORTAPI \
613 __cdecl \
614 InitializeDriver ( \
615 void *ImageHandle, \
616 void *SystemTable \
617 ) \
618 { \
619 return InitFunction(ImageHandle, SystemTable); \
620 }
621
622
623 #define LOAD_INTERNAL_DRIVER(_if, type, name, entry) \
624 (_if)->LoadInternal(type, name, NULL)
625
626#else // EFI_NT_EMULATOR
627
628//
629// When build similiar to FW, then link everything together as
630// one big module.
631//
632
633 #define EFI_DRIVER_ENTRY_POINT(InitFunction) \
634 UINTN \
635 InitializeDriver ( \
636 VOID *ImageHandle, \
637 VOID *SystemTable \
638 ) \
639 { \
640 return InitFunction(ImageHandle, \
641 SystemTable); \
642 } \
643 \
644 EFI_STATUS efi_main( \
645 EFI_HANDLE image, \
646 EFI_SYSTEM_TABLE *systab \
647 ) __attribute__((weak, \
648 alias ("InitializeDriver")));
649
650 #define LOAD_INTERNAL_DRIVER(_if, type, name, entry) \
651 (_if)->LoadInternal(type, name, entry)
652
653#endif // EFI_FW_NT
654
655//
656// Some compilers don't support the forward reference construct:
657// typedef struct XXXXX
658//
659// The following macro provide a workaround for such cases.
660//
661#ifdef NO_INTERFACE_DECL
662#define INTERFACE_DECL(x)
663#else
664#ifdef __GNUC__
665#define INTERFACE_DECL(x) struct x
666#else
667#define INTERFACE_DECL(x) typedef struct x
668#endif
669#endif
670
671/* for x86_64, EFI_FUNCTION_WRAPPER must be defined */
672#if defined(HAVE_USE_MS_ABI)
673#define uefi_call_wrapper(func, va_num, ...) func(__VA_ARGS__)
674#else
675/*
676 Credits for macro-magic:
677 https://groups.google.com/forum/?fromgroups#!topic/comp.std.c/d-6Mj5Lko_s
678 http://efesx.com/2010/08/31/overloading-macros/
679*/
680#define __VA_NARG__(...) \
681 __VA_NARG_(_0, ## __VA_ARGS__, __RSEQ_N())
682#define __VA_NARG_(...) \
683 __VA_ARG_N(__VA_ARGS__)
684#define __VA_ARG_N( \
685 _0,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,N,...) N
686#define __RSEQ_N() \
687 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0
688
689#define __VA_ARG_NSUFFIX__(prefix,...) \
690 __VA_ARG_NSUFFIX_N(prefix, __VA_NARG__(__VA_ARGS__))
691#define __VA_ARG_NSUFFIX_N(prefix,nargs) \
692 __VA_ARG_NSUFFIX_N_(prefix, nargs)
693#define __VA_ARG_NSUFFIX_N_(prefix,nargs) \
694 prefix ## nargs
695
696/* Prototypes of EFI cdecl -> stdcall trampolines */
697UINT64 efi_call0(void *func);
698UINT64 efi_call1(void *func, UINT64 arg1);
699UINT64 efi_call2(void *func, UINT64 arg1, UINT64 arg2);
700UINT64 efi_call3(void *func, UINT64 arg1, UINT64 arg2, UINT64 arg3);
701UINT64 efi_call4(void *func, UINT64 arg1, UINT64 arg2, UINT64 arg3,
702 UINT64 arg4);
703UINT64 efi_call5(void *func, UINT64 arg1, UINT64 arg2, UINT64 arg3,
704 UINT64 arg4, UINT64 arg5);
705UINT64 efi_call6(void *func, UINT64 arg1, UINT64 arg2, UINT64 arg3,
706 UINT64 arg4, UINT64 arg5, UINT64 arg6);
707UINT64 efi_call7(void *func, UINT64 arg1, UINT64 arg2, UINT64 arg3,
708 UINT64 arg4, UINT64 arg5, UINT64 arg6, UINT64 arg7);
709UINT64 efi_call8(void *func, UINT64 arg1, UINT64 arg2, UINT64 arg3,
710 UINT64 arg4, UINT64 arg5, UINT64 arg6, UINT64 arg7,
711 UINT64 arg8);
712UINT64 efi_call9(void *func, UINT64 arg1, UINT64 arg2, UINT64 arg3,
713 UINT64 arg4, UINT64 arg5, UINT64 arg6, UINT64 arg7,
714 UINT64 arg8, UINT64 arg9);
715UINT64 efi_call10(void *func, UINT64 arg1, UINT64 arg2, UINT64 arg3,
716 UINT64 arg4, UINT64 arg5, UINT64 arg6, UINT64 arg7,
717 UINT64 arg8, UINT64 arg9, UINT64 arg10);
718
719/* Front-ends to efi_callX to avoid compiler warnings */
720#define _cast64_efi_call0(f) \
721 efi_call0(f)
722#define _cast64_efi_call1(f,a1) \
723 efi_call1(f, (UINT64)(a1))
724#define _cast64_efi_call2(f,a1,a2) \
725 efi_call2(f, (UINT64)(a1), (UINT64)(a2))
726#define _cast64_efi_call3(f,a1,a2,a3) \
727 efi_call3(f, (UINT64)(a1), (UINT64)(a2), (UINT64)(a3))
728#define _cast64_efi_call4(f,a1,a2,a3,a4) \
729 efi_call4(f, (UINT64)(a1), (UINT64)(a2), (UINT64)(a3), (UINT64)(a4))
730#define _cast64_efi_call5(f,a1,a2,a3,a4,a5) \
731 efi_call5(f, (UINT64)(a1), (UINT64)(a2), (UINT64)(a3), (UINT64)(a4), \
732 (UINT64)(a5))
733#define _cast64_efi_call6(f,a1,a2,a3,a4,a5,a6) \
734 efi_call6(f, (UINT64)(a1), (UINT64)(a2), (UINT64)(a3), (UINT64)(a4), \
735 (UINT64)(a5), (UINT64)(a6))
736#define _cast64_efi_call7(f,a1,a2,a3,a4,a5,a6,a7) \
737 efi_call7(f, (UINT64)(a1), (UINT64)(a2), (UINT64)(a3), (UINT64)(a4), \
738 (UINT64)(a5), (UINT64)(a6), (UINT64)(a7))
739#define _cast64_efi_call8(f,a1,a2,a3,a4,a5,a6,a7,a8) \
740 efi_call8(f, (UINT64)(a1), (UINT64)(a2), (UINT64)(a3), (UINT64)(a4), \
741 (UINT64)(a5), (UINT64)(a6), (UINT64)(a7), (UINT64)(a8))
742#define _cast64_efi_call9(f,a1,a2,a3,a4,a5,a6,a7,a8,a9) \
743 efi_call9(f, (UINT64)(a1), (UINT64)(a2), (UINT64)(a3), (UINT64)(a4), \
744 (UINT64)(a5), (UINT64)(a6), (UINT64)(a7), (UINT64)(a8), \
745 (UINT64)(a9))
746#define _cast64_efi_call10(f,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10) \
747 efi_call10(f, (UINT64)(a1), (UINT64)(a2), (UINT64)(a3), (UINT64)(a4), \
748 (UINT64)(a5), (UINT64)(a6), (UINT64)(a7), (UINT64)(a8), \
749 (UINT64)(a9), (UINT64)(a10))
750
751/* main wrapper (va_num ignored) */
752#define uefi_call_wrapper(func,va_num,...) \
753 __VA_ARG_NSUFFIX__(_cast64_efi_call, __VA_ARGS__) (func, __VA_ARGS__)
754
755#endif
756#define EFI_FUNCTION __attribute__((ms_abi))
757
758#ifdef _MSC_EXTENSIONS
759#pragma warning ( disable : 4731 ) // Suppress warnings about modification of EBP
760#endif
761
762#endif
763>>>>>>> MERGE-SOURCE
381764
=== added directory 'debian/patches'
=== renamed directory 'debian/patches' => 'debian/patches.moved'
=== renamed file 'debian/patches/gcc46-compatibility' => 'debian/patches/gcc46-compatibility'
=== 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'
=== added file 'debian/patches/series'
--- debian/patches/series 1970-01-01 00:00:00 +0000
+++ debian/patches/series 2015-05-27 17:46:24 +0000
@@ -0,0 +1,2 @@
1gcc46-compatibility
2inc-efistdarg.h-Use-gcc-builtins-instead-of-stdarg.h.patch

Subscribers

People subscribed via source and target branches

to all changes: