[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