Opened 3 months ago

Closed 3 months ago

#70202 closed defect (fixed)

volk is broken on ppc: cpuinfo_ppc.h: error: #error "Including cpuinfo_ppc.h from a non-ppc target."

Reported by: barracuda156 Owned by: michaelld (Michael Dickens)
Priority: Normal Milestone:
Component: ports Version: 2.9.3
Keywords: powerpc Cc:
Port: volk

Description

This is an amazingly written code :) Running the build on ppc, it fails because it thinks ppc header was used on a non-ppc target:

:info:build [ 14%] Building C object cpu_features/CMakeFiles/cpu_features.dir/src/cpuinfo_ppc.c.o
:info:build cd /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_science_volk/volk/work/build/cpu_features && /opt/local/bin/gcc-mp-13 -DSTACK_LINE_READER_BUFFER_SIZE=1024 -D_GLIBCXX_USE_CXX11_ABI=1 -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_science_volk/volk/work/volk-2.5.0/cpu_features/include -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_science_volk/volk/work/volk-2.5.0/cpu_features/include/internal -pipe -Os -DNDEBUG -I/opt/local/libexec/boost/1.76/include -fcx-limited-range -Wall -Werror=incompatible-pointer-types -Werror=pointer-sign -O3 -DNDEBUG -std=gnu99 -arch ppc -mmacosx-version-min=10.6 -fPIC -MD -MT cpu_features/CMakeFiles/cpu_features.dir/src/cpuinfo_ppc.c.o -MF CMakeFiles/cpu_features.dir/src/cpuinfo_ppc.c.o.d -o CMakeFiles/cpu_features.dir/src/cpuinfo_ppc.c.o -c /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_science_volk/volk/work/volk-2.5.0/cpu_features/src/cpuinfo_ppc.c
:info:build In file included from /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_science_volk/volk/work/volk-2.5.0/cpu_features/src/cpuinfo_ppc.c:15:
:info:build /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_science_volk/volk/work/volk-2.5.0/cpu_features/include/cpuinfo_ppc.h:143:2: error: #error "Including cpuinfo_ppc.h from a non-ppc target."
:info:build   143 | #error "Including cpuinfo_ppc.h from a non-ppc target."
:info:build       |  ^~~~~
:info:build make[2]: *** [cpu_features/CMakeFiles/cpu_features.dir/src/cpuinfo_ppc.c.o] Error 1
:info:build make[2]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_science_volk/volk/work/build'
:info:build make[1]: *** [cpu_features/CMakeFiles/cpu_features.dir/all] Error 2
:info:build make[1]: *** Waiting for unfinished jobs....

Change History (3)

comment:1 Changed 3 months ago by kencu (Ken)

add a few more defines to this, so it works on the ppc compilers used on darwin:

https://github.com/google/cpu_features/blob/ba4bffa86cbb5456bdb34426ad22b9551278e2c0/include/cpu_features_macros.h#L62

#if defined(__powerpc__)
#define CPU_FEATURES_ARCH_PPC
#endif

comment:2 in reply to:  1 Changed 3 months ago by barracuda156

Replying to kencu:

add a few more defines to this, so it works on the ppc compilers used on darwin:

https://github.com/google/cpu_features/blob/ba4bffa86cbb5456bdb34426ad22b9551278e2c0/include/cpu_features_macros.h#L62

#if defined(__powerpc__)
#define CPU_FEATURES_ARCH_PPC
#endif

Thank you, Ken, yeah, it turned out to be a silly error. I compiles in fact just after fixing it, but I am looking now at the code and thinking whether we can add a proper implementation.

comment:3 Changed 3 months ago by barracuda156

Resolution: fixed
Status: assignedclosed

In 5f033bb84b4a1f961e532440f91c5d833012caf0/macports-ports (master):

volk: unbreak build on ppc

Fixes: #70202

Note: See TracTickets for help on using tickets.