signal.h stdlib.h sys/un.h sys/socket.h stdlib.h stdio.h \
getopt.h sys/ipc.h sys/shm.h popt.h grp.h arpa/inet.h \
netdb.h netinet/in.h paths.h stddef.h sys/file.h sys/ioctl.h \
- sys/mount.h sys/param.h sys/time.h
+ sys/mount.h sys/param.h sys/time.h elf.h
])
+AM_CONDITIONAL([HAVE_ELF_H], [test x$ac_cv_header_elf_h = xyes])
+
# Basic functions check
AC_CHECK_FUNCS([ \
atexit bzero clock_gettime dup2 fdatasync fls ftruncate \
build_lib_consumer=no
build_lib_hashtable=no
build_lib_health=no
-build_lib_runas=no
build_lib_index=no
build_lib_kernel_consumer=no
build_lib_kernel_ctl=no
build_lib_relayd=yes
build_lib_testpoint=yes
build_lib_health=yes
- build_lib_runas=yes
]
)
AM_CONDITIONAL([BUILD_LIB_CONSUMER], [test x$build_lib_consumer = xyes])
AM_CONDITIONAL([BUILD_LIB_HASHTABLE], [test x$build_lib_hashtable = xyes])
AM_CONDITIONAL([BUILD_LIB_HEALTH], [test x$build_lib_health = xyes])
-AM_CONDITIONAL([BUILD_LIB_RUNAS], [test x$build_lib_runas = xyes])
AM_CONDITIONAL([BUILD_LIB_INDEX], [test x$build_lib_index = xyes])
AM_CONDITIONAL([BUILD_LIB_KERNEL_CONSUMER], [test x$build_lib_kernel_consumer = xyes])
AM_CONDITIONAL([BUILD_LIB_KERNEL_CTL], [test x$build_lib_kernel_ctl = xyes])
noinst_LTLIBRARIES = libcommon.la
EXTRA_DIST = mi-lttng-3.0.xsd
-libcommon_la_SOURCES = error.h error.c utils.c utils.h runas.h \
+libcommon_la_SOURCES = error.h error.c utils.c utils.h runas.h runas.c \
common.h futex.c futex.h uri.c uri.h defaults.c \
pipe.c pipe.h readwrite.c readwrite.h \
mi-lttng.h mi-lttng.c \
waiter.h waiter.c \
userspace-probe.c event.c
+if HAVE_ELF_H
+libcommon_la_SOURCES += lttng-elf.h lttng-elf.c
+endif
+
libcommon_la_LIBADD = \
$(top_builddir)/src/common/config/libconfig.la \
$(UUID_LIBS)
-if BUILD_LIB_RUNAS
-libcommon_la_SOURCES += runas.c lttng-elf.h lttng-elf.c
-else
-libcommon_la_SOURCES += runas-stub.c
-endif
-
if BUILD_LIB_COMPAT
SUBDIRS += compat
endif
do { \
switch (sizeof(x)) { \
case 8: \
- x = be64toh(x); \
+ x = be64toh((uint64_t)x); \
break; \
case 4: \
- x = be32toh(x); \
+ x = be32toh((uint32_t)x); \
break; \
case 2: \
- x = be16toh(x); \
+ x = be16toh((uint16_t)x); \
break; \
case 1: \
break; \
+++ /dev/null
-#ifndef _RUNAS_STUB_H
-#define _RUNAS_STUB_H
-
-/*
- * Copyright (C) 2018 - Francis Deslauriers <francis.deslauriers@efficios.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.
- */
-
-#include <sys/types.h>
-#include <stdint.h>
-
-int run_as_mkdir_recursive(const char *path, mode_t mode, uid_t uid, gid_t gid)
-{
- return -1;
-}
-int run_as_mkdir(const char *path, mode_t mode, uid_t uid, gid_t gid)
-{
- return -1;
-}
-int run_as_open(const char *path, int flags, mode_t mode, uid_t uid, gid_t gid)
-{
- return -1;
-}
-int run_as_unlink(const char *path, uid_t uid, gid_t gid)
-{
- return -1;
-}
-int run_as_rmdir_recursive(const char *path, uid_t uid, gid_t gid)
-{
- return -1;
-}
-int lttng_elf_get_symbol_offset(int fd, char *symbol, uint64_t *offset)
-{
- return -1;
-}
-int lttng_elf_get_sdt_probe_offsets(int fd, const char *provider_name,
- const char *probe_name, uint64_t **offsets, uint32_t *nb_probe)
-{
- return -1;
-}
-int run_as_create_worker(char *procname)
-{
- return -1;
-}
-void run_as_destroy_worker(void)
-{
- return;
-}
-
-#endif /* _RUNAS_STUB_H */
return ret_value->u.rmdir_recursive.ret;
}
+#ifdef HAVE_ELF_H
static
int _extract_elf_symbol_offset(struct run_as_data *data,
struct run_as_ret *ret_value)
end:
return ret;
}
+#else
+static
+int _extract_elf_symbol_offset(struct run_as_data *data,
+ struct run_as_ret *ret_value)
+{
+ ERR("Unimplemented runas command RUN_AS_EXTRACT_ELF_SYMBOL_OFFSET");
+ return -1;
+}
+
+static
+int _extract_sdt_probe_offsets(struct run_as_data *data,
+ struct run_as_ret *ret_value)
+{
+ ERR("Unimplemented runas command RUN_AS_EXTRACT_SDT_PROBE_OFFSETS");
+ return -1;
+}
+#endif
static
run_as_fct run_as_enum_to_fct(enum run_as_cmd cmd)