|
41 | 41 | #
|
42 | 42 | MAX_VERSIONS = {
|
43 | 43 | 'GCC': (4,8,0),
|
44 |
| -'GLIBC': (2,17), |
45 |
| -'LIBATOMIC': (1,0) |
| 44 | +'GLIBC': { |
| 45 | + pixie.EM_386: (2,17), |
| 46 | + pixie.EM_X86_64: (2,17), |
| 47 | + pixie.EM_ARM: (2,17), |
| 48 | + pixie.EM_AARCH64:(2,17), |
| 49 | + pixie.EM_PPC64: (2,17), |
| 50 | + pixie.EM_RISCV: (2,27), |
| 51 | +}, |
| 52 | +'LIBATOMIC': (1,0), |
| 53 | +'V': (0,5,0), # xkb (bitcoin-qt only) |
46 | 54 | }
|
47 | 55 | # See here for a description of _IO_stdin_used:
|
48 | 56 | # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=634261#109
|
|
78 | 86 | 'libfreetype.so.6', # font parsing
|
79 | 87 | 'libdl.so.2' # programming interface to dynamic linker
|
80 | 88 | }
|
81 |
| -ARCH_MIN_GLIBC_VER = { |
82 |
| -pixie.EM_386: (2,1), |
83 |
| -pixie.EM_X86_64: (2,2,5), |
84 |
| -pixie.EM_ARM: (2,4), |
85 |
| -pixie.EM_AARCH64:(2,17), |
86 |
| -pixie.EM_PPC64: (2,17), |
87 |
| -pixie.EM_RISCV: (2,27) |
88 |
| -} |
89 | 89 |
|
90 | 90 | MACHO_ALLOWED_LIBRARIES = {
|
91 | 91 | # bitcoind and bitcoin-qt
|
@@ -161,7 +161,10 @@ def check_version(max_versions, version, arch) -> bool:
|
161 | 161 | ver = tuple([int(x) for x in ver.split('.')])
|
162 | 162 | if not lib in max_versions:
|
163 | 163 | return False
|
164 |
| - return ver <= max_versions[lib] or lib == 'GLIBC' and ver <= ARCH_MIN_GLIBC_VER[arch] |
| 164 | + if isinstance(max_versions[lib], tuple): |
| 165 | + return ver <= max_versions[lib] |
| 166 | + else: |
| 167 | + return ver <= max_versions[lib][arch] |
165 | 168 |
|
166 | 169 | def check_imported_symbols(filename) -> bool:
|
167 | 170 | elf = pixie.load(filename)
|
|
0 commit comments