Bug#878347: supercollider: armel FTBFS and armhf baseline violation

Adrian Bunk bunk at debian.org
Fri Oct 13 00:06:26 UTC 2017


Source: supercollider
Version: 1:3.8.0~repack-1
Severity: serious

https://buildd.debian.org/status/fetch.php?pkg=supercollider&arch=armel&ver=1%3A3.8.0~repack-1&stamp=1507298859&raw=0

...
cd "/<<PKGBUILDDIR>>/obj-arm-linux-gnueabi/external_libraries" && /usr/bin/c++  -DBOOST_CHRONO_HEADER_ONLY -DBOOST_NO_AUTO_PTR -DSC_DATA_DIR=\"/usr/share/SuperCollider\" -I"/<<PKGBUILDDIR>>/external_libraries/yaml-cpp-0.3.0/include"  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -mfloat-abi=hard -mfpu=neon -O2 -g -DNDEBUG   -fschedule-insns2 -fomit-frame-pointer -Wreturn-type -ffast-math -fsigned-zeros -fno-associative-math -pthread -fvisibility=hidden -Wno-deprecated-declarations -std=gnu++11 -o CMakeFiles/yaml.dir/libyamlcpp.cpp.o -c "/<<PKGBUILDDIR>>/obj-arm-linux-gnueabi/external_libraries/libyamlcpp.cpp"
In file included from /usr/include/features.h:388:0,
                 from /usr/include/string.h:25,
                 from /<<PKGBUILDDIR>>/external_libraries/TLSF-2.4.6/src/tlsf.c:59:
/usr/include/arm-linux-gnueabi/gnu/stubs.h:10:11: fatal error: gnu/stubs-hard.h: No such file or directory
 # include <gnu/stubs-hard.h>
           ^~~~~~~~~~~~~~~~~~
compilation terminated.
external_libraries/CMakeFiles/tlsf.dir/build.make:65: recipe for target 'external_libraries/CMakeFiles/tlsf.dir/TLSF-2.4.6/src/tlsf.c.o' failed
make[3]: *** [external_libraries/CMakeFiles/tlsf.dir/TLSF-2.4.6/src/tlsf.c.o] Error 1


Using NEON is a baseline violation on armhf, and causes a FTBFS on armel.

The buggy code seems to be in CMakeLists.txt:

# support for building on Raspberry Pi 1/2/3 and BBB
if(CMAKE_COMPILER_IS_GNUCXX AND CMAKE_SYSTEM_PROCESSOR STREQUAL "armv7l")
  foreach(flag CMAKE_C_FLAGS CMAKE_CXX_FLAGS)
    set(${flag} "${${flag}} -mfloat-abi=hard")
    set(${flag} "${${flag}} -mfpu=neon")
  endforeach()
elseif(CMAKE_COMPILER_IS_GNUCXX AND CMAKE_SYSTEM_PROCESSOR STREQUAL "armv6l")
  foreach(flag CMAKE_C_FLAGS CMAKE_CXX_FLAGS)
    set(${flag} "${${flag}} -march=armv6")
    set(${flag} "${${flag}} -mtune=arm1176jzf-s")
    set(${flag} "${${flag}} -mfloat-abi=hard")
    set(${flag} "${${flag}} -mfpu=vfp")
  endforeach()
endif()


It is wrong to set these flags based on the machine where the
package gets built, all these should be removed and the compiler
defaults be used (that do the right thing on armel/armhf/raspbian).



More information about the pkg-multimedia-maintainers mailing list