aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar dslomov <dslomov@google.com>2018-01-19 05:05:06 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2018-01-19 05:07:07 -0800
commitf0bec36864f10370cbbda4caa8beac2e0c5ee45b (patch)
treefbbd5c89facc7338ebe5fc44da3c423dea7d475b /src
parent8896d2e211c57453359566c4520615c1c1f75b66 (diff)
Automated rollback of commit 2aeaeba66857c561dd6d63c79a213f1cabc3650d.
*** Reason for rollback *** Breaks C++ on gcc 4.8.4 (specifically, TensorFlow: https://github.com/bazelbuild/bazel/issues/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 https://github.com/bazelbuild/bazel/issues/2840 See https://github.com/envoyproxy/envoy/issues/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
Diffstat (limited to 'src')
-rw-r--r--src/test/shell/bazel/BUILD7
-rwxr-xr-xsrc/test/shell/bazel/cc_static_binary_test.sh89
-rwxr-xr-xsrc/test/shell/testenv.sh4
3 files changed, 0 insertions, 100 deletions
diff --git a/src/test/shell/bazel/BUILD b/src/test/shell/bazel/BUILD
index d39cf7d77d..222628af47 100644
--- a/src/test/shell/bazel/BUILD
+++ b/src/test/shell/bazel/BUILD
@@ -368,13 +368,6 @@ sh_test(
)
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",
srcs = ["bazel_sandboxing_test.sh"],
diff --git a/src/test/shell/bazel/cc_static_binary_test.sh b/src/test/shell/bazel/cc_static_binary_test.sh
deleted file mode 100755
index c120ecb3d0..0000000000
--- a/src/test/shell/bazel/cc_static_binary_test.sh
+++ /dev/null
@@ -1,89 +0,0 @@
-#!/bin/bash
-#
-# Copyright 2017 The Bazel Authors. All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-# Tests for Bazel's static linking of C++ binaries.
-
-CURRENT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
-source "${CURRENT_DIR}/../integration_test_setup.sh" \
- || { echo "integration_test_setup.sh not found!" >&2; exit 1; }
-
-if ! is_linux; then
- echo "Tests for cc_binary static linking currently only run in Linux (this platform is ${PLATFORM})" >&2
- exit 0
-fi
-
-function set_up() {
- mkdir -p cpp/static
- cat > cpp/static/main.cc <<EOF
-#include <iostream>
-int main() {
- std::cout << "hello world!\n";
- return 0;
-}
-EOF
-}
-
-function test_linux_somewhat_static_cc_binary() {
- cat > cpp/static/BUILD <<EOF
-cc_binary(
- name = "somewhat-static",
- srcs = ["main.cc"],
- linkstatic = 1,
-)
-EOF
- assert_build //cpp/static:somewhat-static
-}
-
-function test_linux_mostly_static_cc_binary() {
- cat > cpp/static/BUILD <<EOF
-cc_binary(
- name = "mostly-static",
- srcs = ["main.cc"],
- linkstatic = 1,
- linkopts = [
- "-static-libstdc++",
- "-static-libgcc",
- ],
-)
-EOF
- assert_build //cpp/static:mostly-static
- LDD_STDOUT=$(ldd bazel-bin/cpp/static/mostly-static)
- if [[ "${LDD_STDOUT}" =~ "libstdc++" ]]; then
- log_fatal "A mostly-static binary shouldn't dynamically link libstdc++"
- fi
-}
-
-function test_linux_fully_static_cc_binary() {
- cat > cpp/static/BUILD <<EOF
-cc_binary(
- name = "fully-static",
- srcs = ["main.cc"],
- linkstatic = 1,
- linkopts = [
- "-static",
- "-static-libstdc++",
- "-static-libgcc",
- ],
-)
-EOF
- assert_build //cpp/static:fully-static
- LDD_STDOUT=$(ldd bazel-bin/cpp/static/fully-static || true)
- if [[ ! "${LDD_STDOUT}" =~ "not a dynamic executable" ]]; then
- log_fatal "Expected a fully-static binary"
- fi
-}
-
-run_suite "static cc_binary"
diff --git a/src/test/shell/testenv.sh b/src/test/shell/testenv.sh
index e0bca651c3..e095d4dfae 100755
--- a/src/test/shell/testenv.sh
+++ b/src/test/shell/testenv.sh
@@ -30,10 +30,6 @@ function is_darwin() {
[[ "${PLATFORM}" =~ darwin ]]
}
-function is_linux() {
- [[ "${PLATFORM}" =~ linux ]]
-}
-
function _log_base() {
prefix=$1
shift