perf tools: Use __BYTE_ORDER__
Switch from the libc-defined __BYTE_ORDER to the compiler-defined __BYTE_ORDER__ in order to make endianness detection more robust, like it was done for libbpf. Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com> Suggested-by: Arnaldo Carvalho de Melo <acme@redhat.com> Cc: Heiko Carstens <hca@linux.ibm.com> Cc: Thomas Richter <tmricht@linux.ibm.com> Cc: Vasily Gorbik <gor@linux.ibm.com> Link: https://lore.kernel.org/r/20211104132311.984703-1-iii@linux.ibm.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
b3a018fc31
commit
4e88118c20
@ -13,7 +13,7 @@
|
|||||||
|
|
||||||
#include "arm-spe-pkt-decoder.h"
|
#include "arm-spe-pkt-decoder.h"
|
||||||
|
|
||||||
#if __BYTE_ORDER == __BIG_ENDIAN
|
#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
|
||||||
#define le16_to_cpu bswap_16
|
#define le16_to_cpu bswap_16
|
||||||
#define le32_to_cpu bswap_32
|
#define le32_to_cpu bswap_32
|
||||||
#define le64_to_cpu bswap_64
|
#define le64_to_cpu bswap_64
|
||||||
|
@ -1437,7 +1437,7 @@ static struct bt_ctf_field_type *create_int_type(int size, bool sign, bool hex)
|
|||||||
bt_ctf_field_type_integer_set_base(type, BT_CTF_INTEGER_BASE_HEXADECIMAL))
|
bt_ctf_field_type_integer_set_base(type, BT_CTF_INTEGER_BASE_HEXADECIMAL))
|
||||||
goto err;
|
goto err;
|
||||||
|
|
||||||
#if __BYTE_ORDER == __BIG_ENDIAN
|
#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
|
||||||
bt_ctf_field_type_set_byte_order(type, BT_CTF_BYTE_ORDER_BIG_ENDIAN);
|
bt_ctf_field_type_set_byte_order(type, BT_CTF_BYTE_ORDER_BIG_ENDIAN);
|
||||||
#else
|
#else
|
||||||
bt_ctf_field_type_set_byte_order(type, BT_CTF_BYTE_ORDER_LITTLE_ENDIAN);
|
bt_ctf_field_type_set_byte_order(type, BT_CTF_BYTE_ORDER_LITTLE_ENDIAN);
|
||||||
|
@ -42,7 +42,7 @@ int jit_add_debug_info(Elf *e, uint64_t code_addr, void *debug, int nr_debug_ent
|
|||||||
#error "unsupported architecture"
|
#error "unsupported architecture"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if __BYTE_ORDER == __BIG_ENDIAN
|
#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
|
||||||
#define GEN_ELF_ENDIAN ELFDATA2MSB
|
#define GEN_ELF_ENDIAN ELFDATA2MSB
|
||||||
#else
|
#else
|
||||||
#define GEN_ELF_ENDIAN ELFDATA2LSB
|
#define GEN_ELF_ENDIAN ELFDATA2LSB
|
||||||
|
@ -35,7 +35,7 @@
|
|||||||
#define INTEL_BTS_ERR_NOINSN 5
|
#define INTEL_BTS_ERR_NOINSN 5
|
||||||
#define INTEL_BTS_ERR_LOST 9
|
#define INTEL_BTS_ERR_LOST 9
|
||||||
|
|
||||||
#if __BYTE_ORDER == __BIG_ENDIAN
|
#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
|
||||||
#define le64_to_cpu bswap_64
|
#define le64_to_cpu bswap_64
|
||||||
#else
|
#else
|
||||||
#define le64_to_cpu
|
#define le64_to_cpu
|
||||||
|
@ -143,7 +143,7 @@ static void intel_pt_insn_decoder(struct insn *insn,
|
|||||||
|
|
||||||
if (branch == INTEL_PT_BR_CONDITIONAL ||
|
if (branch == INTEL_PT_BR_CONDITIONAL ||
|
||||||
branch == INTEL_PT_BR_UNCONDITIONAL) {
|
branch == INTEL_PT_BR_UNCONDITIONAL) {
|
||||||
#if __BYTE_ORDER == __BIG_ENDIAN
|
#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
|
||||||
switch (insn->immediate.nbytes) {
|
switch (insn->immediate.nbytes) {
|
||||||
case 1:
|
case 1:
|
||||||
intel_pt_insn->rel = insn->immediate.value;
|
intel_pt_insn->rel = insn->immediate.value;
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
|
|
||||||
#define BIT63 ((uint64_t)1 << 63)
|
#define BIT63 ((uint64_t)1 << 63)
|
||||||
|
|
||||||
#if __BYTE_ORDER == __BIG_ENDIAN
|
#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
|
||||||
#define le16_to_cpu bswap_16
|
#define le16_to_cpu bswap_16
|
||||||
#define le32_to_cpu bswap_32
|
#define le32_to_cpu bswap_32
|
||||||
#define le64_to_cpu bswap_64
|
#define le64_to_cpu bswap_64
|
||||||
|
@ -244,7 +244,7 @@ static bool s390_cpumsf_basic_show(const char *color, size_t pos,
|
|||||||
struct hws_basic_entry *basicp)
|
struct hws_basic_entry *basicp)
|
||||||
{
|
{
|
||||||
struct hws_basic_entry *basic = basicp;
|
struct hws_basic_entry *basic = basicp;
|
||||||
#if __BYTE_ORDER == __LITTLE_ENDIAN
|
#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
|
||||||
struct hws_basic_entry local;
|
struct hws_basic_entry local;
|
||||||
unsigned long long word = be64toh(*(unsigned long long *)basicp);
|
unsigned long long word = be64toh(*(unsigned long long *)basicp);
|
||||||
|
|
||||||
@ -288,7 +288,7 @@ static bool s390_cpumsf_diag_show(const char *color, size_t pos,
|
|||||||
struct hws_diag_entry *diagp)
|
struct hws_diag_entry *diagp)
|
||||||
{
|
{
|
||||||
struct hws_diag_entry *diag = diagp;
|
struct hws_diag_entry *diag = diagp;
|
||||||
#if __BYTE_ORDER == __LITTLE_ENDIAN
|
#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
|
||||||
struct hws_diag_entry local;
|
struct hws_diag_entry local;
|
||||||
unsigned long long word = be64toh(*(unsigned long long *)diagp);
|
unsigned long long word = be64toh(*(unsigned long long *)diagp);
|
||||||
|
|
||||||
@ -322,7 +322,7 @@ static unsigned long long trailer_timestamp(struct hws_trailer_entry *te,
|
|||||||
static bool s390_cpumsf_trailer_show(const char *color, size_t pos,
|
static bool s390_cpumsf_trailer_show(const char *color, size_t pos,
|
||||||
struct hws_trailer_entry *te)
|
struct hws_trailer_entry *te)
|
||||||
{
|
{
|
||||||
#if __BYTE_ORDER == __LITTLE_ENDIAN
|
#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
|
||||||
struct hws_trailer_entry local;
|
struct hws_trailer_entry local;
|
||||||
const unsigned long long flags = be64toh(te->flags);
|
const unsigned long long flags = be64toh(te->flags);
|
||||||
|
|
||||||
@ -552,7 +552,7 @@ static unsigned long long get_trailer_time(const unsigned char *buf)
|
|||||||
te = (struct hws_trailer_entry *)(buf + S390_CPUMSF_PAGESZ
|
te = (struct hws_trailer_entry *)(buf + S390_CPUMSF_PAGESZ
|
||||||
- sizeof(*te));
|
- sizeof(*te));
|
||||||
|
|
||||||
#if __BYTE_ORDER == __LITTLE_ENDIAN
|
#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
|
||||||
clock_base = be64toh(te->progusage[0]) >> 63 & 0x1;
|
clock_base = be64toh(te->progusage[0]) >> 63 & 0x1;
|
||||||
progusage2 = be64toh(te->progusage[1]);
|
progusage2 = be64toh(te->progusage[1]);
|
||||||
#else
|
#else
|
||||||
|
Loading…
x
Reference in New Issue
Block a user