Re: CONFIG_ANDROID_BINDER_IPC=y (Re: powerpc: 32BIT vs. 64BIT (PPC32 vs. PPC64))

2018-07-20 Thread Randy Dunlap
On 07/13/2018 04:24 PM, Randy Dunlap wrote:
> On 07/13/2018 04:41 AM, Mathieu Malaterre wrote:
>> Randy,
>>
>> On Mon, Jul 9, 2018 at 2:00 PM Mathieu Malaterre  wrote:
>>>
>>> On Sun, Jul 8, 2018 at 1:53 PM Michael Ellerman  wrote:

 Randy Dunlap  writes:
> Hi,
>
> Is there a good way (or a shortcut) to do something like:

 The best I know of is:

> $ make ARCH=powerpc O=PPC32 [other_options] allmodconfig
>   to get a PPC32/32BIT allmodconfig

 $ echo CONFIG_PPC64=n > allmod.config
 $ KCONFIG_ALLCONFIG=1 make allmodconfig
 $ grep PPC32 .config
 CONFIG_PPC32=y

 Which is still a bit clunky.


 I looked at this a while back and the problem we have is that the 32-bit
 kernel is not a single thing. There are multiple 32-bit platforms which
 are mutually exclusive.

 eg, from menuconfig:

  - 512x/52xx/6xx/7xx/74xx/82xx/83xx/86xx
  - Freescale 85xx
  - Freescale 8xx
  - AMCC 40x
  - AMCC 44x, 46x or 47x
  - Freescale e200
>>>
>>> Most Linux distro seems to have drop support for ppc32. So I'd suggest
>>> to pick Debian powperc default config (but I agree that I am a little
>>> biased here).
>>
>> I tried an allmode as suggest by Michael (above). But I get a build error:
>>
>>   MODPOST vmlinux.o
>> drivers/android/binder.o: In function `binder_thread_write':
>> binder.c:(.text+0xc750): undefined reference to `__get_user_bad'
>> binder.c:(.text+0xc76c): undefined reference to `__get_user_bad'
>> binder.c:(.text+0xc790): undefined reference to `__get_user_bad'
>> binder.c:(.text+0xc7d4): undefined reference to `__get_user_bad'
>> binder.c:(.text+0xc7f4): undefined reference to `__get_user_bad'
>>
>>
>> So for now I need to do: CONFIG_ANDROID_BINDER_IPC=n
>>
>> How did you get passed this build failure ?
> 
> Hi,
> 
> I am not seeing an error on that driver build.
> 
> I am using gcc 8.1.0 from kernel.org:
> https://mirrors.edge.kernel.org/pub/tools/crosstool/
> 
> and building on x86_64.

Hi Mathieu,

I do see this build error (slightly different undefined reference though)
when I do an arch/microblaze/ cross-build:

drivers/android/binder.o: In function `binder_thread_write':
drivers/android/.tmp_gl_binder.o:(.text+0xcba8): undefined reference to 
`__user_bad'
drivers/android/.tmp_gl_binder.o:(.text+0xcbd4): undefined reference to 
`__user_bad'
drivers/android/.tmp_gl_binder.o:(.text+0xcfbc): undefined reference to 
`__user_bad'
drivers/android/.tmp_gl_binder.o:(.text+0xd648): undefined reference to 
`__user_bad'
drivers/android/.tmp_gl_binder.o:(.text+0xdbc0): undefined reference to 
`__user_bad'


-- 
~Randy


Re: CONFIG_ANDROID_BINDER_IPC=y (Re: powerpc: 32BIT vs. 64BIT (PPC32 vs. PPC64))

2018-07-13 Thread Randy Dunlap
On 07/13/2018 04:41 AM, Mathieu Malaterre wrote:
> Randy,
> 
> On Mon, Jul 9, 2018 at 2:00 PM Mathieu Malaterre  wrote:
>>
>> On Sun, Jul 8, 2018 at 1:53 PM Michael Ellerman  wrote:
>>>
>>> Randy Dunlap  writes:
 Hi,

 Is there a good way (or a shortcut) to do something like:
>>>
>>> The best I know of is:
>>>
 $ make ARCH=powerpc O=PPC32 [other_options] allmodconfig
   to get a PPC32/32BIT allmodconfig
>>>
>>> $ echo CONFIG_PPC64=n > allmod.config
>>> $ KCONFIG_ALLCONFIG=1 make allmodconfig
>>> $ grep PPC32 .config
>>> CONFIG_PPC32=y
>>>
>>> Which is still a bit clunky.
>>>
>>>
>>> I looked at this a while back and the problem we have is that the 32-bit
>>> kernel is not a single thing. There are multiple 32-bit platforms which
>>> are mutually exclusive.
>>>
>>> eg, from menuconfig:
>>>
>>>  - 512x/52xx/6xx/7xx/74xx/82xx/83xx/86xx
>>>  - Freescale 85xx
>>>  - Freescale 8xx
>>>  - AMCC 40x
>>>  - AMCC 44x, 46x or 47x
>>>  - Freescale e200
>>
>> Most Linux distro seems to have drop support for ppc32. So I'd suggest
>> to pick Debian powperc default config (but I agree that I am a little
>> biased here).
> 
> I tried an allmode as suggest by Michael (above). But I get a build error:
> 
>   MODPOST vmlinux.o
> drivers/android/binder.o: In function `binder_thread_write':
> binder.c:(.text+0xc750): undefined reference to `__get_user_bad'
> binder.c:(.text+0xc76c): undefined reference to `__get_user_bad'
> binder.c:(.text+0xc790): undefined reference to `__get_user_bad'
> binder.c:(.text+0xc7d4): undefined reference to `__get_user_bad'
> binder.c:(.text+0xc7f4): undefined reference to `__get_user_bad'
> 
> 
> So for now I need to do: CONFIG_ANDROID_BINDER_IPC=n
> 
> How did you get passed this build failure ?

Hi,

I am not seeing an error on that driver build.

I am using gcc 8.1.0 from kernel.org:
https://mirrors.edge.kernel.org/pub/tools/crosstool/

and building on x86_64.


-- 
~Randy


CONFIG_ANDROID_BINDER_IPC=y (Re: powerpc: 32BIT vs. 64BIT (PPC32 vs. PPC64))

2018-07-13 Thread Mathieu Malaterre
Randy,

On Mon, Jul 9, 2018 at 2:00 PM Mathieu Malaterre  wrote:
>
> On Sun, Jul 8, 2018 at 1:53 PM Michael Ellerman  wrote:
> >
> > Randy Dunlap  writes:
> > > Hi,
> > >
> > > Is there a good way (or a shortcut) to do something like:
> >
> > The best I know of is:
> >
> > > $ make ARCH=powerpc O=PPC32 [other_options] allmodconfig
> > >   to get a PPC32/32BIT allmodconfig
> >
> > $ echo CONFIG_PPC64=n > allmod.config
> > $ KCONFIG_ALLCONFIG=1 make allmodconfig
> > $ grep PPC32 .config
> > CONFIG_PPC32=y
> >
> > Which is still a bit clunky.
> >
> >
> > I looked at this a while back and the problem we have is that the 32-bit
> > kernel is not a single thing. There are multiple 32-bit platforms which
> > are mutually exclusive.
> >
> > eg, from menuconfig:
> >
> >  - 512x/52xx/6xx/7xx/74xx/82xx/83xx/86xx
> >  - Freescale 85xx
> >  - Freescale 8xx
> >  - AMCC 40x
> >  - AMCC 44x, 46x or 47x
> >  - Freescale e200
>
> Most Linux distro seems to have drop support for ppc32. So I'd suggest
> to pick Debian powperc default config (but I agree that I am a little
> biased here).

I tried an allmode as suggest by Michael (above). But I get a build error:

  MODPOST vmlinux.o
drivers/android/binder.o: In function `binder_thread_write':
binder.c:(.text+0xc750): undefined reference to `__get_user_bad'
binder.c:(.text+0xc76c): undefined reference to `__get_user_bad'
binder.c:(.text+0xc790): undefined reference to `__get_user_bad'
binder.c:(.text+0xc7d4): undefined reference to `__get_user_bad'
binder.c:(.text+0xc7f4): undefined reference to `__get_user_bad'


So for now I need to do: CONFIG_ANDROID_BINDER_IPC=n

How did you get passed this build failure ?

> >
> > So we could have a 32-bit allmodconfig, but we'd need to chose one of
> > the above, and we'd still only be testing some of the code.
> >
> > Having said that you're the 2nd person to ask about this, so we should
> > clearly do something to make a 32-bit allmodconfig easier, even if it's
> > not perfect.
> >
> > cheers