Skip to content

Commit

Permalink
Automated rollback of commit 2aeaeba.
Browse files Browse the repository at this point in the history
*** Reason for rollback ***

Breaks C++ on gcc 4.8.4 (specifically, TensorFlow: #4474)

Fixes #4474

*** Original change description ***

When linking mostly-static Linux binaries, link libstdc++.a explicitly.

This allows libstdc++ to be statically linked, which is normally only
possible when invoking GCC as `g++` with the `-static-libstdc++` flag.

Fixes #2840

See envoyproxy/envoy#415 for additional
background and context.

cc @htuch (for Envoy) and @calpeyser @hlopko (who I talked to earlier about this)...

***

RELNOTES: None.
PiperOrigin-RevId: 182519445
  • Loading branch information
dslomov authored and iirina committed Jan 26, 2018
1 parent 0c45013 commit bd551d6
Show file tree
Hide file tree
Showing 6 changed files with 1 addition and 126 deletions.
7 changes: 0 additions & 7 deletions src/test/shell/bazel/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -364,13 +364,6 @@ sh_test(
data = [":test-deps"],
)

sh_test(
name = "cc_static_binary_test",
size = "medium",
srcs = ["cc_static_binary_test.sh"],
data = [":test-deps"],
)

sh_test(
name = "bazel_sandboxing_test",
size = "large",
Expand Down
89 changes: 0 additions & 89 deletions src/test/shell/bazel/cc_static_binary_test.sh

This file was deleted.

4 changes: 0 additions & 4 deletions src/test/shell/testenv.sh
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,6 @@ function is_darwin() {
[[ "${PLATFORM}" =~ darwin ]]
}

function is_linux() {
[[ "${PLATFORM}" =~ linux ]]
}

function _log_base() {
prefix=$1
shift
Expand Down
1 change: 0 additions & 1 deletion tools/cpp/CROSSTOOL.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,6 @@ toolchain {
%{opt_content}
}
linking_mode_flags { mode: DYNAMIC }
%{link_content}

%{coverage}

Expand Down
25 changes: 1 addition & 24 deletions tools/cpp/unix_cc_configure.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -65,29 +65,6 @@ def _build_crosstool(d, prefix=" "):
return "\n".join(lines)


def _build_link_content():
# `-static-libstdc++` is only supported when invoking GCC as `g++`, and
# `-lstdc++` forces dynamic linking of libstdc++. To get desired
# mostly-static behavior, invoke the link by explicitly naming a static
# library archive.
#
# https://github.com/bazelbuild/bazel/issues/2840
return """
linking_mode_flags {
mode: DYNAMIC
linker_flag: "-lstdc++"
}
linking_mode_flags {
mode: FULLY_STATIC
linker_flag: "-lstdc++"
}
linking_mode_flags {
mode: MOSTLY_STATIC
linker_flag: "-l:libstdc++.a"
}
"""


def _build_tool_path(d):
"""Build the list of %-escaped tool_path for the CROSSTOOL file."""
lines = []
Expand Down Expand Up @@ -242,6 +219,7 @@ def _crosstool_content(repository_ctx, cc, cpu_value, darwin):
"-std=c++0x",
] + _escaped_cplus_include_paths(repository_ctx),
"linker_flag": [
"-lstdc++",
"-lm", # Some systems expect -lm in addition to -lstdc++
# Anticipated future default.
] + (
Expand Down Expand Up @@ -450,7 +428,6 @@ def configure_unix_toolchain(repository_ctx, cpu_value, overriden_tools):
_build_tool_path(tool_paths),
"%{opt_content}": _build_crosstool(opt_content, " "),
"%{dbg_content}": _build_crosstool(dbg_content, " "),
"%{link_content}": _build_link_content(),
"%{cxx_builtin_include_directory}": "",
"%{coverage}": _coverage_feature(darwin),
"%{msvc_env_tmp}": "",
Expand Down
1 change: 0 additions & 1 deletion tools/cpp/windows_cc_configure.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -315,7 +315,6 @@ def configure_windows_toolchain(repository_ctx):
"%{msys_x64_mingw_content}": _get_escaped_windows_msys_crosstool_content(repository_ctx, use_mingw = True),
"%{opt_content}": "",
"%{dbg_content}": "",
"%{link_content}": "",
"%{cxx_builtin_include_directory}": "",
"%{coverage}": "",
})
Expand Down

0 comments on commit bd551d6

Please sign in to comment.