Hi Bob, thanks for clarifying this. Abner
> -----Original Message----- > From: [email protected] [mailto:[email protected]] On Behalf Of > Bob Feng > Sent: Tuesday, April 28, 2020 6:39 PM > To: [email protected]; Feng, Bob C <[email protected]>; Chang, > Abner (HPS SW/FW Technologist) <[email protected]> > Cc: Chen, Gilbert <[email protected]>; Schaefer, Daniel (DualStudy) > <[email protected]>; Leif Lindholm <[email protected]>; Gao, > Liming <[email protected]> > Subject: Re: [edk2-devel] [PATCH v4 3/3] BaseTools: BaseTools changes for > RISC-V platform. > > Hi Abner, > > These errors are reported from our CI system. I re-triggered the CI build, all > errors disappeared. > > For this patch set, > Reviewed-by: Bob Feng <[email protected]> > > Thanks, > Bob > > -----Original Message----- > From: [email protected] <[email protected]> On Behalf Of Bob > Feng > Sent: Friday, April 24, 2020 5:24 PM > To: Abner Chang <[email protected]>; [email protected] > Cc: Gilbert Chen <[email protected]>; Daniel Helmut Schaefer > <[email protected]>; Leif Lindholm <[email protected]>; Gao, > Liming <[email protected]> > Subject: Re: [edk2-devel] [PATCH v4 3/3] BaseTools: BaseTools changes for > RISC-V platform. > > 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 <[email protected]> > Sent: Thursday, April 23, 2020 9:53 PM > To: [email protected] > Cc: [email protected]; Gilbert Chen <[email protected]>; Daniel > Helmut Schaefer <[email protected]>; Leif Lindholm > <[email protected]>; Feng, Bob C <[email protected]>; Gao, > Liming <[email protected]> > 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 <[email protected]> > Co-authored-by: Gilbert Chen <[email protected]> > Co-authored-by: Daniel Helmut Schaefer <[email protected]> > Reviewed-by: Leif Lindholm <[email protected]> > > Cc: Bob Feng <[email protected]> > Cc: Liming Gao <[email protected]> > Cc: Leif Lindholm <[email protected]> > Cc: Gilbert Chen <[email protected]> > --- > 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 [email protected] > > @@ -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 > > > > > > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#58256): https://edk2.groups.io/g/devel/message/58256 Mute This Topic: https://groups.io/mt/73219121/21656 Group Owner: [email protected] Unsubscribe: https://edk2.groups.io/g/devel/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
