cmpxchg() in recent kernels

Aras Vaichas arasv at magellan-technology.com
Sun Oct 24 21:33:49 EDT 2010


On 25 October 2010 09:08, Russell King - ARM Linux
<linux at arm.linux.org.uk> wrote:
>
> On Sun, Oct 24, 2010 at 11:43:38PM +0200, Kristoffer Ericson wrote:
> > Im seeing something similiar, using GCC 3.4.5
> > ARM HP Jornada 720, 2.6.36
snip ...
> > kernel/built-in.o(.text+0x1d038): In function `alloc_pid':
> > include/asm-generic/cmpxchg-local.h:42: undefined reference to `wrong_size_cmpxchg'
> > make: *** [.tmp_vmlinux1] Error 1
>
> Probably needs to be bisected, but I think in the long run we'll have
> to accept that gcc 4 will become the minimum compiler version.

I just tested a build with GCC 4.2.3 and it linked correctly. The only
problem is that the kernel image size is now 3x as big.


Using gcc-3.4.4-glibc-2.3.5:

* fails to link without patch to cmpxchg-local.h, but size is similar
to my previous builds

Created:      Mon Oct 25 11:59:04 2010
Image Type:   ARM Linux Kernel Image (gzip compressed)
Data Size:    1471354 Bytes = 1436.87 kB = 1.40 MB


Using gcc-4.2.3-glibc-2.7:

* compiles and links correctly, but size is way too big

Created:      Mon Oct 25 11:48:26 2010
Image Type:   ARM Linux Kernel Image (gzip compressed)
Data Size:    4576155 Bytes = 4468.90 kB = 4.36 MB


Exact same code, I just changed my CROSS symbol to point to different
GCC directories.

Aras



More information about the linux-arm-kernel mailing list