Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
0a94b3f
Merge bitcoin/bitcoin#27328: depends: fix osx build with clang 16
fanquake Mar 27, 2023
a11690b
Merge bitcoin/bitcoin#27301: depends: make fontconfig build under cla…
fanquake Mar 27, 2023
671e8e6
Merge bitcoin/bitcoin#27368: refactor: Drop no longer used `CNetMsgMa…
fanquake Mar 30, 2023
5645362
Merge bitcoin/bitcoin#27362: test: remove `GetRNGState` lsan suppression
fanquake Mar 31, 2023
07770b7
Merge bitcoin/bitcoin#26741: doc: FreeBSD DataDirectoryGroupReadable …
fanquake Apr 9, 2023
9b58b2d
Merge bitcoin/bitcoin#27447: depends: Remove `_LIBCPP_DEBUG` from dep…
fanquake Apr 19, 2023
df7be02
Merge bitcoin/bitcoin#27506: test: prevent intermittent failures
fanquake Apr 21, 2023
90d65f2
Merge bitcoin/bitcoin#27508: build: use latest config.{guess,sub} in …
fanquake Apr 23, 2023
712dcaf
Merge bitcoin/bitcoin#27516: test: simplify uint256 (de)serialization…
fanquake Apr 25, 2023
3306f96
Merge bitcoin/bitcoin#25937: test: add coverage for rpc error when tr…
fanquake Apr 27, 2023
f725ed5
Merge bitcoin/bitcoin#26314: test: perturb anchors.dat to test error …
fanquake Apr 27, 2023
deb7de2
Merge bitcoin/bitcoin#26604: test: add coverage for `-bantime`
fanquake May 1, 2023
a4e429c
Merge bitcoin/bitcoin#26953: contrib: add ELF OS ABI check to symbol-…
fanquake May 3, 2023
898dcbd
Merge bitcoin/bitcoin#27559: doc: clarify processing of mempool-msgs …
glozow May 3, 2023
417f71a
Merge bitcoin/bitcoin#27422: test: add coverage to rpc_scantxoutset.py
fanquake May 4, 2023
71c6d7f
Merge bitcoin/bitcoin#26653: test, init: perturb file to ensure failu…
fanquake May 5, 2023
b8ddcd9
Merge bitcoin/bitcoin#27575: Introduce platform-agnostic `ALWAYS_INLI…
fanquake May 9, 2023
45cc44b
Merge bitcoin/bitcoin#27628: build: Fix shared lib linking for darwin…
fanquake May 14, 2023
3239f15
Merge bitcoin/bitcoin#28479: build: use _LIBCPP_ENABLE_DEBUG_MODE ove…
fanquake Sep 16, 2023
37389c7
Merge bitcoin/bitcoin#28781: depends: latest config.guess & config.sub
fanquake Nov 14, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 14 additions & 3 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -57,13 +57,24 @@ else
fi
AC_PROG_CXX

dnl By default, libtool for mingw refuses to link static libs into a dll for
dnl fear of mixing pic/non-pic objects, and import/export complications. Since
dnl we have those under control, re-enable that functionality.
dnl libtool overrides
case $host in
*mingw*)
dnl By default, libtool for mingw refuses to link static libs into a dll for
dnl fear of mixing pic/non-pic objects, and import/export complications. Since
dnl we have those under control, re-enable that functionality.
lt_cv_deplibs_check_method="pass_all"
;;
*darwin*)
dnl Because it prints a verbose warning, lld fails the following check
dnl for "-Wl,-single_module" from libtool.m4:
dnl # If there is a non-empty error log, and "single_module"
dnl # appears in it, assume the flag caused a linker warning
dnl "-single_module" works fine on ld64 and lld, so just bypass the test.
dnl Failure to set this to "yes" causes libtool to use a very broken
dnl link-line for shared libs.
lt_cv_apple_cc_single_mod="yes"
;;
esac

AC_ARG_ENABLE([c++20],
Expand Down
26 changes: 26 additions & 0 deletions contrib/devtools/symbol-check.py
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,25 @@
},
}

ELF_ABIS: Dict[lief.ELF.ARCH, Dict[lief.ENDIANNESS, List[int]]] = {
lief.ELF.ARCH.x86_64: {
lief.ENDIANNESS.LITTLE: [3,2,0],
},
lief.ELF.ARCH.ARM: {
lief.ENDIANNESS.LITTLE: [3,2,0],
},
lief.ELF.ARCH.AARCH64: {
lief.ENDIANNESS.LITTLE: [3,7,0],
},
lief.ELF.ARCH.PPC64: {
lief.ENDIANNESS.LITTLE: [3,10,0],
lief.ENDIANNESS.BIG: [3,2,0],
},
lief.ELF.ARCH.RISCV: {
lief.ENDIANNESS.LITTLE: [4,15,0],
},
}

# Allowed NEEDED libraries
ELF_ALLOWED_LIBRARIES = {
# dashd and dash-qt
Expand Down Expand Up @@ -248,12 +267,19 @@ def check_ELF_interpreter(binary) -> bool:

return binary.concrete.interpreter == expected_interpreter

def check_ELF_ABI(binary) -> bool:
expected_abi = ELF_ABIS[binary.header.machine_type][binary.abstract.header.endianness]
note = binary.concrete.get(lief.ELF.NOTE_TYPES.ABI_TAG)
assert note.details.abi == lief.ELF.NOTE_ABIS.LINUX
return note.details.version == expected_abi

CHECKS = {
lief.EXE_FORMATS.ELF: [
('IMPORTED_SYMBOLS', check_imported_symbols),
('EXPORTED_SYMBOLS', check_exported_symbols),
('LIBRARY_DEPENDENCIES', check_ELF_libraries),
('INTERPRETER_NAME', check_ELF_interpreter),
('ABI', check_ELF_ABI),
],
lief.EXE_FORMATS.MACHO: [
('DYNAMIC_LIBRARIES', check_MACHO_libraries),
Expand Down
Loading
Loading