This is an automated email from the ASF dual-hosted git repository. yuanz pushed a commit to branch no-std in repository https://gitbox.apache.org/repos/asf/incubator-teaclave-trustzone-sdk.git
commit a85d031e5b4a2b3289d2f5b55716ac7889d4c2f4 Author: Sumit Garg <[email protected]> AuthorDate: Tue Jan 2 15:30:29 2024 +0530 examples: ta: build.rs: Fix some linker incompatibilities Since we don't have a similar linker script pre-processing capability in rust build script as we have with C Makefile. So manually fix following build error seen with older GCC linker while parsing linker scripts: aarch64-linux-gnu-ld.bfd:ta.lds:3: ignoring invalid character `#' in expression Signed-off-by: Sumit Garg <[email protected]> --- examples/acipher-rs/ta/build.rs | 20 +++++++++++++++----- examples/aes-rs/ta/build.rs | 20 +++++++++++++++----- examples/authentication-rs/ta/build.rs | 20 +++++++++++++++----- examples/big_int-rs/ta/build.rs | 20 +++++++++++++++----- examples/diffie_hellman-rs/ta/build.rs | 20 +++++++++++++++----- examples/digest-rs/ta/build.rs | 20 +++++++++++++++----- examples/hello_world-rs/ta/build.rs | 20 +++++++++++++++----- examples/hotp-rs/ta/build.rs | 20 +++++++++++++++----- examples/random-rs/ta/build.rs | 20 +++++++++++++++----- examples/secure_storage-rs/ta/build.rs | 20 +++++++++++++++----- examples/signature_verification-rs/ta/build.rs | 20 +++++++++++++++----- examples/supp_plugin-rs/ta/build.rs | 20 +++++++++++++++----- examples/time-rs/ta/build.rs | 20 +++++++++++++++----- 13 files changed, 195 insertions(+), 65 deletions(-) diff --git a/examples/acipher-rs/ta/build.rs b/examples/acipher-rs/ta/build.rs index af0e5ab..2e40c4a 100644 --- a/examples/acipher-rs/ta/build.rs +++ b/examples/acipher-rs/ta/build.rs @@ -53,18 +53,28 @@ fn main() -> std::io::Result<()> { match env::var("ARCH") { Ok(ref v) if v == "arm" => { - write!(ta_lds, "OUTPUT_FORMAT(\"elf32-littlearm\")\n")?; - write!(ta_lds, "OUTPUT_ARCH(arm)\n")?; for line in f.lines() { - write!(ta_lds, "{}\n", line?)?; + let l = line?; + + if l.starts_with('#') || + l == "OUTPUT_FORMAT(\"elf64-littleaarch64\")" || + l == "OUTPUT_ARCH(aarch64)" { + continue; + } + + write!(ta_lds, "{}\n", l)?; } }, _ => { - write!(ta_lds, "OUTPUT_FORMAT(\"elf64-littleaarch64\")\n")?; - write!(ta_lds, "OUTPUT_ARCH(aarch64)\n")?; for line in f.lines() { let l = line?; + if l.starts_with('#') || + l == "OUTPUT_FORMAT(\"elf32-littlearm\")" || + l == "OUTPUT_ARCH(arm)" { + continue; + } + if l == "\t. = ALIGN(4096);" { write!(ta_lds, "\t. = ALIGN(65536);\n")?; } else { diff --git a/examples/aes-rs/ta/build.rs b/examples/aes-rs/ta/build.rs index af0e5ab..2e40c4a 100644 --- a/examples/aes-rs/ta/build.rs +++ b/examples/aes-rs/ta/build.rs @@ -53,18 +53,28 @@ fn main() -> std::io::Result<()> { match env::var("ARCH") { Ok(ref v) if v == "arm" => { - write!(ta_lds, "OUTPUT_FORMAT(\"elf32-littlearm\")\n")?; - write!(ta_lds, "OUTPUT_ARCH(arm)\n")?; for line in f.lines() { - write!(ta_lds, "{}\n", line?)?; + let l = line?; + + if l.starts_with('#') || + l == "OUTPUT_FORMAT(\"elf64-littleaarch64\")" || + l == "OUTPUT_ARCH(aarch64)" { + continue; + } + + write!(ta_lds, "{}\n", l)?; } }, _ => { - write!(ta_lds, "OUTPUT_FORMAT(\"elf64-littleaarch64\")\n")?; - write!(ta_lds, "OUTPUT_ARCH(aarch64)\n")?; for line in f.lines() { let l = line?; + if l.starts_with('#') || + l == "OUTPUT_FORMAT(\"elf32-littlearm\")" || + l == "OUTPUT_ARCH(arm)" { + continue; + } + if l == "\t. = ALIGN(4096);" { write!(ta_lds, "\t. = ALIGN(65536);\n")?; } else { diff --git a/examples/authentication-rs/ta/build.rs b/examples/authentication-rs/ta/build.rs index af0e5ab..2e40c4a 100644 --- a/examples/authentication-rs/ta/build.rs +++ b/examples/authentication-rs/ta/build.rs @@ -53,18 +53,28 @@ fn main() -> std::io::Result<()> { match env::var("ARCH") { Ok(ref v) if v == "arm" => { - write!(ta_lds, "OUTPUT_FORMAT(\"elf32-littlearm\")\n")?; - write!(ta_lds, "OUTPUT_ARCH(arm)\n")?; for line in f.lines() { - write!(ta_lds, "{}\n", line?)?; + let l = line?; + + if l.starts_with('#') || + l == "OUTPUT_FORMAT(\"elf64-littleaarch64\")" || + l == "OUTPUT_ARCH(aarch64)" { + continue; + } + + write!(ta_lds, "{}\n", l)?; } }, _ => { - write!(ta_lds, "OUTPUT_FORMAT(\"elf64-littleaarch64\")\n")?; - write!(ta_lds, "OUTPUT_ARCH(aarch64)\n")?; for line in f.lines() { let l = line?; + if l.starts_with('#') || + l == "OUTPUT_FORMAT(\"elf32-littlearm\")" || + l == "OUTPUT_ARCH(arm)" { + continue; + } + if l == "\t. = ALIGN(4096);" { write!(ta_lds, "\t. = ALIGN(65536);\n")?; } else { diff --git a/examples/big_int-rs/ta/build.rs b/examples/big_int-rs/ta/build.rs index af0e5ab..2e40c4a 100644 --- a/examples/big_int-rs/ta/build.rs +++ b/examples/big_int-rs/ta/build.rs @@ -53,18 +53,28 @@ fn main() -> std::io::Result<()> { match env::var("ARCH") { Ok(ref v) if v == "arm" => { - write!(ta_lds, "OUTPUT_FORMAT(\"elf32-littlearm\")\n")?; - write!(ta_lds, "OUTPUT_ARCH(arm)\n")?; for line in f.lines() { - write!(ta_lds, "{}\n", line?)?; + let l = line?; + + if l.starts_with('#') || + l == "OUTPUT_FORMAT(\"elf64-littleaarch64\")" || + l == "OUTPUT_ARCH(aarch64)" { + continue; + } + + write!(ta_lds, "{}\n", l)?; } }, _ => { - write!(ta_lds, "OUTPUT_FORMAT(\"elf64-littleaarch64\")\n")?; - write!(ta_lds, "OUTPUT_ARCH(aarch64)\n")?; for line in f.lines() { let l = line?; + if l.starts_with('#') || + l == "OUTPUT_FORMAT(\"elf32-littlearm\")" || + l == "OUTPUT_ARCH(arm)" { + continue; + } + if l == "\t. = ALIGN(4096);" { write!(ta_lds, "\t. = ALIGN(65536);\n")?; } else { diff --git a/examples/diffie_hellman-rs/ta/build.rs b/examples/diffie_hellman-rs/ta/build.rs index af0e5ab..2e40c4a 100644 --- a/examples/diffie_hellman-rs/ta/build.rs +++ b/examples/diffie_hellman-rs/ta/build.rs @@ -53,18 +53,28 @@ fn main() -> std::io::Result<()> { match env::var("ARCH") { Ok(ref v) if v == "arm" => { - write!(ta_lds, "OUTPUT_FORMAT(\"elf32-littlearm\")\n")?; - write!(ta_lds, "OUTPUT_ARCH(arm)\n")?; for line in f.lines() { - write!(ta_lds, "{}\n", line?)?; + let l = line?; + + if l.starts_with('#') || + l == "OUTPUT_FORMAT(\"elf64-littleaarch64\")" || + l == "OUTPUT_ARCH(aarch64)" { + continue; + } + + write!(ta_lds, "{}\n", l)?; } }, _ => { - write!(ta_lds, "OUTPUT_FORMAT(\"elf64-littleaarch64\")\n")?; - write!(ta_lds, "OUTPUT_ARCH(aarch64)\n")?; for line in f.lines() { let l = line?; + if l.starts_with('#') || + l == "OUTPUT_FORMAT(\"elf32-littlearm\")" || + l == "OUTPUT_ARCH(arm)" { + continue; + } + if l == "\t. = ALIGN(4096);" { write!(ta_lds, "\t. = ALIGN(65536);\n")?; } else { diff --git a/examples/digest-rs/ta/build.rs b/examples/digest-rs/ta/build.rs index af0e5ab..2e40c4a 100644 --- a/examples/digest-rs/ta/build.rs +++ b/examples/digest-rs/ta/build.rs @@ -53,18 +53,28 @@ fn main() -> std::io::Result<()> { match env::var("ARCH") { Ok(ref v) if v == "arm" => { - write!(ta_lds, "OUTPUT_FORMAT(\"elf32-littlearm\")\n")?; - write!(ta_lds, "OUTPUT_ARCH(arm)\n")?; for line in f.lines() { - write!(ta_lds, "{}\n", line?)?; + let l = line?; + + if l.starts_with('#') || + l == "OUTPUT_FORMAT(\"elf64-littleaarch64\")" || + l == "OUTPUT_ARCH(aarch64)" { + continue; + } + + write!(ta_lds, "{}\n", l)?; } }, _ => { - write!(ta_lds, "OUTPUT_FORMAT(\"elf64-littleaarch64\")\n")?; - write!(ta_lds, "OUTPUT_ARCH(aarch64)\n")?; for line in f.lines() { let l = line?; + if l.starts_with('#') || + l == "OUTPUT_FORMAT(\"elf32-littlearm\")" || + l == "OUTPUT_ARCH(arm)" { + continue; + } + if l == "\t. = ALIGN(4096);" { write!(ta_lds, "\t. = ALIGN(65536);\n")?; } else { diff --git a/examples/hello_world-rs/ta/build.rs b/examples/hello_world-rs/ta/build.rs index af0e5ab..2e40c4a 100644 --- a/examples/hello_world-rs/ta/build.rs +++ b/examples/hello_world-rs/ta/build.rs @@ -53,18 +53,28 @@ fn main() -> std::io::Result<()> { match env::var("ARCH") { Ok(ref v) if v == "arm" => { - write!(ta_lds, "OUTPUT_FORMAT(\"elf32-littlearm\")\n")?; - write!(ta_lds, "OUTPUT_ARCH(arm)\n")?; for line in f.lines() { - write!(ta_lds, "{}\n", line?)?; + let l = line?; + + if l.starts_with('#') || + l == "OUTPUT_FORMAT(\"elf64-littleaarch64\")" || + l == "OUTPUT_ARCH(aarch64)" { + continue; + } + + write!(ta_lds, "{}\n", l)?; } }, _ => { - write!(ta_lds, "OUTPUT_FORMAT(\"elf64-littleaarch64\")\n")?; - write!(ta_lds, "OUTPUT_ARCH(aarch64)\n")?; for line in f.lines() { let l = line?; + if l.starts_with('#') || + l == "OUTPUT_FORMAT(\"elf32-littlearm\")" || + l == "OUTPUT_ARCH(arm)" { + continue; + } + if l == "\t. = ALIGN(4096);" { write!(ta_lds, "\t. = ALIGN(65536);\n")?; } else { diff --git a/examples/hotp-rs/ta/build.rs b/examples/hotp-rs/ta/build.rs index af0e5ab..2e40c4a 100644 --- a/examples/hotp-rs/ta/build.rs +++ b/examples/hotp-rs/ta/build.rs @@ -53,18 +53,28 @@ fn main() -> std::io::Result<()> { match env::var("ARCH") { Ok(ref v) if v == "arm" => { - write!(ta_lds, "OUTPUT_FORMAT(\"elf32-littlearm\")\n")?; - write!(ta_lds, "OUTPUT_ARCH(arm)\n")?; for line in f.lines() { - write!(ta_lds, "{}\n", line?)?; + let l = line?; + + if l.starts_with('#') || + l == "OUTPUT_FORMAT(\"elf64-littleaarch64\")" || + l == "OUTPUT_ARCH(aarch64)" { + continue; + } + + write!(ta_lds, "{}\n", l)?; } }, _ => { - write!(ta_lds, "OUTPUT_FORMAT(\"elf64-littleaarch64\")\n")?; - write!(ta_lds, "OUTPUT_ARCH(aarch64)\n")?; for line in f.lines() { let l = line?; + if l.starts_with('#') || + l == "OUTPUT_FORMAT(\"elf32-littlearm\")" || + l == "OUTPUT_ARCH(arm)" { + continue; + } + if l == "\t. = ALIGN(4096);" { write!(ta_lds, "\t. = ALIGN(65536);\n")?; } else { diff --git a/examples/random-rs/ta/build.rs b/examples/random-rs/ta/build.rs index af0e5ab..2e40c4a 100644 --- a/examples/random-rs/ta/build.rs +++ b/examples/random-rs/ta/build.rs @@ -53,18 +53,28 @@ fn main() -> std::io::Result<()> { match env::var("ARCH") { Ok(ref v) if v == "arm" => { - write!(ta_lds, "OUTPUT_FORMAT(\"elf32-littlearm\")\n")?; - write!(ta_lds, "OUTPUT_ARCH(arm)\n")?; for line in f.lines() { - write!(ta_lds, "{}\n", line?)?; + let l = line?; + + if l.starts_with('#') || + l == "OUTPUT_FORMAT(\"elf64-littleaarch64\")" || + l == "OUTPUT_ARCH(aarch64)" { + continue; + } + + write!(ta_lds, "{}\n", l)?; } }, _ => { - write!(ta_lds, "OUTPUT_FORMAT(\"elf64-littleaarch64\")\n")?; - write!(ta_lds, "OUTPUT_ARCH(aarch64)\n")?; for line in f.lines() { let l = line?; + if l.starts_with('#') || + l == "OUTPUT_FORMAT(\"elf32-littlearm\")" || + l == "OUTPUT_ARCH(arm)" { + continue; + } + if l == "\t. = ALIGN(4096);" { write!(ta_lds, "\t. = ALIGN(65536);\n")?; } else { diff --git a/examples/secure_storage-rs/ta/build.rs b/examples/secure_storage-rs/ta/build.rs index af0e5ab..2e40c4a 100644 --- a/examples/secure_storage-rs/ta/build.rs +++ b/examples/secure_storage-rs/ta/build.rs @@ -53,18 +53,28 @@ fn main() -> std::io::Result<()> { match env::var("ARCH") { Ok(ref v) if v == "arm" => { - write!(ta_lds, "OUTPUT_FORMAT(\"elf32-littlearm\")\n")?; - write!(ta_lds, "OUTPUT_ARCH(arm)\n")?; for line in f.lines() { - write!(ta_lds, "{}\n", line?)?; + let l = line?; + + if l.starts_with('#') || + l == "OUTPUT_FORMAT(\"elf64-littleaarch64\")" || + l == "OUTPUT_ARCH(aarch64)" { + continue; + } + + write!(ta_lds, "{}\n", l)?; } }, _ => { - write!(ta_lds, "OUTPUT_FORMAT(\"elf64-littleaarch64\")\n")?; - write!(ta_lds, "OUTPUT_ARCH(aarch64)\n")?; for line in f.lines() { let l = line?; + if l.starts_with('#') || + l == "OUTPUT_FORMAT(\"elf32-littlearm\")" || + l == "OUTPUT_ARCH(arm)" { + continue; + } + if l == "\t. = ALIGN(4096);" { write!(ta_lds, "\t. = ALIGN(65536);\n")?; } else { diff --git a/examples/signature_verification-rs/ta/build.rs b/examples/signature_verification-rs/ta/build.rs index af0e5ab..2e40c4a 100644 --- a/examples/signature_verification-rs/ta/build.rs +++ b/examples/signature_verification-rs/ta/build.rs @@ -53,18 +53,28 @@ fn main() -> std::io::Result<()> { match env::var("ARCH") { Ok(ref v) if v == "arm" => { - write!(ta_lds, "OUTPUT_FORMAT(\"elf32-littlearm\")\n")?; - write!(ta_lds, "OUTPUT_ARCH(arm)\n")?; for line in f.lines() { - write!(ta_lds, "{}\n", line?)?; + let l = line?; + + if l.starts_with('#') || + l == "OUTPUT_FORMAT(\"elf64-littleaarch64\")" || + l == "OUTPUT_ARCH(aarch64)" { + continue; + } + + write!(ta_lds, "{}\n", l)?; } }, _ => { - write!(ta_lds, "OUTPUT_FORMAT(\"elf64-littleaarch64\")\n")?; - write!(ta_lds, "OUTPUT_ARCH(aarch64)\n")?; for line in f.lines() { let l = line?; + if l.starts_with('#') || + l == "OUTPUT_FORMAT(\"elf32-littlearm\")" || + l == "OUTPUT_ARCH(arm)" { + continue; + } + if l == "\t. = ALIGN(4096);" { write!(ta_lds, "\t. = ALIGN(65536);\n")?; } else { diff --git a/examples/supp_plugin-rs/ta/build.rs b/examples/supp_plugin-rs/ta/build.rs index e63b967..826b509 100644 --- a/examples/supp_plugin-rs/ta/build.rs +++ b/examples/supp_plugin-rs/ta/build.rs @@ -53,18 +53,28 @@ fn main() -> std::io::Result<()> { match env::var("ARCH") { Ok(ref v) if v == "arm" => { - write!(ta_lds, "OUTPUT_FORMAT(\"elf32-littlearm\")\n")?; - write!(ta_lds, "OUTPUT_ARCH(arm)\n")?; for line in f.lines() { - write!(ta_lds, "{}\n", line?)?; + let l = line?; + + if l.starts_with('#') || + l == "OUTPUT_FORMAT(\"elf64-littleaarch64\")" || + l == "OUTPUT_ARCH(aarch64)" { + continue; + } + + write!(ta_lds, "{}\n", l)?; } }, _ => { - write!(ta_lds, "OUTPUT_FORMAT(\"elf64-littleaarch64\")\n")?; - write!(ta_lds, "OUTPUT_ARCH(aarch64)\n")?; for line in f.lines() { let l = line?; + if l.starts_with('#') || + l == "OUTPUT_FORMAT(\"elf32-littlearm\")" || + l == "OUTPUT_ARCH(arm)" { + continue; + } + if l == "\t. = ALIGN(4096);" { write!(ta_lds, "\t. = ALIGN(65536);\n")?; } else { diff --git a/examples/time-rs/ta/build.rs b/examples/time-rs/ta/build.rs index af0e5ab..2e40c4a 100644 --- a/examples/time-rs/ta/build.rs +++ b/examples/time-rs/ta/build.rs @@ -53,18 +53,28 @@ fn main() -> std::io::Result<()> { match env::var("ARCH") { Ok(ref v) if v == "arm" => { - write!(ta_lds, "OUTPUT_FORMAT(\"elf32-littlearm\")\n")?; - write!(ta_lds, "OUTPUT_ARCH(arm)\n")?; for line in f.lines() { - write!(ta_lds, "{}\n", line?)?; + let l = line?; + + if l.starts_with('#') || + l == "OUTPUT_FORMAT(\"elf64-littleaarch64\")" || + l == "OUTPUT_ARCH(aarch64)" { + continue; + } + + write!(ta_lds, "{}\n", l)?; } }, _ => { - write!(ta_lds, "OUTPUT_FORMAT(\"elf64-littleaarch64\")\n")?; - write!(ta_lds, "OUTPUT_ARCH(aarch64)\n")?; for line in f.lines() { let l = line?; + if l.starts_with('#') || + l == "OUTPUT_FORMAT(\"elf32-littlearm\")" || + l == "OUTPUT_ARCH(arm)" { + continue; + } + if l == "\t. = ALIGN(4096);" { write!(ta_lds, "\t. = ALIGN(65536);\n")?; } else { --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
