From: Willy Tarreau <w@1wt.eu>
To: Zhangjin Wu <falcon@tinylab.org>
Cc: arnd@arndb.de, linux-kernel@vger.kernel.org,
linux-kselftest@vger.kernel.org, thomas@t-8ch.de
Subject: Re: [PATCH v1 00/22] selftests/nolibc: add minimal kernel config support
Date: Tue, 11 Jul 2023 21:36:08 +0200 [thread overview]
Message-ID: <20230711193608.GD31402@1wt.eu> (raw)
In-Reply-To: <20230711171826.10480-1-falcon@tinylab.org>
On Wed, Jul 12, 2023 at 01:18:26AM +0800, Zhangjin Wu wrote:
> > > With the new patchset, it is able to rebuild and rerun everything in several
> > > minutes, it may make people very happy to develop nolibc itself and also make
> > > people to work on linux with nolibc, especially for developing and testing a
> > > new kernel feature ;-)
> >
> > I doubt it. Rebuilding everything is not what most developers need. What
> > they need is to just fix a missing parenthesis that broke the build and
> > rebuild the strict minimum, restarting from where they left. And they
> > need to be able to figure what caused that "FAILED" output, disassemble
> > the output, re-run it manually under qemu-user, rebuild the .c manually
> > after copy-pasting the whole command line via "V=1", etc.
> >
>
> It is mainly for a cross arch change, like the _start_c() patchset we
> just discuss. This may also happen for every release (not that helpful,
> for a new release, a mrproper or distclean may be required).
Maybe, but let's focus on fixing what's really annoying before trying
to improve things that work. If you find yourself failing to do certain
things, annoyed with some flags that are forced on you etc, not finding
a way to work with multiple output dirs, these are good reasons for
applying changes. But thinking that it will likely be better organized
this or that way tends to make us forget what we're relying on and that
we might lose by accident.
> > Keep in mind that the purpose of a selftest is not to optimize the case
> > where it works fine, but to optimize the developer's work when it fails.
> > This is something that a lot of people tend to get wrong. They're proud
> > of a "make world" that does everything including delivering them pizzas
> > to wait for the builds to complete, and they say "hey, impressed?". But
> > when someone else reports "I'm getting this strange error I don't
> > understand", they can hardly suggest more than "hmmm run make clean, try
> > again, or use the same distro as me because it works for me".
> >
>
> Parts of them do want to meet the 'optimize the developer's work when it
> fails', for example, new developers may be hard to find a loongarch or
> riscv bios, or find a toolchain for the not frequently used
> architecture, to avoid introduce many bug reports about "strange errors"
> outside of our core functions, perhaps we'd better do these in a nolibc
> doc under Documentation/, tell people how to prepare the develop and
> test environment of nolibc and how to use nolibc there.
Reading the beginning of the sentence made me immediately think that it's
what doc is for. You know, if you give a fish to a hungry man he eats one
day, if you teach him to fish he eats every day. Knowing what to download
from where is much more instructive than running "make download" or even
worse, "make" and having the downloads secretly succeed (or fail). If you
think the doc is hard to find I'm also fine with a patch for makefile
and/or nolibc-test passing a pointer to its location as a reminding
comment for example.
> > And I think that helping the user
> > prepare certain steps or iterate over architectures *is* useful. When
> > you do it in two layers (the script replacing the user, the makefile
> > doing the build job), it remains easy and convenient to use, and you
> > can pick only what you need (e.g. "please build musl for me"). And if
> > something goes wrong, it's simple for the user to takeover and complete
> > that failed task by changing an arch name, a directory or anything, and
> > have their tools ready. Let's just never make that automatic for the
> > sake of everyone's health!
>
> Ok, the revision will align with the original Makefile and remove the automatic
> parts and no change about the OUTPUT.
Just check that you can force it from your script on the make command
line. If you see that it's not possible, we should do something because
I don't want to force you to make distclean all the time if not needed.
But if you find that passing certain options (O=, OUTPUT= or anything
else) does the job, it only needs to be documented.
Thanks,
Willy
next prev parent reply other threads:[~2023-07-11 19:36 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-06-25 16:10 [PATCH v1 00/22] selftests/nolibc: add minimal kernel config support Zhangjin Wu
2023-06-25 16:12 ` [PATCH v1 01/22] selftests/nolibc: add test for -include /path/to/nolibc.h Zhangjin Wu
2023-06-25 16:13 ` [PATCH v1 02/22] selftests/nolibc: print result to the screen too Zhangjin Wu
2023-06-25 16:14 ` [PATCH v1 03/22] selftests/nolibc: allow use x86_64 toolchain for i386 Zhangjin Wu
2023-06-25 16:15 ` [PATCH v1 04/22] selftests/nolibc: add menuconfig target for manual config Zhangjin Wu
2023-06-25 16:19 ` [PATCH v1 05/22] selftests/nolibc: add tinyconfig target Zhangjin Wu
2023-06-25 16:21 ` [PATCH v1 06/22] selftests/nolibc: allow customize extra kernel config options Zhangjin Wu
2023-06-25 16:22 ` [PATCH v1 07/22] selftests/nolibc: add common extra " Zhangjin Wu
2023-06-25 16:23 ` [PATCH v1 08/22] selftests/nolibc: add power reset control support Zhangjin Wu
2023-06-25 16:25 ` [PATCH v1 09/22] selftests/nolibc: add procfs, shmem and tmpfs Zhangjin Wu
2023-06-25 16:26 ` [PATCH v1 10/22] selftests/nolibc: add extra configs for i386 Zhangjin Wu
2023-06-25 16:28 ` [PATCH v1 11/22] selftests/nolibc: add extra configs for x86_64 Zhangjin Wu
2023-06-25 16:30 ` [PATCH v1 12/22] selftests/nolibc: add extra configs for arm64 Zhangjin Wu
2023-06-25 16:31 ` [PATCH v1 13/22] selftests/nolibc: add extra configs for arm Zhangjin Wu
2023-06-25 16:32 ` [PATCH v1 14/22] selftests/nolibc: add extra configs for mips Zhangjin Wu
2023-06-25 16:34 ` [PATCH v1 15/22] selftests/nolibc: add extra configs for riscv32 Zhangjin Wu
2023-06-25 16:35 ` [PATCH v1 16/22] selftests/nolibc: add extra configs for riscv64 Zhangjin Wu
2023-06-25 16:36 ` [PATCH v1 17/22] selftests/nolibc: add extra configs for s390x Zhangjin Wu
2023-06-25 16:38 ` [PATCH v1 18/22] selftests/nolibc: add extra configs for loongarch Zhangjin Wu
2023-06-25 16:39 ` [PATCH v1 19/22] selftests/nolibc: config default CROSS_COMPILE Zhangjin Wu
2023-06-25 16:41 ` [PATCH v1 20/22] selftests/nolibc: add run-tiny and run-default Zhangjin Wu
2023-06-25 16:43 ` [PATCH v1 21/22] selftests/nolibc: allow run tests on all targets Zhangjin Wu
2023-06-25 16:45 ` [PATCH v1 22/22] selftests/nolibc: detect bios existing to avoid hang Zhangjin Wu
2023-07-11 3:55 ` [PATCH v1 00/22] selftests/nolibc: add minimal kernel config support Zhangjin Wu
2023-07-11 7:08 ` Willy Tarreau
2023-07-11 17:18 ` Zhangjin Wu
2023-07-11 19:36 ` Willy Tarreau [this message]
2023-07-18 13:43 ` Zhangjin Wu
2023-07-18 15:19 ` Thomas Weißschuh
2023-07-18 15:59 ` Willy Tarreau
2023-07-18 17:01 ` Zhangjin Wu
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=20230711193608.GD31402@1wt.eu \
--to=w@1wt.eu \
--cc=arnd@arndb.de \
--cc=falcon@tinylab.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=thomas@t-8ch.de \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox