Thanks to visit codestin.com
Credit goes to github.com

Skip to content

'strip' binary included in linuxdeploy bundle fails when binaries contain section `.relr.dyn' [0x13] #311

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

Open
speachy opened this issue Apr 2, 2025 · 4 comments

Comments

@speachy
Copy link

speachy commented Apr 2, 2025

linuxdeploy version 1-alpha (git commit ID c28054b), GitHub actions build 307 built on 2025-04-01 01:43:45 UTC
[...]
ERROR: Strip call failed: /tmp/.mount_linuxdCNeGkO/usr/bin/strip: /home/pizza/devel/rockbox/build-rbutil/AppImage-RockboxUtility/usr/lib/libFLAC.so.12: unknown type [0x13] section `.relr.dyn'
/tmp/.mount_linuxdCNeGkO/usr/bin/strip: Unable to recognise the format of the input file `/home/pizza/devel/rockbox/build-rbutil/AppImage-RockboxUtility/usr/lib/libFLAC.so.12'
[...]

I am attempting to run this on Fedora 41; the binaries are built with gcc 14.2, binutils 2.43.1, and glibc 2.40, which is fairly recent but I note that support for section 0x13 was added in binutils 2.38, released more than three years ago (Feburary 2022).

...So if linuxdeploy used the system 'strip' binary instead of the bundled one, this error would have not occurred.

Is it possible to update the bundled strip binary (and other binutils bits) to 2.38 or newer?

@TheAssassin
Copy link
Member

Is there a specific reason you're building on such a recent system with linuxdeploy? Your binary won't be compatible with any other distro.

That said, you can just strip everything ahead of time, then use NO_STRIP=1. Alternatively, you can unpack the AppImage and rm the bundled strip binary.

@speachy
Copy link
Author

speachy commented Apr 4, 2025

I'm building it on this recent system because it's what I have in front of me and I'm flushing out the release flow. :)

But more importantly, this will be a problem for "stable" build systems in the very near future.

Thanks for the NO_STRIP tip, I'll use that as a workaround to make sure there are no other issues before I go through the process of figuring out how old of a builder I can get away with..

@TheAssassin
Copy link
Member

I'm open to introducing an environment variable to make it configurable or building a more recent, known stable version of strip.

Please test your application on other distros, too, to see whether the stripped binaries work there, too.

@MartinVonReichenberg
Copy link

MartinVonReichenberg commented May 3, 2025

Confirming the same issue:
./linuxdeploy-plugin-qt-x86_64.AppImage --appdir AppDir/ [Koi-0.5.1]

Click to See the ERROR LOG
linuxdeploy-plugin-qt version 1-alpha (git commit ID ce5291e), GitHub actions build 210 built on 2025-02-13 21:28:51 UTC
Using qmake: /usr/bin/qmake 

Using Qt version:  6.9.0  ( 6 ) 

Found Qt modules:  
Extra Qt modules: svg 

QT_INSTALL_LIBS: /usr/lib64 
Prepending QT_INSTALL_LIBS path to $LD_LIBRARY_PATH, new $LD_LIBRARY_PATH: /usr/lib64: 
Prepending QT_INSTALL_BINS and QT_INSTALL_LIBEXECS paths to $PATH, new $PATH: /usr/lib64/qt6/bin:/usr/lib64/qt6/libexec:/home/martin/.local/bin:/home/martin/bin:/usr/lib64/ccache:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin 

-- Deploying module: svg -- 
Deploying svg icon engine 
Deploying shared library /usr/lib64/qt6/plugins/iconengines/libqsvgicon.so (destination: AppDir/usr/plugins/iconengines/)
Deploying dependencies for ELF file /usr/lib64/qt6/plugins/iconengines/libqsvgicon.so 
Deploying shared library /usr/lib64/libQt6Svg.so.6
Deploying shared library /usr/lib64/libQt6Gui.so.6
Deploying shared library /usr/lib64/libQt6Core.so.6
Skipping deployment of blacklisted library /usr/lib64/libstdc++.so.6 
Skipping deployment of blacklisted library /usr/lib64/libc.so.6 
Skipping deployment of blacklisted library /usr/lib64/libz.so.1 
Skipping deployment of blacklisted library /usr/lib64/libm.so.6 
Skipping deployment of blacklisted library /usr/lib64/libEGL.so.1 
Skipping deployment of blacklisted library /usr/lib64/libfontconfig.so.1 
Skipping deployment of blacklisted library /usr/lib64/libX11.so.6 
Deploying shared library /usr/lib64/libglib-2.0.so.0
Deploying shared library /usr/lib64/libQt6DBus.so.6
Deploying shared library /usr/lib64/libxkbcommon.so.0
Skipping deployment of blacklisted library /usr/lib64/libGLX.so.0 
Skipping deployment of blacklisted library /usr/lib64/libOpenGL.so.0 
Deploying shared library /usr/lib64/libpng16.so.16
Skipping deployment of blacklisted library /usr/lib64/libharfbuzz.so.0 
Skipping deployment of blacklisted library /usr/lib64/libfreetype.so.6 
Skipping deployment of blacklisted library /usr/lib64/libgcc_s.so.1 
Deploying shared library /usr/lib64/libicui18n.so.76
Deploying shared library /usr/lib64/libicuuc.so.76
Deploying shared library /usr/lib64/libzstd.so.1
Deploying shared library /usr/lib64/libsystemd.so.0
Deploying shared library /usr/lib64/libdouble-conversion.so.3
Deploying shared library /usr/lib64/libb2.so.1
Deploying shared library /usr/lib64/libpcre2-16.so.0
Deploying shared library /usr/lib64/libcrypto.so.3
Skipping deployment of blacklisted library /usr/lib64/libGLdispatch.so.0 
Deploying shared library /usr/lib64/libxml2.so.2
Skipping deployment of blacklisted library /usr/lib64/libxcb.so.1 
Deploying shared library /usr/lib64/libpcre2-8.so.0
Deploying shared library /usr/lib64/libdbus-1.so.3
Deploying shared library /usr/lib64/libXext.so.6
Deploying shared library /usr/lib64/libgraphite2.so.3
Deploying shared library /usr/lib64/libbz2.so.1
Deploying shared library /usr/lib64/libbrotlidec.so.1
Deploying shared library /usr/lib64/libicudata.so.76
Deploying shared library /usr/lib64/libcap.so.2
Deploying shared library /usr/lib64/libgomp.so.1
Deploying shared library /usr/lib64/liblzma.so.5
Deploying shared library /usr/lib64/libXau.so.6
Deploying shared library /usr/lib64/libbrotlicommon.so.1

-- Deploying translations -- 
Qt translations directory: /usr/share/qt6/translations 

-- Executing deferred operations -- 
Copying file /usr/lib64/libQt6Core.so.6 to AppDir/usr/lib/libQt6Core.so.6 
Copying file /usr/lib64/libQt6DBus.so.6 to AppDir/usr/lib/libQt6DBus.so.6 
Copying file /usr/lib64/libQt6Gui.so.6 to AppDir/usr/lib/libQt6Gui.so.6 
Copying file /usr/lib64/libQt6Svg.so.6 to AppDir/usr/lib/libQt6Svg.so.6 
Copying file /usr/lib64/libXau.so.6 to AppDir/usr/lib/libXau.so.6 
Copying file /usr/lib64/libXext.so.6 to AppDir/usr/lib/libXext.so.6 
Copying file /usr/lib64/libb2.so.1 to AppDir/usr/lib/libb2.so.1 
Copying file /usr/lib64/libbrotlicommon.so.1 to AppDir/usr/lib/libbrotlicommon.so.1 
Copying file /usr/lib64/libbrotlidec.so.1 to AppDir/usr/lib/libbrotlidec.so.1 
Copying file /usr/lib64/libbz2.so.1 to AppDir/usr/lib/libbz2.so.1 
Copying file /usr/lib64/libcap.so.2 to AppDir/usr/lib/libcap.so.2 
Copying file /usr/lib64/libcrypto.so.3 to AppDir/usr/lib/libcrypto.so.3 
Copying file /usr/lib64/libdbus-1.so.3 to AppDir/usr/lib/libdbus-1.so.3 
Copying file /usr/lib64/libdouble-conversion.so.3 to AppDir/usr/lib/libdouble-conversion.so.3 
Copying file /usr/lib64/libglib-2.0.so.0 to AppDir/usr/lib/libglib-2.0.so.0 
Copying file /usr/lib64/libgomp.so.1 to AppDir/usr/lib/libgomp.so.1 
Copying file /usr/lib64/libgraphite2.so.3 to AppDir/usr/lib/libgraphite2.so.3 
Copying file /usr/lib64/libicudata.so.76 to AppDir/usr/lib/libicudata.so.76 
Copying file /usr/lib64/libicui18n.so.76 to AppDir/usr/lib/libicui18n.so.76 
Copying file /usr/lib64/libicuuc.so.76 to AppDir/usr/lib/libicuuc.so.76 
Copying file /usr/lib64/liblzma.so.5 to AppDir/usr/lib/liblzma.so.5 
Copying file /usr/lib64/libpcre2-16.so.0 to AppDir/usr/lib/libpcre2-16.so.0 
Copying file /usr/lib64/libpcre2-8.so.0 to AppDir/usr/lib/libpcre2-8.so.0 
Copying file /usr/lib64/libpng16.so.16 to AppDir/usr/lib/libpng16.so.16 
Copying file /usr/lib64/libsystemd.so.0 to AppDir/usr/lib/libsystemd.so.0 
Copying file /usr/lib64/libxkbcommon.so.0 to AppDir/usr/lib/libxkbcommon.so.0 
Copying file /usr/lib64/libxml2.so.2 to AppDir/usr/lib/libxml2.so.2 
Copying file /usr/lib64/libzstd.so.1 to AppDir/usr/lib/libzstd.so.1 
Copying file /usr/lib64/qt6/plugins/iconengines/libqsvgicon.so to AppDir/usr/plugins/iconengines/libqsvgicon.so 
Calling strip on library AppDir/usr/lib/libQt6Core.so.6 
ERROR: Strip call failed: /tmp/.mount_linuxdKkFPkf/usr/bin/strip: AppDir/usr/lib/libQt6Core.so.6: unknown type [0x13] section `.relr.dyn'
/tmp/.mount_linuxdKkFPkf/usr/bin/strip: Unable to recognise the format of the input file `AppDir/usr/lib/libQt6Core.so.6'
 
Calling strip on library AppDir/usr/lib/libQt6DBus.so.6 
ERROR: Strip call failed: /tmp/.mount_linuxdKkFPkf/usr/bin/strip: AppDir/usr/lib/libQt6DBus.so.6: unknown type [0x13] section `.relr.dyn'
/tmp/.mount_linuxdKkFPkf/usr/bin/strip: Unable to recognise the format of the input file `AppDir/usr/lib/libQt6DBus.so.6'
 
Calling strip on library AppDir/usr/lib/libQt6Gui.so.6 
ERROR: Strip call failed: /tmp/.mount_linuxdKkFPkf/usr/bin/strip: AppDir/usr/lib/libQt6Gui.so.6: unknown type [0x13] section `.relr.dyn'
/tmp/.mount_linuxdKkFPkf/usr/bin/strip: Unable to recognise the format of the input file `AppDir/usr/lib/libQt6Gui.so.6'
 
Calling strip on library AppDir/usr/lib/libQt6Svg.so.6 
ERROR: Strip call failed: /tmp/.mount_linuxdKkFPkf/usr/bin/strip: AppDir/usr/lib/libQt6Svg.so.6: unknown type [0x13] section `.relr.dyn'
/tmp/.mount_linuxdKkFPkf/usr/bin/strip: Unable to recognise the format of the input file `AppDir/usr/lib/libQt6Svg.so.6'
 
Calling strip on library AppDir/usr/lib/libXau.so.6 
ERROR: Strip call failed: /tmp/.mount_linuxdKkFPkf/usr/bin/strip: AppDir/usr/lib/libXau.so.6: unknown type [0x13] section `.relr.dyn'
/tmp/.mount_linuxdKkFPkf/usr/bin/strip: Unable to recognise the format of the input file `AppDir/usr/lib/libXau.so.6'
 
Calling strip on library AppDir/usr/lib/libXext.so.6 
ERROR: Strip call failed: /tmp/.mount_linuxdKkFPkf/usr/bin/strip: AppDir/usr/lib/libXext.so.6: unknown type [0x13] section `.relr.dyn'
/tmp/.mount_linuxdKkFPkf/usr/bin/strip: Unable to recognise the format of the input file `AppDir/usr/lib/libXext.so.6'
 
Calling strip on library AppDir/usr/lib/libb2.so.1 
ERROR: Strip call failed: /tmp/.mount_linuxdKkFPkf/usr/bin/strip: AppDir/usr/lib/libb2.so.1: unknown type [0x13] section `.relr.dyn'
/tmp/.mount_linuxdKkFPkf/usr/bin/strip: Unable to recognise the format of the input file `AppDir/usr/lib/libb2.so.1'
 
Calling strip on library AppDir/usr/lib/libbrotlicommon.so.1 
ERROR: Strip call failed: /tmp/.mount_linuxdKkFPkf/usr/bin/strip: AppDir/usr/lib/libbrotlicommon.so.1: unknown type [0x13] section `.relr.dyn'
/tmp/.mount_linuxdKkFPkf/usr/bin/strip: Unable to recognise the format of the input file `AppDir/usr/lib/libbrotlicommon.so.1'
 
Calling strip on library AppDir/usr/lib/libbrotlidec.so.1 
ERROR: Strip call failed: /tmp/.mount_linuxdKkFPkf/usr/bin/strip: AppDir/usr/lib/libbrotlidec.so.1: unknown type [0x13] section `.relr.dyn'
/tmp/.mount_linuxdKkFPkf/usr/bin/strip: Unable to recognise the format of the input file `AppDir/usr/lib/libbrotlidec.so.1'
 
Calling strip on library AppDir/usr/lib/libbz2.so.1 
ERROR: Strip call failed: /tmp/.mount_linuxdKkFPkf/usr/bin/strip: AppDir/usr/lib/libbz2.so.1: unknown type [0x13] section `.relr.dyn'
/tmp/.mount_linuxdKkFPkf/usr/bin/strip: Unable to recognise the format of the input file `AppDir/usr/lib/libbz2.so.1'
 
Calling strip on library AppDir/usr/lib/libcap.so.2 
ERROR: Strip call failed: /tmp/.mount_linuxdKkFPkf/usr/bin/strip: AppDir/usr/lib/libcap.so.2: unknown type [0x13] section `.relr.dyn'
/tmp/.mount_linuxdKkFPkf/usr/bin/strip: Unable to recognise the format of the input file `AppDir/usr/lib/libcap.so.2'
 
Calling strip on library AppDir/usr/lib/libcrypto.so.3 
ERROR: Strip call failed: /tmp/.mount_linuxdKkFPkf/usr/bin/strip: AppDir/usr/lib/libcrypto.so.3: unknown type [0x13] section `.relr.dyn'
/tmp/.mount_linuxdKkFPkf/usr/bin/strip: Unable to recognise the format of the input file `AppDir/usr/lib/libcrypto.so.3'
 
Calling strip on library AppDir/usr/lib/libdbus-1.so.3 
ERROR: Strip call failed: /tmp/.mount_linuxdKkFPkf/usr/bin/strip: AppDir/usr/lib/libdbus-1.so.3: unknown type [0x13] section `.relr.dyn'
/tmp/.mount_linuxdKkFPkf/usr/bin/strip: Unable to recognise the format of the input file `AppDir/usr/lib/libdbus-1.so.3'
 
Calling strip on library AppDir/usr/lib/libdouble-conversion.so.3 
ERROR: Strip call failed: /tmp/.mount_linuxdKkFPkf/usr/bin/strip: AppDir/usr/lib/libdouble-conversion.so.3: unknown type [0x13] section `.relr.dyn'
/tmp/.mount_linuxdKkFPkf/usr/bin/strip: Unable to recognise the format of the input file `AppDir/usr/lib/libdouble-conversion.so.3'
 
Calling strip on library AppDir/usr/lib/libglib-2.0.so.0 
ERROR: Strip call failed: /tmp/.mount_linuxdKkFPkf/usr/bin/strip: AppDir/usr/lib/libglib-2.0.so.0: unknown type [0x13] section `.relr.dyn'
/tmp/.mount_linuxdKkFPkf/usr/bin/strip: Unable to recognise the format of the input file `AppDir/usr/lib/libglib-2.0.so.0'
 
Calling strip on library AppDir/usr/lib/libgomp.so.1 
Calling strip on library AppDir/usr/lib/libgraphite2.so.3 
ERROR: Strip call failed: /tmp/.mount_linuxdKkFPkf/usr/bin/strip: AppDir/usr/lib/libgraphite2.so.3: unknown type [0x13] section `.relr.dyn'
/tmp/.mount_linuxdKkFPkf/usr/bin/strip: Unable to recognise the format of the input file `AppDir/usr/lib/libgraphite2.so.3'
 
Calling strip on library AppDir/usr/lib/libicudata.so.76 
ERROR: Strip call failed: /tmp/.mount_linuxdKkFPkf/usr/bin/strip: AppDir/usr/lib/libicudata.so.76: unknown type [0x13] section `.relr.dyn'
/tmp/.mount_linuxdKkFPkf/usr/bin/strip: Unable to recognise the format of the input file `AppDir/usr/lib/libicudata.so.76'
 
Calling strip on library AppDir/usr/lib/libicui18n.so.76 
ERROR: Strip call failed: /tmp/.mount_linuxdKkFPkf/usr/bin/strip: AppDir/usr/lib/libicui18n.so.76: unknown type [0x13] section `.relr.dyn'
/tmp/.mount_linuxdKkFPkf/usr/bin/strip: Unable to recognise the format of the input file `AppDir/usr/lib/libicui18n.so.76'
 
Calling strip on library AppDir/usr/lib/libicuuc.so.76 
ERROR: Strip call failed: /tmp/.mount_linuxdKkFPkf/usr/bin/strip: AppDir/usr/lib/libicuuc.so.76: unknown type [0x13] section `.relr.dyn'
/tmp/.mount_linuxdKkFPkf/usr/bin/strip: Unable to recognise the format of the input file `AppDir/usr/lib/libicuuc.so.76'
 
Calling strip on library AppDir/usr/lib/liblzma.so.5 
ERROR: Strip call failed: /tmp/.mount_linuxdKkFPkf/usr/bin/strip: AppDir/usr/lib/liblzma.so.5: unknown type [0x13] section `.relr.dyn'
/tmp/.mount_linuxdKkFPkf/usr/bin/strip: Unable to recognise the format of the input file `AppDir/usr/lib/liblzma.so.5'
 
Calling strip on library AppDir/usr/lib/libpcre2-16.so.0 
ERROR: Strip call failed: /tmp/.mount_linuxdKkFPkf/usr/bin/strip: AppDir/usr/lib/libpcre2-16.so.0: unknown type [0x13] section `.relr.dyn'
/tmp/.mount_linuxdKkFPkf/usr/bin/strip: Unable to recognise the format of the input file `AppDir/usr/lib/libpcre2-16.so.0'
 
Calling strip on library AppDir/usr/lib/libpcre2-8.so.0 
ERROR: Strip call failed: /tmp/.mount_linuxdKkFPkf/usr/bin/strip: AppDir/usr/lib/libpcre2-8.so.0: unknown type [0x13] section `.relr.dyn'
/tmp/.mount_linuxdKkFPkf/usr/bin/strip: Unable to recognise the format of the input file `AppDir/usr/lib/libpcre2-8.so.0'
 
Calling strip on library AppDir/usr/lib/libpng16.so.16 
ERROR: Strip call failed: /tmp/.mount_linuxdKkFPkf/usr/bin/strip: AppDir/usr/lib/libpng16.so.16: unknown type [0x13] section `.relr.dyn'
/tmp/.mount_linuxdKkFPkf/usr/bin/strip: Unable to recognise the format of the input file `AppDir/usr/lib/libpng16.so.16'
 
Calling strip on library AppDir/usr/lib/libsystemd.so.0 
ERROR: Strip call failed: /tmp/.mount_linuxdKkFPkf/usr/bin/strip: AppDir/usr/lib/libsystemd.so.0: unknown type [0x13] section `.relr.dyn'
/tmp/.mount_linuxdKkFPkf/usr/bin/strip: Unable to recognise the format of the input file `AppDir/usr/lib/libsystemd.so.0'
 
Calling strip on library AppDir/usr/lib/libxkbcommon.so.0 
ERROR: Strip call failed: /tmp/.mount_linuxdKkFPkf/usr/bin/strip: AppDir/usr/lib/libxkbcommon.so.0: unknown type [0x13] section `.relr.dyn'
/tmp/.mount_linuxdKkFPkf/usr/bin/strip: Unable to recognise the format of the input file `AppDir/usr/lib/libxkbcommon.so.0'
 
Calling strip on library AppDir/usr/lib/libxml2.so.2 
ERROR: Strip call failed: /tmp/.mount_linuxdKkFPkf/usr/bin/strip: AppDir/usr/lib/libxml2.so.2: unknown type [0x13] section `.relr.dyn'
/tmp/.mount_linuxdKkFPkf/usr/bin/strip: Unable to recognise the format of the input file `AppDir/usr/lib/libxml2.so.2'
 
Calling strip on library AppDir/usr/lib/libzstd.so.1 
ERROR: Strip call failed: /tmp/.mount_linuxdKkFPkf/usr/bin/strip: AppDir/usr/lib/libzstd.so.1: unknown type [0x13] section `.relr.dyn'
/tmp/.mount_linuxdKkFPkf/usr/bin/strip: Unable to recognise the format of the input file `AppDir/usr/lib/libzstd.so.1'
 
Calling strip on library AppDir/usr/plugins/iconengines/libqsvgicon.so 
ERROR: Strip call failed: /tmp/.mount_linuxdKkFPkf/usr/bin/strip: AppDir/usr/plugins/iconengines/libqsvgicon.so: unknown type [0x13] section `.relr.dyn'
/tmp/.mount_linuxdKkFPkf/usr/bin/strip: Unable to recognise the format of the input file `AppDir/usr/plugins/iconengines/libqsvgicon.so'
 
ERROR: Failed to execute deferred operations 

NO_STRIP=1 ./linuxdeploy-x86_64.AppImage --appdir AppDir/ [Koi-0.5.1]

Helps though . . .

Did not you think about adding support for building directly from the AppImageBuilder.yml YAML files, by the way ?_?

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

No branches or pull requests

3 participants