Re: [GIT PULL] scheduler fixes

Eric Dumazet
2009-10-01T07:00:11Z

Ingo Molnar a écrit :

> The way to check for a disabled option in a Make rule is:
>
> ifneq ($(CONFIG_X86_CMPXCHG64),y)
>

Ah OK, thanks for the explanation, my test 486-build (before your change) just finished to :

arch/x86/built-in.o:(__ksymtab+0xa8): undefined reference to `cmpxchg8b_emu'
kernel/built-in.o: In function `sched_clock_local':
/opt/src/linux-2.6/kernel/sched_clock.c:130: undefined reference to `cmpxchg8b_emu'
kernel/built-in.o: In function `sched_clock_remote':
/opt/src/linux-2.6/kernel/sched_clock.c:166: undefined reference to `cmpxchg8b_emu'
make: *** [.tmp_vmlinux1] Error 1

> As in the disabled case the config variable will be undefined. (and wont
> have a value of 'n'). I've done the fix below on your patch.
>
> Ingo
>
> Index: linux2/arch/x86/lib/Makefile
> ===================================================================
> --- linux2.orig/arch/x86/lib/Makefile
> +++ linux2/arch/x86/lib/Makefile
> @@ -16,7 +16,7 @@ ifeq ($(CONFIG_X86_32),y)
> lib-y += checksum_32.o
> lib-y += strstr_32.o
> lib-y += semaphore_32.o string_32.o
> -ifeq ($(CONFIG_X86_CMPXCHG64),n)
> +ifneq ($(CONFIG_X86_CMPXCHG64),y)
> lib-y += cmpxchg8b_emu.o
> endif
> lib-$(CONFIG_X86_USE_3DNOW) += mmx_32.o

Thats perfect this fixed my 486-build, thanks again.

Looking at disassembly I still see atomic64_cmpxchg(),
atomic64_xchg(), atomic64_add_return(), and friends being
included... (but not used)

I'll check if similar patch could be done as well for atomic64 functions.