From e9696262c3d22a68c86badb07f0bca0b6e5c56ad Mon Sep 17 00:00:00 2001 From: Paran Lee Date: Thu, 15 Jul 2021 19:34:11 +0900 Subject: [PATCH 1/3] Fix link typo fix uftrace link. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c150378..a6cc57e 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ foo@bar:cpp-tutorial/stage1$ bazel build --config=clang_config //main:hello-wor ## Test -Test with [uftrace](https://docs.bazel.build/versions/main/install-ubuntu.html) and [valgrind](https://sourceware.org/git/valgrind.git). +Test with [uftrace](https://github.com/namhyung/uftrace) and [valgrind](https://sourceware.org/git/valgrind.git). Install uftrace and valgrind in ubuntu. From bef933543605ebdcb51b7376b36a8a318c57c17d Mon Sep 17 00:00:00 2001 From: Paran Lee Date: Sat, 17 Jul 2021 09:51:15 +0900 Subject: [PATCH 2/3] Fix typo in AUTHORS I'm not in Google Inc. ;) --- AUTHORS | 1 - 1 file changed, 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index dc14fb5..17ab09f 100644 --- a/AUTHORS +++ b/AUTHORS @@ -6,5 +6,4 @@ # Name or Organization # The email address is not required for organizations. -Google Inc. Paran Lee From 8a3f6932c85d3adec62a269dd655da026bcc1263 Mon Sep 17 00:00:00 2001 From: paranlee Date: Mon, 19 Jul 2021 02:36:05 +0900 Subject: [PATCH 3/3] Solve linking error in clang --- .bazelci/presubmit.yml | 90 ++----------------- cpp-tutorial/stage1/.bazelrc | 3 - cpp-tutorial/stage1/main/hello-world.cc | 2 +- .../stage1/toolchain/cc_toolchain_config.bzl | 34 +++++-- cpp-tutorial/stage2/.bazelrc | 2 - .../stage2/toolchain/cc_toolchain_config.bzl | 34 +++++-- cpp-tutorial/stage3/.bazelrc | 3 - .../stage3/toolchain/cc_toolchain_config.bzl | 34 +++++-- 8 files changed, 84 insertions(+), 118 deletions(-) diff --git a/.bazelci/presubmit.yml b/.bazelci/presubmit.yml index 1a15b9e..4c40be3 100644 --- a/.bazelci/presubmit.yml +++ b/.bazelci/presubmit.yml @@ -1,46 +1,8 @@ --- tasks: - android-firebase-linux: - name: "Android Firebase Cloud Messaging" - platform: ubuntu1804 - working_directory: android/firebase-cloud-messaging - build_targets: - - "..." - android-firebase-macos: - name: "Android Firebase Cloud Messaging" - platform: macos - working_directory: android/firebase-cloud-messaging - build_targets: - - "..." - android-firebase-windows: - name: "Android Firebase Cloud Messaging" - platform: windows - working_directory: android/firebase-cloud-messaging - build_targets: - - "..." - android-ndk-linux: - name: "Android NDK" - platform: ubuntu1804 - working_directory: android/ndk - build_targets: - - "//app/src/main:app" - android-ndk-macos: - name: "Android NDK" - platform: macos - working_directory: android/ndk - build_targets: - - "//app/src/main:app" - # NDK project is not building on Windows yet. - # https://github.com/bazelbuild/examples/issues/94 - # android-ndk-windows: - # name: "Android NDK" - # platform: windows - # working_directory: android/ndk - # build_targets: - # - "//app/src/main:app" cpp-stage1-linux: name: "C++ Stage 1" - platform: ubuntu1804 + platform: ubuntu2004 working_directory: cpp-tutorial/stage1 build_targets: - "..." @@ -58,7 +20,7 @@ tasks: - "..." cpp-stage2-linux: name: "C++ Stage 2" - platform: ubuntu1804 + platform: ubuntu2004 working_directory: cpp-tutorial/stage2 build_targets: - "..." @@ -76,7 +38,7 @@ tasks: - "..." cpp-stage3-linux: name: "C++ Stage 3" - platform: ubuntu1804 + platform: ubuntu2004 working_directory: cpp-tutorial/stage3 build_targets: - "..." @@ -92,51 +54,9 @@ tasks: working_directory: cpp-tutorial/stage3 build_targets: - "..." - java-maven-linux: - name: "Maven Java App" - platform: ubuntu1804 - working_directory: java-maven - build_targets: - - "..." - test_targets: - - "..." - java-maven-macos: - name: "Maven Java App" - platform: macos - working_directory: java-maven - build_targets: - - "..." - test_targets: - - "..." - java-maven-windows: - name: "Maven Java App" - platform: windows - working_directory: java-maven - build_targets: - - "..." - test_targets: - - "..." - java-tutorial-linux: - name: "Java Tutorial" - platform: ubuntu1804 - working_directory: java-tutorial - build_targets: - - "//:ProjectRunner" - java-tutorial-macos: - name: "Java Tutorial" - platform: macos - working_directory: java-tutorial - build_targets: - - "//:ProjectRunner" - java-tutorial-windows: - name: "Java Tutorial" - platform: windows - working_directory: java-tutorial - build_targets: - - "//:ProjectRunner" rules-linux: name: "Bazel Rules" - platform: ubuntu1804 + platform: ubuntu2004 working_directory: rules build_targets: - "..." @@ -191,7 +111,7 @@ tasks: # - "..." tutorial-linux: name: "Bazel end-to-end example" - platform: ubuntu1804 + platform: ubuntu2004 working_directory: tutorial build_targets: - "//backend" diff --git a/cpp-tutorial/stage1/.bazelrc b/cpp-tutorial/stage1/.bazelrc index e0f616a..adf3203 100644 --- a/cpp-tutorial/stage1/.bazelrc +++ b/cpp-tutorial/stage1/.bazelrc @@ -10,6 +10,3 @@ build:clang_config --cpu=k8 # build. build:clang_config --host_crosstool_top=@bazel_tools//tools/cpp:toolchain - -# pg option for uftrace -build:clang_config --cxxopt="-pg" diff --git a/cpp-tutorial/stage1/main/hello-world.cc b/cpp-tutorial/stage1/main/hello-world.cc index c674a3a..68ff718 100644 --- a/cpp-tutorial/stage1/main/hello-world.cc +++ b/cpp-tutorial/stage1/main/hello-world.cc @@ -21,7 +21,7 @@ void print_localtime() { int main(int argc, char** argv) { std::string who = "world"; if (argc > 1) { - who = argv[1]; + who = argv[1]; } std::cout << get_greet(who) << std::endl; print_localtime(); diff --git a/cpp-tutorial/stage1/toolchain/cc_toolchain_config.bzl b/cpp-tutorial/stage1/toolchain/cc_toolchain_config.bzl index 47a5802..bdda4ab 100644 --- a/cpp-tutorial/stage1/toolchain/cc_toolchain_config.bzl +++ b/cpp-tutorial/stage1/toolchain/cc_toolchain_config.bzl @@ -9,7 +9,22 @@ load( "tool_path", ) -all_link_actions = [ # NEW +all_compile_actions = [ + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cpp_link_static_library, + ACTION_NAMES.llvm_cov +] + +all_cpp_compile_actions = [ + ACTION_NAMES.cpp_compile, + ACTION_NAMES.linkstamp_compile, + ACTION_NAMES.cpp_header_parsing, + ACTION_NAMES.cpp_module_compile, + ACTION_NAMES.cpp_module_codegen, + ACTION_NAMES.clif_match, +] + +all_link_actions = [ ACTION_NAMES.cpp_link_executable, ACTION_NAMES.cpp_link_dynamic_library, ACTION_NAMES.cpp_link_nodeps_dynamic_library, @@ -23,31 +38,31 @@ def _impl(ctx): ), tool_path( name = "ld", - path = "/usr/bin/ld", + path = "/usr/bin/lld-12", ), tool_path( name = "ar", - path = "/bin/false", + path = "/usr/bin/llvm-ar-12", ), tool_path( name = "cpp", - path = "/bin/false", + path = "/usr/bin/clang++-12", ), tool_path( name = "gcov", - path = "/bin/false", + path = "/usr/bin/llvm-cov-12", ), tool_path( name = "nm", - path = "/bin/false", + path = "/usr/bin/llvm-nm-12", ), tool_path( name = "objdump", - path = "/bin/false", + path = "/usr/bin/llvm-objcopy-12", ), tool_path( name = "strip", - path = "/bin/false", + path = "/usr/bin/llvm-strip-12", ), ] @@ -63,6 +78,9 @@ def _impl(ctx): flag_group( flags = [ "-lstdc++", + "-pg", + "-Og", + "-Wall" ], ), ]), diff --git a/cpp-tutorial/stage2/.bazelrc b/cpp-tutorial/stage2/.bazelrc index e0f616a..b460676 100644 --- a/cpp-tutorial/stage2/.bazelrc +++ b/cpp-tutorial/stage2/.bazelrc @@ -11,5 +11,3 @@ build:clang_config --cpu=k8 build:clang_config --host_crosstool_top=@bazel_tools//tools/cpp:toolchain -# pg option for uftrace -build:clang_config --cxxopt="-pg" diff --git a/cpp-tutorial/stage2/toolchain/cc_toolchain_config.bzl b/cpp-tutorial/stage2/toolchain/cc_toolchain_config.bzl index 47a5802..bdda4ab 100644 --- a/cpp-tutorial/stage2/toolchain/cc_toolchain_config.bzl +++ b/cpp-tutorial/stage2/toolchain/cc_toolchain_config.bzl @@ -9,7 +9,22 @@ load( "tool_path", ) -all_link_actions = [ # NEW +all_compile_actions = [ + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cpp_link_static_library, + ACTION_NAMES.llvm_cov +] + +all_cpp_compile_actions = [ + ACTION_NAMES.cpp_compile, + ACTION_NAMES.linkstamp_compile, + ACTION_NAMES.cpp_header_parsing, + ACTION_NAMES.cpp_module_compile, + ACTION_NAMES.cpp_module_codegen, + ACTION_NAMES.clif_match, +] + +all_link_actions = [ ACTION_NAMES.cpp_link_executable, ACTION_NAMES.cpp_link_dynamic_library, ACTION_NAMES.cpp_link_nodeps_dynamic_library, @@ -23,31 +38,31 @@ def _impl(ctx): ), tool_path( name = "ld", - path = "/usr/bin/ld", + path = "/usr/bin/lld-12", ), tool_path( name = "ar", - path = "/bin/false", + path = "/usr/bin/llvm-ar-12", ), tool_path( name = "cpp", - path = "/bin/false", + path = "/usr/bin/clang++-12", ), tool_path( name = "gcov", - path = "/bin/false", + path = "/usr/bin/llvm-cov-12", ), tool_path( name = "nm", - path = "/bin/false", + path = "/usr/bin/llvm-nm-12", ), tool_path( name = "objdump", - path = "/bin/false", + path = "/usr/bin/llvm-objcopy-12", ), tool_path( name = "strip", - path = "/bin/false", + path = "/usr/bin/llvm-strip-12", ), ] @@ -63,6 +78,9 @@ def _impl(ctx): flag_group( flags = [ "-lstdc++", + "-pg", + "-Og", + "-Wall" ], ), ]), diff --git a/cpp-tutorial/stage3/.bazelrc b/cpp-tutorial/stage3/.bazelrc index e0f616a..adf3203 100644 --- a/cpp-tutorial/stage3/.bazelrc +++ b/cpp-tutorial/stage3/.bazelrc @@ -10,6 +10,3 @@ build:clang_config --cpu=k8 # build. build:clang_config --host_crosstool_top=@bazel_tools//tools/cpp:toolchain - -# pg option for uftrace -build:clang_config --cxxopt="-pg" diff --git a/cpp-tutorial/stage3/toolchain/cc_toolchain_config.bzl b/cpp-tutorial/stage3/toolchain/cc_toolchain_config.bzl index 47a5802..bdda4ab 100644 --- a/cpp-tutorial/stage3/toolchain/cc_toolchain_config.bzl +++ b/cpp-tutorial/stage3/toolchain/cc_toolchain_config.bzl @@ -9,7 +9,22 @@ load( "tool_path", ) -all_link_actions = [ # NEW +all_compile_actions = [ + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cpp_link_static_library, + ACTION_NAMES.llvm_cov +] + +all_cpp_compile_actions = [ + ACTION_NAMES.cpp_compile, + ACTION_NAMES.linkstamp_compile, + ACTION_NAMES.cpp_header_parsing, + ACTION_NAMES.cpp_module_compile, + ACTION_NAMES.cpp_module_codegen, + ACTION_NAMES.clif_match, +] + +all_link_actions = [ ACTION_NAMES.cpp_link_executable, ACTION_NAMES.cpp_link_dynamic_library, ACTION_NAMES.cpp_link_nodeps_dynamic_library, @@ -23,31 +38,31 @@ def _impl(ctx): ), tool_path( name = "ld", - path = "/usr/bin/ld", + path = "/usr/bin/lld-12", ), tool_path( name = "ar", - path = "/bin/false", + path = "/usr/bin/llvm-ar-12", ), tool_path( name = "cpp", - path = "/bin/false", + path = "/usr/bin/clang++-12", ), tool_path( name = "gcov", - path = "/bin/false", + path = "/usr/bin/llvm-cov-12", ), tool_path( name = "nm", - path = "/bin/false", + path = "/usr/bin/llvm-nm-12", ), tool_path( name = "objdump", - path = "/bin/false", + path = "/usr/bin/llvm-objcopy-12", ), tool_path( name = "strip", - path = "/bin/false", + path = "/usr/bin/llvm-strip-12", ), ] @@ -63,6 +78,9 @@ def _impl(ctx): flag_group( flags = [ "-lstdc++", + "-pg", + "-Og", + "-Wall" ], ), ]),