Christian Weisgerber <na...@mips.inka.de> writes:

> Greg Steuck:
>
>> iverilog still starts.
>
> But the regression tests fail:
>
> driver/iverilog -B. -BMvpi -BPivlpp -tcheck -ocheck.vvp ./examples/hello.vl
> Cannot locate IVL modules : couldn't get command path from OS.
> gmake: *** [Makefile:141: check] Error 1

I have plausible deniability: the test passes if the package is
installed. Truth is, I didn't check `make test`.

Please see the updated patch which includes an upstream fix that gets
`make test` to pass (tested on amd64).

>From 7c13fbb65ca242d1832e21b332f695614fe713a9 Mon Sep 17 00:00:00 2001
From: Greg Steuck <g...@nest.cx>
Date: Mon, 1 Feb 2021 20:15:52 -0800
Subject: [PATCH] Update lang/iverilog to 11.0

This allows it to build with CXXFLAGS=-fno-common

Added a patch from upstream to work around a case of "all-world-is-Linux"ism.
---
 lang/iverilog/Makefile                    |  4 ++--
 lang/iverilog/distinfo                    |  4 ++--
 lang/iverilog/patches/patch-driver_main_c | 25 +++++++++++++++++++++++
 3 files changed, 29 insertions(+), 4 deletions(-)
 create mode 100644 lang/iverilog/patches/patch-driver_main_c

diff --git lang/iverilog/Makefile lang/iverilog/Makefile
index bbe47233bf8..544c327e9bc 100644
--- lang/iverilog/Makefile
+++ lang/iverilog/Makefile
@@ -2,7 +2,7 @@
 
 COMMENT=               Verilog simulation and synthesis tool
 
-V=                     10.3
+V=                     11.0
 DISTNAME=              verilog-$V
 PKGNAME=               iverilog-$V
 CATEGORIES=            lang devel
@@ -12,7 +12,7 @@ HOMEPAGE=             http://iverilog.icarus.com/
 # GPLv2+
 PERMIT_PACKAGE=        Yes
 
-MASTER_SITES=          ftp://ftp.icarus.com/pub/eda/verilog/v10/
+MASTER_SITES=          ftp://ftp.icarus.com/pub/eda/verilog/v11/
 
 WANTLIB += ${COMPILER_LIBCXX} bz2 c curses m readline z
 
diff --git lang/iverilog/distinfo lang/iverilog/distinfo
index c8b46d726a4..fc16e0e27b1 100644
--- lang/iverilog/distinfo
+++ lang/iverilog/distinfo
@@ -1,2 +1,2 @@
-SHA256 (verilog-10.3.tar.gz) = hr1F5+EtG8h3LDzdOU5oqf7MsqbRSq99rgdztydDaO8=
-SIZE (verilog-10.3.tar.gz) = 1698889
+SHA256 (verilog-11.0.tar.gz) = 1UeFYWtj/mc5lI6ZZ0mWJPKd7VSttX4eAOuJdWemVdU=
+SIZE (verilog-11.0.tar.gz) = 1784307
diff --git lang/iverilog/patches/patch-driver_main_c 
lang/iverilog/patches/patch-driver_main_c
new file mode 100644
index 00000000000..08795fd5522
--- /dev/null
+++ lang/iverilog/patches/patch-driver_main_c
@@ -0,0 +1,25 @@
+$OpenBSD$
+
+Don't exit when ivl_root not found - the user may have supplied it.
+
+When running 'make check' without having an installed copy, find_ivl_root()
+will fail on Unix systems that don't provide /proc/self/exe (e.g. MacOS).
+
+https://github.com/steveicarus/iverilog/commit/56d2d798ecd97c09539e7748997013eddd37ab42
+
+Index: driver/main.c
+--- driver/main.c.orig
++++ driver/main.c
+@@ -1061,7 +1061,11 @@ static void find_ivl_root(void)
+           find_ivl_root_failed("command path exceeds size of string buffer.");
+       }
+       if (len <= 0) {
+-          find_ivl_root_failed("couldn't get command path from OS.");
++          // We've failed, but we may yet find a -B option on the command 
line.
++          // Use the built-in path so the user sees a sensible error message.
++          assert(strlen(IVL_ROOT) < sizeof ivl_root);
++          strcpy(ivl_root, IVL_ROOT);
++            return;
+       }
+       s = strrchr(ivl_root, sep);
+       if (s == 0) {
-- 
2.30.0

Reply via email to