aboutsummaryrefslogtreecommitdiffstats
path: root/contrib
diff options
context:
space:
mode:
authorthegeorg <thegeorg@yandex-team.com>2025-01-09 19:48:50 +0300
committerthegeorg <thegeorg@yandex-team.com>2025-01-09 20:10:05 +0300
commit5b95a133cb44f9f6dd65110f057cc55b36f9a859 (patch)
tree285d1cf873023a3d0e981a414f7799bbc88246cd /contrib
parent4164728ac2be8f2b58391faacb71ed11267db35e (diff)
downloadydb-5b95a133cb44f9f6dd65110f057cc55b36f9a859.tar.gz
Cleanup libunwind import routine
commit_hash:edc483d8a602a84f9a90fe73a5889591c1d8ac46
Diffstat (limited to 'contrib')
-rw-r--r--contrib/libs/libunwind/.yandex_meta/__init__.py4
-rw-r--r--contrib/libs/libunwind/.yandex_meta/override.nix5
-rw-r--r--contrib/libs/libunwind/include/__libunwind_config.h4
-rw-r--r--contrib/libs/libunwind/patches/04-wasm-config.patch19
-rw-r--r--contrib/libs/libunwind/ya.make8
5 files changed, 36 insertions, 4 deletions
diff --git a/contrib/libs/libunwind/.yandex_meta/__init__.py b/contrib/libs/libunwind/.yandex_meta/__init__.py
index f93d859c2e..d1a5b082d6 100644
--- a/contrib/libs/libunwind/.yandex_meta/__init__.py
+++ b/contrib/libs/libunwind/.yandex_meta/__init__.py
@@ -4,12 +4,12 @@ from devtools.yamaker.modules import Linkable, Switch
def post_install(self):
with self.yamakes["."] as libunwind:
- libunwind.DISABLE.add("USE_LTO")
libunwind.NO_COMPILER_WARNINGS = False
+ libunwind.NO_LTO = True
libunwind.NO_RUNTIME = True
libunwind.NO_SANITIZE = True
libunwind.NO_SANITIZE_COVERAGE = True
- libunwind.ADDINCL = [f"{self.arcdir}/include"]
+ # original build uses -f options heavily, keep only necessary subset
libunwind.CFLAGS += ["-fno-exceptions", "-fno-rtti", "-funwind-tables"]
libunwind.after("CFLAGS", Switch({"SANITIZER_TYPE == memory": "CFLAGS(-fPIC)"}))
libunwind.PEERDIR.add("library/cpp/sanitizer/include")
diff --git a/contrib/libs/libunwind/.yandex_meta/override.nix b/contrib/libs/libunwind/.yandex_meta/override.nix
index f6fbeb5805..04e5939865 100644
--- a/contrib/libs/libunwind/.yandex_meta/override.nix
+++ b/contrib/libs/libunwind/.yandex_meta/override.nix
@@ -11,4 +11,9 @@ pkgs: attrs: with pkgs; with attrs; rec {
patches = [];
sourceRoot = "source/libunwind";
+
+ # Building without this option breaks build traces: https://st.yandex-team.ru/DTCC-589.
+ cmakeFlags = [
+ "-DCMAKE_CXX_FLAGS=-fno-integrated-cc1"
+ ];
}
diff --git a/contrib/libs/libunwind/include/__libunwind_config.h b/contrib/libs/libunwind/include/__libunwind_config.h
index 8db336b2d7..028b9e3baa 100644
--- a/contrib/libs/libunwind/include/__libunwind_config.h
+++ b/contrib/libs/libunwind/include/__libunwind_config.h
@@ -180,6 +180,10 @@
#endif
#define _LIBUNWIND_HIGHEST_DWARF_REGISTER \
_LIBUNWIND_HIGHEST_DWARF_REGISTER_LOONGARCH
+#elif defined(__wasm__)
+// Unused
+#define _LIBUNWIND_CONTEXT_SIZE 0
+#define _LIBUNWIND_CURSOR_SIZE 0
# else
# error "Unsupported architecture."
# endif
diff --git a/contrib/libs/libunwind/patches/04-wasm-config.patch b/contrib/libs/libunwind/patches/04-wasm-config.patch
new file mode 100644
index 0000000000..c093f47541
--- /dev/null
+++ b/contrib/libs/libunwind/patches/04-wasm-config.patch
@@ -0,0 +1,19 @@
+commit 080afaf1ef8e81cfdc26850560b639acd0c88733
+author: robot-contrib
+date: 2024-12-28T08:39:56+03:00
+
+ Update contrib/libs/libunwind to 19.1.5
+
+--- contrib/libs/libunwind/include/__libunwind_config.h (cc7e7e3cd08b4064e3856fcec6df5aa39b8cc0a4)
++++ contrib/libs/libunwind/include/__libunwind_config.h (080afaf1ef8e81cfdc26850560b639acd0c88733)
+@@ -180,6 +180,10 @@
+ #endif
+ #define _LIBUNWIND_HIGHEST_DWARF_REGISTER \
+ _LIBUNWIND_HIGHEST_DWARF_REGISTER_LOONGARCH
++#elif defined(__wasm__)
++// Unused
++#define _LIBUNWIND_CONTEXT_SIZE 0
++#define _LIBUNWIND_CURSOR_SIZE 0
+ # else
+ # error "Unsupported architecture."
+ # endif
diff --git a/contrib/libs/libunwind/ya.make b/contrib/libs/libunwind/ya.make
index 6556b688ee..062d702729 100644
--- a/contrib/libs/libunwind/ya.make
+++ b/contrib/libs/libunwind/ya.make
@@ -15,8 +15,6 @@ VERSION(18.1.0-rc1)
ORIGINAL_SOURCE(https://github.com/llvm/llvm-project/archive/llvmorg-18.1.0-rc1.tar.gz)
-DISABLE(USE_LTO)
-
PEERDIR(
library/cpp/sanitizer/include
)
@@ -29,11 +27,17 @@ NO_RUNTIME()
NO_UTIL()
+NO_LTO()
+
NO_SANITIZE()
NO_SANITIZE_COVERAGE()
CFLAGS(
+ -D_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER
+ -D_LIBUNWIND_IS_NATIVE_ONLY
+ -D_LIBUNWIND_LINK_DL_LIB
+ -D_LIBUNWIND_LINK_PTHREAD_LIB
-fno-exceptions
-fno-rtti
-funwind-tables