diff --git a/src/common/secret.c b/src/common/secret.c index b6f26ec3..1b4531f8 100644 --- a/src/common/secret.c +++ b/src/common/secret.c @@ -63,9 +63,18 @@ int set_kernel_secret(const char *secret, const char *key_name) ret = ceph_unarmor(payload, payload+sizeof(payload), secret, secret+secret_len); if (ret < 0) { - char error_buf[80]; - fprintf(stderr, "secret is not valid base64: %s.\n", - strerror_r(-ret, error_buf, sizeof(error_buf))); + char error_buf[80] = "unkown error"; + char *p; +#if defined(__GLIBC__) + p = strerror_r(-ret, error_buf, sizeof(error_buf)); +#else + if (strerror_r(-ret, error_buf, sizeof(error_buf)) < 0) { + p = "unkown error"; + } else { + p = error_buf; + } +#endif + fprintf(stderr, "secret is not valid base64: %s.\n", p); return ret; } diff --git a/src/dmclock/src/dmclock_util.cc b/src/dmclock/src/dmclock_util.cc index e8046cdc..aa9000bc 100644 --- a/src/dmclock/src/dmclock_util.cc +++ b/src/dmclock/src/dmclock_util.cc @@ -21,7 +21,7 @@ #include "dmclock_util.h" -std::string crimson::dmclock::format_time(const Time& time, uint modulo) { +std::string crimson::dmclock::format_time(const Time& time, unsigned int modulo) { long subtract = long(time / modulo) * modulo; std::stringstream ss; ss << std::fixed << std::setprecision(4) << (time - subtract); diff --git a/src/dmclock/src/dmclock_util.h b/src/dmclock/src/dmclock_util.h index d3fd3f19..ee8b6c3a 100644 --- a/src/dmclock/src/dmclock_util.h +++ b/src/dmclock/src/dmclock_util.h @@ -52,7 +52,7 @@ namespace crimson { #endif } - std::string format_time(const Time& time, uint modulo = 1000); + std::string format_time(const Time& time, unsigned int modulo = 1000); void debugger(); diff --git a/src/seastar/dpdk/config/common_base b/src/seastar/dpdk/config/common_base index 8907bea3..6d3f7577 100644 --- a/src/seastar/dpdk/config/common_base +++ b/src/seastar/dpdk/config/common_base @@ -96,7 +96,7 @@ CONFIG_RTE_MAX_TAILQ=32 CONFIG_RTE_LOG_LEVEL=RTE_LOG_INFO CONFIG_RTE_LOG_DP_LEVEL=RTE_LOG_INFO CONFIG_RTE_LOG_HISTORY=256 -CONFIG_RTE_BACKTRACE=y +CONFIG_RTE_BACKTRACE=n CONFIG_RTE_LIBEAL_USE_HPET=n CONFIG_RTE_EAL_ALLOW_INV_SOCKET_ID=n CONFIG_RTE_EAL_ALWAYS_PANIC_ON_ERROR=n diff --git a/src/spdk/dpdk/config/common_base b/src/spdk/dpdk/config/common_base index d5fbb3a4..d9561545 100644 --- a/src/spdk/dpdk/config/common_base +++ b/src/spdk/dpdk/config/common_base @@ -80,7 +80,7 @@ CONFIG_RTE_MAX_TAILQ=32 CONFIG_RTE_ENABLE_ASSERT=n CONFIG_RTE_LOG_DP_LEVEL=RTE_LOG_INFO CONFIG_RTE_LOG_HISTORY=256 -CONFIG_RTE_BACKTRACE=y +CONFIG_RTE_BACKTRACE=n CONFIG_RTE_LIBEAL_USE_HPET=n CONFIG_RTE_EAL_ALLOW_INV_SOCKET_ID=n CONFIG_RTE_EAL_ALWAYS_PANIC_ON_ERROR=n diff --git a/src/spdk/dpdk/config/rte_config.h b/src/spdk/dpdk/config/rte_config.h index a8e47977..7599bd39 100644 --- a/src/spdk/dpdk/config/rte_config.h +++ b/src/spdk/dpdk/config/rte_config.h @@ -30,7 +30,7 @@ #define RTE_MAX_MEMZONE 2560 #define RTE_MAX_TAILQ 32 #define RTE_LOG_DP_LEVEL RTE_LOG_INFO -#define RTE_BACKTRACE 1 +//#define RTE_BACKTRACE 1 #define RTE_EAL_VFIO 1 #define RTE_MAX_VFIO_CONTAINERS 64 diff --git a/src/spdk/dpdk/drivers/bus/pci/linux/pci_uio.c b/src/spdk/dpdk/drivers/bus/pci/linux/pci_uio.c index a7c14421..aff241e8 100644 --- a/src/spdk/dpdk/drivers/bus/pci/linux/pci_uio.c +++ b/src/spdk/dpdk/drivers/bus/pci/linux/pci_uio.c @@ -14,6 +14,32 @@ #if defined(RTE_ARCH_X86) #include +#if defined(__GLIBC__) +#define pci_uio_outl_p outl_p +#define pci_uio_outw_p outw_p +#define pci_uio_outb_p outb_p +#else +static inline void +pci_uio_outl_p(unsigned int value, unsigned short int port) +{ + __asm__ __volatile__ ("outl %0,%w1\noutb %%al,$0x80" : : "a" (value), + "Nd" (port)); +} + +static inline void +pci_uio_outw_p(unsigned short int value, unsigned short int port) +{ + __asm__ __volatile__ ("outw %w0,%w1\noutb %%al,$0x80" : : "a" (value), + "Nd" (port)); +} + +static inline void +pci_uio_outb_p(unsigned char value, unsigned short int port) +{ + __asm__ __volatile__ ("outb %b0,%w1\noutb %%al,$0x80" : : "a" (value), + "Nd" (port)); +} +#endif #endif #include @@ -527,21 +553,21 @@ pci_uio_ioport_write(struct rte_pci_ioport *p, if (len >= 4) { size = 4; #if defined(RTE_ARCH_X86) - outl_p(*(const uint32_t *)s, reg); + pci_uio_outl_p(*(const uint32_t *)s, reg); #else *(volatile uint32_t *)reg = *(const uint32_t *)s; #endif } else if (len >= 2) { size = 2; #if defined(RTE_ARCH_X86) - outw_p(*(const uint16_t *)s, reg); + pci_uio_outw_p(*(const uint16_t *)s, reg); #else *(volatile uint16_t *)reg = *(const uint16_t *)s; #endif } else { size = 1; #if defined(RTE_ARCH_X86) - outb_p(*s, reg); + pci_uio_outb_p(*s, reg); #else *(volatile uint8_t *)reg = *s; #endif diff --git a/src/spdk/dpdk/lib/librte_eal/common/eal_common_fbarray.c b/src/spdk/dpdk/lib/librte_eal/common/eal_common_fbarray.c index ba6c4ae3..b9b7d70d 100644 --- a/src/spdk/dpdk/lib/librte_eal/common/eal_common_fbarray.c +++ b/src/spdk/dpdk/lib/librte_eal/common/eal_common_fbarray.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include diff --git a/src/spdk/dpdk/lib/librte_eal/common/malloc_heap.c b/src/spdk/dpdk/lib/librte_eal/common/malloc_heap.c index 02a5385d..cf063d5f 100644 --- a/src/spdk/dpdk/lib/librte_eal/common/malloc_heap.c +++ b/src/spdk/dpdk/lib/librte_eal/common/malloc_heap.c @@ -1,6 +1,7 @@ /* SPDX-License-Identifier: BSD-3-Clause * Copyright(c) 2010-2014 Intel Corporation */ + #include #include #include #include diff --git a/src/spdk/dpdk/lib/librte_eal/linuxapp/eal/eal_hugepage_info.c b/src/spdk/dpdk/lib/librte_eal/linuxapp/eal/eal_hugepage_info.c index 3a7d4b22..99b25d3c 100644 --- a/src/spdk/dpdk/lib/librte_eal/linuxapp/eal/eal_hugepage_info.c +++ b/src/spdk/dpdk/lib/librte_eal/linuxapp/eal/eal_hugepage_info.c @@ -17,6 +17,7 @@ #include #include #include +#include #include /* for hugetlb-related flags */ diff --git a/src/spdk/dpdk/lib/librte_eal/linuxapp/eal/eal_memory.c b/src/spdk/dpdk/lib/librte_eal/linuxapp/eal/eal_memory.c index 0bf2aef3..0c98c74c 100644 --- a/src/spdk/dpdk/lib/librte_eal/linuxapp/eal/eal_memory.c +++ b/src/spdk/dpdk/lib/librte_eal/linuxapp/eal/eal_memory.c @@ -15,6 +15,7 @@ #include #include #include +#include #include #include #include diff --git a/src/spdk/dpdk/mk/target/generic/rte.vars.mk b/src/spdk/dpdk/mk/target/generic/rte.vars.mk index 98085cd3..dd149acc 100644 --- a/src/spdk/dpdk/mk/target/generic/rte.vars.mk +++ b/src/spdk/dpdk/mk/target/generic/rte.vars.mk @@ -108,6 +108,9 @@ CFLAGS += -include $(RTE_SDK_BIN)/include/rte_config.h LDFLAGS += -L$(RTE_SDK_BIN)/lib endif +# always define _GNU_SOURCE +CFLAGS += -D_GNU_SOURCE + export CFLAGS export LDFLAGS diff --git a/src/tools/rbd_nbd/rbd-nbd.cc b/src/tools/rbd_nbd/rbd-nbd.cc index cce44e4f..b0988e64 100644 --- a/src/tools/rbd_nbd/rbd-nbd.cc +++ b/src/tools/rbd_nbd/rbd-nbd.cc @@ -552,7 +552,8 @@ private: for (unsigned i = 0; i < cmdline.size(); i++) { const char *arg = &cmdline[i]; if (i == 0) { - if (strcmp(basename(arg) , "rbd-nbd") != 0) { + const char *fname = strrchr(arg, '/'); + if (strcmp(fname ? fname+1 : arg, "rbd-nbd") != 0) { return -EINVAL; } } else {