Bug 209588 - editors/openoffice-4 editors/openoffice-devel: Fix build with libc++ 3.8.0
Summary: editors/openoffice-4 editors/openoffice-devel: 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: FreeBSD Office Team
URL:
Keywords:
Depends on:
Blocks: 208158
  Show dependency treegraph
 
Reported: 2016-05-17 19:29 UTC by Dimitry Andric
Modified: 2016-05-26 06:03 UTC (History)
1 user (show)

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


Attachments
Rename custom round() and use a define to minimize changes (2.47 KB, patch)
2016-05-17 19:29 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-05-17 19:29:34 UTC
Created attachment 170415 [details]
Rename custom round() and use a define to minimize changes

During the exp-run in bug 208158, it was found that editors/openoffice-4 [1] and editors/openoffice-devel [2] give errors with libc++ 3.8.0:

/wrkdirs/usr/ports/editors/openoffice-4/work/aoo-4.1.2/main/vcl/source/glyphs/graphite_layout.cxx:297:21: error: call to 'round' is ambiguous
    long nXOffset = round(fMinX * fScaling);
                    ^~~~~

This is because openoffice defines its own overloaded variant of round(), which is only different in return type from the 'real' round() from <math.h>, so it is ambiguous (in the C++ lookup sense).  Fix this by renaming the custom round() to round_(), and using a define to minimize needed changes in the code.

[1] http://package18.nyi.freebsd.org/data/headamd64PR208158-default/2016-05-01_10h29m48s/logs/errors/apache-openoffice-4.1.2_5.log
[2] http://package18.nyi.freebsd.org/data/headamd64PR208158-default/2016-05-01_10h29m48s/logs/errors/apache-openoffice-devel-4.2.1735889_1,4.log
Comment 1 commit-hook freebsd_committer freebsd_triage 2016-05-26 06:02:27 UTC
A commit references this bug:

Author: truckman
Date: Thu May 26 06:01:50 UTC 2016
New revision: 415875
URL: https://svnweb.freebsd.org/changeset/ports/415875

Log:
  Fix build of openoffice-4 and openoffice-devel with libc++ 3.8.0.

  Openffice defines its own overloaded variant of round(), which is
  only different in return type from the 'real' round() from <math.h>,
  so it is ambiguous (in the C++ lookup sense).  Fix this by renaming
  the custom round() to round_(), and using a define to minimize
  needed changes in the code.

  PR:		209588
  Submitted by:	dim

Changes:
  head/editors/openoffice-4/files/patch-vcl_source_glyphs_graphite__layout.cxx
  head/editors/openoffice-devel/files/patch-vcl_source_glyphs_graphite__layout.cxx