svn commit: r416491 - head/net/opal/files
Don Lewis
truckman at FreeBSD.org
Mon Jun 6 23:55:09 UTC 2016
Author: truckman
Date: Mon Jun 6 23:55:08 2016
New Revision: 416491
URL: https://svnweb.freebsd.org/changeset/ports/416491
Log:
Fix type for abs() calls in net/opal
During the exp-run in bug 208158, it was found that net/opal gives
errors with libc++ 3.8.0 [1]:
../common/mpi.cxx:135:18: error: call to 'abs' is ambiguous
distance = ( abs(MPIs[i].width - desiredWidth ) *
^~~
This is because abs() is being called with unsigned arguments. Fix
this by casting the arguments to the appropriate signed type. This
mimics what happens with older libraries where the only version of
abs() was the one in <stdlib.h>, which is prototyped:
int abs(int)
Correct functioning of this expression relies on how integer overflow
actually behaves, which is actually undefined in the C++ standard.
PR: 209077
Submitted by: dim
Added:
head/net/opal/files/patch-plugins_video_common_mpi.cxx (contents, props changed)
Added: head/net/opal/files/patch-plugins_video_common_mpi.cxx
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/net/opal/files/patch-plugins_video_common_mpi.cxx Mon Jun 6 23:55:08 2016 (r416491)
@@ -0,0 +1,13 @@
+--- plugins/video/common/mpi.cxx.orig 2013-02-20 02:18:05 UTC
++++ plugins/video/common/mpi.cxx
+@@ -132,8 +132,8 @@ bool MPIList::getNegotiatedMPI( unsigned
+ // to the desired one or matches it
+ for (i=0; i < MPIs.size(); i++) {
+ // we square the value in order to get absolute distances
+- distance = ( abs(MPIs[i].width - desiredWidth ) *
+- abs(MPIs[i].height - desiredHeight) );
++ distance = ( abs((int)(MPIs[i].width - desiredWidth )) *
++ abs((int)(MPIs[i].height - desiredHeight)) );
+
+ if (distance < minDistance) {
+ minDistance = distance;
More information about the svn-ports-head
mailing list