[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