From: c.briere@samsung.com (Charles Briere)
Subject: [lttng-dev] [PATCH lttng-tools 18/24] Add : Compatibility layer for shm.h
Date: Mon, 27 Oct 2014 20:49:30 +0000 [thread overview]
Message-ID: <1414442926-14381-19-git-send-email-c.briere@samsung.com> (raw)
In-Reply-To: <1414442926-14381-1-git-send-email-c.briere@samsung.com>
From: Charles Briere <c.briere@samsung.com>
Linking libcutils for Android that uses ashmem
Signed-off-by: Charles Briere <c.briere at samsung.com>
---
configure.ac | 14 ++++++++++++++
src/bin/lttng-sessiond/shm.c | 5 +++--
src/common/compat/shm.h | 37 +++++++++++++++++++++++++++++++++++++
src/common/defaults.h | 1 +
4 files changed, 55 insertions(+), 2 deletions(-)
create mode 100644 src/common/compat/shm.h
diff --git a/configure.ac b/configure.ac
index e219689..16852b1 100644
--- a/configure.ac
+++ b/configure.ac
@@ -194,6 +194,20 @@ AC_CHECK_LIB([rt], [shm_open],
AM_CONDITIONAL([LTTNG_BUILD_WITH_LIBUUID], [test "x$have_libuuid" = "xyes"])
AM_CONDITIONAL([LTTNG_BUILD_WITH_LIBC_UUID], [test "x$have_libc_uuid" = "xyes"])
+# Check for libcutils
+AC_CHECK_LIB([cutils], [ashmem_create],
+ [AC_SUBST(LIBCUTILS_LIBS, '-lcutils')],
+ [AC_SUBST(LIBCUTILS_LIBS, '')],
+)
+AC_CHECK_HEADERS([cutils/ashmem.h],
+ [AC_CHECK_DECLS([ashmem_create], [], [], [[#include <cutils/ashmem.h>]])],
+)
+
+AS_CASE([$host],[*-*-linux-androideabi],
+ [AM_CONDITIONAL(TARGET_IS_ANDROID, true)],
+ [AM_CONDITIONAL(TARGET_IS_ANDROID, false)]
+)
+
# URCU library version needed or newer
liburcu_version=">= 0.8.0"
diff --git a/src/bin/lttng-sessiond/shm.c b/src/bin/lttng-sessiond/shm.c
index e9ed714..dba3679 100644
--- a/src/bin/lttng-sessiond/shm.c
+++ b/src/bin/lttng-sessiond/shm.c
@@ -30,7 +30,7 @@
#include <common/error.h>
-#include "shm.h"
+#include <common/compat/shm.h>
/*
* Using fork to set umask in the child process (not multi-thread safe). We
@@ -73,7 +73,8 @@ static int get_wait_shm(char *shm_path, size_t mmap_size, int global)
* Try creating shm (or get rw access). We don't do an exclusive open,
* because we allow other processes to create+ftruncate it concurrently.
*/
- wait_shm_fd = shm_open(shm_path, O_RDWR | O_CREAT, mode);
+ wait_shm_fd = lttng_shm_open(shm_path, O_RDWR | O_CREAT, mode);
+
if (wait_shm_fd < 0) {
PERROR("shm_open wait shm");
goto error;
diff --git a/src/common/compat/shm.h b/src/common/compat/shm.h
new file mode 100644
index 0000000..28e498a
--- /dev/null
+++ b/src/common/compat/shm.h
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2014 - Charles Briere <c.briere at samsung.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License, version 2 only,
+ * as published by the Free Software Foundation.
+ *
+ * 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 _COMPAT_SYS_SHM_H
+#define _COMPAT_SYS_SHM_H
+
+# if defined(HAVE_SYS_SHM_H)
+
+#include <sys/shm.h>
+
+#define lttng_shm_open(name, oflag, mode) \
+ shm_open(name, oflag, mode)
+
+# elif defined(HAVE_CUTILS_ASHMEM_H)
+
+#include <cutils/ashmem.h>
+
+#define lttng_shm_open(name, oflag, mode) \
+ open(name, oflag, mode)
+
+# endif /* HAVE_SYS_SHM_H */
+
+#endif /*_COMPAT_SYS_SHM_H */
diff --git a/src/common/defaults.h b/src/common/defaults.h
index 25d7b32..8951179 100644
--- a/src/common/defaults.h
+++ b/src/common/defaults.h
@@ -143,6 +143,7 @@
#define DEFAULT_HOME_APPS_UNIX_SOCK \
DEFAULT_LTTNG_HOME_RUNDIR "/" LTTNG_UST_SOCK_FILENAME
#define DEFAULT_GLOBAL_APPS_WAIT_SHM_PATH \
+ DEFAULT_LTTNG_RUNDIR \
"/" LTTNG_UST_WAIT_FILENAME
#define DEFAULT_HOME_APPS_WAIT_SHM_PATH \
DEFAULT_GLOBAL_APPS_WAIT_SHM_PATH "-%d"
--
2.1.2
next prev parent reply other threads:[~2014-10-27 20:49 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-10-27 20:49 [lttng-dev] Fixes for Android Charles Briere
2014-10-27 20:49 ` [lttng-dev] [PATCH lttng-tools 03/24] Fix : Wrap variable with URCU_TLS for sizeof Charles Briere
2014-10-27 20:49 ` [lttng-dev] [PATCH lttng-tools 01/24] Fix : wait.h should be sys/wait.h according to posix and android doesn't redirect wait.h to sys/wait.h Charles Briere
2014-10-27 20:49 ` [lttng-dev] [PATCH lttng-tools 04/24] Fix : Only link librt if available Charles Briere
2014-10-27 20:49 ` [lttng-dev] [PATCH lttng-tools 02/24] Fix : Include sys/stat.h where needed Charles Briere
2014-10-27 20:49 ` [lttng-dev] [PATCH lttng-tools 05/24] Fix : Do not use gLibc specific macros Charles Briere
2014-10-27 20:49 ` [lttng-dev] [PATCH lttng-tools 07/24] Fix : need to include config.h if using it's definitions Charles Briere
2014-10-27 20:49 ` [lttng-dev] [PATCH lttng-tools 06/24] Fix : Do not redeclare gettid if found Charles Briere
2014-10-27 20:49 ` [lttng-dev] [PATCH lttng-tools 08/24] Fix : Don't compile ust functions when not enabled Charles Briere
2014-10-27 20:49 ` [lttng-dev] [PATCH lttng-tools 15/24] Add : Compatibility layer for stat.h Charles Briere
2014-10-27 20:49 ` [lttng-dev] [PATCH lttng-tools 13/24] Add : Compatibility layer for un.h Charles Briere
2014-10-27 20:49 ` [lttng-dev] [PATCH lttng-tools 11/24] Add : Compatibility layer for limit.h Charles Briere
2014-10-27 20:49 ` [lttng-dev] [PATCH lttng-tools 16/24] Add : Compatibility layer for pwd.h Charles Briere
2014-10-27 20:49 ` [lttng-dev] [PATCH lttng-tools 09/24] Add : Compatibility layer for syscall.h Charles Briere
2014-10-27 20:49 ` [lttng-dev] [PATCH lttng-tools 14/24] Add : Compatibility layer for signal.h Charles Briere
2014-10-27 20:49 ` [lttng-dev] [PATCH lttng-tools 12/24] Add : Compatibility layer for ulimit.h Charles Briere
2014-10-27 20:49 ` [lttng-dev] [PATCH lttng-tools 17/24] Add : Compatibility layer for pthread Charles Briere
2014-10-27 20:49 ` [lttng-dev] [PATCH lttng-tools 10/24] Add : Compatibility layer for netinet/in.h Charles Briere
2014-10-27 20:49 ` Charles Briere [this message]
2014-10-27 20:49 ` [lttng-dev] [PATCH lttng-tools 23/24] Android : Define posix_fadvise Charles Briere
2014-10-27 20:49 ` [lttng-dev] [PATCH lttng-tools 24/24] Android : Add splice compatibility to fcntl layer Charles Briere
2014-10-27 20:49 ` [lttng-dev] [PATCH lttng-tools 20/24] Android : %m[^] not supported in fscanf Charles Briere
2014-10-27 20:49 ` [lttng-dev] [PATCH lttng-tools 22/24] Android : Missing defintion in fcntl.h Charles Briere
2014-10-27 20:49 ` [lttng-dev] [PATCH lttng-tools 19/24] Android : Looking for pthread in libc Charles Briere
2014-10-27 20:49 ` [lttng-dev] [PATCH lttng-tools 21/24] Android : Adding bswap defintions Charles Briere
2014-10-27 20:58 ` [lttng-dev] Fixes for Android Karim Yaghmour
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=1414442926-14381-19-git-send-email-c.briere@samsung.com \
--to=c.briere@samsung.com \
/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