From 71c4ea36e8e529742583a14c04e3be8fa702aefc Mon Sep 17 00:00:00 2001 From: Martin Whitaker Date: Tue, 16 Dec 2014 21:22:19 +0000 Subject: [PATCH] Pass -v compiler option to vvp in the output file shebang line. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Slightly modified version of the patch contributed by Stephan Böttcheron iverilog-devel. --- driver/iverilog.man.in | 8 +++++++- main.cc | 1 + tgt-vvp/vvp.c | 7 +++++-- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/driver/iverilog.man.in b/driver/iverilog.man.in index 21d504728..07b12cea1 100644 --- a/driver/iverilog.man.in +++ b/driver/iverilog.man.in @@ -1,4 +1,4 @@ -.TH iverilog 1 "February 26th, 2014" "" "Version %M.%m.%n %E" +.TH iverilog 1 "December 16th, 2014" "" "Version %M.%m.%n %E" .SH NAME iverilog - Icarus Verilog compiler @@ -213,6 +213,12 @@ a reference to a key temporary file that passes information to the compiler proper. To keep that file from being deleted at the end of the process, provide a file name of your own in the environment variable \fBIVERILOG_ICONFIG\fP. + +If the selected target is \fIvvp\fP, the \fB\-v\fP switch is appended +to the shebang line in the compiler output file, so directly executing +the compiler output file will turn on verbose messages in \fIvvp\fP. +This extra verbosity can be avoided by using the \fIvvp\fP command to +indirectly execute the compiler output file. .TP 8 .B -V Print the version of the compiler, and exit. diff --git a/main.cc b/main.cc index 21d7232b1..377dfc55a 100644 --- a/main.cc +++ b/main.cc @@ -859,6 +859,7 @@ int main(int argc, char*argv[]) # if defined(HAVE_TIMES) times_flag = true; # endif + flags["VVP_EXTRA_ARGS"] = strdup(" -v"); break; case 'V': version_flag = true; diff --git a/tgt-vvp/vvp.c b/tgt-vvp/vvp.c index 55920f325..9eb5003ba 100644 --- a/tgt-vvp/vvp.c +++ b/tgt-vvp/vvp.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001-2011 Stephen Williams (steve@icarus.com) + * Copyright (c) 2001-2014 Stephen Williams (steve@icarus.com) * * This source code is free software; you can redistribute it * and/or modify it in source code form under the terms of the GNU @@ -59,7 +59,10 @@ __inline__ static void draw_execute_header(ivl_design_t des) { const char*cp = ivl_design_flag(des, "VVP_EXECUTABLE"); if (cp) { - fprintf(vvp_out, "#! %s\n", cp); + const char *extra_args = ivl_design_flag(des, "VVP_EXTRA_ARGS"); + if (!extra_args) + extra_args = ""; + fprintf(vvp_out, "#! %s%s\n", cp, extra_args); #if !defined(__MINGW32__) fchmod(fileno(vvp_out), 0755); #endif