diff options
author | Jeremy Andrews <athenian200@outlook.com> | 2023-11-05 20:04:55 -0600 |
---|---|---|
committer | Jeremy Andrews <athenian200@outlook.com> | 2023-11-05 20:54:31 -0600 |
commit | 6e0ec4b5bc6fc670bbe7914ce69e428995680263 (patch) | |
tree | fbf7d247ae9d45b1e678862d86ff730256f24b26 /build | |
parent | ab5126023260fba2eaf336a7d292dae9313d70db (diff) | |
download | uxp-6e0ec4b5bc6fc670bbe7914ce69e428995680263.tar.gz |
Issue #2373 - Remove all remaining traces of CHECK_STDCXX.
As far as I can tell, all this code is unused in our platform. GCC older than
7 didn't have the macro _GLIBC_RELEASE. As far as I can tell, using newer GCC
means you don't have to check for incompatible symbol versions in the build
system, not even if you are compiling with clang against GCC's libc.
Diffstat (limited to 'build')
-rw-r--r-- | build/clang-plugin/Makefile.in | 7 | ||||
-rw-r--r-- | build/templates.mozbuild | 18 | ||||
-rw-r--r-- | build/unix/moz.build | 3 | ||||
-rw-r--r-- | build/unix/mozconfig.stdcxx | 15 | ||||
-rw-r--r-- | build/unix/mozconfig.tsan | 2 | ||||
-rw-r--r-- | build/unix/stdc++compat/Makefile.in | 7 | ||||
-rw-r--r-- | build/unix/stdc++compat/moz.build | 23 | ||||
-rw-r--r-- | build/unix/stdc++compat/stdc++compat.cpp | 78 |
8 files changed, 0 insertions, 153 deletions
diff --git a/build/clang-plugin/Makefile.in b/build/clang-plugin/Makefile.in index ff1e39d1b7..f8bdeca4cd 100644 --- a/build/clang-plugin/Makefile.in +++ b/build/clang-plugin/Makefile.in @@ -33,10 +33,3 @@ endif # correctly. Note that the binary produced here is a host tool and doesn't need # to be distributed. MACOSX_DEPLOYMENT_TARGET := - -# Temporarily relax the requirements for libstdc++ symbol versions on static -# analysis plugin in order to use a recent clang by accepting libstdc++ from -# gcc 4.4.0 (GLIBCXX_3.4.11). -ifdef CHECK_STDCXX -CHECK_STDCXX = $(call CHECK_SYMBOLS,$(1),GLIBCXX,libstdc++,v[1] > 3 || (v[1] == 3 && v[2] == 4 && v[3] > 11)) -endif diff --git a/build/templates.mozbuild b/build/templates.mozbuild index f059820d0d..1392a6655b 100644 --- a/build/templates.mozbuild +++ b/build/templates.mozbuild @@ -75,26 +75,10 @@ def Framework(name): @template -def HostStdCppCompat(): - '''Template for libstdc++ compatibility for host binaries.''' - - if CONFIG['MOZ_LIBSTDCXX_HOST_VERSION']: - HOST_USE_LIBS += ['host_stdc++compat'] - - -@template def HostProgram(name, c_only=False): '''Template for build tools executables.''' HOST_PROGRAM = name - # With context-based templates, this won't be needed anymore, and will - # work better than relying on the caller setting it, but at the moment, - # this is the best we have. And it doesn't matter /that/ much, so there's - # really only one place using this, where it does matter to avoid the - # extra dependency (because it creates a circular one). - if not c_only: - HostStdCppCompat() - @template def HostSimplePrograms(names, ext='.cpp'): @@ -106,8 +90,6 @@ def HostSimplePrograms(names, ext='.cpp'): HOST_SOURCES += ['%s%s' % (name.replace('host_', ''), ext) for name in names] - HostStdCppCompat() - @template def HostLibrary(name): diff --git a/build/unix/moz.build b/build/unix/moz.build index cd455b7a4d..84c7045a4a 100644 --- a/build/unix/moz.build +++ b/build/unix/moz.build @@ -3,9 +3,6 @@ # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. -if CONFIG['MOZ_LIBSTDCXX_TARGET_VERSION'] or CONFIG['MOZ_LIBSTDCXX_HOST_VERSION']: - DIRS += ['stdc++compat'] - if CONFIG['USE_ELF_HACK']: DIRS += ['elfhack'] diff --git a/build/unix/mozconfig.stdcxx b/build/unix/mozconfig.stdcxx deleted file mode 100644 index 787e9b4439..0000000000 --- a/build/unix/mozconfig.stdcxx +++ /dev/null @@ -1,15 +0,0 @@ -# Avoid dependency on libstdc++ 4.7 -ac_add_options --enable-stdcxx-compat - -TOOLTOOL_DIR=${TOOLTOOL_DIR:-$topsrcdir} - -if [ -f "$TOOLTOOL_DIR/clang/lib/libstdc++.so" ]; then - LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$TOOLTOOL_DIR/clang/lib -elif [ -f "$TOOLTOOL_DIR/gcc/lib/libstdc++.so" ]; then - # We put both 32-bits and 64-bits library path in LD_LIBRARY_PATH: ld.so - # will prefer the files in the 32-bits path when loading 32-bits executables, - # and the files in the 64-bits path when loading 64-bits executables. - LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$TOOLTOOL_DIR/gcc/lib64:$TOOLTOOL_DIR/gcc/lib -fi - -mk_add_options "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH" diff --git a/build/unix/mozconfig.tsan b/build/unix/mozconfig.tsan index f78c1071f1..b8eb266ebb 100644 --- a/build/unix/mozconfig.tsan +++ b/build/unix/mozconfig.tsan @@ -30,5 +30,3 @@ ac_add_options --enable-pie ac_add_options --disable-install-strip # -gline-tables-only results in significantly smaller binaries. ac_add_options --enable-debug-symbols="-gline-tables-only" - -. "$topsrcdir/build/unix/mozconfig.stdcxx" diff --git a/build/unix/stdc++compat/Makefile.in b/build/unix/stdc++compat/Makefile.in deleted file mode 100644 index 054c1c023e..0000000000 --- a/build/unix/stdc++compat/Makefile.in +++ /dev/null @@ -1,7 +0,0 @@ -# This Source Code Form is subject to the terms of the Mozilla Public -# License, v. 2.0. If a copy of the MPL was not distributed with this file, -# You can obtain one at http://mozilla.org/MPL/2.0/. - -ENABLE_CLANG_PLUGIN := - -include $(topsrcdir)/config/rules.mk diff --git a/build/unix/stdc++compat/moz.build b/build/unix/stdc++compat/moz.build deleted file mode 100644 index 12bd8644b0..0000000000 --- a/build/unix/stdc++compat/moz.build +++ /dev/null @@ -1,23 +0,0 @@ -# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*- -# This Source Code Form is subject to the terms of the Mozilla Public -# License, v. 2.0. If a copy of the MPL was not distributed with this -# file, You can obtain one at http://mozilla.org/MPL/2.0/. - -if CONFIG['MOZ_LIBSTDCXX_TARGET_VERSION']: - Library('stdc++compat') - SOURCES += ['stdc++compat.cpp'] - -if CONFIG['MOZ_LIBSTDCXX_HOST_VERSION']: - HostLibrary('host_stdc++compat') - HOST_SOURCES += [ - 'stdc++compat.cpp', - ] - -FORCE_STATIC_LIB = True - -NO_PGO = True - -DISABLE_STL_WRAPPING = True - -DEFINES['MOZ_LIBSTDCXX_VERSION'] = CONFIG['MOZ_LIBSTDCXX_TARGET_VERSION'] -HOST_DEFINES['MOZ_LIBSTDCXX_VERSION'] = CONFIG['MOZ_LIBSTDCXX_HOST_VERSION'] diff --git a/build/unix/stdc++compat/stdc++compat.cpp b/build/unix/stdc++compat/stdc++compat.cpp deleted file mode 100644 index 95a7a9afef..0000000000 --- a/build/unix/stdc++compat/stdc++compat.cpp +++ /dev/null @@ -1,78 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -#include <ostream> -#include <istream> -#include <string> -#include <stdarg.h> -#include <stdio.h> -#include <mozilla/Assertions.h> - -/* GLIBCXX_3.4.8 is from gcc 4.1.1 (111691) - GLIBCXX_3.4.9 is from gcc 4.2.0 (111690) - GLIBCXX_3.4.10 is from gcc 4.3.0 (126287) - GLIBCXX_3.4.11 is from gcc 4.4.0 (133006) - GLIBCXX_3.4.12 is from gcc 4.4.1 (147138) - GLIBCXX_3.4.13 is from gcc 4.4.2 (151127) - GLIBCXX_3.4.14 is from gcc 4.5.0 (151126) - GLIBCXX_3.4.15 is from gcc 4.6.0 (160071) - GLIBCXX_3.4.16 is from gcc 4.6.1 (172240) - GLIBCXX_3.4.17 is from gcc 4.7.0 (174383) - GLIBCXX_3.4.18 is from gcc 4.8.0 (190787) - GLIBCXX_3.4.19 is from gcc 4.8.1 (199309) - GLIBCXX_3.4.20 is from gcc 4.9.0 (199307) - GLIBCXX_3.4.21 is from gcc 5.0 (210290) - -This file adds the necessary compatibility tricks to avoid symbols with -version GLIBCXX_3.4.16 and bigger, keeping binary compatibility with -libstdc++ 4.6.1. - -*/ - -#define GLIBCXX_VERSION(a, b, c) (((a) << 16) | ((b) << 8) | (c)) - -#if MOZ_LIBSTDCXX_VERSION >= GLIBCXX_VERSION(3, 4, 20) -namespace std { - - /* We shouldn't be throwing exceptions at all, but it sadly turns out - we call STL (inline) functions that do. */ - void __throw_out_of_range_fmt(char const* fmt, ...) - { - va_list ap; - char buf[1024]; // That should be big enough. - - va_start(ap, fmt); - vsnprintf(buf, sizeof(buf), fmt, ap); - buf[sizeof(buf) - 1] = 0; - va_end(ap); - - __throw_range_error(buf); - } - -} -#endif - -#if MOZ_LIBSTDCXX_VERSION >= GLIBCXX_VERSION(3, 4, 20) -/* Technically, this symbol is not in GLIBCXX_3.4.20, but in CXXABI_1.3.8, - but that's equivalent, version-wise. Those calls are added by the compiler - itself on `new Class[n]` calls. */ -extern "C" void -__cxa_throw_bad_array_new_length() -{ - MOZ_CRASH(); -} -#endif - -#if MOZ_LIBSTDCXX_VERSION >= GLIBCXX_VERSION(3, 4, 21) -/* While we generally don't build with exceptions, we have some host tools - * that do use them. libstdc++ from GCC 5.0 added exception constructors with - * char const* argument. Older versions only have a constructor with - * std::string. */ -namespace std { - runtime_error::runtime_error(char const* s) - : runtime_error(std::string(s)) - { - } -} -#endif |