public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Bob Feng" <bob.c.feng@intel.com>
To: Abner Chang <abner.chang@hpe.com>,
	"devel@edk2.groups.io" <devel@edk2.groups.io>
Cc: Gilbert Chen <gilbert.chen@hpe.com>,
	Daniel Helmut Schaefer <daniel.schaefer@hpe.com>,
	Leif Lindholm <leif.lindholm@linaro.org>,
	"Gao, Liming" <liming.gao@intel.com>
Subject: Re: [PATCH v4 3/3] BaseTools: BaseTools changes for RISC-V platform.
Date: Fri, 24 Apr 2020 09:23:56 +0000	[thread overview]
Message-ID: <BN6PR11MB0068BC82C0FFC26FA38434F5C9D00@BN6PR11MB0068.namprd11.prod.outlook.com> (raw)
In-Reply-To: <20200423135233.7342-4-abner.chang@hpe.com>

Hi Abner,

I found the BaseTools build failure with GCC5 and this patch break Intel internal CI. Would you please have a check?

make[1]: Entering directory '/opt/TCAgent/work/184220821286c462/Edk2/BaseTools/Source/C/Common'
gcc  -c  -I .. -I ../Include/Common -I ../Include/ -I ../Include/IndustryStandard -I ../Common/ -I .. -I . -I ../Include/X64/ -MD -fshort-wchar -fno-strict-aliasing -fwrapv -fno-delete-null-pointer-checks -Wall -Werror -Wno-deprecated-declarations -Wno-stringop-truncation -Wno-restrict -Wno-unused-result -nostdlib -g -O2  BasePeCoff.c -o BasePeCoff.o
In file included from BasePeCoff.c:16:0:
PeCoffLib.h:44:13: error: expected ')' before '+' token
   IN     VOID   *FileHandle,
             ^
PeCoffLib.h:44:36: error: expected ')' before '&' token
PeCoffLib.h:67:3: error: unknown type name 'PE_COFF_LOADER_READ_FILE'
   UINT32                            ImageCodeMemoryType;
   ^
BasePeCoff.c: In function 'PeCoffLoaderGetPeHeader':
BasePeCoff.c:117:12: error: called object is not a function or function pointer
BasePeCoff.c: In function 'PeCoffLoaderGetImageInfo':
BasePeCoff.c:402:18: error: called object is not a function or function pointer
         if (DebugDirectoryEntryRva >= SectionHeader.VirtualAddress &&
                  ^
BasePeCoff.c:429:20: error: called object is not a function or function pointer
           if (DebugEntry.Type == EFI_IMAGE_DEBUG_TYPE_CODEVIEW) {
                    ^
BasePeCoff.c:467:16: error: called object is not a function or function pointer
       if (DebugDirectoryEntryRva >= SectionHeader.VirtualAddress &&
                ^
BasePeCoff.c:521:18: error: called object is not a function or function pointer
         if (DebugEntry.Type == EFI_IMAGE_DEBUG_TYPE_CODEVIEW) {
                  ^
BasePeCoff.c: In function 'PeCoffLoaderLoadImage':
BasePeCoff.c:963:14: error: called object is not a function or function pointer
                       ImageContext->PeCoffHeaderOffset +
              ^
BasePeCoff.c:984:14: error: called object is not a function or function pointer
BasePeCoff.c:1049:18: error: called object is not a function or function pointer
BasePeCoff.c:1056:18: error: called object is not a function or function pointer
BasePeCoff.c:1183:22: error: called object is not a function or function pointer
             // Should we apply fix up to this field according to the size difference between PE and TE?
                      ^
BasePeCoff.c:1190:22: error: called object is not a function or function pointer
             ImageContext->ImageError = IMAGE_ERROR_IMAGE_READ;
                      ^
BasePeCoff.c: At top level:
cc1: error: unrecognized command line option '-Wno-restrict' [-Werror]
cc1: error: unrecognized command line option '-Wno-stringop-truncation' [-Werror]
cc1: all warnings being treated as errors
../Makefiles/footer.makefile:21: recipe for target 'BasePeCoff.o' failed
make[1]: *** [BasePeCoff.o] Error 1
make[1]: Leaving directory '/opt/TCAgent/work/184220821286c462/Edk2/BaseTools/Source/C/Common'
GNUmakefile:77: recipe for target 'Common' failed
make: *** [Common] Error 2
make: Leaving directory '/opt/TCAgent/work/184220821286c462/Edk2/BaseTools/Source/C'
Build environment: Linux-4.15.0-76-generic-x86_64-with-Ubuntu-16.04-xenial
Build start time: 10:39:01, Apr.23 2020

Thanks,
Bob

-----Original Message-----
From: Abner Chang <abner.chang@hpe.com> 
Sent: Thursday, April 23, 2020 9:53 PM
To: devel@edk2.groups.io
Cc: abner.chang@hpe.com; Gilbert Chen <gilbert.chen@hpe.com>; Daniel Helmut Schaefer <daniel.schaefer@hpe.com>; Leif Lindholm <leif.lindholm@linaro.org>; Feng, Bob C <bob.c.feng@intel.com>; Gao, Liming <liming.gao@intel.com>
Subject: [PATCH v4 3/3] BaseTools: BaseTools changes for RISC-V platform.

Tools definitions template file changes for building EDK2 RISC-V platform.

Signed-off-by: Abner Chang <abner.chang@hpe.com>
Co-authored-by: Gilbert Chen <gilbert.chen@hpe.com>
Co-authored-by: Daniel Helmut Schaefer <daniel.schaefer@hpe.com>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>

Cc: Bob Feng <bob.c.feng@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Cc: Leif Lindholm <leif.lindholm@linaro.org>
Cc: Gilbert Chen <gilbert.chen@hpe.com>
---
 BaseTools/Conf/tools_def.template | 53 +++++++++++++++++++++++++++++--
 1 file changed, 51 insertions(+), 2 deletions(-)

diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template
index 88d7ab8cab..c7e19f4544 100755
--- a/BaseTools/Conf/tools_def.template
+++ b/BaseTools/Conf/tools_def.template
@@ -3,7 +3,7 @@
 #  Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>

 #  Portions copyright (c) 2011 - 2014, ARM Ltd. All rights reserved.<BR>

 #  Copyright (c) 2015, Hewlett-Packard Development Company, L.P.<BR>

-#  (C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR>

+#  (C) Copyright 2020, Hewlett Packard Enterprise Development LP<BR>

 #  Copyright (c) Microsoft Corporation

 #

 #  SPDX-License-Identifier: BSD-2-Clause-Patent

@@ -267,11 +267,12 @@ DEFINE DTC_BIN                 = ENV(DTC_PREFIX)dtc
 #                               Intel(r) ACPI Compiler from

 #                               https://acpica.org/downloads

 #   GCC5        -Linux,Windows-  Requires:

-#                             GCC 5 with LTO support, targeting x86_64-linux-gnu, aarch64-linux-gnu, or arm-linux-gnueabi

+#                             GCC 5 with LTO support, targeting x86_64-linux-gnu, aarch64-linux-gnu, arm-linux-gnueabi or riscv64-linux-gnu

 #                        Optional:

 #                             Required to build platforms or ACPI tables:

 #                               Intel(r) ACPI Compiler from

 #                               https://acpica.org/downloads

+#

 #   CLANG35     -Linux,Windows-  Requires:

 #                             Clang v3.5 or later, and GNU binutils targeting aarch64-linux-gnu or arm-linux-gnueabi

 #                        Optional:

@@ -1946,6 +1947,7 @@ DEFINE GCC_IA32_RC_FLAGS           = -I binary -O elf32-i386          -B i386
 DEFINE GCC_X64_RC_FLAGS            = -I binary -O elf64-x86-64        -B i386    --rename-section .data=.hii

 DEFINE GCC_ARM_RC_FLAGS            = -I binary -O elf32-littlearm     -B arm     --rename-section .data=.hii

 DEFINE GCC_AARCH64_RC_FLAGS        = -I binary -O elf64-littleaarch64 -B aarch64 --rename-section .data=.hii

+DEFINE GCC_RISCV64_RC_FLAGS        = -I binary -O elf64-littleriscv   -B riscv   --rename-section .data=.hii

 

 # GCC Build Flag for included header file list generation

 DEFINE GCC_DEPS_FLAGS              = -MMD -MF $@.deps

@@ -2020,6 +2022,22 @@ DEFINE GCC5_ARM_ASLDLINK_FLAGS       = DEF(GCC49_ARM_ASLDLINK_FLAGS)
 DEFINE GCC5_AARCH64_ASLDLINK_FLAGS   = DEF(GCC49_AARCH64_ASLDLINK_FLAGS)

 DEFINE GCC5_ASLCC_FLAGS              = DEF(GCC49_ASLCC_FLAGS) -fno-lto

 

+DEFINE GCC5_RISCV_ALL_CC_FLAGS                    = -g -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-array-bounds -ffunction-sections -fdata-sections -include AutoGen.h -fno-common -DSTRING_ARRAY_NAME=$(BASE_NAME)Strings -msmall-data-limit=0

+DEFINE GCC5_RISCV_ALL_DLINK_COMMON                = -nostdlib -Wl,-n,-q,--gc-sections -z common-page-size=0x40

+DEFINE GCC5_RISCV_ALL_DLINK_FLAGS                 = DEF(GCC5_RISCV_ALL_DLINK_COMMON) -Wl,--entry,$(IMAGE_ENTRY_POINT) -u $(IMAGE_ENTRY_POINT) -Wl,-Map,$(DEST_DIR_DEBUG)/$(BASE_NAME).map

+DEFINE GCC5_RISCV_ALL_DLINK2_FLAGS                = -Wl,--defsym=PECOFF_HEADER_SIZE=0x220,--script=$(EDK_TOOLS_PATH)/Scripts/GccBase.lds

+DEFINE GCC5_RISCV_ALL_ASM_FLAGS                   = -c -x assembler -imacros $(DEST_DIR_DEBUG)/AutoGen.h

+DEFINE GCC5_RISCV_ALL_CC_FLAGS_WARNING_DISABLE    = -Wno-tautological-compare -Wno-pointer-compare

+

+DEFINE GCC5_RISCV_OPENSBI_TYPES                   = -DOPENSBI_EXTERNAL_SBI_TYPES=OpensbiTypes.h

+

+DEFINE GCC5_RISCV64_ARCH                   = rv64imafdc

+DEFINE GCC5_RISCV32_RISCV64_ASLDLINK_FLAGS = DEF(GCC5_RISCV_ALL_DLINK_COMMON) -Wl,--entry,ReferenceAcpiTable -u ReferenceAcpiTable

+DEFINE GCC5_RISCV64_CC_FLAGS               = DEF(GCC5_RISCV_ALL_CC_FLAGS) DEF(GCC5_RISCV_ALL_CC_FLAGS_WARNING_DISABLE) DEF(GCC5_RISCV_OPENSBI_TYPES) -march=DEF(GCC5_RISCV64_ARCH) -fno-builtin -fno-builtin-memcpy -fno-stack-protector -Wno-address -fno-asynchronous-unwind-tables -Wno-unused-but-set-variable -fpack-struct=8 -mcmodel=medany -mabi=lp64 -mno-relax

+DEFINE GCC5_RISCV64_DLINK_FLAGS            = DEF(GCC5_RISCV_ALL_DLINK_FLAGS) -Wl,-melf64lriscv,--oformat=elf64-littleriscv,--no-relax

+DEFINE GCC5_RISCV64_DLINK2_FLAGS           = DEF(GCC5_RISCV_ALL_DLINK2_FLAGS)

+DEFINE GCC5_RISCV64_ASM_FLAGS              = DEF(GCC5_RISCV_ALL_ASM_FLAGS) -march=DEF(GCC5_RISCV64_ARCH) -mcmodel=medany -mabi=lp64

+

 ####################################################################################

 #

 # GCC 4.8 - This configuration is used to compile under Linux to produce

@@ -2464,6 +2482,37 @@ RELEASE_GCC5_AARCH64_DLINK_XIPFLAGS = -z common-page-size=0x20
   NOOPT_GCC5_AARCH64_DLINK_FLAGS = DEF(GCC5_AARCH64_DLINK_FLAGS) -O0

   NOOPT_GCC5_AARCH64_DLINK_XIPFLAGS = -z common-page-size=0x20 -O0

 

+####################################################################################

+#

+# GCC RISC-V This configuration is used to compile under Linux to produce

+#             PE/COFF binaries using GCC RISC-V tool chain

+#

+####################################################################################

+

+##################

+# GCC5 RISCV64 definitions

+##################

+*_GCC5_RISCV64_OBJCOPY_PATH         = ENV(GCC5_RISCV64_PREFIX)objcopy

+*_GCC5_RISCV64_CC_PATH              = ENV(GCC5_RISCV64_PREFIX)gcc

+*_GCC5_RISCV64_SLINK_PATH           = ENV(GCC5_RISCV64_PREFIX)gcc-ar

+*_GCC5_RISCV64_DLINK_PATH           = ENV(GCC5_RISCV64_PREFIX)gcc

+*_GCC5_RISCV64_ASLDLINK_PATH        = ENV(GCC5_RISCV64_PREFIX)gcc

+*_GCC5_RISCV64_ASM_PATH             = ENV(GCC5_RISCV64_PREFIX)gcc

+*_GCC5_RISCV64_PP_PATH              = ENV(GCC5_RISCV64_PREFIX)gcc

+*_GCC5_RISCV64_VFRPP_PATH           = ENV(GCC5_RISCV64_PREFIX)gcc

+*_GCC5_RISCV64_ASLCC_PATH           = ENV(GCC5_RISCV64_PREFIX)gcc

+*_GCC5_RISCV64_ASLPP_PATH           = ENV(GCC5_RISCV64_PREFIX)gcc

+*_GCC5_RISCV64_RC_PATH              = ENV(GCC5_RISCV64_PREFIX)objcopy

+

+*_GCC5_RISCV64_ASLCC_FLAGS          = DEF(GCC_ASLCC_FLAGS)

+*_GCC5_RISCV64_ASLDLINK_FLAGS       = DEF(GCC5_RISCV32_RISCV64_ASLDLINK_FLAGS)

+*_GCC5_RISCV64_ASM_FLAGS            = DEF(GCC5_RISCV64_ASM_FLAGS)

+*_GCC5_RISCV64_CC_FLAGS             = DEF(GCC5_RISCV64_CC_FLAGS) -save-temps

+*_GCC5_RISCV64_DLINK_FLAGS          = DEF(GCC5_RISCV64_DLINK_FLAGS)

+*_GCC5_RISCV64_DLINK2_FLAGS         = DEF(GCC5_RISCV64_DLINK2_FLAGS)

+*_GCC5_RISCV64_RC_FLAGS             = DEF(GCC_RISCV64_RC_FLAGS)

+*_GCC5_RISCV64_OBJCOPY_FLAGS        =

+

 ####################################################################################

 #

 # CLANG35   - This configuration is used to compile under Linux to produce

-- 
2.25.0


  reply	other threads:[~2020-04-24  9:24 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-23 13:52 [PATCH v4 0/3] BaseTools: BaseTools changes for RISC-V platform Abner Chang
2020-04-23 13:52 ` [PATCH v4 1/3] " Abner Chang
2020-04-23 13:52 ` [PATCH v4 2/3] " Abner Chang
2020-04-23 13:52 ` [PATCH v4 3/3] " Abner Chang
2020-04-24  9:23   ` Bob Feng [this message]
     [not found]   ` <1608B727235F9D81.20497@groups.io>
2020-04-28 10:38     ` [edk2-devel] " Bob Feng
2020-04-28 14:54       ` Abner Chang
2020-04-29 10:15 ` [edk2-devel] [PATCH v4 0/3] " Laszlo Ersek
2020-04-29 10:48   ` Bob Feng
2020-04-29 13:53   ` Abner Chang
  -- strict thread matches above, loose matches on Subject: below --
2020-04-21  7:42 [PATCH v4 3/3] " Abner Chang

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=BN6PR11MB0068BC82C0FFC26FA38434F5C9D00@BN6PR11MB0068.namprd11.prod.outlook.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