summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author宋文武 <iyzsong@member.fsf.org>2023-08-26 11:04:04 +0800
committer宋文武 <iyzsong@member.fsf.org>2023-08-28 18:12:06 +0800
commit4a49a89b09d07d96f4d6ef3c0ca93801370f7b20 (patch)
treeeb064d2bbe730140908f2fa8fa1a6d4bf166423d
parent7533ed956c100a04d08a2537a4700eb9ecbcb987 (diff)
gnu: intel-xed: Update to 2023.08.21.
* gnu/packages/assembly.scm (intel-xed): Update to 2023.08.21. [source]: Remove patches. [native-inputs]: Remove tcsh. Update mbuild to 2022.07.28. * gnu/packages/patches/intel-xed-fix-nondeterminism.patch: Remove file * gnu/local.mk (dist_patch_DATA): Remove it.
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/assembly.scm18
-rw-r--r--gnu/packages/patches/intel-xed-fix-nondeterminism.patch113
3 files changed, 7 insertions, 125 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 8f409b7ea82..48187d7e64c 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1407,7 +1407,6 @@ dist_patch_DATA = \
1407 %D%/packages/patches/imagemagick-WriteTHUMBNAILImage-fix.patch \ 1407 %D%/packages/patches/imagemagick-WriteTHUMBNAILImage-fix.patch \
1408 %D%/packages/patches/inkscape-poppler-compat.patch \ 1408 %D%/packages/patches/inkscape-poppler-compat.patch \
1409 %D%/packages/patches/instead-use-games-path.patch \ 1409 %D%/packages/patches/instead-use-games-path.patch \
1410 %D%/packages/patches/intel-xed-fix-nondeterminism.patch \
1411 %D%/packages/patches/intltool-perl-compatibility.patch \ 1410 %D%/packages/patches/intltool-perl-compatibility.patch \
1412 %D%/packages/patches/iputils-libcap-compat.patch \ 1411 %D%/packages/patches/iputils-libcap-compat.patch \
1413 %D%/packages/patches/irrlicht-use-system-libs.patch \ 1412 %D%/packages/patches/irrlicht-use-system-libs.patch \
diff --git a/gnu/packages/assembly.scm b/gnu/packages/assembly.scm
index 4494c475ce9..81e38c3f41f 100644
--- a/gnu/packages/assembly.scm
+++ b/gnu/packages/assembly.scm
@@ -470,20 +470,18 @@ sets, both THUMB and ARM mode.")
470(define-public intel-xed 470(define-public intel-xed
471 (package 471 (package
472 (name "intel-xed") 472 (name "intel-xed")
473 (version "12.0.1") 473 (version "2023.08.21")
474 (source 474 (source
475 (origin 475 (origin
476 (method git-fetch) 476 (method git-fetch)
477 (uri (git-reference 477 (uri (git-reference
478 (url "https://github.com/intelxed/xed") 478 (url "https://github.com/intelxed/xed")
479 (commit version))) 479 (commit (string-append "v" version))))
480 (sha256 (base32 "07zfff8zf29c2n0wal87hiqfq3cwcjn80zz78mz0nyjfj09nd39f")) 480 (sha256 (base32 "1zv99m5h3n3w6jcpplznq030s5mlwg5llz3vgfwpfl5l8laz1032"))
481 (file-name (git-file-name name version)) 481 (file-name (git-file-name name version))))
482 (patches (search-patches "intel-xed-fix-nondeterminism.patch"))))
483 (build-system gnu-build-system) 482 (build-system gnu-build-system)
484 (native-inputs 483 (native-inputs
485 `(("python" ,python-wrapper) 484 `(("python" ,python-wrapper)
486 ("tcsh" ,tcsh)
487 ;; As of the time of writing this comment, mbuild does not exist in the 485 ;; As of the time of writing this comment, mbuild does not exist in the
488 ;; Python Package Index and seems to only be used by intel-xed, so we 486 ;; Python Package Index and seems to only be used by intel-xed, so we
489 ;; opt to include it here instead of packaging separately. Note also 487 ;; opt to include it here instead of packaging separately. Note also
@@ -491,15 +489,15 @@ sets, both THUMB and ARM mode.")
491 ;; reference the "version" variable from setup.py instead. 489 ;; reference the "version" variable from setup.py instead.
492 ("mbuild" 490 ("mbuild"
493 ,(let ((name "mbuild") 491 ,(let ((name "mbuild")
494 (version "0.2496")) 492 (version "2022.07.28"))
495 (origin 493 (origin
496 (method git-fetch) 494 (method git-fetch)
497 (uri (git-reference 495 (uri (git-reference
498 (url "https://github.com/intelxed/mbuild") 496 (url "https://github.com/intelxed/mbuild")
499 (commit "3de3f0d753c11dbe634bec611d4cc13f74768e4f"))) 497 (commit (string-append "v" version))))
500 (sha256 498 (sha256
501 (base32 499 (base32
502 "0z8hdhpmk8y5c9429p2yns9daswnffbprni9czkq3vij8f58lkg4")) 500 "0rc9xp202yqw42bwgylwxvfvjr1crdl50qvv8vzfczyvlf4wflcx"))
503 (file-name (git-file-name name version))))))) 501 (file-name (git-file-name name version)))))))
504 (outputs '("out" "lib")) 502 (outputs '("out" "lib"))
505 (arguments 503 (arguments
@@ -585,5 +583,3 @@ intrinsics as defined in the @file{arm_neon.h} header and x86 SSE (up to
585SSE4.2) intrinsic functions as defined in corresponding x86 compilers headers 583SSE4.2) intrinsic functions as defined in corresponding x86 compilers headers
586files.") 584files.")
587 (license license:bsd-2)))) 585 (license license:bsd-2))))
588
589
diff --git a/gnu/packages/patches/intel-xed-fix-nondeterminism.patch b/gnu/packages/patches/intel-xed-fix-nondeterminism.patch
deleted file mode 100644
index c81bd0edde9..00000000000
--- a/gnu/packages/patches/intel-xed-fix-nondeterminism.patch
+++ /dev/null
@@ -1,113 +0,0 @@
1This patch removes sources of build non-determinism in the upstream sources.
2
3In particular, many of the compiled sources are generated with Python code,
4which in turn uses dictionaries to index the output C functions. However,
5iterators over Python dictionaries have no guaranteed order, thus resulting in
6the C functions being output in a random order between builds.
7
8The patch below fixes this by forcing an order during output in several key
9places. Note, however, that future updates may uncover new such places that
10just happen to be non-problematic at the time of this patch. If you are
11reading this due to finding such issues, feel free to contact me at
12elaexuotee@wilsonb.com for help.
13
14diff --git a/pysrc/ild_codegen.py b/pysrc/ild_codegen.py
15index 628ec45..a9bff79 100755
16--- a/pysrc/ild_codegen.py
17+++ b/pysrc/ild_codegen.py
18@@ -188,14 +188,14 @@ def gen_l2_func_list(agi, target_nt_dict, arg_nt_dict,
19 ild_t_member):
20 """generate L2 functions"""
21 l2_func_list = []
22- for (nt_name,array) in target_nt_dict.items():
23+ for (nt_name,array) in sorted(target_nt_dict.items()):
24 target_opname = array.get_target_opname()
25 if array.is_const_lookup_fun():
26 fo = gen_const_l2_function(agi, nt_name,
27 target_opname, ild_t_member)
28 l2_func_list.append(fo)
29 else:
30- for arg_nt_seq,arg_arr in arg_nt_dict.items():
31+ for arg_nt_seq,arg_arr in sorted(arg_nt_dict.items()):
32 fo = gen_scalable_l2_function(agi, nt_name,
33 target_opname, ild_t_member, arg_arr, list(arg_nt_seq))
34 l2_func_list.append(fo)
35diff --git a/pysrc/ild_disp.py b/pysrc/ild_disp.py
36index 942c036..cf80e29 100755
37--- a/pysrc/ild_disp.py
38+++ b/pysrc/ild_disp.py
39@@ -350,7 +350,8 @@ def work(agi, united_lookup, disp_nts, brdisp_nts, ild_gendir,
40 disp_dict = _gen_l3_array_dict(agi, disp_nts, _disp_token)
41
42
43- nt_arr_list = list(brdisp_dict.values()) + list(disp_dict.values())
44+ nt_arr_list = ([v for (k,v) in sorted(brdisp_dict.items())] +
45+ [v for (k,v) in sorted(disp_dict.items())])
46 #create function that calls all initialization functions
47 init_f = ild_nt.gen_init_function(nt_arr_list, 'xed_ild_disp_l3_init')
48
49@@ -367,7 +368,7 @@ def work(agi, united_lookup, disp_nts, brdisp_nts, ild_gendir,
50 l2_functions = []
51 eosz_op = ild_eosz.get_target_opname()
52 easz_op = ild_easz.get_target_opname()
53- for nt_name,array in list(disp_dict.items()) + list(brdisp_dict.items()):
54+ for nt_name,array in sorted(disp_dict.items()) + sorted(brdisp_dict.items()):
55 #Some DISP NTs depend on EOSZ, others on EASZ, we need to know
56 #that when we generate L2 functions
57 if eosz_op in array.get_arg_names():
58diff --git a/pysrc/ild_easz.py b/pysrc/ild_easz.py
59index 02cd691..c53b9f2 100755
60--- a/pysrc/ild_easz.py
61+++ b/pysrc/ild_easz.py
62@@ -165,9 +165,10 @@ def work(agi, united_lookup, easz_nts, ild_gendir, debug):
63 return
64 nt_seq_arrays[tuple(nt_seq)] = array
65 #init function calls all single init functions for the created tables
66- init_f = ild_nt.gen_init_function(list(nt_seq_arrays.values()),
67+ nt_seq_values = [v for (k,v) in sorted(nt_seq_arrays.items())]
68+ init_f = ild_nt.gen_init_function(nt_seq_values,
69 'xed_ild_easz_init')
70- ild_nt.dump_lu_arrays(agi, list(nt_seq_arrays.values()), _easz_c_fn,
71+ ild_nt.dump_lu_arrays(agi, nt_seq_values, _easz_c_fn,
72 mbuild.join('include-private', _easz_header_fn),
73 init_f)
74 getter_fos = []
75diff --git a/pysrc/ild_eosz.py b/pysrc/ild_eosz.py
76index 6643bc3..89d2d89 100755
77--- a/pysrc/ild_eosz.py
78+++ b/pysrc/ild_eosz.py
79@@ -200,10 +200,11 @@ def work(agi, united_lookup, eosz_nts, ild_gendir, debug):
80 return None
81 nt_seq_arrays[tuple(nt_seq)] = array
82 #init function calls all single init functions for the created tables
83- init_f = ild_nt.gen_init_function(list(nt_seq_arrays.values()),
84+ nt_seq_values = [v for (k,v) in sorted(nt_seq_arrays.items())]
85+ init_f = ild_nt.gen_init_function(nt_seq_values,
86 'xed_ild_eosz_init')
87 #dump init and lookup functions for EOSZ sequences
88- ild_nt.dump_lu_arrays(agi, list(nt_seq_arrays.values()), _eosz_c_fn,
89+ ild_nt.dump_lu_arrays(agi, nt_seq_values, _eosz_c_fn,
90 mbuild.join('include-private', _eosz_header_fn),
91 init_f)
92 #generate EOSZ getter functions - they get xed_decoded_inst_t*
93diff --git a/pysrc/ild_imm.py b/pysrc/ild_imm.py
94index 51c413c..0530bae 100755
95--- a/pysrc/ild_imm.py
96+++ b/pysrc/ild_imm.py
97@@ -322,12 +322,14 @@ def work(agi, united_lookup, imm_nts, ild_gendir, eosz_dict,
98 level='l3')
99 nt_dict[nt_name] = array
100
101+ nt_dict_values = [v for (k,v) in sorted(nt_dict.items())]
102+
103 #create function that calls all initialization functions for L3
104- init_f = ild_nt.gen_init_function(list(nt_dict.values()),
105+ init_f = ild_nt.gen_init_function(nt_dict_values,
106 'xed_ild_imm_l3_init')
107
108 #dump L3 functions
109- ild_nt.dump_lu_arrays(agi, list(nt_dict.values()), _l3_c_fn,
110+ ild_nt.dump_lu_arrays(agi, nt_dict_values, _l3_c_fn,
111 mbuild.join('include-private',_l3_header_fn),
112 init_f)
113