Thread: [Madwifi-users] Changeset 2062 : compile error in ah_osdep.h
Status: Beta
Brought to you by:
otaku
From: Michael P. <mpl...@di...> - 2007-03-02 16:07:44
|
Hi, i'm using Debian sarge with gcc-3.3 or gcc-3.4 to compile r2162 for kernel 2.4.25 I have this error while compiling: make[3]: Entering directory `/home/mplourde/Developpement/madwifi/madwifi-ng-r2168-20070302/ath_hal' gcc -D__KERNEL__ -I/usr/src/linux-2.4.25/include -Wall -Wstrict-prototypes - Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer -pip e -mpreferred-stack-boundary=2 -march=i486 -DMODULE -include ./../include/compat.h -I./../include -I./../ath_hal -I./../hal -Werror -DAH_ BYTE_ORDER=AH_LITTLE_ENDIAN -fomit-frame-pointer -DATH_SUPERG_FF=1 -DATH_SUP ERG_DYNTURBO=1 -DATH_TURBO_SCAN=1 -DATH_SUPERG_XR=1 -DOPT_AH_H=\"./../hal/pu blic/i386-elf.opt_ah.h\" -nostdinc -iwithprefix include -DKBUILD_BASENAME=ah_os -DEXPORT_SYMTAB -c ah_os.c In file included from ../hal/ah.h:62, from ah_os.c:64: ../ath_hal/ah_osdep.h:58: error: syntax error before '*' token ../ath_hal/ah_osdep.h:58: warning: type defaults to `int' in declaration of `ath_iomem_t' ../ath_hal/ah_osdep.h:58: warning: data definition has no type or storage class In file included from ah_os.c:64: ../hal/ah.h:613: error: syntax error before "ath_iomem_t" ../hal/ah.h:613: warning: no semicolon at end of struct or union ../hal/ah.h:786: error: syntax error before '}' token ../hal/ah.h:809: error: syntax error before "ath_iomem_t" ../hal/ah.h:809: warning: function declaration isn't a prototype In file included from ah_os.c:65: ../ath_hal/ah_os.h:193: error: syntax error before "ath_iomem_t" ../ath_hal/ah_os.h:193: warning: function declaration isn't a prototype ah_os.c:89: error: syntax error before "ath_iomem_t" ah_os.c:90: warning: function declaration isn't a prototype ah_os.c: In function `_ath_hal_attach': ah_os.c:91: error: `devid' undeclared (first use in this function) ah_os.c:91: error: (Each undeclared identifier is reported only once ah_os.c:91: error: for each function it appears in.) ah_os.c:91: error: `sc' undeclared (first use in this function) ah_os.c:91: error: `t' undeclared (first use in this function) ah_os.c:91: error: `h' undeclared (first use in this function) ah_os.c:91: error: `s' undeclared (first use in this function) ah_os.c: In function `ath_hal_detach': ah_os.c:101: error: dereferencing pointer to incomplete type It's been long time since i have done programs in C and i don't understand well the line: typedef void __iomem* ath_iomem_t; Is it a pointer of __iomem or a void pointer ?? Am-I missing something in my compilator or library ? Thanks for any help, Michael Plourde |
From: Pavel R. <pr...@gn...> - 2007-03-02 17:53:56
|
On Fri, 2007-03-02 at 11:12 -0500, Michael Plourde wrote: > Hi, > > i'm using Debian sarge with gcc-3.3 or gcc-3.4 to compile r2162 for kernel > 2.4.25 > > I have this error while compiling: > > ../ath_hal/ah_osdep.h:58: error: syntax error before '*' token > ../ath_hal/ah_osdep.h:58: warning: type defaults to `int' in declaration of > `ath_iomem_t' Nice catch. It's fixed now. > It's been long time since i have done programs in C and i don't understand > well the line: > > typedef void __iomem* ath_iomem_t; > > Is it a pointer of __iomem or a void pointer ?? __iomem is a sparse annotation, i.e. it's an indicator of a separate address space for the sparse checker. Addresses marked with __iomem cannot be dereferenced directly because they can be pointers to the I/O space ("ports" in Intel processors) or to device memory that requires byte swapping. For the compiler __iomem expands to nothing and can be ignored. > Am-I missing something in my compilator or library ? Linux 2.4.25 doesn't have __iomem definition. MadWifi had the replacement definition, but it was in a wrong header. This case was missed because newer 2.4 kernels define __iomem. -- Regards, Pavel Roskin |