Tie small stuff to non-small by default on ELF platforms

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53919 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/include/llvm/Target/TargetAsmInfo.h b/include/llvm/Target/TargetAsmInfo.h
index 98247e8..852e03a 100644
--- a/include/llvm/Target/TargetAsmInfo.h
+++ b/include/llvm/Target/TargetAsmInfo.h
@@ -40,8 +40,8 @@
       RODataMergeStr,   ///< Readonly data section (mergeable strings)
       RODataMergeConst, ///< Readonly data section (mergeable constants)
       SmallData,        ///< Small data section
-      SmallBSS,         ///< Small bss section     
-      SmallROData,      ///< Small readonly section     
+      SmallBSS,         ///< Small bss section
+      SmallROData,      ///< Small readonly section
       ThreadData,       ///< Initialized TLS data objects
       ThreadBSS         ///< Uninitialized TLS data objects
     };
@@ -58,6 +58,7 @@
     const unsigned TLS        = 1 << 5;  ///< Section contains thread-local data
     const unsigned Debug      = 1 << 6;  ///< Section contains debug data
     const unsigned Linkonce   = 1 << 7;  ///< Section is linkonce
+    const unsigned Small      = 1 << 8;  ///< Section is small
     const unsigned TypeFlags  = 0xFF;
     // Some gap for future flags
     const unsigned Named      = 1 << 23; ///< Section is named
diff --git a/lib/Target/ELFTargetAsmInfo.cpp b/lib/Target/ELFTargetAsmInfo.cpp
index eb3608d..6ce01a8 100644
--- a/lib/Target/ELFTargetAsmInfo.cpp
+++ b/lib/Target/ELFTargetAsmInfo.cpp
@@ -63,11 +63,14 @@
     } else {
       switch (Kind) {
        case SectionKind::Data:
+       case SectionKind::SmallData:
         return getDataSection_();
        case SectionKind::BSS:
+       case SectionKind::SmallBSS:
         // ELF targets usually have BSS sections
         return getBSSSection_();
        case SectionKind::ROData:
+       case SectionKind::SmallROData:
         return getReadOnlySection_();
        case SectionKind::RODataMergeStr:
         return MergeableStringSection(GVar);
@@ -147,6 +150,8 @@
     Flags += 'S';
   if (flags & SectionFlags::TLS)
     Flags += 'T';
+  if (flags & SectionFlags::Small)
+    Flags += 's';
 
   Flags += "\"";