Ticket #357 (closed bug: fixed)

Opened 12 years ago

Last modified 12 years ago

FTBFS on PowerPC

Reported by: adi Assigned to:
Priority: minor Milestone:
Component: generic Version: FFADO SVN (trunk)
Keywords: Cc:
The device the bug applies to:

Description

Hi!

Just forwarding a Debian Bug Report:

http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=678347

Relevant part:

src/rme/rme_avdevice.cpp: In function 'uint32_t Rme::ByteSwapToDevice32(uint32_t)':
src/rme/rme_avdevice.cpp:67:25: error: 'byteswap_32' was not declared in this scope
src/rme/rme_avdevice.cpp: At global scope:
src/rme/rme_avdevice.cpp:69:32: error: ISO C++ forbids declaration of 'ByteSwapFromDevice32' with no type [-fpermissive]
src/rme/rme_avdevice.cpp: In function 'int Rme::ByteSwapFromDevice32(uint32_t)':
src/rme/rme_avdevice.cpp:71:25: error: 'byteswap_32' was not declared in this scope

Two things I don't understand: Firstly, the code hasn't been touched since 2009, and it used to build in the past. This could indicate a broken compiler on the build machine. I'll check on my PPC machine ASAP.

Second: What is byteswap_32? Or more importantly: where is it defined? It's not part of the FFADO source tree, and it's neither in /usr/include/* nor in gcc's include directory.

Cheers

Change History

06/23/12 03:37:32 changed by adi

  • status changed from new to closed.
  • resolution set to fixed.

I guess r2169 fixes the issue. Jonathan, please check if it breaks RME support. I don't think so, but better be safe than sorry. ;)

06/23/12 05:55:19 changed by jwoithe

Adrian: r2169 doesn't appear to have broken RME support on x86. As you said, the change looks harmless but it's best to confirm these things explicitly.

In relation to the original report, I too am somewhat surprised that this hasn't come up earlier. Admittedly I've never been in a position to test any of this on a PPC so from my point of view it could have languished like this from the very beginning. If compilation of the RME stuff used to work on a PPC, I can only suggest that byteswap_32() used to be defined within FFADO and was then removed at some point without a realisation that it was called by the RME driver on big endian machines.