From c6244798139e1fb597b395baeb834ca3212bbe25 Mon Sep 17 00:00:00 2001 From: Antony Polukhin Date: Thu, 12 Sep 2024 22:34:47 +0300 Subject: [PATCH 1/5] Another fix attempt for #177 --- include/boost/stacktrace/stacktrace.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/boost/stacktrace/stacktrace.hpp b/include/boost/stacktrace/stacktrace.hpp index 5592eba..f9d6ada 100644 --- a/include/boost/stacktrace/stacktrace.hpp +++ b/include/boost/stacktrace/stacktrace.hpp @@ -37,9 +37,9 @@ extern "C" { -//#if defined(BOOST_STACKTRACE_LINK) && defined(BOOST_STACKTRACE_DYN_LINK) +#if defined(BOOST_STACKTRACE_LINK) && defined(BOOST_STACKTRACE_DYN_LINK) && !defined(BOOST_STACKTRACE_INTERNAL_BUILD_LIBS) BOOST_SYMBOL_EXPORT -//#endif +#endif inline void* boost_stacktrace_impl_return_nullptr() { return nullptr; } const char* boost_stacktrace_impl_current_exception_stacktrace(); bool* boost_stacktrace_impl_ref_capture_stacktraces_at_throw(); From b105972fbcf8bf600b527b730c69e4269cdc6a12 Mon Sep 17 00:00:00 2001 From: Antony Polukhin Date: Fri, 13 Sep 2024 00:29:53 +0300 Subject: [PATCH 2/5] Update stacktrace.hpp --- include/boost/stacktrace/stacktrace.hpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/boost/stacktrace/stacktrace.hpp b/include/boost/stacktrace/stacktrace.hpp index f9d6ada..36b8b08 100644 --- a/include/boost/stacktrace/stacktrace.hpp +++ b/include/boost/stacktrace/stacktrace.hpp @@ -37,10 +37,11 @@ extern "C" { -#if defined(BOOST_STACKTRACE_LINK) && defined(BOOST_STACKTRACE_DYN_LINK) && !defined(BOOST_STACKTRACE_INTERNAL_BUILD_LIBS) +#if defined(BOOST_STACKTRACE_LINK) && defined(BOOST_STACKTRACE_DYN_LINK) && defined(BOOST_STACKTRACE_INTERNAL_BUILD_LIBS) BOOST_SYMBOL_EXPORT #endif inline void* boost_stacktrace_impl_return_nullptr() { return nullptr; } + const char* boost_stacktrace_impl_current_exception_stacktrace(); bool* boost_stacktrace_impl_ref_capture_stacktraces_at_throw(); From 005bcbad7dc100d4d48660ff7b773ab58ada816e Mon Sep 17 00:00:00 2001 From: Antony Polukhin Date: Fri, 13 Sep 2024 07:20:27 +0300 Subject: [PATCH 3/5] Update stacktrace.hpp --- include/boost/stacktrace/stacktrace.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/boost/stacktrace/stacktrace.hpp b/include/boost/stacktrace/stacktrace.hpp index 36b8b08..aad99ca 100644 --- a/include/boost/stacktrace/stacktrace.hpp +++ b/include/boost/stacktrace/stacktrace.hpp @@ -37,7 +37,7 @@ extern "C" { -#if defined(BOOST_STACKTRACE_LINK) && defined(BOOST_STACKTRACE_DYN_LINK) && defined(BOOST_STACKTRACE_INTERNAL_BUILD_LIBS) +#if defined(BOOST_STACKTRACE_DYN_LINK) && defined(BOOST_STACKTRACE_INTERNAL_BUILD_LIBS) BOOST_SYMBOL_EXPORT #endif inline void* boost_stacktrace_impl_return_nullptr() { return nullptr; } From 3c756ad478d4da5e02e4c67e35367925c2afce9a Mon Sep 17 00:00:00 2001 From: Antony Polukhin Date: Fri, 13 Sep 2024 11:25:41 +0300 Subject: [PATCH 4/5] Update stacktrace.hpp --- include/boost/stacktrace/stacktrace.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/boost/stacktrace/stacktrace.hpp b/include/boost/stacktrace/stacktrace.hpp index aad99ca..3a584e0 100644 --- a/include/boost/stacktrace/stacktrace.hpp +++ b/include/boost/stacktrace/stacktrace.hpp @@ -37,7 +37,7 @@ extern "C" { -#if defined(BOOST_STACKTRACE_DYN_LINK) && defined(BOOST_STACKTRACE_INTERNAL_BUILD_LIBS) +#if defined(BOOST_STACKTRACE_DYN_LINK) && !defined(BOOST_STACKTRACE_INTERNAL_BUILD_LIBS) BOOST_SYMBOL_EXPORT #endif inline void* boost_stacktrace_impl_return_nullptr() { return nullptr; } From 762b4916fcc6e65ddf918a65d160c284661108d0 Mon Sep 17 00:00:00 2001 From: Antony Polukhin Date: Fri, 13 Sep 2024 19:13:33 +0300 Subject: [PATCH 5/5] fix attempt --- build/Jamfile.v2 | 1 + include/boost/stacktrace/stacktrace.hpp | 14 +++++++++----- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/build/Jamfile.v2 b/build/Jamfile.v2 index 9f93887..261947a 100644 --- a/build/Jamfile.v2 +++ b/build/Jamfile.v2 @@ -180,4 +180,5 @@ lib boost_stacktrace_from_exception : # usage-requirements #shared:BOOST_STACKTRACE_DYN_LINK=1 BOOST_STACKTRACE_NO_LIB=1 + BOOST_STACKTRACE_LINKED_WITH_FROM_EXCEPTION=1 ; diff --git a/include/boost/stacktrace/stacktrace.hpp b/include/boost/stacktrace/stacktrace.hpp index 3a584e0..f9ad1dd 100644 --- a/include/boost/stacktrace/stacktrace.hpp +++ b/include/boost/stacktrace/stacktrace.hpp @@ -37,16 +37,18 @@ extern "C" { -#if defined(BOOST_STACKTRACE_DYN_LINK) && !defined(BOOST_STACKTRACE_INTERNAL_BUILD_LIBS) -BOOST_SYMBOL_EXPORT -#endif -inline void* boost_stacktrace_impl_return_nullptr() { return nullptr; } - const char* boost_stacktrace_impl_current_exception_stacktrace(); bool* boost_stacktrace_impl_ref_capture_stacktraces_at_throw(); } +#ifndef BOOST_STACKTRACE_LINKED_WITH_FROM_EXCEPTION + +extern "C" { +BOOST_SYMBOL_EXPORT +inline void* boost_stacktrace_impl_return_nullptr() { return nullptr; } +} + #ifdef _M_IX86 # pragma comment(linker, "/ALTERNATENAME:_boost_stacktrace_impl_current_exception_stacktrace=_boost_stacktrace_impl_return_nullptr") # pragma comment(linker, "/ALTERNATENAME:_boost_stacktrace_impl_ref_capture_stacktraces_at_throw=_boost_stacktrace_impl_return_nullptr") @@ -55,6 +57,8 @@ bool* boost_stacktrace_impl_ref_capture_stacktraces_at_throw(); # pragma comment(linker, "/ALTERNATENAME:boost_stacktrace_impl_ref_capture_stacktraces_at_throw=boost_stacktrace_impl_return_nullptr") #endif +#endif // #ifndef BOOST_STACKTRACE_LINKED_WITH_FROM_EXCEPTION + #endif namespace boost { namespace stacktrace {