mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-01-25 02:33:24 -03:00
Merge bitcoin/bitcoin#24561: guix: use LIEF 0.12.0
3c3bd90220
test: remove lief install from multiprocess job (fanquake)983e0a2058
contrib: use LIEF 0.12.0 for symbol and security checks (fanquake) Pull request description: [LIEF](https://github.com/lief-project/LIEF) `0.12.0` is [now available](https://github.com/lief-project/LIEF/releases/tag/0.12.0), and includes minor changes we have upstreamed to improve support for RISC-V binaries: * https://github.com/lief-project/LIEF/pull/562 * https://github.com/lief-project/LIEF/pull/640 Closes: #23655. Guix Build (x86_64): ```bash 2fc504baf4f550092f05115f8c7c9046ec2988f097b55b33c4c963e02f11cfc3 guix-build-3c3bd9022026/output/aarch64-linux-gnu/SHA256SUMS.part 15b1a8a33f4b750cf8d3e2753e6fe3ca7560aeefa88c1acbaf0be412cbd81cc4 guix-build-3c3bd9022026/output/aarch64-linux-gnu/bitcoin-3c3bd9022026-aarch64-linux-gnu-debug.tar.gz 77a446792dba101afd565f0b4441c5dfe8e08bf9e4c9ea6e862a0df118a55327 guix-build-3c3bd9022026/output/aarch64-linux-gnu/bitcoin-3c3bd9022026-aarch64-linux-gnu.tar.gz dc63f742a3d396ab2b2115f7cea4e90c127267a0c9fc2f1e9af9e052a670cd41 guix-build-3c3bd9022026/output/arm-linux-gnueabihf/SHA256SUMS.part 5214a5c3e532ddfec218354b6512cc4eedd6411a199cc2d4eed7d0ad77873a0e guix-build-3c3bd9022026/output/arm-linux-gnueabihf/bitcoin-3c3bd9022026-arm-linux-gnueabihf-debug.tar.gz fea7b00ca6d8b7bc72c2e4e2c9e9aa94c76f9f463af82cf0bd5a6fc8951a7fe7 guix-build-3c3bd9022026/output/arm-linux-gnueabihf/bitcoin-3c3bd9022026-arm-linux-gnueabihf.tar.gz 200bf59ecaebdcb2a1302160dd47288135b8cead99e202d1a8b7da8d54a872c3 guix-build-3c3bd9022026/output/arm64-apple-darwin/SHA256SUMS.part 51c079c29966a1f76f690f28ed99d767413327422636bbbe9ca499e97954cfd4 guix-build-3c3bd9022026/output/arm64-apple-darwin/bitcoin-3c3bd9022026-arm64-apple-darwin-unsigned.dmg 2e85d002b7e993a90b23363bb01d8dca644fbabd9debb336012834abeddce024 guix-build-3c3bd9022026/output/arm64-apple-darwin/bitcoin-3c3bd9022026-arm64-apple-darwin-unsigned.tar.gz 257e272f6ed867f7634d1bba5860da855e35793646581b37518e25d1fdab48db guix-build-3c3bd9022026/output/arm64-apple-darwin/bitcoin-3c3bd9022026-arm64-apple-darwin.tar.gz a0c755bb31763995e1d2050d5448bb98194c238fdd6b9eff901e429c9fdfa0f6 guix-build-3c3bd9022026/output/dist-archive/bitcoin-3c3bd9022026.tar.gz cf07cfefe010a1cc58ceab5dd5361ca39d770038d73682bd60b52410708c5f35 guix-build-3c3bd9022026/output/powerpc64-linux-gnu/SHA256SUMS.part aa93521bfbf7cf693fe56500faa6ac460bb297e5af2d8cf4e857f7ea0e92eb34 guix-build-3c3bd9022026/output/powerpc64-linux-gnu/bitcoin-3c3bd9022026-powerpc64-linux-gnu-debug.tar.gz 883c2e5fe0d8215dcc0a252cd62c8fd95fc13b31e1bd72d340dfb2e4adadfe01 guix-build-3c3bd9022026/output/powerpc64-linux-gnu/bitcoin-3c3bd9022026-powerpc64-linux-gnu.tar.gz 903666488f620a5710bc1709f52feb60d530aaba6e7e0b200692fa2945e569b8 guix-build-3c3bd9022026/output/powerpc64le-linux-gnu/SHA256SUMS.part 2dd8a3fa924111e839097da8ee12675a265e64aeeae270f1f3e86f9c9b7bd28a guix-build-3c3bd9022026/output/powerpc64le-linux-gnu/bitcoin-3c3bd9022026-powerpc64le-linux-gnu-debug.tar.gz d93a4347ea376e02760c52bb836317fd3f9c8e78ff004d9c141ebce185f3d364 guix-build-3c3bd9022026/output/powerpc64le-linux-gnu/bitcoin-3c3bd9022026-powerpc64le-linux-gnu.tar.gz 7ee00ec4a2cd83f27d619c6983e93baa198d78167a860e8d9f4c4aa670120ab2 guix-build-3c3bd9022026/output/riscv64-linux-gnu/SHA256SUMS.part 9ad79a47c59a67f881ba2ef7a669ffb667b6e0bd13407730574dc7af542fd935 guix-build-3c3bd9022026/output/riscv64-linux-gnu/bitcoin-3c3bd9022026-riscv64-linux-gnu-debug.tar.gz 35462865447683571b006d426e532090c19ef18b9f399b84ebf37795fb3c4eaa guix-build-3c3bd9022026/output/riscv64-linux-gnu/bitcoin-3c3bd9022026-riscv64-linux-gnu.tar.gz a5a3bb0527ded1eea3956208d1dc7289e39786594ac4cbee17f4c28573b7e4fb guix-build-3c3bd9022026/output/x86_64-apple-darwin/SHA256SUMS.part e75435885e97dec09f3d9c51c0bd5987329a485ef26027d6e7b4cafcec20a9ab guix-build-3c3bd9022026/output/x86_64-apple-darwin/bitcoin-3c3bd9022026-x86_64-apple-darwin-unsigned.dmg 438b027186095eed1615898a403b0bdd0a686d95f0617b4065db469c8c4e732c guix-build-3c3bd9022026/output/x86_64-apple-darwin/bitcoin-3c3bd9022026-x86_64-apple-darwin-unsigned.tar.gz 1d33e0661041f00b4f224f231bbb71bda534ad8ad76a7d2b041084911cdd0814 guix-build-3c3bd9022026/output/x86_64-apple-darwin/bitcoin-3c3bd9022026-x86_64-apple-darwin.tar.gz fc9a88c1cdf10570bc2c453c1a643a04b525155f0b98a18c90b8d5fd64fcf630 guix-build-3c3bd9022026/output/x86_64-linux-gnu/SHA256SUMS.part 435896b6a85f46a2f3f0b5f278936e84d0212ef7102787b70f139648373344d3 guix-build-3c3bd9022026/output/x86_64-linux-gnu/bitcoin-3c3bd9022026-x86_64-linux-gnu-debug.tar.gz 02c84c4c74846740b5336e8889194909bb6d638cf731851ddd8af7bbffd1ae9b guix-build-3c3bd9022026/output/x86_64-linux-gnu/bitcoin-3c3bd9022026-x86_64-linux-gnu.tar.gz d4176cc40eaa0769410717b28637d507ddef182c73c60801f333ddd7a56b41f7 guix-build-3c3bd9022026/output/x86_64-w64-mingw32/SHA256SUMS.part 7623a149798beba635c21639975d5cbf2a417c7e8a1bf3583abe1bb20cfa1673 guix-build-3c3bd9022026/output/x86_64-w64-mingw32/bitcoin-3c3bd9022026-win64-debug.zip a1de00c9d4315928e3ce93890009fe2ea8f3f1fa7ca63004d952192012131d20 guix-build-3c3bd9022026/output/x86_64-w64-mingw32/bitcoin-3c3bd9022026-win64-setup-unsigned.exe 82dc001a7f6d2b405b89bd343276db59954f25461d828ddf2e3c42f5ba4fe164 guix-build-3c3bd9022026/output/x86_64-w64-mingw32/bitcoin-3c3bd9022026-win64-unsigned.tar.gz 6fc6f6101672a4cee2696a1517def03b6872435d968d74a47efbb4f8c5198c03 guix-build-3c3bd9022026/output/x86_64-w64-mingw32/bitcoin-3c3bd9022026-win64.zip ``` Guix Build (arm64): ```bash d803406d4a90f9813bff58f01fde109d77dbf5b37b1af68e7a58fb4c3041a390 guix-build-3c3bd9022026/output/arm-linux-gnueabihf/SHA256SUMS.part 25a234f4c0eb0ed280d7c24b65e2bae75d44f4fade1895d9d6d2a3880ed29557 guix-build-3c3bd9022026/output/arm-linux-gnueabihf/bitcoin-3c3bd9022026-arm-linux-gnueabihf-debug.tar.gz 0b6044ea0441536e7b2853cce5a354fff33625db8c18c70023c78a9de5364376 guix-build-3c3bd9022026/output/arm-linux-gnueabihf/bitcoin-3c3bd9022026-arm-linux-gnueabihf.tar.gz c44810505ee8f7800488c0442edc71550a1f989598c702e9a31709b9880ef8ba guix-build-3c3bd9022026/output/arm64-apple-darwin/SHA256SUMS.part ce9a74deac4a20a2ca4d7f8dfc242aea367c2aa55cb3b9de4e11c691ce0755bd guix-build-3c3bd9022026/output/arm64-apple-darwin/bitcoin-3c3bd9022026-arm64-apple-darwin-unsigned.dmg 341efb7b536ad6f75456dd51134e1afa4773708be2103733c48c8fb7a85df8b0 guix-build-3c3bd9022026/output/arm64-apple-darwin/bitcoin-3c3bd9022026-arm64-apple-darwin-unsigned.tar.gz 607151e3423f712ea1bb0e24b7f625290e2decfe4586adf193e3218f62e87f71 guix-build-3c3bd9022026/output/arm64-apple-darwin/bitcoin-3c3bd9022026-arm64-apple-darwin.tar.gz a0c755bb31763995e1d2050d5448bb98194c238fdd6b9eff901e429c9fdfa0f6 guix-build-3c3bd9022026/output/dist-archive/bitcoin-3c3bd9022026.tar.gz 16f1f669f9f7a658ad25d72e628c68fefdc3469857efd06149b0ae063ad07cf2 guix-build-3c3bd9022026/output/powerpc64-linux-gnu/SHA256SUMS.part 8c36e24b12d0f3c200b51c813a6c8e85b826c994af4891a4eed16bb2447f6ae9 guix-build-3c3bd9022026/output/powerpc64-linux-gnu/bitcoin-3c3bd9022026-powerpc64-linux-gnu-debug.tar.gz 89777d8c44ec0ce3e59e74461fb7ed39b544ff1d40ed8399e3a26733fcd938af guix-build-3c3bd9022026/output/powerpc64-linux-gnu/bitcoin-3c3bd9022026-powerpc64-linux-gnu.tar.gz f51279dc699a1b8625f8fd3e13ec1555e81be7696dc0fd88621177fb4c3353d7 guix-build-3c3bd9022026/output/powerpc64le-linux-gnu/SHA256SUMS.part 15c1aad2b67838fbf004cfd4a0926cb2e2f2d0fcee639e5cf17fec9c659be7ad guix-build-3c3bd9022026/output/powerpc64le-linux-gnu/bitcoin-3c3bd9022026-powerpc64le-linux-gnu-debug.tar.gz 102ae28c667fee645fb1541395531742b89886e153ed979639532c8cab50d24b guix-build-3c3bd9022026/output/powerpc64le-linux-gnu/bitcoin-3c3bd9022026-powerpc64le-linux-gnu.tar.gz ccff48fd8b5a26d32d2743f430d812a449ad00ee502fc1f02538598ff7def9db guix-build-3c3bd9022026/output/riscv64-linux-gnu/SHA256SUMS.part d038064cfb33dee85833a58ee5a7c40c94041aa0574da9fa14837b0da7a92b3a guix-build-3c3bd9022026/output/riscv64-linux-gnu/bitcoin-3c3bd9022026-riscv64-linux-gnu-debug.tar.gz 763a0c5c7492d11370a0208f3110fc73f6bac3526b401d1df3eca5cff1037a36 guix-build-3c3bd9022026/output/riscv64-linux-gnu/bitcoin-3c3bd9022026-riscv64-linux-gnu.tar.gz 14aad526acfed07e5781efa8febe37f002c5772090aad0cd98cf7f4cf0cc3177 guix-build-3c3bd9022026/output/x86_64-apple-darwin/SHA256SUMS.part e75435885e97dec09f3d9c51c0bd5987329a485ef26027d6e7b4cafcec20a9ab guix-build-3c3bd9022026/output/x86_64-apple-darwin/bitcoin-3c3bd9022026-x86_64-apple-darwin-unsigned.dmg 742cacbb471968c396da97bbed0332220b721c552b663e931b9bfeb0e4b2f4de guix-build-3c3bd9022026/output/x86_64-apple-darwin/bitcoin-3c3bd9022026-x86_64-apple-darwin-unsigned.tar.gz 1d33e0661041f00b4f224f231bbb71bda534ad8ad76a7d2b041084911cdd0814 guix-build-3c3bd9022026/output/x86_64-apple-darwin/bitcoin-3c3bd9022026-x86_64-apple-darwin.tar.gz b8fdd26c3aef78d13161f6119d755a853470ced695cb40dcc8ff9f0463a533e1 guix-build-3c3bd9022026/output/x86_64-linux-gnu/SHA256SUMS.part 48846704f00e92e1cb6898a13e077da5a314314d6aa694b022d0f2aa68b7128b guix-build-3c3bd9022026/output/x86_64-linux-gnu/bitcoin-3c3bd9022026-x86_64-linux-gnu-debug.tar.gz 52968c1aea392d19989613b4faf0075702c9aa834f74cd3e7a09883e201ae3e4 guix-build-3c3bd9022026/output/x86_64-linux-gnu/bitcoin-3c3bd9022026-x86_64-linux-gnu.tar.gz a4df21e146042c6d78b0724ace37fdb05ce3a4ce8c1ed8274727b031cf53805e guix-build-3c3bd9022026/output/x86_64-w64-mingw32/SHA256SUMS.part 68f05fc5cc5e157805280bcb36fdbc6873db9e7b3afb4ddd992786db722530fc guix-build-3c3bd9022026/output/x86_64-w64-mingw32/bitcoin-3c3bd9022026-win64-debug.zip a1de00c9d4315928e3ce93890009fe2ea8f3f1fa7ca63004d952192012131d20 guix-build-3c3bd9022026/output/x86_64-w64-mingw32/bitcoin-3c3bd9022026-win64-setup-unsigned.exe 82dc001a7f6d2b405b89bd343276db59954f25461d828ddf2e3c42f5ba4fe164 guix-build-3c3bd9022026/output/x86_64-w64-mingw32/bitcoin-3c3bd9022026-win64-unsigned.tar.gz b644760f08a6147bccae8761e33fa13dc7f0cf391240521a81e57b437e272baa guix-build-3c3bd9022026/output/x86_64-w64-mingw32/bitcoin-3c3bd9022026-win64.zip ``` ACKs for top commit: laanwj: Code review ACK3c3bd90220
hebasto: ACK3c3bd90220
, tested that bitcoin/bitcoin#23655 has been resolved. Tree-SHA512: abc95ab68d3973c89d421ee7a5b795f6fa802dc665db47529d5f9aee5b92b8a7b55f9a45c634b9be6e917038e67e785f1809cc189c84be13f089f4e7fa1029f9
This commit is contained in:
commit
bdbabc50ba
4 changed files with 9 additions and 22 deletions
|
@ -15,4 +15,3 @@ export GOAL="install"
|
|||
export BITCOIN_CONFIG="--enable-debug CC='clang -m32' CXX='clang++ -m32' LDFLAGS='--rtlib=compiler-rt -lgcc_s'"
|
||||
export TEST_RUNNER_ENV="BITCOIND=bitcoin-node"
|
||||
export TEST_RUNNER_EXTRA="--nosandbox"
|
||||
export PIP_PACKAGES="lief"
|
||||
|
|
|
@ -12,10 +12,6 @@ from typing import List
|
|||
|
||||
import lief #type:ignore
|
||||
|
||||
# temporary constant, to be replaced with lief.ELF.ARCH.RISCV
|
||||
# https://github.com/lief-project/LIEF/pull/562
|
||||
LIEF_ELF_ARCH_RISCV = lief.ELF.ARCH(243)
|
||||
|
||||
def check_ELF_RELRO(binary) -> bool:
|
||||
'''
|
||||
Check for read-only relocations.
|
||||
|
@ -101,7 +97,6 @@ def check_ELF_separate_code(binary):
|
|||
for segment in binary.segments:
|
||||
if segment.type == lief.ELF.SEGMENT_TYPES.LOAD:
|
||||
for section in segment.sections:
|
||||
assert(section.name not in flags_per_section)
|
||||
flags_per_section[section.name] = segment.flags
|
||||
# Spot-check ELF LOAD program header flags per section
|
||||
# If these sections exist, check them against the expected R/W/E flags
|
||||
|
@ -222,7 +217,7 @@ CHECKS = {
|
|||
lief.ARCHITECTURES.ARM: BASE_ELF,
|
||||
lief.ARCHITECTURES.ARM64: BASE_ELF,
|
||||
lief.ARCHITECTURES.PPC: BASE_ELF,
|
||||
LIEF_ELF_ARCH_RISCV: BASE_ELF,
|
||||
lief.ARCHITECTURES.RISCV: BASE_ELF,
|
||||
},
|
||||
lief.EXE_FORMATS.PE: {
|
||||
lief.ARCHITECTURES.X86: BASE_PE,
|
||||
|
@ -250,12 +245,9 @@ if __name__ == '__main__':
|
|||
continue
|
||||
|
||||
if arch == lief.ARCHITECTURES.NONE:
|
||||
if binary.header.machine_type == LIEF_ELF_ARCH_RISCV:
|
||||
arch = LIEF_ELF_ARCH_RISCV
|
||||
else:
|
||||
print(f'{filename}: unknown architecture')
|
||||
retval = 1
|
||||
continue
|
||||
print(f'{filename}: unknown architecture')
|
||||
retval = 1
|
||||
continue
|
||||
|
||||
failed: List[str] = []
|
||||
for (name, func) in CHECKS[etype][arch]:
|
||||
|
|
|
@ -15,10 +15,6 @@ from typing import List, Dict
|
|||
|
||||
import lief #type:ignore
|
||||
|
||||
# temporary constant, to be replaced with lief.ELF.ARCH.RISCV
|
||||
# https://github.com/lief-project/LIEF/pull/562
|
||||
LIEF_ELF_ARCH_RISCV = lief.ELF.ARCH(243)
|
||||
|
||||
# Debian 9 (Stretch) EOL: 2022. https://wiki.debian.org/DebianReleases#Production_Releases
|
||||
#
|
||||
# - g++ version 6.3.0 (https://packages.debian.org/search?suite=stretch&arch=any&searchon=names&keywords=g%2B%2B)
|
||||
|
@ -44,7 +40,7 @@ MAX_VERSIONS = {
|
|||
lief.ELF.ARCH.ARM: (2,18),
|
||||
lief.ELF.ARCH.AARCH64:(2,18),
|
||||
lief.ELF.ARCH.PPC64: (2,18),
|
||||
LIEF_ELF_ARCH_RISCV: (2,27),
|
||||
lief.ELF.ARCH.RISCV: (2,27),
|
||||
},
|
||||
'LIBATOMIC': (1,0),
|
||||
'V': (0,5,0), # xkb (bitcoin-qt only)
|
||||
|
@ -78,7 +74,7 @@ ELF_INTERPRETER_NAMES: Dict[lief.ELF.ARCH, Dict[lief.ENDIANNESS, str]] = {
|
|||
lief.ENDIANNESS.BIG: "/lib64/ld64.so.1",
|
||||
lief.ENDIANNESS.LITTLE: "/lib64/ld64.so.2",
|
||||
},
|
||||
LIEF_ELF_ARCH_RISCV: {
|
||||
lief.ELF.ARCH.RISCV: {
|
||||
lief.ENDIANNESS.LITTLE: "/lib/ld-linux-riscv64-lp64d.so.1",
|
||||
},
|
||||
}
|
||||
|
@ -200,7 +196,7 @@ def check_exported_symbols(binary) -> bool:
|
|||
if not symbol.exported:
|
||||
continue
|
||||
name = symbol.name
|
||||
if binary.header.machine_type == LIEF_ELF_ARCH_RISCV or name in IGNORE_EXPORTS:
|
||||
if binary.header.machine_type == lief.ELF.ARCH.RISCV or name in IGNORE_EXPORTS:
|
||||
continue
|
||||
print(f'{binary.name}: export of symbol {name} not allowed!')
|
||||
ok = False
|
||||
|
|
|
@ -197,7 +197,7 @@ chain for " target " development."))
|
|||
(define-public lief
|
||||
(package
|
||||
(name "python-lief")
|
||||
(version "0.11.5")
|
||||
(version "0.12.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -207,7 +207,7 @@ chain for " target " development."))
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0qahjfg1n0x76ps2mbyljvws1l3qhkqvmxqbahps4qgywl2hbdkj"))))
|
||||
"026jchj56q25v6gc0754dj9cj5hz5zaza8ij93y5ga94w20kzm9q"))))
|
||||
(build-system python-build-system)
|
||||
(native-inputs
|
||||
`(("cmake" ,cmake)))
|
||||
|
|
Loading…
Add table
Reference in a new issue