I got the source for 3COM gig ethernet card from Asus website and I am having compile issue.
I suspect it is more of gcc/ccp issue rather than 3COM code. Here is what I get on the very first file skge.c
My gcc is from sarge/testing.lata [rramesh] 574 > make
gcc -D__KERNEL__ -Wall -fno-strict-aliasing -march=i686 -Wstrict-prototypes -O2 -DMODULE -I. -DSK_USE_CSUM -I /usr/src/linux/include -include /usr/src/linux/include/linux/modversions.h -DMODVERSIONS -c -o skge.o skge.c
In file included from /usr/src/linux/include/net/checksum.h:33,
from h/skdrv1st.h:172,
from skge.c:347:
/usr/src/linux/include/asm/checksum.h:72:30: missing terminating " character
In file included from /usr/src/linux/include/net/checksum.h:33,
from h/skdrv1st.h:172,
from skge.c:347:
/usr/src/linux/include/asm/checksum.h: In function `ip_fast_csum':
/usr/src/linux/include/asm/checksum.h:73: error: parse error before "movl"
/usr/src/linux/include/asm/checksum.h:75:17: invalid suffix "f" on integer constant
/usr/src/linux/include/asm/checksum.h:82:17: invalid suffix "b" on integer constant
/usr/src/linux/include/asm/checksum.h:90:13: missing terminating " character
/usr/src/linux/include/asm/checksum.h:105:17: missing terminating " character
/usr/src/linux/include/asm/checksum.h: In function `csum_fold':
/usr/src/linux/include/asm/checksum.h:106: error: parse error before "addl"
/usr/src/linux/include/asm/checksum.h:108:17: missing terminating " character
/usr/src/linux/include/asm/checksum.h:121:13: missing terminating " character
/usr/src/linux/include/asm/checksum.h: In function `csum_tcpudp_nofold':
/usr/src/linux/include/asm/checksum.h:122: error: parse error before "addl"
/usr/src/linux/include/asm/checksum.h:126:9: missing terminating " character
/usr/src/linux/include/asm/checksum.h:128: error: `__x' undeclared (first use in this function)
/usr/src/linux/include/asm/checksum.h:128: error: (Each undeclared identifier is reported only once
/usr/src/linux/include/asm/checksum.h:128: error: for each function it appears in.)
/usr/src/linux/include/asm/checksum.h: At top level:
/usr/src/linux/include/asm/checksum.h:128: error: parse error before ')' token
/usr/src/linux/include/asm/checksum.h:161:17: missing terminating " character
/usr/src/linux/include/asm/checksum.h: In function `csum_ipv6_magic':
/usr/src/linux/include/asm/checksum.h:162: error: parse error before "addl"
/usr/src/linux/include/asm/checksum.h:173:17: missing terminating " character
/usr/src/linux/include/asm/checksum.h:176: error: `__x' undeclared (first use in this function)
/usr/src/linux/include/asm/checksum.h:176: warning: no return statement in function returning non-void
/usr/src/linux/include/asm/checksum.h: At top level:
/usr/src/linux/include/asm/checksum.h:176: error: parse error before ')' token
/usr/src/linux/include/asm/checksum.h:176: error: parse error before "__u32"
skge.c: In function `skge_probe':
skge.c:525: warning: integer constant is too large for "long" type
make: *** [skge.o] Error 1
lata [rramesh] 575 > gcc --version
gcc (GCC) 3.3.2 (Debian)
Copyright (C) 2003 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
It appears that cpp is choking on multiline __asm__ macros. Any help/pointers appreciated.
Thanks and Regards
Ramesh