fix 32-bit usage of size_t and support non-intel arches#207
Open
drew-parsons wants to merge 2 commits intoNGSolve:masterfrom
Open
fix 32-bit usage of size_t and support non-intel arches#207drew-parsons wants to merge 2 commits intoNGSolve:masterfrom
drew-parsons wants to merge 2 commits intoNGSolve:masterfrom
Conversation
On 32-bit systems size_t is identical unsigned in, causing redefinition errors in tables (Array_I_S). This patch guards against the 32-bit redefinition and defines Array_I_S = Array_I_U for the python interface if not already defined. Applies debian patch size_t_int32.patch https://salsa.debian.org/science-team/netgen/-/blob/d7ca1c564d90d00ce3d83e0b63c36fbec11cf1ce/debian/patches/size_t_int32.patch Fixes NGSolve#168
Extends support of non-intel architectures which do not have an RDTSC timer. Applies debian patch support-non-x86.patch https://salsa.debian.org/science-team/netgen/-/blob/d7ca1c564d90d00ce3d83e0b63c36fbec11cf1ce/debian/patches/support-non-x86.patch
Contributor
StefanBruens
left a comment
There was a problem hiding this comment.
Effectively, this just replaces the #else branch with using std::chrono
Comment on lines
+22
to
26
| #define NGCORE_HAVE_RDTSC | ||
| #elif defined __SSE__ | ||
| #define NGCORE_HAVE_RDTSC | ||
| #include <x86intrin.h> // for __rdtsc() CPU time step counter | ||
| #endif // WIN32 |
Contributor
There was a problem hiding this comment.
same define in both branches ...
| #if defined(__APPLE__) && defined(NETGEN_ARCH_ARM64) | ||
| return mach_absolute_time(); | ||
| #elif defined(NETGEN_ARCH_AMD64) | ||
| #elif defined(NETGEN_ARCH_AMD64) || defined(NGCORE_HAVE_RDTSC) |
Contributor
There was a problem hiding this comment.
change has no effect, NGCORE_HAVE_RDTSC is only ever defined if NETGEN_ARCH_AMD64 is defined.
| return tics; | ||
| #elif defined(__EMSCRIPTEN__) | ||
| return std::chrono::high_resolution_clock::now().time_since_epoch().count(); | ||
| #elifndef NGCORE_HAVE_RDTSC |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
On 32-bit systems size_t is identical unsigned in, causing redefinition errors in tables (Array_I_S).
This patch guards against the 32-bit redefinition and defines
Array_I_S = Array_I_U for the python interface if not already defined.
Applies debian patch size_t_int32.patch
https://salsa.debian.org/science-team/netgen/-/blob/d7ca1c564d90d00ce3d83e0b63c36fbec11cf1ce/debian/patches/size_t_int32.patch
Also applies debian patch support-non-x86.patch
https://salsa.debian.org/science-team/netgen/-/blob/d7ca1c564d90d00ce3d83e0b63c36fbec11cf1ce/debian/patches/support-non-x86.patch
to support non-intel archictectures missing RDTSC.
Fixes #168