Re: CONFIG_ANDROID_BINDER_IPC=y (Re: powerpc: 32BIT vs. 64BIT (PPC32 vs. PPC64))
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))
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))
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