[Swan-dev] Append .kvm to OBJDIR when a KVM build

Andrew Cagney andrew.cagney at gmail.com
Tue May 26 19:33:25 EEST 2015


FYI,

To move this forward, I've modifed the top-level kvm-update et.al. target
so that it forces OBJDIR=OBJ.kvm, specifically:

- it invokes "swan-build OBJDIR=OBJ.kvm" et.al. which, in turn, invokes
"make OBJDIR=OBJ.kvm ..."

- in an attempt to avoid unexpected behaviour, should someone just invoke
"make" from the KVM command line, it also forces  "OBJDIR=OBJ.kvm" into the
current shell's environment (in general relying on environment variables
makes for confusion)

As a bonus, it also fixes a bug where "swan-build" would "rm -rf
OBJ.linux.*", it now does "rm -rf $(make showobjdir)", i.e., $(OBJDIR)

This means "make check UPDATEONLY=1" is unaffected (other than the above
bug fix)

Andrew

PS: With this in place I can finally tweak the kvm-update target so that it
does incremental builds.


On 11 March 2015 at 23:26, Andrew Cagney <andrew.cagney at gmail.com> wrote:

>
>
> On 11 March 2015 at 15:03, Antony Antony <antony at phenome.org> wrote:
>
>> On Wed, Mar 11, 2015 at 11:46:12AM -0400, Andrew Cagney wrote:
>> > Another of my local tweaks.
>> >
>> > Currently,  a VM build (swan-build) unhelpfully deletes all OBJ.linux.*
>> > directories.  This, of course, includes any native build you've been
>> > doing.  I'd like to tweak things so that:
>> >
>> > - on the VM OBJDIR has .kvm (.vm?) appended so VM and host builds use
>> > different directories
>> > - swan-build, which should only be run on a VM,  deletes OBJ.linix*.vm
>> > (yes it should rely on "make distclean" but that's another story)
>> >
>> > Since the VM has its own private build directory this also gets us that
>> bit
>> > closer to not even needing the delete.
>>
>> Probably things got better recently. A couple of weeks ago, deleting
>> OBJDIR inside VM was a safe strategy.
>>
>
>>
>> > I've appended the key part of the patch.  The magic grep line matches
>> what
>> > virt-what does.
>> >
>> > Andrew
>> >
>> > diff --git a/mk/objdir.mk b/mk/objdir.mk
>> > index f86c9db..a581319 100644
>> > --- a/mk/objdir.mk
>> > +++ b/mk/objdir.mk
>> > @@ -56,4 +56,8 @@ BUILDENV:=$(shell uname -s | tr 'A-Z' 'a-z' | sed -e
>> > 's/\(.*\)-.*/\1/')
>> >  endif
>> >  export BUILDENV
>> >
>> > -OBJDIR?=OBJ.${BUILDENV}.${ARCH}
>> > +ifeq ($(origin OBJDIR_KVM),undefined)
>> > +OBJDIR_KVM:=$(shell grep -i QEMU /proc/cpuinfo >/dev/null 2>&1 && echo
>> > .kvm)
>> > +endif
>> > +
>> > +OBJDIR?=OBJ.${BUILDENV}.${ARCH}$(OBJDIR_KVM)
>>
>> If someone build on kvm, not running full testsuite, just building to
>> install, suddenly directory will have OBJDIR_KVM. That does not sound
>> convenient to me. This probably belong to mk/testing.mk or something. I
>> am not sure if it is good idea for the upstream.
>>
>>
> I'm not following.  Why is appending .vm a problem?
> It is certainly shorter than $(uname -r) "3.18.7-200.fc21.x86_64" which
> should also be added.
>
> Why modobj isn't under $(OBJDIR) I don't know, perhaps it can be fixed?
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.libreswan.org/pipermail/swan-dev/attachments/20150526/7439fc59/attachment.html>


More information about the Swan-dev mailing list