Export of internal Abseil changes
-- 93dd18f415e54697965c56760612b4ff6c9d15d2 by Derek Mauro <dmauro@google.com>: Implement Bazel's --distdir flag avoid a dependency on GitHub being up. Move the Docker container identifiers to a common file. PiperOrigin-RevId: 302045549 -- 7b462d31139e3153462cd20ae63b161ac749e839 by Derek Mauro <dmauro@google.com>: Fix an unused variable warning in optional.h PiperOrigin-RevId: 301810782 -- 6b533ba9170eed065aec69e48ebab3279fcb3e09 by Abseil Team <absl-team@google.com>: Disable ASan and MSan instrumentation for AArch64 stack unwind functions. They read random locations on the stack and might step on sanitizer's redzones. PiperOrigin-RevId: 301674204 GitOrigin-RevId: 93dd18f415e54697965c56760612b4ff6c9d15d2 Change-Id: I2d84d66b054f90b851fb3a968679f112dfe84636
This commit is contained in:
		
							parent
							
								
									2d2a8aea29
								
							
						
					
					
						commit
						092ed9793a
					
				
					 12 changed files with 97 additions and 11 deletions
				
			
		|  | @ -74,6 +74,8 @@ static inline uintptr_t ComputeStackFrameSize(const T* low, | |||
| // checks (the strictness of which is controlled by the boolean parameter
 | ||||
| // "STRICT_UNWINDING") to reduce the chance that a bad pointer is returned.
 | ||||
| template<bool STRICT_UNWINDING, bool WITH_CONTEXT> | ||||
| ABSL_ATTRIBUTE_NO_SANITIZE_ADDRESS  // May read random elements from stack.
 | ||||
| ABSL_ATTRIBUTE_NO_SANITIZE_MEMORY   // May read random elements from stack.
 | ||||
| static void **NextStackFrame(void **old_frame_pointer, const void *uc) { | ||||
|   void **new_frame_pointer = reinterpret_cast<void**>(*old_frame_pointer); | ||||
|   bool check_frame_size = true; | ||||
|  | @ -123,6 +125,8 @@ static void **NextStackFrame(void **old_frame_pointer, const void *uc) { | |||
| } | ||||
| 
 | ||||
| template <bool IS_STACK_FRAMES, bool IS_WITH_CONTEXT> | ||||
| ABSL_ATTRIBUTE_NO_SANITIZE_ADDRESS  // May read random elements from stack.
 | ||||
| ABSL_ATTRIBUTE_NO_SANITIZE_MEMORY   // May read random elements from stack.
 | ||||
| static int UnwindImpl(void** result, int* sizes, int max_depth, int skip_count, | ||||
|                       const void *ucp, int *min_dropped_frames) { | ||||
| #ifdef __GNUC__
 | ||||
|  |  | |||
|  | @ -136,10 +136,10 @@ class optional : private optional_internal::optional_data<T>, | |||
|   constexpr optional(nullopt_t) noexcept {}  // NOLINT(runtime/explicit)
 | ||||
| 
 | ||||
|   // Copy constructor, standard semantics
 | ||||
|   optional(const optional& src) = default; | ||||
|   optional(const optional&) = default; | ||||
| 
 | ||||
|   // Move constructor, standard semantics
 | ||||
|   optional(optional&& src) = default; | ||||
|   optional(optional&&) = default; | ||||
| 
 | ||||
|   // Constructs a non-empty `optional` direct-initialized value of type `T` from
 | ||||
|   // the arguments `std::forward<Args>(args)...`  within the `optional`.
 | ||||
|  |  | |||
|  | @ -20,6 +20,9 @@ if [ -z ${ABSEIL_ROOT:-} ]; then | |||
|   ABSEIL_ROOT="$(realpath $(dirname ${0})/..)" | ||||
| fi | ||||
| 
 | ||||
| source "${ABSEIL_ROOT}/ci/linux_docker_containers.sh" | ||||
| readonly DOCKER_CONTAINER=${LINUX_GCC_LATEST_CONTAINER} | ||||
| 
 | ||||
| time docker run \ | ||||
|     --volume="${ABSEIL_ROOT}:/abseil-cpp:ro" \ | ||||
|     --workdir=/abseil-cpp \ | ||||
|  | @ -28,5 +31,5 @@ time docker run \ | |||
|     --rm \ | ||||
|     -e CFLAGS="-Werror" \ | ||||
|     -e CXXFLAGS="-Werror" \ | ||||
|     gcr.io/google.com/absl-177019/linux_gcc-latest:20200106 \ | ||||
|     ${DOCKER_CONTAINER} \ | ||||
|     /bin/bash CMake/install_test_project/test.sh $@ | ||||
|  |  | |||
|  | @ -36,7 +36,8 @@ if [ -z ${EXCEPTIONS_MODE:-} ]; then | |||
|   EXCEPTIONS_MODE="-fno-exceptions -fexceptions" | ||||
| fi | ||||
| 
 | ||||
| readonly DOCKER_CONTAINER="gcr.io/google.com/absl-177019/linux_clang-latest:20200102" | ||||
| source "${ABSEIL_ROOT}/ci/linux_docker_containers.sh" | ||||
| readonly DOCKER_CONTAINER=${LINUX_CLANG_LATEST_CONTAINER} | ||||
| 
 | ||||
| # USE_BAZEL_CACHE=1 only works on Kokoro. | ||||
| # Without access to the credentials this won't work. | ||||
|  | @ -50,6 +51,14 @@ if [ ${USE_BAZEL_CACHE:-0} -ne 0 ]; then | |||
|   BAZEL_EXTRA_ARGS="--remote_http_cache=https://storage.googleapis.com/absl-bazel-remote-cache/${container_key} --google_credentials=/keystore/73103_absl-bazel-remote-cache ${BAZEL_EXTRA_ARGS:-}" | ||||
| fi | ||||
| 
 | ||||
| # Avoid depending on external sites like GitHub by checking --distdir for | ||||
| # external dependencies first. | ||||
| # https://docs.bazel.build/versions/master/guide.html#distdir | ||||
| if [ -z ${KOKORO_GFILE_DIR:-} && -d "${KOKORO_GFILE_DIR}/distdir" ]; then | ||||
|   DOCKER_EXTRA_ARGS="--volume=${KOKORO_GFILE_DIR}/distdir:/distdir:ro ${DOCKER_EXTRA_ARGS:-}" | ||||
|   BAZEL_EXTRA_ARGS="--distdir=/distdir ${BAZEL_EXTRA_ARGS:-}" | ||||
| fi | ||||
| 
 | ||||
| for std in ${STD}; do | ||||
|   for compilation_mode in ${COMPILATION_MODE}; do | ||||
|     for exceptions_mode in ${EXCEPTIONS_MODE}; do | ||||
|  |  | |||
|  | @ -36,7 +36,8 @@ if [ -z ${EXCEPTIONS_MODE:-} ]; then | |||
|   EXCEPTIONS_MODE="-fno-exceptions -fexceptions" | ||||
| fi | ||||
| 
 | ||||
| readonly DOCKER_CONTAINER="gcr.io/google.com/absl-177019/linux_clang-latest:20200102" | ||||
| source "${ABSEIL_ROOT}/ci/linux_docker_containers.sh" | ||||
| readonly DOCKER_CONTAINER=${LINUX_CLANG_LATEST_CONTAINER} | ||||
| 
 | ||||
| # USE_BAZEL_CACHE=1 only works on Kokoro. | ||||
| # Without access to the credentials this won't work. | ||||
|  | @ -50,6 +51,14 @@ if [ ${USE_BAZEL_CACHE:-0} -ne 0 ]; then | |||
|   BAZEL_EXTRA_ARGS="--remote_http_cache=https://storage.googleapis.com/absl-bazel-remote-cache/${container_key} --google_credentials=/keystore/73103_absl-bazel-remote-cache ${BAZEL_EXTRA_ARGS:-}" | ||||
| fi | ||||
| 
 | ||||
| # Avoid depending on external sites like GitHub by checking --distdir for | ||||
| # external dependencies first. | ||||
| # https://docs.bazel.build/versions/master/guide.html#distdir | ||||
| if [ -z ${KOKORO_GFILE_DIR:-} && -d "${KOKORO_GFILE_DIR}/distdir" ]; then | ||||
|   DOCKER_EXTRA_ARGS="--volume=${KOKORO_GFILE_DIR}/distdir:/distdir:ro ${DOCKER_EXTRA_ARGS:-}" | ||||
|   BAZEL_EXTRA_ARGS="--distdir=/distdir ${BAZEL_EXTRA_ARGS:-}" | ||||
| fi | ||||
| 
 | ||||
| for std in ${STD}; do | ||||
|   for compilation_mode in ${COMPILATION_MODE}; do | ||||
|     for exceptions_mode in ${EXCEPTIONS_MODE}; do | ||||
|  |  | |||
|  | @ -36,7 +36,8 @@ if [ -z ${EXCEPTIONS_MODE:-} ]; then | |||
|   EXCEPTIONS_MODE="-fno-exceptions -fexceptions" | ||||
| fi | ||||
| 
 | ||||
| readonly DOCKER_CONTAINER="gcr.io/google.com/absl-177019/linux_clang-latest:20200102" | ||||
| source "${ABSEIL_ROOT}/ci/linux_docker_containers.sh" | ||||
| readonly DOCKER_CONTAINER=${LINUX_CLANG_LATEST_CONTAINER} | ||||
| 
 | ||||
| # USE_BAZEL_CACHE=1 only works on Kokoro. | ||||
| # Without access to the credentials this won't work. | ||||
|  | @ -50,6 +51,14 @@ if [ ${USE_BAZEL_CACHE:-0} -ne 0 ]; then | |||
|   BAZEL_EXTRA_ARGS="--remote_http_cache=https://storage.googleapis.com/absl-bazel-remote-cache/${container_key} --google_credentials=/keystore/73103_absl-bazel-remote-cache ${BAZEL_EXTRA_ARGS:-}" | ||||
| fi | ||||
| 
 | ||||
| # Avoid depending on external sites like GitHub by checking --distdir for | ||||
| # external dependencies first. | ||||
| # https://docs.bazel.build/versions/master/guide.html#distdir | ||||
| if [ -z ${KOKORO_GFILE_DIR:-} && -d "${KOKORO_GFILE_DIR}/distdir" ]; then | ||||
|   DOCKER_EXTRA_ARGS="--volume=${KOKORO_GFILE_DIR}/distdir:/distdir:ro ${DOCKER_EXTRA_ARGS:-}" | ||||
|   BAZEL_EXTRA_ARGS="--distdir=/distdir ${BAZEL_EXTRA_ARGS:-}" | ||||
| fi | ||||
| 
 | ||||
| for std in ${STD}; do | ||||
|   for compilation_mode in ${COMPILATION_MODE}; do | ||||
|     for exceptions_mode in ${EXCEPTIONS_MODE}; do | ||||
|  |  | |||
|  | @ -36,7 +36,8 @@ if [ -z ${EXCEPTIONS_MODE:-} ]; then | |||
|   EXCEPTIONS_MODE="-fno-exceptions -fexceptions" | ||||
| fi | ||||
| 
 | ||||
| readonly DOCKER_CONTAINER="gcr.io/google.com/absl-177019/linux_clang-latest:20200102" | ||||
| source "${ABSEIL_ROOT}/ci/linux_docker_containers.sh" | ||||
| readonly DOCKER_CONTAINER=${LINUX_CLANG_LATEST_CONTAINER} | ||||
| 
 | ||||
| # USE_BAZEL_CACHE=1 only works on Kokoro. | ||||
| # Without access to the credentials this won't work. | ||||
|  | @ -50,6 +51,14 @@ if [ ${USE_BAZEL_CACHE:-0} -ne 0 ]; then | |||
|   BAZEL_EXTRA_ARGS="--remote_http_cache=https://storage.googleapis.com/absl-bazel-remote-cache/${container_key} --google_credentials=/keystore/73103_absl-bazel-remote-cache ${BAZEL_EXTRA_ARGS:-}" | ||||
| fi | ||||
| 
 | ||||
| # Avoid depending on external sites like GitHub by checking --distdir for | ||||
| # external dependencies first. | ||||
| # https://docs.bazel.build/versions/master/guide.html#distdir | ||||
| if [ -z ${KOKORO_GFILE_DIR:-} && -d "${KOKORO_GFILE_DIR}/distdir" ]; then | ||||
|   DOCKER_EXTRA_ARGS="--volume=${KOKORO_GFILE_DIR}/distdir:/distdir:ro ${DOCKER_EXTRA_ARGS:-}" | ||||
|   BAZEL_EXTRA_ARGS="--distdir=/distdir ${BAZEL_EXTRA_ARGS:-}" | ||||
| fi | ||||
| 
 | ||||
| for std in ${STD}; do | ||||
|   for compilation_mode in ${COMPILATION_MODE}; do | ||||
|     for exceptions_mode in ${EXCEPTIONS_MODE}; do | ||||
|  |  | |||
							
								
								
									
										21
									
								
								ci/linux_docker_containers.sh
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								ci/linux_docker_containers.sh
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,21 @@ | |||
| # Copyright 2019 The Abseil Authors. | ||||
| # | ||||
| # 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 | ||||
| # | ||||
| #    https://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. | ||||
| 
 | ||||
| # The file contains Docker container identifiers currently used by test scripts. | ||||
| # Test scripts should source this file to get the identifiers. | ||||
| 
 | ||||
| readonly LINUX_ALPINE_CONTAINER="gcr.io/google.com/absl-177019/alpine:20191016" | ||||
| readonly LINUX_CLANG_LATEST_CONTAINER="gcr.io/google.com/absl-177019/linux_clang-latest:20200102" | ||||
| readonly LINUX_GCC_LATEST_CONTAINER="gcr.io/google.com/absl-177019/linux_gcc-latest:20200102" | ||||
| readonly LINUX_GCC_49_CONTAINER="gcr.io/google.com/absl-177019/linux_gcc-4.9:20191018" | ||||
|  | @ -36,7 +36,8 @@ if [ -z ${EXCEPTIONS_MODE:-} ]; then | |||
|   EXCEPTIONS_MODE="-fno-exceptions -fexceptions" | ||||
| fi | ||||
| 
 | ||||
| readonly DOCKER_CONTAINER="gcr.io/google.com/absl-177019/linux_gcc-4.9:20191018" | ||||
| source "${ABSEIL_ROOT}/ci/linux_docker_containers.sh" | ||||
| readonly DOCKER_CONTAINER=${LINUX_GCC_49_CONTAINER} | ||||
| 
 | ||||
| # USE_BAZEL_CACHE=1 only works on Kokoro. | ||||
| # Without access to the credentials this won't work. | ||||
|  | @ -50,6 +51,14 @@ if [ ${USE_BAZEL_CACHE:-0} -ne 0 ]; then | |||
|   BAZEL_EXTRA_ARGS="--remote_http_cache=https://storage.googleapis.com/absl-bazel-remote-cache/${container_key} --google_credentials=/keystore/73103_absl-bazel-remote-cache ${BAZEL_EXTRA_ARGS:-}" | ||||
| fi | ||||
| 
 | ||||
| # Avoid depending on external sites like GitHub by checking --distdir for | ||||
| # external dependencies first. | ||||
| # https://docs.bazel.build/versions/master/guide.html#distdir | ||||
| if [ -z ${KOKORO_GFILE_DIR:-} && -d "${KOKORO_GFILE_DIR}/distdir" ]; then | ||||
|   DOCKER_EXTRA_ARGS="--volume=${KOKORO_GFILE_DIR}/distdir:/distdir:ro ${DOCKER_EXTRA_ARGS:-}" | ||||
|   BAZEL_EXTRA_ARGS="--distdir=/distdir ${BAZEL_EXTRA_ARGS:-}" | ||||
| fi | ||||
| 
 | ||||
| for std in ${STD}; do | ||||
|   for compilation_mode in ${COMPILATION_MODE}; do | ||||
|     for exceptions_mode in ${EXCEPTIONS_MODE}; do | ||||
|  |  | |||
|  | @ -36,7 +36,8 @@ if [ -z ${EXCEPTIONS_MODE:-} ]; then | |||
|   EXCEPTIONS_MODE="-fno-exceptions -fexceptions" | ||||
| fi | ||||
| 
 | ||||
| readonly DOCKER_CONTAINER="gcr.io/google.com/absl-177019/linux_gcc-latest:20200106" | ||||
| source "${ABSEIL_ROOT}/ci/linux_docker_containers.sh" | ||||
| readonly DOCKER_CONTAINER=${LINUX_GCC_LATEST_CONTAINER} | ||||
| 
 | ||||
| # USE_BAZEL_CACHE=1 only works on Kokoro. | ||||
| # Without access to the credentials this won't work. | ||||
|  | @ -50,6 +51,14 @@ if [ ${USE_BAZEL_CACHE:-0} -ne 0 ]; then | |||
|   BAZEL_EXTRA_ARGS="--remote_http_cache=https://storage.googleapis.com/absl-bazel-remote-cache/${container_key} --google_credentials=/keystore/73103_absl-bazel-remote-cache ${BAZEL_EXTRA_ARGS:-}" | ||||
| fi | ||||
| 
 | ||||
| # Avoid depending on external sites like GitHub by checking --distdir for | ||||
| # external dependencies first. | ||||
| # https://docs.bazel.build/versions/master/guide.html#distdir | ||||
| if [ -z ${KOKORO_GFILE_DIR:-} && -d "${KOKORO_GFILE_DIR}/distdir" ]; then | ||||
|   DOCKER_EXTRA_ARGS="--volume=${KOKORO_GFILE_DIR}/distdir:/distdir:ro ${DOCKER_EXTRA_ARGS:-}" | ||||
|   BAZEL_EXTRA_ARGS="--distdir=/distdir ${BAZEL_EXTRA_ARGS:-}" | ||||
| fi | ||||
| 
 | ||||
| for std in ${STD}; do | ||||
|   for compilation_mode in ${COMPILATION_MODE}; do | ||||
|     for exceptions_mode in ${EXCEPTIONS_MODE}; do | ||||
|  |  | |||
|  | @ -34,6 +34,9 @@ if [ -z ${ABSL_CMAKE_BUILD_TYPES:-} ]; then | |||
|   ABSL_CMAKE_BUILD_TYPES="Debug Release" | ||||
| fi | ||||
| 
 | ||||
| source "${ABSEIL_ROOT}/ci/linux_docker_containers.sh" | ||||
| readonly DOCKER_CONTAINER=${LINUX_GCC_LATEST_CONTAINER} | ||||
| 
 | ||||
| for std in ${ABSL_CMAKE_CXX_STANDARDS}; do | ||||
|   for compilation_mode in ${ABSL_CMAKE_BUILD_TYPES}; do | ||||
|     echo "--------------------------------------------------------------------" | ||||
|  | @ -47,7 +50,7 @@ for std in ${ABSL_CMAKE_CXX_STANDARDS}; do | |||
|       --rm \ | ||||
|       -e CFLAGS="-Werror" \ | ||||
|       -e CXXFLAGS="-Werror" \ | ||||
|       gcr.io/google.com/absl-177019/linux_gcc-latest:20200106 \ | ||||
|       ${DOCKER_CONTAINER} \ | ||||
|       /bin/bash -c " | ||||
|         cd /buildfs && \ | ||||
|         cmake /abseil-cpp \ | ||||
|  |  | |||
|  | @ -34,7 +34,8 @@ if [ -z ${ABSL_CMAKE_BUILD_TYPES:-} ]; then | |||
|   ABSL_CMAKE_BUILD_TYPES="Debug Release" | ||||
| fi | ||||
| 
 | ||||
| readonly DOCKER_CONTAINER="gcr.io/google.com/absl-177019/alpine:20191016" | ||||
| source "${ABSEIL_ROOT}/ci/linux_docker_containers.sh" | ||||
| readonly DOCKER_CONTAINER=${LINUX_ALPINE_CONTAINER} | ||||
| 
 | ||||
| for std in ${ABSL_CMAKE_CXX_STANDARDS}; do | ||||
|   for compilation_mode in ${ABSL_CMAKE_BUILD_TYPES}; do | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue