aboutsummaryrefslogtreecommitdiff
path: root/contrib/devtools/symbol-check.py
AgeCommit message (Collapse)Author
2021-05-04contrib: use LIEF in PE symbol checksfanquake
2021-05-04contrib: use LIEF in macOS symbol checksfanquake
2021-05-04contrib: use f strings in symbol-check.pyfanquake
2021-03-10build: qt 5.12.10fanquake
remove fix_configure_mac.patch Fixed upstream: https://bugreports.qt.io/browse/QTBUG-67286 remove fix_riscv64_arch.patch Was fixed upstream in 6a39e49a6cdeb28a04a3657bb6a22f848d5dfa9d remove fix_rcc_determinism.patch Fixed upstream in https://bugreports.qt.io/browse/QTBUG-62511 remove freetype_back_compat.patch By the time we ship a release with Qt 5.12, we'll certainly no-longer be supporting Ubuntu 14.04 and Ubuntu 16.04 ships with FreeType 2.6.1, which is new enough that using the symbol is no-longer an issue. The renaming of FT_Get_X11_Font_Format() happened in FreeType 2.6 remove xkb-default.patch This was removed upstream in d5abf545971da717014d316127045fc19edbcd65 Co-authored-by: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com>
2021-03-10build: Add xkbcommon 0.8.4Hennadii Stepanov
Co-authored-by: fanquake <fanquake@gmail.com>
2020-12-28lint: run mypy over contrib/devtoolsfanquake
2020-11-22contrib: Changes to checks for PowerPC64Luke Dashjr
Changes from #14066.
2020-11-22contrib: Parse ELF directly for symbol and security checksWladimir J. van der Laan
Instead of the ever-messier text parsing of the output of the readelf tool (which is clearly meant for human consumption not to be machine parseable), parse the ELF binaries directly. Add a small dependency-less ELF parser specific to the checks. This is slightly more secure, too, because it removes potential ambiguity due to misparsing and changes in the output format of `elfread`. It also allows for stricter and more specific ELF format checks in the future. This removes the build-time dependency for `readelf`. It passes the test-security-check for me locally, though I haven't checked on all platforms.
2020-03-22scripts: add PE dylib checking to symbol-check.pyfanquake
2020-01-04scripts: add MACHO dylib checking to symbol-check.pyfanquake
2019-11-23build: Allow export of environ symbolsWladimir J. van der Laan
This export was introduced in #17270 which added ``` //! Necessary on some platforms extern char** environ; ```
2019-11-22build: Bump minimum versions in symbol checkerWladimir J. van der Laan
Debian 8 (Jessie) has: - g++ version 4.9.2 - libc version 2.19 Ubuntu 16.04.4 (Xenial) has: - g++ version 5.3.1 - libc version 2.23.0 CentOS 7 has: - g++ version 4.8.5 - libc version 2.17 Taking the minimum of these as our target. According to the GNU ABI document this corresponds to: - GCC 4.8.5: GCC_4.8.0 - (glibc) GLIBC_2_17 Co-Authored-By: fanquake <fanquake@gmail.com>
2019-11-22build: Disallow dynamic linking against c++ libraryWladimir J. van der Laan
Ever since statically linking Qt, we've been linking the C++ library statically too (-static-libstdc++). Take this into account in the symbol checker.
2019-11-20build: remove libanl.so.1 from ALLOWED_LIBRARIESfanquake
2019-09-03test/contrib: Fix invalid escapes in regex stringsBen Woosley
Flagged by flake8 v3.6.0, as W605, plus a few others identified incidentally, e.g. 59ffecf66cf4d08c4b431e457b083878d66a3fd6. Note that r"\n" matches to "\n" under re.match/search.
2019-07-17symbol-check: Disallow libX11-*.so.* shared librariesCarl Dong
They should no longer be needed as we build QT without libX11/XLib libraries now.
2019-03-02build: Require python 3.5MarcoFalke
2018-08-25[contrib] Support ARM and RISC-V symbol checkChun Kuan Lee
2018-06-02Add stdin, stdout, stderr to ignored export listChun Kuan Lee
2018-03-28[contrib] fixup symbol-check.py Python3 supportJohn Newbery
2018-03-26Change all python files to use Python3John Newbery
2017-08-28Use sys.exit(...) instead of exit(...): exit(...) should not be used in programspracticalswift
2016-06-28Favour python over python2 as per PR #7723Matthew King
2016-06-26Use portable #! in python scripts (/usr/bin/env)Matthew King
2016-03-29build: python 3 compatibilityWladimir J. van der Laan
Ubuntu 16.04 "xenial xerus" does not come with Python 2.x by default. It is possible to install a python-2.7 package, but this has its own problem: no `python` or `python2` symlink (see #7717). This fixes the following scripts to work with python 3: - `make check` (bctest,py, bitcoin-util-test.py) - `make translate` (extract_strings_qt.py) - `make symbols-check` (symbol-check.py) - `make security-check` (security-check.py) Explicitly call the python commands using $(PYTHON) instead of relying on the interpreter line at the top of the scripts.
2016-01-26release: add _IO_stdin_used to ignored exportsCory Fields
For details see: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=634261#109
2015-11-16devtools: add libraries for bitcoin-qt to symbol checkWladimir J. van der Laan
Forgot to add these. Also add a short description for each required library.
2015-10-22devtools: Add security-check.pyWladimir J. van der Laan
Perform the following ELF security checks: - PIE: Check for position independent executable (PIE), allowing for address space randomization - NX: Check that no sections are writable and executable (including the stack) - RELRO: Check for read-only relocations, binding at startup - Canary: Check for use of stack canary Also add a check to symbol-check.py that checks that only the subset of allowed libraries is imported (to avoid incompatibilities).
2014-12-16Remove references to X11 licenceMichael Ford
2014-08-17devtools: Exclude default exports from symbol-checker scriptWladimir J. van der Laan
See discussion in #4663.
2014-04-30devtools: have symbol check script check for exported symbolsWladimir J. van der Laan
After last commit, our executables should export no symbols anymore. To make sure that this stays the case, verify this in the symbol checker script.
2014-04-25devtools: add script to check symbols from Linux gitian executablesWladimir J. van der Laan
Add a script to check that the (Linux) executables produced by gitian only contain allowed gcc, glibc and libstdc++ version symbols. This makes sure they are still compatible with the minimum supported Linux distribution versions.