After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 722091 - NEON support fails to build on aarch64
NEON support fails to build on aarch64
Status: RESOLVED DUPLICATE of bug 712367
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
1.2.2
Other Linux
: Normal normal
: NONE
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2014-01-13 10:01 UTC by Peter Robinson
Modified: 2014-01-13 10:52 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Peter Robinson 2014-01-13 10:01:43 UTC
The NEON instructions have changed somewhat on aarch64 (arm64) and don't build when enabled on 1.2.x 

The error is:

make[3]: Leaving directory `/builddir/build/BUILD/gst-plugins-base-1.2.2/gst/audioconvert'
/bin/sh ../../libtool  --tag=CC --tag=disable-static  --mode=compile gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I../..    -I../../gst-libs -I../../gst-libs -pthread -I/usr/include/gstreamer-1.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include   -pthread -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -pthread -I/usr/include/gstreamer-1.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include   -DG_THREADS_MANDATORY -DG_DISABLE_CAST_CHECKS -DG_DISABLE_ASSERT -Wall -Wdeclaration-after-statement -Wvla -Wpointer-arith -Wmissing-declarations -Wmissing-prototypes -Wredundant-decls -Wundef -Wwrite-strings -Wformat-nonliteral -Wformat-security -Winit-self -Wmissing-include-dirs -Waddress -Waggregate-return -Wno-multichar -Wnested-externs   -g    -pthread -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include   -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches  -fno-stack-protector -c -o libgsttcp_la-gsttcpclientsink.lo `test -f 'gsttcpclientsink.c' || echo './'`gsttcpclientsink.c
libtool: compile:  gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I../.. -pthread -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -pthread -I/usr/include/gstreamer-1.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -DG_THREADS_MANDATORY -DG_DISABLE_CAST_CHECKS -DG_DISABLE_ASSERT -Wall -Wdeclaration-after-statement -Wvla -Wpointer-arith -Wmissing-declarations -Wmissing-prototypes -Wredundant-decls -Wundef -Wwrite-strings -Wformat-nonliteral -Wformat-security -Winit-self -Wmissing-include-dirs -Waddress -Waggregate-return -Wno-multichar -Wnested-externs -g -pthread -I/usr/include/gstreamer-1.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -fno-stack-protector -c mpl2parse.c  -fPIC -DPIC -o .libs/libgstsubparse_la-mpl2parse.o
libtool: compile:  gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I../.. -I../../gst-libs -I../../gst-libs -pthread -I/usr/include/gstreamer-1.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -pthread -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -pthread -I/usr/include/gstreamer-1.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -DG_THREADS_MANDATORY -DG_DISABLE_CAST_CHECKS -DG_DISABLE_ASSERT -Wall -Wdeclaration-after-statement -Wvla -Wpointer-arith -Wmissing-declarations -Wmissing-prototypes -Wredundant-decls -Wundef -Wwrite-strings -Wformat-nonliteral -Wformat-security -Winit-self -Wmissing-include-dirs -Waddress -Waggregate-return -Wno-multichar -Wnested-externs -g -pthread -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -fno-stack-protector -c gsttcpclientsink.c  -fPIC -DPIC -o .libs/libgsttcp_la-gsttcpclientsink.o
In file included from resample.c:144:0,
                 from speex_resampler_float.c:27:
resample.c: In function 'resampler_basic_direct_single':
resample_neon.h:148:5: error: impossible constraint in 'asm'
     asm volatile ("  cmp %[len], #0\n"
     ^
Comment 1 Peter Robinson 2014-01-13 10:04:12 UTC
In theory the aarch64 NEON implementation is backwards compatible with ARMv7 NEON but I'm testing this on Fedora and armv7 on Fedora doesn't enable NEON by default but rather depends on run time detection and fast paths to make use of it where possible so I wonder if this is an issue on arm32 too.
Comment 2 Tim-Philipp Müller 2014-01-13 10:52:24 UTC

*** This bug has been marked as a duplicate of bug 712367 ***