When DRM_SIMPLEDRM=m, all of FB_CFB_{FILLRECT,COPYAREA,IMAGEBLIT} are =m, causing undefined references in fbdev/simplefb.o.
By restricting FB_SIMPLEFB to be set only when DRM_SIMPLEDRM is not set, the FB_CFB_* symbols are =y and the build completes without these undefined references.
IOW, really "disable simplefb if simpledrm has been selected".
or1k-linux-ld: drivers/video/fbdev/simplefb.o:(.rodata+0x2c): undefined reference to `cfb_fillrect' or1k-linux-ld: drivers/video/fbdev/simplefb.o:(.rodata+0x30): undefined reference to `cfb_copyarea' or1k-linux-ld: drivers/video/fbdev/simplefb.o:(.rodata+0x34): undefined reference to `cfb_imageblit'
Fixes: 11e8f5fd223b ("drm: Add simpledrm driver") Signed-off-by: Randy Dunlap rdunlap@infradead.org Reported-by: kernel test robot lkp@intel.com Cc: Hans de Goede hdegoede@redhat.com Cc: linux-fbdev@vger.kernel.org Cc: dri-devel@lists.freedesktop.org Cc: Thomas Zimmermann tzimmermann@suse.de --- drivers/video/fbdev/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
--- linux-next-20210716.orig/drivers/video/fbdev/Kconfig +++ linux-next-20210716/drivers/video/fbdev/Kconfig @@ -2192,7 +2192,7 @@ config FB_HYPERV
config FB_SIMPLE bool "Simple framebuffer support" - depends on (FB = y) && !DRM_SIMPLEDRM + depends on (FB = y) && DRM_SIMPLEDRM=n select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT
Hi Randy,
On Mon, Jul 19, 2021 at 4:34 AM Randy Dunlap rdunlap@infradead.org wrote:
When DRM_SIMPLEDRM=m, all of FB_CFB_{FILLRECT,COPYAREA,IMAGEBLIT} are =m,
Why does that happen? FB_SIMPLE does select FB_CFB_*, so all of the latter should be builtin? Do I need my morning coffee? I'm about to fetch it...
causing undefined references in fbdev/simplefb.o.
By restricting FB_SIMPLEFB to be set only when DRM_SIMPLEDRM is not set, the FB_CFB_* symbols are =y and the build completes without these undefined references.
IOW, really "disable simplefb if simpledrm has been selected".
That does make sense, regardless of my question above ;-)
or1k-linux-ld: drivers/video/fbdev/simplefb.o:(.rodata+0x2c): undefined reference to `cfb_fillrect' or1k-linux-ld: drivers/video/fbdev/simplefb.o:(.rodata+0x30): undefined reference to `cfb_copyarea' or1k-linux-ld: drivers/video/fbdev/simplefb.o:(.rodata+0x34): undefined reference to `cfb_imageblit'
Fixes: 11e8f5fd223b ("drm: Add simpledrm driver") Signed-off-by: Randy Dunlap rdunlap@infradead.org
--- linux-next-20210716.orig/drivers/video/fbdev/Kconfig +++ linux-next-20210716/drivers/video/fbdev/Kconfig @@ -2192,7 +2192,7 @@ config FB_HYPERV
config FB_SIMPLE bool "Simple framebuffer support"
depends on (FB = y) && !DRM_SIMPLEDRM
depends on (FB = y) && DRM_SIMPLEDRM=n select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT
Gr{oetje,eeting}s,
Geert
On 7/19/21 1:06 AM, Geert Uytterhoeven wrote:
Hi Randy,
On Mon, Jul 19, 2021 at 4:34 AM Randy Dunlap rdunlap@infradead.org wrote:
When DRM_SIMPLEDRM=m, all of FB_CFB_{FILLRECT,COPYAREA,IMAGEBLIT} are =m,
Why does that happen? FB_SIMPLE does select FB_CFB_*, so all of the latter should be builtin? Do I need my morning coffee? I'm about to fetch it...
Hi Geert,
I have no idea why this happens. It feels like a kconfig bug to me.
causing undefined references in fbdev/simplefb.o.
By restricting FB_SIMPLEFB to be set only when DRM_SIMPLEDRM is not set, the FB_CFB_* symbols are =y and the build completes without these undefined references.
IOW, really "disable simplefb if simpledrm has been selected".
That does make sense, regardless of my question above ;-)
or1k-linux-ld: drivers/video/fbdev/simplefb.o:(.rodata+0x2c): undefined reference to `cfb_fillrect' or1k-linux-ld: drivers/video/fbdev/simplefb.o:(.rodata+0x30): undefined reference to `cfb_copyarea' or1k-linux-ld: drivers/video/fbdev/simplefb.o:(.rodata+0x34): undefined reference to `cfb_imageblit'
Fixes: 11e8f5fd223b ("drm: Add simpledrm driver") Signed-off-by: Randy Dunlap rdunlap@infradead.org
--- linux-next-20210716.orig/drivers/video/fbdev/Kconfig +++ linux-next-20210716/drivers/video/fbdev/Kconfig @@ -2192,7 +2192,7 @@ config FB_HYPERV
config FB_SIMPLE bool "Simple framebuffer support"
depends on (FB = y) && !DRM_SIMPLEDRM
depends on (FB = y) && DRM_SIMPLEDRM=n select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT
Gr{oetje,eeting}s,
Geert
dri-devel@lists.freedesktop.org