On May 24, 2018, at 23:15, Ken wrote: > Ken (kencu) pushed a commit to branch master > in repository macports-ports. > > > https://github.com/macports/macports-ports/commit/5cb3bb12990f7ea682e4b964eb86269923521397 > > The following commit(s) were added to refs/heads/master by this push: > > new 5cb3bb1 py-protobuf3: fix build on older systems > > 5cb3bb1 is described below > > > commit 5cb3bb12990f7ea682e4b964eb86269923521397 > > Author: Ken Cunningham > AuthorDate: Thu May 24 20:17:44 2018 -0700 > > py-protobuf3: fix build on older systems > > add cxx11 1.1 PG > add -stdlib flag to clang builds > add needed CXX flag to systems without thread_local > closes: https://trac.macports.org/ticket/56482 > > --- > python/py-protobuf3/Portfile | 21 > +++++++++++++++++++++ > .../files/patch-py-protobuf3-settings.diff | 11 +++++++++++ > 2 files changed, 32 insertions(+) > > diff --git a/python/py-protobuf3/Portfile b/python/py-protobuf3/Portfile > index 46a95dd..fa24a95 100644 > --- a/python/py-protobuf3/Portfile > +++ b/python/py-protobuf3/Portfile
> + # tricks to force the right -stdlib setting > + # and to put a needed CXX flag on the 10.6 build If this is supposed to help 10.6... > diff --git a/python/py-protobuf3/files/patch-py-protobuf3-settings.diff > b/python/py-protobuf3/files/patch-py-protobuf3-settings.diff > new file mode 100644 > index 0000000..6293b45 > --- /dev/null > +++ b/python/py-protobuf3/files/patch-py-protobuf3-settings.diff > @@ -0,0 +1,11 @@ > +--- setup.py.old 2018-05-24 19:42:16.000000000 -0700 > ++++ setup.py 2018-05-24 19:43:21.000000000 -0700 > +@@ -197,6 +197,8 @@ > + v = float('.'.join(v.split('.')[:2])) > + if v >= 10.12: > + extra_compile_args.append('-std=c++11') > ++ extra_compile_args.append('@@MACPORTS_STDLIB@@') > ++ extra_compile_args.append('@@MACPORTS_EXTRAARG@@') ...why is it inside an if statement that's for 10.12 and later? I guess it works because the if statement is erroneously treating the version number as a floating point number, in which case 10.6 is considered to be greater than 10.12. So the question is: does this code always require C++11? If so, remove the if statement. If it does not always require C++11, fix the if statement so that it correctly uses C++11 only on 10.12 and later.