llvmbot wrote:

<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-libunwind

Author: Yerzhan Zhamashev (yerzham)

<details>
<summary>Changes</summary>

Most minimal changes to enable libunwind to build for wasm by excluding 
`__wasm__` from the Windows-style __declspec path in config.h and by 
recognizing wasm in assembly.h to skip the unsupported-target error. This 
unblocks building an exceptions-enabled wasi-sdk sysroot (see 
https://github.com/WebAssembly/wasi-sdk/issues/565) and builds on prior 
attempts including [yamt’s 
gist](https://gist.github.com/yamt/b699eb2604d2598810a2876ff2ffc8d8), 
https://github.com/llvm/llvm-project/pull/79667, and 
https://github.com/llvm/llvm-project/pull/140365.

---
Full diff: https://github.com/llvm/llvm-project/pull/168449.diff


2 Files Affected:

- (modified) libunwind/src/assembly.h (+2) 
- (modified) libunwind/src/config.h (+8-7) 


``````````diff
diff --git a/libunwind/src/assembly.h b/libunwind/src/assembly.h
index 84c9d526f1d75..9c35b6050a2bf 100644
--- a/libunwind/src/assembly.h
+++ b/libunwind/src/assembly.h
@@ -254,6 +254,8 @@ aliasname:                                                  
                   \
 #define NO_EXEC_STACK_DIRECTIVE
 
 // clang-format on
+#elif defined(__wasm__)
+
 #else
 
 #error Unsupported target
diff --git a/libunwind/src/config.h b/libunwind/src/config.h
index f017403fa2234..73162995f9293 100644
--- a/libunwind/src/config.h
+++ b/libunwind/src/config.h
@@ -75,13 +75,14 @@
   #define _LIBUNWIND_EXPORT
   #define _LIBUNWIND_HIDDEN
 #else
-  #if !defined(__ELF__) && !defined(__MACH__) && !defined(_AIX)
-    #define _LIBUNWIND_EXPORT __declspec(dllexport)
-    #define _LIBUNWIND_HIDDEN
-  #else
-    #define _LIBUNWIND_EXPORT __attribute__((visibility("default")))
-    #define _LIBUNWIND_HIDDEN __attribute__((visibility("hidden")))
-  #endif
+#if !defined(__ELF__) && !defined(__MACH__) && !defined(_AIX) &&               
\
+    !defined(__wasm__)
+#define _LIBUNWIND_EXPORT __declspec(dllexport)
+#define _LIBUNWIND_HIDDEN
+#else
+#define _LIBUNWIND_EXPORT __attribute__((visibility("default")))
+#define _LIBUNWIND_HIDDEN __attribute__((visibility("hidden")))
+#endif
 #endif
 
 #define STR(a) #a

``````````

</details>


https://github.com/llvm/llvm-project/pull/168449
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to