From: Ben Pfaff Date: Sat, 4 Mar 2006 21:00:38 +0000 (+0000) Subject: Move GCC attribute declarations from pref.h.orig to new file X-Git-Tag: v0.6.0~1053 X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2322678e8fddbbf158b01b2720db2636404bba3b;p=pspp-builds.git Move GCC attribute declarations from pref.h.orig to new file src/libpspp/compiler.h. In many source files, #include "compiler.h" to get GCC attribute definitions. --- diff --git a/ChangeLog b/ChangeLog index 22e40403..253804ca 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Sat Mar 4 12:58:34 2006 Ben Pfaff + + * pref.h.orig: Move GCC attribute declarations to + new file src/libpspp/compiler.h. + Sat Mar 4 12:27:06 2006 Ben Pfaff * Smake: Require "intprops" gnulib module. diff --git a/pref.h.orig b/pref.h.orig index e67f4cf8..f2efb834 100644 --- a/pref.h.orig +++ b/pref.h.orig @@ -1,8 +1,5 @@ /* -*- C -*- */ -/* Used by separable libraries to enable PSPP-specific features. */ -#define PSPP 1 - /* * * Debugging @@ -19,43 +16,6 @@ #if !HAVE_LIBPLOT #define NO_CHARTS 1 #endif - -/* Define these if DEBUGGING is off and you want to make certain - additional optimizations. */ -#if !DEBUGGING -/* #define NDEBUG 1 */ /* disable assert() sanity checks */ -#endif - -/* Compilers. */ - -/* Use proper keywords. */ -#if __GNUC__ > 1 && !defined (inline) -#define inline __inline__ -#endif - -/* GNU C allows the programmer to declare that certain functions take - printf-like arguments, never return, etc. Conditionalize these - declarations on whether gcc is in use. */ -#if __GNUC__ > 1 -#define ATTRIBUTE(X) __attribute__ (X) - -/* Only necessary because of a wart in gnulib's xalloc.h. */ -#define __attribute__(X) __attribute__ (X) -#else -#define ATTRIBUTE(X) -#endif - -#define UNUSED ATTRIBUTE ((unused)) -#define NO_RETURN ATTRIBUTE ((noreturn)) -#define PRINTF_FORMAT(FMT, FIRST) ATTRIBUTE ((format (printf, FMT, FIRST))) -#define SCANF_FORMAT(FMT, FIRST) ATTRIBUTE ((format (scanf, FMT, FIRST))) - -/* This attribute was added late in the GCC 2.x cycle. */ -#if __GNUC__ > 2 -#define MALLOC_LIKE ATTRIBUTE ((malloc)) -#else -#define MALLOC_LIKE -#endif /* Filesystems. */ diff --git a/src/ChangeLog b/src/ChangeLog index 1cf3b3e5..888271fa 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +Sat Mar 4 12:59:08 2006 Ben Pfaff + + * In many source files, #include "compiler.h" to get GCC attribute + definitions. + Sat Mar 4 12:28:09 2006 Ben Pfaff * In many source files, replace INT_DIGITS by diff --git a/src/data/casefile.c b/src/data/casefile.c index 63b0fcd3..ef900e53 100644 --- a/src/data/casefile.c +++ b/src/data/casefile.c @@ -28,6 +28,7 @@ #include #include "alloc.h" #include "case.h" +#include "compiler.h" #include "message.h" #include "full-read.h" #include "full-write.h" diff --git a/src/data/data-in.c b/src/data/data-in.c index 1502417b..aa8041d8 100644 --- a/src/data/data-in.c +++ b/src/data/data-in.c @@ -29,6 +29,7 @@ #include #include "message.h" #include "calendar.h" +#include "compiler.h" #include "identifier.h" #include "magic.h" #include "misc.h" diff --git a/src/data/dictionary.c b/src/data/dictionary.c index e0afe9bc..de529d67 100644 --- a/src/data/dictionary.c +++ b/src/data/dictionary.c @@ -26,6 +26,7 @@ #include "case.h" #include "category.h" #include "cat-routines.h" +#include "compiler.h" #include "message.h" #include "hash.h" #include "misc.h" diff --git a/src/data/file-handle-def.c b/src/data/file-handle-def.c index 25f26c9f..5ece4486 100644 --- a/src/data/file-handle-def.c +++ b/src/data/file-handle-def.c @@ -24,6 +24,7 @@ #include #include #include "alloc.h" +#include "compiler.h" #include "filename.h" #include "message.h" #include "magic.h" diff --git a/src/data/format.c b/src/data/format.c index e88df463..d3899b43 100644 --- a/src/data/format.c +++ b/src/data/format.c @@ -22,6 +22,7 @@ #include #include "message.h" #include +#include "compiler.h" #include "misc.h" #include "identifier.h" #include "str.h" diff --git a/src/data/por-file-reader.c b/src/data/por-file-reader.c index db33acf0..1ee59887 100644 --- a/src/data/por-file-reader.c +++ b/src/data/por-file-reader.c @@ -32,6 +32,7 @@ #include "alloc.h" #include #include "case.h" +#include "compiler.h" #include "dictionary.h" #include "file-handle-def.h" #include "format.h" diff --git a/src/data/sfm-private.h b/src/data/sfm-private.h index c127b85e..9e691e78 100644 --- a/src/data/sfm-private.h +++ b/src/data/sfm-private.h @@ -20,6 +20,8 @@ /* PORTME: There might easily be alignment problems with some of these structures. */ +#include "compiler.h" + /* This attribute might avoid some problems. On the other hand... */ #define P ATTRIBUTE ((packed)) diff --git a/src/data/sys-file-reader.c b/src/data/sys-file-reader.c index 9a3faf6a..71fd6814 100644 --- a/src/data/sys-file-reader.c +++ b/src/data/sys-file-reader.c @@ -28,6 +28,7 @@ #include #include "alloc.h" #include "case.h" +#include "compiler.h" #include "dictionary.h" #include "message.h" #include "file-handle-def.h" diff --git a/src/data/value-labels.c b/src/data/value-labels.c index 4638bd3f..dc18a707 100644 --- a/src/data/value-labels.c +++ b/src/data/value-labels.c @@ -22,6 +22,7 @@ #include "message.h" #include #include "alloc.h" +#include "compiler.h" #include "hash.h" #include "str.h" diff --git a/src/data/variable.c b/src/data/variable.c index 24363996..30ef24ca 100644 --- a/src/data/variable.c +++ b/src/data/variable.c @@ -22,6 +22,7 @@ #include "message.h" #include #include "alloc.h" +#include "compiler.h" #include "dictionary.h" #include "hash.h" #include "identifier.h" diff --git a/src/language/command.c b/src/language/command.c index 950d801f..397097ab 100644 --- a/src/language/command.c +++ b/src/language/command.c @@ -25,6 +25,7 @@ #include #include #include "alloc.h" +#include "compiler.h" #include "dictionary.h" #include "message.h" #include "lexer.h" diff --git a/src/language/control/control-stack.c b/src/language/control/control-stack.c index 9f1502c2..43f90e33 100644 --- a/src/language/control/control-stack.c +++ b/src/language/control/control-stack.c @@ -2,6 +2,7 @@ #include "control-stack.h" #include #include +#include "compiler.h" #include "message.h" #include "xalloc.h" diff --git a/src/language/control/do-if.c b/src/language/control/do-if.c index 35e59599..dc39e66d 100644 --- a/src/language/control/do-if.c +++ b/src/language/control/do-if.c @@ -23,6 +23,7 @@ #include #include "alloc.h" #include "command.h" +#include "compiler.h" #include "message.h" #include "expressions/public.h" #include "lexer.h" diff --git a/src/language/control/loop.c b/src/language/control/loop.c index a4d0e49c..ff38ba5f 100644 --- a/src/language/control/loop.c +++ b/src/language/control/loop.c @@ -22,6 +22,7 @@ #include "alloc.h" #include "case.h" #include "command.h" +#include "compiler.h" #include "dictionary.h" #include "control-stack.h" #include "message.h" diff --git a/src/language/data-io/data-list.c b/src/language/data-io/data-list.c index 59830347..cd22d0cd 100644 --- a/src/language/data-io/data-list.c +++ b/src/language/data-io/data-list.c @@ -27,6 +27,7 @@ #include "alloc.h" #include "case.h" #include "command.h" +#include "compiler.h" #include "data-in.h" #include "debug-print.h" #include "data-reader.h" diff --git a/src/language/data-io/file-type.c b/src/language/data-io/file-type.c index a021dd57..6a7e7cc2 100644 --- a/src/language/data-io/file-type.c +++ b/src/language/data-io/file-type.c @@ -22,6 +22,7 @@ #include "alloc.h" #include "case.h" #include "command.h" +#include "compiler.h" #include "data-in.h" #include "data-reader.h" #include "dictionary.h" diff --git a/src/language/data-io/get.c b/src/language/data-io/get.c index c6ae3ed3..df31b11d 100644 --- a/src/language/data-io/get.c +++ b/src/language/data-io/get.c @@ -25,6 +25,7 @@ #include "any-writer.h" #include "case.h" #include "command.h" +#include "compiler.h" #include "dictionary.h" #include "message.h" #include "file-handle.h" diff --git a/src/language/data-io/inpt-pgm.c b/src/language/data-io/inpt-pgm.c index 99bfb23b..875a6fdc 100644 --- a/src/language/data-io/inpt-pgm.c +++ b/src/language/data-io/inpt-pgm.c @@ -24,6 +24,7 @@ #include "alloc.h" #include "case.h" #include "command.h" +#include "compiler.h" #include "data-list.h" #include "data-reader.h" #include "dictionary.h" diff --git a/src/language/data-io/list.q b/src/language/data-io/list.q index 18b08fee..77080a56 100644 --- a/src/language/data-io/list.q +++ b/src/language/data-io/list.q @@ -24,6 +24,7 @@ #include "alloc.h" #include "case.h" #include "command.h" +#include "compiler.h" #include "dictionary.h" #include "intprops.h" #include "lexer.h" diff --git a/src/language/data-io/matrix-data.c b/src/language/data-io/matrix-data.c index 343e96dc..47281def 100644 --- a/src/language/data-io/matrix-data.c +++ b/src/language/data-io/matrix-data.c @@ -26,6 +26,7 @@ #include "alloc.h" #include "case.h" #include "command.h" +#include "compiler.h" #include "data-in.h" #include "data-reader.h" #include "dictionary.h" diff --git a/src/language/data-io/print.c b/src/language/data-io/print.c index f5e857e3..2399de79 100644 --- a/src/language/data-io/print.c +++ b/src/language/data-io/print.c @@ -25,6 +25,7 @@ #include "alloc.h" #include "case.h" #include "command.h" +#include "compiler.h" #include "data-writer.h" #include "message.h" #include "expressions/public.h" diff --git a/src/language/dictionary/modify-variables.c b/src/language/dictionary/modify-variables.c index fc91894e..6ead73dc 100644 --- a/src/language/dictionary/modify-variables.c +++ b/src/language/dictionary/modify-variables.c @@ -24,6 +24,7 @@ #include "alloc.h" #include "bit-vector.h" #include "command.h" +#include "compiler.h" #include "dictionary.h" #include "message.h" #include "hash.h" diff --git a/src/language/expressions/helpers.h b/src/language/expressions/helpers.h index e3813fd2..54e56bbd 100644 --- a/src/language/expressions/helpers.h +++ b/src/language/expressions/helpers.h @@ -10,6 +10,7 @@ #include #include #include "case.h" +#include "compiler.h" #include "data-in.h" #include "dictionary.h" #include "message.h" diff --git a/src/language/lexer/q2c.c b/src/language/lexer/q2c.c index 73788706..acf08db8 100644 --- a/src/language/lexer/q2c.c +++ b/src/language/lexer/q2c.c @@ -28,6 +28,7 @@ #if HAVE_UNISTD_H #include #endif +#include "compiler.h" #include "str.h" diff --git a/src/language/stats/autorecode.c b/src/language/stats/autorecode.c index 1ab48b93..1aea061f 100644 --- a/src/language/stats/autorecode.c +++ b/src/language/stats/autorecode.c @@ -23,6 +23,7 @@ #include "alloc.h" #include "case.h" #include "command.h" +#include "compiler.h" #include "dictionary.h" #include "message.h" #include "hash.h" diff --git a/src/language/stats/correlations.q b/src/language/stats/correlations.q index db1b65be..59f06e48 100644 --- a/src/language/stats/correlations.q +++ b/src/language/stats/correlations.q @@ -20,6 +20,7 @@ #include #include #include "alloc.h" +#include "compiler.h" #include "dictionary.h" #include "file-handle-def.h" #include "command.h" diff --git a/src/language/stats/crosstabs.q b/src/language/stats/crosstabs.q index 1a6d5691..18eb26ec 100644 --- a/src/language/stats/crosstabs.q +++ b/src/language/stats/crosstabs.q @@ -42,6 +42,7 @@ #include "hash.h" #include "pool.h" #include "command.h" +#include "compiler.h" #include "lexer.h" #include "message.h" #include "magic.h" diff --git a/src/language/stats/descriptives.c b/src/language/stats/descriptives.c index fb89e90f..6704fe5d 100644 --- a/src/language/stats/descriptives.c +++ b/src/language/stats/descriptives.c @@ -29,6 +29,7 @@ #include "case.h" #include "casefile.h" #include "command.h" +#include "compiler.h" #include "dictionary.h" #include "lexer.h" #include "message.h" diff --git a/src/language/stats/examine.q b/src/language/stats/examine.q index 940a4391..14981e88 100644 --- a/src/language/stats/examine.q +++ b/src/language/stats/examine.q @@ -29,6 +29,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA #include "case.h" #include "dictionary.h" #include "command.h" +#include "compiler.h" #include "lexer.h" #include "message.h" #include "magic.h" diff --git a/src/language/stats/frequencies.q b/src/language/stats/frequencies.q index c3b3a497..0bc6b555 100644 --- a/src/language/stats/frequencies.q +++ b/src/language/stats/frequencies.q @@ -32,6 +32,7 @@ #include "alloc.h" #include "bit-vector.h" #include "case.h" +#include "compiler.h" #include "dictionary.h" #include "hash.h" #include "pool.h" diff --git a/src/language/stats/oneway.q b/src/language/stats/oneway.q index 9cdb7db5..6c745cd1 100644 --- a/src/language/stats/oneway.q +++ b/src/language/stats/oneway.q @@ -29,6 +29,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA #include "case.h" #include "dictionary.h" #include "command.h" +#include "compiler.h" #include "lexer.h" #include "message.h" #include "magic.h" diff --git a/src/language/stats/rank.q b/src/language/stats/rank.q index db1feea5..a138fc8f 100644 --- a/src/language/stats/rank.q +++ b/src/language/stats/rank.q @@ -20,6 +20,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA #include #include "command.h" +#include "compiler.h" #include "dictionary.h" #include "sort.h" #include "variable.h" diff --git a/src/language/stats/regression.q b/src/language/stats/regression.q index 1459628c..874e7bc2 100644 --- a/src/language/stats/regression.q +++ b/src/language/stats/regression.q @@ -29,6 +29,7 @@ #include "category.h" #include "cat-routines.h" #include "command.h" +#include "compiler.h" #include "design-matrix.h" #include "dictionary.h" #include "message.h" diff --git a/src/language/stats/t-test.q b/src/language/stats/t-test.q index d0fff3fd..fac23714 100644 --- a/src/language/stats/t-test.q +++ b/src/language/stats/t-test.q @@ -29,6 +29,7 @@ #include "case.h" #include "casefile.h" #include "command.h" +#include "compiler.h" #include "dictionary.h" #include "message.h" #include "group-proc.h" diff --git a/src/language/utilities/set.q b/src/language/utilities/set.q index b6b3963a..23559589 100644 --- a/src/language/utilities/set.q +++ b/src/language/utilities/set.q @@ -26,6 +26,7 @@ #include #include "alloc.h" #include "command.h" +#include "compiler.h" #include "dictionary.h" #include "line-buffer.h" #include "lexer.h" diff --git a/src/language/xforms/count.c b/src/language/xforms/count.c index e5f3991a..43576235 100644 --- a/src/language/xforms/count.c +++ b/src/language/xforms/count.c @@ -23,6 +23,7 @@ #include "alloc.h" #include "case.h" #include "command.h" +#include "compiler.h" #include "dictionary.h" #include "message.h" #include "lexer.h" diff --git a/src/language/xforms/recode.c b/src/language/xforms/recode.c index 7da3ab3a..38bb5508 100644 --- a/src/language/xforms/recode.c +++ b/src/language/xforms/recode.c @@ -25,6 +25,7 @@ #include "alloc.h" #include "case.h" #include "command.h" +#include "compiler.h" #include "data-in.h" #include "dictionary.h" #include "message.h" diff --git a/src/language/xforms/sample.c b/src/language/xforms/sample.c index 0635caa9..f0bfab98 100644 --- a/src/language/xforms/sample.c +++ b/src/language/xforms/sample.c @@ -24,6 +24,7 @@ #include #include "alloc.h" #include "command.h" +#include "compiler.h" #include "message.h" #include "lexer.h" #include "random.h" diff --git a/src/libpspp/ChangeLog b/src/libpspp/ChangeLog index e78ba849..dea90675 100644 --- a/src/libpspp/ChangeLog +++ b/src/libpspp/ChangeLog @@ -1,3 +1,7 @@ +Sat Mar 4 12:59:01 2006 Ben Pfaff + + * compiler.h: New file. + Sat Mar 4 11:55:16 2006 Ben Pfaff * str.h: Now assume that sprintf() returns the correct value. diff --git a/src/libpspp/compiler.h b/src/libpspp/compiler.h new file mode 100644 index 00000000..44f22b39 --- /dev/null +++ b/src/libpspp/compiler.h @@ -0,0 +1,47 @@ +/* PSPP - computes sample statistics. + Copyright (C) 2006 Free Software Foundation, Inc. + Written by Ben Pfaff . + + This program 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 2 of the + License, or (at your option) any later version. + + This program 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 this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA + 02110-1301, USA. */ + +#ifndef COMPILER_H +#define COMPILER_H 1 + +/* GNU C allows the programmer to declare that certain functions take + printf-like arguments, never return, etc. Conditionalize these + declarations on whether gcc is in use. */ +#if __GNUC__ > 1 +#define ATTRIBUTE(X) __attribute__ (X) + +/* Only necessary because of a wart in gnulib's xalloc.h. */ +#define __attribute__(X) __attribute__ (X) +#else +#define ATTRIBUTE(X) +#endif + +#define UNUSED ATTRIBUTE ((unused)) +#define NO_RETURN ATTRIBUTE ((noreturn)) +#define PRINTF_FORMAT(FMT, FIRST) ATTRIBUTE ((format (printf, FMT, FIRST))) +#define SCANF_FORMAT(FMT, FIRST) ATTRIBUTE ((format (scanf, FMT, FIRST))) + +/* This attribute was added late in the GCC 2.x cycle. */ +#if __GNUC__ > 2 +#define MALLOC_LIKE ATTRIBUTE ((malloc)) +#else +#define MALLOC_LIKE +#endif + +#endif /* compiler.h */ diff --git a/src/libpspp/hash.c b/src/libpspp/hash.c index 76503664..fcf2b1f9 100644 --- a/src/libpspp/hash.c +++ b/src/libpspp/hash.c @@ -23,10 +23,11 @@ #include #include #include +#include #include #include "array.h" #include "alloc.h" -#include +#include "compiler.h" #include "misc.h" #include "str.h" diff --git a/src/libpspp/message.h b/src/libpspp/message.h index 8f86d0a8..7505f7b0 100644 --- a/src/libpspp/message.h +++ b/src/libpspp/message.h @@ -22,6 +22,7 @@ #include #include +#include "compiler.h" /* Message classes. */ enum diff --git a/src/libpspp/pool.h b/src/libpspp/pool.h index daa866b3..4f33dfa0 100644 --- a/src/libpspp/pool.h +++ b/src/libpspp/pool.h @@ -21,6 +21,7 @@ #define pool_h 1 #include +#include "compiler.h" /* Maximum size of a suballocated block. Larger blocks are allocated directly with malloc() to avoid memory wastage at the end of a diff --git a/src/libpspp/str.h b/src/libpspp/str.h index 0b50b031..7773db02 100644 --- a/src/libpspp/str.h +++ b/src/libpspp/str.h @@ -25,6 +25,7 @@ #include #include +#include "compiler.h" #include "memcasecmp.h" #include "memmem.h" #include "snprintf.h" diff --git a/src/math/group.c b/src/math/group.c index 58d5c929..07803183 100644 --- a/src/math/group.c +++ b/src/math/group.c @@ -20,6 +20,7 @@ #include #include #include "alloc.h" +#include "compiler.h" #include "hash.h" #include "group.h" #include "group-proc.h" diff --git a/src/math/percentiles.c b/src/math/percentiles.c index 4d7b1481..372bd4ca 100644 --- a/src/math/percentiles.c +++ b/src/math/percentiles.c @@ -19,6 +19,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include +#include "compiler.h" #include "factor-stats.h" #include "percentiles.h" #include "misc.h" diff --git a/src/output/ascii.c b/src/output/ascii.c index ffe0c045..305100af 100644 --- a/src/output/ascii.c +++ b/src/output/ascii.c @@ -26,6 +26,7 @@ #include "alloc.h" #include "message.h" #include "chart.h" +#include "compiler.h" #include "filename.h" #include "misc.h" #include "output.h" diff --git a/src/output/charts/cartesian.c b/src/output/charts/cartesian.c index 1350a155..2a9b1c5f 100644 --- a/src/output/charts/cartesian.c +++ b/src/output/charts/cartesian.c @@ -23,6 +23,7 @@ #include #include "plot-chart.h" #include "cartesian.h" +#include "compiler.h" diff --git a/src/output/charts/dummy-chart.c b/src/output/charts/dummy-chart.c index 963015e6..a255f237 100644 --- a/src/output/charts/dummy-chart.c +++ b/src/output/charts/dummy-chart.c @@ -26,6 +26,7 @@ #include "plot-chart.h" #include "cartesian.h" #include +#include "compiler.h" #ifndef NO_CHARTS diff --git a/src/output/groff-font.c b/src/output/groff-font.c index c8014d78..5b651c4a 100644 --- a/src/output/groff-font.c +++ b/src/output/groff-font.c @@ -26,6 +26,7 @@ #include #include #include "alloc.h" +#include "compiler.h" #include "message.h" #include "filename.h" #include "getline.h" diff --git a/src/output/html.c b/src/output/html.c index 901c98a2..50561df7 100644 --- a/src/output/html.c +++ b/src/output/html.c @@ -34,6 +34,7 @@ #endif #include "alloc.h" +#include "compiler.h" #include "message.h" #include "filename.h" #include "getline.h" diff --git a/src/output/postscript.c b/src/output/postscript.c index f54ef168..754559ca 100644 --- a/src/output/postscript.c +++ b/src/output/postscript.c @@ -36,6 +36,7 @@ #include "alloc.h" #include "bit-vector.h" +#include "compiler.h" #include "message.h" #include "filename.h" #include "font.h" diff --git a/src/output/table.c b/src/output/table.c index 45af6411..4a8e036e 100644 --- a/src/output/table.c +++ b/src/output/table.c @@ -25,6 +25,7 @@ #include #include "message.h" #include "alloc.h" +#include "compiler.h" #include "format.h" #include "magic.h" #include "misc.h" diff --git a/src/ui/terminal/main.c b/src/ui/terminal/main.c index 0a09cda9..7712df83 100644 --- a/src/ui/terminal/main.c +++ b/src/ui/terminal/main.c @@ -23,6 +23,7 @@ #include #include "command-line.h" #include "command.h" +#include "compiler.h" #include "dictionary.h" #include "message.h" #include "file-handle-def.h"