Re: 1.3.82: Compile error

David R. McGown (dmcgown@access.digex.net)
Wed, 3 Apr 1996 06:37:40 -0500 (EST)


> -fomit-frame-pointer -fno-strength-reduce -pipe -m486 -DCPU=486 -c -o
> firewall.o firewall.c
> /b/linux-1.3.80/include/asm/system.h: In function `unregister_firewall':
> /b/linux-1.3.80/include/asm/system.h:213: inconsistent operand constraints
> in an `asm'
> make[3]: *** [firewall.o] Error 1
> make[3]: Leaving directory `/b/linux-1.3.80/net/core'
> make[2]: *** [first_rule] Error 2
> make[2]: Leaving directory `/b/linux-1.3.80/net/core'
> make[1]: *** [sub_dirs] Error 2
> make[1]: Leaving directory `/b/linux-1.3.80/net'
> make: *** [linuxsubdirs] Error 2
>
>

There seems to be a change in linux/include/asm/system.h that is causing
linux/net/core/firewall.c to not compile under 1.3.82. When I diff'ed 1.3.77
with the 1.3.82 version, this is what I got:

--- system.h Sun Mar 3 06:14:50 1996
+++ ../../../linux-1.3.82/include/asm/system.h Wed Apr 3 04:37:52 1996
@@ -192,9 +192,9 @@
#define tas(ptr) (xchg((ptr),1))

struct __xchg_dummy { unsigned long a[100]; };
-#define __xg(x) ((volatile struct __xchg_dummy *)(x))
+#define __xg(x) ((struct __xchg_dummy *)(x))

-static inline unsigned long __xchg(unsigned long x, volatile void * ptr, int
si
ze)
+static inline unsigned long __xchg(unsigned long x, void * ptr, int size)
{
switch (size) {
case 1:

When I set the definition back to the "old" version, 1.3.82 compiled cleanly.

David

+----------------------+--------------------------+-----------------------+
| David R. McGown | dmcgown@access.digex.net | |
| 206 Adams Ave | Home: (703)683-1599 | LINUX INSIDE! |
| Alexandria, VA 22301 | Work: (703)416-1240 | |
+----------------------+--------------------------+-----------------------+