offset = format_field__intval(field, sample, evsel->needs_swap);
                                syscall_arg.len = offset >> 16;
                                offset &= 0xffff;
-#if LIBTRACEEVENT_VERSION >= MAKE_LIBTRACEEVENT_VERSION(1, 5, 0)
-                               if (field->flags & TEP_FIELD_IS_RELATIVE)
+                               if (tep_field_is_relative(field->flags))
                                        offset += field->offset + field->size;
-#endif
                        }
 
                        val = (uintptr_t)(sample->raw_data + offset);
 
                offset = tmp_val;
                len = offset >> 16;
                offset &= 0xffff;
-#if LIBTRACEEVENT_VERSION >= MAKE_LIBTRACEEVENT_VERSION(1, 5, 0)
-               if (flags & TEP_FIELD_IS_RELATIVE)
+               if (tep_field_is_relative(flags))
                        offset += fmtf->offset + fmtf->size;
-#endif
        }
 
        if (flags & TEP_FIELD_IS_ARRAY) {
 
        if (field->flags & TEP_FIELD_IS_DYNAMIC) {
                offset = *(int *)(sample->raw_data + field->offset);
                offset &= 0xffff;
-#if LIBTRACEEVENT_VERSION >= MAKE_LIBTRACEEVENT_VERSION(1, 5, 0)
-               if (field->flags & TEP_FIELD_IS_RELATIVE)
+               if (tep_field_is_relative(field->flags))
                        offset += field->offset + field->size;
-#endif
        }
 
        return sample->raw_data + offset;
 
                        offset  = val;
                        len     = offset >> 16;
                        offset &= 0xffff;
-#if LIBTRACEEVENT_VERSION >= MAKE_LIBTRACEEVENT_VERSION(1, 5, 0)
-                       if (field->flags & TEP_FIELD_IS_RELATIVE)
+                       if (tep_field_is_relative(field->flags))
                                offset += field->offset + field->size;
-#endif
                }
                if (field->flags & TEP_FIELD_IS_STRING &&
                    is_printable_array(data + offset, len)) {
 
                        if (field->flags & TEP_FIELD_IS_DYNAMIC) {
                                offset = *(int *)(data + field->offset);
                                offset &= 0xffff;
-#if LIBTRACEEVENT_VERSION >= MAKE_LIBTRACEEVENT_VERSION(1, 5, 0)
-                               if (field->flags & TEP_FIELD_IS_RELATIVE)
+                               if (tep_field_is_relative(field->flags))
                                        offset += field->offset + field->size;
-#endif
                        } else
                                offset = field->offset;
                        XPUSHs(sv_2mortal(newSVpv((char *)data + offset, 0)));
 
                                offset  = val;
                                len     = offset >> 16;
                                offset &= 0xffff;
-#if LIBTRACEEVENT_VERSION >= MAKE_LIBTRACEEVENT_VERSION(1, 5, 0)
-                               if (field->flags & TEP_FIELD_IS_RELATIVE)
+                               if (tep_field_is_relative(field->flags))
                                        offset += field->offset + field->size;
-#endif
                        }
                        if (field->flags & TEP_FIELD_IS_STRING &&
                            is_printable_array(data + offset, len)) {
 
                tep_read_number_field(field, a->raw_data, &dyn);
                offset = dyn & 0xffff;
                size = (dyn >> 16) & 0xffff;
-#if LIBTRACEEVENT_VERSION >= MAKE_LIBTRACEEVENT_VERSION(1, 5, 0)
-               if (field->flags & TEP_FIELD_IS_RELATIVE)
+               if (tep_field_is_relative(field->flags))
                        offset += field->offset + field->size;
-#endif
                /* record max width for output */
                if (size > hde->dynamic_len)
                        hde->dynamic_len = size;
 
 #define SAMPLE_FLAGS_BUF_SIZE 64
 int perf_sample__sprintf_flags(u32 flags, char *str, size_t sz);
 
+#if defined(LIBTRACEEVENT_VERSION) &&  LIBTRACEEVENT_VERSION >= MAKE_LIBTRACEEVENT_VERSION(1, 5, 0)
+#include <traceevent/event-parse.h>
+
+static inline bool tep_field_is_relative(unsigned long flags)
+{
+       return (flags & TEP_FIELD_IS_RELATIVE) != 0;
+}
+#else
+#include <linux/compiler.h>
+
+static inline bool tep_field_is_relative(unsigned long flags __maybe_unused)
+{
+       return false;
+}
+#endif
+
 #endif /* _PERF_UTIL_TRACE_EVENT_H */