On Mon, Sep 11, 2017 at 10:01:27AM +0000, Martin Pieuchot wrote:
> Now that dlg@ implemented 'show struct' using CTF, which makes it
> available in GENERIC kernel we can retire DDB_STRUCTINFO.
> 
> Diff below does that, ok?
I suggested the same dlg, so OK with me.

Cheers,
Jasper
 
> Index: conf/files
> ===================================================================
> RCS file: /cvs/src/sys/conf/files,v
> retrieving revision 1.651
> diff -u -p -r1.651 files
> --- conf/files        11 Aug 2017 20:50:15 -0000      1.651
> +++ conf/files        11 Sep 2017 09:56:09 -0000
> @@ -609,7 +609,6 @@ file ddb/db_lex.c                 ddb
>  file ddb/db_output.c                 ddb
>  file ddb/db_prof.c                   ddb & ddbprof & !gprof
>  file ddb/db_run.c                    ddb
> -file ddb/db_struct.c                 ddb & ddb_struct
>  file ddb/db_sym.c                    ddb
>  file ddb/db_trap.c                   ddb
>  file ddb/db_variables.c                      ddb
> Index: ddb//db_command.c
> ===================================================================
> RCS file: /cvs/src/sys/ddb/db_command.c,v
> retrieving revision 1.76
> diff -u -p -r1.76 db_command.c
> --- ddb//db_command.c 6 Sep 2017 04:47:26 -0000       1.76
> +++ ddb//db_command.c 11 Sep 2017 09:03:36 -0000
> @@ -581,9 +581,6 @@ struct db_command db_show_cmds[] = {
>       { "nfsnode",    db_nfsnode_print_cmd,   0,      NULL },
>  #endif
>       { "object",     db_object_print_cmd,    0,      NULL },
> -#ifdef DDB_STRUCT
> -     { "offset",     db_struct_offset_cmd,   CS_OWN, NULL },
> -#endif
>       { "page",       db_page_print_cmd,      0,      NULL },
>       { "panic",      db_show_panic_cmd,      0,      NULL },
>       { "pool",       db_pool_print_cmd,      0,      NULL },
> Index: ddb//db_struct.c
> ===================================================================
> RCS file: ddb//db_struct.c
> diff -N ddb//db_struct.c
> --- ddb//db_struct.c  1 Sep 2015 05:26:10 -0000       1.4
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,277 +0,0 @@
> -/*   $OpenBSD: db_struct.c,v 1.4 2015/09/01 05:26:10 jsg Exp $       */
> -
> -/*
> - * Copyright (c) 2009 Miodrag Vallat.
> - *
> - * Permission to use, copy, modify, and distribute this software for any
> - * purpose with or without fee is hereby granted, provided that the above
> - * copyright notice and this permission notice appear in all copies.
> - *
> - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
> - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
> - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
> - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
> - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
> - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
> - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
> - */
> -
> -/*
> - * ddb routines to describe struct information
> - */
> -
> -#include <sys/param.h>
> -#include <sys/systm.h>
> -
> -#include <machine/db_machdep.h>
> -
> -#include <ddb/db_lex.h>
> -#include <ddb/db_output.h>
> -#include <ddb/db_access.h>
> -#include <ddb/db_command.h>
> -#include <ddb/db_extern.h>
> -#include <ddb/db_interface.h>
> -#include <ddb/db_var.h>
> -
> -#include "db_structinfo.h"
> -
> -void db_struct_print_field(uint, int, db_expr_t);
> -
> -/*
> - * Flags to pass db_struct_printf().
> - */
> -
> -#define      DBSP_STRUCT_NAME        0x01    /* prepend struct name */
> -#define      DBSP_VALUE              0x02    /* display field value */
> -
> -void
> -db_struct_print_field(uint fidx, int flags, db_expr_t baseaddr)
> -{
> -     const struct ddb_field_info *field;
> -     const struct ddb_struct_info *struc;
> -     db_expr_t value;
> -     uint tmp;
> -     size_t namelen;
> -     int width, basecol, curcol;
> -     char tmpfmt[28];
> -
> -     field = &ddb_field_info[fidx];
> -     basecol = 0;
> -
> -     if (ISSET(flags, DBSP_STRUCT_NAME)) {
> -             struc = &ddb_struct_info[field->sidx];
> -             namelen = strlen(ddb_structfield_strings + struc->name);
> -             db_printf("%-30s ", ddb_structfield_strings + struc->name);
> -             if (namelen > 30)
> -                     basecol += namelen + 1;
> -             else
> -                     basecol += 30 + 1;
> -     }
> -
> -     namelen = strlen(ddb_structfield_strings + field->name);
> -     if (field->nitems == 1) {
> -             db_printf("%-30s ", ddb_structfield_strings + field->name);
> -             if (namelen > 30)
> -                     basecol += namelen + 1;
> -             else
> -                     basecol += 30 + 1;
> -     } else {
> -             width = 30 - 2;
> -             tmp = field->nitems;
> -             while (tmp != 0) {
> -                     width--;
> -                     tmp /= 10;
> -             }
> -             if (namelen >= width) {
> -                     db_printf("%s[%hu] ",
> -                         ddb_structfield_strings + field->name,
> -                         field->nitems);
> -                     basecol += namelen + (30 - width) + 1;
> -             } else {
> -                     db_printf("%s[%hu]%*s ",
> -                         ddb_structfield_strings + field->name,
> -                         field->nitems, width - (int)namelen, "");
> -                     /* namelen + (30-width) + (width-namelen) + 1 */
> -                     basecol += 30 + 1;
> -             }
> -     }
> -
> -     if (field->size == 0) {
> -             db_printf("bitfield");
> -             /* basecol irrelevant from there on */
> -     } else {
> -             snprintf(tmpfmt, sizeof tmpfmt, "%u", (u_int)field->size);
> -             basecol += strlen(tmpfmt) + 1;
> -             db_printf("%s ", tmpfmt);
> -     }
> -
> -     if (ISSET(flags, DBSP_VALUE)) {
> -             /* only print the field value if it has a friendly size. */
> -             switch (field->size) {
> -             case 1:
> -                     width = 4;
> -                     break;
> -             case 2:
> -                     width = 8;
> -                     break;
> -             case 4:
> -                     width = 12;
> -                     break;
> -#ifdef __LP64__
> -             case 8:
> -                     width = 20;
> -                     break;
> -#endif
> -             default:
> -                     width = 0;
> -             }
> -             if (width != 0) {
> -                     baseaddr += field->offs;
> -                     curcol = basecol;
> -                     for (tmp = field->nitems; tmp != 0; tmp--) {
> -                             value = db_get_value(baseaddr, field->size,
> -                                 FALSE); /* assume unsigned */
> -                             db_format(tmpfmt, sizeof tmpfmt, (long)value,
> -                                 DB_FORMAT_N, 0, width);
> -                             if (field->nitems > 1)
> -                                     db_printf("%s", tmpfmt);
> -                             else
> -                                     db_printf("%20s", tmpfmt);
> -                             baseaddr += field->size;
> -
> -                             /*
> -                              * Try to fit array elements on as few lines
> -                              * as possible.
> -                              */
> -                             if (field->nitems > 1 && tmp > 1) {
> -                                     curcol += width + 1;
> -                                     if (basecol >= db_max_width ||
> -                                         curcol + width >= db_max_width) {
> -                                             /* new line */
> -                                             db_printf("\n");
> -                                             if (basecol + width >=
> -                                                 db_max_width) {
> -                                                     db_printf("\t");
> -                                                     curcol = 8;
> -                                             } else {
> -                                                     db_printf("%*s",
> -                                                         basecol, "");
> -                                                     curcol = basecol;
> -                                             }
> -                                     } else
> -                                             db_printf(" ");
> -                             }
> -                     }
> -             }
> -     }
> -
> -     db_printf("\n");
> -}
> -
> -
> -/*
> - * show offset <value>: displays the list of struct fields which exist
> - * at that particular offset from the beginning of the struct.
> - */
> -void
> -db_struct_offset_cmd(db_expr_t addr, int have_addr, db_expr_t count,
> -    char *modifiers)
> -{
> -     db_expr_t offset = 0;
> -     const struct ddb_field_offsets *field;
> -     const ddb_field_off *fidx;
> -     uint oidx;
> -     int width;
> -     char tmpfmt[28];
> -
> -     /*
> -      * Read the offset from the debuggger input.
> -      * We don't want to get it from the standard parsing code, because
> -      * this would set `dot' to this value, which doesn't make sense.
> -      */
> -
> -     if (!db_expression(&offset) || offset < 0) {
> -             db_printf("not a valid offset\n");
> -             db_flush_lex();
> -             return;
> -     }
> -
> -     db_skip_to_eol();
> -
> -     for (field = ddb_field_offsets, oidx = 0; oidx < NOFFS; field++, oidx++)
> -             if (field->offs == (size_t)offset)
> -                     break;
> -
> -     if (oidx == NOFFS) {
> -             width = 0;
> -             db_format(tmpfmt, sizeof tmpfmt, (long)offset,
> -                 DB_FORMAT_N, 0, width);
> -             db_printf("no known structure element at offset %-*s\n",
> -                 width, tmpfmt);
> -             db_flush_lex();
> -             return;
> -     }
> -
> -     db_printf("%-30s %-30s size\n", "struct", "member");
> -     for (fidx = ddb_fields_by_offset + field->list; *fidx != 0; fidx++)
> -             db_struct_print_field(*fidx, DBSP_STRUCT_NAME, 0);
> -}
> -
> -/*
> - * show struct <struct name> [addr]: displays the data starting at addr
> - * (`dot' if unspecified) as a struct of the given type.
> - */
> -void
> -db_struct_layout_cmd(db_expr_t addr, int have_addr, db_expr_t count,
> -    char *modifiers)
> -{
> -     const struct ddb_struct_info *struc;
> -     uint sidx, fidx;
> -     int t;
> -
> -     /*
> -      * Read the struct name from the debugger input.
> -      */
> -
> -     t = db_read_token();
> -     if (t != tIDENT) {
> -             db_printf("Bad struct name\n");
> -             db_flush_lex();
> -             return;
> -     }
> -
> -     for (struc = ddb_struct_info, sidx = 0; sidx < NSTRUCT;
> -         struc++, sidx++)
> -             if (strcmp(ddb_structfield_strings + struc->name,
> -                 db_tok_string) == 0)
> -                     break;
> -
> -     if (sidx == NSTRUCT) {
> -             db_printf("unknown struct %s\n", db_tok_string);
> -             db_flush_lex();
> -             return;
> -     }
> -
> -     /*
> -      * Read the address, if any, from the debugger input.
> -      * In that case, update `dot' value.
> -      */
> -
> -     if (db_expression(&addr)) {
> -             db_dot = (db_addr_t)addr;
> -             db_last_addr = db_dot;
> -     } else
> -             addr = (db_expr_t)db_dot;
> -
> -     db_skip_to_eol();
> -
> -     /*
> -      * Display the structure contents.
> -      */
> -
> -     db_printf("struct %s at %p (%u bytes)\n",
> -         ddb_structfield_strings + struc->name, (void *)addr,
> -         (u_int)struc->size);
> -     for (fidx = struc->fmin; fidx <= struc->fmax; fidx++)
> -             db_struct_print_field(fidx, DBSP_VALUE, addr);
> -}
> Index: ddb//db_structinfo.c
> ===================================================================
> RCS file: ddb//db_structinfo.c
> diff -N ddb//db_structinfo.c
> --- ddb//db_structinfo.c      29 Jul 2017 08:50:42 -0000      1.16
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,106 +0,0 @@
> -/* $OpenBSD: db_structinfo.c,v 1.16 2017/07/29 08:50:42 zhuk Exp $ */
> -/* public domain */
> -/*
> - * This file is intended to be compiled with debug information,
> - * which is then translated by parse_debug.awk into support data
> - * for ddb.
> - */
> -
> -#include <sys/param.h>
> -#include <sys/systm.h>
> -
> -#include <sys/device.h>
> -#include <sys/proc.h>
> -#include <sys/user.h>
> -#include <sys/acct.h>
> -#include <sys/buf.h>
> -#include <sys/conf.h>
> -#include <sys/disk.h>
> -#include <sys/disklabel.h>
> -#include <sys/dirent.h>
> -#include <sys/evcount.h>
> -#include <sys/event.h>
> -#include <sys/eventvar.h>
> -#include <sys/exec.h>
> -#include <sys/extent.h>
> -#include <sys/fcntl.h>
> -#include <sys/file.h>
> -#include <sys/filedesc.h>
> -#include <sys/gpio.h>
> -#include <sys/hotplug.h>
> -#include <sys/ipc.h>
> -#include <sys/kcore.h>
> -#include <sys/kthread.h>
> -#include <sys/ktrace.h>
> -#include <sys/lock.h>
> -#include <sys/lockf.h>
> -#include <sys/malloc.h>
> -#include <sys/mbuf.h>
> -#include <sys/memrange.h>
> -#include <sys/mman.h>
> -#include <sys/mount.h>
> -#include <sys/msg.h>
> -#include <sys/msgbuf.h>
> -#include <sys/namei.h>
> -#include <sys/pipe.h>
> -#include <sys/pool.h>
> -#include <sys/protosw.h>
> -#include <sys/ptrace.h>
> -#include <sys/queue.h>
> -#include <sys/resource.h>
> -#include <sys/resourcevar.h>
> -#include <sys/rwlock.h>
> -#include <sys/sched.h>
> -#include <sys/select.h>
> -#include <sys/selinfo.h>
> -#include <sys/sem.h>
> -#include <sys/sensors.h>
> -#include <sys/shm.h>
> -#include <sys/siginfo.h>
> -#include <sys/signal.h>
> -#include <sys/signalvar.h>
> -#include <sys/socket.h>
> -#include <sys/socketvar.h>
> -#include <sys/stat.h>
> -#include <sys/statvfs.h>
> -#include <sys/swap.h>
> -#include <sys/syscall.h>
> -#include <sys/syscallargs.h>
> -#include <sys/sysctl.h>
> -#include <sys/syslog.h>
> -#include <sys/termios.h>
> -#include <sys/time.h>
> -#include <sys/timeout.h>
> -#include <sys/timetc.h>
> -#include <sys/tprintf.h>
> -#include <sys/tree.h>
> -#include <sys/tty.h>
> -#include <sys/ucred.h>
> -#include <sys/uio.h>
> -#include <sys/un.h>
> -#include <sys/unpcb.h>
> -#include <sys/utsname.h>
> -#include <sys/vmmeter.h>
> -#include <sys/vnode.h>
> -#include <sys/wait.h>
> -
> -#include <machine/cpu.h>
> -#include <machine/conf.h>
> -#include <machine/mutex.h>
> -
> -#include <uvm/uvm.h>
> -
> -/* XXX add filesystem includes there */
> -
> -#include <sys/ataio.h>
> -#include <sys/audioio.h>
> -#include <sys/cdio.h>
> -#include <sys/chio.h>
> -#include <sys/dkio.h>
> -#include <sys/filio.h>
> -#include <sys/mtio.h>
> -#include <sys/pciio.h>
> -#include <sys/radioio.h>
> -#include <sys/scsiio.h>
> -#include <sys/sockio.h>
> -#include <sys/videoio.h>
> Index: ddb//parse_structinfo.pl
> ===================================================================
> RCS file: ddb//parse_structinfo.pl
> diff -N ddb//parse_structinfo.pl
> --- ddb//parse_structinfo.pl  29 Apr 2015 06:06:38 -0000      1.3
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,390 +0,0 @@
> -#!/usr/bin/perl
> -#    $OpenBSD: parse_structinfo.pl,v 1.3 2015/04/29 06:06:38 guenther Exp $
> -#
> -# Copyright (c) 2009 Miodrag Vallat.
> -# Copyright (c) 2013 Philip Guenther.
> -#
> -# Permission to use, copy, modify, and distribute this software for any
> -# purpose with or without fee is hereby granted, provided that the above
> -# copyright notice and this permission notice appear in all copies.
> -#
> -# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
> -# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
> -# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
> -# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
> -# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
> -# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
> -# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
> -#
> -
> -# This ugly script parses the output of objdump -g in order to extract
> -# structure layout information, to be used by ddb.
> -#
> -# The output of this script is the following static data:
> -# - for each struct:
> -#   - its name
> -#   - its size (individual element size if an array)
> -#   - the number of elements in the array (1 if not)
> -#   - its first and last field indexes
> -# - for each field:
> -#   - its name
> -#   - its offset and size
> -#   - the index of the struct it is member of
> -# This allows fast struct -> field information retrieval.
> -#
> -# To retrieve information from a field size or offset, we also output
> -# the following reverse arrays:
> -# - for each offset, in ascending order, a variable length list of field
> -#   indexes.
> -# - for each size, in ascending order, a variable length list of field
> -#   indexes.
> -#
> -# The compromise here is that I want to minimize linear searches. Memory
> -# use is considered secondary, hence the back `pointer' to the struct in the
> -# fields array.
> -
> -use strict;
> -use warnings;
> -use integer;
> -use IO::File;
> -
> -use constant MAX_COLUMN => 72;
> -
> -my $depth = 0;
> -my $ignore = 0;
> -
> -my $cur_struct;
> -
> -my $max_offs = 0;
> -my $max_fsize = 0;
> -my $max_ssize = 0;
> -
> -# Variables used in generating the raw, textual output
> -my $txt;             # IO::File to write to
> -my @id2struct;               # mapping of objdump's struct ids to @structs 
> idxes
> -my @subfield;                # list of subfields to dump at the end
> -
> -# count of how many times each literal string appears
> -my %strings;
> -my @strings_by_len;
> -sub add_string
> -{
> -    my $string = shift;
> -    if ($strings{$string}++ == 0) {
> -     push @{ $strings_by_len[ length $string ] }, $string;
> -    }
> -}
> -
> -my @structs;
> -
> -my %offs_to_fields;
> -my %size_to_fields;
> -my @fields = ( {
> -     name    => "",
> -     offs    => 0,
> -     size    => 0,
> -     items   => 0,
> -     struct  => 0,
> -    } );
> -sub new_field
> -{
> -    my($name, $offs, $size, $items, $id) = @_;
> -
> -    $items //= 1;
> -    add_string($name);
> -    push @fields, {
> -         name        => $name,
> -         offs        => $offs,
> -         size        => $size,
> -         items       => $items,
> -         struct      => scalar(@structs),
> -     };
> -    $max_offs = $offs        if $offs > $max_offs;
> -    $max_fsize = $size       if $size > $max_fsize;
> -    push @{ $offs_to_fields{$offs} }, $#fields;
> -    push @{ $size_to_fields{$size} }, $#fields;
> -    if ($txt) {
> -     raw($offs, $size * $items, $cur_struct->{name}, $name);
> -     if (defined $id) {
> -         push @subfield, [ $cur_struct->{name}, $name, $offs, $id ];
> -     }
> -    }
> -}
> -
> -# Generate textual output for those who are ddb challenged.
> -$txt = IO::File->new("db_structinfo.txt", "w")
> -                     or warn "$0: unable to create db_structinfo.txt: $!";
> -sub raw {
> -    my($offs, $size, $struct, $member) = @_;
> -    $txt->print(join("\t", $offs, $size, $offs+$size, $struct, $member), 
> "\n");
> -}
> -$txt and $txt->print(join("\t", qw(offset size next struct member)), "\n");
> -
> -
> -while (<>) {
> -    chomp;   # strip record separator
> -    if (m!^struct (\w+) \{ /\* size (\d+) id (\d+) !) {
> -     $depth = 1;
> -     $cur_struct = {
> -             name     => $1,
> -             size     => $2,
> -             fieldmin => scalar(@fields)
> -         };
> -     $id2struct[$3] = scalar(@structs);
> -     next
> -    }
> -
> -    if (/^};/) {
> -     if ($depth == 0) {
> -         $ignore--;
> -         next
> -     }
> -     $depth = 0;
> -     if (scalar(@fields) == $cur_struct->{fieldmin}) {
> -         # empty struct, ignore it
> -         undef $cur_struct;
> -         next
> -     }
> -     $cur_struct->{fieldmax} = $#fields;
> -     add_string( $cur_struct->{name} );
> -     $max_ssize = $cur_struct->{size} if $cur_struct->{size} > $max_ssize;
> -     push @structs, $cur_struct;
> -     next
> -    }
> -
> -    next if /\{.*\}/;                # single line enum
> -
> -    if (/\{/) {
> -     # subcomponent
> -     if ($depth) {
> -         $depth++;
> -     } else {
> -         $ignore++;
> -     }
> -     next
> -    }
> -
> -    if (/\}/) {
> -     if ($ignore) {
> -         $ignore--;
> -         next
> -     }
> -     $depth--;
> -     next if $depth != 1;
> -     # FALL THROUGH
> -    }
> -
> -    if (/bitsize (\d+), bitpos (\d+)/) {
> -     next if $ignore;
> -     next if $depth != 1;
> -
> -     # Bitfields are a PITA... From a ddb point of view, we can't really
> -     # access storage units smaller than a byte.
> -     # So we'll report all bitfields as having size 0, and the
> -     # rounded down byte position where they start.
> -     my $cursize = ($1 % 8) ? 0 : ($1 / 8);
> -     my $curoffs = $2 / 8;
> -
> -     # Try and gather the field name.
> -     # The most common case: not a function pointer or array
> -     if (m!\s(\**)(\w+);\s/\* bitsize!) {
> -         my $pointer = $1 ne "";
> -         my $name = $2;
> -         # check for a struct id to match up
> -         my($id) = !$pointer && m!/\* id (\d+) \*/.*;!;
> -         new_field($name, $curoffs, $cursize, 1, $id);
> -         next
> -     }
> -
> -     # How about a function pointer?
> -     if (m!\s\**\(\*+(\w+)\) \(/\* unknown \*/\);\s/\* bitsize!) {
> -         new_field($1, $curoffs, $cursize);
> -         next
> -     }
> -
> -     # Maybe it's an array
> -     if (m!\s(\**)([][:\w]+);\s/\* bitsize!) {
> -         my $pointer = $1 ne "";
> -         my $name = $2;
> -         my $items = 1;
> -         while ($name =~ s/\[(\d+)\]:\w+//) {
> -             $items *= $1;
> -         }
> -         # check for a struct id to match up
> -         my($id) = !$pointer && m!/\* id (\d+) \*/.*;!;
> -         new_field($name, $curoffs, $cursize / $items, $items, $id);
> -         next
> -     }
> -
> -     # skip any anonymous unions {
> -     next if m!\}; /\*!;
> -
> -     # Should be nothing left
> -     print STDERR "unknown member type: $_\n";
> -     next
> -    }
> -}
> -
> -# Do all the subfield processing
> -# XXX Should recurse into subsub...fields?
> -foreach my $sf (@subfield) {
> -    my($struct_name, $name, $offs, $id) = @$sf;
> -    my $s = $id2struct[$id];
> -
> -    # We don't remember unions.  No point in doing so
> -    next if !defined $s;
> -
> -    my $struct = $structs[$s];
> -    foreach my $i ($struct->{fieldmin} .. $struct->{fieldmax}) {
> -     my $f = $fields[$i];
> -     raw($offs + $f->{offs}, $f->{size} * $f->{items},
> -                     $struct_name, "$name.$f->{name}");
> -    }
> -}
> -
> -# Pick a type for ddb_field_off: if the offsets and sizes are all less than
> -# 65536 then we'll use u_short, otherwise u_int.
> -my $f_type = "u_short";
> -if ($max_offs > 65535 || $max_fsize > 65535 || $max_ssize > 65535) {
> -    $f_type = "u_int";
> -    print STDERR "Using u_int for struct/field sizes and offsets\n";
> -}
> -
> -
> -print <<EOM;
> -/*
> - * THIS IS A GENERATED FILE.  DO NOT EDIT!
> - */
> -
> -#include <sys/param.h>
> -#include <sys/types.h>
> -
> -typedef $f_type ddb_field_off;
> -
> -struct ddb_struct_info {
> -     u_short name;
> -     ddb_field_off size;
> -     u_short fmin, fmax;
> -};
> -struct ddb_field_info {
> -     u_short name;
> -     u_short sidx;
> -     ddb_field_off offs;
> -     ddb_field_off size;
> -     u_short nitems;
> -};
> -struct ddb_field_offsets {
> -     ddb_field_off offs;
> -     u_short list;
> -};
> -struct ddb_field_sizes {
> -     ddb_field_off size;
> -     u_short list;
> -};
> -EOM
> -
> -my $prefix = qq(static const char ddb_structfield_strings[] =\n\t"\\0);
> -my %string_to_offset = ( "" => 0 );
> -my $soff = 1;
> -for (my $len = $#strings_by_len; $len > 0; $len--) {
> -    foreach my $string (@{ $strings_by_len[$len] }) {
> -     next if exists $string_to_offset{$string};
> -     my $off = $string_to_offset{$string} = $soff;
> -     $soff += $len + 1;      # for the NUL
> -     print $prefix, $string;
> -     $prefix = qq(\\0"\n\t");
> -
> -     # check for suffixes that are also strings
> -     for (my $o = 1; $o < $len; $o++) {
> -         my $sstr = substr($string, $o);
> -         next unless exists $strings{$sstr};
> -         next if exists $string_to_offset{$sstr};
> -         $string_to_offset{$sstr} = $off + $o;
> -         #print STDERR "found $sstr inside $string\n";
> -     }
> -    }
> -}
> -print qq(";\n);
> -
> -sub resolve_string
> -{
> -    my $string = shift;
> -    if (! exists $string_to_offset{$string}) {
> -     die "no mapping for $string";
> -    }
> -    return $string_to_offset{$string};
> -}
> -
> -# Check for overflow and, if so, print some stats
> -if ($soff > 65535 || @structs > 65535 || @fields > 65535) {
> -    print STDERR <<EOM;
> -ERROR: value out of range of u_short  Time to change types?
> -
> -max string offset: $soff
> -max field offset: $max_offs
> -max field size: $max_fsize
> -max struct size: $max_ssize
> -number of structs: ${\scalar(@structs)}
> -number of fields: ${\scalar(@fields)}
> -EOM
> -    exit 1
> -}
> -
> -
> -print "#define NSTRUCT ", scalar(@structs), "\n";
> -print "static const struct ddb_struct_info ddb_struct_info[NSTRUCT] = {\n";
> -
> -foreach my $s (@structs) {
> -    my $name = resolve_string($s->{name});
> -    print "\t{ ",
> -     join(", ", $name, @{$s}{qw( size fieldmin fieldmax )}),
> -        " },\n";
> -}
> -printf "};\n\n";
> -
> -print "#define NFIELD ", scalar(@fields), "\n";
> -print "static const struct ddb_field_info ddb_field_info[NFIELD] = {\n";
> -foreach my $f (@fields) {
> -    my $name = resolve_string($f->{name});
> -    print "\t{ ",
> -     join(", ", $name, @{$f}{qw( struct offs size items )}),
> -        " },\n";
> -}
> -printf "};\n\n";
> -
> -
> -# Given a mapping from values to fields that have that value, generate
> -# two C arrays: one containing lists of fields with each value, in order;
> -# the other indexing into that one for each value.  I.e., to get the
> -# fields that have a given value, find the value in the second array and
> -# then iterate from where that points into the first array until you hit
> -# an entry with field==0.
> -sub print_reverse_mapping
> -{
> -    my($prefix, $map, $max) = @_;
> -    print "static const ddb_field_off ddb_fields_by_${prefix}[] = {";
> -    my @heads;
> -    my $w = 0;
> -    foreach my $val (sort { $a <=> $b } keys %$map) {
> -     push @heads, [$val, $w];
> -     foreach my $field (@{ $map->{$val} }, 0) {
> -         print( ($w++ % 10) == 0 ? "\n\t" : " ", $field, ",");
> -     }
> -    }
> -    print "\n};\n\n";
> -    print "#define $max ", scalar(@heads), "\n";
> -    print "static const struct ddb_field_${prefix}s",
> -             " ddb_field_${prefix}s[$max] = {\n";
> -    foreach my $h (@heads) {
> -     print "\t{ $h->[0], $h->[1] },\n";
> -    }
> -    print "};\n";
> -}
> -
> -# reverse arrays
> -print_reverse_mapping("offset", \%offs_to_fields, "NOFFS");
> -print "\n";
> -
> -# The size->field mapping isn't used by ddb currently, so don't output it
> -# print_reverse_mapping("size", \%size_to_fields, "NSIZES");
> -
> Index: arch/alpha/conf/Makefile.alpha
> ===================================================================
> RCS file: /cvs/src/sys/arch/alpha/conf/Makefile.alpha,v
> retrieving revision 1.107
> diff -u -p -r1.107 Makefile.alpha
> --- arch/alpha/conf/Makefile.alpha    12 Aug 2017 20:26:11 -0000      1.107
> +++ arch/alpha/conf/Makefile.alpha    11 Sep 2017 09:04:51 -0000
> @@ -45,12 +45,6 @@ CFLAGS=            ${DEBUG} ${CWARNFLAGS} ${CMACHF
>  AFLAGS=              -D_LOCORE -x assembler-with-cpp ${CWARNFLAGS} 
> ${CMACHFLAGS}
>  LINKFLAGS=   -T ld.script -X -N -G 4 --warn-common -nopie
>  
> -.if ${IDENT:M-DDDB_STRUCT}
> -DB_STRUCTINFO=       db_structinfo.h
> -.else
> -DB_STRUCTINFO=
> -.endif
> -
>  HOSTCC?=     ${CC}
>  HOSTED_CPPFLAGS=${CPPFLAGS:S/^-nostdinc$//}
>  HOSTED_CFLAGS=       ${CFLAGS}
> @@ -134,7 +128,7 @@ vers.o: ${SYSTEM_DEP:Ngap.o}
>       ${CC} ${CFLAGS} ${CPPFLAGS} ${PROF} -c vers.c
>  
>  clean:
> -     rm -f *bsd *bsd.gdb *.[dio] [a-z]*.s assym.* ${DB_STRUCTINFO} \
> +     rm -f *bsd *bsd.gdb *.[dio] [a-z]*.s assym.* \
>           gap.link ld.script lorder makegap.sh param.c
>  
>  cleandir: clean
> @@ -142,11 +136,6 @@ cleandir: clean
>  
>  depend obj:
>  
> -db_structinfo.h: $S/ddb/db_structinfo.c $S/ddb/parse_structinfo.pl
> -     ${CC} ${CFLAGS} ${CPPFLAGS} -MT $@ -gstabs -c $S/ddb/db_structinfo.c
> -     objdump -g db_structinfo.o | perl $S/ddb/parse_structinfo.pl > $@
> -     rm -f db_structinfo.o
> -
>  locore0.o: ${_machdir}/${_mach}/locore0.S assym.h
>  locore.o: ${_machdir}/${_mach}/locore.s assym.h
>  
> @@ -156,19 +145,5 @@ newinstall:
>           sha256 -h /var/db/kernel.SHA256 /bsd
>  
>  install: update-link newinstall
> -
> -# pull in the dependency information
> -.if !empty(DB_STRUCTINFO) && !exists(${DB_STRUCTINFO})
> - ${SYSTEM_OBJ}: ${DB_STRUCTINFO}
> -.endif
> -.ifnmake clean
> -. for o in ${SYSTEM_OBJ:Ngap.o} assym.h ${DB_STRUCTINFO}
> -.  if exists(${o:R}.d)
> -.   include "${o:R}.d"
> -.  elif exists($o)
> -    .PHONY: $o
> -.  endif
> -. endfor
> -.endif
>  
>  %RULES
> Index: arch/amd64/conf/Makefile.amd64
> ===================================================================
> RCS file: /cvs/src/sys/arch/amd64/conf/Makefile.amd64,v
> retrieving revision 1.92
> diff -u -p -r1.92 Makefile.amd64
> --- arch/amd64/conf/Makefile.amd64    12 Aug 2017 20:26:11 -0000      1.92
> +++ arch/amd64/conf/Makefile.amd64    11 Sep 2017 09:05:10 -0000
> @@ -51,12 +51,6 @@ CFLAGS=            ${DEBUG} ${CWARNFLAGS} ${CMACHF
>  AFLAGS=              -D_LOCORE -x assembler-with-cpp ${CWARNFLAGS} 
> ${CMACHFLAGS}
>  LINKFLAGS=   -T ld.script -X --warn-common -nopie
>  
> -.if ${IDENT:M-DDDB_STRUCT}
> -DB_STRUCTINFO=       db_structinfo.h
> -.else
> -DB_STRUCTINFO=
> -.endif
> -
>  HOSTCC?=     ${CC}
>  HOSTED_CPPFLAGS=${CPPFLAGS:S/^-nostdinc$//}
>  HOSTED_CFLAGS=       ${CFLAGS}
> @@ -140,7 +134,7 @@ vers.o: ${SYSTEM_DEP:Ngap.o}
>       ${CC} ${CFLAGS} ${CPPFLAGS} ${PROF} -c vers.c
>  
>  clean:
> -     rm -f *bsd *bsd.gdb *.[dio] [a-z]*.s assym.* ${DB_STRUCTINFO} \
> +     rm -f *bsd *bsd.gdb *.[dio] [a-z]*.s assym.* \
>           gap.link ld.script lorder makegap.sh param.c
>  
>  cleandir: clean
> @@ -148,11 +142,6 @@ cleandir: clean
>  
>  depend obj:
>  
> -db_structinfo.h: $S/ddb/db_structinfo.c $S/ddb/parse_structinfo.pl
> -     ${CC} ${CFLAGS} ${CPPFLAGS} -MT $@ -gstabs -c $S/ddb/db_structinfo.c
> -     objdump -g db_structinfo.o | perl $S/ddb/parse_structinfo.pl > $@
> -     rm -f db_structinfo.o
> -
>  locore0.o: ${_machdir}/${_mach}/locore0.S assym.h
>  locore.o mutex.o vector.o copy.o spl.o: assym.h
>  mptramp.o acpi_wakecode.o vmm_support.o: assym.h
> @@ -163,19 +152,5 @@ newinstall:
>           sha256 -h /var/db/kernel.SHA256 /bsd
>  
>  install: update-link newinstall
> -
> -# pull in the dependency information
> -.if !empty(DB_STRUCTINFO) && !exists(${DB_STRUCTINFO})
> - ${SYSTEM_OBJ}: ${DB_STRUCTINFO}
> -.endif
> -.ifnmake clean
> -. for o in ${SYSTEM_OBJ:Ngap.o} assym.h ${DB_STRUCTINFO}
> -.  if exists(${o:R}.d)
> -.   include "${o:R}.d"
> -.  elif exists($o)
> -    .PHONY: $o
> -.  endif
> -. endfor
> -.endif
>  
>  %RULES
> Index: arch/arm64/conf/Makefile.arm64
> ===================================================================
> RCS file: /cvs/src/sys/arch/arm64/conf/Makefile.arm64,v
> retrieving revision 1.21
> diff -u -p -r1.21 Makefile.arm64
> --- arch/arm64/conf/Makefile.arm64    12 Aug 2017 20:26:11 -0000      1.21
> +++ arch/arm64/conf/Makefile.arm64    11 Sep 2017 09:09:04 -0000
> @@ -46,12 +46,6 @@ CFLAGS=            ${DEBUG} ${CWARNFLAGS} ${CMACHF
>  AFLAGS=              -D_LOCORE -x assembler-with-cpp ${CWARNFLAGS} 
> ${CMACHFLAGS}
>  LINKFLAGS=   -T ld.script -X --warn-common -nopie
>  
> -.if ${IDENT:M-DDDB_STRUCT}
> -DB_STRUCTINFO=       db_structinfo.h
> -.else
> -DB_STRUCTINFO=
> -.endif
> -
>  HOSTCC?=     ${CC}
>  HOSTED_CPPFLAGS=${CPPFLAGS:S/^-nostdinc$//}
>  HOSTED_CFLAGS=       ${CFLAGS}
> @@ -140,7 +134,7 @@ vers.o: ${SYSTEM_DEP:Ngap.o}
>       ${CC} ${CFLAGS} ${CPPFLAGS} ${PROF} -c vers.c
>  
>  clean:
> -     rm -f *bsd *bsd.gdb *.[dio] [a-z]*.s assym.* ${DB_STRUCTINFO} \
> +     rm -f *bsd *bsd.gdb *.[dio] [a-z]*.s assym.* \
>           gap.link ld.script lorder makegap.sh param.c
>  
>  cleandir: clean
> @@ -148,11 +142,6 @@ cleandir: clean
>  
>  depend obj:
>  
> -db_structinfo.h: $S/ddb/db_structinfo.c $S/ddb/parse_structinfo.pl
> -     ${CC} ${CFLAGS} ${CPPFLAGS} -MT $@ -gstabs -c $S/ddb/db_structinfo.c
> -     objdump -g db_structinfo.o | perl $S/ddb/parse_structinfo.pl > $@
> -     rm -f db_structinfo.o
> -
>  locore0.o: ${_archdir}/${_arch}/locore0.S assym.h
>  in_cksum_arm.o fiq_subr.o bcopyinout.o copystr.o sigcode.o copy.o: assym.h
>  vectors.o cpuswitch.o exception.o bcopy_page.o irq_dispatch.o support.o: 
> assym.h
> @@ -164,21 +153,6 @@ newinstall:
>           sha256 -h /var/db/kernel.SHA256 /bsd
>  
>  install: update-link newinstall
> -
> -# pull in the dependency information
> -.if !empty(DB_STRUCTINFO) && !exists(${DB_STRUCTINFO})
> - ${SYSTEM_OBJ}: ${DB_STRUCTINFO}
> -.endif
> -.ifnmake clean
> -. for o in ${SYSTEM_OBJ:Ngap.o} assym.h ${DB_STRUCTINFO}
> -.  if exists(${o:R}.d)
> -.   include "${o:R}.d"
> -.  elif exists($o)
> -    .PHONY: $o
> -.  endif
> -. endfor
> -.endif
> -
>  
>  ## for qemu this is where ram is located
>  RAM_ADDR?=0x40000000
> Index: arch/armv7/conf/Makefile.armv7
> ===================================================================
> RCS file: /cvs/src/sys/arch/armv7/conf/Makefile.armv7,v
> retrieving revision 1.34
> diff -u -p -r1.34 Makefile.armv7
> --- arch/armv7/conf/Makefile.armv7    12 Aug 2017 20:26:11 -0000      1.34
> +++ arch/armv7/conf/Makefile.armv7    11 Sep 2017 09:27:28 -0000
> @@ -43,12 +43,6 @@ CFLAGS=            ${DEBUG} ${CWARNFLAGS} ${CMACHF
>  AFLAGS=              -D_LOCORE -x assembler-with-cpp ${CWARNFLAGS} 
> ${CMACHFLAGS}
>  LINKFLAGS=   -T ld.script --warn-common -nopie
>  
> -.if ${IDENT:M-DDDB_STRUCT}
> -DB_STRUCTINFO=       db_structinfo.h
> -.else
> -DB_STRUCTINFO=
> -.endif
> -
>  HOSTCC?=     ${CC}
>  HOSTED_CPPFLAGS=${CPPFLAGS:S/^-nostdinc$//}
>  HOSTED_CFLAGS=       ${CFLAGS}
> @@ -139,7 +133,7 @@ vers.o: ${SYSTEM_DEP:Ngap.o}
>       ${CC} ${CFLAGS} ${CPPFLAGS} ${PROF} -c vers.c
>  
>  clean:
> -     rm -f *bsd *bsd.gdb *.[dio] [a-z]*.s assym.* ${DB_STRUCTINFO} \
> +     rm -f *bsd *bsd.gdb *.[dio] [a-z]*.s assym.* \
>           gap.link ld.script lorder makegap.sh param.c
>  
>  cleandir: clean
> @@ -147,11 +141,6 @@ cleandir: clean
>  
>  depend obj:
>  
> -db_structinfo.h: $S/ddb/db_structinfo.c $S/ddb/parse_structinfo.pl
> -     ${CC} ${CFLAGS} ${CPPFLAGS} -MT $@ -gstabs -c $S/ddb/db_structinfo.c
> -     objdump -g db_structinfo.o | perl $S/ddb/parse_structinfo.pl > $@
> -     rm -f db_structinfo.o
> -
>  locore0.o: ${_machdir}/${_mach}/locore0.S assym.h
>  in_cksum_arm.o fiq_subr.o bcopyinout.o copystr.o sigcode.o: assym.h
>  vectors.o cpuswitch7.o exception.o bcopy_page.o irq_dispatch.o: assym.h
> @@ -163,21 +152,6 @@ newinstall:
>           sha256 -h /var/db/kernel.SHA256 /bsd
>  
>  install: update-link newinstall
> -
> -# pull in the dependency information
> -.if !empty(DB_STRUCTINFO) && !exists(${DB_STRUCTINFO})
> - ${SYSTEM_OBJ}: ${DB_STRUCTINFO}
> -.endif
> -.ifnmake clean
> -. for o in ${SYSTEM_OBJ:Ngap.o} assym.h ${DB_STRUCTINFO}
> -.  if exists(${o:R}.d)
> -.   include "${o:R}.d"
> -.  elif exists($o)
> -    .PHONY: $o
> -.  endif
> -. endfor
> -.endif
> -
>  
>  # until we get native booting working, put this in the tree.
>  KERNADDR_OMAP=0x80300000
> Index: arch/hppa/conf/Makefile.hppa
> ===================================================================
> RCS file: /cvs/src/sys/arch/hppa/conf/Makefile.hppa,v
> retrieving revision 1.101
> diff -u -p -r1.101 Makefile.hppa
> --- arch/hppa/conf/Makefile.hppa      12 Aug 2017 20:26:11 -0000      1.101
> +++ arch/hppa/conf/Makefile.hppa      11 Sep 2017 09:09:33 -0000
> @@ -53,12 +53,6 @@ CFLAGS+=   -mpa-risc-2-0
>  CFLAGS+=     -mpa-risc-1-1
>  .endif
>  
> -.if ${IDENT:M-DDDB_STRUCT}
> -DB_STRUCTINFO=       db_structinfo.h
> -.else
> -DB_STRUCTINFO=
> -.endif
> -
>  HOSTCC?=     ${CC}
>  HOSTED_CPPFLAGS=${CPPFLAGS:S/^-nostdinc$//}
>  HOSTED_CFLAGS=       ${CFLAGS}
> @@ -142,7 +136,7 @@ vers.o: ${SYSTEM_DEP:Ngap.o}
>       ${CC} ${CFLAGS} ${CPPFLAGS} ${PROF} -c vers.c
>  
>  clean:
> -     rm -f *bsd *bsd.gdb *.[dio] [a-z]*.s assym.* ${DB_STRUCTINFO} \
> +     rm -f *bsd *bsd.gdb *.[dio] [a-z]*.s assym.* \
>           gap.link ld.script lorder makegap.sh param.c
>  
>  cleandir: clean
> @@ -150,11 +144,6 @@ cleandir: clean
>  
>  depend obj:
>  
> -db_structinfo.h: $S/ddb/db_structinfo.c $S/ddb/parse_structinfo.pl
> -     ${CC} ${CFLAGS} ${CPPFLAGS} -MT $@ -gstabs -c $S/ddb/db_structinfo.c
> -     objdump -g db_structinfo.o | perl $S/ddb/parse_structinfo.pl > $@
> -     rm -f db_structinfo.o
> -
>  locore0.o: ${_machdir}/${_mach}/locore0.S assym.h
>  locore.o: ${_machdir}/${_mach}/locore.S assym.h
>  fpemu.o spcopy.o: assym.h
> @@ -165,19 +154,5 @@ newinstall:
>           sha256 -h /var/db/kernel.SHA256 /bsd
>  
>  install: update-link newinstall
> -
> -# pull in the dependency information
> -.if !empty(DB_STRUCTINFO) && !exists(${DB_STRUCTINFO})
> - ${SYSTEM_OBJ}: ${DB_STRUCTINFO}
> -.endif
> -.ifnmake clean
> -. for o in ${SYSTEM_OBJ:Ngap.o} assym.h ${DB_STRUCTINFO}
> -.  if exists(${o:R}.d)
> -.   include "${o:R}.d"
> -.  elif exists($o)
> -    .PHONY: $o
> -.  endif
> -. endfor
> -.endif
>  
>  %RULES
> Index: arch/i386/conf/Makefile.i386
> ===================================================================
> RCS file: /cvs/src/sys/arch/i386/conf/Makefile.i386,v
> retrieving revision 1.117
> diff -u -p -r1.117 Makefile.i386
> --- arch/i386/conf/Makefile.i386      12 Aug 2017 20:26:11 -0000      1.117
> +++ arch/i386/conf/Makefile.i386      11 Sep 2017 09:09:48 -0000
> @@ -53,12 +53,6 @@ AFLAGS+=   -m32
>  LINKFLAGS+= -melf_i386_obsd
>  .endif
>  
> -.if ${IDENT:M-DDDB_STRUCT}
> -DB_STRUCTINFO=       db_structinfo.h
> -.else
> -DB_STRUCTINFO=
> -.endif
> -
>  HOSTCC?=     ${CC}
>  HOSTED_CPPFLAGS=${CPPFLAGS:S/^-nostdinc$//}
>  HOSTED_CFLAGS=       ${CFLAGS}
> @@ -142,7 +136,7 @@ vers.o: ${SYSTEM_DEP:Ngap.o}
>       ${CC} ${CFLAGS} ${CPPFLAGS} ${PROF} -c vers.c
>  
>  clean:
> -     rm -f *bsd *bsd.gdb *.[dio] [a-z]*.s assym.* ${DB_STRUCTINFO} \
> +     rm -f *bsd *bsd.gdb *.[dio] [a-z]*.s assym.* \
>           gap.link ld.script lorder makegap.sh param.c
>  
>  cleandir: clean
> @@ -150,11 +144,6 @@ cleandir: clean
>  
>  depend obj:
>  
> -db_structinfo.h: $S/ddb/db_structinfo.c $S/ddb/parse_structinfo.pl
> -     ${CC} ${CFLAGS} ${CPPFLAGS} -MT $@ -gstabs -c $S/ddb/db_structinfo.c
> -     objdump -g db_structinfo.o | perl $S/ddb/parse_structinfo.pl > $@
> -     rm -f db_structinfo.o
> -
>  locore0.o: ${_machdir}/${_mach}/locore0.S assym.h
>  locore.o mutex.o in_cksum.o mptramp.o: assym.h
>  kvm86call.o acpi_wakecode.o vmm_support.o: assym.h
> @@ -165,19 +154,5 @@ newinstall:
>           sha256 -h /var/db/kernel.SHA256 /bsd
>  
>  install: update-link newinstall
> -
> -# pull in the dependency information
> -.if !empty(DB_STRUCTINFO) && !exists(${DB_STRUCTINFO})
> - ${SYSTEM_OBJ}: ${DB_STRUCTINFO}
> -.endif
> -.ifnmake clean
> -. for o in ${SYSTEM_OBJ:Ngap.o} assym.h ${DB_STRUCTINFO}
> -.  if exists(${o:R}.d)
> -.   include "${o:R}.d"
> -.  elif exists($o)
> -    .PHONY: $o
> -.  endif
> -. endfor
> -.endif
>  
>  %RULES
> Index: arch/landisk/conf/Makefile.landisk
> ===================================================================
> RCS file: /cvs/src/sys/arch/landisk/conf/Makefile.landisk,v
> retrieving revision 1.73
> diff -u -p -r1.73 Makefile.landisk
> --- arch/landisk/conf/Makefile.landisk        12 Aug 2017 20:26:11 -0000      
> 1.73
> +++ arch/landisk/conf/Makefile.landisk        11 Sep 2017 09:10:05 -0000
> @@ -45,12 +45,6 @@ CFLAGS=            ${DEBUG} ${CWARNFLAGS} ${CMACHF
>  AFLAGS=              -D_LOCORE -x assembler-with-cpp ${CWARNFLAGS} 
> ${CMACHFLAGS}
>  LINKFLAGS=   -N -Ttext 0x8c002000 -e start --warn-common -nopie
>  
> -.if ${IDENT:M-DDDB_STRUCT}
> -DB_STRUCTINFO=       db_structinfo.h
> -.else
> -DB_STRUCTINFO=
> -.endif
> -
>  HOSTCC?=     ${CC}
>  HOSTED_CPPFLAGS=${CPPFLAGS:S/^-nostdinc$//}
>  HOSTED_CFLAGS=       ${CFLAGS}
> @@ -134,7 +128,7 @@ vers.o: ${SYSTEM_DEP:Ngap.o}
>       ${CC} ${CFLAGS} ${CPPFLAGS} ${PROF} -c vers.c
>  
>  clean:
> -     rm -f *bsd *bsd.gdb *.[dio] [a-z]*.s assym.* ${DB_STRUCTINFO} \
> +     rm -f *bsd *bsd.gdb *.[dio] [a-z]*.s assym.* \
>           gap.link ld.script lorder makegap.sh param.c
>  
>  cleandir: clean
> @@ -142,11 +136,6 @@ cleandir: clean
>  
>  depend obj:
>  
> -db_structinfo.h: $S/ddb/db_structinfo.c $S/ddb/parse_structinfo.pl
> -     ${CC} ${CFLAGS} ${CPPFLAGS} -MT $@ -gstabs -c $S/ddb/db_structinfo.c
> -     objdump -g db_structinfo.o | perl $S/ddb/parse_structinfo.pl > $@
> -     rm -f db_structinfo.o
> -
>  locore.o: ${_machdir}/${_mach}/locore.S assym.h
>  locore0.o: ${_machdir}/${_mach}/locore0.S assym.h
>  locore_subr.o vectors.o in_cksum.o: assym.h
> @@ -157,19 +146,5 @@ newinstall:
>           sha256 -h /var/db/kernel.SHA256 /bsd
>  
>  install: update-link newinstall
> -
> -# pull in the dependency information
> -.if !empty(DB_STRUCTINFO) && !exists(${DB_STRUCTINFO})
> - ${SYSTEM_OBJ}: ${DB_STRUCTINFO}
> -.endif
> -.ifnmake clean
> -. for o in ${SYSTEM_OBJ:Ngap.o} assym.h ${DB_STRUCTINFO}
> -.  if exists(${o:R}.d)
> -.   include "${o:R}.d"
> -.  elif exists($o)
> -    .PHONY: $o
> -.  endif
> -. endfor
> -.endif
>  
>  %RULES
> Index: arch/loongson/conf/Makefile.loongson
> ===================================================================
> RCS file: /cvs/src/sys/arch/loongson/conf/Makefile.loongson,v
> retrieving revision 1.66
> diff -u -p -r1.66 Makefile.loongson
> --- arch/loongson/conf/Makefile.loongson      12 Aug 2017 20:26:11 -0000      
> 1.66
> +++ arch/loongson/conf/Makefile.loongson      11 Sep 2017 09:10:19 -0000
> @@ -50,12 +50,6 @@ CFLAGS=            ${DEBUG} ${CWARNFLAGS} ${CMACHF
>  AFLAGS=              -D_LOCORE -x assembler-with-cpp ${CWARNFLAGS} 
> ${CMACHFLAGS}
>  LINKFLAGS=   -e start -T ld.script -Ttext=${LINK_ADDRESS} -warn-common -nopie
>  
> -.if ${IDENT:M-DDDB_STRUCT}
> -DB_STRUCTINFO=       db_structinfo.h
> -.else
> -DB_STRUCTINFO=
> -.endif
> -
>  HOSTCC?=     ${CC}
>  HOSTED_CPPFLAGS=${CPPFLAGS:S/^-nostdinc$//}
>  HOSTED_CFLAGS=       ${CFLAGS}
> @@ -143,7 +137,7 @@ vers.o: ${SYSTEM_DEP:Ngap.o}
>       ${CC} ${CFLAGS} ${CPPFLAGS} ${PROF} -c vers.c
>  
>  clean:
> -     rm -f *bsd *bsd.gdb *.[dio] [a-z]*.s assym.* ${DB_STRUCTINFO} \
> +     rm -f *bsd *bsd.gdb *.[dio] [a-z]*.s assym.* \
>           gap.link ld.script lorder makegap.sh param.c
>  
>  cleandir: clean
> @@ -155,11 +149,6 @@ symbols.sort: ${_machdir}/${_mach}/symbo
>  
>  depend obj:
>  
> -db_structinfo.h: $S/ddb/db_structinfo.c $S/ddb/parse_structinfo.pl
> -     ${CC} ${CFLAGS} ${CPPFLAGS} -MT $@ -gstabs -c $S/ddb/db_structinfo.c
> -     objdump -g db_structinfo.o | perl $S/ddb/parse_structinfo.pl > $@
> -     rm -f db_structinfo.o
> -
>  locore0.o: ${_machdir}/${_mach}/locore0.S assym.h
>  context.o cp0access.o exception.o locore.o: assym.h
>  lcore_access.o lcore_ddb.o lcore_float.o tlbhandler.o: assym.h
> @@ -171,19 +160,5 @@ newinstall:
>           sha256 -h /var/db/kernel.SHA256 /bsd
>  
>  install: update-link newinstall
> -
> -# pull in the dependency information
> -.if !empty(DB_STRUCTINFO) && !exists(${DB_STRUCTINFO})
> - ${SYSTEM_OBJ}: ${DB_STRUCTINFO}
> -.endif
> -.ifnmake clean
> -. for o in ${SYSTEM_OBJ:Ngap.o} assym.h ${DB_STRUCTINFO}
> -.  if exists(${o:R}.d)
> -.   include "${o:R}.d"
> -.  elif exists($o)
> -    .PHONY: $o
> -.  endif
> -. endfor
> -.endif
>  
>  %RULES
> Index: arch/luna88k/conf/Makefile.luna88k
> ===================================================================
> RCS file: /cvs/src/sys/arch/luna88k/conf/Makefile.luna88k,v
> retrieving revision 1.76
> diff -u -p -r1.76 Makefile.luna88k
> --- arch/luna88k/conf/Makefile.luna88k        12 Aug 2017 20:26:11 -0000      
> 1.76
> +++ arch/luna88k/conf/Makefile.luna88k        11 Sep 2017 09:10:36 -0000
> @@ -45,12 +45,6 @@ CFLAGS=            ${DEBUG} ${CWARNFLAGS} ${CMACHF
>  AFLAGS=              -D_LOCORE -x assembler-with-cpp ${CWARNFLAGS} 
> ${CMACHFLAGS}
>  LINKFLAGS=   -T ld.script -Ttext 0x80000 -e __start -X -N --warn-common 
> -nopie
>  
> -.if ${IDENT:M-DDDB_STRUCT}
> -DB_STRUCTINFO=       db_structinfo.h
> -.else
> -DB_STRUCTINFO=
> -.endif
> -
>  HOSTCC?=     ${CC}
>  HOSTED_CPPFLAGS=${CPPFLAGS:S/^-nostdinc$//}
>  HOSTED_CFLAGS=       ${CFLAGS}
> @@ -138,7 +132,7 @@ vers.o: ${SYSTEM_DEP:Ngap.o}
>       ${CC} ${CFLAGS} ${CPPFLAGS} ${PROF} -c vers.c
>  
>  clean:
> -     rm -f *bsd *bsd.gdb *.[dio] [a-z]*.s assym.* ${DB_STRUCTINFO} \
> +     rm -f *bsd *bsd.gdb *.[dio] [a-z]*.s assym.* \
>           gap.link ld.script lorder makegap.sh param.c
>  
>  cleandir: clean
> @@ -146,11 +140,6 @@ cleandir: clean
>  
>  depend obj:
>  
> -db_structinfo.h: $S/ddb/db_structinfo.c $S/ddb/parse_structinfo.pl
> -     ${CC} ${CFLAGS} ${CPPFLAGS} -MT $@ -gstabs -c $S/ddb/db_structinfo.c
> -     objdump -g db_structinfo.o | perl $S/ddb/parse_structinfo.pl > $@
> -     rm -f db_structinfo.o
> -
>  locore0.o: ${_machdir}/${_mach}/locore0.S assym.h
>  locore.o eh.o mutex.o process.o subr.o: assym.h
>  
> @@ -160,19 +149,5 @@ newinstall:
>           sha256 -h /var/db/kernel.SHA256 /bsd
>  
>  install: update-link newinstall
> -
> -# pull in the dependency information
> -.if !empty(DB_STRUCTINFO) && !exists(${DB_STRUCTINFO})
> - ${SYSTEM_OBJ}: ${DB_STRUCTINFO}
> -.endif
> -.ifnmake clean
> -. for o in ${SYSTEM_OBJ:Ngap.o} assym.h ${DB_STRUCTINFO}
> -.  if exists(${o:R}.d)
> -.   include "${o:R}.d"
> -.  elif exists($o)
> -    .PHONY: $o
> -.  endif
> -. endfor
> -.endif
>  
>  %RULES
> Index: arch/macppc/conf/Makefile.macppc
> ===================================================================
> RCS file: /cvs/src/sys/arch/macppc/conf/Makefile.macppc,v
> retrieving revision 1.90
> diff -u -p -r1.90 Makefile.macppc
> --- arch/macppc/conf/Makefile.macppc  12 Aug 2017 20:26:11 -0000      1.90
> +++ arch/macppc/conf/Makefile.macppc  11 Sep 2017 09:10:50 -0000
> @@ -45,12 +45,6 @@ CFLAGS=            ${DEBUG} ${CWARNFLAGS} ${CMACHF
>  AFLAGS=              -D_LOCORE ${CMACHFLAGS}
>  LINKFLAGS=   -N -Ttext 100114 -e start --warn-common -nopie
>  
> -.if ${IDENT:M-DDDB_STRUCT}
> -DB_STRUCTINFO=       db_structinfo.h
> -.else
> -DB_STRUCTINFO=
> -.endif
> -
>  HOSTCC?=     ${CC}
>  HOSTED_CPPFLAGS=${CPPFLAGS:S/^-nostdinc$//}
>  HOSTED_CFLAGS=       ${CFLAGS}
> @@ -134,7 +128,7 @@ vers.o: ${SYSTEM_DEP:Ngap.o}
>       ${CC} ${CFLAGS} ${CPPFLAGS} ${PROF} -c vers.c
>  
>  clean:
> -     rm -f *bsd *bsd.gdb *.[dio] [a-z]*.s assym.* ${DB_STRUCTINFO} \
> +     rm -f *bsd *bsd.gdb *.[dio] [a-z]*.s assym.* \
>           gap.link ld.script lorder makegap.sh param.c
>  
>  cleandir: clean
> @@ -142,11 +136,6 @@ cleandir: clean
>  
>  depend obj:
>  
> -db_structinfo.h: $S/ddb/db_structinfo.c $S/ddb/parse_structinfo.pl
> -     ${CC} ${CFLAGS} ${CPPFLAGS} -MT $@ -gstabs -c $S/ddb/db_structinfo.c
> -     objdump -g db_structinfo.o | perl $S/ddb/parse_structinfo.pl > $@
> -     rm -f db_structinfo.o
> -
>  locore0.o: ${_machdir}/${_mach}/locore0.S assym.h
>  locore.o: ${_machdir}/${_mach}/locore.S assym.h
>  mutex.o: assym.h
> @@ -157,19 +146,5 @@ newinstall:
>           sha256 -h /var/db/kernel.SHA256 /bsd
>  
>  install: update-link newinstall
> -
> -# pull in the dependency information
> -.if !empty(DB_STRUCTINFO) && !exists(${DB_STRUCTINFO})
> - ${SYSTEM_OBJ}: ${DB_STRUCTINFO}
> -.endif
> -.ifnmake clean
> -. for o in ${SYSTEM_OBJ:Ngap.o} assym.h ${DB_STRUCTINFO}
> -.  if exists(${o:R}.d)
> -.   include "${o:R}.d"
> -.  elif exists($o)
> -    .PHONY: $o
> -.  endif
> -. endfor
> -.endif
>  
>  %RULES
> Index: arch/octeon/conf/Makefile.octeon
> ===================================================================
> RCS file: /cvs/src/sys/arch/octeon/conf/Makefile.octeon,v
> retrieving revision 1.45
> diff -u -p -r1.45 Makefile.octeon
> --- arch/octeon/conf/Makefile.octeon  19 Aug 2017 12:52:32 -0000      1.45
> +++ arch/octeon/conf/Makefile.octeon  11 Sep 2017 09:11:05 -0000
> @@ -50,12 +50,6 @@ CFLAGS=            ${DEBUG} ${CWARNFLAGS} ${CMACHF
>  AFLAGS=              -D_LOCORE -x assembler-with-cpp ${CWARNFLAGS} 
> ${CMACHFLAGS}
>  LINKFLAGS=   -e start -T ld.script -Ttext=${LINK_ADDRESS} --warn-common 
> -nopie
>  
> -.if ${IDENT:M-DDDB_STRUCT}
> -DB_STRUCTINFO=       db_structinfo.h
> -.else
> -DB_STRUCTINFO=
> -.endif
> -
>  HOSTCC?=     ${CC}
>  HOSTED_CPPFLAGS=${CPPFLAGS:S/^-nostdinc$//}
>  HOSTED_CFLAGS=       ${CFLAGS}
> @@ -143,7 +137,7 @@ vers.o: ${SYSTEM_DEP:Ngap.o}
>       ${CC} ${CFLAGS} ${CPPFLAGS} ${PROF} -c vers.c
>  
>  clean:
> -     rm -f *bsd *bsd.gdb *.[dio] [a-z]*.s assym.* ${DB_STRUCTINFO} \
> +     rm -f *bsd *bsd.gdb *.[dio] [a-z]*.s assym.* \
>           gap.link ld.script lorder makegap.sh param.c
>  
>  cleandir: clean
> @@ -155,11 +149,6 @@ symbols.sort: ${_machdir}/${_mach}/symbo
>  
>  depend obj:
>  
> -db_structinfo.h: $S/ddb/db_structinfo.c $S/ddb/parse_structinfo.pl
> -     ${CC} ${CFLAGS} ${CPPFLAGS} -MT $@ -gstabs -c $S/ddb/db_structinfo.c
> -     objdump -g db_structinfo.o | perl $S/ddb/parse_structinfo.pl > $@
> -     rm -f db_structinfo.o
> -
>  locore0.o: ${_machdir}/${_mach}/locore0.S assym.h
>  context.o cp0access.o exception.o locore.o: assym.h
>  lcore_access.o lcore_ddb.o lcore_float.o tlbhandler.o: assym.h
> @@ -171,19 +160,5 @@ newinstall:
>           sha256 -h /var/db/kernel.SHA256 /bsd
>  
>  install: update-link newinstall
> -
> -# pull in the dependency information
> -.if !empty(DB_STRUCTINFO) && !exists(${DB_STRUCTINFO})
> - ${SYSTEM_OBJ}: ${DB_STRUCTINFO}
> -.endif
> -.ifnmake clean
> -. for o in ${SYSTEM_OBJ:Ngap.o} assym.h ${DB_STRUCTINFO}
> -.  if exists(${o:R}.d)
> -.   include "${o:R}.d"
> -.  elif exists($o)
> -    .PHONY: $o
> -.  endif
> -. endfor
> -.endif
>  
>  %RULES
> Index: arch/sgi/conf/Makefile.sgi
> ===================================================================
> RCS file: /cvs/src/sys/arch/sgi/conf/Makefile.sgi,v
> retrieving revision 1.90
> diff -u -p -r1.90 Makefile.sgi
> --- arch/sgi/conf/Makefile.sgi        12 Aug 2017 20:26:11 -0000      1.90
> +++ arch/sgi/conf/Makefile.sgi        11 Sep 2017 09:11:22 -0000
> @@ -50,12 +50,6 @@ CFLAGS=            ${DEBUG} ${CWARNFLAGS} ${CMACHF
>  AFLAGS=              -D_LOCORE -x assembler-with-cpp ${CWARNFLAGS} 
> ${CMACHFLAGS}
>  LINKFLAGS=   -e start -T ld.script -Ttext=${LINK_ADDRESS} --warn-common 
> -nopie
>  
> -.if ${IDENT:M-DDDB_STRUCT}
> -DB_STRUCTINFO=       db_structinfo.h
> -.else
> -DB_STRUCTINFO=
> -.endif
> -
>  HOSTCC?=     ${CC}
>  HOSTED_CPPFLAGS=${CPPFLAGS:S/^-nostdinc$//}
>  HOSTED_CFLAGS=       ${CFLAGS}
> @@ -143,7 +137,7 @@ vers.o: ${SYSTEM_DEP:Ngap.o}
>       ${CC} ${CFLAGS} ${CPPFLAGS} ${PROF} -c vers.c
>  
>  clean:
> -     rm -f *bsd *bsd.gdb *.[dio] [a-z]*.s assym.* ${DB_STRUCTINFO} \
> +     rm -f *bsd *bsd.gdb *.[dio] [a-z]*.s assym.* \
>           gap.link ld.script lorder makegap.sh param.c
>  
>  cleandir: clean
> @@ -155,11 +149,6 @@ symbols.sort: ${_machdir}/${_mach}/symbo
>  
>  depend obj:
>  
> -db_structinfo.h: $S/ddb/db_structinfo.c $S/ddb/parse_structinfo.pl
> -     ${CC} ${CFLAGS} ${CPPFLAGS} -MT $@ -gstabs -c $S/ddb/db_structinfo.c
> -     objdump -g db_structinfo.o | perl $S/ddb/parse_structinfo.pl > $@
> -     rm -f db_structinfo.o
> -
>  locore0.o: ${_machdir}/${_mach}/locore0.S assym.h
>  context.o cp0access.o exception.o exception_tfp.o: assym.h
>  lcore_access.o lcore_ddb.o lcore_float.o locore.o: assym.h
> @@ -172,19 +161,5 @@ newinstall:
>           sha256 -h /var/db/kernel.SHA256 /bsd
>  
>  install: update-link newinstall
> -
> -# pull in the dependency information
> -.if !empty(DB_STRUCTINFO) && !exists(${DB_STRUCTINFO})
> - ${SYSTEM_OBJ}: ${DB_STRUCTINFO}
> -.endif
> -.ifnmake clean
> -. for o in ${SYSTEM_OBJ:Ngap.o} assym.h ${DB_STRUCTINFO}
> -.  if exists(${o:R}.d)
> -.   include "${o:R}.d"
> -.  elif exists($o)
> -    .PHONY: $o
> -.  endif
> -. endfor
> -.endif
>  
>  %RULES
> Index: arch/socppc/conf/Makefile.socppc
> ===================================================================
> RCS file: /cvs/src/sys/arch/socppc/conf/Makefile.socppc,v
> retrieving revision 1.56
> diff -u -p -r1.56 Makefile.socppc
> --- arch/socppc/conf/Makefile.socppc  12 Aug 2017 20:26:11 -0000      1.56
> +++ arch/socppc/conf/Makefile.socppc  11 Sep 2017 09:11:37 -0000
> @@ -41,12 +41,6 @@ CFLAGS=            ${DEBUG} ${CWARNFLAGS} ${CMACHF
>  AFLAGS=              -D_LOCORE ${CMACHFLAGS}
>  LINKFLAGS=   -N -Ttext 200000 -e start --warn-common -nopie
>  
> -.if ${IDENT:M-DDDB_STRUCT}
> -DB_STRUCTINFO=       db_structinfo.h
> -.else
> -DB_STRUCTINFO=
> -.endif
> -
>  HOSTCC?=     ${CC}
>  HOSTED_CPPFLAGS=${CPPFLAGS:S/^-nostdinc$//}
>  HOSTED_CFLAGS=       ${CFLAGS}
> @@ -118,18 +112,13 @@ vers.o: ${SYSTEM_DEP:Ngap.o}
>       ${CC} ${CFLAGS} ${CPPFLAGS} ${PROF} -c vers.c
>  
>  clean:
> -     rm -f *bsd *bsd.gdb *.[dio] [a-z]*.s assym.* ${DB_STRUCTINFO} param.c
> +     rm -f *bsd *bsd.gdb *.[dio] [a-z]*.s assym.* param.c
>  
>  cleandir: clean
>       rm -f Makefile *.h ioconf.c options machine ${_mach} vers.c
>  
>  depend obj:
>  
> -db_structinfo.h: $S/ddb/db_structinfo.c $S/ddb/parse_structinfo.pl
> -     ${CC} ${CFLAGS} ${CPPFLAGS} -MT $@ -gstabs -c $S/ddb/db_structinfo.c
> -     objdump -g db_structinfo.o | perl $S/ddb/parse_structinfo.pl > $@
> -     rm -f db_structinfo.o
> -
>  locore.o: ${_machdir}/${_mach}/locore.S assym.h
>  mutex.o: assym.h
>  
> @@ -142,20 +131,6 @@ install-kernel-${MACHINE_NAME}:
>       cmp -s bsd /bsd || ln -f /bsd /obsd
>       umask 077; cp bsd /nbsd
>       mv /nbsd /bsd
> -.endif
> -
> -# pull in the dependency information
> -.if !empty(DB_STRUCTINFO) && !exists(${DB_STRUCTINFO})
> - ${SYSTEM_OBJ}: ${DB_STRUCTINFO}
> -.endif
> -.ifnmake clean
> -. for o in ${SYSTEM_OBJ:Ngap.o} assym.h ${DB_STRUCTINFO}
> -.  if exists(${o:R}.d)
> -.   include "${o:R}.d"
> -.  elif exists($o)
> -    .PHONY: $o
> -.  endif
> -. endfor
>  .endif
>  
>  %RULES
> Index: arch/sparc64/conf/Makefile.sparc64
> ===================================================================
> RCS file: /cvs/src/sys/arch/sparc64/conf/Makefile.sparc64,v
> retrieving revision 1.93
> diff -u -p -r1.93 Makefile.sparc64
> --- arch/sparc64/conf/Makefile.sparc64        12 Aug 2017 20:26:11 -0000      
> 1.93
> +++ arch/sparc64/conf/Makefile.sparc64        11 Sep 2017 09:11:59 -0000
> @@ -43,12 +43,6 @@ CFLAGS=            ${DEBUG} ${CWARNFLAGS} ${CMACHF
>  AFLAGS=              -D_LOCORE -x assembler-with-cpp ${CWARNFLAGS} 
> ${CMACHFLAGS}
>  LINKFLAGS=   -n -T ld.script --warn-common -nopie
>  
> -.if ${IDENT:M-DDDB_STRUCT}
> -DB_STRUCTINFO=       db_structinfo.h
> -.else
> -DB_STRUCTINFO=
> -.endif
> -
>  HOSTCC?=     ${CC}
>  HOSTED_CPPFLAGS=${CPPFLAGS:S/^-nostdinc$//}
>  HOSTED_CFLAGS=       ${CFLAGS}
> @@ -132,7 +126,7 @@ vers.o: ${SYSTEM_DEP:Ngap.o}
>       ${CC} ${CFLAGS} ${CPPFLAGS} ${PROF} -c vers.c
>  
>  clean:
> -     rm -f *bsd *bsd.gdb *.[dio] [a-z]*.s assym.* ${DB_STRUCTINFO} \
> +     rm -f *bsd *bsd.gdb *.[dio] [a-z]*.s assym.* \
>           gap.link ld.script lorder makegap.sh param.c
>  
>  cleandir: clean
> @@ -140,11 +134,6 @@ cleandir: clean
>  
>  depend obj:
>  
> -db_structinfo.h: $S/ddb/db_structinfo.c $S/ddb/parse_structinfo.pl
> -     ${CC} ${CFLAGS} ${CPPFLAGS} -MT $@ -gstabs -c $S/ddb/db_structinfo.c
> -     objdump -g db_structinfo.o | perl $S/ddb/parse_structinfo.pl > $@
> -     rm -f db_structinfo.o
> -
>  locore.o: ${_machdir}/${_mach}/locore.s assym.h
>  hvcall.o in_cksum.o mutex.o: assym.h
>  
> @@ -154,19 +143,5 @@ newinstall:
>           sha256 -h /var/db/kernel.SHA256 /bsd
>  
>  install: update-link newinstall
> -
> -# pull in the dependency information
> -.if !empty(DB_STRUCTINFO) && !exists(${DB_STRUCTINFO})
> - ${SYSTEM_OBJ}: ${DB_STRUCTINFO}
> -.endif
> -.ifnmake clean
> -. for o in ${SYSTEM_OBJ:Ngap.o} assym.h ${DB_STRUCTINFO}
> -.  if exists(${o:R}.d)
> -.   include "${o:R}.d"
> -.  elif exists($o)
> -    .PHONY: $o
> -.  endif
> -. endfor
> -.endif
>  
>  %RULES
> 
> 

-- 
jasper

Reply via email to