On 11 February 2016 at 12:49, Ravikanth MVR ravikanth.mvr@broadcom.com wrote:
Ard,
We tested our binary and everything went well.Could you let us know when the patch,provided by you for GenFw,would be ported to EDK2 master?
Are you sure you still need it when you use -fno-exceptions?
On Wed, Feb 10, 2016 at 3:56 PM, Ard Biesheuvel ard.biesheuvel@linaro.org wrote:
On 10 February 2016 at 09:43, Ravikanth MVR ravikanth.mvr@broadcom.com wrote:
Could you provide us a example of this case?We compiled the same code in Visual studio compiler and we did not face any issues.
I am sorry, but this looks to me like a case you should be able to debug by yourself.
Thanks, Ard.
On Wed, Feb 10, 2016 at 1:15 PM, Ard Biesheuvel ard.biesheuvel@linaro.org wrote:
On 10 February 2016 at 08:42, Ravikanth MVR ravikanth.mvr@broadcom.com wrote:
Ard,
We built the binary after adding -fno-exceptions and the binary has been build successfully.We are using GCC4.9 compiler and toolchain.
We then built our application with your patch and by adding following compiler flags: -fno-rtti,-fno-threadsafe-statics -fuse-cxa-atexit and our binary also has been built successfully.
But when we executed our binary,we ended up with below crash/error.Basically our application is command based and whatever command we execute we end up with the following crash/print.
ASSERT /home/edk2_new1/MyWorkSpace/MdePkg/Library/BaseLib/String.c(167): ((UINTN) String & 0x00000001) == 0 ASSERT /home/edk2_new1/MyWorkSpace/MdePkg/Library/BaseLib/String.c(167): ((UINTN) String & 0x00000001) == 0 ASSERT /home/edk2_new1/MyWorkSpace/MdePkg/Library/BaseLib/String.c(167): ((UINTN) String & 0x00000001) == 0 ASSERT /home/edk2_new1/MyWorkSpace/MdePkg/Library/BaseLib/String.c(167): ((UINTN) String & 0x00000001) == 0
ASSERT_EFI_ERROR (Status = Invalid Parameter) ASSERT
/home/edk2_new1/MyWorkSpace/MdePkg/Library/UefiMemoryAllocationLib/MemoryAllocationLib.c(819): !EFI_ERROR (Status) ASSERT /home/edk2_new1/MyWorkSpace/MdePkg/Library/BaseLib/String.c(167): ((UINTN) String & 0x00000001) == 0
May I know why we are seeing the above errors?
My guess would be that you are using an odd memory address for a Unicode string (which consist of 16-bit quantities)