==> Starting build()...
g++ -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -g -fvar-tracking-assignments -O3 -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -I/usr/include/alsa -DPLUGIN_NAME_I18N='"softhddevice"' -D_GNU_SOURCE -DAV_INFO -DAV_INFO_TIME=3000 -DUSE_PIP -DH264_EOS_TRICKSPEED -DUSE_VDR_SPU -DUSE_ALSA -DUSE_VDPAU -DUSE_SCREENSAVER -DUSE_SWRESAMPLE -DGIT_REV='"5207af6"' -g -W -Wall -Wextra -Winit-self -Werror=overloaded-virtual -D_FORTIFY_SOURCE=2 -c -o softhddevice.o softhddevice.cpp
cc -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -g -fvar-tracking-assignments -O3 -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -I/usr/include/alsa -DPLUGIN_NAME_I18N='"softhddevice"' -D_GNU_SOURCE -DAV_INFO -DAV_INFO_TIME=3000 -DUSE_PIP -DH264_EOS_TRICKSPEED -DUSE_VDR_SPU -DUSE_ALSA -DUSE_VDPAU -DUSE_SCREENSAVER -DUSE_SWRESAMPLE -DGIT_REV='"5207af6"' -g -W -Wall -Wextra -Winit-self -Wdeclaration-after-statement -D_FORTIFY_SOURCE=2 -c -o softhddev.o softhddev.c
cc -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -g -fvar-tracking-assignments -O3 -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -I/usr/include/alsa -DPLUGIN_NAME_I18N='"softhddevice"' -D_GNU_SOURCE -DAV_INFO -DAV_INFO_TIME=3000 -DUSE_PIP -DH264_EOS_TRICKSPEED -DUSE_VDR_SPU -DUSE_ALSA -DUSE_VDPAU -DUSE_SCREENSAVER -DUSE_SWRESAMPLE -DGIT_REV='"5207af6"' -g -W -Wall -Wextra -Winit-self -Wdeclaration-after-statement -D_FORTIFY_SOURCE=2 -c -o video.o video.c
softhddev.c:1345:5: error: unknown type name 'atomic_t'
atomic_t PacketsFilled; ///< how many of the ring buffer is used
^
softhddev.c: In function 'VideoPacketInit':
softhddev.c:1387:5: warning: implicit declaration of function 'atomic_set' [-Wimplicit-function-declaration]
atomic_set(&stream->PacketsFilled, 0);
^
softhddev.c: In function 'VideoNextPacket':
softhddev.c:1491:5: warning: implicit declaration of function 'atomic_read' [-Wimplicit-function-declaration]
if (atomic_read(&stream->PacketsFilled) >= VIDEO_PACKET_MAX - 1) {
^
softhddev.c:1508:5: warning: implicit declaration of function 'atomic_inc' [-Wimplicit-function-declaration]
atomic_inc(&stream->PacketsFilled);
^
softhddev.c: In function 'VideoDecodeInput':
softhddev.c:1984:5: warning: implicit declaration of function 'atomic_dec' [-Wimplicit-function-declaration]
atomic_dec(&stream->PacketsFilled);
^
<builtin>: recipe for target 'softhddev.o' failed
make: *** [softhddev.o] Error 1
make: *** Waiting for unfinished jobs....
make: *** wait: No child processes. Stop.
==> ERROR: A failure occurred in build().
Aborting...
Alles anzeigen
Ich wurde gerade darauf hingewiesen, dass softhddevice nicht mehr auf Arch Linux kompiliert.
Wenn ich das richtig verstehe, kommt das indirekt über: #include <alsa/iatomic.h>
Und kommt dann von dort aus dem Kernel über include/linux/atomic.h
Das scheint allerdings keine Userspace API (mehr) zu sein, denn es wird nicht in /usr/include platziert
linux-api-headers platziert die Userspace Kernel API in /usr/include
Buildskript für linux-api-headers: https://projects.archlinux.org…ackages/linux-api-headers
Es gibt eine libatomic_ops. Vorausgesetzt, die mach das gleiche, wäre das wohl die bessere Wahl. Ich weiß weder, was atomic_t ist, noch was libatomic_ops macht. Ich habe nur den ähnlichen Namen bemerkt.
https://www.archlinux.org/pack…tra/x86_64/libatomic_ops/