xen_common.h has the following function declaration: extern xen_version *xen_get_client_side_version(void); This is not a prototype and should be. Compilers invoked with sensible warning options barf on declarations which do not specify the argument types, even for function pointers. Also, libxen should be compiled with -Wno-declaration-after-statement since it uses that programming style. Ian. Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com> _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
-Wno-declaration-after-statement is not supported by gcc older than 3.4. Also it should be the default behaviour anyway, even with -Wall, and libxen throws away the passed-in CFLAGS so it will never see -Wdeclaration-after-statement. What would be nice would be to make libxen not throw away provided CFLAGS and, if it''s not too far gone down the declaration-after-statement route, fix it to put its declarations at the top of blocks like a good C program. If that''s a big job though it''s probably not worth the bother. -- Keir On 15/1/08 17:04, "Ian Jackson" <Ian.Jackson@eu.citrix.com> wrote:> xen_common.h has the following function declaration: > extern xen_version *xen_get_client_side_version(void); > > This is not a prototype and should be. Compilers invoked with > sensible warning options barf on declarations which do not specify the > argument types, even for function pointers. > > Also, libxen should be compiled with -Wno-declaration-after-statement > since it uses that programming style. > > Ian. > > Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com> > > Index: xen-unstable.hg/tools/libxen/include/xen/api/xen_common.h > ==================================================================> --- xen-unstable.hg.orig/tools/libxen/include/xen/api/xen_common.h 2008-01-15 > 16:06:48.000000000 +0000 > +++ xen-unstable.hg/tools/libxen/include/xen/api/xen_common.h 2008-01-15 > 16:06:50.000000000 +0000 > @@ -107,7 +107,7 @@ > * minor, and extraversion of the Xen release with which it was released, > * plus the library''s own version as the patch. > */ > -extern xen_version *xen_get_client_side_version(); > +extern xen_version *xen_get_client_side_version(void); > > > extern bool > Index: xen-unstable.hg/tools/libxen/Makefile > ==================================================================> --- xen-unstable.hg.orig/tools/libxen/Makefile 2008-01-15 16:06:48.000000000 > +0000 > +++ xen-unstable.hg/tools/libxen/Makefile 2008-01-15 16:06:50.000000000 +0000 > @@ -24,7 +24,8 @@ > CFLAGS = -Iinclude \ > $(shell xml2-config --cflags) \ > $(shell curl-config --cflags) \ > - -W -Wall -Wmissing-prototypes -Werror -std=c99 -O2 -fPIC > + -W -Wall -Wmissing-prototypes -Werror -std=c99 -O2 -fPIC \ > + -Wno-declaration-after-statement > > LDFLAGS = $(shell xml2-config --libs) \ > $(shell curl-config --libs) > Index: xen-unstable.hg/tools/libxen/Makefile.dist > ==================================================================> --- xen-unstable.hg.orig/tools/libxen/Makefile.dist 2008-01-15 > 16:06:48.000000000 +0000 > +++ xen-unstable.hg/tools/libxen/Makefile.dist 2008-01-15 16:06:50.000000000 > +0000 > @@ -22,7 +22,8 @@ > CFLAGS = -Iinclude \ > $(shell xml2-config --cflags) \ > $(shell curl-config --cflags) \ > - -W -Wall -Wmissing-prototypes -Werror -std=c99 -O2 -fPIC > + -W -Wall -Wmissing-prototypes -Werror -std=c99 -O2 -fPIC \ > + -Wno-declaration-after-statement > > LDFLAGS = $(shell xml2-config --libs) \ > $(shell curl-config --libs) > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xensource.com > http://lists.xensource.com/xen-devel_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Keir Fraser writes ("Re: [Xen-devel] [PATCH] libxen compilation fixes"):> -Wno-declaration-after-statement is not supported by gcc older than 3.4. > Also it should be the default behaviour anyway, even with -Wall, and libxen > throws away the passed-in CFLAGS so it will never see > -Wdeclaration-after-statement.I must have missed an earlier -Wdeclaration-after-statement provided by some package build script, then. Sorry.> What would be nice would be to make libxen not throw away provided CFLAGS > and, if it''s not too far gone down the declaration-after-statement route, > fix it to put its declarations at the top of blocks like a good C program. > If that''s a big job though it''s probably not worth the bother.I think libxen is too far gone. Ian. _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Hi, >...>> What would be nice would be to make libxen not throw away provided CFLAGS >> and, if it''s not too far gone down the declaration-after-statement route, >> fix it to put its declarations at the top of blocks like a good C program. >> If that''s a big job though it''s probably not worth the bother.Attached the patch to fix this. I left out the changes to the Makefile, as Keir objected because of the missing gcc-3.3 compatibility (which I can confirm). When I inserted -Wdeclaration-after-statement into my Makefile, everything compiled smoothly without any warnings. I included Ian''s prototype fix, too. Signed-off-by: Andre Przywara <andre.przywara@amd.com> Regards, Andre. -- Andre Przywara AMD-Operating System Research Center (OSRC), Dresden, Germany Tel: +49 351 277-84917 ----to satisfy European Law for business letters: AMD Saxony Limited Liability Company & Co. KG, Wilschdorfer Landstr. 101, 01109 Dresden, Germany Register Court Dresden: HRA 4896, General Partner authorized to represent: AMD Saxony LLC (Wilmington, Delaware, US) General Manager of AMD Saxony LLC: Dr. Hans-R. Deppe, Thomas McCoy _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel