From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-vs1-f41.google.com (mail-vs1-f41.google.com [209.85.217.41]) by dpdk.org (Postfix) with ESMTP id 73E8A378B for ; Thu, 7 Mar 2019 13:42:48 +0100 (CET) Received: by mail-vs1-f41.google.com with SMTP id b17so2496286vsr.13 for ; Thu, 07 Mar 2019 04:42:48 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=fsEW0JRM0ehR8LiD7fl6ajVejp7tFsKL0wsN0KcCP00=; b=stCJJJHD5bsKq1IUEllE3Lm7xYyrEwNlQI83aWcv9xLsVwug2z0oumpKwIclS3U+Ww G8SpWhXIvVnSvg9TEWI8ksVCsb03f3E9yPIatnod4xhwYLOAegblfibn7WRH38Veiwba 1CoIyxJE2DpQdLFQNIVozXSpBmJA6T1irLpIRAVIoowLR4vgtp4CwCRg2Jd1s3qFLZai OjIvX2HhmTuHAkqfSbSJXERrd/ad0hvcOai5pkBTDWqyk9aIgQwmRHuotbJ61scQqpDV OoufmB6VKr/tPu+2CJbj7DEjigM6dft+haCtX16nH9or0tEK8l0+uLzKMsTk7iRBw4dd 2WRA== X-Gm-Message-State: APjAAAVSs/GgrIXox0mZ1hdLZPlvR9nFjXXKs36PDxSebOMAy2aoBAgQ +t/fDTtDPb5N0fgO5Mv82QTVw/bqiRTmBJRHfTrsSg== X-Google-Smtp-Source: APXvYqyMJnFeOlwTGMBe9gFQqWWUBcL2ZhjZWcO8OP+or2Mga8gkhb0Oz45xFxGh61uCz0CpIrUkMg1c1gL/kvS1KZM= X-Received: by 2002:a67:ef90:: with SMTP id r16mr6715853vsp.141.1551962567703; Thu, 07 Mar 2019 04:42:47 -0800 (PST) MIME-Version: 1.0 References: <20190307115448.54041-1-bruce.richardson@intel.com> <20190307115448.54041-3-bruce.richardson@intel.com> In-Reply-To: From: David Marchand Date: Thu, 7 Mar 2019 13:42:36 +0100 Message-ID: To: Bruce Richardson Cc: dev Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.15 Subject: Re: [dpdk-dev] [PATCH 2/4] build: use version number from config file X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 07 Mar 2019 12:42:48 -0000 On Thu, Mar 7, 2019 at 1:37 PM David Marchand wrote: > > > On Thu, Mar 7, 2019 at 12:55 PM Bruce Richardson < > bruce.richardson@intel.com> wrote: > >> Since we have the version number in a separate file at the root level, >> we should not need to duplicate this in rte_version.h too. Best >> approach here is to move the macros for specifying the year/month/etc. >> parts from the version header file to the build config file - leaving >> the other utility macros for e.g. printing the version string, where the= y >> are. >> >> For make this is done by having a little bit of awk parse the version >> file and pass the results through to the preprocessor for the config >> generation stage. >> >> For meson, this is done by parsing the version and adding it to the >> standard dpdk_conf object. >> >> Signed-off-by: Bruce Richardson >> --- >> DPDK_VERSION | 2 +- >> config/common_base | 14 +++++++++ >> config/rte_config.h | 5 ++++ >> lib/librte_eal/common/include/rte_version.h | 32 --------------------- >> meson.build | 14 +++++++++ >> mk/rte.sdkconfig.mk | 2 ++ >> 6 files changed, 36 insertions(+), 33 deletions(-) >> >> diff --git a/DPDK_VERSION b/DPDK_VERSION >> index c4a4cd00b..e013b54dd 100644 >> --- a/DPDK_VERSION >> +++ b/DPDK_VERSION >> @@ -1 +1 @@ >> -19.05.0-rc0 >> +19.05.1 >> > > Might be a bit early for the stable while the 19.05 is still being cooked > :-) > > > diff --git a/config/common_base b/config/common_base >> index 0b09a9348..6292bc4af 100644 >> --- a/config/common_base >> +++ b/config/common_base >> @@ -1,6 +1,20 @@ >> # SPDX-License-Identifier: BSD-3-Clause >> # Copyright(c) 2010-2017 Intel Corporation >> >> +# >> +# String that appears before the version number >> +# >> +CONFIG_RTE_VER_PREFIX=3D"DPDK" >> + >> +# >> +# Version information completed when this file is processed for a build >> +# >> +CONFIG_RTE_VER_YEAR=3D__YEAR >> +CONFIG_RTE_VER_MONTH=3D__MONTH >> +CONFIG_RTE_VER_MINOR=3D__MINOR >> +CONFIG_RTE_VER_SUFFIX=3D__SUFFIX >> +CONFIG_RTE_VER_RELEASE=3D__RELEASE >> + >> > > ? > I think you broke make support. > > =3D=3D Build lib/librte_eal/linuxapp/eal > CC eal.o > In file included from > /home/dmarchan/git/pub/dpdk/lib/librte_eal/linuxapp/eal/eal.c:49:0: > /home/dmarchan/git/pub/dpdk/master/include/rte_version.h: In function > =E2=80=98rte_version=E2=80=99: > /home/dmarchan/git/pub/dpdk/master/include/rte_version.h:47:13: error: > =E2=80=98RTE_VER_SUFFIX=E2=80=99 undeclared (first use in this function) > if (strlen(RTE_VER_SUFFIX) =3D=3D 0) > ^ > /home/dmarchan/git/pub/dpdk/master/include/rte_version.h:47:13: note: eac= h > undeclared identifier is reported only once for each function it appears = in > /home/dmarchan/git/pub/dpdk/master/include/rte_version.h:49:4: error: > =E2=80=98RTE_VER_PREFIX=E2=80=99 undeclared (first use in this function) > RTE_VER_PREFIX, > ^ > /home/dmarchan/git/pub/dpdk/master/include/rte_version.h:50:4: error: > =E2=80=98RTE_VER_YEAR=E2=80=99 undeclared (first use in this function) > RTE_VER_YEAR, > ^ > /home/dmarchan/git/pub/dpdk/master/include/rte_version.h:51:4: error: > =E2=80=98RTE_VER_MONTH=E2=80=99 undeclared (first use in this function) > RTE_VER_MONTH, > ^ > /home/dmarchan/git/pub/dpdk/master/include/rte_version.h:52:4: error: > =E2=80=98RTE_VER_MINOR=E2=80=99 undeclared (first use in this function) > RTE_VER_MINOR); > ^ > /home/dmarchan/git/pub/dpdk/master/include/rte_version.h:60:4: error: > =E2=80=98RTE_VER_RELEASE=E2=80=99 undeclared (first use in this function) > RTE_VER_RELEASE); > ^ > make[5]: *** [eal.o] Error 1 > make[4]: *** [eal] Error 2 > make[3]: *** [linuxapp] Error 2 > make[2]: *** [librte_eal] Error 2 > make[1]: *** [lib] Error 2 > make: *** [all] Error 2 > > > > # >> # define executive environment >> # RTE_EXEC_ENV values are the directories in mk/exec-env/ >> diff --git a/config/rte_config.h b/config/rte_config.h >> index 7606f5d7b..5f1749dbb 100644 >> --- a/config/rte_config.h >> +++ b/config/rte_config.h >> @@ -18,6 +18,11 @@ >> >> #include >> >> +/** >> + * String that appears before the version number >> + */ >> +#define RTE_VER_PREFIX "DPDK" >> + >> /****** library defines ********/ >> >> /* compat defines */ >> diff --git a/lib/librte_eal/common/include/rte_version.h >> b/lib/librte_eal/common/include/rte_version.h >> index a7eed7ab7..50867ea81 100644 >> --- a/lib/librte_eal/common/include/rte_version.h >> +++ b/lib/librte_eal/common/include/rte_version.h >> @@ -19,38 +19,6 @@ extern "C" { >> #include >> #include >> >> -/** >> - * String that appears before the version number >> - */ >> -#define RTE_VER_PREFIX "DPDK" >> - >> -/** >> - * Major version/year number i.e. the yy in yy.mm.z >> - */ >> -#define RTE_VER_YEAR 19 >> - >> -/** >> - * Minor version/month number i.e. the mm in yy.mm.z >> - */ >> -#define RTE_VER_MONTH 5 >> - >> -/** >> - * Patch level number i.e. the z in yy.mm.z >> - */ >> -#define RTE_VER_MINOR 0 >> - >> -/** >> - * Extra string to be appended to version number >> - */ >> -#define RTE_VER_SUFFIX "-rc" >> - >> -/** >> - * Patch release number >> - * 0-15 =3D release candidates >> - * 16 =3D release >> - */ >> -#define RTE_VER_RELEASE 0 >> - >> /** >> * Macro to compute a version number usable for comparisons >> */ >> diff --git a/meson.build b/meson.build >> index 757618144..9d5320395 100644 >> --- a/meson.build >> +++ b/meson.build >> @@ -22,6 +22,20 @@ dpdk_app_link_libraries =3D [] >> pver =3D meson.project_version().split('.') >> major_version =3D '@0@.@1@'.format(pver.get(0), pver.get(1)) >> >> +# extract all version information into the build configuration >> +dpdk_conf.set('RTE_VER_YEAR', pver.get(0)) >> +dpdk_conf.set('RTE_VER_MONTH', pver.get(1)) >> +if pver.get(2).contains('-rc') >> + rc_ver =3D pver.get(2).split('-rc') >> + dpdk_conf.set('RTE_VER_MINOR', rc_ver.get(0)) >> + dpdk_conf.set_quoted('RTE_VER_SUFFIX', '-rc') >> + dpdk_conf.set('RTE_VER_RELEASE', rc_ver.get(1)) >> +else >> + dpdk_conf.set('RTE_VER_MINOR', pver.get(2)) >> + dpdk_conf.set_quoted('RTE_VER_SUFFIX', '') >> + dpdk_conf.set('RTE_VER_RELEASE', 0) >> +endif >> + >> pmd_subdir_opt =3D get_option('drivers_install_subdir') >> if pmd_subdir_opt.contains('') >> pmd_subdir_opt =3D >> major_version.join(pmd_subdir_opt.split('')) >> diff --git a/mk/rte.sdkconfig.mk b/mk/rte.sdkconfig.mk >> index 8dc31d7cf..bbfa24dee 100644 >> --- a/mk/rte.sdkconfig.mk >> +++ b/mk/rte.sdkconfig.mk >> @@ -76,6 +76,8 @@ else >> $(RTE_OUTPUT)/.config: $(RTE_CONFIG_TEMPLATE) FORCE | $(RTE_OUTPUT) >> $(Q)if [ "$(RTE_CONFIG_TEMPLATE)" !=3D "" -a -f >> "$(RTE_CONFIG_TEMPLATE)" ]; then \ >> $(CPP) -undef -P -x assembler-with-cpp \ >> + `cat $(RTE_SRCDIR)/DPDK_VERSION | sed -e 's/-rc/.-rc./' = | >> \ >> + awk -F '.' '{print "-D__YEAR=3D"$$1, "-D__MONTH=3D"$$2, >> "-D__MINOR=3D"$$3, "-D__SUFFIX=3D\""$$4"\"", "-D__RELEASE=3D"int($$5)}'`= \ >> > > Can't we just pass the RTE_VER_XXX as CFLAGS here ? > Argh no, I mean passing RTE_VER_XXX as global CFLAGS. I am not really a fan of having the version in the config file, but I have no real argument against it. --=20 David Marchand