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