Re: [PATCH 1/7] selftest: sync: basic tests for sw_sync framework

From: Emilio LÃpez
Date: Thu Sep 22 2016 - 10:24:31 EST


Hi Michael,

El 22/09/16 a las 06:43, Michael Ellerman escribiÃ:
Emilio LÃpez <emilio.lopez@xxxxxxxxxxxxxxx> writes:
+CFLAGS += -I../../../../include/uapi/

Please don't include the unprocessed uapi headers, they are not meant to
be directly included in userspace programs.

They even say so:

include/uapi/linux/types.h:#warning "Attempt to use kernel headers from user space, see http://kernelnewbies.org/KernelHeaders";

+CFLAGS += -I../../../../include/

Please don't include the *kernel* headers, they're really not meant to
be used in userspace programs :)

+CFLAGS += -I../../../../usr/include/

That is the correct place to get them from. They'll have been put there
by 'make headers_install'.

+CFLAGS += -I../../../../drivers/dma-buf/

That's also a bit fishy.

My inspiration here has been tools/testing/selftests/memfd/Makefile, which does it this way. If I only include the ones on usr then it doesn't build, as there's no sync_file.h available, even after running make headers_install. How am I supposed to use the ioctls from there?

The dma-buf include path is a leftover from the previous version, there's no longer any headers there. I've fixed the other things you pointed out, the new Makefile is below if you want to take another look.

Thanks for the review! :)
Emilio

---

CFLAGS += -O2 -g -std=gnu89 -pthread -Wall -Wextra
CFLAGS += -I../../../../usr/include/
LDFLAGS += -pthread

TEST_PROGS = sync_test

all: $(TEST_PROGS)

include ../lib.mk

OBJS = sync_test.o sync.o

TESTS += sync_alloc.o
TESTS += sync_fence.o
TESTS += sync_merge.o
TESTS += sync_wait.o
TESTS += sync_stress_parallelism.o
TESTS += sync_stress_consumer.o
TESTS += sync_stress_merge.o

sync_test: $(OBJS) $(TESTS)

clean:
$(RM) sync_test $(OBJS) $(TESTS)