Compilation error on Raspberry Pi 4
Sorridi opened this issue · comments
Hi there,
I'm having troubles compiling qBittorrent-nox using the script. Every module seems to compile just fine, except qbittorrent.
Host: Raspberry Pi 4 Model B Rev 1.2
OS: Raspbian GNU/Linux 10 (buster) armv7l
./qbittorrent-nox-static.sh qbittorrent
logs:
...
compiling moc_webapplication.cpp
compiling moc_webui.cpp
compiling base/torrentfileswatcher.cpp
linking qbittorrent-nox
/usr/bin/ld: /home/sdbox/qbt-build/plugins/sqldrivers/libqsqlite.a(sqlite3.o): in function 'unixDlOpen':
sqlite3.c:(.text.unixDlOpen+0x8): warning: Using 'dlopen' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/bin/ld: /home/sdbox/qbt-build/lib/libtorrent-rasterbar.a(performance_counters.o): in function 'libtorrent::counters::counters()':
performance_counters.cpp:(.text+0x2c): undefined reference to '__atomic_store_8'
/usr/bin/ld: /home/sdbox/qbt-build/lib/libtorrent-rasterbar.a(performance_counters.o): in function 'libtorrent::counters::counters(libtorrent::counters const&)':
performance_counters.cpp:(.text+0x68): undefined reference to '__atomic_load_8'
/usr/bin/ld: performance_counters.cpp:(.text+0x80): undefined reference to '__atomic_store_8'
/usr/bin/ld: /home/sdbox/qbt-build/lib/libtorrent-rasterbar.a(performance_counters.o): in function 'libtorrent::counters::operator=(libtorrent::counters const&)':
performance_counters.cpp:(.text+0xc8): undefined reference to '__atomic_load_8'
/usr/bin/ld: performance_counters.cpp:(.text+0xe0): undefined reference to '__atomic_store_8'
/usr/bin/ld: /home/sdbox/qbt-build/lib/libtorrent-rasterbar.a(performance_counters.o): in function 'libtorrent::counters::operator[](int) const':
performance_counters.cpp:(.text+0x104): undefined reference to '__atomic_load_8'
/usr/bin/ld: /home/sdbox/qbt-build/lib/libtorrent-rasterbar.a(performance_counters.o): in function 'libtorrent::counters::inc_stats_counter(int, long long)':
performance_counters.cpp:(.text+0x124): undefined reference to '__atomic_fetch_add_8'
/usr/bin/ld: /home/sdbox/qbt-build/lib/libtorrent-rasterbar.a(performance_counters.o): in function 'libtorrent::counters::blend_stats_counter(int, long long, int)':
performance_counters.cpp:(.text+0x158): undefined reference to '__atomic_load_8'
/usr/bin/ld: performance_counters.cpp:(.text+0x1c4): undefined reference to '__atomic_compare_exchange_8'
/usr/bin/ld: /home/sdbox/qbt-build/lib/libtorrent-rasterbar.a(performance_counters.o): in function 'libtorrent::counters::set_value(int, long long)':
performance_counters.cpp:(.text+0x224): undefined reference to '__atomic_store_8'
collect2: error: ld returned 1 exit status
make[1]: *** [Makefile:641: qbittorrent-nox] Error 1
make[1]: Leaving directory '/home/sdbox/qbt-build/qbittorrent/src'
make: *** [Makefile:47: sub-src-make_first] Error 2
I build in dockers as qtabse tends to do weird stuff depending on what is installed. This worked for me.
docker run -it -w /root -e "LANG=en_GB.UTF-8" -v $HOME/docker:/root debian:buster
export qbt_qt_version=6.3
export libtorrent_version=2.0
export qbt_cross_name=armv7 # you can skip this on native armv7
./qbittorrent-nox-static.sh all -c -i
In a docker container the compilation completes successfully:
✔ Dependencies installed!
● All checks passed and core dependencies are installed, continuing to build
+ qbittorrent-nox has been installed!
Run it using this command:
qbittorrent-nox
However, when I try to run qbittorrent-nox
it spams this:
...
qt_safe_poll: Operation not permitted
qt_safe_poll: Operation not permitted
qt_safe_poll: Operation not permitted
qt_safe_poll: Operation not permitted
qt_safe_poll: Operation not permitted
^C
root@3eeac662b60b:~# ^C
root@3eeac662b60b:~# ^C
And I have to forcibly terminate the process.
ignoring the error for the moment, does the build load and work correctly, reachable via the webui?
Unfortunately, the qbittorrent-nox
command does not work - it spawns the process of qbittorrent-nox but it consumes lots of CPU (probably related to the spam of the messages) without actually doing anything.
That being said, the first time I started it, it prompted me with the EULA, and the commands like qbittorrent-nox -v
or qbittorrent-nox -h
work, but qbittorrent-nox files (or URLs)
do not.
does the web ui load?
ip:8080 ?
No, it doesn't.
What about the prebuilt binaries from the release? Doe they work
Yes, the binaries work without any issues.
Since I cannot tell if there is a script issue or a localised build issue maybe using the pre built binaries is the best option?
Even if there was a need to build your own to patch you can do that via a forked repo and use your own releases.
So without more info the best action is the working method, i think.
closing for now, If you have a more info we can reopen the issue.