-
-
Notifications
You must be signed in to change notification settings - Fork 250
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix compilation on some CPUs and Windows #1901
Conversation
HADOUKEN has gone. |
#[cfg(not(all( | ||
any(target_os = "linux", target_os = "macos"), | ||
any(target_arch = "x86_64", target_arch = "aarch64") | ||
)))] | ||
mod cee_scape { | ||
#[cfg(not(feature = "cshim"))] | ||
compile_error!("target platform cannot work without feature cshim"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hm. Is there a reason we're not just using the use_c_to_interface_with_setjmp
feature of cee_scape
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- To support more CPUs and Windows, we need a patch of
cee_scape
. - In
postgres/src/include/c.h
, sigsetjmp is defined as:
/*
* When there is no sigsetjmp, its functionality is provided by plain
* setjmp. We now support the case only on Windows. However, it seems
* that MinGW-64 has some longstanding issues in its setjmp support,
* so on that toolchain we cheat and use gcc's builtins.
*/
#ifdef WIN32
#ifdef __MINGW64__
typedef intptr_t sigjmp_buf[5];
#define sigsetjmp(x,y) __builtin_setjmp(x)
#define siglongjmp __builtin_longjmp
#else /* !__MINGW64__ */
#define sigjmp_buf jmp_buf
#define sigsetjmp(x,y) setjmp(x)
#define siglongjmp longjmp
#endif /* __MINGW64__ */
#endif /* WIN32 */
I feel it's better to include the header and use sigsetjmp
in pgrx-cshim.c
than adding a __builtin_setjmp
version of call_closure_with_setjmp
in cee-scape
and gating the variants by cfg...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah, interesting.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you!
Welcome to pgrx v0.12.6. This releases fixes a number of bugs, cleans up various parts of the code, adds more Postgres `#include` headers, and other little things. To upgrade, first install cargo-pgrx with `cargo install cargo-pgrx --version 0.12.6 --locked`. Then you can run `cargo pgrx upgrade` in your extension's crate to update its dependencies. ## What's Changed * Removed extra allocation from `IntoDatum for char` by @YohDeadfall in #1887 * Fixed IntoDatum impl for char introduced by #1887 by @YohDeadfall in #1889 * Support refs to unsized SqlTranslatable types by @workingjubilee in #1890 * Nullable is Copy when T is Copy by @workingjubilee in #1884 * Macro based IntoDatum for string types by @YohDeadfall in #1886 * `impl FromDatum for CString` by @workingjubilee in #1896 * Add `BorrowDatum` for unsizing borrows of datums by @workingjubilee in #1891 * Always panic if len of varlena exceeds the maximum by @YohDeadfall in #1894 * Use cstr literal syntax to avoid unsafe and ??? by @workingjubilee in #1898 * Implement UnboxDatum for ItemPointerData by @syvb in #1900 * fix compilation on some CPUs and Windows by @usamoi in #1901 * docs: update generic type name of TableIterator by @SteveLauC in #1905 * Remove Python workaround for Homebrew by @workingjubilee in #1908 * Improved messages for json errors by @YohDeadfall in #1893 * Adds more headers by @aykut-bozkurt in #1910 * docs: align description of GucContext::SuBackend and GucContext::Backend with original PostgreSQL description by @mrl5 in #1909 * docs: update outdated README by @SteveLauC in #1914 * fix compilation on emscripten by @usamoi in #1917 * feat: include 'storage/indexfsm.h' by @SteveLauC in #1912 * refactor: more CStr literals by @SteveLauC in #1911 * fix segfault with empty `numrange` during `from_datum()` by @eeeebbbbrrrr in #1918 ## New Contributors * @mrl5 made their first contribution in #1909 **Full Changelog**: v0.12.5...v0.12.6
This patch contains two part:
cee-scape
's asm (needed by Build failed on ppc64el #1897 and Windows)