linux-fbdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Re: build failure in linux-next: offb missing fb helpers
       [not found] <20221118150351.GV28810@kitsune.suse.cz>
@ 2022-11-19  6:20 ` Randy Dunlap
  2022-11-19 13:27   ` Masahiro Yamada
  0 siblings, 1 reply; 5+ messages in thread
From: Randy Dunlap @ 2022-11-19  6:20 UTC (permalink / raw)
  To: Michal Suchánek, linux-kernel, Masahiro Yamada
  Cc: linuxppc-dev, linux-fbdev, linux-kbuild

Hi--

[adding Masahiro-san]


On 11/18/22 07:03, Michal Suchánek wrote:
> Hello,
> 
> I am seeing these errors:
> 
> [ 3825s]   AR      built-in.a
> [ 3827s]   AR      vmlinux.a
> [ 3835s]   LD      vmlinux.o
> [ 3835s]   OBJCOPY modules.builtin.modinfo
> [ 3835s]   GEN     modules.builtin
> [ 3835s]   GEN     .vmlinux.objs
> [ 3848s]   MODPOST Module.symvers
> [ 3848s]   CC      .vmlinux.export.o
> [ 3849s]   UPD     include/generated/utsversion.h
> [ 3849s]   CC      init/version-timestamp.o
> [ 3849s]   LD      .tmp_vmlinux.btf
> [ 3864s] ld: drivers/video/fbdev/offb.o:(.data.rel.ro+0x58): undefined
> reference to `cfb_fillrect'
> [ 3864s] ld: drivers/video/fbdev/offb.o:(.data.rel.ro+0x60): undefined
> reference to `cfb_copyarea'
> [ 3864s] ld: drivers/video/fbdev/offb.o:(.data.rel.ro+0x68): undefined
> reference to `cfb_imageblit'
> 
> cfb_fillrect is provided by drivers/video/fbdev/core/cfbfillrect.c
> 
> It is compiled when CONFIG_FB_CFB_FILLRECT
> drivers/video/fbdev/core/Makefile:obj-$(CONFIG_FB_CFB_FILLRECT)  += cfbfillrect.o
> 
> drivers/video/fbdev/Makefile:obj-$(CONFIG_FB_OF)               += offb.o
> is compiled when CONFIG_FB_OF
> 
> It selects CONFIG_FB_CFB_FILLRECT
> config FB_OF
>         bool "Open Firmware frame buffer device support"
>         depends on (FB = y) && PPC && (!PPC_PSERIES || PCI)
>         select APERTURE_HELPERS
>         select FB_CFB_FILLRECT
>         select FB_CFB_COPYAREA
>         select FB_CFB_IMAGEBLIT
>         select FB_MACMODES
> 
> The config has FB_OF built-in and FB_CFB_FILLRECT modular
> config/ppc64le/vanilla:CONFIG_FB_CFB_FILLRECT=m
> config/ppc64le/vanilla:CONFIG_FB_CFB_COPYAREA=m
> config/ppc64le/vanilla:CONFIG_FB_CFB_IMAGEBLIT=m
> config/ppc64le/vanilla:CONFIG_FB_OF=y
> 
> It only depends on FB which mut be built-in for FB_OF
> config FB_CFB_FILLRECT
>         tristate
>         depends on FB
> 
> Is select in kconfig broken?
> 
> Attachnig the config in question.

The symbol info from xconfig says:

Symbol: FB_CFB_FILLRECT [=m]
Type : tristate
Defined at drivers/video/fbdev/Kconfig:69
Depends on: HAS_IOMEM [=y] && FB [=y]
Selected by [m]:
[deleted]
- FB_OF [=y] && HAS_IOMEM [=y] && FB [=y]=y && PPC [=y] && (!PPC_PSERIES [=y] || PCI [=y]) && !DRM_OFDRM [=m]

I don't see why the 'select' from (bool) FB_OF would leave FB_CFB_FILLRECT (and the others)
as =m instead of =y.

Hopefully Masahiro can shed some light on this.

-- 
~Randy

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: build failure in linux-next: offb missing fb helpers
  2022-11-19  6:20 ` build failure in linux-next: offb missing fb helpers Randy Dunlap
@ 2022-11-19 13:27   ` Masahiro Yamada
  2022-11-19 15:37     ` Michal Suchánek
  0 siblings, 1 reply; 5+ messages in thread
From: Masahiro Yamada @ 2022-11-19 13:27 UTC (permalink / raw)
  To: Randy Dunlap
  Cc: Michal Suchánek, linux-kernel, linuxppc-dev, linux-fbdev,
	linux-kbuild

On Sat, Nov 19, 2022 at 3:20 PM Randy Dunlap <rdunlap@infradead.org> wrote:
>
> Hi--
>
> [adding Masahiro-san]
>
>
> On 11/18/22 07:03, Michal Suchánek wrote:
> > Hello,
> >
> > I am seeing these errors:
> >
> > [ 3825s]   AR      built-in.a
> > [ 3827s]   AR      vmlinux.a
> > [ 3835s]   LD      vmlinux.o
> > [ 3835s]   OBJCOPY modules.builtin.modinfo
> > [ 3835s]   GEN     modules.builtin
> > [ 3835s]   GEN     .vmlinux.objs
> > [ 3848s]   MODPOST Module.symvers
> > [ 3848s]   CC      .vmlinux.export.o
> > [ 3849s]   UPD     include/generated/utsversion.h
> > [ 3849s]   CC      init/version-timestamp.o
> > [ 3849s]   LD      .tmp_vmlinux.btf
> > [ 3864s] ld: drivers/video/fbdev/offb.o:(.data.rel.ro+0x58): undefined
> > reference to `cfb_fillrect'
> > [ 3864s] ld: drivers/video/fbdev/offb.o:(.data.rel.ro+0x60): undefined
> > reference to `cfb_copyarea'
> > [ 3864s] ld: drivers/video/fbdev/offb.o:(.data.rel.ro+0x68): undefined
> > reference to `cfb_imageblit'
> >
> > cfb_fillrect is provided by drivers/video/fbdev/core/cfbfillrect.c
> >
> > It is compiled when CONFIG_FB_CFB_FILLRECT
> > drivers/video/fbdev/core/Makefile:obj-$(CONFIG_FB_CFB_FILLRECT)  += cfbfillrect.o
> >
> > drivers/video/fbdev/Makefile:obj-$(CONFIG_FB_OF)               += offb.o
> > is compiled when CONFIG_FB_OF
> >
> > It selects CONFIG_FB_CFB_FILLRECT
> > config FB_OF
> >         bool "Open Firmware frame buffer device support"
> >         depends on (FB = y) && PPC && (!PPC_PSERIES || PCI)
> >         select APERTURE_HELPERS
> >         select FB_CFB_FILLRECT
> >         select FB_CFB_COPYAREA
> >         select FB_CFB_IMAGEBLIT
> >         select FB_MACMODES
> >
> > The config has FB_OF built-in and FB_CFB_FILLRECT modular
> > config/ppc64le/vanilla:CONFIG_FB_CFB_FILLRECT=m
> > config/ppc64le/vanilla:CONFIG_FB_CFB_COPYAREA=m
> > config/ppc64le/vanilla:CONFIG_FB_CFB_IMAGEBLIT=m
> > config/ppc64le/vanilla:CONFIG_FB_OF=y
> >
> > It only depends on FB which mut be built-in for FB_OF
> > config FB_CFB_FILLRECT
> >         tristate
> >         depends on FB
> >
> > Is select in kconfig broken?
> >
> > Attachnig the config in question.
>
> The symbol info from xconfig says:
>
> Symbol: FB_CFB_FILLRECT [=m]
> Type : tristate
> Defined at drivers/video/fbdev/Kconfig:69
> Depends on: HAS_IOMEM [=y] && FB [=y]
> Selected by [m]:
> [deleted]
> - FB_OF [=y] && HAS_IOMEM [=y] && FB [=y]=y && PPC [=y] && (!PPC_PSERIES [=y] || PCI [=y]) && !DRM_OFDRM [=m]
>
> I don't see why the 'select' from (bool) FB_OF would leave FB_CFB_FILLRECT (and the others)
> as =m instead of =y.
>
> Hopefully Masahiro can shed some light on this.
>
> --
> ~Randy


The reason is shown in your paste of help message:

"&& !DRM_OFDRM [=m]" downgrades it to "selected by m"

To aid this particular case, the following will select
FB_CFB_FILLRECT=y.




diff --git a/drivers/video/fbdev/Kconfig b/drivers/video/fbdev/Kconfig
index 66f36b69e8f3..2bcf8627819f 100644
--- a/drivers/video/fbdev/Kconfig
+++ b/drivers/video/fbdev/Kconfig
@@ -458,7 +458,7 @@ config FB_ATARI
 config FB_OF
        bool "Open Firmware frame buffer device support"
        depends on (FB = y) && PPC && (!PPC_PSERIES || PCI)
-       depends on !DRM_OFDRM
+       depends on DRM_OFDRM != y
        select APERTURE_HELPERS
        select FB_CFB_FILLRECT
        select FB_CFB_COPYAREA




Or, perhaps "depends on DRM_OFDRM = n"
I do not know the intention of this dependency.

Recommendation is to use "depends on" instead of "select" though.



BTW, this is similar to what you asked before.

https://lore.kernel.org/linux-kbuild/e1a6228d-1341-6264-d97a-e2bd52a65c82@infradead.org/


I tried to fix it in the past, but the issue was not as shallow as I
had expected.
I did not get around to revisiting this topic.

https://patchwork.kernel.org/project/linux-kbuild/patch/1543216969-2227-1-git-send-email-yamada.masahiro@socionext.com/










--
Best Regards
Masahiro Yamada

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: build failure in linux-next: offb missing fb helpers
  2022-11-19 13:27   ` Masahiro Yamada
@ 2022-11-19 15:37     ` Michal Suchánek
  2022-11-19 18:15       ` Randy Dunlap
  0 siblings, 1 reply; 5+ messages in thread
From: Michal Suchánek @ 2022-11-19 15:37 UTC (permalink / raw)
  To: Masahiro Yamada
  Cc: Randy Dunlap, linux-kernel, linuxppc-dev, linux-fbdev,
	linux-kbuild, Thomas Zimmermann

Hello,

On Sat, Nov 19, 2022 at 10:27:04PM +0900, Masahiro Yamada wrote:
> On Sat, Nov 19, 2022 at 3:20 PM Randy Dunlap <rdunlap@infradead.org> wrote:
> >
> > Hi--
> >
> > [adding Masahiro-san]
> >
> >
> > On 11/18/22 07:03, Michal Suchánek wrote:
> > > Hello,
> > >
> > > I am seeing these errors:
> > >
> > > [ 3825s]   AR      built-in.a
> > > [ 3827s]   AR      vmlinux.a
> > > [ 3835s]   LD      vmlinux.o
> > > [ 3835s]   OBJCOPY modules.builtin.modinfo
> > > [ 3835s]   GEN     modules.builtin
> > > [ 3835s]   GEN     .vmlinux.objs
> > > [ 3848s]   MODPOST Module.symvers
> > > [ 3848s]   CC      .vmlinux.export.o
> > > [ 3849s]   UPD     include/generated/utsversion.h
> > > [ 3849s]   CC      init/version-timestamp.o
> > > [ 3849s]   LD      .tmp_vmlinux.btf
> > > [ 3864s] ld: drivers/video/fbdev/offb.o:(.data.rel.ro+0x58): undefined
> > > reference to `cfb_fillrect'
> > > [ 3864s] ld: drivers/video/fbdev/offb.o:(.data.rel.ro+0x60): undefined
> > > reference to `cfb_copyarea'
> > > [ 3864s] ld: drivers/video/fbdev/offb.o:(.data.rel.ro+0x68): undefined
> > > reference to `cfb_imageblit'
> > >
> > > cfb_fillrect is provided by drivers/video/fbdev/core/cfbfillrect.c
> > >
> > > It is compiled when CONFIG_FB_CFB_FILLRECT
> > > drivers/video/fbdev/core/Makefile:obj-$(CONFIG_FB_CFB_FILLRECT)  += cfbfillrect.o
> > >
> > > drivers/video/fbdev/Makefile:obj-$(CONFIG_FB_OF)               += offb.o
> > > is compiled when CONFIG_FB_OF
> > >
> > > It selects CONFIG_FB_CFB_FILLRECT
> > > config FB_OF
> > >         bool "Open Firmware frame buffer device support"
> > >         depends on (FB = y) && PPC && (!PPC_PSERIES || PCI)
> > >         select APERTURE_HELPERS
> > >         select FB_CFB_FILLRECT
> > >         select FB_CFB_COPYAREA
> > >         select FB_CFB_IMAGEBLIT
> > >         select FB_MACMODES
> > >
> > > The config has FB_OF built-in and FB_CFB_FILLRECT modular
> > > config/ppc64le/vanilla:CONFIG_FB_CFB_FILLRECT=m
> > > config/ppc64le/vanilla:CONFIG_FB_CFB_COPYAREA=m
> > > config/ppc64le/vanilla:CONFIG_FB_CFB_IMAGEBLIT=m
> > > config/ppc64le/vanilla:CONFIG_FB_OF=y
> > >
> > > It only depends on FB which mut be built-in for FB_OF
> > > config FB_CFB_FILLRECT
> > >         tristate
> > >         depends on FB
> > >
> > > Is select in kconfig broken?
> > >
> > > Attachnig the config in question.
> >
> > The symbol info from xconfig says:
> >
> > Symbol: FB_CFB_FILLRECT [=m]
> > Type : tristate
> > Defined at drivers/video/fbdev/Kconfig:69
> > Depends on: HAS_IOMEM [=y] && FB [=y]
> > Selected by [m]:
> > [deleted]
> > - FB_OF [=y] && HAS_IOMEM [=y] && FB [=y]=y && PPC [=y] && (!PPC_PSERIES [=y] || PCI [=y]) && !DRM_OFDRM [=m]
> >
> > I don't see why the 'select' from (bool) FB_OF would leave FB_CFB_FILLRECT (and the others)
> > as =m instead of =y.
> >
> > Hopefully Masahiro can shed some light on this.
> >
> > --
> > ~Randy
> 
> 
> The reason is shown in your paste of help message:
> 
> "&& !DRM_OFDRM [=m]" downgrades it to "selected by m"
> 
> To aid this particular case, the following will select
> FB_CFB_FILLRECT=y.
> 
> 
> 
> 
> diff --git a/drivers/video/fbdev/Kconfig b/drivers/video/fbdev/Kconfig
> index 66f36b69e8f3..2bcf8627819f 100644
> --- a/drivers/video/fbdev/Kconfig
> +++ b/drivers/video/fbdev/Kconfig
> @@ -458,7 +458,7 @@ config FB_ATARI
>  config FB_OF
>         bool "Open Firmware frame buffer device support"
>         depends on (FB = y) && PPC && (!PPC_PSERIES || PCI)
> -       depends on !DRM_OFDRM
> +       depends on DRM_OFDRM != y
>         select APERTURE_HELPERS
>         select FB_CFB_FILLRECT
>         select FB_CFB_COPYAREA

Thanks for clarification.

This change fixess the config for me.

Michal


> Or, perhaps "depends on DRM_OFDRM = n"
> I do not know the intention of this dependency.
> 
> Recommendation is to use "depends on" instead of "select" though.
> 
> 
> 
> BTW, this is similar to what you asked before.
> 
> https://lore.kernel.org/linux-kbuild/e1a6228d-1341-6264-d97a-e2bd52a65c82@infradead.org/
> 
> 
> I tried to fix it in the past, but the issue was not as shallow as I
> had expected.
> I did not get around to revisiting this topic.
> 
> https://patchwork.kernel.org/project/linux-kbuild/patch/1543216969-2227-1-git-send-email-yamada.masahiro@socionext.com/
> 

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: build failure in linux-next: offb missing fb helpers
  2022-11-19 15:37     ` Michal Suchánek
@ 2022-11-19 18:15       ` Randy Dunlap
  2022-11-20 17:47         ` Thomas Zimmermann
  0 siblings, 1 reply; 5+ messages in thread
From: Randy Dunlap @ 2022-11-19 18:15 UTC (permalink / raw)
  To: Michal Suchánek, Masahiro Yamada
  Cc: linux-kernel, linuxppc-dev, linux-fbdev, linux-kbuild,
	Thomas Zimmermann

Hi,

On 11/19/22 07:37, Michal Suchánek wrote:
> Hello,
> 
> On Sat, Nov 19, 2022 at 10:27:04PM +0900, Masahiro Yamada wrote:
>> On Sat, Nov 19, 2022 at 3:20 PM Randy Dunlap <rdunlap@infradead.org> wrote:
>>>
>>> Hi--
>>>
>>> [adding Masahiro-san]
>>>
>>>
>>> On 11/18/22 07:03, Michal Suchánek wrote:
>>>> Hello,
>>>>
>>>> I am seeing these errors:
>>>>
>>>> [ 3825s]   AR      built-in.a
>>>> [ 3827s]   AR      vmlinux.a
>>>> [ 3835s]   LD      vmlinux.o
>>>> [ 3835s]   OBJCOPY modules.builtin.modinfo
>>>> [ 3835s]   GEN     modules.builtin
>>>> [ 3835s]   GEN     .vmlinux.objs
>>>> [ 3848s]   MODPOST Module.symvers
>>>> [ 3848s]   CC      .vmlinux.export.o
>>>> [ 3849s]   UPD     include/generated/utsversion.h
>>>> [ 3849s]   CC      init/version-timestamp.o
>>>> [ 3849s]   LD      .tmp_vmlinux.btf
>>>> [ 3864s] ld: drivers/video/fbdev/offb.o:(.data.rel.ro+0x58): undefined
>>>> reference to `cfb_fillrect'
>>>> [ 3864s] ld: drivers/video/fbdev/offb.o:(.data.rel.ro+0x60): undefined
>>>> reference to `cfb_copyarea'
>>>> [ 3864s] ld: drivers/video/fbdev/offb.o:(.data.rel.ro+0x68): undefined
>>>> reference to `cfb_imageblit'
>>>>
>>>> cfb_fillrect is provided by drivers/video/fbdev/core/cfbfillrect.c
>>>>
>>>> It is compiled when CONFIG_FB_CFB_FILLRECT
>>>> drivers/video/fbdev/core/Makefile:obj-$(CONFIG_FB_CFB_FILLRECT)  += cfbfillrect.o
>>>>
>>>> drivers/video/fbdev/Makefile:obj-$(CONFIG_FB_OF)               += offb.o
>>>> is compiled when CONFIG_FB_OF
>>>>
>>>> It selects CONFIG_FB_CFB_FILLRECT
>>>> config FB_OF
>>>>         bool "Open Firmware frame buffer device support"
>>>>         depends on (FB = y) && PPC && (!PPC_PSERIES || PCI)
>>>>         select APERTURE_HELPERS
>>>>         select FB_CFB_FILLRECT
>>>>         select FB_CFB_COPYAREA
>>>>         select FB_CFB_IMAGEBLIT
>>>>         select FB_MACMODES
>>>>
>>>> The config has FB_OF built-in and FB_CFB_FILLRECT modular
>>>> config/ppc64le/vanilla:CONFIG_FB_CFB_FILLRECT=m
>>>> config/ppc64le/vanilla:CONFIG_FB_CFB_COPYAREA=m
>>>> config/ppc64le/vanilla:CONFIG_FB_CFB_IMAGEBLIT=m
>>>> config/ppc64le/vanilla:CONFIG_FB_OF=y
>>>>
>>>> It only depends on FB which mut be built-in for FB_OF
>>>> config FB_CFB_FILLRECT
>>>>         tristate
>>>>         depends on FB
>>>>
>>>> Is select in kconfig broken?
>>>>
>>>> Attachnig the config in question.
>>>
>>> The symbol info from xconfig says:
>>>
>>> Symbol: FB_CFB_FILLRECT [=m]
>>> Type : tristate
>>> Defined at drivers/video/fbdev/Kconfig:69
>>> Depends on: HAS_IOMEM [=y] && FB [=y]
>>> Selected by [m]:
>>> [deleted]
>>> - FB_OF [=y] && HAS_IOMEM [=y] && FB [=y]=y && PPC [=y] && (!PPC_PSERIES [=y] || PCI [=y]) && !DRM_OFDRM [=m]
>>>
>>> I don't see why the 'select' from (bool) FB_OF would leave FB_CFB_FILLRECT (and the others)
>>> as =m instead of =y.
>>>
>>> Hopefully Masahiro can shed some light on this.
>>>
>>> --
>>> ~Randy
>>
>>
>> The reason is shown in your paste of help message:
>>
>> "&& !DRM_OFDRM [=m]" downgrades it to "selected by m"
>>
>> To aid this particular case, the following will select
>> FB_CFB_FILLRECT=y.
>>
>>

Thanks again for your help.

>>
>>
>> diff --git a/drivers/video/fbdev/Kconfig b/drivers/video/fbdev/Kconfig
>> index 66f36b69e8f3..2bcf8627819f 100644
>> --- a/drivers/video/fbdev/Kconfig
>> +++ b/drivers/video/fbdev/Kconfig
>> @@ -458,7 +458,7 @@ config FB_ATARI
>>  config FB_OF
>>         bool "Open Firmware frame buffer device support"
>>         depends on (FB = y) && PPC && (!PPC_PSERIES || PCI)
>> -       depends on !DRM_OFDRM
>> +       depends on DRM_OFDRM != y
>>         select APERTURE_HELPERS
>>         select FB_CFB_FILLRECT
>>         select FB_CFB_COPYAREA
> 
> Thanks for clarification.
> 
> This change fixess the config for me.


Thomas, is this change to DRM_OFDRM under FB_OF acceptable to you?


>> Or, perhaps "depends on DRM_OFDRM = n"
>> I do not know the intention of this dependency.
>>
>> Recommendation is to use "depends on" instead of "select" though.
>>
>>
>>
>> BTW, this is similar to what you asked before.
>>
>> https://lore.kernel.org/linux-kbuild/e1a6228d-1341-6264-d97a-e2bd52a65c82@infradead.org/
>>
>>
>> I tried to fix it in the past, but the issue was not as shallow as I
>> had expected.
>> I did not get around to revisiting this topic.
>>
>> https://patchwork.kernel.org/project/linux-kbuild/patch/1543216969-2227-1-git-send-email-yamada.masahiro@socionext.com/
>>

-- 
~Randy

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: build failure in linux-next: offb missing fb helpers
  2022-11-19 18:15       ` Randy Dunlap
@ 2022-11-20 17:47         ` Thomas Zimmermann
  0 siblings, 0 replies; 5+ messages in thread
From: Thomas Zimmermann @ 2022-11-20 17:47 UTC (permalink / raw)
  To: Randy Dunlap, Michal Suchánek, Masahiro Yamada
  Cc: linux-kernel, linuxppc-dev, linux-fbdev, linux-kbuild


[-- Attachment #1.1: Type: text/plain, Size: 5224 bytes --]

Hi

Am 19.11.22 um 19:15 schrieb Randy Dunlap:
> Hi,
> 
> On 11/19/22 07:37, Michal Suchánek wrote:
>> Hello,
>>
>> On Sat, Nov 19, 2022 at 10:27:04PM +0900, Masahiro Yamada wrote:
>>> On Sat, Nov 19, 2022 at 3:20 PM Randy Dunlap <rdunlap@infradead.org> wrote:
>>>>
>>>> Hi--
>>>>
>>>> [adding Masahiro-san]
>>>>
>>>>
>>>> On 11/18/22 07:03, Michal Suchánek wrote:
>>>>> Hello,
>>>>>
>>>>> I am seeing these errors:
>>>>>
>>>>> [ 3825s]   AR      built-in.a
>>>>> [ 3827s]   AR      vmlinux.a
>>>>> [ 3835s]   LD      vmlinux.o
>>>>> [ 3835s]   OBJCOPY modules.builtin.modinfo
>>>>> [ 3835s]   GEN     modules.builtin
>>>>> [ 3835s]   GEN     .vmlinux.objs
>>>>> [ 3848s]   MODPOST Module.symvers
>>>>> [ 3848s]   CC      .vmlinux.export.o
>>>>> [ 3849s]   UPD     include/generated/utsversion.h
>>>>> [ 3849s]   CC      init/version-timestamp.o
>>>>> [ 3849s]   LD      .tmp_vmlinux.btf
>>>>> [ 3864s] ld: drivers/video/fbdev/offb.o:(.data.rel.ro+0x58): undefined
>>>>> reference to `cfb_fillrect'
>>>>> [ 3864s] ld: drivers/video/fbdev/offb.o:(.data.rel.ro+0x60): undefined
>>>>> reference to `cfb_copyarea'
>>>>> [ 3864s] ld: drivers/video/fbdev/offb.o:(.data.rel.ro+0x68): undefined
>>>>> reference to `cfb_imageblit'
>>>>>
>>>>> cfb_fillrect is provided by drivers/video/fbdev/core/cfbfillrect.c
>>>>>
>>>>> It is compiled when CONFIG_FB_CFB_FILLRECT
>>>>> drivers/video/fbdev/core/Makefile:obj-$(CONFIG_FB_CFB_FILLRECT)  += cfbfillrect.o
>>>>>
>>>>> drivers/video/fbdev/Makefile:obj-$(CONFIG_FB_OF)               += offb.o
>>>>> is compiled when CONFIG_FB_OF
>>>>>
>>>>> It selects CONFIG_FB_CFB_FILLRECT
>>>>> config FB_OF
>>>>>          bool "Open Firmware frame buffer device support"
>>>>>          depends on (FB = y) && PPC && (!PPC_PSERIES || PCI)
>>>>>          select APERTURE_HELPERS
>>>>>          select FB_CFB_FILLRECT
>>>>>          select FB_CFB_COPYAREA
>>>>>          select FB_CFB_IMAGEBLIT
>>>>>          select FB_MACMODES
>>>>>
>>>>> The config has FB_OF built-in and FB_CFB_FILLRECT modular
>>>>> config/ppc64le/vanilla:CONFIG_FB_CFB_FILLRECT=m
>>>>> config/ppc64le/vanilla:CONFIG_FB_CFB_COPYAREA=m
>>>>> config/ppc64le/vanilla:CONFIG_FB_CFB_IMAGEBLIT=m
>>>>> config/ppc64le/vanilla:CONFIG_FB_OF=y
>>>>>
>>>>> It only depends on FB which mut be built-in for FB_OF
>>>>> config FB_CFB_FILLRECT
>>>>>          tristate
>>>>>          depends on FB
>>>>>
>>>>> Is select in kconfig broken?
>>>>>
>>>>> Attachnig the config in question.
>>>>
>>>> The symbol info from xconfig says:
>>>>
>>>> Symbol: FB_CFB_FILLRECT [=m]
>>>> Type : tristate
>>>> Defined at drivers/video/fbdev/Kconfig:69
>>>> Depends on: HAS_IOMEM [=y] && FB [=y]
>>>> Selected by [m]:
>>>> [deleted]
>>>> - FB_OF [=y] && HAS_IOMEM [=y] && FB [=y]=y && PPC [=y] && (!PPC_PSERIES [=y] || PCI [=y]) && !DRM_OFDRM [=m]
>>>>
>>>> I don't see why the 'select' from (bool) FB_OF would leave FB_CFB_FILLRECT (and the others)
>>>> as =m instead of =y.
>>>>
>>>> Hopefully Masahiro can shed some light on this.
>>>>
>>>> --
>>>> ~Randy
>>>
>>>
>>> The reason is shown in your paste of help message:
>>>
>>> "&& !DRM_OFDRM [=m]" downgrades it to "selected by m"
>>>
>>> To aid this particular case, the following will select
>>> FB_CFB_FILLRECT=y.
>>>
>>>
> 
> Thanks again for your help.
> 
>>>
>>>
>>> diff --git a/drivers/video/fbdev/Kconfig b/drivers/video/fbdev/Kconfig
>>> index 66f36b69e8f3..2bcf8627819f 100644
>>> --- a/drivers/video/fbdev/Kconfig
>>> +++ b/drivers/video/fbdev/Kconfig
>>> @@ -458,7 +458,7 @@ config FB_ATARI
>>>   config FB_OF
>>>          bool "Open Firmware frame buffer device support"
>>>          depends on (FB = y) && PPC && (!PPC_PSERIES || PCI)
>>> -       depends on !DRM_OFDRM
>>> +       depends on DRM_OFDRM != y
>>>          select APERTURE_HELPERS
>>>          select FB_CFB_FILLRECT
>>>          select FB_CFB_COPYAREA
>>
>> Thanks for clarification.
>>
>> This change fixess the config for me.
> 
> 
> Thomas, is this change to DRM_OFDRM under FB_OF acceptable to you?

Sure, thanks for helping.

The only reason for adding this Kconfig rule is that it doesn't make 
much sense to have offb and ofdrm enabled at the same time. BTW we have 
a similar rule for simplefb/simpledrm, which never made any problems.

Best regards
Thomas

> 
> 
>>> Or, perhaps "depends on DRM_OFDRM = n"
>>> I do not know the intention of this dependency.
>>>
>>> Recommendation is to use "depends on" instead of "select" though.
>>>
>>>
>>>
>>> BTW, this is similar to what you asked before.
>>>
>>> https://lore.kernel.org/linux-kbuild/e1a6228d-1341-6264-d97a-e2bd52a65c82@infradead.org/
>>>
>>>
>>> I tried to fix it in the past, but the issue was not as shallow as I
>>> had expected.
>>> I did not get around to revisiting this topic.
>>>
>>> https://patchwork.kernel.org/project/linux-kbuild/patch/1543216969-2227-1-git-send-email-yamada.masahiro@socionext.com/
>>>
> 

-- 
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Maxfeldstr. 5, 90409 Nürnberg, Germany
(HRB 36809, AG Nürnberg)
Geschäftsführer: Ivo Totev

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 840 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2022-11-20 17:47 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <20221118150351.GV28810@kitsune.suse.cz>
2022-11-19  6:20 ` build failure in linux-next: offb missing fb helpers Randy Dunlap
2022-11-19 13:27   ` Masahiro Yamada
2022-11-19 15:37     ` Michal Suchánek
2022-11-19 18:15       ` Randy Dunlap
2022-11-20 17:47         ` Thomas Zimmermann

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).