[edk2-devel] [PATCH 0/3] BaseTools: allow users to override CC and CXX on the make command line

Rebecca Cran posted 3 patches 1 year, 2 months ago
Failed in applying to current master (apply log)
BaseTools/Source/C/DevicePath/GNUmakefile          |  7 ++-
BaseTools/Source/C/LzmaCompress/GNUmakefile        |  2 +-
BaseTools/Source/C/Makefiles/app.makefile          |  2 +-
BaseTools/Source/C/Makefiles/footer.makefile       |  6 +-
BaseTools/Source/C/Makefiles/header.makefile       | 59 ++++++++++----------
BaseTools/Source/C/VfrCompile/GNUmakefile          | 19 ++++---
BaseTools/Source/C/VfrCompile/Pccts/antlr/makefile | 20 +++----
BaseTools/Source/C/VfrCompile/Pccts/dlg/makefile   | 31 +++++-----
BaseTools/Source/Python/Workspace/DscBuildData.py  |  2 +-
9 files changed, 76 insertions(+), 72 deletions(-)
[edk2-devel] [PATCH 0/3] BaseTools: allow users to override CC and CXX on the make command line
Posted by Rebecca Cran 1 year, 2 months ago
Currently, the BaseTools Makefiles use BUILD_CC and BUILD_CXX, which
doesn't allow users to override the compiler to use in the expected way
by running e.g. "make CC=clang-17 CXX=clang++-17". clang/llvm support
was added in https://bugzilla.tianocore.org/show_bug.cgi?id=2842 in a
way that required users to run "make CXX=llvm" and have clang and clang++
executables under $(CLANG_BIN). As far as I know this isn't a standard
way of telling a build system to use clang, and so is likely difficult
to discover by users.

This patch series fixes that, and as a side effect allows the clang
analyzer to run via "scan-build make".

Since clang 17 defaults to C++17 or newer where the 'register' keyword
is deprecated and the warning turned into an error, override the
version used when building C++ code via "-std=c++14".

Rebecca Cran (3):
  BaseTools: Allow users to specify compiler to use with make CC= CXX=
  BaseTools: Improve detection of users wanting to build using clang
  BaseTools: Build against C++14 when building with clang

 BaseTools/Source/C/DevicePath/GNUmakefile          |  7 ++-
 BaseTools/Source/C/LzmaCompress/GNUmakefile        |  2 +-
 BaseTools/Source/C/Makefiles/app.makefile          |  2 +-
 BaseTools/Source/C/Makefiles/footer.makefile       |  6 +-
 BaseTools/Source/C/Makefiles/header.makefile       | 59 ++++++++++----------
 BaseTools/Source/C/VfrCompile/GNUmakefile          | 19 ++++---
 BaseTools/Source/C/VfrCompile/Pccts/antlr/makefile | 20 +++----
 BaseTools/Source/C/VfrCompile/Pccts/dlg/makefile   | 31 +++++-----
 BaseTools/Source/Python/Workspace/DscBuildData.py  |  2 +-
 9 files changed, 76 insertions(+), 72 deletions(-)

-- 
2.30.2



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#100296): https://edk2.groups.io/g/devel/message/100296
Mute This Topic: https://groups.io/mt/97022151/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel] [PATCH 0/3] BaseTools: allow users to override CC and CXX on the make command line
Posted by Rebecca Cran 1 year, 1 month ago
Could I get some reviews on this please?


Thanks.

Rebecca Cran


On 2/16/23 8:50 PM, Rebecca Cran wrote:
> Currently, the BaseTools Makefiles use BUILD_CC and BUILD_CXX, which
> doesn't allow users to override the compiler to use in the expected way
> by running e.g. "make CC=clang-17 CXX=clang++-17". clang/llvm support
> was added in https://bugzilla.tianocore.org/show_bug.cgi?id=2842 in a
> way that required users to run "make CXX=llvm" and have clang and clang++
> executables under $(CLANG_BIN). As far as I know this isn't a standard
> way of telling a build system to use clang, and so is likely difficult
> to discover by users.
>
> This patch series fixes that, and as a side effect allows the clang
> analyzer to run via "scan-build make".
>
> Since clang 17 defaults to C++17 or newer where the 'register' keyword
> is deprecated and the warning turned into an error, override the
> version used when building C++ code via "-std=c++14".
>
> Rebecca Cran (3):
>    BaseTools: Allow users to specify compiler to use with make CC= CXX=
>    BaseTools: Improve detection of users wanting to build using clang
>    BaseTools: Build against C++14 when building with clang
>
>   BaseTools/Source/C/DevicePath/GNUmakefile          |  7 ++-
>   BaseTools/Source/C/LzmaCompress/GNUmakefile        |  2 +-
>   BaseTools/Source/C/Makefiles/app.makefile          |  2 +-
>   BaseTools/Source/C/Makefiles/footer.makefile       |  6 +-
>   BaseTools/Source/C/Makefiles/header.makefile       | 59 ++++++++++----------
>   BaseTools/Source/C/VfrCompile/GNUmakefile          | 19 ++++---
>   BaseTools/Source/C/VfrCompile/Pccts/antlr/makefile | 20 +++----
>   BaseTools/Source/C/VfrCompile/Pccts/dlg/makefile   | 31 +++++-----
>   BaseTools/Source/Python/Workspace/DscBuildData.py  |  2 +-
>   9 files changed, 76 insertions(+), 72 deletions(-)
>


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#100956): https://edk2.groups.io/g/devel/message/100956
Mute This Topic: https://groups.io/mt/97022151/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-