Move print_version into printversion.{h|c}
authorUlf Hermann <ulf.hermann@qt.io>
Thu, 16 Feb 2017 11:32:02 +0000 (12:32 +0100)
committerMark Wielaard <mark@klomp.org>
Fri, 17 Feb 2017 09:55:28 +0000 (10:55 +0100)
Rename version.c so that the implementation is called after the header
and the header doesn't clash with the toplevel version.h. print_version
depends on argp and is only used in the tools.

Signed-off-by: Ulf Hermann <ulf.hermann@qt.io>
23 files changed:
lib/ChangeLog
lib/Makefile.am
lib/printversion.c [moved from lib/version.c with 96% similarity]
lib/printversion.h [new file with mode: 0644]
lib/system.h
po/ChangeLog
po/POTFILES.in
src/ChangeLog
src/addr2line.c
src/ar.c
src/elfcmp.c
src/elfcompress.c
src/elflint.c
src/findtextrel.c
src/nm.c
src/objdump.c
src/ranlib.c
src/readelf.c
src/size.c
src/stack.c
src/strings.c
src/strip.c
src/unstrip.c

index fd63e03..84290f7 100644 (file)
@@ -1,3 +1,16 @@
+2017-02-16  Ulf Hermann  <ulf.hermann@qt.io>
+
+       * Makefile.am (libeu_a_SOURCES): Remove version.c, add printversion.c
+       (noinst_HEADERS): Add printversion.h
+       * version.c: Moved to printversion.c.
+       * printversion.c: New file, moved from version.c,
+       remove stdio.h, argp.h, system.h includes,
+       add printversion.h include.
+       * printversion.h: New file.
+       * system.h: Remove argp.h include,
+       (ARGP_PROGRAM_VERSION_HOOK_DEF, ARGP_PROGRAM_BUG_ADDRESS_DEF): Remove.
+       (print_version): Remove.
+
 2017-02-15  Ulf Hermann  <ulf.hermann@qt.io>
 
        * system.h: Provide mempcpy if it doesn't exist.
index 3e0c601..7a65eb9 100644 (file)
@@ -35,10 +35,10 @@ noinst_LIBRARIES = libeu.a
 
 libeu_a_SOURCES = xstrdup.c xstrndup.c xmalloc.c next_prime.c \
                  crc32.c crc32_file.c md5.c sha1.c \
-                 color.c version.c
+                 color.c printversion.c
 
 noinst_HEADERS = fixedsizehash.h libeu.h system.h dynamicsizehash.h list.h \
-                md5.h sha1.h eu-config.h color.h
+                md5.h sha1.h eu-config.h color.h printversion.h
 EXTRA_DIST = dynamicsizehash.c
 
 if !GPROF
similarity index 96%
rename from lib/version.c
rename to lib/printversion.c
index b8d70cb..4056b93 100644 (file)
 # include <config.h>
 #endif
 
-#include <argp.h>
 #include <libintl.h>
-#include <stdio.h>
-#include "system.h"
+#include "printversion.h"
 
 void
 print_version (FILE *stream, struct argp_state *state)
diff --git a/lib/printversion.h b/lib/printversion.h
new file mode 100644 (file)
index 0000000..a9e059f
--- /dev/null
@@ -0,0 +1,49 @@
+/* Common argp_print_version_hook for all tools.
+   Copyright (C) 2017 The Qt Company Ltd.
+   This file is part of elfutils.
+
+   This file is free software; you can redistribute it and/or modify
+   it under the terms of either
+
+     * the GNU Lesser General Public License as published by the Free
+       Software Foundation; either version 3 of the License, or (at
+       your option) any later version
+
+   or
+
+     * 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
+
+   or both in parallel, as here.
+
+   elfutils 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 copies of the GNU General Public License and
+   the GNU Lesser General Public License along with this program.  If
+   not, see <http://www.gnu.org/licenses/>.  */
+
+#ifndef PRINTVERSION_H
+#define PRINTVERSION_H 1
+
+#include <argp.h>
+#include <stdio.h>
+
+/* Defined in version.c.  Common ARGP_PROGRAM_VERSION_HOOK_DEF.  */
+void print_version (FILE *stream, struct argp_state *state);
+
+/* We need define two variables, argp_program_version_hook and
+   argp_program_bug_address, in all programs.  argp.h declares these
+   variables as non-const (which is correct in general).  But we can
+   do better, it is not going to change.  So we want to move them into
+   the .rodata section.  Define macros to do the trick.  */
+#define ARGP_PROGRAM_VERSION_HOOK_DEF \
+  void (*const apvh) (FILE *, struct argp_state *) \
+   __asm ("argp_program_version_hook")
+#define ARGP_PROGRAM_BUG_ADDRESS_DEF \
+  const char *const apba__ __asm ("argp_program_bug_address")
+
+#endif // PRINTVERSION_H
index 429b0c3..2d05702 100644 (file)
@@ -33,7 +33,6 @@
 # include <config.h>
 #endif
 
-#include <argp.h>
 #include <errno.h>
 #include <stddef.h>
 #include <stdint.h>
@@ -145,21 +144,6 @@ pread_retry (int fd, void *buf, size_t len, off_t off)
   return recvd;
 }
 
-
-/* We need define two variables, argp_program_version_hook and
-   argp_program_bug_address, in all programs.  argp.h declares these
-   variables as non-const (which is correct in general).  But we can
-   do better, it is not going to change.  So we want to move them into
-   the .rodata section.  Define macros to do the trick.  */
-#define ARGP_PROGRAM_VERSION_HOOK_DEF \
-  void (*const apvh) (FILE *, struct argp_state *) \
-   __asm ("argp_program_version_hook")
-#define ARGP_PROGRAM_BUG_ADDRESS_DEF \
-  const char *const apba__ __asm ("argp_program_bug_address")
-
-/* Defined in version.c.  Common ARGP_PROGRAM_VERSION_HOOK_DEF.  */
-void print_version (FILE *stream, struct argp_state *state);
-
 /* The demangler from libstdc++.  */
 extern char *__cxa_demangle (const char *mangled_name, char *output_buffer,
                             size_t *length, int *status);
index 38cae02..b679f7a 100644 (file)
@@ -1,3 +1,7 @@
+2017-02-16  Ulf Hermann  <ulf.hermann@qt.io>
+
+       * po/POTFILES.in: Removed lib/version.c, added lib/printversion.c.
+
 2016-12-27  Mark Wielaard  <mark@klomp.org>
 
        * *.po: Update for 0.168.
index dec61ef..4eac6d0 100644 (file)
@@ -3,7 +3,7 @@
 
 # Files from the compatibility library
 lib/color.c
-lib/version.c
+lib/printversion.c
 lib/xmalloc.c
 
 # Library sources
index 19c7dbb..0601198 100644 (file)
@@ -1,3 +1,21 @@
+2017-02-16  Ulf Hermann  <ulf.hermann@qt.io>
+
+       * addr2line.c: Include printversion.h
+       * ar.c: Likewise.
+       * elflint.c: Likewise.
+       * nm.c: Likewise.
+       * objdump.c: Likewise.
+       * ranlib.c: Likewise.
+       * readelf.c: Likewise.
+       * size.c: Likewise.
+       * stack.c: Likewise.
+       * strings.c: Likewise.
+       * strip.c: Likewise.
+       * elfcmp.c: Include printversion.h, remove system.h include.
+       * elfcompress.c: Likewise.
+       * findtextrel.c: Likewise.
+       * unstrip.c: Likewise.
+
 2017-02-14  Ulf Hermann  <ulf.hermann@qt.io>
 
        * nm.c: Include color.h.
index 0222088..ba414a7 100644 (file)
@@ -38,6 +38,7 @@
 #include <unistd.h>
 
 #include <system.h>
+#include <printversion.h>
 
 
 /* Name and version of program.  */
index f2f322b..ec32cee 100644 (file)
--- a/src/ar.c
+++ b/src/ar.c
@@ -41,6 +41,7 @@
 #include <sys/time.h>
 
 #include <system.h>
+#include <printversion.h>
 
 #include "arlib.h"
 
index 401ab31..7673cf2 100644 (file)
@@ -33,7 +33,7 @@
 #include <string.h>
 #include <unistd.h>
 
-#include <system.h>
+#include <printversion.h>
 #include "../libelf/elf-knowledge.h"
 #include "../libebl/libeblP.h"
 
index 9f6db1c..8e0d5c5 100644 (file)
@@ -35,7 +35,7 @@
 #include ELFUTILS_HEADER(dwelf)
 #include <gelf.h>
 #include "libeu.h"
-#include "system.h"
+#include "printversion.h"
 
 /* Name and version of program.  */
 ARGP_PROGRAM_VERSION_HOOK_DEF = print_version;
index 7d3f227..66a13ca 100644 (file)
@@ -39,6 +39,7 @@
 #include <elf-knowledge.h>
 #include <libeu.h>
 #include <system.h>
+#include <printversion.h>
 #include "../libelf/libelfP.h"
 #include "../libelf/common.h"
 #include "../libebl/libeblP.h"
index dc41502..8f1e239 100644 (file)
@@ -36,7 +36,7 @@
 #include <string.h>
 #include <unistd.h>
 
-#include <system.h>
+#include <printversion.h>
 
 
 struct segments
index 47a9e3b..969c6d3 100644 (file)
--- a/src/nm.c
+++ b/src/nm.c
@@ -45,6 +45,7 @@
 #include <libeu.h>
 #include <system.h>
 #include <color.h>
+#include <printversion.h>
 #include "../libebl/libeblP.h"
 #include "../libdwfl/libdwflP.h"
 
index 030274b..860cfac 100644 (file)
@@ -36,6 +36,7 @@
 #include <libeu.h>
 #include <system.h>
 #include <color.h>
+#include <printversion.h>
 #include "../libebl/libeblP.h"
 
 
index 41a3bcf..cc0ee23 100644 (file)
@@ -38,6 +38,7 @@
 #include <sys/stat.h>
 
 #include <system.h>
+#include <printversion.h>
 
 #include "arlib.h"
 
index d3a9008..8d96ba3 100644 (file)
@@ -45,6 +45,7 @@
 
 #include <libeu.h>
 #include <system.h>
+#include <printversion.h>
 #include "../libelf/libelfP.h"
 #include "../libelf/common.h"
 #include "../libebl/libeblP.h"
index de0d791..ad8dbcb 100644 (file)
@@ -36,7 +36,7 @@
 #include <unistd.h>
 
 #include <system.h>
-
+#include <printversion.h>
 
 /* Name and version of program.  */
 ARGP_PROGRAM_VERSION_HOOK_DEF = print_version;
index a5a7beb..6f2ff69 100644 (file)
@@ -30,6 +30,7 @@
 
 #include <dwarf.h>
 #include <system.h>
+#include <printversion.h>
 
 /* Name and version of program.  */
 ARGP_PROGRAM_VERSION_HOOK_DEF = print_version;
index 49aab8b..d214356 100644 (file)
@@ -42,6 +42,7 @@
 
 #include <libeu.h>
 #include <system.h>
+#include <printversion.h>
 
 #ifndef MAP_POPULATE
 # define MAP_POPULATE 0
index a791ca5..f747441 100644 (file)
@@ -44,6 +44,7 @@
 #include "libdwelf.h"
 #include <libeu.h>
 #include <system.h>
+#include <printversion.h>
 
 typedef uint8_t GElf_Byte;
 
index d838ae9..6e57a6b 100644 (file)
@@ -50,7 +50,7 @@
 #include <libdwfl.h>
 #include "libdwelf.h"
 #include "libeu.h"
-#include "system.h"
+#include "printversion.h"
 
 #ifndef _
 # define _(str) gettext (str)