From: Ammar Faizi <ammar.faizi@students.amikom.ac.id>
To: Jens Axboe <axboe@kernel.dk>,
Pavel Begunkov <asml.silence@gmail.com>,
io-uring Mailing List <io-uring@vger.kernel.org>
Cc: Bedirhan KURT <windowz414@gnuweeb.org>,
Louvian Lyndal <louvianlyndal@gmail.com>,
Ammar Faizi <ammar.faizi@students.amikom.ac.id>
Subject: [PATCH v2 liburing 4/4] Add CONFIG_NOLIBC variable and macro
Date: Sun, 10 Oct 2021 13:39:06 +0700 [thread overview]
Message-ID: <20211010063906.341014-5-ammar.faizi@students.amikom.ac.id> (raw)
In-Reply-To: <20211010063906.341014-1-ammar.faizi@students.amikom.ac.id>
For conditonal variable and macro to enable nolibc build.
Add `--nolibc` option for `configure` to enable it.
Link: https://github.com/axboe/liburing/issues/443
Signed-off-by: Ammar Faizi <ammar.faizi@students.amikom.ac.id>
---
configure | 8 ++++++++
src/Makefile | 13 ++++++++++++-
2 files changed, 20 insertions(+), 1 deletion(-)
diff --git a/configure b/configure
index 92f51bd..6712ce3 100755
--- a/configure
+++ b/configure
@@ -24,6 +24,8 @@ for opt do
;;
--cxx=*) cxx="$optarg"
;;
+ --nolibc) liburing_nolibc="yes"
+ ;;
*)
echo "ERROR: unknown option $opt"
echo "Try '$0 --help' for more information"
@@ -358,6 +360,12 @@ print_config "has_memfd_create" "$has_memfd_create"
#############################################################################
+if test "$liburing_nolibc" = "yes"; then
+ output_sym "CONFIG_NOLIBC"
+else
+ liburing_nolibc="no"
+fi
+print_config "liburing_nolibc" "$liburing_nolibc"
if test "$__kernel_rwf_t" = "yes"; then
output_sym "CONFIG_HAVE_KERNEL_RWF_T"
diff --git a/src/Makefile b/src/Makefile
index 5e46a9d..290517d 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -32,11 +32,22 @@ endif
all: $(all_targets)
-liburing_srcs := setup.c queue.c syscall.c register.c
+liburing_srcs := setup.c queue.c register.c
+
+ifeq ($(CONFIG_NOLIBC),y)
+ liburing_srcs += nolibc.c
+ override CFLAGS += -nostdlib -nolibc -nodefaultlibs -ffreestanding -fno-stack-protector
+ override CPPFLAGS += -nostdlib -nolibc -nodefaultlibs -ffreestanding -fno-stack-protector
+ override LINK_FLAGS += -nostdlib -nolibc -nodefaultlibs
+else
+ liburing_srcs += syscall.c
+endif
liburing_objs := $(patsubst %.c,%.ol,$(liburing_srcs))
liburing_sobjs := $(patsubst %.c,%.os,$(liburing_srcs))
+$(liburing_srcs): syscall.h lib.h
+
$(liburing_objs) $(liburing_sobjs): include/liburing/io_uring.h
%.os: %.c
--
2.30.2
next prev parent reply other threads:[~2021-10-10 6:41 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-10-10 6:39 [PATCHSET v2 liburing 0/4] Add nolibc support for x86-64 arch Ammar Faizi
2021-10-10 6:39 ` [PATCH v2 liburing 1/4] test/thread-exit: Fix use after free bug Ammar Faizi
2021-10-10 11:25 ` Jens Axboe
2021-10-10 6:39 ` [PATCH v2 liburing 2/4] Add arch dependent directory and files Ammar Faizi
2021-10-10 11:16 ` Jens Axboe
2021-10-10 6:39 ` [PATCH v2 liburing 3/4] Add no libc build support Ammar Faizi
2021-10-10 11:19 ` Jens Axboe
2021-10-10 6:39 ` Ammar Faizi [this message]
2021-10-10 11:22 ` [PATCH v2 liburing 4/4] Add CONFIG_NOLIBC variable and macro Jens Axboe
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20211010063906.341014-5-ammar.faizi@students.amikom.ac.id \
--to=ammar.faizi@students.amikom.ac.id \
--cc=asml.silence@gmail.com \
--cc=axboe@kernel.dk \
--cc=io-uring@vger.kernel.org \
--cc=louvianlyndal@gmail.com \
--cc=windowz414@gnuweeb.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.