Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 21 Jan 2018 19:50:46 +0000 (UTC)
From:      Adriaan de Groot <adridg@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r459625 - in head/astro/xplanet: . files
Message-ID:  <201801211950.w0LJok1e008304@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: adridg
Date: Sun Jan 21 19:50:46 2018
New Revision: 459625
URL: https://svnweb.freebsd.org/changeset/ports/459625

Log:
  Fix build on aarch64 and with Clang 6. The modified patch explains
  the error message and what is changed. Bump PORTREVISION because
  it contains a code change.
  
  kde@ bumped into this while building x11/kde4 for aarch64.
  
  Build on 12-CURRENT aarch64, 11-STABLE amd64 and 10.3 i386.
  
  Approved by:	tcberner (mentor)
  Differential Revision:	https://reviews.freebsd.org/D14008

Modified:
  head/astro/xplanet/Makefile
  head/astro/xplanet/files/patch-src_readConfig.cpp

Modified: head/astro/xplanet/Makefile
==============================================================================
--- head/astro/xplanet/Makefile	Sun Jan 21 19:00:37 2018	(r459624)
+++ head/astro/xplanet/Makefile	Sun Jan 21 19:50:46 2018	(r459625)
@@ -3,7 +3,7 @@
 
 PORTNAME=	xplanet
 PORTVERSION=	1.3.0
-PORTREVISION=	10
+PORTREVISION=	11
 CATEGORIES=	astro geography
 MASTER_SITES=	SF
 

Modified: head/astro/xplanet/files/patch-src_readConfig.cpp
==============================================================================
--- head/astro/xplanet/files/patch-src_readConfig.cpp	Sun Jan 21 19:00:37 2018	(r459624)
+++ head/astro/xplanet/files/patch-src_readConfig.cpp	Sun Jan 21 19:50:46 2018	(r459625)
@@ -1,4 +1,18 @@
---- src/readConfig.cpp.orig	2012-03-03 03:20:05 UTC
+The later chunks (using i2b) are compile fixes on aarch64 (presumably with
+clang6 as well). Typical error message reads
+
+    readConfig.cpp:407:54: error: non-constant-expression cannot be narrowed 
+    from type 'int' to 'unsigned char' in initializer list [-Wc++11-narrowing]
+        unsigned char color[3] = { r & 0xff, g & 0xff, b & 0xff };
+                                   ^~~~~~~~
+    readConfig.cpp:407:54: note: insert an explicit cast to silence this issue
+        unsigned char color[3] = { r & 0xff, g & 0xff, b & 0xff };
+                                   ^~~~~~~~
+                                   static_cast<unsigned char>( )
+
+Since it happens in a half-dozen places, introduce a trivial helper function.
+
+--- src/readConfig.cpp.orig	2018-01-21 16:58:09 UTC
 +++ src/readConfig.cpp
 @@ -4,6 +4,7 @@
  #include <fstream>
@@ -8,3 +22,66 @@
  using namespace std;
  
  #include "body.h"
+@@ -20,6 +21,8 @@ using namespace std;
+ static PlanetProperties *defaultProperties;
+ static PlanetProperties *currentProperties;
+ 
++static inline unsigned char i2b( int x ) { return static_cast<unsigned int>(x) & 0xffU; }
++
+ static void
+ readConfig(const char *line, PlanetProperties *planetProperties[])
+ {
+@@ -49,7 +52,7 @@ readConfig(const char *line, PlanetPrope
+             int r, g, b;
+             if (sscanf(returnString, "%d,%d,%d", &r, &g, &b) == 3)
+             {
+-                unsigned char color[3] = { r & 0xff, g & 0xff, b & 0xff };
++                unsigned char color[3] = { i2b(r), i2b(g), i2b(b) };
+                 currentProperties->ArcColor(color);
+             }
+             else
+@@ -179,7 +182,7 @@ readConfig(const char *line, PlanetPrope
+             int r, g, b;
+             if (sscanf(returnString, "%d,%d,%d", &r, &g, &b) == 3)
+             {
+-                unsigned char color[3] = { r & 0xff, g & 0xff, b & 0xff };
++                unsigned char color[3] = { i2b(r), i2b(g), i2b(b) };
+                 currentProperties->Color(color);
+             }
+             else
+@@ -244,7 +247,7 @@ readConfig(const char *line, PlanetPrope
+             int r, g, b;
+             if (sscanf(returnString, "%d,%d,%d", &r, &g, &b) == 3)
+             {
+-                unsigned char color[3] = { r & 0xff, g & 0xff, b & 0xff };
++                unsigned char color[3] = { i2b(r), i2b(g), i2b(b) };
+                 currentProperties->GridColor(color);
+             }
+             else
+@@ -296,7 +299,7 @@ readConfig(const char *line, PlanetPrope
+             int r, g, b;
+             if (sscanf(returnString, "%d,%d,%d", &r, &g, &b) == 3)
+             {
+-                unsigned char color[3] = { r & 0xff, g & 0xff, b & 0xff };
++                unsigned char color[3] = { i2b(r), i2b(g), i2b(b) };
+                 currentProperties->MarkerColor(color);
+             }
+             else
+@@ -403,7 +406,7 @@ readConfig(const char *line, PlanetPrope
+             int r, g, b;
+             if (sscanf(returnString, "%d,%d,%d", &r, &g, &b) == 3)
+             {
+-                unsigned char color[3] = { r & 0xff, g & 0xff, b & 0xff };
++                unsigned char color[3] = { i2b(r), i2b(g), i2b(b) };
+                 currentProperties->OrbitColor(color);
+             }
+             else
+@@ -473,7 +476,7 @@ readConfig(const char *line, PlanetPrope
+             int r, g, b;
+             if (sscanf(returnString, "%d,%d,%d", &r, &g, &b) == 3)
+             {
+-                unsigned char color[3] = { r & 0xff, g & 0xff, b & 0xff };
++                unsigned char color[3] = { i2b(r), i2b(g), i2b(b) };
+                 currentProperties->TextColor(color);
+             }
+             else



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201801211950.w0LJok1e008304>