From: Ulf Hermann <ulf.hermann@qt.io>
To: <elfutils-devel@sourceware.org>
Subject: [PATCH] Check for existence of mempcpy
Date: Thu, 16 Feb 2017 09:10:00 -0000 [thread overview]
Message-ID: <8d7f6ec7-205c-e196-900a-3cf26a02c691@qt.io> (raw)
If it doesn't exist, provide a definition based on memcpy.
Signed-off-by: Ulf Hermann <ulf.hermann@qt.io>
---
ChangeLog | 4 ++++
configure.ac | 3 +++
lib/ChangeLog | 5 +++++
lib/system.h | 5 +++++
lib/xstrndup.c | 2 +-
libasm/ChangeLog | 4 ++++
libasm/disasm_str.c | 2 +-
libdwfl/ChangeLog | 4 ++++
libdwfl/linux-kernel-modules.c | 1 +
libebl/ChangeLog | 5 +++++
libebl/eblmachineflagname.c | 1 +
libebl/eblopenbackend.c | 1 +
tests/ChangeLog | 4 ++++
tests/elfstrmerge.c | 1 +
14 files changed, 40 insertions(+), 2 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index b50f79e..48185c3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2017-02-15 Ulf Hermann <ulf.hermann@qt.io>
+
+ * configure.ac: Add check for mempcpy.
+
2017-02-09 Mark Wielaard <mark@klomp.org>
* configure.ac: Add check for adding -D_FORTIFY_SOURCE=2 to CFLAGS.
diff --git a/configure.ac b/configure.ac
index 46055f2..3c35dac 100644
--- a/configure.ac
+++ b/configure.ac
@@ -285,6 +285,9 @@ AC_CHECK_DECLS([memrchr, rawmemchr],[],[],
[#define _GNU_SOURCE
#include <string.h>])
AC_CHECK_DECLS([powerof2],[],[],[#include <sys/param.h>])
+AC_CHECK_DECLS([mempcpy],[],[],
+ [#define _GNU_SOURCE
+ #include <string.h>])
AC_CHECK_LIB([stdc++], [__cxa_demangle], [dnl
AC_DEFINE([USE_DEMANGLE], [1], [Defined if demangling is enabled])])
diff --git a/lib/ChangeLog b/lib/ChangeLog
index 6578ddb..fd63e03 100644
--- a/lib/ChangeLog
+++ b/lib/ChangeLog
@@ -1,5 +1,10 @@
2017-02-15 Ulf Hermann <ulf.hermann@qt.io>
+ * system.h: Provide mempcpy if it doesn't exist.
+ * xstrndup.c: Include system.h.
+
+2017-02-15 Ulf Hermann <ulf.hermann@qt.io>
+
* crc32_file.c: Use _SC_PAGESIZE rather than _SC_PAGE_SIZE.
2017-02-14 Ulf Hermann <ulf.hermann@qt.io>
diff --git a/lib/system.h b/lib/system.h
index dde7c4a..429b0c3 100644
--- a/lib/system.h
+++ b/lib/system.h
@@ -68,6 +68,11 @@
#define powerof2(x) (((x) & ((x) - 1)) == 0)
#endif
+#if !HAVE_DECL_MEMPCPY
+#define mempcpy(dest, src, n) \
+ ((void *) ((char *) memcpy (dest, src, n) + (size_t) n))
+#endif
+
/* A special gettext function we use if the strings are too short. */
#define sgettext(Str) \
({ const char *__res = strrchr (gettext (Str), '|'); \
diff --git a/lib/xstrndup.c b/lib/xstrndup.c
index d43e3b9..a257aa9 100644
--- a/lib/xstrndup.c
+++ b/lib/xstrndup.c
@@ -33,7 +33,7 @@
#include <stdint.h>
#include <string.h>
#include "libeu.h"
-
+#include "system.h"
/* Return a newly allocated copy of STRING. */
char *
diff --git a/libasm/ChangeLog b/libasm/ChangeLog
index fe06007..26fc5a9 100644
--- a/libasm/ChangeLog
+++ b/libasm/ChangeLog
@@ -1,3 +1,7 @@
+2017-02-15 Ulf Hermann <ulf.hermann@qt.io>
+
+ * disasm_str.c: Include system.h.
+
2015-10-11 Akihiko Odaki <akihiko.odaki.4i@stu.hosei.ac.jp>
* asm_align.c: Remove sys/param.h include.
diff --git a/libasm/disasm_str.c b/libasm/disasm_str.c
index 5b0bb29..c14e6d5 100644
--- a/libasm/disasm_str.c
+++ b/libasm/disasm_str.c
@@ -31,7 +31,7 @@
#endif
#include <string.h>
-
+#include <system.h>
#include "libasmP.h"
diff --git a/libdwfl/ChangeLog b/libdwfl/ChangeLog
index 52466cc..4c9f4f6 100644
--- a/libdwfl/ChangeLog
+++ b/libdwfl/ChangeLog
@@ -1,5 +1,9 @@
2017-02-15 Ulf Hermann <ulf.hermann@qt.io>
+ * linux-kernel-modules.c: Include system.h.
+
+2017-02-15 Ulf Hermann <ulf.hermann@qt.io>
+
* linux-kernel-modules.c: Use sysconf(_SC_PAGESIZE) to get page size.
* linux-proc-maps.c: Likewise.
diff --git a/libdwfl/linux-kernel-modules.c b/libdwfl/linux-kernel-modules.c
index a7ac19d..7345e76 100644
--- a/libdwfl/linux-kernel-modules.c
+++ b/libdwfl/linux-kernel-modules.c
@@ -34,6 +34,7 @@
#endif
#include <config.h>
+#include <system.h>
#include "libdwflP.h"
#include <inttypes.h>
diff --git a/libebl/ChangeLog b/libebl/ChangeLog
index 0560c6a..719d08d 100644
--- a/libebl/ChangeLog
+++ b/libebl/ChangeLog
@@ -1,3 +1,8 @@
+2017-02-15 Ulf Hermann <ulf.hermann@qt.io>
+
+ * eblmachineflagname.c: Include system.h.
+ * eblopenbackend.c: Likewise.
+
2016-07-08 Mark Wielaard <mjw@redhat.com>
* Makefile.am (gen_SOURCES): Remove eblstrtab.c.
diff --git a/libebl/eblmachineflagname.c b/libebl/eblmachineflagname.c
index 6079a61..5f44077 100644
--- a/libebl/eblmachineflagname.c
+++ b/libebl/eblmachineflagname.c
@@ -33,6 +33,7 @@
#include <stdio.h>
#include <string.h>
+#include <system.h>
#include <libeblP.h>
diff --git a/libebl/eblopenbackend.c b/libebl/eblopenbackend.c
index aa75b95..f3a65cf 100644
--- a/libebl/eblopenbackend.c
+++ b/libebl/eblopenbackend.c
@@ -39,6 +39,7 @@
#include <string.h>
#include <stdio.h>
+#include <system.h>
#include <libeblP.h>
diff --git a/tests/ChangeLog b/tests/ChangeLog
index 71dba42..4af450c 100644
--- a/tests/ChangeLog
+++ b/tests/ChangeLog
@@ -1,3 +1,7 @@
+2017-02-15 Ulf Hermann <ulf.hermann@qt.io>
+
+ * elfstrmerge.c: Include system.h.
+
2017-02-13 Ulf Hermann <ulf.hermann@qt.io>
* Makefile.am: Add test for unwinding with frame pointers on aarch64
diff --git a/tests/elfstrmerge.c b/tests/elfstrmerge.c
index c2c3fb9..8d5b53c 100644
--- a/tests/elfstrmerge.c
+++ b/tests/elfstrmerge.c
@@ -29,6 +29,7 @@
#include <inttypes.h>
#include <unistd.h>
+#include <system.h>
#include <gelf.h>
#include ELFUTILS_HEADER(dwelf)
#include "elf-knowledge.h"
--
2.1.4
next reply other threads:[~2017-02-16 9:10 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-02-16 9:10 Ulf Hermann [this message]
2017-02-17 9:46 ` Mark Wielaard
2017-02-17 9:50 ` Ulf Hermann
2017-02-17 10:26 ` Mark Wielaard
2017-02-17 12:16 ` Ulf Hermann
2017-02-23 11:40 ` Mark Wielaard
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=8d7f6ec7-205c-e196-900a-3cf26a02c691@qt.io \
--to=ulf.hermann@qt.io \
--cc=elfutils-devel@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).