Re: [PATCH] initramfs: Fix build break on symbol-prefixed archs

From: Andrew Morton
Date: Mon Nov 29 2010 - 17:39:34 EST


On Wed, 24 Nov 2010 03:40:51 -0500
Mike Frysinger <vapier.adi@xxxxxxxxx> wrote:

> On Sat, Nov 13, 2010 at 18:17, Mike Frysinger wrote:
> > On Thu, Oct 28, 2010 at 17:19, Michal Marek wrote:
> >> On 28.10.2010 22:35, Sam Ravnborg wrote:
> >>> On Thu, Oct 28, 2010 at 12:46:31AM +0200, Michal Marek wrote:
> >>>> On 27.10.2010 20:23, Mike Frysinger wrote:
> >>>>> can we get this change dropped from linux-next until someone gets a
> >>>>> chance to fix it ?
> >>>>
> >>>> Sorry I missed this thread. So your last patch
> >>>> (http://lkml.org/lkml/2010/10/19/488) did fix the Blackfin build
> >>>> failure? Can you submit it with a proper Signed-off-by and changelog?
> >>>
> >>> Did you see the patch I posted in: http://lkml.org/lkml/2010/10/19/534
> >>>
> >>> The one that fix up the cppflags usage.
> >>>
> >>> I think this will solve the issue with blackfin nicely - and
> >>> make use of cppflags more as expected.
> >>
> >> As Mike noted - your patch does not strip the double quotes. And Mike's
> >> patch is really minimal, it just adds the SYMBOL_PREFIX definition to
> >> _a_flags. I'll look at your patch after this merge window.
> >
> > why am i seeing __initramfs_size failures in mainline now ?
>
> ping ... it looks like no one merged the VMLINUX_SYMBOL() changes in
> usr/initramfs_data.S proposed by Hendrik

Well I found and forward-ported the below, from October.

Problem is, the changelog didn't describe the alleged "build break" and
it's unclear whether the fix is needed in mainline, in 2.6.36 or is
just fixing some bug which was introduced by some other
perhaps-not-applied patch.

Help? What's going on here?


From: Hendrik Brueckner <brueckner@xxxxxxxxxxxxxxxxxx>

Define the __initramfs_size variable using VMLINUX_SYMBOL() to take care
of symbol-prefixed architectures, for example, blackfin.

Depending on the CONFIG_SYMBOL_PREFIX configuration option, define the
SYMBOL_PREFIX symbol which is evaluated by VMLINUX_SYMBOL().

Signed-off-by: Hendrik Brueckner <brueckner@xxxxxxxxxxxxxxxxxx>
Cc: Mike Frysinger <vapier.adi@xxxxxxxxx>
Cc: Hendrik Brueckner <brueckner@xxxxxxxxxxxxxxxxxx>,
Cc: Michal Marek <mmarek@xxxxxxx>
Cc: Sam Ravnborg <sam@xxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
---

usr/Makefile | 3 +++
usr/initramfs_data.S | 5 +++--
2 files changed, 6 insertions(+), 2 deletions(-)

diff -puN usr/Makefile~initramfs-fix-build-break-on-symbol-prefixed-archs usr/Makefile
--- a/usr/Makefile~initramfs-fix-build-break-on-symbol-prefixed-archs
+++ a/usr/Makefile
@@ -19,6 +19,9 @@ suffix_$(CONFIG_INITRAMFS_COMPRESSION_LZ
suffix_$(CONFIG_INITRAMFS_COMPRESSION_LZO) = .lzo

AFLAGS_initramfs_data.o += -DINITRAMFS_IMAGE="usr/initramfs_data.cpio$(suffix_y)"
+ifdef CONFIG_SYMBOL_PREFIX
+AFLAGS_initramfs_data.o += -DSYMBOL_PREFIX=$(patsubst "%",%,$(CONFIG_SYMBOL_PREFIX))
+endif

# Generate builtin.o based on initramfs_data.o
obj-$(CONFIG_BLK_DEV_INITRD) := initramfs_data.o
diff -puN usr/initramfs_data.S~initramfs-fix-build-break-on-symbol-prefixed-archs usr/initramfs_data.S
--- a/usr/initramfs_data.S~initramfs-fix-build-break-on-symbol-prefixed-archs
+++ a/usr/initramfs_data.S
@@ -22,14 +22,15 @@
*/

#include <linux/stringify.h>
+#include <asm-generic/vmlinux.lds.h>

.section .init.ramfs,"a"
__irf_start:
.incbin __stringify(INITRAMFS_IMAGE)
__irf_end:
.section .init.ramfs.info,"a"
-.globl __initramfs_size
-__initramfs_size:
+.globl VMLINUX_SYMBOL(__initramfs_size)
+VMLINUX_SYMBOL(__initramfs_size):
#ifdef CONFIG_64BIT
.quad __irf_end - __irf_start
#else
_

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/