Help needed: fix build issue with xdxf_makedict in older platforms

Ken Cunningham ken.cunningham.webuse at
Tue Nov 7 18:46:23 UTC 2017

On 2017-11-07, at 2:13 AM, Joshua Root wrote:
> There is an indirect dependency via glib2. The issue really is the macro
> in the gettext header causing unintended changes to the C++ headers.
> - Josh

totally get it now. It builds easily with libc++, but fails with libstdc++ or macports-libstdc++ with the same errors noted on the buildbots.

This is another example of how this libc++/clang-3.9 setup I have on 10.6 is consistent with newer systems -- if we standardized on that somehow we'd see fewer errors like this. I would have never seen this error.

Leonardo, I find you can reproduce this build error on any system (I just did it on high sierra) if you do this:

install clang-5.0 and libgcc as normally from the prebuilt packages

sudo port install libgcc clang-5.0

then run

sudo port -v -s destroot xdxf_makedict configure.cxx_stdlib=macports-libstdc++ configure.compiler=macports-clang-5.0

and you duplicate the errors promptly.

It's totally a gcc vs libc++ header thing, as our knowledgable Joshua saw right away.

Looking in:


that definition is guarded by a flag

#ifndef GNULIB_defined_setlocale /* don't override gnulib */
#undef setlocale
#define setlocale libintl_setlocale
extern char *setlocale (int, const char *);

and sure enough, adding this to the portfile fixes the build:

configure.cxxflags-append -DGNULIB_defined_setlocale

I presume this workaround was made for this very error.



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the macports-dev mailing list