On Sun, Oct 18, 2020 at 03:35:10PM +0200, Alessandro De Laurenzis wrote:
> As reported by visa@ (see [1]), cad/netgen is currently broken for mips64
> arch. I don't have one of those machines at my disposal, so I can only
> guess, basing on the log file, that the problem is a missing prototype.
>
> I would propose to try this patch (only tested on amd64, no regression found
> in my verification environment); if it's confirmed that the port compiles
> correctly on mips64 afterwards, I'll work with upstream in order to merge it
> in a future release.
>
> > [1] http://build-failures.rhaalovely.net/mips64/2020-10-09/cad/netgen.log
With this patch, the port seems to build fine on mips64.
> Index: Makefile
> ===================================================================
> RCS file: /cvs/ports/cad/netgen/Makefile,v
> retrieving revision 1.7
> diff -u -p -u -p -r1.7 Makefile
> --- Makefile 3 Jul 2020 21:12:36 -0000 1.7
> +++ Makefile 18 Oct 2020 13:23:07 -0000
> @@ -3,7 +3,7 @@
> COMMENT = tool for netlist comparison (LVS) and format manipulation
> DISTNAME = netgen-1.5.138
> EXTRACT_SUFX = .tgz
> -REVISION = 0
> +REVISION = 1
>
> CATEGORIES = cad
>
> Index: patches/patch-base_netgen_h
> ===================================================================
> RCS file: patches/patch-base_netgen_h
> diff -N patches/patch-base_netgen_h
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ patches/patch-base_netgen_h 18 Oct 2020 13:23:07 -0000
> @@ -0,0 +1,21 @@
> +$OpenBSD$
> +
> +Index: base/netgen.h
> +--- base/netgen.h.orig
> ++++ base/netgen.h
> +@@ -65,6 +65,15 @@ extern void AssignCircuits(char *name1, int file1, cha
> + /* flatten.c */
> + extern int PrematchLists(char *, int, char *, int);
> +
> ++/* verilog.c */
> ++struct cellstack {
> ++ char *cellname;
> ++ struct cellstack *next;
> ++};
> ++
> ++void ReadVerilogFile(char *fname, int filenum, struct cellstack
> **CellStackPtr,
> ++ int blackbox);
> ++
> + /* Define (enumerate) various device classes, largely based on SPICE
> */
> + /* model types, mixed with some ext/sim types.
> */
> +
> Index: patches/patch-base_spice_c
> ===================================================================
> RCS file: patches/patch-base_spice_c
> diff -N patches/patch-base_spice_c
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ patches/patch-base_spice_c 18 Oct 2020 13:23:07 -0000
> @@ -0,0 +1,21 @@
> +$OpenBSD$
> +
> +Index: base/spice.c
> +--- base/spice.c.orig
> ++++ base/spice.c
> +@@ -474,15 +474,6 @@ void CleanupSubcell() {
> + }
> +
> + /*------------------------------------------------------*/
> +-/* Structure for stacking nested subcircuit definitions */
> +-/*------------------------------------------------------*/
> +-
> +-struct cellstack {
> +- char *cellname;
> +- struct cellstack *next;
> +-};
> +-
> +-/*------------------------------------------------------*/
> + /* Push a subcircuit name onto the stack */
> + /*------------------------------------------------------*/
> +
> Index: patches/patch-base_verilog_c
> ===================================================================
> RCS file: patches/patch-base_verilog_c
> diff -N patches/patch-base_verilog_c
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ patches/patch-base_verilog_c 18 Oct 2020 13:23:07 -0000
> @@ -0,0 +1,17 @@
> +$OpenBSD$
> +
> +Index: base/verilog.c
> +--- base/verilog.c.orig
> ++++ base/verilog.c
> +@@ -566,11 +566,6 @@ void CleanupModule() {
> + /* Structure for stacking nested module definitions */
> + /*------------------------------------------------------*/
> +
> +-struct cellstack {
> +- char *cellname;
> +- struct cellstack *next;
> +-};
> +-
> + /* Forward declarations */
> + extern void IncludeVerilog(char *, int, struct cellstack **, int);
> +