|
@@ -34,6 +34,14 @@ ifeq ($(ARCH),arm)
|
|
LIBUNWIND_LIBS = -lunwind -lunwind-arm
|
|
LIBUNWIND_LIBS = -lunwind -lunwind-arm
|
|
endif
|
|
endif
|
|
|
|
|
|
|
|
+# So far there's only x86 libdw unwind support merged in perf.
|
|
|
|
+# Disable it on all other architectures in case libdw unwind
|
|
|
|
+# support is detected in system. Add supported architectures
|
|
|
|
+# to the check.
|
|
|
|
+ifneq ($(ARCH),x86)
|
|
|
|
+ NO_LIBDW_DWARF_UNWIND := 1
|
|
|
|
+endif
|
|
|
|
+
|
|
ifeq ($(LIBUNWIND_LIBS),)
|
|
ifeq ($(LIBUNWIND_LIBS),)
|
|
NO_LIBUNWIND := 1
|
|
NO_LIBUNWIND := 1
|
|
else
|
|
else
|
|
@@ -109,6 +117,10 @@ CFLAGS += -Wall
|
|
CFLAGS += -Wextra
|
|
CFLAGS += -Wextra
|
|
CFLAGS += -std=gnu99
|
|
CFLAGS += -std=gnu99
|
|
|
|
|
|
|
|
+# Enforce a non-executable stack, as we may regress (again) in the future by
|
|
|
|
+# adding assembler files missing the .GNU-stack linker note.
|
|
|
|
+LDFLAGS += -Wl,-z,noexecstack
|
|
|
|
+
|
|
EXTLIBS = -lelf -lpthread -lrt -lm -ldl
|
|
EXTLIBS = -lelf -lpthread -lrt -lm -ldl
|
|
|
|
|
|
ifneq ($(OUTPUT),)
|
|
ifneq ($(OUTPUT),)
|
|
@@ -186,7 +198,10 @@ VF_FEATURE_TESTS = \
|
|
stackprotector-all \
|
|
stackprotector-all \
|
|
timerfd \
|
|
timerfd \
|
|
libunwind-debug-frame \
|
|
libunwind-debug-frame \
|
|
- bionic
|
|
|
|
|
|
+ bionic \
|
|
|
|
+ liberty \
|
|
|
|
+ liberty-z \
|
|
|
|
+ cplus-demangle
|
|
|
|
|
|
# Set FEATURE_CHECK_(C|LD)FLAGS-all for all CORE_FEATURE_TESTS features.
|
|
# Set FEATURE_CHECK_(C|LD)FLAGS-all for all CORE_FEATURE_TESTS features.
|
|
# If in the future we need per-feature checks/flags for features not
|
|
# If in the future we need per-feature checks/flags for features not
|
|
@@ -504,7 +519,21 @@ else
|
|
endif
|
|
endif
|
|
|
|
|
|
ifeq ($(feature-libbfd), 1)
|
|
ifeq ($(feature-libbfd), 1)
|
|
- EXTLIBS += -lbfd -lz -liberty
|
|
|
|
|
|
+ EXTLIBS += -lbfd
|
|
|
|
+
|
|
|
|
+ # call all detections now so we get correct
|
|
|
|
+ # status in VF output
|
|
|
|
+ $(call feature_check,liberty)
|
|
|
|
+ $(call feature_check,liberty-z)
|
|
|
|
+ $(call feature_check,cplus-demangle)
|
|
|
|
+
|
|
|
|
+ ifeq ($(feature-liberty), 1)
|
|
|
|
+ EXTLIBS += -liberty
|
|
|
|
+ else
|
|
|
|
+ ifeq ($(feature-liberty-z), 1)
|
|
|
|
+ EXTLIBS += -liberty -lz
|
|
|
|
+ endif
|
|
|
|
+ endif
|
|
endif
|
|
endif
|
|
|
|
|
|
ifdef NO_DEMANGLE
|
|
ifdef NO_DEMANGLE
|
|
@@ -515,15 +544,10 @@ else
|
|
CFLAGS += -DHAVE_CPLUS_DEMANGLE_SUPPORT
|
|
CFLAGS += -DHAVE_CPLUS_DEMANGLE_SUPPORT
|
|
else
|
|
else
|
|
ifneq ($(feature-libbfd), 1)
|
|
ifneq ($(feature-libbfd), 1)
|
|
- $(call feature_check,liberty)
|
|
|
|
- ifeq ($(feature-liberty), 1)
|
|
|
|
- EXTLIBS += -lbfd -liberty
|
|
|
|
- else
|
|
|
|
- $(call feature_check,liberty-z)
|
|
|
|
- ifeq ($(feature-liberty-z), 1)
|
|
|
|
- EXTLIBS += -lbfd -liberty -lz
|
|
|
|
- else
|
|
|
|
- $(call feature_check,cplus-demangle)
|
|
|
|
|
|
+ ifneq ($(feature-liberty), 1)
|
|
|
|
+ ifneq ($(feature-liberty-z), 1)
|
|
|
|
+ # we dont have neither HAVE_CPLUS_DEMANGLE_SUPPORT
|
|
|
|
+ # or any of 'bfd iberty z' trinity
|
|
ifeq ($(feature-cplus-demangle), 1)
|
|
ifeq ($(feature-cplus-demangle), 1)
|
|
EXTLIBS += -liberty
|
|
EXTLIBS += -liberty
|
|
CFLAGS += -DHAVE_CPLUS_DEMANGLE_SUPPORT
|
|
CFLAGS += -DHAVE_CPLUS_DEMANGLE_SUPPORT
|