highway: ppc: inlining failed in PreventElision

highway 1.0.7 fails to build on Ubuntu’s ppc64el official builder but builds on Debian’s ppc64el. Ubuntu apparently has different baseline in its hardware.

Excerpt from Debian build log

https://buildd.debian.org/status/logs.php?pkg=highway&arch=ppc64el

Compiled HWY_TARGETS: PPC10 PPC9 PPC8
HWY_ATTAINABLE_TARGETS: PPC10 PPC9 PPC8 EMU128
HWY_BASELINE_TARGETS: PPC8 EMU128
HWY_STATIC_TARGET: PPC8
HWY_BROKEN_TARGETS:
HWY_DISABLED_TARGETS:
Current CPU supports: PPC8 EMU128 SCALAR

Excerpt from Ubuntu build log

https://launchpad.net/ubuntu/+source/highway/1.0.7-1/+latestbuild/ppc64el

Compiled HWY_TARGETS: PPC10 PPC9
HWY_ATTAINABLE_TARGETS: PPC10 PPC9 PPC8 EMU128
HWY_BASELINE_TARGETS: PPC9 PPC8 EMU128
HWY_STATIC_TARGET: PPC9
HWY_BROKEN_TARGETS:
HWY_DISABLED_TARGETS:
Current CPU supports: PPC9 PPC8 EMU128 SCALAR

…

In file included from /<<PKGBUILDDIR>>/hwy/examples/skeleton.h:24,
                 from /<<PKGBUILDDIR>>/hwy/examples/skeleton_test.cc:18:
/<<PKGBUILDDIR>>/hwy/base.h: In member function
 ‘skeleton::N_PPC10::TestFloorLog2::operator()<float, hwy::N_PPC10::Simd<float, 4ul, 0> >
(float, hwy::N_PPC10::Simd<float, 4ul, 0>)void’:
/<<PKGBUILDDIR>>/hwy/base.h:1511:14: error: inlining failed in call to ‘always_inline’
 ‘hwy::PreventElision<int&>(int&)void’: target specific option mismatch
 1511 | HWY_API void PreventElision(T&& output) {
      | ^~~~~~~~~~~~~~
In file included from /<<PKGBUILDDIR>>/hwy/foreach_target.h:266,
                 from /<<PKGBUILDDIR>>/hwy/examples/skeleton_test.cc:24:
/<<PKGBUILDDIR>>/hwy/examples/skeleton_test.cc:73:24: note: called from here
   73 | hwy::PreventElision(sum);
      | ~~~~~~~~~~~~~~~~~~~^~~~~
/<<PKGBUILDDIR>>/hwy/base.h:1511:14: error: inlining failed in call to ‘always_inline’
 ‘hwy::PreventElision<int&>(int&)void’: target specific option mismatch
 1511 | HWY_API void PreventElision(T&& output) {
      | ^~~~~~~~~~~~~~
/<<PKGBUILDDIR>>/hwy/examples/skeleton_test.cc:73:24: note: called from here
   73 | hwy::PreventElision(sum);
      | ~~~~~~~~~~~~~~~~~~~^~~~~

Other Info

Based on https://github.com/google/highway/blob/master/run_tests.sh , I applied a workaround to Ubuntu’s package which fixed the build: -DCMAKE_CXX_FLAGS='-mcpu=power9 -mno-power9-vector -mpower8-vector'

About this issue

  • Original URL
  • State: closed
  • Created 10 months ago
  • Comments: 25 (20 by maintainers)

Commits related to this issue

Most upvoted comments