Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build libzim on bionic #597

Merged
merged 6 commits into from
Apr 27, 2023
Merged

Build libzim on bionic #597

merged 6 commits into from
Apr 27, 2023

Conversation

mgautierfr
Copy link
Member

Fix #595

@mgautierfr
Copy link
Member Author

@rgaudin
Copy link
Member

rgaudin commented Apr 19, 2023

@mgautierfr perfect 👍

@rgaudin
Copy link
Member

rgaudin commented Apr 20, 2023

For some reason there is no aarch64-bionic. Or the name hasn't been fixed

@kelson42
Copy link
Contributor

@mgautierfr @rgaudin All good here? Ready to merge?

@rgaudin
Copy link
Member

rgaudin commented Apr 26, 2023

Testing the aarch64-bionic from yesterday now

@rgaudin
Copy link
Member

rgaudin commented Apr 26, 2023

Unfortunately, this is not working. It looks like it's due to the gcc version used in the cross-compilation toolchain (10.3.0).

ldd -r -v libzim_linux-aarch64-bionic-2023-04-25/lib/aarch64-linux-gnu/libzim.so.8.1.0
libzim_linux-aarch64-bionic-2023-04-25/lib/aarch64-linux-gnu/libzim.so.8.1.0: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.26' not found (required by libzim_linux-aarch64-bionic-2023-04-25/lib/aarch64-linux-gnu/libzim.so.8.1.0)
	libpthread.so.0 => /lib64/libpthread.so.0 (0x0000005502b19000)
	librt.so.1 => /lib64/librt.so.1 (0x0000005502b4e000)
	libstdc++.so.6 => /lib64/libstdc++.so.6 (0x0000005502b6f000)
	libm.so.6 => /lib64/libm.so.6 (0x0000005502d13000)
	libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x0000005502dd4000)
	libc.so.6 => /lib64/libc.so.6 (0x0000005502e05000)
	/lib/ld-linux-aarch64.so.1 (0x0000005500000000)
undefined symbol: _ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev, version GLIBCXX_3.4.26	(libzim_linux-aarch64-bionic-2023-04-25/lib/aarch64-linux-gnu/libzim.so.8.1.0)
undefined symbol: _ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev, version GLIBCXX_3.4.26	(libzim_linux-aarch64-bionic-2023-04-25/lib/aarch64-linux-gnu/libzim.so.8.1.0)

	Version information:
	libzim_linux-aarch64-bionic-2023-04-25/lib/aarch64-linux-gnu/libzim.so.8.1.0:
		libgcc_s.so.1 (GCC_3.0) => /lib64/libgcc_s.so.1
		librt.so.1 (GLIBC_2.17) => /lib64/librt.so.1
		libpthread.so.0 (GLIBC_2.17) => /lib64/libpthread.so.0
		libm.so.6 (GLIBC_2.17) => /lib64/libm.so.6
		libc.so.6 (GLIBC_2.17) => /lib64/libc.so.6
		libstdc++.so.6 (GLIBCXX_3.4.20) => /lib64/libstdc++.so.6
		libstdc++.so.6 (CXXABI_1.3.8) => /lib64/libstdc++.so.6
		libstdc++.so.6 (GLIBCXX_3.4.18) => /lib64/libstdc++.so.6
		libstdc++.so.6 (GLIBCXX_3.4.9) => /lib64/libstdc++.so.6
		libstdc++.so.6 (CXXABI_1.3.9) => /lib64/libstdc++.so.6
		libstdc++.so.6 (CXXABI_1.3.11) => /lib64/libstdc++.so.6
		libstdc++.so.6 (GLIBCXX_3.4.26) => not found
		libstdc++.so.6 (CXXABI_1.3) => /lib64/libstdc++.so.6
		libstdc++.so.6 (GLIBCXX_3.4.11) => /lib64/libstdc++.so.6
		libstdc++.so.6 (GLIBCXX_3.4.14) => /lib64/libstdc++.so.6
		libstdc++.so.6 (CXXABI_1.3.5) => /lib64/libstdc++.so.6
		libstdc++.so.6 (CXXABI_1.3.3) => /lib64/libstdc++.so.6
		libstdc++.so.6 (GLIBCXX_3.4.22) => /lib64/libstdc++.so.6
		libstdc++.so.6 (GLIBCXX_3.4.15) => /lib64/libstdc++.so.6
		libstdc++.so.6 (GLIBCXX_3.4.19) => /lib64/libstdc++.so.6
		libstdc++.so.6 (GLIBCXX_3.4.21) => /lib64/libstdc++.so.6
		libstdc++.so.6 (GLIBCXX_3.4) => /lib64/libstdc++.so.6
	/lib64/libpthread.so.0:
		ld-linux-aarch64.so.1 (GLIBC_2.17) => /lib/ld-linux-aarch64.so.1
		ld-linux-aarch64.so.1 (GLIBC_PRIVATE) => /lib/ld-linux-aarch64.so.1
		libc.so.6 (GLIBC_PRIVATE) => /lib64/libc.so.6
		libc.so.6 (GLIBC_2.17) => /lib64/libc.so.6
	/lib64/librt.so.1:
		ld-linux-aarch64.so.1 (GLIBC_2.17) => /lib/ld-linux-aarch64.so.1
		ld-linux-aarch64.so.1 (GLIBC_PRIVATE) => /lib/ld-linux-aarch64.so.1
		libpthread.so.0 (GLIBC_PRIVATE) => /lib64/libpthread.so.0
		libpthread.so.0 (GLIBC_2.17) => /lib64/libpthread.so.0
		libc.so.6 (GLIBC_PRIVATE) => /lib64/libc.so.6
		libc.so.6 (GLIBC_2.17) => /lib64/libc.so.6
	/lib64/libstdc++.so.6:
		libm.so.6 (GLIBC_2.17) => /lib64/libm.so.6
		ld-linux-aarch64.so.1 (GLIBC_2.17) => /lib/ld-linux-aarch64.so.1
		libgcc_s.so.1 (GCC_4.2.0) => /lib64/libgcc_s.so.1
		libgcc_s.so.1 (GCC_3.3) => /lib64/libgcc_s.so.1
		libgcc_s.so.1 (GCC_3.0) => /lib64/libgcc_s.so.1
		libc.so.6 (GLIBC_2.18) => /lib64/libc.so.6
		libc.so.6 (GLIBC_2.17) => /lib64/libc.so.6
	/lib64/libm.so.6:
		ld-linux-aarch64.so.1 (GLIBC_2.17) => /lib/ld-linux-aarch64.so.1
		libc.so.6 (GLIBC_PRIVATE) => /lib64/libc.so.6
		libc.so.6 (GLIBC_2.17) => /lib64/libc.so.6
	/lib64/libgcc_s.so.1:
		libc.so.6 (GLIBC_2.17) => /lib64/libc.so.6
	/lib64/libc.so.6:
		ld-linux-aarch64.so.1 (GLIBC_2.17) => /lib/ld-linux-aarch64.so.1
		ld-linux-aarch64.so.1 (GLIBC_PRIVATE) => /lib/ld-linux-aarch64.so.1
# strings /usr/lib64/libstdc++.so.6.0.25 |grep GLIBCXX
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_3.4.20
GLIBCXX_3.4.21
GLIBCXX_3.4.22
GLIBCXX_3.4.23
GLIBCXX_3.4.24
GLIBCXX_3.4.25
GLIBCXX_DEBUG_MESSAGE_LENGTH
GA+GLIBCXX_ASSERTIONS

@mgautierfr could an earlier version of gcc work? I see a few other options but I don't know what kiwix-build needs and looking at this table it seems like we'd need to go back as far as GCC 8.1.0 to match GLIBCXX_3.4.25.

That would require us to use 6.3.0. Is that usable/realistic?

@mgautierfr
Copy link
Member Author

That would require us to use 6.3.0. Is that usable/realistic?

Should be good. I will test.

Reuse the bionic builder (we should have remove in pr #588) and
remove all deps not needed to build libzim.
Update CI to build on native_mixed bionic and build the bionic docker
image.
@mgautierfr
Copy link
Member Author

@rgaudin can you try the new aarch64-bionic ?

@rgaudin
Copy link
Member

rgaudin commented Apr 26, 2023

@rgaudin can you try the new aarch64-bionic ?

Works fine 👍

@mgautierfr mgautierfr marked this pull request as ready for review April 26, 2023 14:42
@kelson42
Copy link
Contributor

@rgaudin So you approve and we can merge?

Copy link
Member

@rgaudin rgaudin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

@rgaudin
Copy link
Member

rgaudin commented Apr 27, 2023

The Draft to non-draft didn't trigger a notification 🤷‍♂️

@kelson42 kelson42 merged commit 826ce17 into main Apr 27, 2023
@kelson42 kelson42 deleted the libzim_bionic branch April 27, 2023 12:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Build Linux libzim on Bionic
3 participants