Commit 4e88118c authored by Ilya Leoshkevich's avatar Ilya Leoshkevich Committed by Arnaldo Carvalho de Melo

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: default avatarIlya Leoshkevich <iii@linux.ibm.com>
Suggested-by: default avatarArnaldo 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.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent b3a018fc
...@@ -13,7 +13,7 @@ ...@@ -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) ...@@ -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 ...@@ -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 @@ ...@@ -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, ...@@ -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 @@ ...@@ -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, ...@@ -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, ...@@ -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, ...@@ -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) ...@@ -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
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment