mailing list of musl libc
 help / color / mirror / code / Atom feed
From: Lei Zhang via cfe-commits <cfe-commits-NBbBogny7ofFcdTEL8lfRQ@public.gmane.org>
To: "Rafael Espíndola"
	<rafael.espindola-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Cc: gentoo-musl-cnFmAm88PdgLnqt3yJz4RQ@public.gmane.org,
	musl-ZwoEplunGu1jrUoiu81ncdBPR1lH4CV8@public.gmane.org,
	llvm-commits
	<llvm-commits-NBbBogny7ofFcdTEL8lfRQ@public.gmane.org>,
	cfe-commits cfe
	<cfe-commits-NBbBogny7ofFcdTEL8lfRQ@public.gmane.org>
Subject: Re: [gentoo-musl] Re: Add support for musl-libc on Linux
Date: Tue, 21 Jun 2016 21:36:06 +0800	[thread overview]
Message-ID: <CAOYuCc1_5a15MZ4tEQZAn84rf3Y7dzugzX1TTpSgACQ+d_k3Aw@mail.gmail.com> (raw)
In-Reply-To: <CAOYuCc1+_xKLK2FOvCKNpKO4BZO07hd2Cbft8p_YO3chSR41UA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>

[-- Attachment #1: Type: text/plain, Size: 653 bytes --]

2016-06-20 19:05 GMT+08:00 Lei Zhang <zhanglei.april-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>:
> 2016-06-18 8:52 GMT+08:00 Rafael Espíndola <rafael.espindola@gmail.com>:
>> There are probably a few more places that need to be patched.
>>
>> In particular, take a look at lib/Target/ARM. There are things like
>> computeTargetABI and isTargetHardFloat that probably need to be
>> updated (and tested).
>
> Any hints how to test the new changes? I guess merely checking clang's
> output like the previous test cases won't suffice this time.

Here're the refined patches. Please let me know if the test cases
aren't complete.

Thanks,
Lei

[-- Attachment #2: clang-musl-arm-v2.patch --]
[-- Type: application/octet-stream, Size: 8964 bytes --]

Index: lib/Basic/Targets.cpp
===================================================================
--- lib/Basic/Targets.cpp	(revision 273258)
+++ lib/Basic/Targets.cpp	(working copy)
@@ -4876,6 +4876,8 @@
       case llvm::Triple::Android:
       case llvm::Triple::GNUEABI:
       case llvm::Triple::GNUEABIHF:
+      case llvm::Triple::MuslEABI:
+      case llvm::Triple::MuslEABIHF:
         setABI("aapcs-linux");
         break;
       case llvm::Triple::EABIHF:
Index: lib/CodeGen/TargetInfo.cpp
===================================================================
--- lib/CodeGen/TargetInfo.cpp	(revision 273258)
+++ lib/CodeGen/TargetInfo.cpp	(working copy)
@@ -4962,6 +4962,8 @@
     case llvm::Triple::EABIHF:
     case llvm::Triple::GNUEABI:
     case llvm::Triple::GNUEABIHF:
+    case llvm::Triple::MuslEABI:
+    case llvm::Triple::MuslEABIHF:
       return true;
     default:
       return false;
@@ -4972,6 +4974,7 @@
     switch (getTarget().getTriple().getEnvironment()) {
     case llvm::Triple::EABIHF:
     case llvm::Triple::GNUEABIHF:
+    case llvm::Triple::MuslEABIHF:
       return true;
     default:
       return false;
@@ -7922,6 +7925,7 @@
     else if (CodeGenOpts.FloatABI == "hard" ||
              (CodeGenOpts.FloatABI != "soft" &&
               (Triple.getEnvironment() == llvm::Triple::GNUEABIHF ||
+               Triple.getEnvironment() == llvm::Triple::MuslEABIHF ||
                Triple.getEnvironment() == llvm::Triple::EABIHF)))
       Kind = ARMABIInfo::AAPCS_VFP;
 
Index: lib/Driver/ToolChains.cpp
===================================================================
--- lib/Driver/ToolChains.cpp	(revision 273258)
+++ lib/Driver/ToolChains.cpp	(working copy)
@@ -4161,9 +4161,24 @@
 
   if (Triple.isAndroid())
     return Triple.isArch64Bit() ? "/system/bin/linker64" : "/system/bin/linker";
-  else if (Triple.getEnvironment() == llvm::Triple::Musl)
-    return "/lib/ld-musl-" + Triple.getArchName().str() + ".so.1";
+  else if (Triple.isMusl()) {
+    std::string ArchName;
+    switch (Arch) {
+    case llvm::Triple::thumb:
+      ArchName = "arm";
+      break;
+    case llvm::Triple::thumbeb:
+      ArchName = "armeb";
+      break;
+    default:
+      ArchName = Triple.getArchName().str();
+    }
+    if (Triple.getEnvironment() == llvm::Triple::MuslEABIHF)
+      ArchName += "hf";
 
+    return "/lib/ld-musl-" + ArchName + ".so.1";
+  }
+
   std::string LibDir;
   std::string Loader;
 
Index: lib/Driver/Tools.cpp
===================================================================
--- lib/Driver/Tools.cpp	(revision 273258)
+++ lib/Driver/Tools.cpp	(working copy)
@@ -803,10 +803,12 @@
     default:
       switch (Triple.getEnvironment()) {
       case llvm::Triple::GNUEABIHF:
+      case llvm::Triple::MuslEABIHF:
       case llvm::Triple::EABIHF:
         ABI = FloatABI::Hard;
         break;
       case llvm::Triple::GNUEABI:
+      case llvm::Triple::MuslEABI:
       case llvm::Triple::EABI:
         // EABI is always AAPCS, and if it was not marked 'hard', it's softfp
         ABI = FloatABI::SoftFP;
@@ -1052,6 +1054,8 @@
     case llvm::Triple::Android:
     case llvm::Triple::GNUEABI:
     case llvm::Triple::GNUEABIHF:
+    case llvm::Triple::MuslEABI:
+    case llvm::Triple::MuslEABIHF:
       ABIName = "aapcs-linux";
       break;
     case llvm::Triple::EABIHF:
Index: test/CodeGen/arm-eabi.c
===================================================================
--- test/CodeGen/arm-eabi.c	(revision 273258)
+++ test/CodeGen/arm-eabi.c	(working copy)
@@ -7,6 +7,14 @@
 // RUN: %clang -target arm-none-gnueabi -S -meabi 5 -o - %s | FileCheck -check-prefix=CHECK-EABI %s
 // RUN: %clang -target arm-none-gnueabihf -S -o - %s | FileCheck -check-prefix=CHECK-GNUEABI %s
 // RUN: %clang -target arm-none-gnueabihf -S -meabi 5 -o - %s | FileCheck -check-prefix=CHECK-EABI %s
+// RUN: %clang -target arm-none-musleabi -S -o - %s \
+// RUN:   | FileCheck -check-prefix=CHECK-GNUEABI %s
+// RUN: %clang -target arm-none-musleabi -S -o - %s -meabi 5 \
+// RUN:   | FileCheck -check-prefix=CHECK-EABI %s
+// RUN: %clang -target arm-none-musleabihf -S -o - %s \
+// RUN:   | FileCheck -check-prefix=CHECK-GNUEABI %s
+// RUN: %clang -target arm-none-musleabihf -S -o - %s -meabi 5 \
+// RUN:   | FileCheck -check-prefix=CHECK-EABI %s
 
 struct my_s {
   unsigned long a[18];
Index: test/Driver/arm-abi.c
===================================================================
--- test/Driver/arm-abi.c	(revision 273258)
+++ test/Driver/arm-abi.c	(working copy)
@@ -28,7 +28,7 @@
 // RUN: %clang -target arm--netbsd-eabihf %s -### -o %t.o 2>&1 \
 // RUN:   | FileCheck -check-prefix=CHECK-AAPCS %s
 
-// Otherwise, ABI is celected based on environment
+// Otherwise, ABI is selected based on environment
 // RUN: %clang -target arm---android %s -### -o %t.o 2>&1 \
 // RUN:   | FileCheck -check-prefix=CHECK-AAPCS-LINUX %s
 // RUN: %clang -target arm---gnueabi %s -### -o %t.o 2>&1 \
@@ -35,6 +35,10 @@
 // RUN:   | FileCheck -check-prefix=CHECK-AAPCS-LINUX %s
 // RUN: %clang -target arm---gnueabihf %s -### -o %t.o 2>&1 \
 // RUN:   | FileCheck -check-prefix=CHECK-AAPCS-LINUX %s
+// RUN: %clang -target arm---musleabi %s -### -o %t.o 2>&1 \
+// RUN:   | FileCheck -check-prefix=CHECK-AAPCS-LINUX %s
+// RUN: %clang -target arm---musleabihf %s -### -o %t.o 2>&1 \
+// RUN:   | FileCheck -check-prefix=CHECK-AAPCS-LINUX %s
 // RUN: %clang -target arm---eabi %s -### -o %t.o 2>&1 \
 // RUN:   | FileCheck -check-prefix=CHECK-AAPCS %s
 // RUN: %clang -target arm---eabihf %s -### -o %t.o 2>&1 \
Index: test/Driver/linux-ld.c
===================================================================
--- test/Driver/linux-ld.c	(revision 273258)
+++ test/Driver/linux-ld.c	(working copy)
@@ -1606,11 +1606,47 @@
 // RUN: %clang %s -### -o %t.o 2>&1 \
 // RUN:     --target=powerpc64-pc-linux-musl \
 // RUN:   | FileCheck --check-prefix=CHECK-MUSL-PPC64 %s
-// CHECK-MUSL-X86:      "-dynamic-linker" "/lib/ld-musl-i386.so.1"
-// CHECK-MUSL-X86_64:   "-dynamic-linker" "/lib/ld-musl-x86_64.so.1"
-// CHECK-MUSL-MIPS:     "-dynamic-linker" "/lib/ld-musl-mips.so.1"
-// CHECK-MUSL-MIPSEL:   "-dynamic-linker" "/lib/ld-musl-mipsel.so.1"
-// CHECK-MUSL-MIPS64:   "-dynamic-linker" "/lib/ld-musl-mips64.so.1"
-// CHECK-MUSL-MIPS64EL: "-dynamic-linker" "/lib/ld-musl-mips64el.so.1"
-// CHECK-MUSL-PPC:      "-dynamic-linker" "/lib/ld-musl-powerpc.so.1"
-// CHECK-MUSL-PPC64:    "-dynamic-linker" "/lib/ld-musl-powerpc64.so.1"
+// RUN: %clang %s -### -o %t.o 2>&1 \
+// RUN:     --target=thumb-pc-linux-musleabi \
+// RUN:   | FileCheck --check-prefix=CHECK-MUSL-ARM %s
+// RUN: %clang %s -### -o %t.o 2>&1 \
+// RUN:     --target=thumb-pc-linux-musleabihf \
+// RUN:   | FileCheck --check-prefix=CHECK-MUSL-ARMHF %s
+// RUN: %clang %s -### -o %t.o 2>&1 \
+// RUN:     --target=thumbeb-pc-linux-musleabi \
+// RUN:   | FileCheck --check-prefix=CHECK-MUSL-ARMEB %s
+// RUN: %clang %s -### -o %t.o 2>&1 \
+// RUN:     --target=thumbeb-pc-linux-musleabihf \
+// RUN:   | FileCheck --check-prefix=CHECK-MUSL-ARMEBHF %s
+// RUN: %clang %s -### -o %t.o 2>&1 \
+// RUN:     --target=arm-pc-linux-musleabi \
+// RUN:   | FileCheck --check-prefix=CHECK-MUSL-ARM %s
+// RUN: %clang %s -### -o %t.o 2>&1 \
+// RUN:     --target=arm-pc-linux-musleabihf \
+// RUN:   | FileCheck --check-prefix=CHECK-MUSL-ARMHF %s
+// RUN: %clang %s -### -o %t.o 2>&1 \
+// RUN:     --target=armeb-pc-linux-musleabi \
+// RUN:   | FileCheck --check-prefix=CHECK-MUSL-ARMEB %s
+// RUN: %clang %s -### -o %t.o 2>&1 \
+// RUN:     --target=armeb-pc-linux-musleabihf \
+// RUN:   | FileCheck --check-prefix=CHECK-MUSL-ARMEBHF %s
+// RUN: %clang %s -### -o %t.o 2>&1 \
+// RUN:     --target=aarch64-pc-linux-musleabi \
+// RUN:   | FileCheck --check-prefix=CHECK-MUSL-AARCH64 %s
+// RUN: %clang %s -### -o %t.o 2>&1 \
+// RUN:     --target=aarch64_be-pc-linux-musleabi \
+// RUN:   | FileCheck --check-prefix=CHECK-MUSL-AARCH64_BE %s
+// CHECK-MUSL-X86:        "-dynamic-linker" "/lib/ld-musl-i386.so.1"
+// CHECK-MUSL-X86_64:     "-dynamic-linker" "/lib/ld-musl-x86_64.so.1"
+// CHECK-MUSL-MIPS:       "-dynamic-linker" "/lib/ld-musl-mips.so.1"
+// CHECK-MUSL-MIPSEL:     "-dynamic-linker" "/lib/ld-musl-mipsel.so.1"
+// CHECK-MUSL-MIPS64:     "-dynamic-linker" "/lib/ld-musl-mips64.so.1"
+// CHECK-MUSL-MIPS64EL:   "-dynamic-linker" "/lib/ld-musl-mips64el.so.1"
+// CHECK-MUSL-PPC:        "-dynamic-linker" "/lib/ld-musl-powerpc.so.1"
+// CHECK-MUSL-PPC64:      "-dynamic-linker" "/lib/ld-musl-powerpc64.so.1"
+// CHECK-MUSL-ARM:        "-dynamic-linker" "/lib/ld-musl-arm.so.1"
+// CHECK-MUSL-ARMHF:      "-dynamic-linker" "/lib/ld-musl-armhf.so.1"
+// CHECK-MUSL-ARMEB:      "-dynamic-linker" "/lib/ld-musl-armeb.so.1"
+// CHECK-MUSL-ARMEBHF:    "-dynamic-linker" "/lib/ld-musl-armebhf.so.1"
+// CHECK-MUSL-AARCH64:    "-dynamic-linker" "/lib/ld-musl-aarch64.so.1"
+// CHECK-MUSL-AARCH64_BE: "-dynamic-linker" "/lib/ld-musl-aarch64_be.so.1"

[-- Attachment #3: llvm-musl-arm-v2.patch --]
[-- Type: application/octet-stream, Size: 7227 bytes --]

Index: include/llvm/ADT/Triple.h
===================================================================
--- include/llvm/ADT/Triple.h	(revision 273258)
+++ include/llvm/ADT/Triple.h	(working copy)
@@ -180,6 +180,8 @@
     EABIHF,
     Android,
     Musl,
+    MuslEABI,
+    MuslEABIHF,
 
     MSVC,
     Itanium,
@@ -565,6 +567,13 @@
   /// Tests whether the target is Android
   bool isAndroid() const { return getEnvironment() == Triple::Android; }
 
+  /// Tests whether the environment is musl-libc
+  bool isMusl() const {
+    return getEnvironment() == Triple::Musl ||
+           getEnvironment() == Triple::MuslEABI ||
+           getEnvironment() == Triple::MuslEABIHF;
+  }
+
   /// Tests whether the target is NVPTX (32- or 64-bit).
   bool isNVPTX() const {
     return getArch() == Triple::nvptx || getArch() == Triple::nvptx64;
Index: lib/Support/Triple.cpp
===================================================================
--- lib/Support/Triple.cpp	(revision 273258)
+++ lib/Support/Triple.cpp	(working copy)
@@ -206,6 +206,8 @@
   case EABIHF: return "eabihf";
   case Android: return "android";
   case Musl: return "musl";
+  case MuslEABI: return "musleabi";
+  case MuslEABIHF: return "musleabihf";
   case MSVC: return "msvc";
   case Itanium: return "itanium";
   case Cygnus: return "cygnus";
@@ -465,6 +467,8 @@
     .StartsWith("code16", Triple::CODE16)
     .StartsWith("gnu", Triple::GNU)
     .StartsWith("android", Triple::Android)
+    .StartsWith("musleabihf", Triple::MuslEABIHF)
+    .StartsWith("musleabi", Triple::MuslEABI)
     .StartsWith("musl", Triple::Musl)
     .StartsWith("msvc", Triple::MSVC)
     .StartsWith("itanium", Triple::Itanium)
@@ -1454,6 +1458,7 @@
     switch (getEnvironment()) {
     case llvm::Triple::EABIHF:
     case llvm::Triple::GNUEABIHF:
+    case llvm::Triple::MuslEABIHF:
       return "arm1176jzf-s";
     default:
       return "arm7tdmi";
Index: lib/Target/ARM/ARMAsmPrinter.cpp
===================================================================
--- lib/Target/ARM/ARMAsmPrinter.cpp	(revision 273258)
+++ lib/Target/ARM/ARMAsmPrinter.cpp	(working copy)
@@ -562,7 +562,8 @@
   ARMTargetStreamer &ATS = static_cast<ARMTargetStreamer &>(TS);
 
   if (OptimizationGoals > 0 &&
-      (Subtarget->isTargetAEABI() || Subtarget->isTargetGNUAEABI()))
+      (Subtarget->isTargetAEABI() || Subtarget->isTargetGNUAEABI() ||
+       Subtarget->isTargetMuslAEABI()))
     ATS.emitAttribute(ARMBuildAttrs::ABI_optimization_goals, OptimizationGoals);
   OptimizationGoals = -1;
 
Index: lib/Target/ARM/ARMISelLowering.cpp
===================================================================
--- lib/Target/ARM/ARMISelLowering.cpp	(revision 273258)
+++ lib/Target/ARM/ARMISelLowering.cpp	(working copy)
@@ -255,7 +255,7 @@
   // RTLIB
   if (Subtarget->isAAPCS_ABI() &&
       (Subtarget->isTargetAEABI() || Subtarget->isTargetGNUAEABI() ||
-       Subtarget->isTargetAndroid())) {
+       Subtarget->isTargetMuslAEABI() || Subtarget->isTargetAndroid())) {
     static const struct {
       const RTLIB::Libcall Op;
       const char * const Name;
@@ -791,7 +791,7 @@
   setOperationAction(ISD::UREM,  MVT::i32, Expand);
   // Register based DivRem for AEABI (RTABI 4.2)
   if (Subtarget->isTargetAEABI() || Subtarget->isTargetAndroid() ||
-      Subtarget->isTargetGNUAEABI()) {
+      Subtarget->isTargetGNUAEABI() || Subtarget->isTargetMuslAEABI()) {
     setOperationAction(ISD::SREM, MVT::i64, Custom);
     setOperationAction(ISD::UREM, MVT::i64, Custom);
 
@@ -11914,7 +11914,7 @@
 
 SDValue ARMTargetLowering::LowerDivRem(SDValue Op, SelectionDAG &DAG) const {
   assert((Subtarget->isTargetAEABI() || Subtarget->isTargetAndroid() ||
-          Subtarget->isTargetGNUAEABI()) &&
+          Subtarget->isTargetGNUAEABI() || Subtarget->isTargetMuslAEABI()) &&
          "Register-based DivRem lowering only");
   unsigned Opcode = Op->getOpcode();
   assert((Opcode == ISD::SDIVREM || Opcode == ISD::UDIVREM) &&
Index: lib/Target/ARM/ARMSubtarget.h
===================================================================
--- lib/Target/ARM/ARMSubtarget.h	(revision 273258)
+++ lib/Target/ARM/ARMSubtarget.h	(working copy)
@@ -422,6 +422,11 @@
             TargetTriple.getEnvironment() == Triple::GNUEABIHF) &&
            !isTargetDarwin() && !isTargetWindows();
   }
+  bool isTargetMuslAEABI() const {
+    return (TargetTriple.getEnvironment() == Triple::MuslEABI ||
+            TargetTriple.getEnvironment() == Triple::MuslEABIHF) &&
+           !isTargetDarwin() && !isTargetWindows();
+  }
 
   // ARM Targets that support EHABI exception handling standard
   // Darwin uses SjLj. Other targets might need more checks.
@@ -428,8 +433,10 @@
   bool isTargetEHABICompatible() const {
     return (TargetTriple.getEnvironment() == Triple::EABI ||
             TargetTriple.getEnvironment() == Triple::GNUEABI ||
+            TargetTriple.getEnvironment() == Triple::MuslEABI ||
             TargetTriple.getEnvironment() == Triple::EABIHF ||
             TargetTriple.getEnvironment() == Triple::GNUEABIHF ||
+            TargetTriple.getEnvironment() == Triple::MuslEABIHF ||
             isTargetAndroid()) &&
            !isTargetDarwin() && !isTargetWindows();
   }
@@ -437,6 +444,7 @@
   bool isTargetHardFloat() const {
     // FIXME: this is invalid for WindowsCE
     return TargetTriple.getEnvironment() == Triple::GNUEABIHF ||
+           TargetTriple.getEnvironment() == Triple::MuslEABIHF ||
            TargetTriple.getEnvironment() == Triple::EABIHF ||
            isTargetWindows() || isAAPCS16_ABI();
   }
Index: lib/Target/ARM/ARMTargetMachine.cpp
===================================================================
--- lib/Target/ARM/ARMTargetMachine.cpp	(revision 273258)
+++ lib/Target/ARM/ARMTargetMachine.cpp	(working copy)
@@ -100,6 +100,8 @@
     case llvm::Triple::Android:
     case llvm::Triple::GNUEABI:
     case llvm::Triple::GNUEABIHF:
+    case llvm::Triple::MuslEABI:
+    case llvm::Triple::MuslEABIHF:
     case llvm::Triple::EABIHF:
     case llvm::Triple::EABI:
       TargetABI = ARMBaseTargetMachine::ARM_ABI_AAPCS;
@@ -208,7 +210,8 @@
   // Default to triple-appropriate EABI
   if (Options.EABIVersion == EABI::Default ||
       Options.EABIVersion == EABI::Unknown) {
-    if (Subtarget.isTargetGNUAEABI())
+    // musl is compatible with glibc with regard to EABI version
+    if (Subtarget.isTargetGNUAEABI() || Subtarget.isTargetMuslAEABI())
       this->Options.EABIVersion = EABI::GNU;
     else
       this->Options.EABIVersion = EABI::EABI5;
Index: unittests/ADT/TripleTest.cpp
===================================================================
--- unittests/ADT/TripleTest.cpp	(revision 273258)
+++ unittests/ADT/TripleTest.cpp	(working copy)
@@ -141,6 +141,12 @@
   EXPECT_EQ(Triple::UnknownOS, T.getOS());
   EXPECT_EQ(Triple::EABI, T.getEnvironment());
 
+  T = Triple("arm-none-linux-musleabi");
+  EXPECT_EQ(Triple::arm, T.getArch());
+  EXPECT_EQ(Triple::UnknownVendor, T.getVendor());
+  EXPECT_EQ(Triple::Linux, T.getOS());
+  EXPECT_EQ(Triple::MuslEABI, T.getEnvironment());
+
   T = Triple("armv6hl-none-linux-gnueabi");
   EXPECT_EQ(Triple::arm, T.getArch());
   EXPECT_EQ(Triple::Linux, T.getOS());

[-- Attachment #4: Type: text/plain, Size: 159 bytes --]

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

  parent reply	other threads:[~2016-06-21 13:36 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CAOYuCc1atr0QjQud-nxdj3rPN0Hj16u__kAs5LRmU+Ff6shtBA@mail.gmail.com>
     [not found] ` <20160612190745.GA21691@britannica.bec.de>
     [not found]   ` <CAOYuCc1NZNxEPLonrHD++QPTYgq90Bwz0B16CLXiJrEAf-zNJQ@mail.gmail.com>
     [not found]     ` <CAOYuCc1NZNxEPLonrHD++QPTYgq90Bwz0B16CLXiJrEAf-zNJQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-06-13 13:21       ` Felix Janda via cfe-commits
2016-06-13 13:50         ` Lei Zhang
     [not found]           ` <CAOYuCc0t_eyGoOm0oozYmj55eA3Jvb48h7tGOtiMBjGWtDT1RQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-06-13 21:00             ` Rafael Espíndola via llvm-commits
     [not found]               ` <CAG3jReK_cUOGaOHwQT1gzTBWRVsFuArywZuoXD==m5n-_ZEXKg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-06-14  1:07                 ` Lei Zhang via llvm-commits
     [not found]                   ` <CAOYuCc3gtPz8XhGyAsDcsCjvZPLDwSAGOXwXeu=urXmwck61mQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-06-14 12:55                     ` Rafael Espíndola via cfe-commits
2016-06-15  8:28                       ` Lei Zhang via cfe-commits
     [not found]                         ` <CAOYuCc125C-5QjqWhK-QuU4zZvTqb+OsZhxQjowJidZaYBYY4g-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-06-15 20:09                           ` Rafael Espíndola via cfe-commits
2016-06-17  9:50                           ` Lei Zhang via cfe-commits
     [not found]                             ` <CAOYuCc3C27jqG8uyCOkDgcOAcgaFXEz7k9O8+Tqyjv9WYH2M1Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-06-18  0:52                               ` Rafael Espíndola via cfe-commits
     [not found]                                 ` <CAG3jReKcdL3Hn5L0sOAAM34CKoUn=J-pusOV+CRyfYRLnvnp4Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-06-20  9:37                                   ` Peter Smith via llvm-commits
     [not found]                                     ` <CAEt-8LBteTKKdYDa2GUveGNbQu12c3gBgTEeiU5p1ONsTu_VaQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-06-20 10:59                                       ` Lei Zhang via cfe-commits
2016-06-20 11:28                                         ` Szabolcs Nagy
     [not found]                                         ` <CAOYuCc2yxgYFSzDjJP0SJho5Hs=zb635ysinwbg=SZ=CZJt9_Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-06-20 11:44                                           ` Peter Smith via cfe-commits
     [not found]                                             ` <CAEt-8LCQ5H2vE_PXPxs+Gr2=roBT9BuT487w2at3UAKhFqqYxA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-06-20 13:09                                               ` Lei Zhang via llvm-commits
2016-06-20 11:05                                   ` Lei Zhang via llvm-commits
     [not found]                                     ` <CAOYuCc1+_xKLK2FOvCKNpKO4BZO07hd2Cbft8p_YO3chSR41UA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-06-21 13:36                                       ` Lei Zhang via cfe-commits [this message]
     [not found]                                         ` <CAOYuCc1_5a15MZ4tEQZAn84rf3Y7dzugzX1TTpSgACQ+d_k3Aw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-06-21 15:07                                           ` Peter Smith via cfe-commits
     [not found]                                             ` <CAEt-8LCXdLMPyo+d9B5SjR5xQKbSNT_sjXvyffjeMH1V_22csw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-06-22  8:03                                               ` Lei Zhang via llvm-commits
     [not found]                                                 ` <CAOYuCc3A-tf1LUVHtuUjAfjphRvrJfAbQUaC_bVPEyNTP=LQQg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-06-22  8:55                                                   ` Peter Smith via llvm-commits
     [not found]                                                     ` <CAEt-8LA2nA1XXgwiH1Z72vm903V8PH-fsitS_QVAgXkjkzThvQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-06-24  3:25                                                       ` Lei Zhang via cfe-commits
     [not found]                                                         ` <CAOYuCc3h1LvG4Ky8u8EqC6x12jg_c3XLUjo3BLuOQkQphVJUSQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-06-24  8:02                                                           ` Peter Smith via cfe-commits
     [not found]                                                             ` <CAEt-8LBNJ+hn_Ws086H_xZxSK+btFou_e02OCaJ-MxVsXV__wg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-06-25  2:18                                                               ` Lei Zhang via cfe-commits
2016-06-14  8:47               ` Szabolcs Nagy

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAOYuCc1_5a15MZ4tEQZAn84rf3Y7dzugzX1TTpSgACQ+d_k3Aw@mail.gmail.com \
    --to=cfe-commits-nbbbogny7offcdtel8lfrq@public.gmane.org \
    --cc=gentoo-musl-cnFmAm88PdgLnqt3yJz4RQ@public.gmane.org \
    --cc=llvm-commits-NBbBogny7ofFcdTEL8lfRQ@public.gmane.org \
    --cc=musl-ZwoEplunGu1jrUoiu81ncdBPR1lH4CV8@public.gmane.org \
    --cc=rafael.espindola-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    --cc=zhanglei.april-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/musl/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).