[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Minios-devel] [UNIKRAFT PATCHv4 05/43] build: Add a makefile function to check GCC version
> -----Original Message----- > From: Simon Kuenzer <simon.kuenzer@xxxxxxxxx> > Sent: 2018年7月12日 17:22 > To: Wei Chen <Wei.Chen@xxxxxxx>; minios-devel@xxxxxxxxxxxxxxxxxxxx > Cc: Kaly Xin <Kaly.Xin@xxxxxxx>; nd <nd@xxxxxxx> > Subject: Re: [Minios-devel] [UNIKRAFT PATCHv4 05/43] build: Add a makefile > function to check GCC version > > Maybe you want to call it also `gcc_version_ge` Yes, that makes sense. > > On 11.07.2018 10:17, Wei Chen wrote: > > Hi Simon, > > > >> -----Original Message----- > >> From: Simon Kuenzer <simon.kuenzer@xxxxxxxxx> > >> Sent: 2018年7月10日 21:52 > >> To: Wei Chen <Wei.Chen@xxxxxxx>; minios-devel@xxxxxxxxxxxxxxxxxxxx > >> Cc: Kaly Xin <Kaly.Xin@xxxxxxx>; nd <nd@xxxxxxx> > >> Subject: Re: [Minios-devel] [UNIKRAFT PATCHv4 05/43] build: Add a makefile > >> function to check GCC version > >> > >> I just noticed that this check is not working if you compare 4.9 (older) > >> with 4.10 (newer) because 4.10 is considered as the floating point > >> number 4.1 by `bc`. As fix we probably should do two individual checks: > >> (1) major and then (2) minor. > >> Btw, do you think you could provide a version that does not need `bc`? I > >> rather prefer something that requires the least possible tools installed > >> on the system. My concern is that we can't assume `bc` is installed as a > >> standard tool. But maybe I am wrong with this concern. What do you think? > >> > > > > Yes, it's possible. I have done a new method to use BASH only, > > No bc, expr, let or ETC required. I will send it with next version. > > > >> On 06.07.2018 11:03, Wei Chen wrote: > >>> In this patch, we add a test_gcc_version function to test GCC > >>> version and return a result. In this case, this function can > >>> be used not only for processor flags check, but also can be > >>> used in other places of Unikraft. > >>> > >>> Signed-off-by: Wei Chen <Wei.Chen@xxxxxxx> > >>> --- > >>> Makefile | 4 ++++ > >>> support/build/Makefile.rules | 5 +++++ > >>> 2 files changed, 9 insertions(+) > >>> > >>> diff --git a/Makefile b/Makefile > >>> index d10f53b..e133039 100644 > >>> --- a/Makefile > >>> +++ b/Makefile > >>> @@ -428,6 +428,10 @@ LIFTOFF := liftoff -e -s > >>> override ARFLAGS:= rcs > >>> CC_VERSION := $(shell $(CC) --version | \ > >>> sed -n -r 's/^.* ([0-9]*)\.([0-9]*)\.([0- > 9]*)[ ]*.*/\1.\2/p') > >>> +# Retrieve GCC major and minor number from CC_VERSION. They would be used > >>> +# to select correct optimization parameters for target CPUs. > >>> +CC_VER_MAJOR := $(word 1,$(subst ., ,$(CC_VERSION))) > >>> +CC_VER_MINOR := $(word 2,$(subst ., ,$(CC_VERSION))) > >>> > >>> ASFLAGS += -DCC_VERSION=$(CC_VERSION) > >>> CFLAGS += -DCC_VERSION=$(CC_VERSION) > >>> diff --git a/support/build/Makefile.rules b/support/build/Makefile.rules > >>> index e317e3d..d5372cd 100644 > >>> --- a/support/build/Makefile.rules > >>> +++ b/support/build/Makefile.rules > >>> @@ -29,6 +29,11 @@ lc = $(subst A,a,$(subst B,b,$(subst C,c,$(subst > >> D,d,$(subst E,e,$(subst F,f,$(s > >>> # upper case > >>> uc = $(subst a,A,$(subst b,B,$(subst c,C,$(subst d,D,$(subst > e,E,$(subst > >> f,F,$(subst g,G,$(subst h,H,$(subst i,I,$(subst j,J,$(subst k,K,$(subst > >> l,L,$(subst m,M,$(subst n,N,$(subst o,O,$(subst p,P,$(subst q,Q,$(subst > >> r,R,$(subst s,S,$(subst t,T,$(subst u,U,$(subst v,V,$(subst w,W,$(subst > >> x,X,$(subst y,Y,$(subst z,Z,$(1))))))))))))))))))))))))))) > >>> > >>> +# test whether GCC version meets the minimum requirement > >>> +# test_gcc_version $gcc_major,$gcc_minor > >>> +define test_gcc_version = > >>> +$(shell echo 'if($(CC_VER_MAJOR).$(CC_VER_MINOR)>=$(1).$(2)) print "y"'| > bc) > >>> +endef > >>> > >>> > >> > ############################################################################## > >> ## > >>> # > >>> _______________________________________________ Minios-devel mailing list Minios-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/minios-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |