arch-arm: clang compilation fixes

Fix 1: std::pair constructor is not a constexpr in clang implementation
Fix 2: static const templates need to be defined in their
       translation unit

Change-Id: I3d9b9b47e1d148e44555f40e2e2aeff06707ff8f
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/14617
Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com>
Maintainer: Giacomo Travaglini <giacomo.travaglini@arm.com>
diff --git a/src/arch/arm/semihosting.hh b/src/arch/arm/semihosting.hh
index 5816460..a9c1193 100644
--- a/src/arch/arm/semihosting.hh
+++ b/src/arch/arm/semihosting.hh
@@ -264,11 +264,11 @@
 
   private:
     typedef std::pair<uint64_t, SemiErrno> RetErrno;
-    static constexpr RetErrno retError(SemiErrno e) {
+    static  RetErrno retError(SemiErrno e) {
         return RetErrno((uint64_t)-1, e);
     }
 
-    static constexpr RetErrno retOK(uint64_t r) {
+    static  RetErrno retOK(uint64_t r) {
         return RetErrno(r, 0);
     }