From 44a39e3e761c0774cd1bb9360db7f49e1d66ec06 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Tue, 9 Apr 2019 15:42:10 -0700 Subject: Remove dmpstruct.h The hassles of updating the dmpstruct.h-using code bit me again. These updates are more trouble than they’re worth. See: https://lists.gnu.org/r/emacs-devel/2019-03/msg00122.html As I’m the main person who’s made changes in this area since dmpstruct.h was introduced, I’m the most motivated to clean up the situation. * make-dist (possibly_non_vc_files): Remove src/dmpstruct.h. * src/Makefile.in (dmpstruct_headers, dmpstruct.h): Remove. (pdumper.o): Do not depend on dmpstruct.h. (mostlyclean): Do not remove dmpstruct.h. * src/dmpstruct.awk: Remove. * src/pdumper.c: Do not include dmpstruct.h. (CHECK_STRUCTS): Remove. All uses removed. --- src/dmpstruct.awk | 45 --------------------------------------------- 1 file changed, 45 deletions(-) delete mode 100755 src/dmpstruct.awk (limited to 'src/dmpstruct.awk') diff --git a/src/dmpstruct.awk b/src/dmpstruct.awk deleted file mode 100755 index 55626cf8b21..00000000000 --- a/src/dmpstruct.awk +++ /dev/null @@ -1,45 +0,0 @@ -# Copyright (C) 2018-2019 Free Software Foundation, Inc. -# -# This file is part of GNU Emacs. -# -# GNU Emacs is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or (at -# your option) any later version. -# -# GNU Emacs is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with GNU Emacs. If not, see . - -BEGIN { - print "/* Generated by dmpstruct.awk */" - print "#ifndef EMACS_DMPSTRUCT_H" - print "#define EMACS_DMPSTRUCT_H" - struct_name = "" - tmpfile = "dmpstruct.tmp" -} -# Match a type followed by optional syntactic whitespace -/^(enum|struct|union) [a-zA-Z0-9_]+([\t ]|\/\*.*\*\/)*$/ { - struct_name = $2 - close (tmpfile) -} -/^(enum|struct|union) [a-zA-Z0-9_]+([\t ]|\/\*.*\*\/)*$/, /^( )?};$/ { - print $0 > tmpfile -} -/^( )?} *(GCALIGNED_STRUCT)? *;$/ { - if (struct_name != "") { - fflush (tmpfile) - cmd = "../lib-src/make-fingerprint -r " tmpfile - cmd | getline hash - close (cmd) - printf "#define HASH_%s_%.10s\n", struct_name, hash - struct_name = "" - } -} -END { - print "#endif /* EMACS_DMPSTRUCT_H */" -} -- cgit v1.2.1 From 9994bf17cf532f2e1d4310341da7180342202191 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Wed, 10 Apr 2019 19:42:37 -0700 Subject: Bring back dmpstruct.h Bring back the dmpstruct.h checking, and use it when --enable-checking=structs is specified. The checking can be helpful to some developers, although it gets in the way of others and is not needed for ordinary tarball builds. * src/dmpstruct.awk: Restore this file, with mode 644 not 755. * configure.ac: New option-arg --enable-checking=structs, implied by --enable-checking. (CHECK_STRUCTS): New macro and var. * src/Makefile.in (CHECK_STRUCTS): New macro. (dmpstruct_headers, dmpstruct.h, dmpstruct.h): Restore these macros and rules. (pdumper.o): Restore this dependency if $(CHECK_STRUCTS) is true. (mostlyclean): Remove dmpstruct.h. * src/pdumper.c [CHECK_STRUCTS]: Include dmpstruct.h, and restore checks against hashes. --- src/dmpstruct.awk | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 src/dmpstruct.awk (limited to 'src/dmpstruct.awk') diff --git a/src/dmpstruct.awk b/src/dmpstruct.awk new file mode 100644 index 00000000000..55626cf8b21 --- /dev/null +++ b/src/dmpstruct.awk @@ -0,0 +1,45 @@ +# Copyright (C) 2018-2019 Free Software Foundation, Inc. +# +# This file is part of GNU Emacs. +# +# GNU Emacs is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or (at +# your option) any later version. +# +# GNU Emacs is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU Emacs. If not, see . + +BEGIN { + print "/* Generated by dmpstruct.awk */" + print "#ifndef EMACS_DMPSTRUCT_H" + print "#define EMACS_DMPSTRUCT_H" + struct_name = "" + tmpfile = "dmpstruct.tmp" +} +# Match a type followed by optional syntactic whitespace +/^(enum|struct|union) [a-zA-Z0-9_]+([\t ]|\/\*.*\*\/)*$/ { + struct_name = $2 + close (tmpfile) +} +/^(enum|struct|union) [a-zA-Z0-9_]+([\t ]|\/\*.*\*\/)*$/, /^( )?};$/ { + print $0 > tmpfile +} +/^( )?} *(GCALIGNED_STRUCT)? *;$/ { + if (struct_name != "") { + fflush (tmpfile) + cmd = "../lib-src/make-fingerprint -r " tmpfile + cmd | getline hash + close (cmd) + printf "#define HASH_%s_%.10s\n", struct_name, hash + struct_name = "" + } +} +END { + print "#endif /* EMACS_DMPSTRUCT_H */" +} -- cgit v1.2.1