diff mbox

[RFC] selftests: use INSTALL_HDR_PATH instead of relative paths

Message ID 1452522172-16650-1-git-send-email-sudeep.holla@arm.com
State New
Headers show

Commit Message

Sudeep Holla Jan. 11, 2016, 2:22 p.m. UTC
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

-- 
1.9.1

Comments

Sudeep Holla Jan. 14, 2016, 11:17 a.m. UTC | #1
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
Sudeep Holla Jan. 26, 2016, 11:57 a.m. UTC | #2
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
diff mbox

Patch

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)