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
This commit is contained in:
rakuco 2016-11-26 12:36:11 +00:00
parent 4815e2d7c8
commit 52580478ad

View File

@ -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)