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.


Charlène. 


Index: Makefile.inc
===================================================================
RCS file: /cvs/ports/lang/erlang/Makefile.inc,v
retrieving revision 1.17
diff -u -p -r1.17 Makefile.inc
--- Makefile.inc        2 Jun 2018 14:03:24 -0000       1.17
+++ Makefile.inc        14 Apr 2019 22:19:51 -0000
@@ -40,6 +40,18 @@ CFLAGS +=            -fno-pie
 LDFLAGS +=             -nopie
 .endif
 
+# Unbreak wx libs. WxWidgets is built with ports-gcc-8, clashing
+# with base-gcc-4.2 used to build Erlang because of different C++ 
+# headers used.  We can't set COMPILER in a short, don't repeat
+# yourself way because COMPILER is "irrelevant" (see 18/Makefile
+# for example), so doing it here.
+.if ! ${PROPERTIES:Mclang}
+MODULES +=             gcc4
+COMPILER_LIBCXX =      ${LIBECXX}
+CC =                   ${LOCALBASE}/bin/egcc
+CXX =                  ${LOCALBASE}/bin/eg++
+.endif
+
 USE_GMAKE=     Yes
 
 MAKE_ENV +=    DESTDIR=$(DESTDIR)
Index: 16/Makefile
===================================================================
RCS file: /cvs/ports/lang/erlang/16/Makefile,v
retrieving revision 1.23
diff -u -p -r1.23 Makefile
--- 16/Makefile 2 Jan 2019 12:44:07 -0000       1.23
+++ 16/Makefile 14 Apr 2019 22:19:51 -0000
@@ -13,8 +13,8 @@ PKGNAME=      erlang-$V
 PKGNAME-main=  erlang-16b.03
 PKGNAME-wx=    erlang-wx-16b.03
 
-REVISION-main= 16
-REVISION-wx=   4
+REVISION-main= 17
+REVISION-wx=   5
 
 VERSION_SPEC=  >=16v0,<17v0
 PKGSPEC-main=  erlang-${VERSION_SPEC}
Index: 17/Makefile
===================================================================
RCS file: /cvs/ports/lang/erlang/17/Makefile,v
retrieving revision 1.23
diff -u -p -r1.23 Makefile
--- 17/Makefile 2 Jan 2019 12:44:07 -0000       1.23
+++ 17/Makefile 14 Apr 2019 22:19:51 -0000
@@ -13,8 +13,8 @@ PKGNAME=      erlang-$V
 PKGNAME-main=  erlang-$V
 PKGNAME-wx=    erlang-wx-$V
 
-REVISION-main= 12
-REVISION-wx=   4
+REVISION-main= 13
+REVISION-wx=   5
 
 VERSION_SPEC=  >=17v0,<18v0
 PKGSPEC-main=  erlang-${VERSION_SPEC}
Index: 18/Makefile
===================================================================
RCS file: /cvs/ports/lang/erlang/18/Makefile,v
retrieving revision 1.20
diff -u -p -r1.20 Makefile
--- 18/Makefile 2 Jan 2019 12:44:07 -0000       1.20
+++ 18/Makefile 14 Apr 2019 22:19:51 -0000
@@ -12,7 +12,8 @@ DISTNAME=     otp_src_$V
 PKGNAME=       erlang-$V
 PKGNAME-main=  erlang-$V
 PKGNAME-wx=    erlang-wx-$V
-REVISION-wx=   0
+REVISION-main= 0
+REVISION-wx=   1
 
 VERSION_SPEC=  >=18v0,<19v0
 PKGSPEC-main=  erlang-${VERSION_SPEC}
Index: 19/Makefile
===================================================================
RCS file: /cvs/ports/lang/erlang/19/Makefile,v
retrieving revision 1.13
diff -u -p -r1.13 Makefile
--- 19/Makefile 2 Jan 2019 12:44:07 -0000       1.13
+++ 19/Makefile 14 Apr 2019 22:19:51 -0000
@@ -13,8 +13,8 @@ PKGNAME=      erlang-$V
 PKGNAME-main=  erlang-$V
 PKGNAME-wx=    erlang-wx-$V
 
-REVISION-main= 5
-REVISION-wx=   2
+REVISION-main= 6
+REVISION-wx=   3
 
 VERSION_SPEC=  >=19v0,<20v0
 PKGSPEC-main=  erlang-${VERSION_SPEC}
Index: 21/Makefile
===================================================================
RCS file: /cvs/ports/lang/erlang/21/Makefile,v
retrieving revision 1.2
diff -u -p -r1.2 Makefile
--- 21/Makefile 2 Jan 2019 12:44:07 -0000       1.2
+++ 21/Makefile 14 Apr 2019 22:19:51 -0000
@@ -7,7 +7,8 @@ COMMENT-wx=     WxWidgets bindings for Erlan
 
 V=             21.2
 MAJ_V=         21
-REVISION=      0
+REVISION=      1
+REVISION-wx=   0
 EPOCH=         0
 DISTNAME=      otp_src_$V
 PKGNAME=       erlang-$V

Reply via email to