* 2.4.26 doesn't compile? ("error: `__cmpxchg' previously defined here")
@ 2004-04-19 8:16 Román Medina
2004-04-19 17:27 ` Randy.Dunlap
0 siblings, 1 reply; 5+ messages in thread
From: Román Medina @ 2004-04-19 8:16 UTC (permalink / raw)
To: linux-kernel
[-- Attachment #1: Type: text/plain, Size: 2526 bytes --]
Hi,
I'm trying to compile 2.4.26 kernel but I get the following error in "make
modules" part:
[...]
make[3]: Entering directory `/usr/src/linux-2.4.26/drivers/char/drm'
gcc -D__KERNEL__ -I/usr/src/linux-2.4.26/include -Wall -Wstrict-prototypes
-Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer
-pipe -mpreferred-stack-boundary=2 -march=i386 -DMODULE -DMODVERSIONS
-include /usr/src/linux-2.4.26/include/linux/modversions.h -nostdinc
-iwithprefix include -DKBUILD_BASENAME=gamma_drv -c -o gamma_drv.o
gamma_drv.c
In file included from gamma_drv.c:34:
drmP.h:180: error: redefinition of `__cmpxchg'
/usr/src/linux-2.4.26/include/asm/system.h:245: error: `__cmpxchg'
previously defined here
make[3]: *** [gamma_drv.o] Error 1
make[3]: Leaving directory `/usr/src/linux-2.4.26/drivers/char/drm'
make[2]: *** [_modsubdir_drm] Error 2
make[2]: Leaving directory `/usr/src/linux-2.4.26/drivers/char'
make[1]: *** [_modsubdir_char] Error 2
make[1]: Leaving directory `/usr/src/linux-2.4.26/drivers'
make: *** [_mod_drivers] Error 2
My machine:
mta-mad:~# cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 15
model : 1
model name : Intel(R) Celeron(R) CPU 1.80GHz
stepping : 3
cpu MHz : 1817.948
cache size : 128 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 2
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca
cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm
bogomips : 3630.69
mta-mad:~# gcc -v
Reading specs from /usr/lib/gcc-lib/i486-linux/3.3.3/specs
Configured with: ../src/configure -v
--enable-languages=c,c++,java,f77,pascal,objc,ada,treelang --prefix=/usr
--mandir=/usr/share/man --infodir=/usr/share/info
--with-gxx-include-dir=/usr/include/c++/3.3 --enable-shared
--with-system-zlib --enable-nls --without-included-gettext
--enable-__cxa_atexit --enable-clocale=gnu --enable-debug
--enable-java-gc=boehm --enable-java-awt=xlib --enable-objc-gc i486-linux
Thread model: posix
gcc version 3.3.3 (Debian 20040401)
mta-mad:~#
I've attached the .config file which I'm using. The system is Debian
Unstable. I've compiled (older) kernels without problems.
I also tried to compile it using gcc-2.95 obtaining the same (bad) results
(I changed Makefile and replaced "gcc" by "gcc-2.95", which is the 2.95
binary in my system).
Any ideas?
Best regards,
-Román
[-- Attachment #2: config_2.4.26.bz2 --]
[-- Type: application/octet-stream, Size: 8645 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: 2.4.26 doesn't compile? ("error: `__cmpxchg' previously defined here") 2004-04-19 8:16 2.4.26 doesn't compile? ("error: `__cmpxchg' previously defined here") Román Medina @ 2004-04-19 17:27 ` Randy.Dunlap 2004-04-19 19:09 ` Roman Medina 0 siblings, 1 reply; 5+ messages in thread From: Randy.Dunlap @ 2004-04-19 17:27 UTC (permalink / raw) To: Román Medina; +Cc: linux-kernel On Mon, 19 Apr 2004 10:16:28 +0200 (CEST) Román Medina wrote: | Hi, | | I'm trying to compile 2.4.26 kernel but I get the following error in "make | modules" part: | | [...] | make[3]: Entering directory `/usr/src/linux-2.4.26/drivers/char/drm' | gcc -D__KERNEL__ -I/usr/src/linux-2.4.26/include -Wall -Wstrict-prototypes | -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer | -pipe -mpreferred-stack-boundary=2 -march=i386 -DMODULE -DMODVERSIONS | -include /usr/src/linux-2.4.26/include/linux/modversions.h -nostdinc | -iwithprefix include -DKBUILD_BASENAME=gamma_drv -c -o gamma_drv.o | gamma_drv.c | In file included from gamma_drv.c:34: | drmP.h:180: error: redefinition of `__cmpxchg' | /usr/src/linux-2.4.26/include/asm/system.h:245: error: `__cmpxchg' | previously defined here | make[3]: *** [gamma_drv.o] Error 1 | make[3]: Leaving directory `/usr/src/linux-2.4.26/drivers/char/drm' | make[2]: *** [_modsubdir_drm] Error 2 | make[2]: Leaving directory `/usr/src/linux-2.4.26/drivers/char' | make[1]: *** [_modsubdir_char] Error 2 | make[1]: Leaving directory `/usr/src/linux-2.4.26/drivers' | make: *** [_mod_drivers] Error 2 | | My machine: | | mta-mad:~# cat /proc/cpuinfo | processor : 0 | vendor_id : GenuineIntel | cpu family : 15 | model : 1 | model name : Intel(R) Celeron(R) CPU 1.80GHz | stepping : 3 | cpu MHz : 1817.948 | cache size : 128 KB | fdiv_bug : no | hlt_bug : no | f00f_bug : no | coma_bug : no | fpu : yes | fpu_exception : yes | cpuid level : 2 | wp : yes | flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca | cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm | bogomips : 3630.69 | | mta-mad:~# gcc -v | Reading specs from /usr/lib/gcc-lib/i486-linux/3.3.3/specs | Configured with: ../src/configure -v | --enable-languages=c,c++,java,f77,pascal,objc,ada,treelang --prefix=/usr | --mandir=/usr/share/man --infodir=/usr/share/info | --with-gxx-include-dir=/usr/include/c++/3.3 --enable-shared | --with-system-zlib --enable-nls --without-included-gettext | --enable-__cxa_atexit --enable-clocale=gnu --enable-debug | --enable-java-gc=boehm --enable-java-awt=xlib --enable-objc-gc i486-linux | Thread model: posix | gcc version 3.3.3 (Debian 20040401) | mta-mad:~# | | I've attached the .config file which I'm using. The system is Debian | Unstable. I've compiled (older) kernels without problems. | | I also tried to compile it using gcc-2.95 obtaining the same (bad) results | (I changed Makefile and replaced "gcc" by "gcc-2.95", which is the 2.95 | binary in my system). | | Any ideas? Sure, build for more than CONFIG_M386=y. I.e., build for a Pentium III etc. and it should work. -- ~Randy ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: 2.4.26 doesn't compile? ("error: `__cmpxchg' previously defined here") 2004-04-19 17:27 ` Randy.Dunlap @ 2004-04-19 19:09 ` Roman Medina 2004-04-19 19:56 ` Randy.Dunlap 0 siblings, 1 reply; 5+ messages in thread From: Roman Medina @ 2004-04-19 19:09 UTC (permalink / raw) To: Randy.Dunlap; +Cc: linux-kernel On Mon, 19 Apr 2004 10:27:10 -0700, you wrote: >| make[3]: Entering directory `/usr/src/linux-2.4.26/drivers/char/drm' >| gcc -D__KERNEL__ -I/usr/src/linux-2.4.26/include -Wall -Wstrict-prototypes >| -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer >| -pipe -mpreferred-stack-boundary=2 -march=i386 -DMODULE -DMODVERSIONS >| -include /usr/src/linux-2.4.26/include/linux/modversions.h -nostdinc >| -iwithprefix include -DKBUILD_BASENAME=gamma_drv -c -o gamma_drv.o >| gamma_drv.c >| In file included from gamma_drv.c:34: >| drmP.h:180: error: redefinition of `__cmpxchg' >| /usr/src/linux-2.4.26/include/asm/system.h:245: error: `__cmpxchg' >| previously defined here >| make[3]: *** [gamma_drv.o] Error 1 >| make[3]: Leaving directory `/usr/src/linux-2.4.26/drivers/char/drm' >| make[2]: *** [_modsubdir_drm] Error 2 >| make[2]: Leaving directory `/usr/src/linux-2.4.26/drivers/char' >| make[1]: *** [_modsubdir_char] Error 2 >| make[1]: Leaving directory `/usr/src/linux-2.4.26/drivers' >| make: *** [_mod_drivers] Error 2 >| >| Any ideas? > >Sure, build for more than CONFIG_M386=y. >I.e., build for a Pentium III etc. and it should work. Thanks a lot, Randy. It worked :-) But I'm wondering why the same config compiled perfectly on 2.4.25 and backwards. Which changes affect this issue? Saludos, --Roman -- PGP Fingerprint: 09BB EFCD 21ED 4E79 25FB 29E1 E47F 8A7D EAD5 6742 [Key ID: 0xEAD56742. Available at KeyServ] ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: 2.4.26 doesn't compile? ("error: `__cmpxchg' previously defined here") 2004-04-19 19:09 ` Roman Medina @ 2004-04-19 19:56 ` Randy.Dunlap 2004-04-20 14:40 ` Marcelo Tosatti 0 siblings, 1 reply; 5+ messages in thread From: Randy.Dunlap @ 2004-04-19 19:56 UTC (permalink / raw) To: Roman Medina; +Cc: linux-kernel On Mon, 19 Apr 2004 21:09:19 +0200 Roman Medina wrote: | On Mon, 19 Apr 2004 10:27:10 -0700, you wrote: | | >| make[3]: Entering directory `/usr/src/linux-2.4.26/drivers/char/drm' | >| gcc -D__KERNEL__ -I/usr/src/linux-2.4.26/include -Wall -Wstrict-prototypes | >| -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer | >| -pipe -mpreferred-stack-boundary=2 -march=i386 -DMODULE -DMODVERSIONS | >| -include /usr/src/linux-2.4.26/include/linux/modversions.h -nostdinc | >| -iwithprefix include -DKBUILD_BASENAME=gamma_drv -c -o gamma_drv.o | >| gamma_drv.c | >| In file included from gamma_drv.c:34: | >| drmP.h:180: error: redefinition of `__cmpxchg' | >| /usr/src/linux-2.4.26/include/asm/system.h:245: error: `__cmpxchg' | >| previously defined here | >| make[3]: *** [gamma_drv.o] Error 1 | >| make[3]: Leaving directory `/usr/src/linux-2.4.26/drivers/char/drm' | >| make[2]: *** [_modsubdir_drm] Error 2 | >| make[2]: Leaving directory `/usr/src/linux-2.4.26/drivers/char' | >| make[1]: *** [_modsubdir_char] Error 2 | >| make[1]: Leaving directory `/usr/src/linux-2.4.26/drivers' | >| make: *** [_mod_drivers] Error 2 | >| | >| Any ideas? | > | >Sure, build for more than CONFIG_M386=y. | >I.e., build for a Pentium III etc. and it should work. | | Thanks a lot, Randy. It worked :-) But I'm wondering why the same | config compiled perfectly on 2.4.25 and backwards. Which changes | affect this issue? That would be this changeset: http://linux.bkbits.net:8080/linux-2.4/diffs/include/asm-i386/system.h@1.16?nav=index.html|src/|src/include|src/include/asm-i386|hist/include/asm-i386/system.h This patch (below) works for me with your original i386 .config file. -- ~Randy // linux-2.4.26 // drmP.h doesn't need local cmpxchg() and __cmpxchg(); diffstat:= drivers/char/drm/drmP.h | 34 ++-------------------------------- 1 files changed, 2 insertions(+), 32 deletions(-) diff -Naurp ./drivers/char/drm/drmP.h~cmpxchg_notlocal ./drivers/char/drm/drmP.h --- ./drivers/char/drm/drmP.h~cmpxchg_notlocal 2004-04-19 11:07:10.000000000 -0700 +++ ./drivers/char/drm/drmP.h 2004-04-19 13:02:55.000000000 -0700 @@ -52,6 +52,7 @@ #include <linux/version.h> #include <linux/sched.h> #include <linux/smp_lock.h> /* For (un)lock_kernel */ +#include <linux/system.h> /* for cmpxchg() */ #include <linux/mm.h> #include <linux/pagemap.h> #if defined(__alpha__) || defined(__powerpc__) @@ -174,38 +175,7 @@ __cmpxchg(volatile void *ptr, unsigned l (unsigned long)_n_, sizeof(*(ptr))); \ }) -#elif __i386__ -static inline unsigned long __cmpxchg(volatile void *ptr, unsigned long old, - unsigned long new, int size) -{ - unsigned long prev; - switch (size) { - case 1: - __asm__ __volatile__(LOCK_PREFIX "cmpxchgb %b1,%2" - : "=a"(prev) - : "q"(new), "m"(*__xg(ptr)), "0"(old) - : "memory"); - return prev; - case 2: - __asm__ __volatile__(LOCK_PREFIX "cmpxchgw %w1,%2" - : "=a"(prev) - : "q"(new), "m"(*__xg(ptr)), "0"(old) - : "memory"); - return prev; - case 4: - __asm__ __volatile__(LOCK_PREFIX "cmpxchgl %1,%2" - : "=a"(prev) - : "q"(new), "m"(*__xg(ptr)), "0"(old) - : "memory"); - return prev; - } - return old; -} - -#define cmpxchg(ptr,o,n) \ - ((__typeof__(*(ptr)))__cmpxchg((ptr),(unsigned long)(o), \ - (unsigned long)(n),sizeof(*(ptr)))) -#endif /* i386 & alpha */ +#endif /* alpha */ #endif #define __REALLY_HAVE_SG (__HAVE_SG) ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: 2.4.26 doesn't compile? ("error: `__cmpxchg' previously defined here") 2004-04-19 19:56 ` Randy.Dunlap @ 2004-04-20 14:40 ` Marcelo Tosatti 0 siblings, 0 replies; 5+ messages in thread From: Marcelo Tosatti @ 2004-04-20 14:40 UTC (permalink / raw) To: Randy.Dunlap; +Cc: Roman Medina, linux-kernel Patch applied, Thanks Randy! On Mon, Apr 19, 2004 at 12:56:47PM -0700, Randy.Dunlap wrote: > That would be this changeset: > http://linux.bkbits.net:8080/linux-2.4/diffs/include/asm-i386/system.h@1.16?nav=index.html|src/|src/include|src/include/asm-i386|hist/include/asm-i386/system.h > > > This patch (below) works for me with your original i386 .config file. ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2004-04-20 14:39 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-04-19 8:16 2.4.26 doesn't compile? ("error: `__cmpxchg' previously defined here") Román Medina
2004-04-19 17:27 ` Randy.Dunlap
2004-04-19 19:09 ` Roman Medina
2004-04-19 19:56 ` Randy.Dunlap
2004-04-20 14:40 ` Marcelo Tosatti
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox
Powered by JetHome