From: "D. Stimits" <stimits@idcomm.com>
To: linux-kernel@vger.kernel.org
Subject: Re: Cleanup kbuild for aic7xxx
Date: Fri, 22 Jun 2001 22:17:12 -0600 [thread overview]
Message-ID: <3B341848.1EF6DA3B@idcomm.com> (raw)
In-Reply-To: <10972.993257428@ocs3.ocs-net>
Keith Owens wrote:
>
> On Fri, 22 Jun 2001 13:39:45 -0600,
> "Justin T. Gibbs" <gibbs@scsiguy.com> wrote:
> >>The existing build process for aic7xxx on Linux has several problems.
> >>
> >>* Users have to manually select "rebuild firmware". Relying on users
> >> to perform any action other than make *config is unacceptable. It is
> >> far too error prone.
> >
> >Users don't have to manually select "rebuild firmware". They can
> >rely on the generated files already in the aic7xxx directory. This
> >is why the option defaults to off.
For the SGI patched kernels based on either 2.4.5 or 2.4.6-pre1, I have
had to manually select this for a 7892 controller. Without manually
selecting it, it guarantees boot failure. I don't know if this is due to
the SGI modifications or not. The real problem I found is that during
boot failure, there was no meaningful debug message.
>
> You rely on a timestamp check to tell the users "suggest you rebuild
> firmware". That timestamp check is inherently unreliable when files
> are both generated and shipped.
>
> >>* Rebuilding the firmware requires lex, yacc and libdb. Not everybody
> >> has these installed.
> >
> >Then they shouldn't check the box "rebuild firmware".
>
> See above. Users think they need to turn on the firmware build, then
> complain when it breaks.
>
> >>* The check for which libdb to use assumes that the presence of a db.h
> >> is enough, but the overlap between glibc-devel and dbx-devel packages
> >> means that finding a db.h is not enough, you have to confirm that the
> >> corresponding libdb exists.
> >
> >Such is Linux. Those who understand what it means to rebuild the
> >firmware will have the necessary tools, check the box in config,
> >and have it work.
But there is insufficient menu dialog associated with rebuild firmware.
>
> Wrong. Such is the way it _used_ to be. As the use of Linux expands,
> more and more people are building their own kernels without knowing all
> the internals. This is good, we get more users. But kernel build code
> can no longer assume that anybody building a kernel is automatically an
> expert.
>
> >>* It checks if the firmware is up to date by comparing the timestamps
> >> on aic7xxx_seq.h and aic7xxx_reg.h against aic7xxx.seq and
> >> aic7xxx.reg. Alas, when a patch hits those files there is no
> >> guarantee which order the files are listed in the patch so the final
> >> timestamp order is unreliable. diff lists files in alphabetical
> >> order but other source repository systems can generate patches in any
> >> order. This is a problem for all generated files, not just aic7xxx.
> >
> >So you might get a harmless warning if you haven't checked the box. This
> >is not fatal and I have yet to hear one complaint about it.
Missing firmware rebuild is fatal for my system, SMP x86 with integrated
7892. Messages and config menu information is inadequate, it requires a
bit of pounding the head on the wall to figure it out.
>
> http://marc.theaimsgroup.com/?l=linux-kernel&m=99124017310488&w=2
> was fatal, you even replied to it.
>
> >>* Shipping files which are also overwritten by users causes problems
> >> for source control systems and can cause spurious differences when
> >> generating patches. This is a problem for all generated files, not
> >> just aic7xxx.
> >
> >Those using revision control should know how to use revision control.
> >The driver is developed under revision control and the current setup
> >causes me no grief. Of course, I don't keep the generated files in
> >revision control because there is no benefit in doing so.
>
> Users take patches from Linus or Alan Cox which include the generated
> patches and add the patches to local source repositories. That
> includes the generated files. If it comes from Linus or AC it is a
> "master" copy. End users do not have the luxury of excluding the
> generated files from revision control because it is not their input.
> And if they do exclude the files then their users are forced to
> generate the firmware. Excluding the aic7xxx generated files from
> source revision works for you because you always generate the firmware,
> it does not work for anybody else.
>
> >For those
> >that decide to keep the generated files in revision control, they
> >should pull any update to the generated files from the vendor (they
> >are always provided in my patches) and *never check the box*.
>
> Users must not be forced to go hunting for files from a vendor when the
> rst of the code is in the kernel. Especially when that vendor is not
> listed in MAINTAINERS and there is no contact data in the aic7xxx
> directory.
>
> >>The patch below fixes all of the above issues. It does not touch the
> >>aic7xxx code nor sequencer input, just the generated files and the
> >>kbuild related files. The patch is approx 100Kb but most of it is the
> >>rename of aic7xxx_{seq,reg}.h to aic7xxx_{seq,reg}.h_shipped.
> >
> >I don't see this as an improvement.
>
> I do, and I am the kernel build maintainer. I don't tell you how to
> code aic7xxx drivers, but I can and will fix kbuild problems. The
> current aic7xxx kbuild is a problem.
>
> >>After applying this patch, normal users will not have to worry about
> >>generating aic7xxx firmware.
> >
> >This is already true today.
>
> Not true, the timestamp check produces spurious prompts.
>
> >>In particular they will not have to
> >>select "rebuild firmware" nor will they need lex, yacc or libdb.
> >
> >Already true today.
>
> Wrong. See
> http://marc.theaimsgroup.com/?l=linux-kernel&m=99323170127833&w=2
>
> >>Only people who change one of these files
> >
> >Today, this only applies to those that *check the rebuild firmware*
> >box.
>
> Which the broken timestamp check encourages people to do.
>
> >What again are you trying to fix? It looks to me like you are simply
> >trying to make it harder for people actually working on the aic7xxx
> >driver to have proper dependencies.
>
> The patch still works for anybody changing the aic7xxx firmware or the
> aicasm code. Any change to the generated files or the aicasm files now
> forces a rebuild, the option is not required. Only people changing
> aic7xxx firmware are affected, instead of everybody.
>
> Bottom line: the current method relies on unreliable timestamps,
> produces spurious warning messages and causes problems for everybody
> using source control except for you. The new method is clean. And as
> kbuild maintainer, that is the way I want it to be done.
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
next prev parent reply other threads:[~2001-06-23 4:16 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-06-22 17:52 Cleanup kbuild for aic7xxx Keith Owens
2001-06-22 19:39 ` Justin T. Gibbs
2001-06-23 0:50 ` Keith Owens
2001-06-23 1:20 ` J . A . Magallon
2001-06-23 1:54 ` Keith Owens
2001-06-23 2:38 ` Justin T. Gibbs
2001-06-23 4:19 ` D. Stimits
2001-06-23 1:32 ` David Ford
2001-06-23 2:46 ` Justin T. Gibbs
2001-06-23 2:57 ` David Ford
2001-06-23 3:07 ` Justin T. Gibbs
2001-06-23 3:57 ` David Ford
2001-06-23 5:10 ` Justin T. Gibbs
2001-06-23 4:41 ` David Ford
2001-06-23 5:11 ` Justin T. Gibbs
2001-06-23 5:58 ` [working] Re: Cleanup kbuild for aic7xxx (attn: Alan & Doug) David Ford
2001-06-23 4:58 ` Cleanup kbuild for aic7xxx David Ford
2001-06-23 2:34 ` Justin T. Gibbs
2001-06-23 5:22 ` Keith Owens
2001-06-25 18:22 ` Justin T. Gibbs
2001-06-26 2:34 ` Keith Owens
2001-06-26 4:27 ` Justin T. Gibbs
2001-06-23 4:17 ` D. Stimits [this message]
2001-06-23 4:54 ` Keith Owens
2001-06-23 5:14 ` Justin T. Gibbs
2001-06-23 5:34 ` Keith Owens
2001-06-23 5:04 ` Justin T. Gibbs
2001-06-23 5:41 ` D. Stimits
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=3B341848.1EF6DA3B@idcomm.com \
--to=stimits@idcomm.com \
--cc=linux-kernel@vger.kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox