2004-09-03 14:25:31

by Paolo Ornati

[permalink] [raw]
Subject: [PATCH] tdfxfb linkage fix v2.0 (the previous one is broken)

The patch I've sent to fix tdfx frame buffer linkage is broken because it
can leads to linking errors like this one:

LD drivers/video/built-in.o
drivers/video/tdfxfb_lib.o(.text+0x13e0): In function `cfb_copyarea':
: multiple definition of `cfb_copyarea'
drivers/video/cfbcopyarea.o(.text+0x6e0): first defined here
drivers/video/tdfxfb_lib.o(.text+0x7c0): In function `bitfill32_rev':
: multiple definition of `bitfill32_rev'
drivers/video/cfbfillrect.o(.text+0x200): first defined here
drivers/video/tdfxfb_lib.o(.text+0x690): In function `bitfill':
: multiple definition of `bitfill'
drivers/video/cfbfillrect.o(.text+0xd0): first defined here
drivers/video/tdfxfb_lib.o(.text+0x8b0): In function `bitfill_rev':
: multiple definition of `bitfill_rev'
drivers/video/cfbfillrect.o(.text+0x2f0): first defined here
drivers/video/tdfxfb_lib.o(.text+0x5c0): In function `bitfill32':
: multiple definition of `bitfill32'
drivers/video/cfbfillrect.o(.text+0x0): first defined here
drivers/video/tdfxfb_lib.o(.text+0x0): In function `cfb_imageblit':
: multiple definition of `cfb_imageblit'
drivers/video/cfbimgblt.o(.text+0x0): first defined here
drivers/video/tdfxfb_lib.o(.text+0x9f0): In function `cfb_fillrect':
: multiple definition of `cfb_fillrect'
drivers/video/cfbfillrect.o(.text+0x430): first defined here
make[1]: *** [drivers/video/built-in.o] Error 1
make: *** [drivers/video/] Error 2


This patch really fixes tdfxfb linkage, please apply:

--- linux-mm/drivers/video/Makefile.orig 2004-09-03 15:25:08.527030328 +0200
+++ linux-mm/drivers/video/Makefile 2004-09-03 15:26:57.106523736 +0200
@@ -34,10 +34,9 @@ obj-$(CONFIG_FB_CYBER) += cyb
obj-$(CONFIG_FB_CYBER2000) += cyber2000fb.o cfbfillrect.o cfbcopyarea.o cfbimgblt.o
obj-$(CONFIG_FB_GBE) += gbefb.o cfbfillrect.o cfbcopyarea.o cfbimgblt.o
obj-$(CONFIG_FB_SGIVW) += sgivwfb.o cfbfillrect.o cfbcopyarea.o cfbimgblt.o
-obj-$(CONFIG_FB_3DFX) += tdfxfb.o tdfxfb_lib.o
-tdfxfb_lib-y := cfbimgblt.o
+obj-$(CONFIG_FB_3DFX) += tdfxfb.o cfbimgblt.o
ifneq ($(CONFIG_FB_3DFX_ACCEL),y)
-tdfxfb_lib-y += cfbfillrect.o cfbcopyarea.o
+obj-$(CONFIG_FB_3DFX) += cfbfillrect.o cfbcopyarea.o
endif
obj-$(CONFIG_FB_MAC) += macfb.o macmodes.o cfbfillrect.o cfbcopyarea.o cfbimgblt.o
obj-$(CONFIG_FB_HP300) += hpfb.o cfbfillrect.o cfbimgblt.o


--
Paolo Ornati
Gentoo Linux (kernel 2.6.8-gentoo-r3)