public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Keith Owens <kaos@ocs.com.au>
To: Linus Torvalds <torvalds@transmeta.com>
Cc: Russell King <rmk@arm.linux.org.uk>,
	Jeff Garzik <jgarzik@mandrakesoft.com>,
	Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: test10-pre7
Date: Wed, 01 Nov 2000 13:35:46 +1100	[thread overview]
Message-ID: <21820.973046146@ocs3.ocs-net> (raw)
In-Reply-To: Your message of "Tue, 31 Oct 2000 09:31:09 -0800." <Pine.LNX.4.10.10010310930110.6866-100000@penguin.transmeta.com>

On Tue, 31 Oct 2000 09:31:09 -0800 (PST), 
Linus Torvalds <torvalds@transmeta.com> wrote:
>On Wed, 1 Nov 2000, Keith Owens wrote:
>>
>> LINK_FIRST is processed in the order it is specified, so a.o will be
>> linked before z.o when both are present.  See the patch.
>
>So why don't you do the same thing for obj-y, then?
>
>Why can't you do
>
>	LINK_FIRST=$(obj-y)
>
>and be done with it?

You are assuming that every object in obj-y has a link order
requirement.  This is *not* true.  To use your own example

  O_OBJS is all objects.
  OX_OBJS is the subset of O_OBJS that have SYMTABS.
  LINK_FIRST is the subset of O_OBJS that have link order dependencies
  and must be linked first if present.
  LINK_LAST is the subset of O_OBJS that have link order dependencies
  and must be linked last if present.

You see - OX_OBJS, LINK_FIRST, LINK_LAST are subset indicators which
modify the set of O_OBJS.

>You need to have 
>	LINK_FIRST1
>	LINK_FIRST2
>	LINK_FIRST3
>	...
>etc to get the proper ordering.

No.  LINK_FIRST := $(LINK_FIRST1) $(LINK_FIRST2) $(LINK_FIRST3)
The existing declaration order is a linear list so LINK_FIRST can
always be a linear list, no need for multiple lists.  If you really did
need multiple LINK_FIRSTn entries than the existing single order would
not be good enough either.

In almost all cases, LINK_FIRST will be one or two objects, LINK_LAST
will be zero, one or two objects.  The rest of the objects will have no
link order dependencies.  Some Makefiles already sort their obj-y list
because they have _zero_ link order requirements, they have no problems.

Look at the possible cases :-

* No link order requirements.  Do not specify LINK_FIRST/LAST.

  Object A must precede B, C must precede D, no other dependencies, in
  particular A and C can be in any order, B and D can be in any order.
    LINK_FIRST := A.o C.o
  or 
    LINK_FIRST := C.o A.o
  You do not specify _all_ the ordering, just the ones that must come
  first.  The rest of the order drops out automatically.

* Card foo is supported by drivers baz, bar, foop.  Try baz last.
  LINK_LAST := baz.o.
  You do not specify _all_ the ordering, just the ones that must come
  last.  The rest of the order drops out automatically.

* SCSI.  This is poorly documented (one of the problems that LINK_xxx
  will solve) but AFAIK the requirements are
    buslogic must be before aha1542
    NCR53c406a must be before qlogic
    st, sd_mod, sr_mod, sg must be after all drivers.
  LINK_FIRST := BusLogic.o NCR53c406a.o
  LINK_LAST  := st.o sd_mod.o sr_mod.o sg.o 

>In many other cases, like SCSI, we need almost _total_ ordering. For such
>a case, theer is no "first" or "last" - there is a well-specific ORDER.

I refuse to believe that SCSI needs a total order.  There are only a
few inter driver problems that require the probe to run in a specific
order.  The rest of the drivers can run in any order.

If all of the 82 config options in SCSI really need to be in that exact
order, where is it documented and why do they need to be in that order?
Having a single fixed probe order to handle machines with mutiple types
of SCSI cards is not a good enough reason.  People with multiple SCSI
cards already change the order of scsi entries to get the probe order
that suits them, LINK_FIRST will make that even easier.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/

  parent reply	other threads:[~2000-11-01  2:36 UTC|newest]

Thread overview: 71+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2000-10-30 19:32 test10-pre7 Linus Torvalds
2000-10-30 20:34 ` [PATCH] test10-pre7 Alexander Viro
2000-10-30 21:02   ` Linus Torvalds
2000-10-30 21:23     ` Alexander Viro
2000-10-30 22:01       ` Alexander Viro
2000-10-30 23:05         ` Linus Torvalds
2000-10-30 23:14           ` Alexander Viro
2000-10-30 23:17             ` Linus Torvalds
2000-10-30 22:21       ` Linus Torvalds
2000-10-30 22:06   ` Rik van Riel
2000-10-31 10:05   ` John Kennedy
2000-10-30 21:37 ` test10-pre7 Keith Owens
2000-10-30 22:01   ` test10-pre7 Jeff Garzik
2000-10-30 22:06     ` test10-pre7 Keith Owens
2000-10-30 22:13       ` test10-pre7 Jeff Garzik
2000-10-30 22:24     ` test10-pre7 Linus Torvalds
2000-10-30 22:41       ` test10-pre7 Keith Owens
2000-10-30 22:51         ` test10-pre7 Linus Torvalds
2000-10-30 23:02           ` test10-pre7 Jeff Garzik
2000-10-30 23:04             ` test10-pre7 Keith Owens
2000-10-30 23:08             ` test10-pre7 Linus Torvalds
2000-10-30 23:03           ` test10-pre7 Keith Owens
2000-10-30 23:15             ` test10-pre7 Linus Torvalds
2000-10-30 23:32               ` test10-pre7 Christoph Hellwig
2000-10-30 23:40                 ` test10-pre7 Linus Torvalds
2000-10-30 23:45                   ` test10-pre7 Christoph Hellwig
2000-10-30 23:51                     ` test10-pre7 Linus Torvalds
2000-10-30 23:57                       ` test10-pre7 Christoph Hellwig
2000-10-31  0:47                         ` test10-pre7 Linus Torvalds
2000-10-31  1:01                           ` test10-pre7 Christoph Hellwig
2000-10-31  2:54                             ` test10-pre7 Linus Torvalds
2000-10-31  1:49                           ` test10-pre7 Keith Owens
2000-10-31  2:07                             ` test10-pre7 Keith Owens
2000-10-31  2:58                             ` test10-pre7 Linus Torvalds
2000-10-31 13:55                               ` test10-pre7 Peter Samuelson
2000-10-31 17:29                                 ` test10-pre7 Linus Torvalds
2000-10-31 17:38                                   ` test10-pre7 H. Peter Anvin
2000-10-31 19:51                                     ` test10-pre7 Horst von Brand
2000-11-01  2:32                                   ` test10-pre7 Peter Samuelson
2000-10-31  4:57                             ` test10-pre7 Rusty Russell
2000-10-31  6:10                               ` test10-pre7 Linus Torvalds
2000-10-30 23:38               ` test10-pre7 Keith Owens
2000-10-30 23:47                 ` test10-pre7 Linus Torvalds
2000-10-31  0:03                   ` test10-pre7 Keith Owens
2000-10-31  9:37                 ` test10-pre7 Russell King
2000-10-31 14:02                   ` test10-pre7 Keith Owens
2000-10-31 14:16                     ` test10-pre7 Peter Samuelson
2000-10-31 17:31                     ` test10-pre7 Linus Torvalds
2000-10-31 19:28                       ` test10-pre7 Russell King
2000-10-31 20:59                         ` test10-pre7 Linus Torvalds
2000-11-01  0:16                           ` test10-pre7 (LINK ordering) Randy Dunlap
2000-11-01  0:52                             ` Jeff Garzik
2000-11-01  3:06                         ` test10-pre7 Peter Samuelson
2000-11-01  2:35                       ` Keith Owens [this message]
2000-11-01 12:46                         ` test10-pre7 Alan Cox
2000-10-31 11:59               ` test10-pre7 Peter Samuelson
2000-10-31 21:01                 ` test10-pre7 John Alvord
2000-11-01  3:30                   ` test10-pre7 Peter Samuelson
2000-10-31  8:18       ` test10-pre7 Rogier Wolff
  -- strict thread matches above, loose matches on Subject: below --
2000-10-31  0:52 test10-pre7 Michael Elizabeth Chastain
2000-10-31  1:05 ` test10-pre7 Christoph Hellwig
2000-10-31 16:15 test10-pre7 Vladislav Malyshkin
2000-10-31 16:45 ` test10-pre7 Peter Samuelson
2000-10-31 18:07   ` test10-pre7 Vladislav Malyshkin
2000-10-31 18:38     ` test10-pre7 Linus Torvalds
2000-10-31 19:16       ` test10-pre7 H. Peter Anvin
2000-11-01  3:15         ` test10-pre7 Peter Samuelson
2000-11-01  6:11           ` test10-pre7 H. Peter Anvin
2000-11-01  6:31             ` test10-pre7 Peter Samuelson
2000-11-01  7:42     ` test10-pre7 Peter Samuelson
2000-11-03 16:26       ` test10-pre7 Vladislav Malyshkin

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=21820.973046146@ocs3.ocs-net \
    --to=kaos@ocs.com.au \
    --cc=jgarzik@mandrakesoft.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rmk@arm.linux.org.uk \
    --cc=torvalds@transmeta.com \
    /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