Subject: Re: [PATCH] Fix build failure when CONFIG_NLS is set to 'm' by allmodconfig

From: Randy Dunlap <[email-masked]>
Date: Mon, 28 Mar 2011 08:02:20 -0700

On Fri, 4 Mar 2011 10:15:09 -0800 Jesse Barnes wrote:

> On Wed, 23 Feb 2011 13:17:34 +0000
> Matthew Garrett <[email-masked]> wrote:
> 
> > On Wed, Feb 23, 2011 at 06:24:31PM +0530, [email-masked] wrote:
> > 
> > > This patch fixes the following build breakage introduced by the patch
> > > '[PATCH V3] Export ACPI _DSM provided firmware instance number and string to
> > > sysfs'.
> > 
> > First, you should include this as part of your original patch so that 
> > the build doesn't break during bisection.
> > 
> > > This is fixed by making fs/nls/nls_base.c compile conditionally into
> > > vmlinux by introducing a new config option CONFIG_NLS_BASE which is
> > > selected by (ACPI || DMI || NLS).
> > 
> > Why?
> > 
> > > -obj-$(CONFIG_NLS)		+= nls/
> > > +obj-y				+= nls/
> > 
> > You seem to have just broken building any of the NLS code as modules.
> > 
> > >  menuconfig NLS
> > >  	tristate "Native language support"
> > > +	select NLS_BASE
> > 
> > All CONFIG_NLS does is build nls_base.
> > 
> > > +config NLS_BASE
> > > +	bool "Base NLS functions"
> > > +	depends on ACPI || DMI
> > 
> > What in this code depends on ACPI or DMI?
> > 
> > > -obj-$(CONFIG_NLS)		+= nls_base.o
> > > +obj-$(CONFIG_NLS_BASE)		+= nls_base.o
> > 
> > And why make this change?
> > 
> > Just have something like
> > 
> > select NLS if (ACPI || DMI)
> > 
> > in drivers/pci/Kconfig.
> 
> Narendra, can you send me an updated patch including the build fix?
> Either using this approach or the other one I outlined in my other mail.

This driver still has build failures in linux-next 20110328.

pci-label.c:(.text+0x9a40): undefined reference to `utf16s_to_utf8s'

CONFIG_NLS=m

---
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***