Re: [PATCH] Fix build failure when CONFIG_NLS is set to 'm' byallmodconfig

From: Stephen Rothwell
Date: Fri Jan 14 2011 - 16:10:10 EST


Hi Narendra,

On Fri, 14 Jan 2011 20:52:42 +0530 <Narendra_K@xxxxxxxx> wrote:
>
> This patch addresses the build failure described in this thread by
> compiling fs/nls/nls_base.c always into vmlinux, thus making the base
> nls functions available always.

Even on platforms that don't support ACPI or DMI ...

> From: Narendra K <narendra_k@xxxxxxxx>
> Subject: [PATCH] Fix build failure when CONFIG_NLS is set to 'm' by allmodconfig
>
> This patch fixes the following build breakage introduced by the patch
> PCI:export ACPI _DSM provided firmware instance number and string to sysfs.
> (previously commit a6247cd4be20cb5439db5cb7b0b6cc67fdc8e2a2).
>
> http://marc.info/?l=linux-pci&m=129313294112736&w=1
>
> drivers/built-in.o: In function `T.647':
> pci-label.c:(.text+0x28514): undefined reference to `utf16s_to_utf8s'
>
> This happens because 'make allmodconfig' sets CONFIG_NLS=m and makes
> 'utf16s_to_utf8s` unavailable to drivers/pci/pci-label.o which is built
> into vmlinux.
>
> This is fixed by making fs/nls/nls_base.c always compile as part of
> vmlinux thus making the base nls functions available always.
> +++ b/fs/nls/Makefile
> @@ -2,7 +2,7 @@
> # Makefile for native language support
> #
>
> -obj-$(CONFIG_NLS) += nls_base.o
> +obj-y += nls_base.o

You should really restrict this to CONFIG_ACPI || CONFIG_DMI ||
CONFIG_NLS ... maybe create a CONFIG_NLS_BASE that is selected by ACPI,
DMI and NLS?

--
Cheers,
Stephen Rothwell sfr@xxxxxxxxxxxxxxxx
http://www.canb.auug.org.au/~sfr/

Attachment: pgp00000.pgp
Description: PGP signature