All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rik Faith <faith@valinux.com>
To: Keith Owens <kaos@ocs.com.au>
Cc: Linus Torvalds <torvalds@transmeta.com>,
	Kernel Mailing List <linux-kernel@vger.kernel.org>,
	DRI Development <dri-devel@lists.sourceforge.net>
Subject: Re: Happy new year^H^H^H^Hkernel..
Date: Tue, 2 Jan 2001 16:18:15 -0500 (EST)	[thread overview]
Message-ID: <14930.17815.720457.433064@light.alephnull.com> (raw)
In-Reply-To: [Keith Owens <kaos@ocs.com.au>] Tue  2 Jan 2001 08:32:45 +1100
In-Reply-To: <Pine.LNX.4.10.10101010938590.2892-100000@penguin.transmeta.com> <9103.978384765@ocs3.ocs-net>

On Tue  2 Jan 2001 08:32:45 +1100,
   Keith Owens <kaos@ocs.com.au> wrote:
> On Mon, 1 Jan 2001 09:39:38 -0800 (PST), 
> Linus Torvalds <torvalds@transmeta.com> wrote:
> >On 1 Jan 2001, Adam Sampson wrote:
> >> 
> >> It appears to work (even with the reiserfs patch with the obvious
> >> Makefile tweak), but the drm modules have unresolved symbols:
> >
> >Does this fix it for you (do a "make clean" before re-building your tree)?
> >
> >		Linus
> >
> >----
> >--- v2.4.0-prerelease/linux/drivers/char/drm/Makefile	Mon Jan  1 09:38:35 2001
> >+++ linux/drivers/char/drm/Makefile	Mon Jan  1 09:38:04 2001
> >@@ -44,22 +44,22 @@
> > mga-objs   := mga_drv.o   mga_dma.o     mga_context.o  mga_bufs.o  mga_state.o
> > i810-objs  := i810_drv.o  i810_dma.o    i810_context.o i810_bufs.o
> > 
> >-obj-$(CONFIG_DRM_GAMMA) += gamma.o
> >-obj-$(CONFIG_DRM_TDFX)  += tdfx.o
> >-obj-$(CONFIG_DRM_R128)  += r128.o
> >-obj-$(CONFIG_DRM_FFB)   += ffb.o
> >-obj-$(CONFIG_DRM_MGA)   += mga.o
> >-obj-$(CONFIG_DRM_I810)  += i810.o
> >-
> >-
> > # When linking into the kernel, link the library just once. 
> > # If making modules, we include the library into each module
> > 
> > ifdef MAKING_MODULES
> >   lib = drmlib.a
> > else
> >-  obj-y += drmlib.a
> >+  extra-obj = drmlib.a  
> > endif
> >+
> >+obj-$(CONFIG_DRM_GAMMA) += gamma.o $(extra-obj)
> >+obj-$(CONFIG_DRM_TDFX)  += tdfx.o $(extra-obj)
> >+obj-$(CONFIG_DRM_R128)  += r128.o $(extra-obj)
> >+obj-$(CONFIG_DRM_FFB)   += ffb.o $(extra-obj)
> >+obj-$(CONFIG_DRM_MGA)   += mga.o $(extra-obj)
> >+obj-$(CONFIG_DRM_I810)  += i810.o $(extra-obj)
> >+
> > 
> > include $(TOPDIR)/Rules.make
> 
> That will break for anybody compiling a DRM card into the kernel and
> compiling a second DRM card as a module.  drmlib.a will get a split
> personality, it will be compiled twice, once for kernel and once for
> module, which version actually gets linked will depend on the phase of
> the moon.  Either that or it only gets compiled for kernel, which is
> where we came in.
> 
> DRM maintainers: can we remove this restriction on needing multiple
> copies of the library?  It makes no sense anyway.  If you build a new
> library with the same function names then you cannot have two DRM cards
> built into the kernel, the function names will collide within vmlinux.
> So you have to use different function names for a new library, but then the
> old cards can share the old library and the new cards can share the new
> library, i.e. there is no need for each driver to have its own copy of
> the library.
> 
> I strongly recommend that you remove the restriction on having multiple
> copies of the library.  Then Adam J. Richter's patch does the job
> nicely, making drmlib.a a helper module.

We plan to remove the need to have multiple copies of drmlib.a and make
the kernel Makefile fully compatible with the 2.4 make system -- but we
haven't finished this work yet.  With this new work, however, the
end-user will still load a single module (e.g., tdfx.o), just like now.
(Loading a single kernel module is a significant win when dealing with
end users: there is no possibility of version skew or of having two
modules that were compiled with different options.)

Linus -- Please use your patch or Keith Owens' patch as a bandaid to
solve this problem until we can do it the right way.  Whatever patch you
select, please do *NOT* make drmlib into a separate helper module --
this will only lead to user confusion (especially since we'll move back
to a single-module solution soon).  From the user's standpoint, I'm not
concerned that you can't mix modules with in-kernel versions, since most
users don't do that [and we could fix the configuration file to prevent
this -- that's another way to bandage this problem that I'll send you a
patch for tomorrow].  I am very concerned that users will see us move
from 1 DRM module to 2 and then back to 1 -- that would be very
confusing for them.

--Rik
-
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/

  reply	other threads:[~2001-01-02 21:49 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2000-12-31 20:24 Happy new year^H^H^H^Hkernel Linus Torvalds
2001-01-01  2:14 ` Adam Sampson
2001-01-01 17:39   ` Linus Torvalds
2001-01-01 19:15     ` Frank Jacobberger
2001-01-01 21:32     ` Keith Owens
2001-01-02 21:18       ` Rik Faith [this message]
2001-01-02 21:37         ` Alan Cox
2001-01-02 20:40     ` Adam Sampson
2001-01-01 19:12 ` Daniel Phillips
2001-01-02  2:51 ` Gerold Jury
2001-01-02 11:55   ` Kurt Roeckx
2001-01-02 17:25   ` David Woodhouse
2001-01-02 22:37   ` Gerold Jury
2001-01-02 22:55     ` Kai Germaschewski
2001-01-03  0:38       ` Gerold Jury
2001-01-03 16:07       ` Hugh Dickins
2001-01-03 17:50       ` Eric W. Biederman
2001-01-03 22:06         ` Kai Germaschewski
2001-01-03 22:32           ` Russell King
2001-01-04 12:03             ` Eric W. Biederman
2001-01-02 18:14 ` Matthias Andree
2001-01-02 18:32   ` Richard B. Johnson
2001-01-02 21:44   ` Andrzej Krzysztofowicz
2001-01-02 18:53 ` Dominik Kubla
  -- strict thread matches above, loose matches on Subject: below --
2001-01-01  0:16 Ray Strode
2001-01-01  2:56 Ray Strode
     [not found] <20010102190651.C26503@Marvin.DL8BCU.ampr.org>
2001-01-02 21:16 ` Kai Germaschewski
     [not found] <3A522A57.3050307@grips.com>
2001-01-03  0:37 ` David Woodhouse

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=14930.17815.720457.433064@light.alephnull.com \
    --to=faith@valinux.com \
    --cc=dri-devel@lists.sourceforge.net \
    --cc=kaos@ocs.com.au \
    --cc=linux-kernel@vger.kernel.org \
    --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 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.