cmake: compiler/xcc: omit -g if needed for Clang

Some older versions of XCC Clang would result in the following
error during compilation:

  /tmp/file.s: Assembler messages:
  /tmp/file.s:20: Error: file number 1 already allocated
  clang-3.9: error: Xtensa-as command failed with exit code 1

due to a bug in LLVM: https://bugs.llvm.org/show_bug.cgi?id=11740.
This is fixed in upstream, https://reviews.llvm.org/D20002, in 2016.
However, it seems that it is only fixed after XCC RI-2018.0.
Instead of blanket disabling usage of '-g', use an environment
variable "XCC_NO_G_FLAG" to disable usage of flag '-g' to workaround
this issue. This needs to be manually set because there is no way to
know which XCC version is being used, and compiler flag checking for
'-g' would not result in error (and thus '-g' is not ignored).
This is only needed for older XCC Clang. For sufficiently new XCC
verisons, there is no need for this.

Signed-off-by: Daniel Leung <daniel.leung@intel.com>
diff --git a/cmake/compiler/gcc/compiler_flags.cmake b/cmake/compiler/gcc/compiler_flags.cmake
index bc3f37b..1921d97 100644
--- a/cmake/compiler/gcc/compiler_flags.cmake
+++ b/cmake/compiler/gcc/compiler_flags.cmake
@@ -162,12 +162,14 @@
 # gcc flag for a freestandingapplication
 set_compiler_property(PROPERTY freestanding -ffreestanding)
 
-# Flag to enable debugging
-set_compiler_property(PROPERTY debug -g)
+if(NOT DEFINED GCC_NO_G_FLAG)
+  # Flag to enable debugging
+  set_compiler_property(PROPERTY debug -g)
 
-# GCC 11 by default emits DWARF version 5 which cannot be parsed by
-# pyelftools. Can be removed once pyelftools supports v5.
-check_set_compiler_property(APPEND PROPERTY debug -gdwarf-4)
+  # GCC 11 by default emits DWARF version 5 which cannot be parsed by
+  # pyelftools. Can be removed once pyelftools supports v5.
+  check_set_compiler_property(APPEND PROPERTY debug -gdwarf-4)
+endif()
 
 set_compiler_property(PROPERTY no_common -fno-common)
 
diff --git a/cmake/compiler/xcc/compiler_flags.cmake b/cmake/compiler/xcc/compiler_flags.cmake
index a6205bb..6642eac 100644
--- a/cmake/compiler/xcc/compiler_flags.cmake
+++ b/cmake/compiler/xcc/compiler_flags.cmake
@@ -1,6 +1,10 @@
 # No special flags are needed for xcc.
 # Only select whether gcc or clang flags should be inherited.
 if(CC STREQUAL "clang")
+  if($ENV{XCC_NO_G_FLAG})
+    set(GCC_NO_G_FLAG 1)
+  endif()
+
   include(${ZEPHYR_BASE}/cmake/compiler/clang/compiler_flags.cmake)
 else()
   include(${ZEPHYR_BASE}/cmake/compiler/gcc/compiler_flags.cmake)