[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [XEN PATCH] libs: Fix unstable libs build on FreeBSD, auto-generate version-script


  • To: Jan Beulich <jbeulich@xxxxxxxx>
  • From: Anthony PERARD <anthony.perard@xxxxxxxxxx>
  • Date: Wed, 15 Feb 2023 17:41:57 +0000
  • Authentication-results: esa3.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
  • Cc: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, Wei Liu <wl@xxxxxxx>, "Juergen Gross" <jgross@xxxxxxxx>, <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • Delivery-date: Wed, 15 Feb 2023 17:42:20 +0000
  • Ironport-data: A9a23:d2v3LaomwkzNuZiy9vW2D4zfMTteBmLfZRIvgKrLsJaIsI4StFCzt garIBmPOv3eN2Shf9wlYI+08E0OvJTVmNFhT1A++yBjHn8U95uZCYyVIHmrMnLJJKUvbq7FA +Y2MYCccZ9uHhcwgj/3b9ANeFEljfngqoLUUbKCYWYpA1c/Ek/NsDo788YhmIlknNOlNA2Ev NL2sqX3NUSsnjV5KQr40YrawP9UlKm06WxwUmAWP6gR5weEziRNVvrzGInqR5fGatgMdgKFb 76rIIGRpgvx4xorA9W5pbf3GmVirmn6ZFXmZtJ+AsBOszAazsAA+v9T2Mk0MC+7vw6hjdFpo OihgLTrIesf0g8gr8xGO/VQO3kW0aSrY9YrK1Dn2SCY5xWun3cBX5yCpaz5VGEV0r8fPI1Ay RAXADBTLQyJqvuu/LC+Q/Npj/o/MdLSEIxK7xmMzRmBZRonaZXKQqGM7t5ExjYgwMtJGJ4yZ eJAN2ApNk6ZJUQSZBFOUslWcOSA3xETdxVRrk6VoqwmpXDe1gVr3JDmMcbPe8zMTsJQ9qqdj jOZpjSoWE9LXDCZ4QGn8y2Mu8TUpnviU70JV6ed9b1b3VLGkwT/DzVJDADm8JFVkHWWWd1FL FcP0jEztqV0/0uuJvHtUhv9rHOasxo0X9tLD/Z8+AyL0rDT4QuSGi4DVDEpQNU+udU/XzACy l6DlNSvDjtq2JWXQ3+A8rafrRupJDMYa2QFYEcsUg8t89Tl5oYpgXryos1LSfDvyIevQHepn m7M9XJl71kOsSIV/6XlvkzNriu0mprMRxQw7zvLQ3mcwgwsMeZJeLeUwVTc6P9BKqOQQV+Ao GUIlqCi0QweMX2evHfTGbtQRdlF897AaWSB2gA3Q/HN4hz3oxaekZZsDCaSzauDGuINYnfXb UDaomu9D7cDbSLxPcebj29cYvnGLJQM9/y/DZg4jfIUOPCdkTNrGgk0PSZ8OEiz+HXAaYllZ f+mnT+EVB7285hPwjusXPs62rQ23C04zm67bcmlkEr8gOvAPi/PGe1t3L6yggYRtvvsTOL9q Ys3Cid3408HDL2Wjtf/r+b/0mzm3VBkXMur+qS7h8aIIxZ8GXFJNhMi6epJRmCRpIwMzr2g1 ijkCidlJK/X2SWvxfOiNioyN9sCnP9X8RoGAMDbFQzwgClzPNb/vft3mlleVeBPydGPBMVcF 5EtE/hsyNwWItgb01zxtaXAkbE=
  • Ironport-hdrordr: A9a23:HuCMBaE4JoEA+vtGpLqE0seALOsnbusQ8zAXPhZKOHtom6uj5q OTdZUgtSMc5wx7ZJhNo7q90cq7IE80l6Qb3WBLB8bHYOCOggLBEGgF1+bfKlbbdREWmNQw6U /OGZIObuEZoTJB/KTHCKjTKadE/OW6
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

On Wed, Feb 15, 2023 at 04:30:43PM +0100, Jan Beulich wrote:
> On 15.02.2023 16:21, Anthony PERARD wrote:
> > @@ -13,6 +14,10 @@ MAJOR := $(shell $(XEN_ROOT)/version.sh 
> > $(XEN_ROOT)/xen/Makefile)
> >  endif
> >  MINOR ?= 0
> >  
> > +ifeq ($(origin version-script), undefined)
> > +version-script := libxen$(LIBNAME).map.tmp
> > +endif
> 
> Such a use of $(origin ...) is pretty fragile. Maybe better use ?= ?

I'm not sure why I used $(origin), I've written that more than 6 month
ago, but this way of using it is actually described in the manual, when
documenting ?= but with a = instead of := .
So, maybe I wanted to have ?= but with immediate evaluation rather than
deferred. Maybe I had issue with $(version-script) evaluating to
different values.

If that ok, I'd like to keep using these runes, since ?:= doesn't exist.

> > @@ -72,6 +77,10 @@ headers.lst: FORCE
> >     @{ set -e; $(foreach h,$(LIBHEADERS),echo $(h);) } > $@.tmp
> >     @$(call move-if-changed,$@.tmp,$@)
> >  
> > +libxen$(LIBNAME).map.tmp: FORCE
> > +   echo 'VERS_$(MAJOR).$(MINOR) { global: *; };' >.$@.tmp
> > +   $(call move-if-changed,.$@.tmp,$@)
> 
> Isn't this going to get in the way of your "build everything from root"
> effort, where $@ will include a path? Also do we really need .tmp.tmp
> files?

Good call, I'll replace that with $(@D)/.$(@F), that will be one
less thing to deal with, Also, I guess just adding a dot to the filename
would be enough, and we would have `mv .libxen.map.tmp libxen.map.tmp`,
and no more .tmp.tmp files.

> >  lib$(LIB_FILE_NAME).a: $(OBJS-y)
> 
> Seeing this right adjacent in context - any reason you use libxen$(LIBNAME)
> and not the same lib$(LIB_FILE_NAME) for the base file name?

That was the name used before, I guess it would be fine to rename. I
just need to set $(version-script) later as $(LIB_FILE_NAME) would not
be defined yet.

> > @@ -120,7 +129,7 @@ TAGS:
> >  clean::
> >     rm -rf $(TARGETS) *~ $(DEPS_RM) $(OBJS-y) $(PIC_OBJS)
> >     rm -f lib$(LIB_FILE_NAME).so.$(MAJOR).$(MINOR) 
> > lib$(LIB_FILE_NAME).so.$(MAJOR)
> > -   rm -f headers.chk headers.lst
> > +   rm -f headers.chk headers.lst libxen*.map.tmp
> 
> If I hadn't checked, I'd have assumed that *.tmp are removed without
> being named explicitly. So yes, I see the need for the addition, but then
> I wonder why you don't also remove the .*.tmp.tmp file, which may be left
> around if the build is interrupted at exactly the "right" time.

I forgot because $(move-if-changed) remove the temporary file. I'll
clean the .*.tmp file.

Thanks,

-- 
Anthony PERARD



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.