2007-11-02 19:29:30

by Kristoffer Ericson

[permalink] [raw]
Subject: [BUG] : kernel/built-in.o(.text+0x18db4):kernel/workqueue.c:823: undefined reference to `.L343'

Greetings,

Haven't found anyone reporting this. Taken from the very latest linux-2.6.git pull.

dnsdomainname: Unknown host
UPD include/linux/compile.h
CC init/version.o
LD init/built-in.o
LD .tmp_vmlinux1
kernel/built-in.o(.text+0x18db0): In function `destroy_workqueue':
kernel/workqueue.c:823: undefined reference to `.L342'
kernel/built-in.o(.text+0x18db4):kernel/workqueue.c:823: undefined reference to `.L343'
make: *** [.tmp_vmlinux1] Error 1


2007-11-02 19:48:36

by Russell King - ARM Linux

[permalink] [raw]
Subject: Re: [BUG] : kernel/built-in.o(.text+0x18db4):kernel/workqueue.c:823: undefined reference to `.L343'

On Fri, Nov 02, 2007 at 08:29:31PM -0700, Kristoffer Ericson wrote:
> Greetings,
>
> Haven't found anyone reporting this. Taken from the very latest linux-2.6.git pull.
>
> dnsdomainname: Unknown host
> UPD include/linux/compile.h
> CC init/version.o
> LD init/built-in.o
> LD .tmp_vmlinux1
> kernel/built-in.o(.text+0x18db0): In function `destroy_workqueue':
> kernel/workqueue.c:823: undefined reference to `.L342'
> kernel/built-in.o(.text+0x18db4):kernel/workqueue.c:823: undefined reference to `.L343'
> make: *** [.tmp_vmlinux1] Error 1

I think you'll have to look at the assembly produced for workqueue.c and
work out why GCC is referencing an undefined label. You can get the
assembly for that by doing:

make ARCH=arm ...etc... kernel/workqueue.s

and then you'll have a kernel/workqueue.s in your object tree.

2007-11-02 20:08:54

by Sam Ravnborg

[permalink] [raw]
Subject: Re: [BUG] : kernel/built-in.o(.text+0x18db4):kernel/workqueue.c:823: undefined reference to `.L343'

On Fri, Nov 02, 2007 at 07:48:18PM +0000, Russell King - ARM Linux wrote:
> On Fri, Nov 02, 2007 at 08:29:31PM -0700, Kristoffer Ericson wrote:
> > Greetings,
> >
> > Haven't found anyone reporting this. Taken from the very latest linux-2.6.git pull.
> >
> > dnsdomainname: Unknown host
> > UPD include/linux/compile.h
> > CC init/version.o
> > LD init/built-in.o
> > LD .tmp_vmlinux1
> > kernel/built-in.o(.text+0x18db0): In function `destroy_workqueue':
> > kernel/workqueue.c:823: undefined reference to `.L342'
> > kernel/built-in.o(.text+0x18db4):kernel/workqueue.c:823: undefined reference to `.L343'
> > make: *** [.tmp_vmlinux1] Error 1
>
> I think you'll have to look at the assembly produced for workqueue.c and
> work out why GCC is referencing an undefined label. You can get the
> assembly for that by doing:
>
> make ARCH=arm ...etc... kernel/workqueue.s
Or make that:

make ARCH=arm ...etc... kernel/workqueue.lst

to get intermixed C and assenbly

Sam

2007-11-02 23:04:14

by Kristoffer Ericson

[permalink] [raw]
Subject: Re: [BUG] : kernel/built-in.o(.text+0x18db4):kernel/workqueue.c:823: undefined reference to `.L343'

On Fri, 2 Nov 2007 21:10:23 +0100
Sam Ravnborg <[email protected]> wrote:

> On Fri, Nov 02, 2007 at 07:48:18PM +0000, Russell King - ARM Linux wrote:
> > On Fri, Nov 02, 2007 at 08:29:31PM -0700, Kristoffer Ericson wrote:
> > > Greetings,
> > >
> > > Haven't found anyone reporting this. Taken from the very latest linux-2.6.git pull.
> > >
> > > dnsdomainname: Unknown host
> > > UPD include/linux/compile.h
> > > CC init/version.o
> > > LD init/built-in.o
> > > LD .tmp_vmlinux1
> > > kernel/built-in.o(.text+0x18db0): In function `destroy_workqueue':
> > > kernel/workqueue.c:823: undefined reference to `.L342'
> > > kernel/built-in.o(.text+0x18db4):kernel/workqueue.c:823: undefined reference to `.L343'
> > > make: *** [.tmp_vmlinux1] Error 1
> >
> > I think you'll have to look at the assembly produced for workqueue.c and
> > work out why GCC is referencing an undefined label. You can get the
> > assembly for that by doing:
> >
> > make ARCH=arm ...etc... kernel/workqueue.s
> Or make that:
>
> make ARCH=arm ...etc... kernel/workqueue.lst
>
> to get intermixed C and assenbly
>
> Sam
arm-unknown-linux-gnu- kernel/workqueue.1strrent:)$ make ARCH=arm CROSS_COMPILE=a
make: *** No rule to make target `kernel/workqueue.1st'. Stop.
arm-unknown-linux-gnu- kernel/workqueue.lstrrent:)$ make ARCH=arm CROSS_COMPILE=a
CHK include/linux/version.h
make[1]: `include/asm-arm/mach-types.h' is up to date.
CHK include/linux/utsrelease.h
CALL scripts/checksyscalls.sh
<stdin>:1097:2: warning: #warning syscall fadvise64 not implemented
<stdin>:1265:2: warning: #warning syscall migrate_pages not implemented
<stdin>:1321:2: warning: #warning syscall pselect6 not implemented
<stdin>:1325:2: warning: #warning syscall ppoll not implemented
<stdin>:1365:2: warning: #warning syscall epoll_pwait not implemented
MKLST kernel/workqueue.lst
No System.map

2007-11-03 00:19:41

by Russell King - ARM Linux

[permalink] [raw]
Subject: Re: [BUG] : kernel/built-in.o(.text+0x18db4):kernel/workqueue.c:823: undefined reference to `.L343'

On Sat, Nov 03, 2007 at 12:04:06AM -0700, Kristoffer Ericson wrote:
> On Fri, 2 Nov 2007 21:10:23 +0100
> Sam Ravnborg <[email protected]> wrote:
>
> > On Fri, Nov 02, 2007 at 07:48:18PM +0000, Russell King - ARM Linux wrote:
> > > On Fri, Nov 02, 2007 at 08:29:31PM -0700, Kristoffer Ericson wrote:
> > > > Greetings,
> > > >
> > > > Haven't found anyone reporting this. Taken from the very latest linux-2.6.git pull.
> > > >
> > > > dnsdomainname: Unknown host
> > > > UPD include/linux/compile.h
> > > > CC init/version.o
> > > > LD init/built-in.o
> > > > LD .tmp_vmlinux1
> > > > kernel/built-in.o(.text+0x18db0): In function `destroy_workqueue':
> > > > kernel/workqueue.c:823: undefined reference to `.L342'
> > > > kernel/built-in.o(.text+0x18db4):kernel/workqueue.c:823: undefined reference to `.L343'
> > > > make: *** [.tmp_vmlinux1] Error 1
> > >
> > > I think you'll have to look at the assembly produced for workqueue.c and
> > > work out why GCC is referencing an undefined label. You can get the
> > > assembly for that by doing:
> > >
> > > make ARCH=arm ...etc... kernel/workqueue.s
> > Or make that:
> >
> > make ARCH=arm ...etc... kernel/workqueue.lst
> >
> > to get intermixed C and assenbly
> >
> > Sam
> arm-unknown-linux-gnu- kernel/workqueue.1strrent:)$ make ARCH=arm CROSS_COMPILE=a
> make: *** No rule to make target `kernel/workqueue.1st'. Stop.

Suggest you use a better console font that allows you to identify
the difference between '1' (one) and 'l' (lima).

> arm-unknown-linux-gnu- kernel/workqueue.lstrrent:)$ make ARCH=arm CROSS_COMPILE=a
> CHK include/linux/version.h
> make[1]: `include/asm-arm/mach-types.h' is up to date.
> CHK include/linux/utsrelease.h
> CALL scripts/checksyscalls.sh
> <stdin>:1097:2: warning: #warning syscall fadvise64 not implemented
> <stdin>:1265:2: warning: #warning syscall migrate_pages not implemented
> <stdin>:1321:2: warning: #warning syscall pselect6 not implemented
> <stdin>:1325:2: warning: #warning syscall ppoll not implemented
> <stdin>:1365:2: warning: #warning syscall epoll_pwait not implemented
> MKLST kernel/workqueue.lst
> No System.map

You're not looking for a system.map file, but the workqueue.s or
workqueue.lst file to find out where this nonexistent label is
referenced.

2007-11-03 00:44:01

by Kristoffer Ericson

[permalink] [raw]
Subject: Re: [BUG] : kernel/built-in.o(.text+0x18db4):kernel/workqueue.c:823: undefined reference to `.L343'

On Sat, 3 Nov 2007 00:04:14 +0000
Russell King - ARM Linux <[email protected]> wrote:

> On Sat, Nov 03, 2007 at 12:04:06AM -0700, Kristoffer Ericson wrote:
> > On Fri, 2 Nov 2007 21:10:23 +0100
> > Sam Ravnborg <[email protected]> wrote:
> >
> > > On Fri, Nov 02, 2007 at 07:48:18PM +0000, Russell King - ARM Linux wrote:
> > > > On Fri, Nov 02, 2007 at 08:29:31PM -0700, Kristoffer Ericson wrote:
> > > > > Greetings,
> > > > >
> > > > > Haven't found anyone reporting this. Taken from the very latest linux-2.6.git pull.
> > > > >
> > > > > dnsdomainname: Unknown host
> > > > > UPD include/linux/compile.h
> > > > > CC init/version.o
> > > > > LD init/built-in.o
> > > > > LD .tmp_vmlinux1
> > > > > kernel/built-in.o(.text+0x18db0): In function `destroy_workqueue':
> > > > > kernel/workqueue.c:823: undefined reference to `.L342'
> > > > > kernel/built-in.o(.text+0x18db4):kernel/workqueue.c:823: undefined reference to `.L343'
> > > > > make: *** [.tmp_vmlinux1] Error 1
> > > >
> > > > I think you'll have to look at the assembly produced for workqueue.c and
> > > > work out why GCC is referencing an undefined label. You can get the
> > > > assembly for that by doing:
> > > >
> > > > make ARCH=arm ...etc... kernel/workqueue.s
> > > Or make that:
> > >
> > > make ARCH=arm ...etc... kernel/workqueue.lst
> > >
> > > to get intermixed C and assenbly
> > >
> > > Sam
> > arm-unknown-linux-gnu- kernel/workqueue.1strrent:)$ make ARCH=arm CROSS_COMPILE=a
> > make: *** No rule to make target `kernel/workqueue.1st'. Stop.
>
> Suggest you use a better console font that allows you to identify
> the difference between '1' (one) and 'l' (lima).
Point taken.

>
> > arm-unknown-linux-gnu- kernel/workqueue.lstrrent:)$ make ARCH=arm CROSS_COMPILE=a
> > CHK include/linux/version.h
> > make[1]: `include/asm-arm/mach-types.h' is up to date.
> > CHK include/linux/utsrelease.h
> > CALL scripts/checksyscalls.sh
> > <stdin>:1097:2: warning: #warning syscall fadvise64 not implemented
> > <stdin>:1265:2: warning: #warning syscall migrate_pages not implemented
> > <stdin>:1321:2: warning: #warning syscall pselect6 not implemented
> > <stdin>:1325:2: warning: #warning syscall ppoll not implemented
> > <stdin>:1365:2: warning: #warning syscall epoll_pwait not implemented
> > MKLST kernel/workqueue.lst
> > No System.map
>
> You're not looking for a system.map file, but the workqueue.s or
> workqueue.lst file to find out where this nonexistent label is
> referenced.

Sorry, I misunderstod Sam's reply earlier. Tried to compile the .lst file :D
I've done some checks in the .config and seems like some setting in 'kernel hacking', caused this. Unfortunantly I changed too much at once to be sure what exactly in there caused it.

Anyhow, thanks for helping out :)