All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH liburing 0/2] Fixes for Makefile
@ 2021-10-30 15:55 Ammar Faizi
  2021-10-30 15:55 ` [PATCH liburing 1/2] examples/Makefile: Fix missing clean up Ammar Faizi
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Ammar Faizi @ 2021-10-30 15:55 UTC (permalink / raw)
  To: Jens Axboe; +Cc: Pavel Begunkov, io-uring Mailing List, Ammar Faizi



Hi Jens,

2 patches for liburing, both fix the Makefile.

Ammar Faizi (2):
  examples/Makefile: Fix build script bug
  test/Makefile: Refactor the Makefile

 examples/Makefile |  21 ++--
 test/Makefile     | 263 +++++++++++++++-------------------------------
 2 files changed, 98 insertions(+), 186 deletions(-)

-- 
Ammar Faizi

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

* [PATCH liburing 1/2] examples/Makefile: Fix missing clean up
  2021-10-30 15:55 [PATCH liburing 0/2] Fixes for Makefile Ammar Faizi
@ 2021-10-30 15:55 ` Ammar Faizi
  2021-10-30 15:55 ` [PATCH liburing 2/2] test/Makefile: Refactor the Makefile Ammar Faizi
  2021-10-31 22:30 ` [PATCH liburing 0/2] Fixes for Makefile Jens Axboe
  2 siblings, 0 replies; 4+ messages in thread
From: Ammar Faizi @ 2021-10-30 15:55 UTC (permalink / raw)
  To: Jens Axboe; +Cc: Pavel Begunkov, io-uring Mailing List, Ammar Faizi

Several things go wrong with this Makefile:
  1) Using `test_srcs` to generate `test_objs`.
  2) `test_objs` is an unused variable. So (1) is pointless.
  3) `make clean` does not remove `ucontext-cp` binary.

I assume (1) and (2) were blindly copied from the test Makefile.

For 3, the `make clean` removes $(all_targets) and $(test_objs). But
`ucontext-cp` only exists in $(all_targets) if we have
`CONFIG_HAVE_UCONTEXT`. When the target goal is `clean`, we will not
have any of `CONFIG_*` variables. Thus, `ucontext-cp` is not removed.

Clean them up!

Signed-off-by: Ammar Faizi <ammar.faizi@students.amikom.ac.id>
---
 examples/Makefile | 21 +++++++++++++++------
 1 file changed, 15 insertions(+), 6 deletions(-)

diff --git a/examples/Makefile b/examples/Makefile
index d3c5000..f966f94 100644
--- a/examples/Makefile
+++ b/examples/Makefile
@@ -10,20 +10,29 @@ ifneq ($(MAKECMDGOALS),clean)
 include ../config-host.mak
 endif
 
-all_targets += io_uring-test io_uring-cp link-cp
+example_srcs := \
+	io_uring-cp.c \
+	io_uring-test.c \
+	link-cp.c
+
+all_targets :=
+
 
 ifdef CONFIG_HAVE_UCONTEXT
-all_targets += ucontext-cp
+	example_srcs += ucontext-cp.c
 endif
+all_targets += ucontext-cp
 
-all: $(all_targets)
+example_targets := $(patsubst %.c,%,$(patsubst %.cc,%,$(example_srcs)))
+all_targets += $(example_targets)
 
-test_srcs := io_uring-test.c io_uring-cp.c link-cp.c
 
-test_objs := $(patsubst %.c,%.ol,$(test_srcs))
+all: $(example_targets)
 
 %: %.c
 	$(QUIET_CC)$(CC) $(CPPFLAGS) $(CFLAGS) -o $@ $< $(LDFLAGS)
 
 clean:
-	@rm -f $(all_targets) $(test_objs)
+	@rm -f $(all_targets)
+
+.PHONY: all clean
-- 
2.30.2


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

* [PATCH liburing 2/2] test/Makefile: Refactor the Makefile
  2021-10-30 15:55 [PATCH liburing 0/2] Fixes for Makefile Ammar Faizi
  2021-10-30 15:55 ` [PATCH liburing 1/2] examples/Makefile: Fix missing clean up Ammar Faizi
@ 2021-10-30 15:55 ` Ammar Faizi
  2021-10-31 22:30 ` [PATCH liburing 0/2] Fixes for Makefile Jens Axboe
  2 siblings, 0 replies; 4+ messages in thread
From: Ammar Faizi @ 2021-10-30 15:55 UTC (permalink / raw)
  To: Jens Axboe; +Cc: Pavel Begunkov, io-uring Mailing List, Ammar Faizi

The Makefile for test is not efficient and reads bad. We have to
specify the name for each test 2 times (filename and name without
the ext) while we could have just elided the extension from the
source filename.

Let's make it simpler and easier to manage.

Changes summary:
 - Clean up and reorder things.
 - Sort the `test_srcs` alphabetically.
 - Remove `test_objs` (it turned out unused).
 - Generate `test_targets` variable from `test_srcs` by simply
   removing the `.c` and `.cc` file extension.

Signed-off-by: Ammar Faizi <ammar.faizi@students.amikom.ac.id>
---
 test/Makefile | 263 ++++++++++++++++----------------------------------
 1 file changed, 83 insertions(+), 180 deletions(-)

diff --git a/test/Makefile b/test/Makefile
index 1a10a24..f7eafad 100644
--- a/test/Makefile
+++ b/test/Makefile
@@ -8,177 +8,32 @@ include ../config-host.mak
 endif
 
 CPPFLAGS ?=
-override CPPFLAGS += -D_GNU_SOURCE -D__SANE_USERSPACE_TYPES__ \
-	-I../src/include/ -include ../config-host.h
-CFLAGS ?= -g -O2 -Wall -Wextra
 
+override CPPFLAGS += \
+	-D_GNU_SOURCE \
+	-D__SANE_USERSPACE_TYPES__ \
+	-I../src/include/ \
+	-include ../config-host.h
+
+CFLAGS ?= -g -O2 -Wall -Wextra
 XCFLAGS = -Wno-unused-parameter -Wno-sign-compare
+
 ifdef CONFIG_HAVE_STRINGOP_OVERFLOW
-  XCFLAGS += -Wstringop-overflow=0
+	XCFLAGS += -Wstringop-overflow=0
 endif
+
 ifdef CONFIG_HAVE_ARRAY_BOUNDS
-  XCFLAGS += -Warray-bounds=0
+	XCFLAGS += -Warray-bounds=0
 endif
 
 CXXFLAGS ?= $(CFLAGS)
 override CFLAGS += $(XCFLAGS) -DLIBURING_BUILD_TEST
 override CXXFLAGS += $(XCFLAGS) -std=c++11 -DLIBURING_BUILD_TEST
+
 LDFLAGS ?=
 override LDFLAGS += -L../src/ -luring
 
-test_targets += \
-	232c93d07b74-test \
-	35fa71a030ca-test \
-	500f9fbadef8-test \
-	7ad0e4b2f83c-test \
-	8a9973408177-test \
-	917257daa0fe-test \
-	a0908ae19763-test \
-	a4c0b3decb33-test \
-	accept \
-	accept-link \
-	accept-reuse \
-	accept-test \
-	across-fork splice \
-	b19062a56726-test \
-	b5837bd5311d-test \
-	ce593a6c480a-test \
-	close-opath \
-	connect \
-	cq-full \
-	cq-overflow \
-	cq-peek-batch \
-	cq-ready \
-	cq-size \
-	d4ae271dfaae-test \
-	d77a67ed5f27-test \
-	defer \
-	double-poll-crash \
-	eeed8b54e0df-test \
-	empty-eownerdead \
-	eventfd \
-	eventfd-disable \
-	eventfd-ring \
-	fadvise \
-	fallocate \
-	fc2a85cb02ef-test \
-	file-register \
-	file-verify \
-	file-update \
-	files-exit-hang-poll \
-	files-exit-hang-timeout \
-	fixed-link \
-	fsync \
-	hardlink \
-	io-cancel \
-	io_uring_enter \
-	io_uring_register \
-	io_uring_setup \
-	iopoll \
-	lfs-openat \
-	lfs-openat-write \
-	link \
-	link-timeout \
-	link_drain \
-	madvise \
-	mkdir \
-	multicqes_drain \
-	nop \
-	nop-all-sizes \
-	open-close \
-	openat2 \
-	personality \
-	pipe-eof \
-	pipe-reuse \
-	poll \
-	poll-cancel \
-	poll-cancel-ton \
-	poll-link \
-	poll-many \
-	poll-mshot-update \
-	poll-ring \
-	poll-v-poll \
-	probe \
-	read-write \
-	register-restrictions \
-	rename \
-	ring-leak \
-	ring-leak2 \
-	rw_merge_test \
-	self \
-	send_recv \
-	send_recvmsg \
-	shared-wq \
-	short-read \
-	shutdown \
-	sigfd-deadlock \
-	socket-rw \
-	socket-rw-eagain \
-	sq-full \
-	sq-poll-dup \
-	sq-poll-kthread \
-	sq-poll-share \
-	sqpoll-disable-exit \
-	sqpoll-exit-hang \
-	sqpoll-cancel-hang \
-	sqpoll-sleep \
-	sq-space_left \
-	stdout \
-	submit-reuse \
-	submit-link-fail \
-	symlink \
-	teardowns \
-	thread-exit \
-	timeout \
-	timeout-new \
-	timeout-overflow \
-	unlink \
-	wakeup-hang \
-	sendmsg_fs_cve \
-	rsrc_tags \
-	exec-target \
-	# EOL
-
-all_targets += $(test_targets)
-
-include ../Makefile.quiet
-
-ifdef CONFIG_HAVE_STATX
-test_targets += statx
-endif
-all_targets += statx
-
-ifdef CONFIG_HAVE_CXX
-test_targets += sq-full-cpp
-endif
-all_targets += sq-full-cpp
-
-#
-# Build ../src/syscall.c manually from test's Makefile to support
-# liburing nolibc.
-#
-# Functions in ../src/syscall.c require libc to work with, if we
-# build liburing without libc, we don't have those functions
-# in liburing.a. So build it manually here.
-#
-helpers = helpers.o ../src/syscall.o
-
-all: ${helpers} $(test_targets)
-
-../src/syscall.o: ../src/syscall.c
-	$(QUIET_CC)$(CC) $(CPPFLAGS) $(CFLAGS) -o $@ -c $<
-
-helpers.o: helpers.c
-	$(QUIET_CC)$(CC) $(CPPFLAGS) $(CFLAGS) -o $@ -c $<
-
-%: %.c ${helpers} helpers.h
-	$(QUIET_CC)$(CC) $(CPPFLAGS) $(CFLAGS) -o $@ $< ${helpers} $(LDFLAGS)
-
-%: %.cc ${helpers} helpers.h
-	$(QUIET_CXX)$(CXX) $(CPPFLAGS) $(CXXFLAGS) -o $@ $< ${helpers} $(LDFLAGS)
-
 test_srcs := \
-	helpers.c \
 	232c93d07b74-test.c \
 	35fa71a030ca-test.c \
 	500f9fbadef8-test.c \
@@ -187,10 +42,10 @@ test_srcs := \
 	917257daa0fe-test.c \
 	a0908ae19763-test.c \
 	a4c0b3decb33-test.c \
+	accept.c \
 	accept-link.c \
 	accept-reuse.c \
 	accept-test.c \
-	accept.c \
 	across-fork.c \
 	b19062a56726-test.c \
 	b5837bd5311d-test.c \
@@ -200,7 +55,7 @@ test_srcs := \
 	cq-full.c \
 	cq-overflow.c \
 	cq-peek-batch.c \
-	cq-ready.c\
+	cq-ready.c \
 	cq-size.c \
 	d4ae271dfaae-test.c \
 	d77a67ed5f27-test.c \
@@ -208,56 +63,60 @@ test_srcs := \
 	double-poll-crash.c \
 	eeed8b54e0df-test.c \
 	empty-eownerdead.c \
+	eventfd.c \
 	eventfd-disable.c \
 	eventfd-ring.c \
-	eventfd.c \
+	exec-target.c \
 	fadvise.c \
 	fallocate.c \
 	fc2a85cb02ef-test.c \
 	file-register.c \
-	file-verify.c \
-	file-update.c \
 	files-exit-hang-poll.c \
 	files-exit-hang-timeout.c \
+	file-update.c \
+	file-verify.c \
 	fixed-link.c \
 	fsync.c \
 	hardlink.c \
 	io-cancel.c \
+	iopoll.c \
 	io_uring_enter.c \
 	io_uring_register.c \
 	io_uring_setup.c \
-	iopoll.c \
-	lfs-openat-write.c \
 	lfs-openat.c \
-	link-timeout.c \
+	lfs-openat-write.c \
 	link.c \
 	link_drain.c \
+	link-timeout.c \
 	madvise.c \
 	mkdir.c \
 	multicqes_drain.c \
 	nop-all-sizes.c \
 	nop.c \
-	open-close.c \
 	openat2.c \
+	open-close.c \
 	personality.c \
 	pipe-eof.c \
 	pipe-reuse.c \
-	poll-cancel-ton.c \
+	poll.c \
 	poll-cancel.c \
+	poll-cancel-ton.c \
 	poll-link.c \
 	poll-many.c \
 	poll-mshot-update.c \
 	poll-ring.c \
 	poll-v-poll.c \
-	poll.c \
 	probe.c \
 	read-write.c \
 	register-restrictions.c \
 	rename.c \
-	ring-leak.c \
 	ring-leak2.c \
+	ring-leak.c \
+	rsrc_tags.c \
 	rw_merge_test.c \
 	self.c \
+	sendmsg_fs_cve.c \
+	send_recv.c \
 	send_recvmsg.c \
 	shared-wq.c \
 	short-read.c \
@@ -266,34 +125,74 @@ test_srcs := \
 	socket-rw.c \
 	socket-rw-eagain.c \
 	splice.c \
-	sq-full-cpp.cc \
 	sq-full.c \
+	sq-full-cpp.cc \
+	sqpoll-cancel-hang.c \
+	sqpoll-disable-exit.c \
 	sq-poll-dup.c \
+	sqpoll-exit-hang.c \
 	sq-poll-kthread.c \
 	sq-poll-share.c \
-	sqpoll-disable-exit.c \
-	sqpoll-exit-hang.c \
-	sqpoll-cancel-hang.c \
 	sqpoll-sleep.c \
 	sq-space_left.c \
 	statx.c \
 	stdout.c \
-	submit-reuse.c \
 	submit-link-fail.c \
+	submit-reuse.c \
 	symlink.c \
 	teardowns.c \
 	thread-exit.c \
+	timeout.c \
 	timeout-new.c \
 	timeout-overflow.c \
-	timeout.c \
 	unlink.c \
 	wakeup-hang.c \
-	sendmsg_fs_cve.c \
-	rsrc_tags.c \
-	exec-target.c \
 	# EOL
 
-test_objs := $(patsubst %.c,%.ol,$(patsubst %.cc,%.ol,$(test_srcs)))
+
+all_targets :=
+include ../Makefile.quiet
+
+
+ifdef CONFIG_HAVE_STATX
+	test_srcs += statx.c
+endif
+all_targets += statx
+
+
+ifdef CONFIG_HAVE_CXX
+	test_srcs += sq-full-cpp.cc
+endif
+all_targets += sq-full-cpp
+
+
+test_targets := $(patsubst %.c,%,$(patsubst %.cc,%,$(test_srcs)))
+all_targets += $(test_targets)
+
+#
+# Build ../src/syscall.c manually from test's Makefile to support
+# liburing nolibc.
+#
+# Functions in ../src/syscall.c require libc to work with, if we
+# build liburing without libc, we don't have those functions
+# in liburing.a. So build it manually here.
+#
+helpers = helpers.o ../src/syscall.o
+
+all: $(test_targets)
+
+../src/syscall.o: ../src/syscall.c
+	$(QUIET_CC)$(CC) $(CPPFLAGS) $(CFLAGS) -o $@ -c $<
+
+helpers.o: helpers.c
+	$(QUIET_CC)$(CC) $(CPPFLAGS) $(CFLAGS) -o $@ -c $<
+
+%: %.c $(helpers) helpers.h
+	$(QUIET_CC)$(CC) $(CPPFLAGS) $(CFLAGS) -o $@ $< $(helpers) $(LDFLAGS)
+
+%: %.cc $(helpers) helpers.h
+	$(QUIET_CXX)$(CXX) $(CPPFLAGS) $(CXXFLAGS) -o $@ $< $(helpers) $(LDFLAGS)
+
 
 35fa71a030ca-test: override LDFLAGS += -lpthread
 232c93d07b74-test: override LDFLAGS += -lpthread
@@ -317,11 +216,15 @@ install: $(test_targets) runtests.sh runtests-loop.sh
 	$(INSTALL) -D -m 755 $(test_targets) $(datadir)/liburing-test/
 	$(INSTALL) -D -m 755 runtests.sh  $(datadir)/liburing-test/
 	$(INSTALL) -D -m 755 runtests-loop.sh  $(datadir)/liburing-test/
+
 clean:
-	@rm -f $(all_targets) $(test_objs) helpers.o output/*
+	@rm -f $(all_targets) helpers.o output/*
 	@rm -rf output/
 
 runtests: all
 	@./runtests.sh $(test_targets)
+
 runtests-loop: all
 	@./runtests-loop.sh $(test_targets)
+
+.PHONY: all install clean runtests runtests-loop
-- 
2.30.2


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

* Re: [PATCH liburing 0/2] Fixes for Makefile
  2021-10-30 15:55 [PATCH liburing 0/2] Fixes for Makefile Ammar Faizi
  2021-10-30 15:55 ` [PATCH liburing 1/2] examples/Makefile: Fix missing clean up Ammar Faizi
  2021-10-30 15:55 ` [PATCH liburing 2/2] test/Makefile: Refactor the Makefile Ammar Faizi
@ 2021-10-31 22:30 ` Jens Axboe
  2 siblings, 0 replies; 4+ messages in thread
From: Jens Axboe @ 2021-10-31 22:30 UTC (permalink / raw)
  To: Ammar Faizi; +Cc: Pavel Begunkov, io-uring Mailing List

On Sat, 30 Oct 2021 22:55:52 +0700, Ammar Faizi wrote:
> 2 patches for liburing, both fix the Makefile.
> 
> Ammar Faizi (2):
>   examples/Makefile: Fix build script bug
>   test/Makefile: Refactor the Makefile
> 
> examples/Makefile |  21 ++--
>  test/Makefile     | 263 +++++++++++++++-------------------------------
>  2 files changed, 98 insertions(+), 186 deletions(-)
> 
> [...]

Applied, thanks!

[1/2] examples/Makefile: Fix missing clean up
      commit: d543ff1a23d0a9ad7a2628f60194896f9033f27e
[2/2] test/Makefile: Refactor the Makefile
      commit: bceaacc35f9e75469f6179d63436d67dc5bd47d0

Best regards,
-- 
Jens Axboe



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

end of thread, other threads:[~2021-10-31 22:30 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-30 15:55 [PATCH liburing 0/2] Fixes for Makefile Ammar Faizi
2021-10-30 15:55 ` [PATCH liburing 1/2] examples/Makefile: Fix missing clean up Ammar Faizi
2021-10-30 15:55 ` [PATCH liburing 2/2] test/Makefile: Refactor the Makefile Ammar Faizi
2021-10-31 22:30 ` [PATCH liburing 0/2] Fixes for Makefile Jens Axboe

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.