On 2019/04/15 00:54, Charlene Wendling wrote:
> 
> Erlang (all versions) doesn't package with ports-gcc-8, because: 
> 
> - WxWidgets is built with headers made for ports-gcc-8, with
>   C++14 as the standard C++ version.
> 
> - Erlang requires WxWidgets but uses base-gcc, and during
>   configuration, it indeed outputs in $WRKSRC/lib/wx/config.log: 
>   
>   "/usr/local/include/wx-3.0/wx/strvararg.h:25:27: error:"
>   "type_traits: No such file or directory"
>   
>   AFAIK base-gcc wants <tr1/type_traits>
> 
> - Meanwhile, it just builds without Wx, the issue appears when
>   packaging, because the Wx related files are not present.
> 
> 
> It should have been easy if CHOSEN_COMPILER wasn't "irrelevant",
> and if we were able to define it, but it would break the build on
> clang archs.
> 
> What i'm proposing here is to bypass CHOSEN_COMPILER for !clang
> arches. It unbreaks the packaging and ensures that WANTLIB is 
> proper, calling egcc/++ directly seems a bit too rough though.
> 
> It has been tested against Erlang 16 and 18, as my partial bulk
> is still ongoing, i don't have resources to try them all.

This mess is due to a conflict between the variable name COMPILER in
infrastructure, and the mechanism used in the Erlang ports Makefile
to substitute e.g. "compiler-7.3" with "${COMPILER}" in the plists.
It isn't passed to the erlang build, it's just done for the port.

The "COMPILER=irrelevant" thing in Makefile.inc was done as a quick
fix in the gcc/clang transition but it's confusing and gets in the way.
And with wxWidgets we *do* want to use COMPILER the way it was intended.

Rather than stacking another hack on top of the existing
"CHOSEN_COMPILER=irrelevant" one, let's just get rid of it.

There are two approaches -

- either we can just get rid of the mechanism completely (it isn't
used consistently; compare 19/pkg/PLIST-main with the others). Upside:
simple. Downside: bigger PLIST diffs between Erlang updates.

- or we can rename the variables used (prefix with E_ or something),
either just COMPILER to reduce PLIST churn, or all of them.

I'm leaning towards the first one. Builds ongoing ...

Reply via email to