Sat Feb 22 07:52:01 2020 UTC ()
MesaLib: port x86_64 tls dispatch changes to i386 also


(tnn)
diff -r1.185 -r1.186 pkgsrc/graphics/MesaLib/Makefile
diff -r1.149 -r1.150 pkgsrc/graphics/MesaLib/distinfo
diff -r1.3 -r1.4 pkgsrc/graphics/MesaLib/patches/patch-src_mapi_entry__x86__tls.h

cvs diff -r1.185 -r1.186 pkgsrc/graphics/MesaLib/Makefile (expand / switch to unified diff)

--- pkgsrc/graphics/MesaLib/Makefile 2020/02/21 21:52:24 1.185
+++ pkgsrc/graphics/MesaLib/Makefile 2020/02/22 07:52:01 1.186
@@ -1,18 +1,18 @@ @@ -1,18 +1,18 @@
1# $NetBSD: Makefile,v 1.185 2020/02/21 21:52:24 tnn Exp $ 1# $NetBSD: Makefile,v 1.186 2020/02/22 07:52:01 tnn Exp $
2 2
3DISTNAME= mesa-19.2.7 3DISTNAME= mesa-19.2.7
4PKGNAME= ${DISTNAME:S/mesa/MesaLib/} 4PKGNAME= ${DISTNAME:S/mesa/MesaLib/}
5PKGREVISION= 5 5PKGREVISION= 6
6CATEGORIES= graphics 6CATEGORIES= graphics
7MASTER_SITES= https://mesa.freedesktop.org/archive/ 7MASTER_SITES= https://mesa.freedesktop.org/archive/
8EXTRACT_SUFX= .tar.xz 8EXTRACT_SUFX= .tar.xz
9 9
10MAINTAINER= nia@NetBSD.org 10MAINTAINER= nia@NetBSD.org
11HOMEPAGE= https://www.mesa3d.org/ 11HOMEPAGE= https://www.mesa3d.org/
12COMMENT= Open source OpenGL implementation 12COMMENT= Open source OpenGL implementation
13LICENSE= mit 13LICENSE= mit
14 14
15USE_TOOLS+= bison flex pkg-config xgettext 15USE_TOOLS+= bison flex pkg-config xgettext
16USE_LANGUAGES= c99 c++14 16USE_LANGUAGES= c99 c++14
17USE_LIBTOOL= yes 17USE_LIBTOOL= yes
18 18

cvs diff -r1.149 -r1.150 pkgsrc/graphics/MesaLib/distinfo (expand / switch to unified diff)

--- pkgsrc/graphics/MesaLib/distinfo 2020/02/21 21:52:24 1.149
+++ pkgsrc/graphics/MesaLib/distinfo 2020/02/22 07:52:01 1.150
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1$NetBSD: distinfo,v 1.149 2020/02/21 21:52:24 tnn Exp $ 1$NetBSD: distinfo,v 1.150 2020/02/22 07:52:01 tnn Exp $
2 2
3SHA1 (mesa-19.2.7.tar.xz) = 9b8ebf66770353a48bd710e12e2727fb33645f44 3SHA1 (mesa-19.2.7.tar.xz) = 9b8ebf66770353a48bd710e12e2727fb33645f44
4RMD160 (mesa-19.2.7.tar.xz) = 5323b623ac22c168b86548cf6d842ce004e346a9 4RMD160 (mesa-19.2.7.tar.xz) = 5323b623ac22c168b86548cf6d842ce004e346a9
5SHA512 (mesa-19.2.7.tar.xz) = 87a82664381432e956ee23dc92bec5accf667606232e38d9458d67132c16fdc44584f65671293b83f00c58ad7742b80e942a5d1bd66d457705be60aaaf35395b 5SHA512 (mesa-19.2.7.tar.xz) = 87a82664381432e956ee23dc92bec5accf667606232e38d9458d67132c16fdc44584f65671293b83f00c58ad7742b80e942a5d1bd66d457705be60aaaf35395b
6Size (mesa-19.2.7.tar.xz) = 11460812 bytes 6Size (mesa-19.2.7.tar.xz) = 11460812 bytes
7SHA1 (patch-include_c11_threads__posix.h) = e1dca04b5c514d20123ef99338c6dabedbc14c5f 7SHA1 (patch-include_c11_threads__posix.h) = e1dca04b5c514d20123ef99338c6dabedbc14c5f
8SHA1 (patch-src_amd_common_ac__debug.c) = 8233367c3b5bc344442ea8d19488fdd1e3791ae9 8SHA1 (patch-src_amd_common_ac__debug.c) = 8233367c3b5bc344442ea8d19488fdd1e3791ae9
9SHA1 (patch-src_compiler_builtin__type__macros.h) = e4868011711fb89a293580a12eb603b8e7162336 9SHA1 (patch-src_compiler_builtin__type__macros.h) = e4868011711fb89a293580a12eb603b8e7162336
10SHA1 (patch-src_compiler_glsl_glsl__parser__extras.cpp) = ef114d6e288e6d212fce9d1c0606f7d454a171c4 10SHA1 (patch-src_compiler_glsl_glsl__parser__extras.cpp) = ef114d6e288e6d212fce9d1c0606f7d454a171c4
11SHA1 (patch-src_egl_drivers_dri2_platform__drm.c) = 9230fbae2c04246ebca8437ecad694bbae857fbe 11SHA1 (patch-src_egl_drivers_dri2_platform__drm.c) = 9230fbae2c04246ebca8437ecad694bbae857fbe
12SHA1 (patch-src_egl_drivers_dri2_platform__x11.c) = 49e48c31eacb79d1da357fe70eaffd2926b5280e 12SHA1 (patch-src_egl_drivers_dri2_platform__x11.c) = 49e48c31eacb79d1da357fe70eaffd2926b5280e
13SHA1 (patch-src_egl_main_eglglobals.c) = 0d52014f52e62fc5fa6650336ddb0011ecf331e6 13SHA1 (patch-src_egl_main_eglglobals.c) = 0d52014f52e62fc5fa6650336ddb0011ecf331e6
14SHA1 (patch-src_gallium_auxiliary_pipe-loader_pipe__loader__drm.c) = f913b779404e6bd8ae707a4fd66eb7c1dca9b311 14SHA1 (patch-src_gallium_auxiliary_pipe-loader_pipe__loader__drm.c) = f913b779404e6bd8ae707a4fd66eb7c1dca9b311
@@ -21,26 +21,26 @@ SHA1 (patch-src_gallium_include_pipe_p__ @@ -21,26 +21,26 @@ SHA1 (patch-src_gallium_include_pipe_p__
21SHA1 (patch-src_gallium_state__trackers_clover_llvm_invocation.cpp) = 3053db09fbfffffd82e232b60b244a0a80c8f181 21SHA1 (patch-src_gallium_state__trackers_clover_llvm_invocation.cpp) = 3053db09fbfffffd82e232b60b244a0a80c8f181
22SHA1 (patch-src_gallium_state__trackers_clover_llvm_metadata.hpp) = c97d38098ea03658bc193a50e445b87f1c020839 22SHA1 (patch-src_gallium_state__trackers_clover_llvm_metadata.hpp) = c97d38098ea03658bc193a50e445b87f1c020839
23SHA1 (patch-src_gallium_state__trackers_clover_util_range.hpp) = cdc78067986c1b92818472c4201c58ef1b42c4f4 23SHA1 (patch-src_gallium_state__trackers_clover_util_range.hpp) = cdc78067986c1b92818472c4201c58ef1b42c4f4
24SHA1 (patch-src_glx_dri__common.h) = 0274877f8c65a4bb729536a897df4704897a4c6e 24SHA1 (patch-src_glx_dri__common.h) = 0274877f8c65a4bb729536a897df4704897a4c6e
25SHA1 (patch-src_glx_dri__glx.c) = 8fd48776e9953b18bd17ba130d90ae2935e67242 25SHA1 (patch-src_glx_dri__glx.c) = 8fd48776e9953b18bd17ba130d90ae2935e67242
26SHA1 (patch-src_glx_glxclient.h) = f0358179ae397bc8677597b0ccb9a471f40f15de 26SHA1 (patch-src_glx_glxclient.h) = f0358179ae397bc8677597b0ccb9a471f40f15de
27SHA1 (patch-src_glx_glxcurrent.c) = a872950c2cb08f60c1d018d0490c610a764ab468 27SHA1 (patch-src_glx_glxcurrent.c) = a872950c2cb08f60c1d018d0490c610a764ab468
28SHA1 (patch-src_glx_glxext.c) = 15c2c5e0c6b5095ce849fb86ad148aa05d7d907a 28SHA1 (patch-src_glx_glxext.c) = 15c2c5e0c6b5095ce849fb86ad148aa05d7d907a
29SHA1 (patch-src_intel_compiler_brw__fs__bank__conflicts.cpp) = 6276d2c6846bb4dd08699921bec4e20202a17478 29SHA1 (patch-src_intel_compiler_brw__fs__bank__conflicts.cpp) = 6276d2c6846bb4dd08699921bec4e20202a17478
30SHA1 (patch-src_intel_perf_gen__perf.c) = 526f36d96bd9d72893764da2b9e78cb9b70de92b 30SHA1 (patch-src_intel_perf_gen__perf.c) = 526f36d96bd9d72893764da2b9e78cb9b70de92b
31SHA1 (patch-src_intel_tools_aubinator__error__decode.c) = d8f636e3c3e76763a505a1dce23de0b198ad62fa 31SHA1 (patch-src_intel_tools_aubinator__error__decode.c) = d8f636e3c3e76763a505a1dce23de0b198ad62fa
32SHA1 (patch-src_loader_loader.c) = 303e941f9b8afa6ee8053107af01e2c26e6ff118 32SHA1 (patch-src_loader_loader.c) = 303e941f9b8afa6ee8053107af01e2c26e6ff118
33SHA1 (patch-src_mapi_entry__x86-64__tls.h) = cbbb95b96414609a9cd05af75c9544f8e6938280 33SHA1 (patch-src_mapi_entry__x86-64__tls.h) = cbbb95b96414609a9cd05af75c9544f8e6938280
34SHA1 (patch-src_mapi_entry__x86__tls.h) = 11c0f5302d305a77f3a1780d44a2c61f48a66273 34SHA1 (patch-src_mapi_entry__x86__tls.h) = c8ad1cb3854efeba8d709a66bdddb818854820ea
35SHA1 (patch-src_mapi_u__current.c) = 4e3ec6e253af3737f77ecd43e56044ba2b81e699 35SHA1 (patch-src_mapi_u__current.c) = 4e3ec6e253af3737f77ecd43e56044ba2b81e699
36SHA1 (patch-src_mapi_u__current.h) = 9f4744681381a0959fda2926a436f296c89577f3 36SHA1 (patch-src_mapi_u__current.h) = 9f4744681381a0959fda2926a436f296c89577f3
37SHA1 (patch-src_mesa_main_extensions.c) = 2f48bdb1176c2878bb33bcfab7556172b50a987e 37SHA1 (patch-src_mesa_main_extensions.c) = 2f48bdb1176c2878bb33bcfab7556172b50a987e
38SHA1 (patch-src_mesa_main_macros.h) = c5dceaa8dc02a58e5b2273d82e3fe1cc12e327d3 38SHA1 (patch-src_mesa_main_macros.h) = c5dceaa8dc02a58e5b2273d82e3fe1cc12e327d3
39SHA1 (patch-src_mesa_main_marshal.h) = 4e4c08796a61aaa9f2463a9797e382e2e29860e9 39SHA1 (patch-src_mesa_main_marshal.h) = 4e4c08796a61aaa9f2463a9797e382e2e29860e9
40SHA1 (patch-src_mesa_main_shader__query.cpp) = 3f9c31645d87855759def11344dee16af23c7be3 40SHA1 (patch-src_mesa_main_shader__query.cpp) = 3f9c31645d87855759def11344dee16af23c7be3
41SHA1 (patch-src_mesa_x86_common__x86.c) = f8c4b93443ef66d017f6aa114b877565b30f2598 41SHA1 (patch-src_mesa_x86_common__x86.c) = f8c4b93443ef66d017f6aa114b877565b30f2598
42SHA1 (patch-src_util_build__id.c) = 7a9547bbda9d2fb9f0018ccf27b70b59e497aa2c 42SHA1 (patch-src_util_build__id.c) = 7a9547bbda9d2fb9f0018ccf27b70b59e497aa2c
43SHA1 (patch-src_util_strndup.h) = 73f49694ca48ad6b9a9d8346c5b84fddec2463bd 43SHA1 (patch-src_util_strndup.h) = 73f49694ca48ad6b9a9d8346c5b84fddec2463bd
44SHA1 (patch-src_util_u__atomic.h) = 31d4514538ef5ee53012695eb5c66134aaec981e 44SHA1 (patch-src_util_u__atomic.h) = 31d4514538ef5ee53012695eb5c66134aaec981e
45SHA1 (patch-src_util_u__queue.c) = ed1ea3f6fc37e9a64894a3e865c48691b6e01b2c 45SHA1 (patch-src_util_u__queue.c) = ed1ea3f6fc37e9a64894a3e865c48691b6e01b2c
46SHA1 (patch-src_util_u__thread.h) = 60c14883925ac60e26efbeee5bef257d081bcc51 46SHA1 (patch-src_util_u__thread.h) = 60c14883925ac60e26efbeee5bef257d081bcc51

cvs diff -r1.3 -r1.4 pkgsrc/graphics/MesaLib/patches/patch-src_mapi_entry__x86__tls.h (expand / switch to unified diff)

--- pkgsrc/graphics/MesaLib/patches/patch-src_mapi_entry__x86__tls.h 2019/08/21 13:35:28 1.3
+++ pkgsrc/graphics/MesaLib/patches/patch-src_mapi_entry__x86__tls.h 2020/02/22 07:52:01 1.4
@@ -1,40 +1,47 @@ @@ -1,40 +1,47 @@
1$NetBSD: patch-src_mapi_entry__x86__tls.h,v 1.3 2019/08/21 13:35:28 nia Exp $ 1$NetBSD: patch-src_mapi_entry__x86__tls.h,v 1.4 2020/02/22 07:52:01 tnn Exp $
2 2
3NetBSD only supports zero-initialized initial-exec tls variables in conjuction 3NetBSD only supports zero-initialized initial-exec tls variables in conjuction
4with dlopen(3) at the moment. 4with dlopen(3) at the moment.
5 5
6Fix --enable-glx-tls with clang. From FreeBSD. 6--- src/mapi/entry_x86_tls.h.orig 2019-12-04 22:10:14.000000000 +0000
7 
8table_noop_array is only defined for shared-glapi. 
9es1api and es2api are not going to be patched for NetBSD. 
10 
11--- src/mapi/entry_x86_tls.h.orig 2018-01-18 21:30:29.000000000 +0000 
12+++ src/mapi/entry_x86_tls.h 7+++ src/mapi/entry_x86_tls.h
13@@ -56,10 +56,27 @@ __asm__(".balign 16\n" 8@@ -43,6 +43,21 @@ __asm__("x86_current_tls:\n\t"
 9 "movl " ENTRY_CURRENT_TABLE "@GOTNTPOFF(%eax), %eax\n\t"
 10 "ret");
 11
 12+#if defined(__NetBSD__)
 13+__asm__("x86_current_table_helper:\n\t"
 14+ "movl %gs:(%eax), %eax\n\t" \
 15+ "testl %eax, %eax\n\t" \
 16+ "je 1f\n\t" \
 17+ "ret\n\t" \
 18+ "1:\n\t" \
 19+ "call 2f\n\t" \
 20+ "2:\n\t" \
 21+ "popl %eax\n\t" \
 22+ "addl $_GLOBAL_OFFSET_TABLE_+[.-2b], %eax\n\t" \
 23+ "call *" ENTRY_CURRENT_TABLE_GET "@GOT(%eax)\n\t" \
 24+ "ret");
 25+#endif
 26+
 27 #ifndef GLX_X86_READONLY_TEXT
 28 __asm__(".section wtext, \"awx\", @progbits");
 29 #endif /* GLX_X86_READONLY_TEXT */
 30@@ -56,10 +71,17 @@ __asm__(".balign 16\n"
14 ".balign 16\n" \ 31 ".balign 16\n" \
15 func ":" 32 func ":"
16  33
17+#if defined(__NetBSD__) && defined(MAPI_MODE_GLAPI) 34+#if defined(__NetBSD__)
18+extern const mapi_func table_noop_array[]; 35+#define STUB_ASM_CODE(slot) \
 36+ "call x86_current_tls\n\t" \
 37+ "call x86_current_table_helper\n\t" \
 38+ "jmp *(4 * " slot ")(%eax)"
 39+#else
19 #define STUB_ASM_CODE(slot) \ 40 #define STUB_ASM_CODE(slot) \
20 "call x86_current_tls\n\t" \ 41 "call x86_current_tls\n\t" \
21 "movl %gs:(%eax), %eax\n\t" \ 42 "movl %gs:(%eax), %eax\n\t" \
22+ "testl %eax, %eax\n\t" \ 
23+ "je 1f\n\t" \ 
24+ "jmp *(4 * " slot ")(%eax)\n\t" \ 
25+ "1:\n\t" \ 
26+ "call 2f\n" \ 
27+ "2:\n\t" \ 
28+ "popl %eax\n\t" \ 
29+ "addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %eax\n\t" \ 
30+ "movl table_noop_array@GOT(%eax), %eax\n\t" \ 
31 "jmp *(4 * " slot ")(%eax)" 43 "jmp *(4 * " slot ")(%eax)"
32+#else 
33+#define STUB_ASM_CODE(slot) \ 
34+ "call x86_current_tls\n\t" \ 
35+ "movl %gs:(%eax), %eax\n\t" \ 
36+ "jmp *(4 * " slot ")(%eax)" 
37+#endif 44+#endif
38  45
39 #define MAPI_TMP_STUB_ASM_GCC 46 #define MAPI_TMP_STUB_ASM_GCC
40 #include "mapi_tmp.h" 47 #include "mapi_tmp.h"