Bug 209100 - sysutils/afflib: Fix build with libc++ 3.8.0
Summary: sysutils/afflib: Fix build with libc++ 3.8.0
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Some People
Assignee: Antoine Brodin
URL:
Keywords:
Depends on:
Blocks: 208158
  Show dependency treegraph
 
Reported: 2016-04-27 16:53 UTC by Dimitry Andric
Modified: 2016-04-28 16:30 UTC (History)
0 users

See Also:
bugzilla: maintainer-feedback? (antoine)


Attachments
Use bswap macros/functions from sys/endian.h (1012 bytes, patch)
2016-04-27 16:53 UTC, Dimitry Andric
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Dimitry Andric freebsd_committer freebsd_triage 2016-04-27 16:53:01 UTC
Created attachment 169761 [details]
Use bswap macros/functions from sys/endian.h

During the exp-run in bug 208158, it was found that sysutils/afflib gives errors with libc++ 3.8.0 [1]:

In file included from vnode_qemu.cpp:18:
In file included from ./qemu/qemu-common.h:62:
./qemu/bswap.h:46:24: error: C++ requires a type specifier for all declarations
static inline uint16_t bswap16(uint16_t x)
                       ^
/usr/include/sys/endian.h:59:20: note: expanded from macro 'bswap16'
#define bswap16(x)      __bswap16(x)
                        ^

And similar errors for bswap32() and bswap64().  This is because afflib attempts to define its own versions of these functions, but newer versions of libc++ include <sys/endian.h>, which already defines them.  Use the versions from <sys/endian.h> instead.

[1] http://package18.nyi.freebsd.org/data/headamd64PR208158-default/2016-03-22_18h30m05s/logs/errors/afflib-3.7.6.log
Comment 1 commit-hook freebsd_committer freebsd_triage 2016-04-28 16:30:26 UTC
A commit references this bug:

Author: antoine
Date: Thu Apr 28 16:30:04 UTC 2016
New revision: 414183
URL: https://svnweb.freebsd.org/changeset/ports/414183

Log:
  Use bswap* from sys/endian.h instead of defining own versions
  This fixes build with libc++ 3.8.0

  PR:		209100
  Submitted by:	dim@

Changes:
  head/sysutils/afflib/files/
  head/sysutils/afflib/files/patch-lib_qemu_bswap.h