Bug 209652 - graphics/embree: Fix build with libc++ 3.8.0
Summary: graphics/embree: 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: Alexey Dokuchaev
URL:
Keywords:
Depends on:
Blocks: 208158
  Show dependency treegraph
 
Reported: 2016-05-19 20:25 UTC by Dimitry Andric
Modified: 2016-05-29 15:03 UTC (History)
0 users

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


Attachments
Disable some overloaded math functions for libc++ 3.8.0 and higher (1.13 KB, patch)
2016-05-19 20:25 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 2016-05-19 20:25:27 UTC
Created attachment 170491 [details]
Disable some overloaded math functions for libc++ 3.8.0 and higher

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

/wrkdirs/usr/ports/graphics/embree/work/embree-2.7.0/tutorials/common/tutorial/tutorial_device.cpp:270:39: error: call to 'abs' is ambiguous
  Vec3fa col = Vec3fa(min(1.f,.3f+.8f*abs(dot(Ng,normalize(ray.dir)))));
                                      ^~~

This is because embree defines its own version of a number of <cmath> functions, which cause the ambiguity.  These functions are only declared in <cmath> for libc++ 3.8.0 and later, so fix it by disabling the custom functions for those versions of libc++.

[1] http://package18.nyi.freebsd.org/data/headamd64PR208158-default/2016-05-01_10h29m48s/logs/errors/embree-2.7.0_1.log
Comment 1 commit-hook freebsd_committer 2016-05-29 15:02:08 UTC
A commit references this bug:

Author: danfe
Date: Sun May 29 15:02:04 UTC 2016
New revision: 416111
URL: https://svnweb.freebsd.org/changeset/ports/416111

Log:
  Disable some overloaded math functions for libc++ 3.8.0 and higher, and thus
  unbreak the build.

  This is because this port defines its own versions of a number of <cmath>
  functions, which cause the ambiguity.  These functions are only declared in
  <cmath> for libc++ 3.8.0 and later, so fix it by disabling the custom
  functions for those versions of libc++.

  PR:		209652
  Submitted by:	dim

Changes:
  head/graphics/embree/files/patch-common_math_math.h
Comment 2 Alexey Dokuchaev freebsd_committer 2016-05-29 15:03:42 UTC
Committed as ports r416111, thank you!