From be5d5a33e6622e3680ff927eaa425f2fd1c6cfba Mon Sep 17 00:00:00 2001 From: Raphael Kubo da Costa Date: Sat, 26 Nov 2016 12:36:11 +0000 Subject: [PATCH] fdt: Expect strchr() to return a const char* In C, strchr(3) returns a char*, whereas C++ defines two overloads: * const char *strchr(const char*, int) * char *strchr(char*, int) Building fdt.cc (with the WITHOUT_GPL_DTC knob set) with libc++ 3.9.0 (imported in r309124) was failing because libc++ r260377 added the first overload to string.h, leading to failures such as: fdt.cc:1638:8: error: cannot initialize a variable of type 'char *' with an rvalue of type 'const char *' Just define val as a const char* to fix it. Upstreamed in https://github.com/davidchisnall/dtc/pull/14 Reviewed by: emaste Approved by: emaste --- usr.bin/dtc/fdt.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usr.bin/dtc/fdt.cc b/usr.bin/dtc/fdt.cc index 41c627d3fd9..16ebfd1fa3d 100644 --- a/usr.bin/dtc/fdt.cc +++ b/usr.bin/dtc/fdt.cc @@ -1635,7 +1635,7 @@ device_tree::parse_dts(const string &fn, FILE *depfile) bool device_tree::parse_define(const char *def) { - char *val = strchr(def, '='); + const char *val = strchr(def, '='); if (!val) { if (strlen(def) != 0)