From mboxrd@z Thu Jan 1 00:00:00 1970 From: Simon Glass Date: Tue, 27 Sep 2016 11:55:25 -0600 Subject: [U-Boot] [PATCH v2 4/8] x86: Tidy up selection of building the EFI stub In-Reply-To: References: <1474838857-25045-1-git-send-email-sjg@chromium.org> <1474838857-25045-4-git-send-email-sjg@chromium.org> Message-ID: List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Bin, On 26 September 2016 at 20:44, Bin Meng wrote: > Hi Simon, > > On Tue, Sep 27, 2016 at 8:35 AM, Simon Glass wrote: >> Hi Bin, >> >> On 26 September 2016 at 02:50, Bin Meng wrote: >>> Hi Simon, >>> >>> On Mon, Sep 26, 2016 at 5:27 AM, Simon Glass wrote: >>>> At present we use a CONFIG option in efi.h to determine whether we are >>>> building the EFI stub or not. This means that the same header cannot be >>>> used for EFI_LOADER support. The CONFIG option will be enabled for the >>>> whole build, even when not building the stub. >>>> >>>> Use a different define instead, set up just for the files that make up the >>>> stub. >>>> >>>> Signed-off-by: Simon Glass >>>> --- >>>> >>>> Changes in v2: >>>> - Add new patch to tidy up selection of building the EFI stub >>>> >>>> include/efi.h | 7 +++++-- >>>> lib/efi/Makefile | 4 ++-- >>>> 2 files changed, 7 insertions(+), 4 deletions(-) >>>> >>>> diff --git a/include/efi.h b/include/efi.h >>>> index d07187c..3d58780 100644 >>>> --- a/include/efi.h >>>> +++ b/include/efi.h >>>> @@ -30,8 +30,11 @@ struct efi_device_path; >>>> >>>> #define EFI_BITS_PER_LONG BITS_PER_LONG >>>> >>>> -/* With 64-bit EFI stub, EFI_BITS_PER_LONG has to be 64 */ >>>> -#ifdef CONFIG_EFI_STUB_64BIT >>>> +/* >>>> + * With 64-bit EFI stub, EFI_BITS_PER_LONG has to be 64. EFI_STUB is set >>>> + * in lib/efi/Makefile, when building the stub. >>>> + */ >>>> +#if defined(CONFIG_EFI_STUB_64BIT) && defined(EFI_STUB) >>> >>> I don't understand why this is needed? >> >> If building the 64-bit EFI stub, we need to use 64-bit ints for the >> stub, but 32-bits for the rest of U-Boot. So this header gets used >> both ways. >> > > For 32-bit EFI stub or U-Boot itself, EFI_BITS_PER_LONG is defined as > BITS_PER_LONG which is 32. Yes that's right. But in the case of the stub, it can be different from U-Boot itself. This case takes care of that. > >>> >>>> #undef EFI_BITS_PER_LONG >>>> #define EFI_BITS_PER_LONG 64 >>>> #endif >>>> diff --git a/lib/efi/Makefile b/lib/efi/Makefile >>>> index e32dc14..9449600 100644 >>>> --- a/lib/efi/Makefile >>>> +++ b/lib/efi/Makefile >>>> @@ -9,9 +9,9 @@ obj-$(CONFIG_EFI_STUB) += efi_info.o >>>> >>>> CFLAGS_REMOVE_efi_stub.o := -mregparm=3 \ >>>> $(if $(CONFIG_EFI_STUB_64BIT),-march=i386 -m32) >>>> -CFLAGS_efi_stub.o := -fpic -fshort-wchar >>>> +CFLAGS_efi_stub.o := -fpic -fshort-wchar -DEFI_STUB >>>> CFLAGS_REMOVE_efi.o := -mregparm=3 \ >>>> $(if $(CONFIG_EFI_STUB_64BIT),-march=i386 -m32) >>>> -CFLAGS_efi.o := -fpic -fshort-wchar >>>> +CFLAGS_efi.o := -fpic -fshort-wchar -DEFI_STUB >>>> >>>> extra-$(CONFIG_EFI_STUB) += efi_stub.o efi.o >>>> -- Regards, Simon