here's a quick follow up patch. this fixes the inline warnings for gcc. as per http://gcc.gnu.org/onlinedocs/gcc/Alternate-Keywords.html The keywords asm, typeof and inline are not available in programs compiled with -ansi or -std (although inline can be used in a program compiled with -std=c99). The ISO C99 keyword restrict is only available when -std=gnu99 (which will eventually be the default) or -std=c99 (or the equivalent -std=iso9899:1999) is used. The way to solve these problems is to put __ at the beginning and end of each problematical keyword. For example, use __asm__ instead of asm, and __inline__ instead of inline. I can't figure out what the right macro is for determining if =std=c99 has been passed tho. also, the order of includes for freebsd was incorrect. sys/types.h must come first. thanks dave -----Original Message----- From: Marcel Ruff [mailto:mr at marcelruff.info] Sent: Friday, November 19, 2004 12:03 AM To: xmlblaster at server.xmlblaster.org Subject: Re: [xmlblaster] compiling c-lib on freebsd Viner, David wrote: > this patch allows c-lib (with SOCKET enabled) to compile on FreeBSD using > gcc-2.95.3. the only remaining warnings are: > > [cc] > /home/dviner/mom/xb-svn/xmlBlaster/build.tmp/src/c/util/helper.c:575: > warning: ANSI does not permit the keyword ` > inline' > [cc] > /home/dviner/mom/xb-svn/xmlBlaster/build.tmp/src/c/util/helper.c: In > function `int64ToStr': > [cc] > /home/dviner/mom/xb-svn/xmlBlaster/build.tmp/src/c/util/helper.c:643: > warning: ANSI C does not support the `ll' l > ength modifier > [cc] > /home/dviner/mom/xb-svn/xmlBlaster/build.tmp/src/c/util/helper.c: In > function `strToInt64': > [cc] > /home/dviner/mom/xb-svn/xmlBlaster/build.tmp/src/c/util/helper.c:660: > warning: ANSI C does not support the `ll' l > ength modifier > [cc] > /home/dviner/mom/xb-svn/xmlBlaster/build.tmp/src/c/util/msgUtil.c:196: > warning: ANSI does not permit the keyword > `inline' > > I'm not sure how to remove these warnings, but turning off -pedantic. > > The src/c/socket/xmlBlasterSocket.h file had a ton of windows-style newlines > which caused lots of warnings to be issued on my machine. so, I ran > dos2unix on it, which is why it appears that there are a lot of changes to > it. in fact, the only significant addition is: > # include <sys/types.h> > before the inclusion of <sys/socket.h>. This is required on FreeBSD, and > likely won't hurt any other Unix platforms. > > Thanks > dave > Dave, thank you for this patch, it is now commited to subversion and available online. Your patch is handled under LGPL (or any coming more free license like Apache or BSD) it this is OK for you. The inline warning: ------------------- Do you now how to ask the compiler if it wants C99 or an older variant? If such a define is available we could set it in basicDefs.h to something like: # if __standard_C__ >= C99 /* How to check this ??? */ # define _INLINE_FUNC inline # else # define _INLINE_FUNC # endif Using of 64 bit long long: -------------------------- We need a 64 bit long, so if a compiler does not support it there is currently no workaround implemented. Anyhow, you should tell your gcc to compile as C99 and the warnings should disappear even with -pedantic, regards, Marcel -- http://www.xmlBlaster.org
Attachment:
patch2.patch
Description: Binary data