On 2015-08-07 07:59:24, Ard Biesheuvel wrote:
> On 7 August 2015 at 16:51, Jordan Justen <jordan.l.jus...@intel.com> wrote:
> > I think the subject should say 'Add CLANG toolchain with AARCH64
> > support' to highlight that a new toolchain name is being defined.
> >
> 
> OK. I can fix that up before applying.
> 
> > Should we consider adding the version to the toolchain name, like
> > CLANG37? Then we can change parameters between major releases. At
> > least for GCC it has proved useful.
> >
> 
> Actually, I was going to suggest folding everything except GCC-4.4
> into GCC4X since the differences are so minor.

Minor, but there are differences. Would you propose forcing people to
have to cusomize tools_def if they don't use the GCC-4.X that
tools_def currently supports? How would that work?

> (and GCC-4.4 may be on its way out due to its poor support of
> ms_abi).

Arg. Not that tired old argument about how difficult it is to use
EFIAPI properly? :)

By the way, we have never deprecated a toolchain in EDK II. Personally
I think we should move some older toolchains to
BaseTools/Conf/tools_def.deprecated.

> With GCC 5.0 and 5.1 around the corner, it is becoming a bit
> unwieldy by my taste.

There would be a GCC5 and GCC6. Not GCC50 and GCC51. (GCC moved
releases to bumping the first version number.)

https://gcc.gnu.org/develop.html#num_scheme

This method does add 1~2 toolchains per year, but it doesn't seem too
bad.

CLANG seems to have releases about 1~2 per year as well, and it would
be good to plan for some minor parameter tweaks between releases.
That's why I'd suggest CLANG37, to match up with CLANG/LLVM release
numbering.

-Jordan

> For clang, there is no reason right now afaict. So perhaps we could
> use CLANG3X instead? That way, we can still keep the current support
> as newer CLANG versions become available, but are not forced to
> declare 2 or 3 discrete but identical versions right from the start.
> 
> -- 
> Ard.
> 
> > On 2015-08-07 07:23:23, Ard Biesheuvel wrote:
> >> This adds support for building the AARCH64 platforms using the
> >> Clang compiler and assembler combined with the GNU (cross-)linker.
> >>
> >> Contributed-under: TianoCore Contribution Agreement 1.0
> >> Signed-off-by: Ard Biesheuvel <ard.biesheu...@linaro.org>
> >> Reviewed-by: Leif Lindholm <leif.lindh...@linaro.org>
> >> Tested-by: Leif Lindholm <leif.lindh...@linaro.org>
> >> ---
> >>  BaseTools/Conf/tools_def.template | 51 ++++++++++++++++++++
> >>  1 file changed, 51 insertions(+)
> >>
> >> diff --git a/BaseTools/Conf/tools_def.template 
> >> b/BaseTools/Conf/tools_def.template
> >> index eeb488fb3597..974c9805435b 100644
> >> --- a/BaseTools/Conf/tools_def.template
> >> +++ b/BaseTools/Conf/tools_def.template
> >> @@ -4644,6 +4644,57 @@ RELEASE_GCC49_AARCH64_CC_FLAGS   = 
> >> DEF(GCC49_AARCH64_CC_FLAGS) -Wno-unused-but-s
> >>
> >>  
> >> ####################################################################################
> >>  #
> >> +# CLANG   - This configuration is used to compile under Linux to produce
> >> +#           PE/COFF binaries using the clang compiler and assembler and 
> >> GNU linker
> >> +#
> >> +####################################################################################
> >> +*_CLANG_*_*_FAMILY               = GCC
> >> +
> >> +*_CLANG_*_MAKE_PATH              = make
> >> +*_CLANG_*_*_DLL                  = ENV(CLANG_DLL)
> >> +*_CLANG_*_ASL_PATH               = DEF(UNIX_IASL_BIN)
> >> +
> >> +*_CLANG_*_PP_FLAGS               = DEF(GCC_PP_FLAGS)
> >> +*_CLANG_*_ASLPP_FLAGS            = DEF(GCC_ASLPP_FLAGS)
> >> +*_CLANG_*_ASLCC_FLAGS            = DEF(GCC_ASLCC_FLAGS)
> >> +*_CLANG_*_VFRPP_FLAGS            = DEF(GCC_VFRPP_FLAGS)
> >> +*_CLANG_*_APP_FLAGS              =
> >> +*_CLANG_*_ASL_FLAGS              = DEF(IASL_FLAGS)
> >> +*_CLANG_*_ASL_OUTFLAGS           = DEF(IASL_OUTFLAGS)
> >> +
> >> +*_CLANG_*_CC_PATH                = ENV(CLANG_BIN)clang
> >> +*_CLANG_*_ASM_PATH               = ENV(CLANG_BIN)clang
> >> +*_CLANG_*_PP_PATH                = ENV(CLANG_BIN)clang
> >> +*_CLANG_*_VFRPP_PATH             = ENV(CLANG_BIN)clang
> >> +*_CLANG_*_ASLCC_PATH             = ENV(CLANG_BIN)clang
> >> +*_CLANG_*_ASLPP_PATH             = ENV(CLANG_BIN)clang
> >> +
> >> +DEFINE CLANG_WARNING_OVERRIDES   = -Wno-parentheses-equality 
> >> -Wno-tautological-compare -Wno-tautological-constant-out-of-range-compare 
> >> -Wno-empty-body
> >> +DEFINE CLANG_AARCH64_CC_FLAGS    = DEF(GCC_AARCH64_CC_FLAGS) -target 
> >> aarch64 -mcmodel=small -mstrict-align DEF(CLANG_WARNING_OVERRIDES)
> >> +
> >> +##################
> >> +# CLANG AARCH64 definitions
> >> +##################
> >> +*_CLANG_AARCH64_SLINK_PATH       = ENV(CLANG_AARCH64_PREFIX)ar
> >> +*_CLANG_AARCH64_DLINK_PATH       = ENV(CLANG_AARCH64_PREFIX)ld
> >> +*_CLANG_AARCH64_ASLDLINK_PATH    = ENV(CLANG_AARCH64_PREFIX)ld
> >> +*_CLANG_AARCH64_RC_PATH          = ENV(CLANG_AARCH64_PREFIX)objcopy
> >> +
> >> +*_CLANG_AARCH64_ASLCC_FLAGS      = DEF(GCC_ASLCC_FLAGS)
> >> +*_CLANG_AARCH64_ASLDLINK_FLAGS   = DEF(GCC_AARCH64_ASLDLINK_FLAGS)
> >> +*_CLANG_AARCH64_ASM_FLAGS        = DEF(GCC_ASM_FLAGS) $(ARCHASM_FLAGS) 
> >> $(PLATFORM_FLAGS) -target aarch64 -Qunused-arguments
> >> +*_CLANG_AARCH64_DLINK_FLAGS      = DEF(GCC_AARCH64_DLINK_FLAGS) -z 
> >> common-page-size=0x1000
> >> +*_CLANG_AARCH64_DLINK2_FLAGS     = DEF(GCC_DLINK2_FLAGS_COMMON) 
> >> --defsym=PECOFF_HEADER_SIZE=0x228
> >> +*_CLANG_AARCH64_PLATFORM_FLAGS   =
> >> +*_CLANG_AARCH64_PP_FLAGS         = DEF(GCC_PP_FLAGS) $(ARCHCC_FLAGS) 
> >> $(PLATFORM_FLAGS)
> >> +*_CLANG_AARCH64_RC_FLAGS         = DEF(GCC_AARCH64_RC_FLAGS)
> >> +*_CLANG_AARCH64_VFRPP_FLAGS      = DEF(GCC_VFRPP_FLAGS) $(ARCHCC_FLAGS) 
> >> $(PLATFORM_FLAGS)
> >> +
> >> +  DEBUG_CLANG_AARCH64_CC_FLAGS   = DEF(CLANG_AARCH64_CC_FLAGS) 
> >> $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -O0
> >> +RELEASE_CLANG_AARCH64_CC_FLAGS   = DEF(CLANG_AARCH64_CC_FLAGS) 
> >> $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -Oz
> >> +
> >> +####################################################################################
> >> +#
> >>  # Cygwin GCC And Intel ACPI Compiler
> >>  #
> >>  
> >> ####################################################################################
> >> --
> >> 1.9.1
> >>
> >> _______________________________________________
> >> edk2-devel mailing list
> >> edk2-devel@lists.01.org
> >> https://lists.01.org/mailman/listinfo/edk2-devel
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to