Re: build #343 issue for v2.6.24-rc8-29-g03bbe08 : Section mismatch: reference to .init.text.1:start_kernel (between 'is386' and 'check_x87')

From: Sam Ravnborg
Date: Fri Jan 18 2008 - 07:46:32 EST


On Fri, Jan 18, 2008 at 08:29:17PM +0800, WANG Cong wrote:
> On Fri, Jan 18, 2008 at 01:18:27PM +0100, Toralf Förster wrote:
> >Hello,
> >
> >the build with the attached .config was successful however I got during make :
> > AS .tmp_kallsyms2.o
> > LD vmlinux.o
> > MODPOST vmlinux.o
> >WARNING: vmlinux.o(.text.head+0x247): Section mismatch: reference to .init.text.1:start_kernel (between 'is386' and 'check_x87')
> > CHK include/linux/version.h
> > HOSTCC scripts/unifdef
> > MKDIR include
> >
> >Does it help / make sense to report such warning ?
> >
> >The build was made with :
> >$> make mrproper && make rndconfig && <tweak config file> && make oldconfig && make
> >
> >Here's the config:
>
> Thanks. You have reported this. ;)
>
> I can't solve this problem. Let's Cc Rusty and Sam to see
> if they can solve this.

modpost gets confused by the section named ".init.text.1" - the additional '.1'
is unexpected.

Following untested patch should fix it.

Sam

diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
index 93ac52a..b5f1cff 100644
--- a/scripts/mod/modpost.c
+++ b/scripts/mod/modpost.c
@@ -736,8 +736,8 @@ static int secref_whitelist(const char *modname, const char *tosec,

/* Check for pattern 3 */
if ((strcmp(fromsec, ".text.head") == 0) &&
- ((strcmp(tosec, ".init.data") == 0) ||
- (strcmp(tosec, ".init.text") == 0)))
+ ((strncmp(tosec, ".init.data", strlen(".init.data")) == 0) ||
+ (strncmp(tosec, ".init.text", strlen(".init.text")) == 0)))
return 1;

/* Check for pattern 4 */
--
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/