Commit a8a5cd8b authored by Mark Rutland's avatar Mark Rutland Committed by Arnaldo Carvalho de Melo
Browse files

perf: tools: Fix cross building



Currently the feature-checks Makefile does not inherit $(CC), and calls
cc rather than $(CROSS_COMPILE)gcc. Thus the feature checks invoke the
native toolchain rather than the cross toolchain, and can identify
features as available when they are not. This can break the build.

Additionally the native pkg-config is always called as opposed to
$(CROSS_COMPILE)pkg-config, so the wrong flags and paths may be passed
to the cross compiler.

This patch passes CROSS_COMPILE down to the feature-checks Makefile, and
forces its use. Additionally pkg-config is replaced with
$(CROSS_COMPILE)pkg-config via a new $(PKG_CONFIG) variable. This patch
has been build tested on x86_64 and arm.

Signed-off-by: default avatarMark Rutland <mark.rutland@arm.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Will Deacon <will.deacon@arm.com>
Link: http://lkml.kernel.org/r/1389782648-4417-4-git-send-email-mark.rutland@arm.com


Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent 8d0c2224
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -76,6 +76,7 @@ $(OUTPUT)PERF-VERSION-FILE: ../../.git/HEAD


CC = $(CROSS_COMPILE)gcc
CC = $(CROSS_COMPILE)gcc
AR = $(CROSS_COMPILE)ar
AR = $(CROSS_COMPILE)ar
PKG_CONFIG = $(CROSS_COMPILE)pkg-config


RM      = rm -f
RM      = rm -f
LN      = ln -f
LN      = ln -f
+3 −3
Original line number Original line Diff line number Diff line
@@ -372,7 +372,7 @@ ifndef NO_SLANG
endif
endif


ifndef NO_GTK2
ifndef NO_GTK2
  FLAGS_GTK2=$(CFLAGS) $(LDFLAGS) $(EXTLIBS) $(shell pkg-config --libs --cflags gtk+-2.0 2>/dev/null)
  FLAGS_GTK2=$(CFLAGS) $(LDFLAGS) $(EXTLIBS) $(shell $(PKG_CONFIG) --libs --cflags gtk+-2.0 2>/dev/null)
  ifneq ($(feature-gtk2), 1)
  ifneq ($(feature-gtk2), 1)
    msg := $(warning GTK2 not found, disables GTK2 support. Please install gtk2-devel or libgtk2.0-dev);
    msg := $(warning GTK2 not found, disables GTK2 support. Please install gtk2-devel or libgtk2.0-dev);
    NO_GTK2 := 1
    NO_GTK2 := 1
@@ -381,8 +381,8 @@ ifndef NO_GTK2
      GTK_CFLAGS := -DHAVE_GTK_INFO_BAR_SUPPORT
      GTK_CFLAGS := -DHAVE_GTK_INFO_BAR_SUPPORT
    endif
    endif
    CFLAGS += -DHAVE_GTK2_SUPPORT
    CFLAGS += -DHAVE_GTK2_SUPPORT
    GTK_CFLAGS += $(shell pkg-config --cflags gtk+-2.0 2>/dev/null)
    GTK_CFLAGS += $(shell $(PKG_CONFIG) --cflags gtk+-2.0 2>/dev/null)
    GTK_LIBS := $(shell pkg-config --libs gtk+-2.0 2>/dev/null)
    GTK_LIBS := $(shell $(PKG_CONFIG) --libs gtk+-2.0 2>/dev/null)
    EXTLIBS += -ldl
    EXTLIBS += -ldl
  endif
  endif
endif
endif
+5 −4
Original line number Original line Diff line number Diff line
@@ -28,7 +28,8 @@ FILES= \
	test-stackprotector-all.bin	\
	test-stackprotector-all.bin	\
	test-timerfd.bin
	test-timerfd.bin


CC := $(CC) -MD
CC := $(CROSS_COMPILE)gcc -MD
PKG_CONFIG := $(CROSS_COMPILE)pkg-config


all: $(FILES)
all: $(FILES)


@@ -37,7 +38,7 @@ BUILD = $(CC) $(CFLAGS) -o $(OUTPUT)$@ $(patsubst %.bin,%.c,$@) $(LDFLAGS)
###############################
###############################


test-all.bin:
test-all.bin:
	$(BUILD) -Werror -fstack-protector-all -O2 -Werror -D_FORTIFY_SOURCE=2 -ldw -lelf -lnuma -lelf -laudit -I/usr/include/slang -lslang $(shell pkg-config --libs --cflags gtk+-2.0 2>/dev/null) $(FLAGS_PERL_EMBED) $(FLAGS_PYTHON_EMBED) -DPACKAGE='"perf"' -lbfd -ldl
	$(BUILD) -Werror -fstack-protector-all -O2 -Werror -D_FORTIFY_SOURCE=2 -ldw -lelf -lnuma -lelf -laudit -I/usr/include/slang -lslang $(shell $(PKG_CONFIG) --libs --cflags gtk+-2.0 2>/dev/null) $(FLAGS_PERL_EMBED) $(FLAGS_PYTHON_EMBED) -DPACKAGE='"perf"' -lbfd -ldl


test-hello.bin:
test-hello.bin:
	$(BUILD)
	$(BUILD)
@@ -82,10 +83,10 @@ test-libslang.bin:
	$(BUILD) -I/usr/include/slang -lslang
	$(BUILD) -I/usr/include/slang -lslang


test-gtk2.bin:
test-gtk2.bin:
	$(BUILD) $(shell pkg-config --libs --cflags gtk+-2.0 2>/dev/null)
	$(BUILD) $(shell $(PKG_CONFIG) --libs --cflags gtk+-2.0 2>/dev/null)


test-gtk2-infobar.bin:
test-gtk2-infobar.bin:
	$(BUILD) $(shell pkg-config --libs --cflags gtk+-2.0 2>/dev/null)
	$(BUILD) $(shell $(PKG_CONFIG) --libs --cflags gtk+-2.0 2>/dev/null)


grep-libs  = $(filter -l%,$(1))
grep-libs  = $(filter -l%,$(1))
strip-libs = $(filter-out -l%,$(1))
strip-libs = $(filter-out -l%,$(1))