Fix llgs to send triple for non-Apple platforms and lldb to interpret correctly.

This change addresses this bug:
http://llvm.org/bugs/show_bug.cgi?id=20755

This change:
* Modifies llgs to send triple instead of cputype and cpusubtype when not on Apple platforms in qProcessInfo.
* Modifies lldb's GDBRemoteCommunicationClient to handle the triple returned from qProcessInfo if given.
  When given, it will prefer to use triple over cputype and cpusubtype.
* Adds gdb-remote protocol tests to verify that cputype and cpusubtype are specified on darwin, and that triple is specified on Linux.

llvm-svn: 216470
diff --git a/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServer.cpp b/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServer.cpp
index bdece3d..4d38a07 100644
--- a/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServer.cpp
+++ b/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServer.cpp
@@ -1328,6 +1328,9 @@
     const ArchSpec &proc_arch = proc_info.GetArchitecture();
     if (proc_arch.IsValid())
     {
+        const llvm::Triple &proc_triple = proc_arch.GetTriple();
+#if defined(__APPLE__)
+        // We'll send cputype/cpusubtype.
         const uint32_t cpu_type = proc_arch.GetMachOCPUType();
         if (cpu_type != 0)
             response.Printf ("cputype:%" PRIx32 ";", cpu_type);
@@ -1335,12 +1338,15 @@
         const uint32_t cpu_subtype = proc_arch.GetMachOCPUSubType();
         if (cpu_subtype != 0)
             response.Printf ("cpusubtype:%" PRIx32 ";", cpu_subtype);
+
         
-        const llvm::Triple &proc_triple = proc_arch.GetTriple();
         const std::string vendor = proc_triple.getVendorName ();
         if (!vendor.empty ())
             response.Printf ("vendor:%s;", vendor.c_str ());
-
+#else
+        // We'll send the triple.
+        response.Printf ("triple:%s;", proc_triple.getTriple().c_str ());
+#endif
         std::string ostype = proc_triple.getOSName ();
         // Adjust so ostype reports ios for Apple/ARM and Apple/ARM64.
         if (proc_triple.getVendor () == llvm::Triple::Apple)