Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 487508 Details for
Bug 600860
sys-libs/libomp-3.9.0 fails to compile with musl and gcc-6
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
libomp-3.9.0-gcc6.patch
libomp-3.9.0-gcc6.patch (text/plain), 3.77 KB, created by
Peter Levine
on 2017-08-01 06:39:47 UTC
(
hide
)
Description:
libomp-3.9.0-gcc6.patch
Filename:
MIME Type:
Creator:
Peter Levine
Created:
2017-08-01 06:39:47 UTC
Size:
3.77 KB
patch
obsolete
>Bug: https://bugs.gentoo.org/show_bug.cgi?id=600860 >Upstream commits: https://reviews.llvm.org/D26001 > https://reviews.llvm.org/D35072 > >--- a/runtime/src/kmp_alloc.c >+++ b/runtime/src/kmp_alloc.c >@@ -1719,13 +1719,8 @@ > __kmp_ft_page_allocate(size_t size) > { > void *adr, *aadr; >-#if KMP_OS_LINUX >- /* TODO: Use this function to get page size everywhere */ >- int page_size = getpagesize(); >-#else >- /* TODO: Find windows function to get page size and use it everywhere */ >- int page_size = PAGE_SIZE; >-#endif /* KMP_OS_LINUX */ >+ >+ const int page_size = KMP_GET_PAGE_SIZE(); > > adr = (void *) __kmp_thread_malloc( __kmp_get_thread(), > size + page_size + KMP_PTR_SKIP); >--- a/runtime/src/kmp_os.h >+++ b/runtime/src/kmp_os.h >@@ -235,10 +235,23 @@ > #define __forceinline __inline > #endif > >-#define PAGE_SIZE (0x4000) >+#if KMP_OS_WINDOWS >+#include <windows.h> >+ >+static inline int KMP_GET_PAGE_SIZE(void) { >+ SYSTEM_INFO si; >+ GetSystemInfo(&si); >+ return si.dwPageSize; >+} >+#else >+// TODO: find the corresponding function to getpagesize() in Windows >+// and use it whenever possible. >+#define KMP_GET_PAGE_SIZE() getpagesize() >+#endif >+ > #define PAGE_ALIGNED(_addr) ( ! ((size_t) _addr & \ >- (size_t)(PAGE_SIZE - 1))) >-#define ALIGN_TO_PAGE(x) (void *)(((size_t)(x)) & ~((size_t)(PAGE_SIZE - 1))) >+ (size_t)(KMP_GET_PAGE_SIZE() - 1))) >+#define ALIGN_TO_PAGE(x) (void *)(((size_t)(x)) & ~((size_t)(KMP_GET_PAGE_SIZE() - 1))) > > /* ---------------------- Support for cache alignment, padding, etc. -----------------*/ > >@@ -289,8 +302,6 @@ > > #if KMP_ASM_INTRINS && KMP_OS_WINDOWS > >-#include <Windows.h> >- > #pragma intrinsic(InterlockedExchangeAdd) > #pragma intrinsic(InterlockedCompareExchange) > #pragma intrinsic(InterlockedExchange) >--- a/runtime/src/kmp_runtime.c >+++ b/runtime/src/kmp_runtime.c >@@ -345,8 +345,10 @@ > int lastNode; > int localProc = __kmp_get_cpu_from_gtid(gtid); > >- p1 = (void *)( (size_t)p1 & ~((size_t)PAGE_SIZE - 1) ); >- p2 = (void *)( ((size_t) p2 - 1) & ~((size_t)PAGE_SIZE - 1) ); >+ const int page_size = KMP_GET_PAGE_SIZE(); >+ >+ p1 = (void *)( (size_t)p1 & ~((size_t)page_size - 1) ); >+ p2 = (void *)( ((size_t) p2 - 1) & ~((size_t)page_size - 1) ); > if(localProc >= 0) > __kmp_printf_no_lock(" GTID %d localNode %d\n", gtid, localProc>>1); > else >@@ -358,17 +360,17 @@ > lastNode = node; > /* This loop collates adjacent pages with the same host node. */ > do { >- (char*)p1 += PAGE_SIZE; >+ (char*)p1 += page_size; > } while(p1 <= p2 && (node = __kmp_get_host_node(p1)) == lastNode); > __kmp_printf_no_lock(" %p-%p memNode %d\n", last, > (char*)p1 - 1, lastNode); > } while(p1 <= p2); > # else > __kmp_printf_no_lock(" %p-%p memNode %d\n", p1, >- (char*)p1 + (PAGE_SIZE - 1), __kmp_get_host_node(p1)); >+ (char*)p1 + (page_size - 1), __kmp_get_host_node(p1)); > if(p1 < p2) { > __kmp_printf_no_lock(" %p-%p memNode %d\n", p2, >- (char*)p2 + (PAGE_SIZE - 1), __kmp_get_host_node(p2)); >+ (char*)p2 + (page_size - 1), __kmp_get_host_node(p2)); > } > # endif > }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 600860
:
454372
| 487508