From: Horms <horms@verge.net.au>
To: Keir Fraser <Keir.Fraser@cl.cam.ac.uk>
Cc: Magnus Damm <magnus@valinux.co.jp>, xen-devel@lists.xensource.com
Subject: Re: [PATCH 11/11] build: Don't assume that mkbuildtree is executable
Date: Thu, 13 Apr 2006 11:22:21 +0900 [thread overview]
Message-ID: <20060413022220.GA31092@verge.net.au> (raw)
In-Reply-To: <44c763b0817dc86644cb1036123b6e20@cl.cam.ac.uk>
On Tue, Apr 11, 2006 at 10:23:39AM +0100, Keir Fraser wrote:
>
> On 11 Apr 2006, at 09:50, Horms wrote:
>
> >>I think all the scripts currently specify /bin/bash. You could define
> >>SHELL or SH in Config.mk, default to /bin/bash, and use that variable
> >>in place of 'sh'.
> >
> >Understood, if they are indeed all using /bin/bash at the moment. It
> >seems as well to just specify bash. It can be made more flexible if the
> >need arises. Here is an updated patch.
>
> Let's not risk any regressions: it should be /bin/bash, and apart from
> the configurability argument it's also cleaner imo to define a wrapper
> variable for /bin/bash in Config.mk.
Understood
--
Horms
build: Don't assume that mkbuildtree is executable
In some cases, say for instance for some bizarre reason the tree was
checked out of CVS, which doesn't necessarily store file permissions,
mkbuildtree may not be executable.
I had trouble deciding between chmoding mkbuildtree, which changes the
tree, and running sh mkbuildtree, which assumes its a shell script. I
settled on the latter.
As all the scripts currently specify /bin/bash, it is used, rather than sh
which was in the original version of this patch. This can be overridden by
setting MKBUILD_SHELL in the environment.
MKBUILD_SHELL was chosen over SHELL as the latter has special significance
within make.
Signed-Off-By: Horms <horms@verge.net.au>
Config.mk | 2 ++
Makefile | 3 +++
buildconfigs/Rules.mk | 8 ++++++--
buildconfigs/mk.linux-2.6-xen | 4 ++--
linux-2.6-xen-sparse/mkbuildtree | 10 ++++++----
tools/debugger/gdb/gdbbuild | 3 ++-
tools/misc/xen-clone | 5 ++++-
7 files changed, 25 insertions(+), 10 deletions(-)
--- x/Config.mk
+++ x/Config.mk
@@ -92,4 +92,6 @@ XENSTAT_XENTOP ?= y
VTPM_TOOLS ?= n
+MKBUILD_SHELL ?= /bin/bash
+
-include $(XEN_ROOT)/.config
--- x/Makefile
+++ x/Makefile
@@ -172,6 +172,9 @@ help:
@echo ' install into prefix/lib/python<VERSION>'
@echo ' instead of <PREFIX>/lib/python'
@echo ' true if set to non-empty value, false otherwise'
+ @echo ' MKBUILD_SHELL'
+ @echo ' - shell used to invoke various mkbuild scripts'
+ @echo ' default is /bin/bash'
# Use this target with extreme care!
.PHONY: uninstall
--- x/buildconfigs/Rules.mk
+++ x/buildconfigs/Rules.mk
@@ -99,14 +99,18 @@ endif
linux-2.6-xen.patch: ref-linux-$(LINUX_VER)/.valid-ref
rm -rf tmp-$@
cp -al $(<D) tmp-$@
- ( cd linux-2.6-xen-sparse && ./mkbuildtree ../tmp-$@ )
+ ( cd linux-2.6-xen-sparse && \
+ MKBUILD_SHELL="$(MKBUILD_SHELL)" $(MKBUILD_SHELL) \
+ ./mkbuildtree ../tmp-$@ )
diff -Nurp $(patsubst ref%,pristine%,$(<D)) tmp-$@ > $@ || true
rm -rf tmp-$@
%-xen.patch: ref-%/.valid-ref
rm -rf tmp-$@
cp -al $(<D) tmp-$@
- ( cd $*-xen-sparse && ./mkbuildtree ../tmp-$@ )
+ ( cd $*-xen-sparse && \
+ MKBUILD_SHELL="$(MKBUILD_SHELL)" $(MKBUILD_SHELL) \
+ ./mkbuildtree ../tmp-$@ )
diff -Nurp $(patsubst ref%,pristine%,$(<D)) tmp-$@ > $@ || true
rm -rf tmp-$@
--- x/buildconfigs/mk.linux-2.6-xen
+++ x/buildconfigs/mk.linux-2.6-xen
@@ -22,8 +22,8 @@ $(LINUX_DIR)/include/linux/autoconf.h: r
rm -rf $(LINUX_DIR)
cp -al $(<D) $(LINUX_DIR)
# Apply arch-xen patches
- ( cd linux-$(LINUX_SERIES)-xen-sparse ; \
- LINUX_ARCH=$(LINUX_ARCH) ./mkbuildtree ../$(LINUX_DIR) )
+ ( cd linux-$(LINUX_SERIES)-xen-sparse && \
+ LINUX_ARCH=$(LINUX_ARCH) bash ./mkbuildtree ../$(LINUX_DIR) )
# Re-use config from install dir if one exits else use default config
CONFIG_VERSION=$$(sed -ne 's/^EXTRAVERSION = //p' $(LINUX_DIR)/Makefile); \
[ -r $(DESTDIR)/boot/config-$(LINUX_VER)$$CONFIG_VERSION-$(EXTRAVERSION) ] && \
バイナリー・ファイル/dev/nullとto-work/linux-2.6-xen-sparse/.mkbuildtree.swpは違います
--- x/linux-2.6-xen-sparse/mkbuildtree
+++ x/linux-2.6-xen-sparse/mkbuildtree
@@ -90,8 +90,9 @@ abs_to_rel ${AD} ${AS}
RS=$DESTPATH
# Arch-specific pre-processing
-if [ -x arch/${LINUX_ARCH}/xen-mkbuildtree-pre ]; then
- arch/${LINUX_ARCH}/xen-mkbuildtree-pre
+if [ -e arch/${LINUX_ARCH}/xen-mkbuildtree-pre ]; then
+ MKBUILD_SHELL="$MKBUILD_SHELL" $MKBUILD_SHELL \
+ arch/${LINUX_ARCH}/xen-mkbuildtree-pre
fi
# Remove old copies of files and directories at the destination
@@ -115,6 +116,7 @@ relative_lndir ../../../${RS}/../xen/inc
# Arch-specific post-processing
cd ${AD}
-if [ -x arch/${LINUX_ARCH}/xen-mkbuildtree-post ]; then
- arch/${LINUX_ARCH}/xen-mkbuildtree-post
+if [ -e arch/${LINUX_ARCH}/xen-mkbuildtree-post ]; then
+ MKBUILD_SHELL="$MKBUILD_SHELL" $MKBUILD_SHELL \
+ arch/${LINUX_ARCH}/xen-mkbuildtree-post
fi
--- x/tools/debugger/gdb/gdbbuild
+++ x/tools/debugger/gdb/gdbbuild
@@ -1,5 +1,6 @@
#!/bin/sh
+[ "$MKBUILD_SHELL" ] || MKBUILD_SHELL="/bin/bash"
[ "$GDB_MIRROR" ] || GDB_MIRROR="ftp://ftp.gnu.org/gnu/gdb/"
rm -rf gdb-6.2.1 gdb-6.2.1-linux-i386-xen
@@ -7,7 +8,7 @@ rm -rf gdb-6.2.1 gdb-6.2.1-linux-i386-xe
tar xjf gdb-6.2.1.tar.bz2
cd gdb-6.2.1-xen-sparse
-./mkbuildtree ../gdb-6.2.1
+MKBUILD_SHELL="$MKBUILD_SHELL" $MKBUILD_SHELL ./mkbuildtree ../gdb-6.2.1
cd ..
mkdir gdb-6.2.1-linux-i386-xen
--- x/tools/misc/xen-clone
+++ x/tools/misc/xen-clone
@@ -5,6 +5,8 @@
# this script contains some CL site specific details, but can easily be adapted
#
+MKBUILD_SHELL=${MKBUILD_SHELL:-/bin/bash}
+
# test which site we're on
[ -d /usr/groups/xeno/ -a -d /usr/groups/srgboot ] && SITE=UCCL
@@ -113,7 +115,8 @@ else
# Turn linux into xenolinux then build it
cd xenolinux-${LINUX_VER}-sparse
- ./mkbuildtree ../../linux-${LINUX_VER}
+ MKBUILD_SHELL="$MKBUILD_SHELL" $MKBUILD_SHELL \
+ ./mkbuildtree ../../linux-${LINUX_VER}
cd ../..
mv linux-${LINUX_VER} xenolinux-${LINUX_VER}
cd xenolinux-${LINUX_VER}
next prev parent reply other threads:[~2006-04-13 2:22 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-04-10 2:29 [PATCH 0/11] libxc: various build cleanups Horms
2006-04-10 2:29 ` [PATCH 1/11] build: Remove unused netbsd build fragments Horms
2006-04-10 2:29 ` [PATCH 2/11] build: Remove iptables and python loging helper targets Horms
2006-04-10 2:29 ` [PATCH 3/11] build: Make sure that DESTDIR is set Horms
2006-04-10 2:29 ` [PATCH 4/11] build: Clean up use of .PHONY Horms
2006-04-10 2:29 ` [PATCH 5/11] build: clean up output of make help a little bit Horms
2006-04-10 2:29 ` [PATCH 6/11] build: Document the use of XEN_PYTHON_NATIVE_INSTALL Horms
2006-04-10 2:29 ` [PATCH 7/11] build: clean up kclean and distclean for kernel Horms
2006-04-10 2:29 ` [PATCH 8/11] build: Clean pygrub's a.out Horms
2006-04-10 2:29 ` [PATCH 9/11] build: Use --bzip2 with tar instead of -j Horms
2006-04-10 2:30 ` [PATCH 10/11] build: make linux download more flexable Horms
2006-04-10 2:30 ` [PATCH 11/11] build: Don't assume that mkbuildtree is executable Horms
2006-04-10 15:40 ` Keir Fraser
2006-04-11 1:23 ` Horms
2006-04-11 8:26 ` Keir Fraser
2006-04-11 8:50 ` Horms
2006-04-11 9:23 ` Keir Fraser
2006-04-13 2:22 ` Horms [this message]
2006-04-13 10:21 ` Keir Fraser
2006-04-14 1:44 ` Horms
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20060413022220.GA31092@verge.net.au \
--to=horms@verge.net.au \
--cc=Keir.Fraser@cl.cam.ac.uk \
--cc=magnus@valinux.co.jp \
--cc=xen-devel@lists.xensource.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.