Index: contrib/tools/toolchain_check.sh
===================================================================
--- contrib/tools/toolchain_check.sh	(revision 49e50e9b24e3d3bf9a73a63ff6659bd320961c0f)
+++ contrib/tools/toolchain_check.sh	(revision 49e50e9b24e3d3bf9a73a63ff6659bd320961c0f)
@@ -0,0 +1,50 @@
+#!/bin/sh
+
+[ -z "$CROSS_HELENOS_PREFIX" ] && CROSS_HELENOS_PREFIX="/usr/local/cross-helenos"
+
+get_define() {
+	echo "$2" | "$1" -E -P -
+}
+
+print_error() {
+	echo "  ERROR:" "$@"
+}
+
+check_define() {
+	def_value=`get_define "$1" "$2"`
+	if [ "$def_value" = "$3" ]; then
+		return 0
+	else
+		print_error "Macro $1 not defined (expected '$3', got '$def_value')."
+		return 1
+	fi
+}
+
+print_version() {
+	if [ -x "$1" ]; then
+		echo " " `$1 --version 2>/dev/null | head -n 1` "@ $1"
+	else
+		print_error "$2";
+		return 1
+	fi
+}
+
+for arch_path in "$CROSS_HELENOS_PREFIX"/*; do
+	arch=`echo "$arch_path" | sed -e 's#/$##' -e 's#.*/\([^/]*\)#\1#'`
+	echo "Checking $arch..."
+
+	gcc_path=`echo "$arch_path"/bin/*-gcc`
+	ld_path=`echo "$arch_path"/bin/*-ld`
+	objcopy_path=`echo "$arch_path"/bin/*-objcopy`
+	gdb_path=`echo "$arch_path"/bin/*-gdb`
+	
+	print_version "$ld_path" "Linker not found!" || continue
+	
+	print_version "$objcopy_path" "objcopy not found!" || continue
+	
+	print_version "$gcc_path" "GCC not found!" || continue
+	check_define "$gcc_path" "__helenos__" 1 || continue
+	check_define "$gcc_path" "helenos_uarch" "$arch" || continue
+	
+	print_version "$gdb_path" "GDB not found!" || continue
+done
