[PATCH] Re: MatroxFB support can't be compiled into kernel

Petr Vandrovec (vandrove@vc.cvut.cz)
Fri, 26 Jan 2001 15:32:47 +0100


On 26 Jan 01 at 14:29, Bernhard Rosenkraenzer wrote:
>
> Subject says it all - works as a module, but can't be compiled into the
> kernel because of duplicate definitions, caused by several files including
> matroxfb_base.h which in turn defines global_disp.
>
> Patch attached.

Oops. I did not tried matroxfb without multihead for so long... But...
Should not (1) compiler optimize them out, as global_disp is used only
by matroxfb_base.c and (2) linker merge them together? I was under
impression that kernel uses common storage for uninitialized variables...
I'm sure that it worked sometime in the past...

Anyway, I preffer patch bellow, as global_disp is used only by
matroxfb_base.c, and only if CONFIG_FB_MATROX_MULTIHEAD is not set...

Linus, original complaint was against 2.4.0-ac11 - I do not know, whether
Alan uses some new linker scripts or what's going on. In any case, can you
apply this too? There is no reason why matrox's 'global_disp' should polute
global namespace.
Best regards,
Petr Vandrovec
vandrove@vc.cvut.cz

diff -urN linux/drivers/video/matrox/matroxfb_base.c linux/drivers/video/matrox/matroxfb_base.c
--- linux/drivers/video/matrox/matroxfb_base.c Fri Dec 29 23:07:23 2000
+++ linux/drivers/video/matrox/matroxfb_base.c Fri Jan 26 15:23:46 2001
@@ -2005,6 +2005,7 @@
u_int32_t cmd;
#ifndef CONFIG_FB_MATROX_MULTIHEAD
static int registered = 0;
+ static struct display global_disp;
#endif
DBG("matroxfb_probe")

diff -urN linux/drivers/video/matrox/matroxfb_base.h linux/drivers/video/matrox/matroxfb_base.h
--- linux/drivers/video/matrox/matroxfb_base.h Fri Dec 29 23:07:23 2000
+++ linux/drivers/video/matrox/matroxfb_base.h Fri Jan 26 15:22:53 2001
@@ -589,7 +589,6 @@
#else

extern struct matrox_fb_info matroxfb_global_mxinfo;
-struct display global_disp;

#define ACCESS_FBINFO(x) (matroxfb_global_mxinfo.x)
#define ACCESS_FBINFO2(info, x) (matroxfb_global_mxinfo.x)

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