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]

Reply via email to