Le 2016-03-29 17:23, Solène Rapenne a écrit :
Hello,

My system : (current, amd64)
OpenBSD 5.9-current (GENERIC.MP) #1970: Mon Mar 28 17:02:06 MDT 2016
dera...@amd64.openbsd.org:/usr/src/sys/arch/amd64/compile/GENERIC.MP


I installed lang/erlang17 (erlang-17.5p5v0) and the command are
suffixed by 17 (erl17 for erl, erlc17 for erlc). Problem, erlc17 tries
to call "erl" binary, which doesn't exist.

~~~ Terminal ~~~
# erlc17
erlc: Error 2 executing 'erl'.
~~~~~~~~


Hello,

With this patch, lang/erlang/17 gives erlc17 which works. No regression found.

I think the same work should be done for 16 and 18 too. While the pre-configure is common for the 3 versions, the substitution isn't done for every file for the 3 versions but they still compile fine and there is no error issued.


Index: Makefile.inc
===================================================================
RCS file: /cvs/ports/lang/erlang/Makefile.inc,v
retrieving revision 1.11
diff -u -p -r1.11 Makefile.inc
--- Makefile.inc        16 Mar 2016 20:02:11 -0000      1.11
+++ Makefile.inc        6 Apr 2016 12:26:22 -0000
@@ -66,7 +66,11 @@ gen-versions: extract
@grep VSN ${WRKSRC}/erts/vsn.mk |awk '/^VSN/ { print "ERTS_VSN\t" $$3 }' | sort

 pre-configure:
- ${SUBST_CMD} ${WRKSRC}/make/install_bin ${WRKSRC}/erts/etc/common/escript.c + ${SUBST_CMD} ${WRKSRC}/make/install_bin ${WRKSRC}/erts/etc/common/escript.c; \ + ${SUBST_CMD} ${WRKSRC}/make/install_bin ${WRKSRC}/erts/etc/common/ct_run.c; \ + ${SUBST_CMD} ${WRKSRC}/make/install_bin ${WRKSRC}/erts/etc/common/erlc.c; \ + ${SUBST_CMD} ${WRKSRC}/make/install_bin ${WRKSRC}/erts/etc/common/dialyzer.c
+

 post-install:
ln -sf ../lib/erlang${MAJ_V}/lib/${EI}/bin/erl_call ${PREFIX}/bin/erl_call${MAJ_V}
Index: 17/patches/patch-erts_etc_common_ct_run_c
===================================================================
RCS file: 17/patches/patch-erts_etc_common_ct_run_c
diff -N 17/patches/patch-erts_etc_common_ct_run_c
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ 17/patches/patch-erts_etc_common_ct_run_c 6 Apr 2016 12:26:22 -0000
@@ -0,0 +1,12 @@
+$OpenBSD$
+--- erts/etc/common/ct_run.c.orig      Wed Apr  6 13:59:43 2016
++++ erts/etc/common/ct_run.c   Wed Apr  6 13:59:59 2016
+@@ -49,7 +49,7 @@ static int eargc; /* Number of arguments in eargv. */
+ #else
+ #  define QUOTE(s) s
+ #  define IS_DIRSEP(c) ((c) == '/')
+-#  define ERL_NAME "erl"
++#  define ERL_NAME "erl${MAJ_V}"
+ #endif
+
+ #define UNSHIFT(s) eargc++, eargv--; eargv[0] = QUOTE(s)
Index: 17/patches/patch-erts_etc_common_dialyzer_c
===================================================================
RCS file: 17/patches/patch-erts_etc_common_dialyzer_c
diff -N 17/patches/patch-erts_etc_common_dialyzer_c
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ 17/patches/patch-erts_etc_common_dialyzer_c 6 Apr 2016 12:26:22 -0000
@@ -0,0 +1,12 @@
+$OpenBSD$
+--- erts/etc/common/dialyzer.c.orig    Wed Apr  6 13:59:36 2016
++++ erts/etc/common/dialyzer.c Wed Apr  6 14:00:07 2016
+@@ -49,7 +49,7 @@ static int eargc; /* Number of arguments in eargv. */
+ #else
+ #  define QUOTE(s) s
+ #  define IS_DIRSEP(c) ((c) == '/')
+-#  define ERL_NAME "erl"
++#  define ERL_NAME "erl${MAJ_V}"
+ #endif
+
+ #define UNSHIFT(s) eargc++, eargv--; eargv[0] = QUOTE(s)
Index: 17/patches/patch-erts_etc_common_erlc_c
===================================================================
RCS file: 17/patches/patch-erts_etc_common_erlc_c
diff -N 17/patches/patch-erts_etc_common_erlc_c
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ 17/patches/patch-erts_etc_common_erlc_c 6 Apr 2016 12:26:22 -0000
@@ -0,0 +1,12 @@
+$OpenBSD$
+--- erts/etc/common/erlc.c.orig        Wed Apr  6 13:59:31 2016
++++ erts/etc/common/erlc.c     Wed Apr  6 14:00:23 2016
+@@ -52,7 +52,7 @@ static int eargc; /* Number of arguments in eargv. */
+ #else
+ #  define QUOTE(s) s
+ #  define IS_DIRSEP(c) ((c) == '/')
+-#  define ERL_NAME "erl"
++#  define ERL_NAME "erl${MAJ_V}"
+ #endif
+
+ #define UNSHIFT(s) eargc++, eargv--; eargv[0] = QUOTE(s)

Reply via email to