public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: Laszlo Ersek <lersek@redhat.com>
To: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: edk2-devel-01 <edk2-devel@ml01.01.org>,
	Anthony PERARD <anthony.perard@citrix.com>,
	Gary Lin <glin@suse.com>,
	Jordan Justen <jordan.l.justen@intel.com>,
	Leif Lindholm <leif.lindholm@linaro.org>,
	Liming Gao <liming.gao@intel.com>,
	Michael D Kinney <michael.d.kinney@intel.com>,
	Michael Zimmermann <sigmaepsilon92@gmail.com>
Subject: Re: [PATCH 00/19] OvmfPkg, ArmVirtPkg: leave deprecated interfaces behind
Date: Mon, 24 Oct 2016 13:50:52 +0200	[thread overview]
Message-ID: <c6b6c360-f622-9b52-f907-3b4913213d77@redhat.com> (raw)
In-Reply-To: <CAKv+Gu-vv__veC7qbHbLvi7_tOVdd_d+YEOxtrSWAFtXoE5F6g@mail.gmail.com>

On 10/24/16 10:04, Ard Biesheuvel wrote:
> On 21 October 2016 at 22:27, Laszlo Ersek <lersek@redhat.com> wrote:
>> This series intends to solve the following BZs:
>>
>>   <https://bugzilla.tianocore.org/show_bug.cgi?id=166> -- OvmfPkg: Add
>>   the build option "/D DISABLE_NEW_DEPRECATED_INTERFACES" in package DSC
>>   files
>>
>>   <https://bugzilla.tianocore.org/show_bug.cgi?id=165> -- ArmVirtPkg:
>>   Add the build option "/D DISABLE_NEW_DEPRECATED_INTERFACES" in package
>>   DSC files
>>
>> Public branch:
>> <https://github.com/lersek/edk2/commits/no_deprec_ovmf_bz166_armvirt_bz165>.
>>
>> The DISABLE_NEW_DEPRECATED_INTERFACES feature test macro disables the
>> following MdePkg library class APIs:
>>
>>   BaseLib:
>>   - StrCpy, StrnCpy, StrCat, StrnCat, UnicodeStrToAsciiStr,
>>   - AsciiStrCpy, AsciiStrnCpy, AsciiStrCat, AsciiStrnCat,
>>     AsciiStrToUnicodeStr.
>>
>>   PcdLib:
>>   - PcdSet8, PcdSet16, PcdSet32, PcdSet64, PcdSetPtr, PcdSetBool,
>>   - PcdSetEx8, PcdSetEx16, PcdSetEx32, PcdSetEx64, PcdSetExPtr,
>>     PcdSetExBool.
>>
>>   UefiLib:
>>   - GetVariable, GetEfiGlobalVariable.
>>
>> The series gradually weans the OvmfPkg and ArmVirtPkg modules off these.
>> For the 32-bit ARM builds of ArmVirtPkg platforms, I had to dip my toes
>> into ArmPkg a little bit, due to dependencies.
>>
>> I couldn't build-test some changes (for example, the only compiler
>> toolchains I have access to at the moment are GCC48 for Ia32/X64, and
>> GCC5 for ARM/AARCH64). Some changes I could build, but not functionally
>> test (Xen en bloc, 32-bit ARM, RAM-emulated variables in OVMF, -bios
>> flag). For all of these, I liberally sprinkled the patches with Cc's and
>> Notes sections, asking for help. I did make an honest effort to build
>> the ArmVirt and OVMF platforms in as many configurations (-D ...) as I
>> could think of, perusing the various !if directives in the DSC files.
>>
> 
> I tried ArmVirtQemu.dsc in DEBUG mode with RVCTLINUX, and it built fine*
> 
> Tested-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> # RVCT

Thank you!

Then,

> * In general, RVCT tends to fall over quite regularly due to its
> finicky diagnostics, so I did have to apply this patch
> 
> """
> diff --git a/ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.c
> b/ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.c
> index ca61ac5e1983..1098d9501cc7 100644
> --- a/ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.c
> +++ b/ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.c
> @@ -891,7 +891,7 @@ NorFlashRead (
>    SEND_NOR_COMMAND (Instance->DeviceBaseAddress, 0, P30_CMD_READ_ARRAY);
> 
>    // Readout the data
> -  AlignedCopyMem (Buffer, (VOID *)StartAddress + Offset, BufferSizeInBytes);
> +  AlignedCopyMem (Buffer, (VOID *)(StartAddress + Offset), BufferSizeInBytes);
> 
>    return EFI_SUCCESS;
>  }

RVCT is correct here; standard C does not permit arithmetic on
pointers-to-void. From C99 for example,

    6.5.6 Additive operators
    ...
    Constraints

  2 For addition, either both operands shall have arithmetic type, or
    one operand shall be a pointer to an object type and the other
    shall have integer type. [...]

"Pointer to void" is not "pointer to object type".

Although in

    6.2.5 Types

we have

  27 A pointer to void shall have the same representation and alignment
     requirements as a pointer to a character type. [...]

but also:

  19 The void type comprises an empty set of values; it is an
     incomplete type that cannot be completed.

So, not an object type.

Can you submit this patch per se? It's a valid and justified change.

> diff --git a/ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.inf
> b/ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.inf
> index 812dafd065b2..0ef7b8d81bbc 100644
> --- a/ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.inf
> +++ b/ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.inf
> @@ -71,3 +71,7 @@ [Depex]
>    # NorFlashDxe must be loaded before VariableRuntimeDxe in case
> empty flash needs populating with default values
>    #
>    BEFORE gVariableRuntimeDxeFileGuid
> +
> +[BuildOptions]
> +  RVCT:*_*_*_CC_FLAGS = --diag_suppress=6314
> +
> """

No input on this though :)

> but these changes are entirely unrelated to the series, and I will
> follow up with some patches to fix this.
> 

Yes, please.

Thanks!
Laszlo


  reply	other threads:[~2016-10-24 11:50 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-10-21 21:27 [PATCH 00/19] OvmfPkg, ArmVirtPkg: leave deprecated interfaces behind Laszlo Ersek
2016-10-21 21:27 ` [PATCH 01/19] MdePkg/DebugLib.h: add ASSERT_RETURN_ERROR() Laszlo Ersek
2016-10-24 20:59   ` Laszlo Ersek
2016-10-24 23:05     ` Kinney, Michael D
2016-10-25  7:54       ` Laszlo Ersek
2016-10-25 10:32         ` Gao, Liming
2016-10-27  2:53           ` Kinney, Michael D
2016-10-25  8:22       ` Zeng, Star
2016-10-25  8:33         ` Laszlo Ersek
2016-10-21 21:27 ` [PATCH 02/19] OvmfPkg/XenBusDxe: eliminate AsciiStrCpy() calls Laszlo Ersek
2016-10-24  4:44   ` Gary Lin
2016-10-21 21:27 ` [PATCH 03/19] OvmfPkg/XenBusDxe: eliminate AsciiStrCat() calls Laszlo Ersek
2016-10-24  4:44   ` Gary Lin
2016-10-21 21:27 ` [PATCH 04/19] OvmfPkg/EmuVariableFvbRuntimeDxe: eliminate unchecked PcdSetXX() calls Laszlo Ersek
2016-10-24  4:45   ` Gary Lin
2016-10-21 21:27 ` [PATCH 05/19] OvmfPkg/PlatformBootManagerLib: " Laszlo Ersek
2016-10-24  4:45   ` Gary Lin
2016-10-21 21:27 ` [PATCH 06/19] OvmfPkg/SmbiosVersionLib: " Laszlo Ersek
2016-10-24  8:00   ` Ard Biesheuvel
2016-10-21 21:27 ` [PATCH 07/19] OvmfPkg/PlatformDxe: " Laszlo Ersek
2016-10-21 21:27 ` [PATCH 08/19] OvmfPkg/PlatformPei: " Laszlo Ersek
2016-10-24  4:45   ` Gary Lin
2016-10-24 11:51     ` Laszlo Ersek
2016-10-21 21:27 ` [PATCH 09/19] OvmfPkg/QemuFlashFvbServicesRuntimeDxe: " Laszlo Ersek
2016-10-21 21:27 ` [PATCH 10/19] OvmfPkg: disable deprecated interfaces Laszlo Ersek
2016-10-21 21:27 ` [PATCH 11/19] ArmVirtPkg/ArmVirtGicArchLib: eliminate unchecked PcdSetXX() calls Laszlo Ersek
2016-10-24  8:00   ` Ard Biesheuvel
2016-10-21 21:27 ` [PATCH 12/19] ArmVirtPkg/ArmVirtPL031FdtClientLib: " Laszlo Ersek
2016-10-24  8:00   ` Ard Biesheuvel
2016-10-21 21:27 ` [PATCH 13/19] ArmVirtPkg/ArmVirtPlatformLib: " Laszlo Ersek
2016-10-24  7:59   ` Ard Biesheuvel
2016-10-21 21:27 ` [PATCH 14/19] ArmVirtPkg/ArmVirtTimerFdtClientLib: " Laszlo Ersek
2016-10-24  7:59   ` Ard Biesheuvel
2016-10-21 21:27 ` [PATCH 15/19] ArmVirtPkg/FdtPciPcdProducerLib: " Laszlo Ersek
2016-10-24  7:59   ` Ard Biesheuvel
2016-10-21 21:27 ` [PATCH 16/19] ArmVirtPkg/PlatformBootManagerLib: " Laszlo Ersek
2016-10-24  7:58   ` Ard Biesheuvel
2016-10-21 21:27 ` [PATCH 17/19] ArmPkg/ArmDisassemblerLib: replace AsciiStrCat() with AsciiStrCatS() Laszlo Ersek
2016-10-24  7:58   ` Ard Biesheuvel
2016-10-24 18:47     ` Jordan Justen
2016-10-24 19:54       ` Laszlo Ersek
2016-10-21 21:27 ` [PATCH 18/19] ArmPkg/DefaultExceptionHandlerLib: " Laszlo Ersek
2016-10-24  7:57   ` Ard Biesheuvel
2016-10-24 11:52     ` Laszlo Ersek
2016-10-21 21:27 ` [PATCH 19/19] ArmVirtPkg: disable deprecated interfaces Laszlo Ersek
2016-10-25  8:25   ` Laszlo Ersek
2016-10-25  8:28     ` Ard Biesheuvel
2016-10-24  8:04 ` [PATCH 00/19] OvmfPkg, ArmVirtPkg: leave deprecated interfaces behind Ard Biesheuvel
2016-10-24 11:50   ` Laszlo Ersek [this message]
2016-10-25  8:26   ` Laszlo Ersek
2016-10-25  8:45     ` Laszlo Ersek
2016-10-25  8:49       ` Ard Biesheuvel
2016-10-24 18:48 ` Jordan Justen
2016-10-25  9:07 ` Laszlo Ersek

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=c6b6c360-f622-9b52-f907-3b4913213d77@redhat.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox