FreeBSD Bugzilla – Attachment 236470 Details for
Bug 266227
[exp-run] Request for exp-run with qsort_r API change
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Proposed patch for graphics/mesa-dri
0001-graphics-mesa-dri-Improve-qsort_r-detection.patch (text/plain), 3.28 KB, created by
Xin LI
on 2022-09-10 08:34:43 UTC
(
hide
)
Description:
Proposed patch for graphics/mesa-dri
Filename:
MIME Type:
Creator:
Xin LI
Created:
2022-09-10 08:34:43 UTC
Size:
3.28 KB
patch
obsolete
>From 3c94479d57ed724d89617a5a4feb81b855a011af Mon Sep 17 00:00:00 2001 >From: Xin LI <delphij@FreeBSD.org> >Date: Sat, 10 Sep 2022 00:10:38 -0700 >Subject: [PATCH] graphics/mesa-dri: Improve qsort_r detection. > >--- > graphics/mesa-dri/files/patch-meson.build | 46 +++++++++++++++++++ > .../mesa-dri/files/patch-src_util_u__qsort.h | 26 +++++++++++ > 2 files changed, 72 insertions(+) > create mode 100644 graphics/mesa-dri/files/patch-meson.build > create mode 100644 graphics/mesa-dri/files/patch-src_util_u__qsort.h > >diff --git a/graphics/mesa-dri/files/patch-meson.build b/graphics/mesa-dri/files/patch-meson.build >new file mode 100644 >index 000000000000..21cdcf840400 >--- /dev/null >+++ b/graphics/mesa-dri/files/patch-meson.build >@@ -0,0 +1,46 @@ >+--- meson.build.orig 2022-03-18 19:26:47 UTC >++++ meson.build >+@@ -1414,11 +1414,42 @@ foreach f : ['strtof', 'mkostemp', 'timespec_get', 'me >+ endforeach >+ >+ foreach f : ['strtof', 'mkostemp', 'timespec_get', 'memfd_create', 'random_r', >+- 'flock', 'strtok_r', 'getrandom', 'qsort_r', 'qsort_s'] >++ 'flock', 'strtok_r', 'getrandom', 'qsort_s'] >+ if cc.has_function(f) >+ pre_args += '-DHAVE_@0@'.format(f.to_upper()) >+ endif >+ endforeach >++ >++if cpp.links(''' >++ #define _GNU_SOURCE >++ #include <stdlib.h> >++ >++ static int dcomp(const void *l, const void *r, void *t) { return 0; } >++ >++ int main(int ac, char **av) { >++ int arr[] = { 1 }; >++ void *t = NULL; >++ qsort_r((void*)&arr[0], 1, 1, dcomp, t); >++ return (0); >++ }''', >++ args : pre_args, >++ name : 'GNU qsort_r') >++ pre_args += '-DHAVE_GNU_QSORT_R' >++elif cpp.links(''' >++ #include <stdlib.h> >++ >++ static int dcomp(void *t, const void *l, const void *r) { return 0; } >++ >++ int main(int ac, char **av) { >++ int arr[] = { 1 }; >++ void *t = NULL; >++ qsort_r((void*)&arr[0], 1, 1, t, dcomp); >++ return (0); >++ }''', >++ args : pre_args, >++ name : 'BSD qsort_r') >++ pre_args += '-DHAVE_BSD_QSORT_R' >++endif >+ >+ if cc.has_header_symbol('errno.h', 'program_invocation_name', >+ args : '-D_GNU_SOURCE') >diff --git a/graphics/mesa-dri/files/patch-src_util_u__qsort.h b/graphics/mesa-dri/files/patch-src_util_u__qsort.h >new file mode 100644 >index 000000000000..f199fecd7b56 >--- /dev/null >+++ b/graphics/mesa-dri/files/patch-src_util_u__qsort.h >@@ -0,0 +1,26 @@ >+--- src/util/u_qsort.h.orig 2022-03-18 19:26:47 UTC >++++ src/util/u_qsort.h >+@@ -56,8 +56,10 @@ util_qsort_r(void *base, size_t nmemb, size_t size, >+ int (*compar)(const void *, const void *, void *), >+ void *arg) >+ { >+-#if HAVE_QSORT_R >+-# if DETECT_OS_APPLE || DETECT_OS_BSD >++#if HAVE_GNU_QSORT_R >++ /* GNU extension added in glibc 2.8 */ >++ qsort_r(base, nmemb, size, compar, arg); >++#elif HAVE_BSD_QSORT_R >+ /* BSD/macOS qsort_r takes "arg" before the comparison function and it >+ * pass the "arg" before the elements. >+ */ >+@@ -66,10 +68,6 @@ util_qsort_r(void *base, size_t nmemb, size_t size, >+ arg >+ }; >+ qsort_r(base, nmemb, size, &data, util_qsort_adapter); >+-# else >+- /* GNU extension added in glibc 2.8 */ >+- qsort_r(base, nmemb, size, compar, arg); >+-# endif >+ #elif HAVE_QSORT_S >+ # ifdef _WIN32 >+ /* MSVC/MinGW qsort_s takes "arg" after the comparison function and it >-- >2.37.3 >
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 266227
:
236360
|
236386
|
236388
|
236389
|
236429
|
236470
|
236483
|
236507
|
236621
|
236638
|
236643
|
236644
|
236652
|
236678
|
236744
|
236760