Comments (8)
Upstream issue opened at tttapa/docker-arm-cross-toolchain#5
from kiwix-build.
I'm looking to recompile the toolchain from https://github.com/tttapa/docker-arm-cross-toolchain
The current version already have CT_GLIBC_V_2_27=y
I haven't found a option for GLIBCXX
.
Maybe we should open a issue upstream, it seems to me a bug that we need glibc3.4 as it is a deliberate choice to have glibc2.27 (see tttapa/docker-arm-cross-toolchain#2 (comment))
from kiwix-build.
I've seen that comment and the release notes which mentions 2.27 as well.
GLIBCXX
comes with stdlib which comes with GCC.
This toolchain properly uses glibc 2.27 but how those GLIBCXX symbols are brought in is beyond my understanding.
from kiwix-build.
A objdump -p libzim.so.8.2.1
on the aarch64_bionic release shows me:
Références de version:
requis par libgcc_s.so.1:
0x0b792650 0x00 25 GCC_3.0
requis par librt.so.1:
0x06969197 0x00 14 GLIBC_2.17
requis par libpthread.so.0:
0x06969197 0x00 12 GLIBC_2.17
requis par libm.so.6:
0x06969197 0x00 04 GLIBC_2.17
requis par libc.so.6:
0x06969197 0x00 03 GLIBC_2.17
requis par libstdc++.so.6:
0x0297f870 0x00 24 GLIBCXX_3.4.20
0x0bafd178 0x00 23 CXXABI_1.3.8
0x0297f868 0x00 22 GLIBCXX_3.4.18
0x0bafd173 0x00 21 CXXABI_1.3.3
0x0bafd179 0x00 20 CXXABI_1.3.9
0x0afd17f1 0x00 19 CXXABI_1.3.11
0x0297f879 0x00 18 GLIBCXX_3.4.29
0x0297f876 0x00 17 GLIBCXX_3.4.26
0x02297f89 0x00 16 GLIBCXX_3.4.9
0x056bafd3 0x00 15 CXXABI_1.3
0x0297f861 0x00 13 GLIBCXX_3.4.11
0x0297f864 0x00 11 GLIBCXX_3.4.14
0x0bafd175 0x00 10 CXXABI_1.3.5
0x0297f872 0x00 09 GLIBCXX_3.4.22
0x0297f871 0x00 08 GLIBCXX_3.4.21
0x0afd17f3 0x00 07 CXXABI_1.3.13
0x0297f865 0x00 06 GLIBCXX_3.4.15
0x0297f869 0x00 05 GLIBCXX_3.4.19
0x08922974 0x00 02 GLIBCXX_3.4
So we properly set GLIBC
to 2.17
The problem is GLIBCXX
Can you share me your working libzim (rebuild with previous toolchain) ?
from kiwix-build.
http://tmp.kiwix.org/ci/libzim_linux-aarch64-bionic-2023-08-01.tar.gz
from kiwix-build.
You working libzim shows:
libzim.so.8.2.1: format de fichier elf64-little
En-tête de programme:
LOAD off 0x0000000000000000 vaddr 0x0000000000000000 paddr 0x0000000000000000 align 2**16
filesz 0x000000000129c79d memsz 0x000000000129c79d flags r-x
LOAD off 0x000000000129cff0 vaddr 0x00000000012acff0 paddr 0x00000000012acff0 align 2**16
filesz 0x0000000000039026 memsz 0x000000000003bb58 flags rw-
DYNAMIC off 0x00000000012bf4a8 vaddr 0x00000000012cf4a8 paddr 0x00000000012cf4a8 align 2**3
filesz 0x0000000000000240 memsz 0x0000000000000240 flags rw-
TLS off 0x000000000129cff0 vaddr 0x00000000012acff0 paddr 0x00000000012acff0 align 2**4
filesz 0x0000000000000004 memsz 0x0000000000000048 flags r--
EH_FRAME off 0x00000000011ab370 vaddr 0x00000000011ab370 paddr 0x00000000011ab370 align 2**2
filesz 0x00000000000213ec memsz 0x00000000000213ec flags r--
STACK off 0x0000000000000000 vaddr 0x0000000000000000 paddr 0x0000000000000000 align 2**4
filesz 0x0000000000000000 memsz 0x0000000000000000 flags rw-
RELRO off 0x000000000129cff0 vaddr 0x00000000012acff0 paddr 0x00000000012acff0 align 2**0
filesz 0x0000000000024010 memsz 0x0000000000024010 flags r--
Section dynamique:
NEEDED libpthread.so.0
NEEDED librt.so.1
NEEDED libstdc++.so.6
NEEDED libm.so.6
NEEDED libgcc_s.so.1
NEEDED libc.so.6
SONAME libzim.so.8
INIT 0x0000000000249dd0
FINI 0x00000000006a4a98
INIT_ARRAY 0x00000000012ad000
INIT_ARRAYSZ 0x0000000000000128
FINI_ARRAY 0x00000000012ad128
FINI_ARRAYSZ 0x0000000000000008
HASH 0x00000000000001c8
STRTAB 0x000000000008f078
SYMTAB 0x0000000000022448
STRSZ 0x00000000001200ed
SYMENT 0x0000000000000018
PLTGOT 0x00000000012d0fe8
PLTRELSZ 0x000000000003e268
PLTREL 0x0000000000000007
JMPREL 0x000000000020bb68
0x6ffffef6 0x00000000002734c0
0x6ffffef7 0x00000000012d0fe0
RELA 0x00000000001b8420
RELASZ 0x0000000000053748
RELAENT 0x0000000000000018
VERNEED 0x00000000001b8270
VERNEEDNUM 0x0000000000000006
VERSYM 0x00000000001af166
RELACOUNT 0x0000000000001a93
Références de version:
requis par libgcc_s.so.1:
0x0b792650 0x00 22 GCC_3.0
0x0b792654 0x00 18 GCC_3.4
requis par librt.so.1:
0x06969197 0x00 14 GLIBC_2.17
requis par libpthread.so.0:
0x06969197 0x00 12 GLIBC_2.17
requis par libm.so.6:
0x06969197 0x00 05 GLIBC_2.17
requis par libc.so.6:
0x06969197 0x00 03 GLIBC_2.17
requis par libstdc++.so.6:
0x0297f870 0x00 21 GLIBCXX_3.4.20
0x0bafd178 0x00 20 CXXABI_1.3.8
0x0297f868 0x00 19 GLIBCXX_3.4.18
0x02297f89 0x00 17 GLIBCXX_3.4.9
0x0bafd179 0x00 16 CXXABI_1.3.9
0x056bafd3 0x00 15 CXXABI_1.3
0x0297f861 0x00 13 GLIBCXX_3.4.11
0x0297f864 0x00 11 GLIBCXX_3.4.14
0x0bafd175 0x00 10 CXXABI_1.3.5
0x0bafd173 0x00 09 CXXABI_1.3.3
0x0297f872 0x00 08 GLIBCXX_3.4.22
0x0297f865 0x00 07 GLIBCXX_3.4.15
0x0297f869 0x00 06 GLIBCXX_3.4.19
0x0297f871 0x00 04 GLIBCXX_3.4.21
0x08922974 0x00 02 GLIBCXX_3.4
So we have mostly the same version of GLIBCXX.
Do you have more information of how auditwheel checks symbols and what is expected ?
from kiwix-build.
From this line : https://github.com/pypa/auditwheel/blob/ebd4bc0de49394adcad557532eb19fe6598cd886/src/auditwheel/policy/manylinux-policy.json#L286
It seems we many linux 2_28 accept GLIBCXX up to 3.4.24 on aarch64.
Broken libzim has GLIBCXX 3.4.26 and 3.4.29
from kiwix-build.
Faulty symbols are:
_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev@GLIBCXX_3.4.26
_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev@GLIBCXX_3.4.26
_ZSt28__throw_bad_array_new_lengthv@GLIBCXX_3.4.29
from kiwix-build.
Related Issues (20)
- Fix win32 cross-compilation when wine is installed on the system. HOT 2
- Libzim releases include the full libicu data HOT 4
- Release native_static on macos fails to trigger workflow. HOT 5
- Last publication of kiwix-tools seems to not work on raspberryPi HOT 6
- Instruction to use kiwix-build seems wrong in the `README.md` HOT 1
- Build libzim & libkiwix for Android with debug symbol HOT 2
- Failed to build zim-tools on ubuntu22.04 (wsl) HOT 3
- Use libxapian 1.4.23 HOT 7
- Fix double publications of release archives
- Incorrect docker trigger on macOS HOT 2
- Update ICU to a more recent version. HOT 2
- Why compiling libkiwix for iOS/macOS does embeds the libzim? HOT 7
- Use latest/future version of aria2c HOT 2
- Fix cross_compilation environment setting.
- Last version of aria2 1.37.0 doesn't compile on bionic. HOT 2
- CoreKiwix.xcframework not usable with iOS Simulator HOT 5
- Wrap XCFramework into a swift package, for Apple (iOS, macOS) distribution HOT 3
- Explicit dependence names for macOS HOT 3
- post checksums for AppImage HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from kiwix-build.