Hi there, This is a series of two patches, one for GDB and one for GCC, which aims to improve the detection and handling of triplets present on compiler names. The motivation for this series was mostly the fact that GDB's "compile" command is broken on Debian unstable, as can be seen here:
<https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=851146> The reason for the failure is the fact that Debian compiles GCC using the --program-{prefix,suffix} options from configure in order to name the compiler using the full triplet (i.e., Debian's GCC is not merely named "gcc", but e.g. "x86_64-linux-gnu-gcc-7"), which end up naming the C_COMPILER_NAME and CP_COMPILER_NAME defines with the specified prefix and suffix. Therefore, the regexp being used to match the compiler name is wrong because it doesn't take into account the fact that the defines may already contain the triplets. The GCC patch improves the libcc1::compiler_triplet_regexp::find and libcp1::compiler_triplet_regexp::find methods by first trying to match the triplet in the compiler name and correctly discarding the triplet part of the regexp if the matching succeeds. I've had to do a few modifications on the way the regexp's are built, but I'll explain them in the patch itself. The GDB patch is very simple: it adds the trailing "-" in the triplet regexp. Therefore, we will have a regexp that truly matches the full triplet (e.g., "^(x86_64|i.86)(-[^-]*)?-linux(-gnu)?-") instead of one that leaves the trailing "-" match to libcc1. I've tested this patch both on my Fedora and my Debian machines, and both now work as expected, independently of the presence of the triplet string in the compiler name. I am sorry about the cross-post, but these patches are really dependent on one another. Thanks, -- Sergio GPG key ID: 237A 54B1 0287 28BF 00EF 31F4 D0EB 7628 65FC 5E36 Please send encrypted e-mail if possible http://sergiodj.net/