Hi Corentin, Can you confirm that u16, u32, etc are typedef/defined in /usr/include/linux/types.h on your machine?
I'm a little perplexed right now. Since the definition of u16/u32 should be handled. Could you also send the config.log output from configure. Maybe configure can give us additional information. Thanks, Al > hello > > Strange, i send it. > I resend both as attachment and "in mail". > > Cordially > > LABBE C. > > Albert Chu a écrit : >> Hi Corentin, >> >> >> I don't see an attachment. Did you forget to attach? >> >> Al >> >>> Hello >>> >>> This is the io.h requested. >>> Apparently it's the u32 and u16 typedef who isn't used. >>> >>> Cordially >>> >>> LABBE C. >>> >>> Secondly in configure script, i saw this: >>> Perhaps it's relevant for you >>> >>> checking asm/io.h usability... no >>> checking asm/io.h presence... yes >>> configure: WARNING: asm/io.h: present but cannot be compiled >>> configure: WARNING: asm/io.h: check for missing prerequisite >>> headers? >>> configure: WARNING: asm/io.h: see the Autoconf documentation >>> configure: WARNING: asm/io.h: section "Present But Cannot Be >>> Compiled" >>> configure: WARNING: asm/io.h: proceeding with the preprocessor's result >>> configure: WARNING: asm/io.h: in the future, the compiler will take >>> precedence >>> configure: WARNING: ## ------------------------------------- ## >>> configure: WARNING: ## Report this to [email protected] ## >>> configure: WARNING: ## ------------------------------------- ## >>> checking for asm/io.h... yes >>> >>> >>> Albert Chu a écrit : >>>> Hi Corentin, >>>> >>>> Don't know about the issue off the top of my head. From the error >>>> messages, below it seems like it's a minor typedef/header file porting >>>> issue. >>>> >>>>> /usr/include/asm-sparc/io.h:16: error: syntax error before >>>>> "flip_dword" >>>>> /usr/include/asm-sparc/io.h:16: error: syntax error before "l" >>>> Could you send me this io.h file? Maybe I can figure it out from >>>> that. >>>> >>>> Al >>>> >>>>> Hello >>>>> >>>>> I want to use freeipmi on a sun blade100 (sparc64 platform). >>>>> But freeipmi won't compile. >>>>> >>>>> The distribution used is gentoo. >>>>> I first tried with the "gentoo stable version" of freeipmi 0.2.3 >>>>> It failed with: >>>>> sys/io.h: No such file or directory >>>>> I saw that this error is corriged, so i tried lastest version 0.3.1 >>>>> but >>>>> it >>>>> also failed >>>>> This is the error: >>>>> >>>>> gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I./../include >>>>> -I./../../common/src >>>>> -DIPMI_IPCKEY=\"/usr/local/var/lib/freeipmi/ipckey\" >>>>> -DIPMI_DEBUG_IPCKEY=\"../../libfreeipmi/src/ipmi-semaphores.h\" >>>>> -D_GNU_SOURCE -D_REENTRANT -Wall -g -O2 -MT >>>>> libfreeipmi_la-ipmi-kcs-api.lo -MD -MP -MF >>>>> .deps/libfreeipmi_la-ipmi-kcs-api.Tpo -c ipmi-kcs-api.c -fPIC -DPIC >>>>> -o >>>>> .libs/libfreeipmi_la-ipmi-kcs-api.o >>>>> In file included from /usr/include/asm/io.h:4, >>>>> from ipmi-inband.h:43, >>>>> from ipmi-kcs-api.c:45: >>>>> /usr/include/asm-sparc/io.h:16: error: syntax error before >>>>> "flip_dword" >>>>> /usr/include/asm-sparc/io.h:16: error: syntax error before "l" >>>>> /usr/include/asm-sparc/io.h: In function `flip_dword': >>>>> /usr/include/asm-sparc/io.h:18: error: `l' undeclared (first use in >>>>> this >>>>> function) >>>>> /usr/include/asm-sparc/io.h:18: error: (Each undeclared identifier is >>>>> reported only once >>>>> /usr/include/asm-sparc/io.h:18: error: for each function it appears >>>>> in.) >>>>> /usr/include/asm-sparc/io.h: At top level: >>>>> /usr/include/asm-sparc/io.h:21: error: syntax error before >>>>> "flip_word" >>>>> /usr/include/asm-sparc/io.h:21: error: syntax error before "w" >>>>> /usr/include/asm-sparc/io.h: In function `flip_word': >>>>> /usr/include/asm-sparc/io.h:23: error: `w' undeclared (first use in >>>>> this >>>>> function) >>>>> /usr/include/asm-sparc/io.h: At top level: >>>>> /usr/include/asm-sparc/io.h:32: error: syntax error before >>>>> "__raw_readb" >>>>> /usr/include/asm-sparc/io.h: In function `__raw_readb': >>>>> /usr/include/asm-sparc/io.h:34: error: syntax error before "u8" >>>>> /usr/include/asm-sparc/io.h: At top level: >>>>> /usr/include/asm-sparc/io.h:37: error: syntax error before >>>>> "__raw_readw" >>>>> /usr/include/asm-sparc/io.h: In function `__raw_readw': >>>>> /usr/include/asm-sparc/io.h:39: error: syntax error before "u16" >>>>> /usr/include/asm-sparc/io.h: At top level: >>>>> /usr/include/asm-sparc/io.h:42: error: syntax error before >>>>> "__raw_readl" >>>>> /usr/include/asm-sparc/io.h: In function `__raw_readl': >>>>> /usr/include/asm-sparc/io.h:44: error: syntax error before "u32" >>>>> /usr/include/asm-sparc/io.h: At top level: >>>>> /usr/include/asm-sparc/io.h:47: error: syntax error before "b" >>>>> /usr/include/asm-sparc/io.h: In function `__raw_writeb': >>>>> /usr/include/asm-sparc/io.h:49: error: syntax error before "u8" >>>>> /usr/include/asm-sparc/io.h: At top level: >>>>> /usr/include/asm-sparc/io.h:52: error: syntax error before "w" >>>>> /usr/include/asm-sparc/io.h: In function `__raw_writew': >>>>> /usr/include/asm-sparc/io.h:54: error: syntax error before "u16" >>>>> /usr/include/asm-sparc/io.h: At top level: >>>>> /usr/include/asm-sparc/io.h:57: error: syntax error before "l" >>>>> /usr/include/asm-sparc/io.h: In function `__raw_writel': >>>>> /usr/include/asm-sparc/io.h:59: error: syntax error before "u32" >>>>> /usr/include/asm-sparc/io.h: At top level: >>>>> /usr/include/asm-sparc/io.h:62: error: syntax error before "__readb" >>>>> /usr/include/asm-sparc/io.h: In function `__readb': >>>>> /usr/include/asm-sparc/io.h:64: error: syntax error before "u8" >>>>> /usr/include/asm-sparc/io.h: At top level: >>>>> /usr/include/asm-sparc/io.h:67: error: syntax error before "__readw" >>>>> /usr/include/asm-sparc/io.h: In function `__readw': >>>>> /usr/include/asm-sparc/io.h:69: error: syntax error before "u16" >>>>> /usr/include/asm-sparc/io.h: At top level: >>>>> /usr/include/asm-sparc/io.h:72: error: syntax error before "__readl" >>>>> /usr/include/asm-sparc/io.h: In function `__readl': >>>>> /usr/include/asm-sparc/io.h:74: error: syntax error before "u32" >>>>> /usr/include/asm-sparc/io.h: At top level: >>>>> /usr/include/asm-sparc/io.h:77: error: syntax error before "b" >>>>> /usr/include/asm-sparc/io.h: In function `__writeb': >>>>> /usr/include/asm-sparc/io.h:79: error: syntax error before "u8" >>>>> /usr/include/asm-sparc/io.h: At top level: >>>>> /usr/include/asm-sparc/io.h:82: error: syntax error before "w" >>>>> /usr/include/asm-sparc/io.h: In function `__writew': >>>>> /usr/include/asm-sparc/io.h:84: error: syntax error before "u16" >>>>> /usr/include/asm-sparc/io.h: At top level: >>>>> /usr/include/asm-sparc/io.h:87: error: syntax error before "l" >>>>> /usr/include/asm-sparc/io.h: In function `__writel': >>>>> /usr/include/asm-sparc/io.h:89: error: syntax error before "u32" >>>>> /usr/include/asm-sparc/io.h: At top level: >>>>> /usr/include/asm-sparc/io.h:152: error: syntax error before >>>>> "_sbus_readb" >>>>> /usr/include/asm-sparc/io.h: In function `_sbus_readb': >>>>> /usr/include/asm-sparc/io.h:154: error: syntax error before "u8" >>>>> /usr/include/asm-sparc/io.h: At top level: >>>>> /usr/include/asm-sparc/io.h:157: error: syntax error before >>>>> "_sbus_readw" >>>>> /usr/include/asm-sparc/io.h: In function `_sbus_readw': >>>>> /usr/include/asm-sparc/io.h:159: error: syntax error before "u16" >>>>> /usr/include/asm-sparc/io.h: At top level: >>>>> /usr/include/asm-sparc/io.h:162: error: syntax error before >>>>> "_sbus_readl" >>>>> /usr/include/asm-sparc/io.h: In function `_sbus_readl': >>>>> /usr/include/asm-sparc/io.h:164: error: syntax error before "u32" >>>>> /usr/include/asm-sparc/io.h: At top level: >>>>> /usr/include/asm-sparc/io.h:167: error: syntax error before "b" >>>>> /usr/include/asm-sparc/io.h: In function `_sbus_writeb': >>>>> /usr/include/asm-sparc/io.h:169: error: syntax error before "u8" >>>>> /usr/include/asm-sparc/io.h: At top level: >>>>> /usr/include/asm-sparc/io.h:172: error: syntax error before "w" >>>>> /usr/include/asm-sparc/io.h: In function `_sbus_writew': >>>>> /usr/include/asm-sparc/io.h:174: error: syntax error before "u16" >>>>> /usr/include/asm-sparc/io.h: At top level: >>>>> /usr/include/asm-sparc/io.h:177: error: syntax error before "l" >>>>> /usr/include/asm-sparc/io.h: In function `_sbus_writel': >>>>> /usr/include/asm-sparc/io.h:179: error: syntax error before "u32" >>>>> ipmi-kcs-api.c: In function `ipmi_kcs_ctx_io_init': >>>>> ipmi-kcs-api.c:374: warning: implicit declaration of function `iopl' >>>>> make[4]: *** [libfreeipmi_la-ipmi-kcs-api.lo] Error 1 >>>>> make[4]: Leaving directory `/root/freeipmi-0.3.1/libfreeipmi/src' >>>>> make[3]: *** [../../libfreeipmi/src/libfreeipmi.la] Error 2 >>>>> make[3]: Leaving directory `/root/freeipmi-0.3.1/doc/examples' >>>>> make[2]: *** [all-recursive] Error 1 >>>>> make[2]: Leaving directory `/root/freeipmi-0.3.1/doc' >>>>> make[1]: *** [all-recursive] Error 1 >>>>> make[1]: Leaving directory `/root/freeipmi-0.3.1' >>>>> make: *** [all] Error 2 >>>>> >>>>> >>>>> If you have any idea to fix that. >>>>> I am ready to help you, if you need more info. >>>>> Thanks in advance. >>>>> >>>>> Cordialy >>>>> >>>>> LABBE C. >>>>> >>>>> >>>>> _______________________________________________ >>>>> Freeipmi-users mailing list >>>>> [email protected] >>>>> http://lists.gnu.org/mailman/listinfo/freeipmi-users >>>>> >>>> >>> _______________________________________________ >>> Freeipmi-users mailing list >>> [email protected] >>> http://lists.gnu.org/mailman/listinfo/freeipmi-users >>> >> >> > > /* > * $Id: io.h,v 1.30 2001/12/21 01:23:21 davem Exp $ > */ > #ifndef __SPARC_IO_H > #define __SPARC_IO_H > > #include <linux/kernel.h> > #include <linux/types.h> > #include <linux/ioport.h> /* struct resource */ > > #include <asm/page.h> /* IO address mapping routines need this */ > #include <asm/system.h> > > #define page_to_phys(page) (((page) - mem_map) << PAGE_SHIFT) > > static inline u32 flip_dword (u32 l) > { > return ((l&0xff)<<24) | (((l>>8)&0xff)<<16) | > (((l>>16)&0xff)<<8)| ((l>>24)&0xff); > } > > static inline u16 flip_word (u16 w) > { > return ((w&0xff) << 8) | ((w>>8)&0xff); > } > > #define mmiowb() > > /* > * Memory mapped I/O to PCI > */ > > static inline u8 __raw_readb(const volatile void __iomem *addr) > { > return *(__force volatile u8 *)addr; > } > > static inline u16 __raw_readw(const volatile void __iomem *addr) > { > return *(__force volatile u16 *)addr; > } > > static inline u32 __raw_readl(const volatile void __iomem *addr) > { > return *(__force volatile u32 *)addr; > } > > static inline void __raw_writeb(u8 b, volatile void __iomem *addr) > { > *(__force volatile u8 *)addr = b; > } > > static inline void __raw_writew(u16 w, volatile void __iomem *addr) > { > *(__force volatile u16 *)addr = w; > } > > static inline void __raw_writel(u32 l, volatile void __iomem *addr) > { > *(__force volatile u32 *)addr = l; > } > > static inline u8 __readb(const volatile void __iomem *addr) > { > return *(__force volatile u8 *)addr; > } > > static inline u16 __readw(const volatile void __iomem *addr) > { > return flip_word(*(__force volatile u16 *)addr); > } > > static inline u32 __readl(const volatile void __iomem *addr) > { > return flip_dword(*(__force volatile u32 *)addr); > } > > static inline void __writeb(u8 b, volatile void __iomem *addr) > { > *(__force volatile u8 *)addr = b; > } > > static inline void __writew(u16 w, volatile void __iomem *addr) > { > *(__force volatile u16 *)addr = flip_word(w); > } > > static inline void __writel(u32 l, volatile void __iomem *addr) > { > *(__force volatile u32 *)addr = flip_dword(l); > } > > #define readb(__addr) __readb(__addr) > #define readw(__addr) __readw(__addr) > #define readl(__addr) __readl(__addr) > #define readb_relaxed(__addr) readb(__addr) > #define readw_relaxed(__addr) readw(__addr) > #define readl_relaxed(__addr) readl(__addr) > > #define writeb(__b, __addr) __writeb((__b),(__addr)) > #define writew(__w, __addr) __writew((__w),(__addr)) > #define writel(__l, __addr) __writel((__l),(__addr)) > > /* > * I/O space operations > * > * Arrangement on a Sun is somewhat complicated. > * > * First of all, we want to use standard Linux drivers > * for keyboard, PC serial, etc. These drivers think > * they access I/O space and use inb/outb. > * On the other hand, EBus bridge accepts PCI *memory* > * cycles and converts them into ISA *I/O* cycles. > * Ergo, we want inb & outb to generate PCI memory cycles. > * > * If we want to issue PCI *I/O* cycles, we do this > * with a low 64K fixed window in PCIC. This window gets > * mapped somewhere into virtual kernel space and we > * can use inb/outb again. > */ > #define inb_local(__addr) __readb((void __iomem *)(unsigned > long)(__addr)) > #define inb(__addr) __readb((void __iomem *)(unsigned > long)(__addr)) > #define inw(__addr) __readw((void __iomem *)(unsigned > long)(__addr)) > #define inl(__addr) __readl((void __iomem *)(unsigned > long)(__addr)) > > #define outb_local(__b, __addr) __writeb(__b, (void __iomem *)(unsigned > long)(__addr)) > #define outb(__b, __addr) __writeb(__b, (void __iomem *)(unsigned > long)(__addr)) > #define outw(__w, __addr) __writew(__w, (void __iomem *)(unsigned > long)(__addr)) > #define outl(__l, __addr) __writel(__l, (void __iomem *)(unsigned > long)(__addr)) > > #define inb_p(__addr) inb(__addr) > #define outb_p(__b, __addr) outb(__b, __addr) > #define inw_p(__addr) inw(__addr) > #define outw_p(__w, __addr) outw(__w, __addr) > #define inl_p(__addr) inl(__addr) > #define outl_p(__l, __addr) outl(__l, __addr) > > void outsb(unsigned long addr, const void *src, unsigned long cnt); > void outsw(unsigned long addr, const void *src, unsigned long cnt); > void outsl(unsigned long addr, const void *src, unsigned long cnt); > void insb(unsigned long addr, void *dst, unsigned long count); > void insw(unsigned long addr, void *dst, unsigned long count); > void insl(unsigned long addr, void *dst, unsigned long count); > > #define IO_SPACE_LIMIT 0xffffffff > > /* > * SBus accessors. > * > * SBus has only one, memory mapped, I/O space. > * We do not need to flip bytes for SBus of course. > */ > static inline u8 _sbus_readb(const volatile void __iomem *addr) > { > return *(__force volatile u8 *)addr; > } > > static inline u16 _sbus_readw(const volatile void __iomem *addr) > { > return *(__force volatile u16 *)addr; > } > > static inline u32 _sbus_readl(const volatile void __iomem *addr) > { > return *(__force volatile u32 *)addr; > } > > static inline void _sbus_writeb(u8 b, volatile void __iomem *addr) > { > *(__force volatile u8 *)addr = b; > } > > static inline void _sbus_writew(u16 w, volatile void __iomem *addr) > { > *(__force volatile u16 *)addr = w; > } > > static inline void _sbus_writel(u32 l, volatile void __iomem *addr) > { > *(__force volatile u32 *)addr = l; > } > > /* > * The only reason for #define's is to hide casts to unsigned long. > */ > #define sbus_readb(__addr) _sbus_readb(__addr) > #define sbus_readw(__addr) _sbus_readw(__addr) > #define sbus_readl(__addr) _sbus_readl(__addr) > #define sbus_writeb(__b, __addr) _sbus_writeb(__b, __addr) > #define sbus_writew(__w, __addr) _sbus_writew(__w, __addr) > #define sbus_writel(__l, __addr) _sbus_writel(__l, __addr) > > static inline void sbus_memset_io(volatile void __iomem *__dst, int c, > __kernel_size_t n) > { > while(n--) { > sbus_writeb(c, __dst); > __dst++; > } > } > > static inline void > _memset_io(volatile void __iomem *dst, int c, __kernel_size_t n) > { > volatile void __iomem *d = dst; > > while (n--) { > writeb(c, d); > d++; > } > } > > #define memset_io(d,c,sz) _memset_io(d,c,sz) > > static inline void > _memcpy_fromio(void *dst, const volatile void __iomem *src, > __kernel_size_t n) > { > char *d = dst; > > while (n--) { > char tmp = readb(src); > *d++ = tmp; > src++; > } > } > > #define memcpy_fromio(d,s,sz) _memcpy_fromio(d,s,sz) > > static inline void > _memcpy_toio(volatile void __iomem *dst, const void *src, __kernel_size_t > n) > { > const char *s = src; > volatile void __iomem *d = dst; > > while (n--) { > char tmp = *s++; > writeb(tmp, d); > d++; > } > } > > #define memcpy_toio(d,s,sz) _memcpy_toio(d,s,sz) > > #ifdef __KERNEL__ > > /* > * Bus number may be embedded in the higher bits of the physical address. > * This is why we have no bus number argument to ioremap(). > */ > extern void __iomem *ioremap(unsigned long offset, unsigned long size); > #define ioremap_nocache(X,Y) ioremap((X),(Y)) > extern void iounmap(volatile void __iomem *addr); > > /* > * Bus number may be in res->flags... somewhere. > */ > extern void __iomem *sbus_ioremap(struct resource *res, unsigned long > offset, > unsigned long size, char *name); > extern void sbus_iounmap(volatile void __iomem *vaddr, unsigned long > size); > > > /* > * At the moment, we do not use CMOS_READ anywhere outside of rtc.c, > * so rtc_port is static in it. This should not change unless a new > * hardware pops up. > */ > #define RTC_PORT(x) (rtc_port + (x)) > #define RTC_ALWAYS_BCD 0 > > /* Nothing to do */ > /* P3: Only IDE DMA may need these. XXX Verify that it still does... */ > > #define dma_cache_inv(_start,_size) do { } while (0) > #define dma_cache_wback(_start,_size) do { } while (0) > #define dma_cache_wback_inv(_start,_size) do { } while (0) > > #endif > > #endif /* !(__SPARC_IO_H) */ > > > _______________________________________________ > Freeipmi-users mailing list > [email protected] > http://lists.gnu.org/mailman/listinfo/freeipmi-users > -- Albert Chu [EMAIL PROTECTED] 925-422-5311 Computer Scientist High Performance Systems Division Lawrence Livermore National Laboratory _______________________________________________ Freeipmi-users mailing list [email protected] http://lists.gnu.org/mailman/listinfo/freeipmi-users
