All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC PATCH] selftests: use INSTALL_HDR_PATH instead of relative paths
@ 2016-01-11 14:22 ` Sudeep Holla
  0 siblings, 0 replies; 10+ messages in thread
From: Sudeep Holla @ 2016-01-11 14:22 UTC (permalink / raw)
  To: Shuah Khan, linux-api, linux-kernel; +Cc: Sudeep Holla

The selftests build fails or picks up wrong headers when cross-compiling
and build directory is different from source as the headers are referred
using the relative paths.

This patch use $INSTALL_HDR_PATH to fix the compilation. It also removes
installing the headers.

Cc: Shuah Khan <shuahkh@osg.samsung.com>
Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
---
 tools/testing/selftests/membarrier/Makefile | 2 +-
 tools/testing/selftests/memfd/Makefile      | 2 +-
 tools/testing/selftests/net/Makefile        | 2 +-
 tools/testing/selftests/vm/Makefile         | 7 ++-----
 4 files changed, 5 insertions(+), 8 deletions(-)

Hi,

When I was cross-compiling these tests for arm{32,64}, I faced issues.
With limited knowledge I have on this build system, I came up with this
patch. Please treat this as bug report if this approach makes no-sense
and suggest on how to fix it.

Regards,
Sudeep

diff --git a/tools/testing/selftests/membarrier/Makefile b/tools/testing/selftests/membarrier/Makefile
index a1a97085847d..0a033d39cc10 100644
--- a/tools/testing/selftests/membarrier/Makefile
+++ b/tools/testing/selftests/membarrier/Makefile
@@ -1,4 +1,4 @@
-CFLAGS += -g -I../../../../usr/include/
+CFLAGS += -g -I$(INSTALL_HDR_PATH)/include/
 
 TEST_PROGS := membarrier_test
 
diff --git a/tools/testing/selftests/memfd/Makefile b/tools/testing/selftests/memfd/Makefile
index fd396ac811b6..704249ba24ea 100644
--- a/tools/testing/selftests/memfd/Makefile
+++ b/tools/testing/selftests/memfd/Makefile
@@ -2,7 +2,7 @@ CC = $(CROSS_COMPILE)gcc
 CFLAGS += -D_FILE_OFFSET_BITS=64
 CFLAGS += -I../../../../include/uapi/
 CFLAGS += -I../../../../include/
-CFLAGS += -I../../../../usr/include/
+CFLAGS += -I$(INSTALL_HDR_PATH)/include/
 
 TEST_PROGS := memfd_test
 
diff --git a/tools/testing/selftests/net/Makefile b/tools/testing/selftests/net/Makefile
index fac4782c51d8..40cf11375c15 100644
--- a/tools/testing/selftests/net/Makefile
+++ b/tools/testing/selftests/net/Makefile
@@ -2,7 +2,7 @@
 
 CFLAGS = -Wall -O2 -g
 
-CFLAGS += -I../../../../usr/include/
+CFLAGS += -I$(INSTALL_HDR_PATH)/include/
 
 NET_PROGS = socket psock_fanout psock_tpacket
 
diff --git a/tools/testing/selftests/vm/Makefile b/tools/testing/selftests/vm/Makefile
index e4bb1de1d526..ad343d00d131 100644
--- a/tools/testing/selftests/vm/Makefile
+++ b/tools/testing/selftests/vm/Makefile
@@ -1,6 +1,6 @@
 # Makefile for vm selftests
 
-CFLAGS = -Wall -I ../../../../usr/include $(EXTRA_CFLAGS)
+CFLAGS = -Wall -I $(INSTALL_HDR_PATH)/include $(EXTRA_CFLAGS)
 BINARIES = compaction_test
 BINARIES += hugepage-mmap
 BINARIES += hugepage-shm
@@ -14,12 +14,9 @@ BINARIES += userfaultfd
 all: $(BINARIES)
 %: %.c
 	$(CC) $(CFLAGS) -o $@ $^ -lrt
-userfaultfd: userfaultfd.c ../../../../usr/include/linux/kernel.h
+userfaultfd: userfaultfd.c $(INSTALL_HDR_PATH)/include/linux/kernel.h
 	$(CC) $(CFLAGS) -O2 -o $@ $< -lpthread
 
-../../../../usr/include/linux/kernel.h:
-	make -C ../../../.. headers_install
-
 TEST_PROGS := run_vmtests
 TEST_FILES := $(BINARIES)
 
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [RFC PATCH] selftests: use INSTALL_HDR_PATH instead of relative paths
@ 2016-01-11 14:22 ` Sudeep Holla
  0 siblings, 0 replies; 10+ messages in thread
From: Sudeep Holla @ 2016-01-11 14:22 UTC (permalink / raw)
  To: Shuah Khan, linux-api-u79uwXL29TY76Z2rM5mHXA,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA
  Cc: Sudeep Holla

The selftests build fails or picks up wrong headers when cross-compiling
and build directory is different from source as the headers are referred
using the relative paths.

This patch use $INSTALL_HDR_PATH to fix the compilation. It also removes
installing the headers.

Cc: Shuah Khan <shuahkh-JPH+aEBZ4P+UEJcrhfAQsw@public.gmane.org>
Signed-off-by: Sudeep Holla <sudeep.holla-5wv7dgnIgG8@public.gmane.org>
---
 tools/testing/selftests/membarrier/Makefile | 2 +-
 tools/testing/selftests/memfd/Makefile      | 2 +-
 tools/testing/selftests/net/Makefile        | 2 +-
 tools/testing/selftests/vm/Makefile         | 7 ++-----
 4 files changed, 5 insertions(+), 8 deletions(-)

Hi,

When I was cross-compiling these tests for arm{32,64}, I faced issues.
With limited knowledge I have on this build system, I came up with this
patch. Please treat this as bug report if this approach makes no-sense
and suggest on how to fix it.

Regards,
Sudeep

diff --git a/tools/testing/selftests/membarrier/Makefile b/tools/testing/selftests/membarrier/Makefile
index a1a97085847d..0a033d39cc10 100644
--- a/tools/testing/selftests/membarrier/Makefile
+++ b/tools/testing/selftests/membarrier/Makefile
@@ -1,4 +1,4 @@
-CFLAGS += -g -I../../../../usr/include/
+CFLAGS += -g -I$(INSTALL_HDR_PATH)/include/
 
 TEST_PROGS := membarrier_test
 
diff --git a/tools/testing/selftests/memfd/Makefile b/tools/testing/selftests/memfd/Makefile
index fd396ac811b6..704249ba24ea 100644
--- a/tools/testing/selftests/memfd/Makefile
+++ b/tools/testing/selftests/memfd/Makefile
@@ -2,7 +2,7 @@ CC = $(CROSS_COMPILE)gcc
 CFLAGS += -D_FILE_OFFSET_BITS=64
 CFLAGS += -I../../../../include/uapi/
 CFLAGS += -I../../../../include/
-CFLAGS += -I../../../../usr/include/
+CFLAGS += -I$(INSTALL_HDR_PATH)/include/
 
 TEST_PROGS := memfd_test
 
diff --git a/tools/testing/selftests/net/Makefile b/tools/testing/selftests/net/Makefile
index fac4782c51d8..40cf11375c15 100644
--- a/tools/testing/selftests/net/Makefile
+++ b/tools/testing/selftests/net/Makefile
@@ -2,7 +2,7 @@
 
 CFLAGS = -Wall -O2 -g
 
-CFLAGS += -I../../../../usr/include/
+CFLAGS += -I$(INSTALL_HDR_PATH)/include/
 
 NET_PROGS = socket psock_fanout psock_tpacket
 
diff --git a/tools/testing/selftests/vm/Makefile b/tools/testing/selftests/vm/Makefile
index e4bb1de1d526..ad343d00d131 100644
--- a/tools/testing/selftests/vm/Makefile
+++ b/tools/testing/selftests/vm/Makefile
@@ -1,6 +1,6 @@
 # Makefile for vm selftests
 
-CFLAGS = -Wall -I ../../../../usr/include $(EXTRA_CFLAGS)
+CFLAGS = -Wall -I $(INSTALL_HDR_PATH)/include $(EXTRA_CFLAGS)
 BINARIES = compaction_test
 BINARIES += hugepage-mmap
 BINARIES += hugepage-shm
@@ -14,12 +14,9 @@ BINARIES += userfaultfd
 all: $(BINARIES)
 %: %.c
 	$(CC) $(CFLAGS) -o $@ $^ -lrt
-userfaultfd: userfaultfd.c ../../../../usr/include/linux/kernel.h
+userfaultfd: userfaultfd.c $(INSTALL_HDR_PATH)/include/linux/kernel.h
 	$(CC) $(CFLAGS) -O2 -o $@ $< -lpthread
 
-../../../../usr/include/linux/kernel.h:
-	make -C ../../../.. headers_install
-
 TEST_PROGS := run_vmtests
 TEST_FILES := $(BINARIES)
 
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [RFC PATCH] selftests: use INSTALL_HDR_PATH instead of relative paths
@ 2016-01-14  3:37   ` Michael Ellerman
  0 siblings, 0 replies; 10+ messages in thread
From: Michael Ellerman @ 2016-01-14  3:37 UTC (permalink / raw)
  To: Sudeep Holla, Shuah Khan, linux-api, linux-kernel

On Mon, 2016-01-11 at 14:22 +0000, Sudeep Holla wrote:

> The selftests build fails or picks up wrong headers when cross-compiling
> and build directory is different from source as the headers are referred
> using the relative paths.
> 
> This patch use $INSTALL_HDR_PATH to fix the compilation. It also removes
> installing the headers.
> 
> Cc: Shuah Khan <shuahkh@osg.samsung.com>
> Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
> ---
>  tools/testing/selftests/membarrier/Makefile | 2 +-
>  tools/testing/selftests/memfd/Makefile      | 2 +-
>  tools/testing/selftests/net/Makefile        | 2 +-
>  tools/testing/selftests/vm/Makefile         | 7 ++-----
>  4 files changed, 5 insertions(+), 8 deletions(-)
> 
> Hi,
> 
> When I was cross-compiling these tests for arm{32,64}, I faced issues.
> With limited knowledge I have on this build system, I came up with this
> patch. Please treat this as bug report if this approach makes no-sense
> and suggest on how to fix it.

Yeah sorry that doesn't work.

If $(INSTALL_HDR_PATH) isn't defined you end up with:

  gcc -Wall -I /include  -o compaction_test compaction_test.c -lrt
               ^

Which is wrong.

INSTALL_HDR_PATH will not be defined when the tests are built standalone, ie.
like:

  $ make -C tools/testing/selftests


This has been on my todo list to fix, but it doesn't actually bother me so I
haven't got around to it.

Does the patch below work for you? It uses INSTALL_HDR_PATH if it is defined,
or otherwise KERNEL_HEADERS if it is defined, or finally it guesses at
../../../usr/include (ie. the base of the source tree).

cheers


diff --git a/tools/testing/selftests/Makefile b/tools/testing/selftests/Makefile
index b04afc3295df..78e293829779 100644
--- a/tools/testing/selftests/Makefile
+++ b/tools/testing/selftests/Makefile
@@ -44,6 +44,13 @@ override LDFLAGS =
 override MAKEFLAGS =
 endif
 
+ifneq ($(INSTALL_HDR_PATH),)
+KERNEL_HEADERS := $(INSTALL_HDR_PATH)/include
+else
+KERNEL_HEADERS ?= $(abspath ../../../usr/include)
+endif
+export KERNEL_HEADERS
+
 all:
 	for TARGET in $(TARGETS); do \
 		make -C $$TARGET; \
diff --git a/tools/testing/selftests/ipc/Makefile b/tools/testing/selftests/ipc/Makefile
index 25d2e702c68a..67f5da755a69 100644
--- a/tools/testing/selftests/ipc/Makefile
+++ b/tools/testing/selftests/ipc/Makefile
@@ -9,7 +9,7 @@ ifeq ($(ARCH),x86_64)
 	CFLAGS := -DCONFIG_X86_64 -D__x86_64__
 endif
 
-CFLAGS += -I../../../../usr/include/
+CFLAGS += -I $(KERNEL_HEADERS)
 
 all:
 	$(CC) $(CFLAGS) msgque.c -o msgque_test
diff --git a/tools/testing/selftests/kcmp/Makefile b/tools/testing/selftests/kcmp/Makefile
index 2ae7450a9a89..64455a77b7bc 100644
--- a/tools/testing/selftests/kcmp/Makefile
+++ b/tools/testing/selftests/kcmp/Makefile
@@ -1,4 +1,4 @@
-CFLAGS += -I../../../../usr/include/
+CFLAGS += -I $(KERNEL_HEADERS)
 
 all: kcmp_test
 
diff --git a/tools/testing/selftests/membarrier/Makefile b/tools/testing/selftests/membarrier/Makefile
index a1a97085847d..155e92d297d6 100644
--- a/tools/testing/selftests/membarrier/Makefile
+++ b/tools/testing/selftests/membarrier/Makefile
@@ -1,4 +1,4 @@
-CFLAGS += -g -I../../../../usr/include/
+CFLAGS += -g -I $(KERNEL_HEADERS)
 
 TEST_PROGS := membarrier_test
 
diff --git a/tools/testing/selftests/memfd/Makefile b/tools/testing/selftests/memfd/Makefile
index fd396ac811b6..e193537110ff 100644
--- a/tools/testing/selftests/memfd/Makefile
+++ b/tools/testing/selftests/memfd/Makefile
@@ -1,8 +1,6 @@
 CC = $(CROSS_COMPILE)gcc
 CFLAGS += -D_FILE_OFFSET_BITS=64
-CFLAGS += -I../../../../include/uapi/
-CFLAGS += -I../../../../include/
-CFLAGS += -I../../../../usr/include/
+CFLAGS += -I$(KERNEL_HEADERS)
 
 TEST_PROGS := memfd_test
 
diff --git a/tools/testing/selftests/net/Makefile b/tools/testing/selftests/net/Makefile
index 41449b5ad0a9..dfe3c8935082 100644
--- a/tools/testing/selftests/net/Makefile
+++ b/tools/testing/selftests/net/Makefile
@@ -2,7 +2,7 @@
 
 CFLAGS = -Wall -O2 -g
 
-CFLAGS += -I../../../../usr/include/
+CFLAGS += -I$(KERNEL_HEADERS)
 
 NET_PROGS = socket psock_fanout psock_tpacket reuseport_bpf
 
diff --git a/tools/testing/selftests/powerpc/syscalls/Makefile b/tools/testing/selftests/powerpc/syscalls/Makefile
index b35c7945bec5..5ea163b2cc91 100644
--- a/tools/testing/selftests/powerpc/syscalls/Makefile
+++ b/tools/testing/selftests/powerpc/syscalls/Makefile
@@ -1,6 +1,6 @@
 TEST_PROGS := ipc_unmuxed
 
-CFLAGS += -I../../../../../usr/include
+CFLAGS += -I $(KERNEL_HEADERS)
 
 all: $(TEST_PROGS)
 
diff --git a/tools/testing/selftests/powerpc/tm/Makefile b/tools/testing/selftests/powerpc/tm/Makefile
index 737f72c964e6..bb6cb5d4fc2d 100644
--- a/tools/testing/selftests/powerpc/tm/Makefile
+++ b/tools/testing/selftests/powerpc/tm/Makefile
@@ -5,7 +5,7 @@ all: $(TEST_PROGS)
 $(TEST_PROGS): ../harness.c ../utils.c
 
 tm-syscall: tm-syscall-asm.S
-tm-syscall: CFLAGS += -mhtm -I../../../../../usr/include
+tm-syscall: CFLAGS += -mhtm -I $(KERNEL_HEADERS)
 
 include ../../lib.mk
 
diff --git a/tools/testing/selftests/vm/Makefile b/tools/testing/selftests/vm/Makefile
index e4bb1de1d526..4f45b9c8dd75 100644
--- a/tools/testing/selftests/vm/Makefile
+++ b/tools/testing/selftests/vm/Makefile
@@ -1,6 +1,6 @@
 # Makefile for vm selftests
 
-CFLAGS = -Wall -I ../../../../usr/include $(EXTRA_CFLAGS)
+CFLAGS = -Wall -I $(KERNEL_HEADERS) $(EXTRA_CFLAGS)
 BINARIES = compaction_test
 BINARIES += hugepage-mmap
 BINARIES += hugepage-shm
@@ -14,12 +14,9 @@ BINARIES += userfaultfd
 all: $(BINARIES)
 %: %.c
 	$(CC) $(CFLAGS) -o $@ $^ -lrt
-userfaultfd: userfaultfd.c ../../../../usr/include/linux/kernel.h
+userfaultfd: userfaultfd.c $(KERNEL_HEADERS)/linux/kernel.h
 	$(CC) $(CFLAGS) -O2 -o $@ $< -lpthread
 
-../../../../usr/include/linux/kernel.h:
-	make -C ../../../.. headers_install
-
 TEST_PROGS := run_vmtests
 TEST_FILES := $(BINARIES)
 

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [RFC PATCH] selftests: use INSTALL_HDR_PATH instead of relative paths
@ 2016-01-14  3:37   ` Michael Ellerman
  0 siblings, 0 replies; 10+ messages in thread
From: Michael Ellerman @ 2016-01-14  3:37 UTC (permalink / raw)
  To: Sudeep Holla, Shuah Khan, linux-api-u79uwXL29TY76Z2rM5mHXA,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA

On Mon, 2016-01-11 at 14:22 +0000, Sudeep Holla wrote:

> The selftests build fails or picks up wrong headers when cross-compiling
> and build directory is different from source as the headers are referred
> using the relative paths.
> 
> This patch use $INSTALL_HDR_PATH to fix the compilation. It also removes
> installing the headers.
> 
> Cc: Shuah Khan <shuahkh-JPH+aEBZ4P+UEJcrhfAQsw@public.gmane.org>
> Signed-off-by: Sudeep Holla <sudeep.holla-5wv7dgnIgG8@public.gmane.org>
> ---
>  tools/testing/selftests/membarrier/Makefile | 2 +-
>  tools/testing/selftests/memfd/Makefile      | 2 +-
>  tools/testing/selftests/net/Makefile        | 2 +-
>  tools/testing/selftests/vm/Makefile         | 7 ++-----
>  4 files changed, 5 insertions(+), 8 deletions(-)
> 
> Hi,
> 
> When I was cross-compiling these tests for arm{32,64}, I faced issues.
> With limited knowledge I have on this build system, I came up with this
> patch. Please treat this as bug report if this approach makes no-sense
> and suggest on how to fix it.

Yeah sorry that doesn't work.

If $(INSTALL_HDR_PATH) isn't defined you end up with:

  gcc -Wall -I /include  -o compaction_test compaction_test.c -lrt
               ^

Which is wrong.

INSTALL_HDR_PATH will not be defined when the tests are built standalone, ie.
like:

  $ make -C tools/testing/selftests


This has been on my todo list to fix, but it doesn't actually bother me so I
haven't got around to it.

Does the patch below work for you? It uses INSTALL_HDR_PATH if it is defined,
or otherwise KERNEL_HEADERS if it is defined, or finally it guesses at
../../../usr/include (ie. the base of the source tree).

cheers


diff --git a/tools/testing/selftests/Makefile b/tools/testing/selftests/Makefile
index b04afc3295df..78e293829779 100644
--- a/tools/testing/selftests/Makefile
+++ b/tools/testing/selftests/Makefile
@@ -44,6 +44,13 @@ override LDFLAGS =
 override MAKEFLAGS =
 endif
 
+ifneq ($(INSTALL_HDR_PATH),)
+KERNEL_HEADERS := $(INSTALL_HDR_PATH)/include
+else
+KERNEL_HEADERS ?= $(abspath ../../../usr/include)
+endif
+export KERNEL_HEADERS
+
 all:
 	for TARGET in $(TARGETS); do \
 		make -C $$TARGET; \
diff --git a/tools/testing/selftests/ipc/Makefile b/tools/testing/selftests/ipc/Makefile
index 25d2e702c68a..67f5da755a69 100644
--- a/tools/testing/selftests/ipc/Makefile
+++ b/tools/testing/selftests/ipc/Makefile
@@ -9,7 +9,7 @@ ifeq ($(ARCH),x86_64)
 	CFLAGS := -DCONFIG_X86_64 -D__x86_64__
 endif
 
-CFLAGS += -I../../../../usr/include/
+CFLAGS += -I $(KERNEL_HEADERS)
 
 all:
 	$(CC) $(CFLAGS) msgque.c -o msgque_test
diff --git a/tools/testing/selftests/kcmp/Makefile b/tools/testing/selftests/kcmp/Makefile
index 2ae7450a9a89..64455a77b7bc 100644
--- a/tools/testing/selftests/kcmp/Makefile
+++ b/tools/testing/selftests/kcmp/Makefile
@@ -1,4 +1,4 @@
-CFLAGS += -I../../../../usr/include/
+CFLAGS += -I $(KERNEL_HEADERS)
 
 all: kcmp_test
 
diff --git a/tools/testing/selftests/membarrier/Makefile b/tools/testing/selftests/membarrier/Makefile
index a1a97085847d..155e92d297d6 100644
--- a/tools/testing/selftests/membarrier/Makefile
+++ b/tools/testing/selftests/membarrier/Makefile
@@ -1,4 +1,4 @@
-CFLAGS += -g -I../../../../usr/include/
+CFLAGS += -g -I $(KERNEL_HEADERS)
 
 TEST_PROGS := membarrier_test
 
diff --git a/tools/testing/selftests/memfd/Makefile b/tools/testing/selftests/memfd/Makefile
index fd396ac811b6..e193537110ff 100644
--- a/tools/testing/selftests/memfd/Makefile
+++ b/tools/testing/selftests/memfd/Makefile
@@ -1,8 +1,6 @@
 CC = $(CROSS_COMPILE)gcc
 CFLAGS += -D_FILE_OFFSET_BITS=64
-CFLAGS += -I../../../../include/uapi/
-CFLAGS += -I../../../../include/
-CFLAGS += -I../../../../usr/include/
+CFLAGS += -I$(KERNEL_HEADERS)
 
 TEST_PROGS := memfd_test
 
diff --git a/tools/testing/selftests/net/Makefile b/tools/testing/selftests/net/Makefile
index 41449b5ad0a9..dfe3c8935082 100644
--- a/tools/testing/selftests/net/Makefile
+++ b/tools/testing/selftests/net/Makefile
@@ -2,7 +2,7 @@
 
 CFLAGS = -Wall -O2 -g
 
-CFLAGS += -I../../../../usr/include/
+CFLAGS += -I$(KERNEL_HEADERS)
 
 NET_PROGS = socket psock_fanout psock_tpacket reuseport_bpf
 
diff --git a/tools/testing/selftests/powerpc/syscalls/Makefile b/tools/testing/selftests/powerpc/syscalls/Makefile
index b35c7945bec5..5ea163b2cc91 100644
--- a/tools/testing/selftests/powerpc/syscalls/Makefile
+++ b/tools/testing/selftests/powerpc/syscalls/Makefile
@@ -1,6 +1,6 @@
 TEST_PROGS := ipc_unmuxed
 
-CFLAGS += -I../../../../../usr/include
+CFLAGS += -I $(KERNEL_HEADERS)
 
 all: $(TEST_PROGS)
 
diff --git a/tools/testing/selftests/powerpc/tm/Makefile b/tools/testing/selftests/powerpc/tm/Makefile
index 737f72c964e6..bb6cb5d4fc2d 100644
--- a/tools/testing/selftests/powerpc/tm/Makefile
+++ b/tools/testing/selftests/powerpc/tm/Makefile
@@ -5,7 +5,7 @@ all: $(TEST_PROGS)
 $(TEST_PROGS): ../harness.c ../utils.c
 
 tm-syscall: tm-syscall-asm.S
-tm-syscall: CFLAGS += -mhtm -I../../../../../usr/include
+tm-syscall: CFLAGS += -mhtm -I $(KERNEL_HEADERS)
 
 include ../../lib.mk
 
diff --git a/tools/testing/selftests/vm/Makefile b/tools/testing/selftests/vm/Makefile
index e4bb1de1d526..4f45b9c8dd75 100644
--- a/tools/testing/selftests/vm/Makefile
+++ b/tools/testing/selftests/vm/Makefile
@@ -1,6 +1,6 @@
 # Makefile for vm selftests
 
-CFLAGS = -Wall -I ../../../../usr/include $(EXTRA_CFLAGS)
+CFLAGS = -Wall -I $(KERNEL_HEADERS) $(EXTRA_CFLAGS)
 BINARIES = compaction_test
 BINARIES += hugepage-mmap
 BINARIES += hugepage-shm
@@ -14,12 +14,9 @@ BINARIES += userfaultfd
 all: $(BINARIES)
 %: %.c
 	$(CC) $(CFLAGS) -o $@ $^ -lrt
-userfaultfd: userfaultfd.c ../../../../usr/include/linux/kernel.h
+userfaultfd: userfaultfd.c $(KERNEL_HEADERS)/linux/kernel.h
 	$(CC) $(CFLAGS) -O2 -o $@ $< -lpthread
 
-../../../../usr/include/linux/kernel.h:
-	make -C ../../../.. headers_install
-
 TEST_PROGS := run_vmtests
 TEST_FILES := $(BINARIES)
 

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [RFC PATCH] selftests: use INSTALL_HDR_PATH instead of relative paths
@ 2016-01-14 11:17     ` Sudeep Holla
  0 siblings, 0 replies; 10+ messages in thread
From: Sudeep Holla @ 2016-01-14 11:17 UTC (permalink / raw)
  To: Michael Ellerman, Shuah Khan, linux-api, linux-kernel; +Cc: Sudeep Holla



On 14/01/16 03:37, Michael Ellerman wrote:
> On Mon, 2016-01-11 at 14:22 +0000, Sudeep Holla wrote:
>
>> The selftests build fails or picks up wrong headers when cross-compiling
>> and build directory is different from source as the headers are referred
>> using the relative paths.
>>
>> This patch use $INSTALL_HDR_PATH to fix the compilation. It also removes
>> installing the headers.
>>
>> Cc: Shuah Khan <shuahkh@osg.samsung.com>
>> Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
>> ---
>>   tools/testing/selftests/membarrier/Makefile | 2 +-
>>   tools/testing/selftests/memfd/Makefile      | 2 +-
>>   tools/testing/selftests/net/Makefile        | 2 +-
>>   tools/testing/selftests/vm/Makefile         | 7 ++-----
>>   4 files changed, 5 insertions(+), 8 deletions(-)
>>
>> Hi,
>>
>> When I was cross-compiling these tests for arm{32,64}, I faced issues.
>> With limited knowledge I have on this build system, I came up with this
>> patch. Please treat this as bug report if this approach makes no-sense
>> and suggest on how to fix it.
>
> Yeah sorry that doesn't work.
>
> If $(INSTALL_HDR_PATH) isn't defined you end up with:
>
>    gcc -Wall -I /include  -o compaction_test compaction_test.c -lrt
>                 ^
>

Ah OK, I got carried away by below in the main Makefile.

#Default location for installed headers
export INSTALL_HDR_PATH = $(objtree)/usr

> Which is wrong.
>
> INSTALL_HDR_PATH will not be defined when the tests are built standalone, ie.
> like:
>
>    $ make -C tools/testing/selftests
>

Thanks for pointing this out. I had totally forgotten about that.

>
> This has been on my todo list to fix, but it doesn't actually bother me so I
> haven't got around to it.
>
> Does the patch below work for you? It uses INSTALL_HDR_PATH if it is defined,
> or otherwise KERNEL_HEADERS if it is defined, or finally it guesses at
> ../../../usr/include (ie. the base of the source tree).
>

Yes it does work fine. So feel free to add my tested-by when you post
the patch. Thanks for the quick and clean fix.

-- 
Regards,
Sudeep

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [RFC PATCH] selftests: use INSTALL_HDR_PATH instead of relative paths
@ 2016-01-14 11:17     ` Sudeep Holla
  0 siblings, 0 replies; 10+ messages in thread
From: Sudeep Holla @ 2016-01-14 11:17 UTC (permalink / raw)
  To: Michael Ellerman, Shuah Khan, linux-api-u79uwXL29TY76Z2rM5mHXA,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA
  Cc: Sudeep Holla



On 14/01/16 03:37, Michael Ellerman wrote:
> On Mon, 2016-01-11 at 14:22 +0000, Sudeep Holla wrote:
>
>> The selftests build fails or picks up wrong headers when cross-compiling
>> and build directory is different from source as the headers are referred
>> using the relative paths.
>>
>> This patch use $INSTALL_HDR_PATH to fix the compilation. It also removes
>> installing the headers.
>>
>> Cc: Shuah Khan <shuahkh-JPH+aEBZ4P+UEJcrhfAQsw@public.gmane.org>
>> Signed-off-by: Sudeep Holla <sudeep.holla-5wv7dgnIgG8@public.gmane.org>
>> ---
>>   tools/testing/selftests/membarrier/Makefile | 2 +-
>>   tools/testing/selftests/memfd/Makefile      | 2 +-
>>   tools/testing/selftests/net/Makefile        | 2 +-
>>   tools/testing/selftests/vm/Makefile         | 7 ++-----
>>   4 files changed, 5 insertions(+), 8 deletions(-)
>>
>> Hi,
>>
>> When I was cross-compiling these tests for arm{32,64}, I faced issues.
>> With limited knowledge I have on this build system, I came up with this
>> patch. Please treat this as bug report if this approach makes no-sense
>> and suggest on how to fix it.
>
> Yeah sorry that doesn't work.
>
> If $(INSTALL_HDR_PATH) isn't defined you end up with:
>
>    gcc -Wall -I /include  -o compaction_test compaction_test.c -lrt
>                 ^
>

Ah OK, I got carried away by below in the main Makefile.

#Default location for installed headers
export INSTALL_HDR_PATH = $(objtree)/usr

> Which is wrong.
>
> INSTALL_HDR_PATH will not be defined when the tests are built standalone, ie.
> like:
>
>    $ make -C tools/testing/selftests
>

Thanks for pointing this out. I had totally forgotten about that.

>
> This has been on my todo list to fix, but it doesn't actually bother me so I
> haven't got around to it.
>
> Does the patch below work for you? It uses INSTALL_HDR_PATH if it is defined,
> or otherwise KERNEL_HEADERS if it is defined, or finally it guesses at
> ../../../usr/include (ie. the base of the source tree).
>

Yes it does work fine. So feel free to add my tested-by when you post
the patch. Thanks for the quick and clean fix.

-- 
Regards,
Sudeep

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [RFC PATCH] selftests: use INSTALL_HDR_PATH instead of relative paths
@ 2016-01-26 11:57       ` Sudeep Holla
  0 siblings, 0 replies; 10+ messages in thread
From: Sudeep Holla @ 2016-01-26 11:57 UTC (permalink / raw)
  To: Michael Ellerman, linux-api, open list; +Cc: Sudeep Holla, Shuah Khan

On Thu, Jan 14, 2016 at 11:17 AM, Sudeep Holla <sudeep.holla@arm.com> wrote:
>
>
> On 14/01/16 03:37, Michael Ellerman wrote:
>>

[...]

>>
>> Does the patch below work for you? It uses INSTALL_HDR_PATH if it is
>> defined,
>> or otherwise KERNEL_HEADERS if it is defined, or finally it guesses at
>> ../../../usr/include (ie. the base of the source tree).
>>
>
> Yes it does work fine. So feel free to add my tested-by when you post
> the patch. Thanks for the quick and clean fix.
>

Any update on this patch ?

Regards,
Sudeep

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [RFC PATCH] selftests: use INSTALL_HDR_PATH instead of relative paths
@ 2016-01-26 11:57       ` Sudeep Holla
  0 siblings, 0 replies; 10+ messages in thread
From: Sudeep Holla @ 2016-01-26 11:57 UTC (permalink / raw)
  To: Michael Ellerman, linux-api-u79uwXL29TY76Z2rM5mHXA, open list
  Cc: Sudeep Holla, Shuah Khan

On Thu, Jan 14, 2016 at 11:17 AM, Sudeep Holla <sudeep.holla-5wv7dgnIgG8@public.gmane.org> wrote:
>
>
> On 14/01/16 03:37, Michael Ellerman wrote:
>>

[...]

>>
>> Does the patch below work for you? It uses INSTALL_HDR_PATH if it is
>> defined,
>> or otherwise KERNEL_HEADERS if it is defined, or finally it guesses at
>> ../../../usr/include (ie. the base of the source tree).
>>
>
> Yes it does work fine. So feel free to add my tested-by when you post
> the patch. Thanks for the quick and clean fix.
>

Any update on this patch ?

Regards,
Sudeep

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [RFC PATCH] selftests: use INSTALL_HDR_PATH instead of relative paths
@ 2016-01-28 21:19         ` Michael Ellerman
  0 siblings, 0 replies; 10+ messages in thread
From: Michael Ellerman @ 2016-01-28 21:19 UTC (permalink / raw)
  To: Sudeep Holla, linux-api, open list; +Cc: Shuah Khan

On Tue, 2016-01-26 at 11:57 +0000, Sudeep Holla wrote:
> On Thu, Jan 14, 2016 at 11:17 AM, Sudeep Holla <sudeep.holla@arm.com> wrote:
> > On 14/01/16 03:37, Michael Ellerman wrote:
> > >
> > > Does the patch below work for you? It uses INSTALL_HDR_PATH if it is
> > > defined,
> > > or otherwise KERNEL_HEADERS if it is defined, or finally it guesses at
> > > ../../../usr/include (ie. the base of the source tree).
> > >
> >
> > Yes it does work fine. So feel free to add my tested-by when you post
> > the patch. Thanks for the quick and clean fix.
> >
>
> Any update on this patch ?

Sorry, got stuck behind other stuff.

Will try and get it sent out next week.

cheers

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [RFC PATCH] selftests: use INSTALL_HDR_PATH instead of relative paths
@ 2016-01-28 21:19         ` Michael Ellerman
  0 siblings, 0 replies; 10+ messages in thread
From: Michael Ellerman @ 2016-01-28 21:19 UTC (permalink / raw)
  To: Sudeep Holla, linux-api-u79uwXL29TY76Z2rM5mHXA, open list; +Cc: Shuah Khan

On Tue, 2016-01-26 at 11:57 +0000, Sudeep Holla wrote:
> On Thu, Jan 14, 2016 at 11:17 AM, Sudeep Holla <sudeep.holla-5wv7dgnIgG8@public.gmane.org> wrote:
> > On 14/01/16 03:37, Michael Ellerman wrote:
> > >
> > > Does the patch below work for you? It uses INSTALL_HDR_PATH if it is
> > > defined,
> > > or otherwise KERNEL_HEADERS if it is defined, or finally it guesses at
> > > ../../../usr/include (ie. the base of the source tree).
> > >
> >
> > Yes it does work fine. So feel free to add my tested-by when you post
> > the patch. Thanks for the quick and clean fix.
> >
>
> Any update on this patch ?

Sorry, got stuck behind other stuff.

Will try and get it sent out next week.

cheers

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2016-01-28 21:20 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-01-11 14:22 [RFC PATCH] selftests: use INSTALL_HDR_PATH instead of relative paths Sudeep Holla
2016-01-11 14:22 ` Sudeep Holla
2016-01-14  3:37 ` Michael Ellerman
2016-01-14  3:37   ` Michael Ellerman
2016-01-14 11:17   ` Sudeep Holla
2016-01-14 11:17     ` Sudeep Holla
2016-01-26 11:57     ` Sudeep Holla
2016-01-26 11:57       ` Sudeep Holla
2016-01-28 21:19       ` Michael Ellerman
2016-01-28 21:19         ` Michael Ellerman

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.