summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@qt.io>2017-02-16 12:32:02 +0100
committerMark Wielaard <mark@klomp.org>2017-02-17 10:55:28 +0100
commite22cc80923f94e54c9384421904461958899db5b (patch)
tree944b0153b16386401f56572375440e15199bc2fc /lib
parentb3248e684cedf66239710a5f16a6b45294f183bc (diff)
Move print_version into printversion.{h|c}
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>
Diffstat (limited to 'lib')
-rw-r--r--lib/ChangeLog13
-rw-r--r--lib/Makefile.am4
-rw-r--r--lib/printversion.c (renamed from lib/version.c)4
-rw-r--r--lib/printversion.h49
-rw-r--r--lib/system.h16
5 files changed, 65 insertions, 21 deletions
diff --git a/lib/ChangeLog b/lib/ChangeLog
index fd63e039..84290f79 100644
--- a/lib/ChangeLog
+++ b/lib/ChangeLog
@@ -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.
diff --git a/lib/Makefile.am b/lib/Makefile.am
index 3e0c601f..7a65eb91 100644
--- a/lib/Makefile.am
+++ b/lib/Makefile.am
@@ -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
diff --git a/lib/version.c b/lib/printversion.c
index b8d70cbf..4056b938 100644
--- a/lib/version.c
+++ b/lib/printversion.c
@@ -30,10 +30,8 @@
# 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
index 00000000..a9e059ff
--- /dev/null
+++ b/lib/printversion.h
@@ -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
diff --git a/lib/system.h b/lib/system.h
index 429b0c33..2d057025 100644
--- a/lib/system.h
+++ b/lib/system.h
@@ -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);