Ticket #366 (closed bug: fixed)

Opened 11 years ago

Last modified 11 years ago

FTBFS on PowerPC (again)

Reported by: artfwo Assigned to: la-page-web-of-phil
Priority: minor Milestone:
Component: devices/dice Version: FFADO 2.1.0
Keywords: Cc:
The device the bug applies to:

Description

libffado 2.1.0 fails to build on PowerPC due to missing include.

The problems appeared while trying to build the latest version in Ubuntu, build log available here:

https://launchpad.net/ubuntu/+source/libffado/2.1.0+svn2240-1ubuntu1/+build/4252403

Revelant part:

src/dice/focusrite/saffire_pro24.cpp: In member function 'virtual bool Dice::Focusrite::SaffirePro24::setNickname(std::string)':
src/dice/focusrite/saffire_pro24.cpp:320:76: error: 'byteSwapBlock' was not declared in this scope
src/dice/focusrite/saffire_pro24.cpp: In member function 'virtual std::string Dice::Focusrite::SaffirePro24::getNickname()':
src/dice/focusrite/saffire_pro24.cpp:342:76: error: 'byteSwapBlock' was not declared in this scope

Including "libutil/ByteSwap.h" in the affected files solves the issue. Attaching the patch to this report as well.

Attachments

fix_ftbfs_bigendian_new.patch (1.4 kB) - added by artfwo on 01/30/13 01:01:15.

Change History

01/30/13 01:01:15 changed by artfwo

  • attachment fix_ftbfs_bigendian_new.patch added.

01/30/13 01:46:45 changed by la-page-web-of-phil

  • owner set to la-page-web-of-phil.

Right. Byte swapping is required for getting/setting nickname since it is exposed to the user. A compilation directive enables this when using a big endian computer. And unfortunately, not having such a computer and not trying a cross compilation, I did not see the missing include. Patch looks like OK (#include is at the right location), I'll have to await for this evening before applying it.

Thanks,

Phil

01/30/13 01:59:01 changed by artfwo

Word, but the patch can be verified on x86 by redefining your machine endianness in /usr/include/i386-linux-gnu/bits/endian.h (file location valid for Ubuntu).

I actually managed to find out the missing includes by faking BYTE_ORDER to be BIG_ENDIAN on my machine.

01/30/13 02:44:18 changed by adi

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

Fixed in r2264. Thanks for the patch.