diff --git a/gcc/config.sub b/gcc/config.sub
index d79f104ed780978826a2bf930e68734976b38597..e6681597c4153275f604af6e2124387ffec03cb9 100755
--- a/gcc/config.sub
+++ b/gcc/config.sub
@@ -59,6 +59,9 @@ else os=; fi
 ### recognize some manufacturers as not being operating systems, so we
 ### can provide default operating systems below.
 case $os in
+	-sun*os*)
+		# Prevent following clause from handling this invalid input.
+		;;
 	-dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
 	-att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
 	-unicom* | -ibm* | -next* | -hp | -isi* | -apollo | -altos* | \
@@ -94,6 +97,11 @@ case $basic_machine in
 		| alpha | we32k | ns16k | clipper )
 		basic_machine=$basic_machine-unknown
 		;;
+	# Object if more than one company name word.
+	*-*-*)
+		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+		exit 1
+		;;
 	# Recognize the basic CPU types with with company name.
 	vax-* | tahoe-* | i[34]86-* | i860-* | m68k-* | m68000-* | m88k-* \
 	      | sparc-* | ns32k-* | fx80-* | arm-* | c[123]* \