All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0 of 2] Make tools cross-friendly, try 2
@ 2008-01-21 15:29 Aron Griffis
  2008-01-21 15:29 ` [PATCH 1 of 2] Make tools/Makefile cross-friendly Aron Griffis
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Aron Griffis @ 2008-01-21 15:29 UTC (permalink / raw)
  To: xen-devel; +Cc: Christoph.Egger, xen-ia64-devel

Hi,

This is an update of the patchset originally posted here:

http://lists.xensource.com/archives/html/xen-devel/2008-01/msg00620.html

This update includes changes suggested by Christoph's review,
in particular:
- fix vnconfig typo
- make the ldconfig logic better

That last fix actually behaves a bit differently than
before, but I think it's better to alert the user than
assume we can create the cache.  Here's the delta:

 	# This relatively common in a sys-root; libs are installed but
-	# ldconfig hasn't run there, so ldconfig -p won't work.  We can
-	# only fix it if it's writeable.
-	[ "$OS" != Linux ] || \
-	[ -f "$CROSS_SYS_ROOT/etc/ld.so.cache" ] || \
-	ldconfig -r "$CROSS_SYS_ROOT" && \
+	# ldconfig hasn't run there, so ldconfig -p won't work.
+	if [ "$OS" = Linux -a ! -f "$CROSS_SYS_ROOT/etc/ld.so.cache" ]; then
+	    echo "Please run ldconfig -r \"$CROSS_SYS_ROOT\" to generate ld.so.cache"
+	    # fall through; ldconfig test below should fail
+	fi
 	ldconfig -p ${CROSS_SYS_ROOT+-r "$CROSS_SYS_ROOT"} | grep -Fq "$1"
 	return $?

I did not revert the SunOS test.  I have a high degree of
confidence that it's correct, and IMHO it's better to be
consistent.

Thanks,
Aron

17 files changed, 160 insertions(+), 224 deletions(-)
tools/Makefile                  |   15 +++++-
tools/check/check_brctl         |   24 ++---------
tools/check/check_crypto_lib    |   20 +--------
tools/check/check_curl          |   41 +++---------------
tools/check/check_iproute       |   25 +++--------
tools/check/check_openssl_devel |   12 -----
tools/check/check_python        |   11 -----
tools/check/check_python_devel  |   11 -----
tools/check/check_python_xml    |    9 +---
tools/check/check_udev          |   31 +++-----------
tools/check/check_x11_devel     |   15 +-----
tools/check/check_xgettext      |   12 -----
tools/check/check_xml2          |   34 ++-------------
tools/check/check_zlib_devel    |   12 -----
tools/check/check_zlib_lib      |   18 +-------
tools/check/chk                 |    9 +---
tools/check/funcs.sh            |   85 +++++++++++++++++++++++++++++++++++++++

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH 1 of 2] Make tools/Makefile cross-friendly
  2008-01-21 15:29 [PATCH 0 of 2] Make tools cross-friendly, try 2 Aron Griffis
@ 2008-01-21 15:29 ` Aron Griffis
  2008-01-21 15:29 ` [PATCH 2 of 2] Make tools/check scripts cross-friendly Aron Griffis
  2008-01-21 16:53 ` [PATCH 0 of 2] Make tools cross-friendly, try 2 Christoph Egger
  2 siblings, 0 replies; 4+ messages in thread
From: Aron Griffis @ 2008-01-21 15:29 UTC (permalink / raw)
  To: xen-devel; +Cc: Christoph.Egger, xen-ia64-devel

# HG changeset patch
# User Aron Griffis <aron@hp.com>
# Date 1200715193 18000
# Node ID 79cf8ffbc6678f201d35724bf083ea9749818597
# Parent  ff90abf572f2d5aa7d4a7f764b3c343b66a06210
Make tools/Makefile cross-friendly

Pass Xen cross-compilation options through to ioemu.
Export CROSS_SYS_ROOT for use by scripts.  Unexport
IOEMU_DIR since it isn't used outside of the Makefile.

Signed-off-by: Aron Griffis <aron@hp.com>

diff -r ff90abf572f2 -r 79cf8ffbc667 tools/Makefile
--- a/tools/Makefile	Fri Jan 18 14:11:20 2008 -0700
+++ b/tools/Makefile	Fri Jan 18 22:59:53 2008 -0500
@@ -26,6 +26,12 @@ ifeq ($(XEN_COMPILE_ARCH),$(XEN_TARGET_A
 ifeq ($(XEN_COMPILE_ARCH),$(XEN_TARGET_ARCH))
 SUBDIRS-$(PYTHON_TOOLS) += python
 SUBDIRS-$(PYTHON_TOOLS) += pygrub
+endif
+
+# For the sake of linking, set the sys-root
+ifneq ($(CROSS_COMPILE),)
+CROSS_SYS_ROOT ?= /usr/$(CROSS_COMPILE:-=)/sys-root
+export CROSS_SYS_ROOT
 endif
 
 .PHONY: all
@@ -65,10 +71,15 @@ check_clean:
 
 .PHONY: ioemu ioemuinstall ioemuclean
 ifeq ($(CONFIG_IOEMU),y)
-export IOEMU_DIR ?= ioemu
+IOEMU_DIR ?= ioemu
+ifneq ($(XEN_COMPILE_ARCH),$(XEN_TARGET_ARCH))
+IOEMU_CONFIGURE_CROSS ?= --cross-prefix=$(CROSS_COMPILE) \
+			 --interp-prefix=$(CROSS_SYS_ROOT)
+endif
 ioemu ioemuinstall:
 	[ -f $(IOEMU_DIR)/config-host.mak ] || \
-	  (cd $(IOEMU_DIR) && sh configure --prefix=/usr)
+	  ( cd $(IOEMU_DIR) && sh configure --prefix=/usr \
+		$(IOEMU_CONFIGURE_CROSS) )
 	$(MAKE) -C $(IOEMU_DIR) $(patsubst ioemu%,%,$@)
 ioemuclean:
 	$(MAKE) -C $(IOEMU_DIR) distclean

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH 2 of 2] Make tools/check scripts cross-friendly
  2008-01-21 15:29 [PATCH 0 of 2] Make tools cross-friendly, try 2 Aron Griffis
  2008-01-21 15:29 ` [PATCH 1 of 2] Make tools/Makefile cross-friendly Aron Griffis
@ 2008-01-21 15:29 ` Aron Griffis
  2008-01-21 16:53 ` [PATCH 0 of 2] Make tools cross-friendly, try 2 Christoph Egger
  2 siblings, 0 replies; 4+ messages in thread
From: Aron Griffis @ 2008-01-21 15:29 UTC (permalink / raw)
  To: xen-devel; +Cc: Christoph.Egger, xen-ia64-devel

# HG changeset patch
# User Aron Griffis <aron@hp.com>
# Date 1200929111 18000
# Node ID f2f6aedc492be200642868501255c332b9e4186b
# Parent  79cf8ffbc6678f201d35724bf083ea9749818597
Make tools/check scripts cross-friendly

This patch introduces tools/check/funcs.sh with some
cross-friendly abstractions, then modifies the check_*
scripts to use them.

Signed-off-by: Aron Griffis <aron@hp.com>

diff -r 79cf8ffbc667 -r f2f6aedc492b tools/check/check_brctl
--- a/tools/check/check_brctl	Fri Jan 18 22:59:53 2008 -0500
+++ b/tools/check/check_brctl	Mon Jan 21 10:25:11 2008 -0500
@@ -1,27 +1,13 @@
 #!/bin/sh
 # CHECK-INSTALL
 
-RC=0
+. funcs.sh
 
-case ${OS} in
+case $OS in
 OpenBSD|NetBSD|FreeBSD)
-	# These systems have a bridge builtin
-	TOOL="brconfig"
-	which ${TOOL} 1>/dev/null 2>&1 || RC=1 
-	;;
+	has_or_fail brconfig ;;
 Linux)
-	TOOL="brctl"
-	which ${TOOL} 1>/dev/null 2>&1 || RC=1
-	;;
+	has_or_fail brctl ;;
 *)
-	TOOL=""
-	echo "Unknown OS" && RC=1
-	;;
+	fail "unknown OS" ;;
 esac
-
-if test ${RC} -ne 0; then
-	echo
-	echo " *** Check for the bridge control utils (${TOOL}) FAILED"
-fi
-
-exit ${RC} 
diff -r 79cf8ffbc667 -r f2f6aedc492b tools/check/check_crypto_lib
--- a/tools/check/check_crypto_lib	Fri Jan 18 22:59:53 2008 -0500
+++ b/tools/check/check_crypto_lib	Mon Jan 21 10:25:11 2008 -0500
@@ -1,23 +1,11 @@
 #!/bin/sh
 # CHECK-BUILD CHECK-INSTALL
 
-RC=0
+. funcs.sh
 
-case $(uname -s) in
+case $OS in
 FreeBSD|NetBSD|OpenBSD)
-	exit 0
-	;;
-*)
-	;;
+	exit 0 ;;
 esac
 
-PATH=/sbin:$PATH
-set -e
-ldconfig -p 2>&1 | grep -q libcrypto.so || RC=1
-
-if test ${RC} -ne 0; then
-        echo
-        echo " *** Check for crypto library FAILED"
-fi
-
-exit ${RC}
+has_lib libcrypto.so || fail "missing libcrypto.so"
diff -r 79cf8ffbc667 -r f2f6aedc492b tools/check/check_curl
--- a/tools/check/check_curl	Fri Jan 18 22:59:53 2008 -0500
+++ b/tools/check/check_curl	Mon Jan 21 10:25:11 2008 -0500
@@ -1,38 +1,13 @@
 #!/bin/sh
 # CHECK-BUILD CHECK-INSTALL
 
-if [ ! "$LIBXENAPI_BINDINGS" = "y" ]
-then
-    echo -n "unused, "
-    exit 0
+. funcs.sh
+
+if [ "$LIBXENAPI_BINDINGS" != "y" ]; then
+	echo -n "unused, "
+	exit 0
 fi
 
-RC=0
-
-CURL_CONFIG="$(which curl-config)"
-tmpfile=$(mktemp)
-
-if test -z ${CURL_CONFIG}; then
-    RC=1
-else
-    ${CURL_CONFIG} --libs 2>&1 > /dev/null
-    RC=$?
-fi
-
-if test $RC -ne 0; then
-    echo "FAILED"
-	echo " *** curl-config is missing. "
-    echo " *** Please install curl-devel."
-elif ! ld $($CURL_CONFIG --libs) -o $tmpfile >/dev/null 2>&1; then
-    echo "FAILED"
-    echo " *** dependency libraries for curl are missing: "
-    RC=1
-    for i in $(ld $($CURL_CONFIG --libs) -o $tmpfile 2>&1 >/dev/null); do
-        case $i in
-        -l*) echo lib${i#-l}
-        esac
-    done
-fi
-rm -f $tmpfile
-
-exit $RC
+has_or_fail curl-config
+curl_libs=`curl-config --libs` || fail "curl-config --libs failed"
+test_link $curl_libs || fail "dependency libraries for curl are missing"
diff -r 79cf8ffbc667 -r f2f6aedc492b tools/check/check_iproute
--- a/tools/check/check_iproute	Fri Jan 18 22:59:53 2008 -0500
+++ b/tools/check/check_iproute	Mon Jan 21 10:25:11 2008 -0500
@@ -1,26 +1,15 @@
 #!/bin/sh
 # CHECK-INSTALL
 
-RC=0
+. funcs.sh
 
-case ${OS} in
+PATH=/sbin:$PATH
+
+case $OS in
 OpenBSD|NetBSD|FreeBSD)
-	TOOL="ifconfig"
-	eval ${TOOL} -a 1>/dev/null 2>&1 || RC=1 
-	;;
+	has_or_fail ifconfig ;;
 Linux)
-	TOOL="ip addr"
-	eval ${TOOL} list 1>/dev/null 2>&1 || RC=1 
-	;;
+	has_or_fail ip ;;
 *)
-	TOOL=""
-	echo "Unknown OS" && RC=1 
-	;;
+	fail "unknown OS" ;;
 esac
-
-if test ${RC} -ne 0; then
-	echo
-	echo " *** Check for iproute (${TOOL}) FAILED"
-fi
-
-exit ${RC} 
diff -r 79cf8ffbc667 -r f2f6aedc492b tools/check/check_openssl_devel
--- a/tools/check/check_openssl_devel	Fri Jan 18 22:59:53 2008 -0500
+++ b/tools/check/check_openssl_devel	Mon Jan 21 10:25:11 2008 -0500
@@ -1,14 +1,6 @@
 #!/bin/sh
 # CHECK-BUILD
 
-RC=0
+. funcs.sh
 
-set -e
-test -r /usr/include/openssl/md5.h || RC=1 
-
-if test ${RC} -ne 0; then
-	echo
-	echo " *** Check for openssl headers FAILED"
-fi
-
-exit ${RC}
+has_header openssl/md5.h || fail "missing openssl headers"
diff -r 79cf8ffbc667 -r f2f6aedc492b tools/check/check_python
--- a/tools/check/check_python	Fri Jan 18 22:59:53 2008 -0500
+++ b/tools/check/check_python	Mon Jan 21 10:25:11 2008 -0500
@@ -1,16 +1,9 @@
 #!/bin/sh
 # CHECK-BUILD CHECK-INSTALL
 
-RC=0
+. funcs.sh
 
 python -c '
 import sys
 sys.exit(sys.version_info[0] < 2 or sys.version_info[1] < 2)
-' || RC=1
-
-if test ${RC} -ne 0; then
-	echo
-	echo " *** Check for Python version >= 2.2 FAILED"
-fi
-
-exit ${RC} 
+' || fail "need python version >= 2.2"
diff -r 79cf8ffbc667 -r f2f6aedc492b tools/check/check_python_devel
--- a/tools/check/check_python_devel	Fri Jan 18 22:59:53 2008 -0500
+++ b/tools/check/check_python_devel	Mon Jan 21 10:25:11 2008 -0500
@@ -1,7 +1,7 @@
 #!/bin/sh
 # CHECK-BUILD
 
-RC=0
+. funcs.sh
 
 python -c '
 import os.path, sys
@@ -9,11 +9,4 @@ for p in sys.path:
 	if os.path.exists(p + "/config/Makefile"):
 		sys.exit(0)
 sys.exit(1)
-' || RC=1 
-
-if test ${RC} -ne 0; then
-	echo
-	echo " *** Check for python development environment FAILED"
-fi
-
-exit ${RC}
+' || fail "can't find python devel files"
diff -r 79cf8ffbc667 -r f2f6aedc492b tools/check/check_python_xml
--- a/tools/check/check_python_xml	Fri Jan 18 22:59:53 2008 -0500
+++ b/tools/check/check_python_xml	Mon Jan 21 10:25:11 2008 -0500
@@ -1,8 +1,7 @@
 #!/bin/sh
 # CHECK-INSTALL
 
-python -c 'import xml.dom.minidom' 2>/dev/null || {
-    echo
-    echo "  *** Check for python-xml package FAILED"
-    exit 1
-}
+. funcs.sh
+
+python -c 'import xml.dom.minidom' 2>/dev/null || \
+fail "can't import xml.dom.minidom"
diff -r 79cf8ffbc667 -r f2f6aedc492b tools/check/check_udev
--- a/tools/check/check_udev	Fri Jan 18 22:59:53 2008 -0500
+++ b/tools/check/check_udev	Mon Jan 21 10:25:11 2008 -0500
@@ -1,34 +1,19 @@
 #!/bin/sh
 # CHECK-INSTALL
 
-RC=0
+. funcs.sh
 
-case ${OS} in
+case $OS in
 OpenBSD|NetBSD|FreeBSD)
-	TOOL="vnconfig"
-	which ${TOOL} 1>/dev/null 2>&1 || RC=1
+	has_or_fail vnconfig
 	;;
 Linux)
-	TOOL="udevinfo"
-	UDEV_VERSION="0"
-	test -x "$(which ${TOOL} 2>/dev/null)" && \
-		UDEV_VERSION=$(${TOOL} -V | sed -e 's/^[^0-9]* \([0-9]\{1,\}\)[^0-9]\{0,\}/\1/')
-	if test "${UDEV_VERSION}" -ge 059; then
-		RC=0
-	else
-		TOOL="hotplug"
-		which ${TOOL} 1>/dev/null 2>&1 || RC=1
-	fi
+	has_or_fail udevinfo
+	[ "`udevinfo -V | awk '{print $NF}'`" -ge 59 ] 2>/dev/null || \
+		has hotplug || \
+		fail "udev is too old, upgrade to version 59 or later"
 	;;
 *)
-	TOOL=""
-	echo "Unknown OS" && RC=1
+	fail "unknown OS"
 	;;
 esac
-
-if test ${RC} -ne 0; then
-	echo
-	echo " *** Check for ${TOOL} FAILED"
-fi
-
-exit ${RC}
diff -r 79cf8ffbc667 -r f2f6aedc492b tools/check/check_x11_devel
--- a/tools/check/check_x11_devel	Fri Jan 18 22:59:53 2008 -0500
+++ b/tools/check/check_x11_devel	Mon Jan 21 10:25:11 2008 -0500
@@ -1,15 +1,8 @@
 #!/bin/sh
 # CHECK-BUILD
 
-RC=0
+. funcs.sh
 
-set -e
-test -r /usr/include/X11/keysymdef.h || \
-test -r /usr/X11R6/include/X11/keysymdef.h || RC=1
-
-if test ${RC} -ne 0; then
-	echo
-	echo " *** Check for x11 headers FAILED"
-fi
-
-exit ${RC}
+has_header X11/keysymdef.h || \
+has_header /usr/X11R6/include/X11/keysymdef.h || \
+fail "can't find X11 headers"
diff -r 79cf8ffbc667 -r f2f6aedc492b tools/check/check_xgettext
--- a/tools/check/check_xgettext	Fri Jan 18 22:59:53 2008 -0500
+++ b/tools/check/check_xgettext	Mon Jan 21 10:25:11 2008 -0500
@@ -1,14 +1,6 @@
 #!/bin/sh
 # CHECK-BUILD
 
-RC=0
+. funcs.sh
 
-TOOL="xgettext"
-which ${TOOL} 1>/dev/null 2>&1 || RC=1 
-
-if test ${RC} -ne 0; then
-	echo
-	echo " *** Check for the gettext utility (${TOOL}) FAILED"
-fi
-
-exit ${RC} 
+has_or_fail xgettext
diff -r 79cf8ffbc667 -r f2f6aedc492b tools/check/check_xml2
--- a/tools/check/check_xml2	Fri Jan 18 22:59:53 2008 -0500
+++ b/tools/check/check_xml2	Mon Jan 21 10:25:11 2008 -0500
@@ -1,5 +1,7 @@
 #!/bin/sh
 # CHECK-BUILD CHECK-INSTALL
+
+. funcs.sh
 
 if [ ! "$LIBXENAPI_BINDINGS" = "y" -a ! "$ACM_SECURITY" = "y" ]
 then
@@ -7,32 +9,6 @@ then
     exit 0
 fi
 
-RC=0
-
-XML2_CONFIG="$(which xml2-config)"
-tmpfile=$(mktemp)
-
-if test -z ${XML2_CONFIG}; then
-    RC=1
-else
-    ${XML2_CONFIG} --libs 2>&1 > /dev/null
-    RC=$?
-fi
-
-if test $RC -ne 0; then
-    echo "FAILED"
-	echo " *** xml2-config is missing. "
-    echo " *** Please install libxml2-devel."
-elif ! ld $($XML2_CONFIG --libs) -o $tmpfile >/dev/null 2>&1; then
-    echo "FAILED"
-    echo " *** dependency libraries for xml2 are missing: "
-    RC=1
-    for i in $(ld $($XML2_CONFIG --libs) -o $tmpfile 2>&1 >/dev/null); do
-        case $i in
-        -l*) echo lib${i#-l}
-        esac
-    done
-fi
-rm -f $tmpfile
-
-exit $RC
+has_or_fail xml2-config
+xml2_libs=`xml2-config --libs` || fail "xml2-config --libs failed"
+test_link $xml2_libs || fail "dependency libraries for xml2 are missing"
diff -r 79cf8ffbc667 -r f2f6aedc492b tools/check/check_zlib_devel
--- a/tools/check/check_zlib_devel	Fri Jan 18 22:59:53 2008 -0500
+++ b/tools/check/check_zlib_devel	Mon Jan 21 10:25:11 2008 -0500
@@ -1,14 +1,6 @@
 #!/bin/sh
 # CHECK-BUILD
 
-RC=0
+. funcs.sh
 
-set -e
-test -r /usr/include/zlib.h || RC=1
-
-if test ${RC} -ne 0; then
-	echo
-	echo " *** Check for zlib headers FAILED"
-fi 
-
-exit ${RC}
+has_header zlib.h || fail "can't find zlib headers"
diff -r 79cf8ffbc667 -r f2f6aedc492b tools/check/check_zlib_lib
--- a/tools/check/check_zlib_lib	Fri Jan 18 22:59:53 2008 -0500
+++ b/tools/check/check_zlib_lib	Mon Jan 21 10:25:11 2008 -0500
@@ -1,24 +1,12 @@
 #!/bin/sh
 # CHECK-BUILD CHECK-INSTALL
 
-RC=0
+. funcs.sh
 
-case $(uname -s) in
+case $OS in
 FreeBSD|NetBSD|OpenBSD)
 	exit 0
 	;;
-*)
-	;;
 esac
 
-PATH=/sbin:$PATH
-
-set -e
-ldconfig -p 2>&1 | grep -q libz.so || RC=1
-
-if test ${RC} -ne 0; then
-	echo
-	echo " *** Check for zlib library FAILED"
-fi
-
-exit ${RC} 
+has_lib libz.so || fail "can't find zlib"
diff -r 79cf8ffbc667 -r f2f6aedc492b tools/check/chk
--- a/tools/check/chk	Fri Jan 18 22:59:53 2008 -0500
+++ b/tools/check/chk	Mon Jan 21 10:25:11 2008 -0500
@@ -7,17 +7,16 @@ func_usage ()
     echo
     echo "Check suitability for Xen build or install."
     echo "Exit with 0 if OK, 1 if not."
-    echo "Prints only failed tests."
     echo
     echo "Calling with 'clean' removes generated files."
     exit 1
 }
 
-PATH=${PATH}:/sbin:/usr/sbin
+PATH=$PATH:/sbin:/usr/sbin
 OS=`uname -s`
 export PATH OS
 
-if test "${OS}" = "SunOS"; then
+if [ "$OS" = "SunOS" ]; then
 	exit 0
 fi
 
@@ -38,7 +37,7 @@ esac
 
 failed=0
 
-echo "Xen ${check} " $(date)
+echo "Xen ${check} " `date`
 for f in check_* ; do
     case $f in
         *~)
@@ -50,7 +49,7 @@ for f in check_* ; do
     if ! [ -x $f ] ; then
         continue
     fi
-    if ! grep -q ${check} $f ; then
+    if ! grep -Fq "$check" $f ; then
         continue
     fi
     echo -n "Checking $f: "
diff -r 79cf8ffbc667 -r f2f6aedc492b tools/check/funcs.sh
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/check/funcs.sh	Mon Jan 21 10:25:11 2008 -0500
@@ -0,0 +1,85 @@
+# has is the same as which, except it handles cross environments
+has() {
+	if [ -z "$CROSS_COMPILE" ]; then
+		command which "$@"
+		return $?
+	fi
+
+	check_sys_root || return 1
+
+	# subshell to prevent pollution of caller's IFS
+	(
+	IFS=:
+	for p in $PATH; do
+		if [ -x "$CROSS_SYS_ROOT/$p/$1" ]; then
+			echo "$CROSS_SYS_ROOT/$p/$1"
+			return 0
+		fi
+	done
+	return 1
+	)
+}
+
+has_or_fail() {
+	has "$1" >/dev/null || fail "can't find $1"
+}
+
+has_header() {
+	case $1 in
+		/*) ;;
+		*) set -- "/usr/include/$1" ;;
+	esac
+
+	check_sys_root || return 1
+
+	test -r "$CROSS_SYS_ROOT$1"
+	return $?
+}
+
+has_lib() {
+	check_sys_root || return 1
+
+	# subshell to prevent pollution of caller's environment
+	(
+	PATH=/sbin:$PATH        # for ldconfig
+
+	# This relatively common in a sys-root; libs are installed but
+	# ldconfig hasn't run there, so ldconfig -p won't work.
+	if [ "$OS" = Linux -a ! -f "$CROSS_SYS_ROOT/etc/ld.so.cache" ]; then
+	    echo "Please run ldconfig -r \"$CROSS_SYS_ROOT\" to generate ld.so.cache"
+	    # fall through; ldconfig test below should fail
+	fi
+	ldconfig -p ${CROSS_SYS_ROOT+-r "$CROSS_SYS_ROOT"} | grep -Fq "$1"
+	return $?
+	)
+}
+
+test_link() {
+	# subshell to trap removal of tmpfile
+	(
+	unset tmpfile
+	trap 'rm -f "$tmpfile"; exit' 0 1 2 15
+	tmpfile=`mktemp` || return 1
+	ld "$@" -o "$tmpfile" >/dev/null 2>&1
+	return $?
+	)
+}
+
+# this function is used commonly above
+check_sys_root() {
+	[ -z "$CROSS_COMPILE" ] && return 0
+	if [ -z "$CROSS_SYS_ROOT" ]; then
+		echo "please set CROSS_SYS_ROOT in the environment"
+		return 1
+	fi
+	if [ ! -d "$CROSS_SYS_ROOT" ]; then
+		echo "no sys-root found at $CROSS_SYS_ROOT"
+		return 1
+	fi
+}
+
+fail() {
+	echo
+	echo " *** `basename "$0"` FAILED${*+: $*}"
+	exit 1
+}

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH 0 of 2] Make tools cross-friendly, try 2
  2008-01-21 15:29 [PATCH 0 of 2] Make tools cross-friendly, try 2 Aron Griffis
  2008-01-21 15:29 ` [PATCH 1 of 2] Make tools/Makefile cross-friendly Aron Griffis
  2008-01-21 15:29 ` [PATCH 2 of 2] Make tools/check scripts cross-friendly Aron Griffis
@ 2008-01-21 16:53 ` Christoph Egger
  2 siblings, 0 replies; 4+ messages in thread
From: Christoph Egger @ 2008-01-21 16:53 UTC (permalink / raw)
  To: xen-devel; +Cc: Aron Griffis


The patchset looks ok to me.
If Keir likes them, they can go in. :)

Christoph


On Monday 21 January 2008 16:29:31 Aron Griffis wrote:
> Hi,
>
> This is an update of the patchset originally posted here:
>
> http://lists.xensource.com/archives/html/xen-devel/2008-01/msg00620.html
>
> This update includes changes suggested by Christoph's review,
> in particular:
> - fix vnconfig typo
> - make the ldconfig logic better
>
> That last fix actually behaves a bit differently than
> before, but I think it's better to alert the user than
> assume we can create the cache.  Here's the delta:
>
>  	# This relatively common in a sys-root; libs are installed but
> -	# ldconfig hasn't run there, so ldconfig -p won't work.  We can
> -	# only fix it if it's writeable.
> -	[ "$OS" != Linux ] || \
> -	[ -f "$CROSS_SYS_ROOT/etc/ld.so.cache" ] || \
> -	ldconfig -r "$CROSS_SYS_ROOT" && \
> +	# ldconfig hasn't run there, so ldconfig -p won't work.
> +	if [ "$OS" = Linux -a ! -f "$CROSS_SYS_ROOT/etc/ld.so.cache" ]; then
> +	    echo "Please run ldconfig -r \"$CROSS_SYS_ROOT\" to generate
> ld.so.cache" +	    # fall through; ldconfig test below should fail
> +	fi
>  	ldconfig -p ${CROSS_SYS_ROOT+-r "$CROSS_SYS_ROOT"} | grep -Fq "$1"
>  	return $?
>
> I did not revert the SunOS test.  I have a high degree of
> confidence that it's correct, and IMHO it's better to be
> consistent.
>
> Thanks,
> Aron
>
> 17 files changed, 160 insertions(+), 224 deletions(-)
> tools/Makefile                  |   15 +++++-
> tools/check/check_brctl         |   24 ++---------
> tools/check/check_crypto_lib    |   20 +--------
> tools/check/check_curl          |   41 +++---------------
> tools/check/check_iproute       |   25 +++--------
> tools/check/check_openssl_devel |   12 -----
> tools/check/check_python        |   11 -----
> tools/check/check_python_devel  |   11 -----
> tools/check/check_python_xml    |    9 +---
> tools/check/check_udev          |   31 +++-----------
> tools/check/check_x11_devel     |   15 +-----
> tools/check/check_xgettext      |   12 -----
> tools/check/check_xml2          |   34 ++-------------
> tools/check/check_zlib_devel    |   12 -----
> tools/check/check_zlib_lib      |   18 +-------
> tools/check/chk                 |    9 +---
> tools/check/funcs.sh            |   85
> +++++++++++++++++++++++++++++++++++++++



-- 
AMD Saxony, Dresden, Germany
Operating System Research Center

Legal Information:
AMD Saxony Limited Liability Company & Co. KG
Sitz (Geschäftsanschrift):
   Wilschdorfer Landstr. 101, 01109 Dresden, Deutschland
Registergericht Dresden: HRA 4896
vertretungsberechtigter Komplementär:
   AMD Saxony LLC (Sitz Wilmington, Delaware, USA)
Geschäftsführer der AMD Saxony LLC:
   Dr. Hans-R. Deppe, Thomas McCoy

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2008-01-21 16:53 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-01-21 15:29 [PATCH 0 of 2] Make tools cross-friendly, try 2 Aron Griffis
2008-01-21 15:29 ` [PATCH 1 of 2] Make tools/Makefile cross-friendly Aron Griffis
2008-01-21 15:29 ` [PATCH 2 of 2] Make tools/check scripts cross-friendly Aron Griffis
2008-01-21 16:53 ` [PATCH 0 of 2] Make tools cross-friendly, try 2 Christoph Egger

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.