[build] use c instead of asm for DTD_DATA

This change removes the use of dtddata.S and instead adds the required
data file as a script-generated c file. This allows the project to build
on the MacOS host toolchain. The change also reverts a prior change to
dtddata.S as it is no longer needed.

Test: ran wayland_swapchain_test
Change-Id: I8d1e22b49296f2fa92b07a3e850cad1f3433d41f
diff --git a/BUILD.gn b/BUILD.gn
index 748ca0b..9aa4323 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -119,7 +119,7 @@
   ]
 
   sources = [
-    "src/dtddata.S",
+    "protocol/wayland.dtd.c",
     "src/scanner.c",
     "src/wayland-util.c",
   ]
diff --git a/README.fuchsia b/README.fuchsia
index 83b7209..211ed5b 100644
--- a/README.fuchsia
+++ b/README.fuchsia
@@ -11,3 +11,4 @@
 2. ./autogen.sh --disable-documentation
 3. cp ./src/wayland-version.h ${FUCHSIA_DIR}/third_party/wayland/src
 4. cp ./config.h ${FUCHSIA_DIR}/third_party/wayland
+5. ${FUCHSIA_DIR}/third_party/wayland/protocol/wayland.dtd.c.gen.sh ./protocol/wayland.dtd > ${FUCHSIA_DIR}/third_party/wayland/protocol/wayland.dtd.c
diff --git a/protocol/wayland.dtd.c b/protocol/wayland.dtd.c
new file mode 100644
index 0000000..73d3d1b
--- /dev/null
+++ b/protocol/wayland.dtd.c
@@ -0,0 +1,90 @@
+// Copyright 2019 The Fuchsia Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#pragma pack(4)
+
+char DTD_DATA_begin[] = {
+  0x3C, 0x21, 0x45, 0x4C, 0x45, 0x4D, 0x45, 0x4E, 0x54, 0x20, 0x70, 0x72, 0x6F, 0x74, 0x6F, 0x63,
+  0x6F, 0x6C, 0x20, 0x28, 0x63, 0x6F, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3F, 0x2C, 0x20,
+  0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6F, 0x6E, 0x3F, 0x2C, 0x20, 0x69, 0x6E,
+  0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2B, 0x29, 0x3E, 0x0A, 0x20, 0x20, 0x3C, 0x21, 0x41,
+  0x54, 0x54, 0x4C, 0x49, 0x53, 0x54, 0x20, 0x70, 0x72, 0x6F, 0x74, 0x6F, 0x63, 0x6F, 0x6C, 0x20,
+  0x6E, 0x61, 0x6D, 0x65, 0x20, 0x43, 0x44, 0x41, 0x54, 0x41, 0x20, 0x23, 0x52, 0x45, 0x51, 0x55,
+  0x49, 0x52, 0x45, 0x44, 0x3E, 0x0A, 0x3C, 0x21, 0x45, 0x4C, 0x45, 0x4D, 0x45, 0x4E, 0x54, 0x20,
+  0x63, 0x6F, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x28, 0x23, 0x50, 0x43, 0x44, 0x41,
+  0x54, 0x41, 0x29, 0x3E, 0x0A, 0x3C, 0x21, 0x45, 0x4C, 0x45, 0x4D, 0x45, 0x4E, 0x54, 0x20, 0x69,
+  0x6E, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x20, 0x28, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,
+  0x70, 0x74, 0x69, 0x6F, 0x6E, 0x3F, 0x2C, 0x28, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x7C,
+  0x65, 0x76, 0x65, 0x6E, 0x74, 0x7C, 0x65, 0x6E, 0x75, 0x6D, 0x29, 0x2B, 0x29, 0x3E, 0x0A, 0x20,
+  0x20, 0x3C, 0x21, 0x41, 0x54, 0x54, 0x4C, 0x49, 0x53, 0x54, 0x20, 0x69, 0x6E, 0x74, 0x65, 0x72,
+  0x66, 0x61, 0x63, 0x65, 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x20, 0x43, 0x44, 0x41, 0x54, 0x41, 0x20,
+  0x23, 0x52, 0x45, 0x51, 0x55, 0x49, 0x52, 0x45, 0x44, 0x3E, 0x0A, 0x20, 0x20, 0x3C, 0x21, 0x41,
+  0x54, 0x54, 0x4C, 0x49, 0x53, 0x54, 0x20, 0x69, 0x6E, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65,
+  0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6F, 0x6E, 0x20, 0x43, 0x44, 0x41, 0x54, 0x41, 0x20, 0x23,
+  0x52, 0x45, 0x51, 0x55, 0x49, 0x52, 0x45, 0x44, 0x3E, 0x0A, 0x3C, 0x21, 0x45, 0x4C, 0x45, 0x4D,
+  0x45, 0x4E, 0x54, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x28, 0x64, 0x65, 0x73,
+  0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6F, 0x6E, 0x3F, 0x2C, 0x61, 0x72, 0x67, 0x2A, 0x29, 0x3E,
+  0x0A, 0x20, 0x20, 0x3C, 0x21, 0x41, 0x54, 0x54, 0x4C, 0x49, 0x53, 0x54, 0x20, 0x72, 0x65, 0x71,
+  0x75, 0x65, 0x73, 0x74, 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x20, 0x43, 0x44, 0x41, 0x54, 0x41, 0x20,
+  0x23, 0x52, 0x45, 0x51, 0x55, 0x49, 0x52, 0x45, 0x44, 0x3E, 0x0A, 0x20, 0x20, 0x3C, 0x21, 0x41,
+  0x54, 0x54, 0x4C, 0x49, 0x53, 0x54, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x74,
+  0x79, 0x70, 0x65, 0x20, 0x43, 0x44, 0x41, 0x54, 0x41, 0x20, 0x23, 0x49, 0x4D, 0x50, 0x4C, 0x49,
+  0x45, 0x44, 0x3E, 0x0A, 0x20, 0x20, 0x3C, 0x21, 0x41, 0x54, 0x54, 0x4C, 0x49, 0x53, 0x54, 0x20,
+  0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x73, 0x69, 0x6E, 0x63, 0x65, 0x20, 0x43, 0x44,
+  0x41, 0x54, 0x41, 0x20, 0x23, 0x49, 0x4D, 0x50, 0x4C, 0x49, 0x45, 0x44, 0x3E, 0x0A, 0x3C, 0x21,
+  0x45, 0x4C, 0x45, 0x4D, 0x45, 0x4E, 0x54, 0x20, 0x65, 0x76, 0x65, 0x6E, 0x74, 0x20, 0x28, 0x64,
+  0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6F, 0x6E, 0x3F, 0x2C, 0x61, 0x72, 0x67, 0x2A,
+  0x29, 0x3E, 0x0A, 0x20, 0x20, 0x3C, 0x21, 0x41, 0x54, 0x54, 0x4C, 0x49, 0x53, 0x54, 0x20, 0x65,
+  0x76, 0x65, 0x6E, 0x74, 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x20, 0x43, 0x44, 0x41, 0x54, 0x41, 0x20,
+  0x23, 0x52, 0x45, 0x51, 0x55, 0x49, 0x52, 0x45, 0x44, 0x3E, 0x0A, 0x20, 0x20, 0x3C, 0x21, 0x41,
+  0x54, 0x54, 0x4C, 0x49, 0x53, 0x54, 0x20, 0x65, 0x76, 0x65, 0x6E, 0x74, 0x20, 0x73, 0x69, 0x6E,
+  0x63, 0x65, 0x20, 0x43, 0x44, 0x41, 0x54, 0x41, 0x20, 0x23, 0x49, 0x4D, 0x50, 0x4C, 0x49, 0x45,
+  0x44, 0x3E, 0x0A, 0x3C, 0x21, 0x45, 0x4C, 0x45, 0x4D, 0x45, 0x4E, 0x54, 0x20, 0x65, 0x6E, 0x75,
+  0x6D, 0x20, 0x28, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6F, 0x6E, 0x3F, 0x2C,
+  0x65, 0x6E, 0x74, 0x72, 0x79, 0x2A, 0x29, 0x3E, 0x0A, 0x20, 0x20, 0x3C, 0x21, 0x41, 0x54, 0x54,
+  0x4C, 0x49, 0x53, 0x54, 0x20, 0x65, 0x6E, 0x75, 0x6D, 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x20, 0x43,
+  0x44, 0x41, 0x54, 0x41, 0x20, 0x23, 0x52, 0x45, 0x51, 0x55, 0x49, 0x52, 0x45, 0x44, 0x3E, 0x0A,
+  0x20, 0x20, 0x3C, 0x21, 0x41, 0x54, 0x54, 0x4C, 0x49, 0x53, 0x54, 0x20, 0x65, 0x6E, 0x75, 0x6D,
+  0x20, 0x73, 0x69, 0x6E, 0x63, 0x65, 0x20, 0x43, 0x44, 0x41, 0x54, 0x41, 0x20, 0x23, 0x49, 0x4D,
+  0x50, 0x4C, 0x49, 0x45, 0x44, 0x3E, 0x0A, 0x20, 0x20, 0x3C, 0x21, 0x41, 0x54, 0x54, 0x4C, 0x49,
+  0x53, 0x54, 0x20, 0x65, 0x6E, 0x75, 0x6D, 0x20, 0x62, 0x69, 0x74, 0x66, 0x69, 0x65, 0x6C, 0x64,
+  0x20, 0x43, 0x44, 0x41, 0x54, 0x41, 0x20, 0x23, 0x49, 0x4D, 0x50, 0x4C, 0x49, 0x45, 0x44, 0x3E,
+  0x0A, 0x3C, 0x21, 0x45, 0x4C, 0x45, 0x4D, 0x45, 0x4E, 0x54, 0x20, 0x65, 0x6E, 0x74, 0x72, 0x79,
+  0x20, 0x28, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6F, 0x6E, 0x3F, 0x29, 0x3E,
+  0x0A, 0x20, 0x20, 0x3C, 0x21, 0x41, 0x54, 0x54, 0x4C, 0x49, 0x53, 0x54, 0x20, 0x65, 0x6E, 0x74,
+  0x72, 0x79, 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x20, 0x43, 0x44, 0x41, 0x54, 0x41, 0x20, 0x23, 0x52,
+  0x45, 0x51, 0x55, 0x49, 0x52, 0x45, 0x44, 0x3E, 0x0A, 0x20, 0x20, 0x3C, 0x21, 0x41, 0x54, 0x54,
+  0x4C, 0x49, 0x53, 0x54, 0x20, 0x65, 0x6E, 0x74, 0x72, 0x79, 0x20, 0x76, 0x61, 0x6C, 0x75, 0x65,
+  0x20, 0x43, 0x44, 0x41, 0x54, 0x41, 0x20, 0x23, 0x52, 0x45, 0x51, 0x55, 0x49, 0x52, 0x45, 0x44,
+  0x3E, 0x0A, 0x20, 0x20, 0x3C, 0x21, 0x41, 0x54, 0x54, 0x4C, 0x49, 0x53, 0x54, 0x20, 0x65, 0x6E,
+  0x74, 0x72, 0x79, 0x20, 0x73, 0x75, 0x6D, 0x6D, 0x61, 0x72, 0x79, 0x20, 0x43, 0x44, 0x41, 0x54,
+  0x41, 0x20, 0x23, 0x49, 0x4D, 0x50, 0x4C, 0x49, 0x45, 0x44, 0x3E, 0x0A, 0x20, 0x20, 0x3C, 0x21,
+  0x41, 0x54, 0x54, 0x4C, 0x49, 0x53, 0x54, 0x20, 0x65, 0x6E, 0x74, 0x72, 0x79, 0x20, 0x73, 0x69,
+  0x6E, 0x63, 0x65, 0x20, 0x43, 0x44, 0x41, 0x54, 0x41, 0x20, 0x23, 0x49, 0x4D, 0x50, 0x4C, 0x49,
+  0x45, 0x44, 0x3E, 0x0A, 0x3C, 0x21, 0x45, 0x4C, 0x45, 0x4D, 0x45, 0x4E, 0x54, 0x20, 0x61, 0x72,
+  0x67, 0x20, 0x28, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6F, 0x6E, 0x3F, 0x29,
+  0x3E, 0x0A, 0x20, 0x20, 0x3C, 0x21, 0x41, 0x54, 0x54, 0x4C, 0x49, 0x53, 0x54, 0x20, 0x61, 0x72,
+  0x67, 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x20, 0x43, 0x44, 0x41, 0x54, 0x41, 0x20, 0x23, 0x52, 0x45,
+  0x51, 0x55, 0x49, 0x52, 0x45, 0x44, 0x3E, 0x0A, 0x20, 0x20, 0x3C, 0x21, 0x41, 0x54, 0x54, 0x4C,
+  0x49, 0x53, 0x54, 0x20, 0x61, 0x72, 0x67, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x43, 0x44, 0x41,
+  0x54, 0x41, 0x20, 0x23, 0x52, 0x45, 0x51, 0x55, 0x49, 0x52, 0x45, 0x44, 0x3E, 0x0A, 0x20, 0x20,
+  0x3C, 0x21, 0x41, 0x54, 0x54, 0x4C, 0x49, 0x53, 0x54, 0x20, 0x61, 0x72, 0x67, 0x20, 0x73, 0x75,
+  0x6D, 0x6D, 0x61, 0x72, 0x79, 0x20, 0x43, 0x44, 0x41, 0x54, 0x41, 0x20, 0x23, 0x49, 0x4D, 0x50,
+  0x4C, 0x49, 0x45, 0x44, 0x3E, 0x0A, 0x20, 0x20, 0x3C, 0x21, 0x41, 0x54, 0x54, 0x4C, 0x49, 0x53,
+  0x54, 0x20, 0x61, 0x72, 0x67, 0x20, 0x69, 0x6E, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x20,
+  0x43, 0x44, 0x41, 0x54, 0x41, 0x20, 0x23, 0x49, 0x4D, 0x50, 0x4C, 0x49, 0x45, 0x44, 0x3E, 0x0A,
+  0x20, 0x20, 0x3C, 0x21, 0x41, 0x54, 0x54, 0x4C, 0x49, 0x53, 0x54, 0x20, 0x61, 0x72, 0x67, 0x20,
+  0x61, 0x6C, 0x6C, 0x6F, 0x77, 0x2D, 0x6E, 0x75, 0x6C, 0x6C, 0x20, 0x43, 0x44, 0x41, 0x54, 0x41,
+  0x20, 0x23, 0x49, 0x4D, 0x50, 0x4C, 0x49, 0x45, 0x44, 0x3E, 0x0A, 0x20, 0x20, 0x3C, 0x21, 0x41,
+  0x54, 0x54, 0x4C, 0x49, 0x53, 0x54, 0x20, 0x61, 0x72, 0x67, 0x20, 0x65, 0x6E, 0x75, 0x6D, 0x20,
+  0x43, 0x44, 0x41, 0x54, 0x41, 0x20, 0x23, 0x49, 0x4D, 0x50, 0x4C, 0x49, 0x45, 0x44, 0x3E, 0x0A,
+  0x3C, 0x21, 0x45, 0x4C, 0x45, 0x4D, 0x45, 0x4E, 0x54, 0x20, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,
+  0x70, 0x74, 0x69, 0x6F, 0x6E, 0x20, 0x28, 0x23, 0x50, 0x43, 0x44, 0x41, 0x54, 0x41, 0x29, 0x3E,
+  0x0A, 0x20, 0x20, 0x3C, 0x21, 0x41, 0x54, 0x54, 0x4C, 0x49, 0x53, 0x54, 0x20, 0x64, 0x65, 0x73,
+  0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6F, 0x6E, 0x20, 0x73, 0x75, 0x6D, 0x6D, 0x61, 0x72, 0x79,
+  0x20, 0x43, 0x44, 0x41, 0x54, 0x41, 0x20, 0x23, 0x52, 0x45, 0x51, 0x55, 0x49, 0x52, 0x45, 0x44,
+  0x3E, 0x0A,
+};
+
+int DTD_DATA_len = 1266;
diff --git a/protocol/wayland.dtd.c.gen.sh b/protocol/wayland.dtd.c.gen.sh
new file mode 100755
index 0000000..8e0b659
--- /dev/null
+++ b/protocol/wayland.dtd.c.gen.sh
@@ -0,0 +1,26 @@
+#!/bin/bash
+# Copyright 2019 The Fuchsia Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+set -eo pipefail
+
+# This script is used to regenerate the wayland.dtd.h file. See ../README.fuchsia for details.
+
+cols=16
+sym="DTD_DATA"
+file=${1}
+size=$(stat -c %s ${file})
+full=$((((${size} / ${cols})) * ${cols}))
+
+header="// Copyright $(date +%Y) The Fuchsia Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file."$'\n\n'
+header="${header}#pragma pack(4)"$'\n\n'
+header="${header}char ${sym}_begin[] = {"$'\n'
+header="${header}$(hexdump -n ${full} -v -e '" "' -e "${cols}/1 \" 0x%02X,\"" -e '"\n"' ${file})"$'\n'
+header="${header} $(hexdump -s ${full} -v -e '/1 ""' -e '/1 " 0x%02X,"' ${file})"$'\n'
+header="${header}};"$'\n\n'
+header="${header}int ${sym}_len = ${size};"$'\n'
+
+printf "${header}"
diff --git a/src/dtddata.S b/src/dtddata.S
index 71ec989..2405066 100644
--- a/src/dtddata.S
+++ b/src/dtddata.S
@@ -47,4 +47,4 @@
 .endm
 
 .section .rodata
-binfile DTD_DATA protocol/wayland.dtd
+binfile DTD_DATA src/wayland.dtd.embed