Revert previous two patches while I try to find out how to make both
linux and darwin assemblers happy :-(

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121004 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/MC/MCDwarf.cpp b/lib/MC/MCDwarf.cpp
index 5d36ee3..53731dc 100644
--- a/lib/MC/MCDwarf.cpp
+++ b/lib/MC/MCDwarf.cpp
@@ -213,8 +213,15 @@
 
   // The first 4 bytes is the total length of the information for this
   // compilation unit (not including these 4 bytes for the length).
-  MCOS->EmitAbsValue(MakeStartMinusEndExpr(MCOS, LineStartSym, LineEndSym,4),
-                     4);
+  // FIXME: We create the dummy TotalLength variable because LineEndSym points
+  // to the end of the section and the darwin assembler doesn't consider that
+  // difference an assembly time constant. It might be better for this to be
+  // proected by a flag.
+  MCSymbol *TotalLength = MCOS->getContext().CreateTempSymbol();
+  MCOS->EmitAssignment(TotalLength,
+		       MakeStartMinusEndExpr(MCOS, LineStartSym, LineEndSym,
+					     4));
+  MCOS->EmitSymbolValue(TotalLength, 4, 0);
 
   // Next 2 bytes is the Version, which is Dwarf 2.
   MCOS->EmitIntValue(2, 2);