Change-Id: I8cde62d16fb9adeda7cf270df47defb28d999976
Reviewed-on: http://photon-jenkins.eng.vmware.com:8082/4317
Tested-by: gerrit-photon <photon-checkins@vmware.com>
Reviewed-by: Anish Swaminathan <anishs@vmware.com>
... | ... |
@@ -1,7 +1,7 @@ |
1 | 1 |
Summary: XML-Parser perl module |
2 | 2 |
Name: XML-Parser |
3 | 3 |
Version: 2.44 |
4 |
-Release: 3%{?dist} |
|
4 |
+Release: 4%{?dist} |
|
5 | 5 |
License: GPL+ |
6 | 6 |
URL: http://search.cpan.org/~toddr/%{name}-%{version}/ |
7 | 7 |
Source0: http://search.cpan.org/CPAN/authors/id/T/TO/TODDR/%{name}-%{version}.tar.gz |
... | ... |
@@ -22,10 +22,7 @@ make %{?_smp_mflags} |
22 | 22 |
make DESTDIR=%{buildroot} install |
23 | 23 |
|
24 | 24 |
%define __perl_version 5.24.1 |
25 |
-if [ -e %{_libdir}/perl5/%{__perl_version}/x86_64-linux-thread-multi/perllocal.pod ]; then |
|
26 |
-cat %{buildroot}/%{_libdir}/perl5/%{__perl_version}/x86_64-linux-thread-multi/perllocal.pod >> %{_libdir}/perl5/%{__perl_version}/x86_64-linux-thread-multi/perllocal.pod |
|
27 |
-fi |
|
28 |
-rm %{buildroot}/%{_libdir}/perl5/%{__perl_version}/x86_64-linux-thread-multi/perllocal.pod |
|
25 |
+rm %{buildroot}/%{_libdir}/perl5/%{__perl_version}/*/perllocal.pod |
|
29 | 26 |
|
30 | 27 |
%check |
31 | 28 |
make %{?_smp_mflags} test |
... | ... |
@@ -35,10 +32,12 @@ make %{?_smp_mflags} test |
35 | 35 |
%{_libdir}/perl5/* |
36 | 36 |
%{_mandir}/man3/* |
37 | 37 |
%changelog |
38 |
+* Tue Nov 14 2017 Alexey Makhalov <amakhalov@vmware.com> 2.44-4 |
|
39 |
+- Aarch64 support |
|
38 | 40 |
* Tue Apr 4 2017 Robert Qi <qij@vmware.com> 2.44-3 |
39 | 41 |
- Update to version 2.44-3 since perl version updated. |
40 |
-* Tue May 24 2016 Priyesh Padmavilasom <ppadmavilasom@vmware.com> 2.44-2 |
|
41 |
-- GA - Bump release of all rpms |
|
42 |
+* Tue May 24 2016 Priyesh Padmavilasom <ppadmavilasom@vmware.com> 2.44-2 |
|
43 |
+- GA - Bump release of all rpms |
|
42 | 44 |
* Tue Feb 23 2016 Harish Udaiya Kumar <hudaiyakumar@vmware.com> 2.44-1 |
43 | 45 |
- Upgraded to version 2.44 |
44 | 46 |
* Mon Feb 01 2016 Anish Swaminathan <anishs@vmware.com> 2.41-3 |
... | ... |
@@ -1,7 +1,7 @@ |
1 | 1 |
Summary: Contains a linker, an assembler, and other tools |
2 | 2 |
Name: binutils |
3 | 3 |
Version: 2.29.1 |
4 |
-Release: 2%{?dist} |
|
4 |
+Release: 3%{?dist} |
|
5 | 5 |
License: GPLv2+ |
6 | 6 |
URL: http://www.gnu.org/software/binutils |
7 | 7 |
Group: System Environment/Base |
... | ... |
@@ -39,7 +39,7 @@ cd ../binutils-build |
39 | 39 |
make %{?_smp_mflags} tooldir=%{_prefix} |
40 | 40 |
%install |
41 | 41 |
pushd ../binutils-build |
42 |
-make DESTDIR=%{buildroot} tooldir=%{_prefix} install |
|
42 |
+make %{?_smp_mflags} DESTDIR=%{buildroot} tooldir=%{_prefix} install |
|
43 | 43 |
find %{buildroot} -name '*.la' -delete |
44 | 44 |
# Don't remove libiberity.a |
45 | 45 |
rm -rf %{buildroot}/%{_infodir} |
... | ... |
@@ -74,89 +74,7 @@ make %{?_smp_mflags} check |
74 | 74 |
%{_bindir}/ranlib |
75 | 75 |
%{_bindir}/readelf |
76 | 76 |
%{_bindir}/strip |
77 |
-%{_libdir}/ldscripts/elf32_x86_64.xu |
|
78 |
-%{_libdir}/ldscripts/elf32_x86_64.xr |
|
79 |
-%{_libdir}/ldscripts/i386linux.xr |
|
80 |
-%{_libdir}/ldscripts/elf_l1om.xw |
|
81 |
-%{_libdir}/ldscripts/elf_l1om.xdc |
|
82 |
-%{_libdir}/ldscripts/elf_x86_64.xdw |
|
83 |
-%{_libdir}/ldscripts/elf_k1om.xn |
|
84 |
-%{_libdir}/ldscripts/elf_x86_64.xr |
|
85 |
-%{_libdir}/ldscripts/i386linux.x |
|
86 |
-%{_libdir}/ldscripts/elf_l1om.xd |
|
87 |
-%{_libdir}/ldscripts/elf_k1om.xw |
|
88 |
-%{_libdir}/ldscripts/elf_l1om.xs |
|
89 |
-%{_libdir}/ldscripts/elf_i386.xc |
|
90 |
-%{_libdir}/ldscripts/elf_i386.xdc |
|
91 |
-%{_libdir}/ldscripts/elf_k1om.xd |
|
92 |
-%{_libdir}/ldscripts/elf_i386.xw |
|
93 |
-%{_libdir}/ldscripts/elf32_x86_64.x |
|
94 |
-%{_libdir}/ldscripts/elf_i386.xsc |
|
95 |
-%{_libdir}/ldscripts/elf_x86_64.xw |
|
96 |
-%{_libdir}/ldscripts/i386linux.xn |
|
97 |
-%{_libdir}/ldscripts/elf_k1om.xdw |
|
98 |
-%{_libdir}/ldscripts/elf_k1om.x |
|
99 |
-%{_libdir}/ldscripts/elf_i386.xr |
|
100 |
-%{_libdir}/ldscripts/elf32_x86_64.xc |
|
101 |
-%{_libdir}/ldscripts/elf_x86_64.xsw |
|
102 |
-%{_libdir}/ldscripts/elf_x86_64.xd |
|
103 |
-%{_libdir}/ldscripts/elf_i386.x |
|
104 |
-%{_libdir}/ldscripts/elf_i386.xu |
|
105 |
-%{_libdir}/ldscripts/elf_k1om.xdc |
|
106 |
-%{_libdir}/ldscripts/elf32_x86_64.xn |
|
107 |
-%{_libdir}/ldscripts/elf32_x86_64.xs |
|
108 |
-%{_libdir}/ldscripts/elf_x86_64.x |
|
109 |
-%{_libdir}/ldscripts/elf32_x86_64.xdc |
|
110 |
-%{_libdir}/ldscripts/elf_l1om.xsc |
|
111 |
-%{_libdir}/ldscripts/elf_l1om.x |
|
112 |
-%{_libdir}/ldscripts/elf_x86_64.xsc |
|
113 |
-%{_libdir}/ldscripts/elf_k1om.xu |
|
114 |
-%{_libdir}/ldscripts/elf32_x86_64.xbn |
|
115 |
-%{_libdir}/ldscripts/elf_x86_64.xu |
|
116 |
-%{_libdir}/ldscripts/elf32_x86_64.xw |
|
117 |
-%{_libdir}/ldscripts/elf_k1om.xs |
|
118 |
-%{_libdir}/ldscripts/elf_x86_64.xn |
|
119 |
-%{_libdir}/ldscripts/elf_l1om.xu |
|
120 |
-%{_libdir}/ldscripts/elf32_x86_64.xdw |
|
121 |
-%{_libdir}/ldscripts/elf_l1om.xsw |
|
122 |
-%{_libdir}/ldscripts/elf_l1om.xc |
|
123 |
-%{_libdir}/ldscripts/elf_l1om.xr |
|
124 |
-%{_libdir}/ldscripts/i386linux.xbn |
|
125 |
-%{_libdir}/ldscripts/elf_l1om.xn |
|
126 |
-%{_libdir}/ldscripts/elf_i386.xsw |
|
127 |
-%{_libdir}/ldscripts/elf32_x86_64.xd |
|
128 |
-%{_libdir}/ldscripts/elf_k1om.xbn |
|
129 |
-%{_libdir}/ldscripts/elf_i386.xn |
|
130 |
-%{_libdir}/ldscripts/elf_i386.xbn |
|
131 |
-%{_libdir}/ldscripts/i386linux.xu |
|
132 |
-%{_libdir}/ldscripts/elf_k1om.xc |
|
133 |
-%{_libdir}/ldscripts/elf32_x86_64.xsw |
|
134 |
-%{_libdir}/ldscripts/elf_k1om.xr |
|
135 |
-%{_libdir}/ldscripts/elf32_x86_64.xsc |
|
136 |
-%{_libdir}/ldscripts/elf_k1om.xsw |
|
137 |
-%{_libdir}/ldscripts/elf_i386.xdw |
|
138 |
-%{_libdir}/ldscripts/elf_i386.xd |
|
139 |
-%{_libdir}/ldscripts/elf_x86_64.xdc |
|
140 |
-%{_libdir}/ldscripts/elf_i386.xs |
|
141 |
-%{_libdir}/ldscripts/elf_x86_64.xs |
|
142 |
-%{_libdir}/ldscripts/elf_x86_64.xc |
|
143 |
-%{_libdir}/ldscripts/elf_k1om.xsc |
|
144 |
-%{_libdir}/ldscripts/elf_l1om.xbn |
|
145 |
-%{_libdir}/ldscripts/elf_x86_64.xbn |
|
146 |
-%{_libdir}/ldscripts/elf_l1om.xdw |
|
147 |
-%{_libdir}/ldscripts/elf_iamcu.x |
|
148 |
-%{_libdir}/ldscripts/elf_iamcu.xbn |
|
149 |
-%{_libdir}/ldscripts/elf_iamcu.xc |
|
150 |
-%{_libdir}/ldscripts/elf_iamcu.xd |
|
151 |
-%{_libdir}/ldscripts/elf_iamcu.xdc |
|
152 |
-%{_libdir}/ldscripts/elf_iamcu.xdw |
|
153 |
-%{_libdir}/ldscripts/elf_iamcu.xn |
|
154 |
-%{_libdir}/ldscripts/elf_iamcu.xr |
|
155 |
-%{_libdir}/ldscripts/elf_iamcu.xs |
|
156 |
-%{_libdir}/ldscripts/elf_iamcu.xsc |
|
157 |
-%{_libdir}/ldscripts/elf_iamcu.xsw |
|
158 |
-%{_libdir}/ldscripts/elf_iamcu.xu |
|
159 |
-%{_libdir}/ldscripts/elf_iamcu.xw |
|
77 |
+%{_libdir}/ldscripts/* |
|
160 | 78 |
%{_mandir}/man1/readelf.1.gz |
161 | 79 |
%{_mandir}/man1/windmc.1.gz |
162 | 80 |
%{_mandir}/man1/ranlib.1.gz |
... | ... |
@@ -192,6 +110,9 @@ make %{?_smp_mflags} check |
192 | 192 |
%{_libdir}/libopcodes.so |
193 | 193 |
|
194 | 194 |
%changelog |
195 |
+* Tue Nov 14 2017 Alexey Makhalov <amakhalov@vmware.com> 2.29.1-3 |
|
196 |
+- Aarch64 support |
|
197 |
+- Parallel build |
|
195 | 198 |
* Thu Oct 12 2017 Anish Swaminathan <anishs@vmware.com> 2.29.1-2 |
196 | 199 |
- Add patch to fix CVE-2017-15020 |
197 | 200 |
* Mon Oct 2 2017 Anish Swaminathan <anishs@vmware.com> 2.29.1-1 |
198 | 201 |
new file mode 100644 |
... | ... |
@@ -0,0 +1,12 @@ |
0 |
+diff -Naur a/configure.ac b/configure.ac |
|
1 |
+--- a/configure.ac 2017-08-21 19:40:55.000000000 -0400 |
|
2 |
+@@ -18,6 +18,8 @@ |
|
3 |
+ |
|
4 |
+ linux*:x86_64) |
|
5 |
+ ;; |
|
6 |
++ linux*:aarch64) |
|
7 |
++ ;; |
|
8 |
+ *) |
|
9 |
+ AC_ERROR("Unsupported operating system - ${host_os}:${host_cpu}") |
|
10 |
+ ;; |
... | ... |
@@ -1,17 +1,17 @@ |
1 | 1 |
Name: c-rest-engine |
2 | 2 |
Summary: minimal http(s) server library |
3 | 3 |
Version: 1.0.5 |
4 |
-Release: 1%{?dist} |
|
4 |
+Release: 2%{?dist} |
|
5 | 5 |
Group: Applications/System |
6 | 6 |
Vendor: VMware, Inc. |
7 | 7 |
License: Apache 2.0 |
8 | 8 |
URL: http://www.github.com/vmware/c-rest-engine |
9 |
-BuildArch: x86_64 |
|
10 | 9 |
Requires: openssl >= 1.0.1 |
11 | 10 |
BuildRequires: coreutils >= 8.22 |
12 | 11 |
BuildRequires: openssl-devel >= 1.0.1 |
13 | 12 |
Source0: %{name}-%{version}.tar.gz |
14 | 13 |
%define sha1 c-rest-engine=f846acf51e5d8b31d73d78c3d55c14e887208064 |
14 |
+Patch0: c-rest-engine-aarch64.patch |
|
15 | 15 |
|
16 | 16 |
%description |
17 | 17 |
c-rest-engine is a minimal embedded http(s) server written in C. |
... | ... |
@@ -28,11 +28,13 @@ development libs and header files for c-rest-engine |
28 | 28 |
|
29 | 29 |
%prep |
30 | 30 |
%setup -q |
31 |
+%patch0 -p1 |
|
31 | 32 |
|
32 | 33 |
%build |
33 | 34 |
cd build |
34 | 35 |
autoreconf -mif .. |
35 | 36 |
../configure \ |
37 |
+ --host=%{_host} --build=%{_build} \ |
|
36 | 38 |
--prefix=%{_prefix} \ |
37 | 39 |
--with-ssl=/usr \ |
38 | 40 |
--enable-debug=%{_enable_debug} \ |
... | ... |
@@ -60,6 +62,8 @@ find %{buildroot} -name '*.la' -delete |
60 | 60 |
# %doc ChangeLog README COPYING |
61 | 61 |
|
62 | 62 |
%changelog |
63 |
+* Tue Nov 14 2017 Alexey Makhalov <amakhalov@vmware.com> 1.0.5-2 |
|
64 |
+- Aarch64 support |
|
63 | 65 |
* Thu Nov 02 2017 Kumar Kaushik <kaushikk@vmware.com> 1.0.5-1 |
64 | 66 |
- Adding version, 1.0.5, get peer info API. |
65 | 67 |
* Mon Sep 18 2017 Alexey Makhalov <amakhalov@vmware.com> 1.0.4-3 |
... | ... |
@@ -1,6 +1,6 @@ |
1 | 1 |
Name: crash |
2 | 2 |
Version: 7.1.8 |
3 |
-Release: 1%{?dist} |
|
3 |
+Release: 2%{?dist} |
|
4 | 4 |
Summary: kernel crash analysis utility for live systems, netdump, diskdump, kdump, LKCD or mcore dumpfiles |
5 | 5 |
Group: Development/Tools |
6 | 6 |
Vendor: VMware, Inc. |
... | ... |
@@ -12,6 +12,7 @@ Source0: http://people.redhat.com/anderson/crash-%{version}.tar.gz |
12 | 12 |
Source1: http://people.redhat.com/anderson/extensions/crash-gcore-command-1.4.0.tar.gz |
13 | 13 |
%define sha1 crash-gcore=1434f787d7210516b12c2f28e5b9e5917c5b3eca |
14 | 14 |
Source2: gdb-7.6-extra-patch.patch |
15 |
+Source3: gcore_defs.patch |
|
15 | 16 |
License: GPL |
16 | 17 |
#Patch0: gcore-support-linux-4.4.patch |
17 | 18 |
BuildRequires: binutils |
... | ... |
@@ -44,7 +45,13 @@ This package contains libraries and header files need for development. |
44 | 44 |
cat %{SOURCE2} >> gdb-7.6.patch |
45 | 45 |
make RPMPKG=%{version}-%{release} |
46 | 46 |
cd crash-gcore-command-%{CRASH_GCORE_VERSION} |
47 |
+%ifarch x86_64 |
|
47 | 48 |
make -f gcore.mk ARCH=SUPPORTED TARGET=X86_64 |
49 |
+%endif |
|
50 |
+%ifarch aarch64 |
|
51 |
+patch -p1 < %{SOURCE3} |
|
52 |
+make -f gcore.mk ARCH=SUPPORTED TARGET=ARM64 |
|
53 |
+%endif |
|
48 | 54 |
|
49 | 55 |
%install |
50 | 56 |
[ "%{buildroot}" != / ] && rm -rf "%{buildroot}" |
... | ... |
@@ -74,6 +81,8 @@ install -pm 755 crash-gcore-command-%{CRASH_GCORE_VERSION}/gcore.so %{buildroot} |
74 | 74 |
%{_includedir}/crash/*.h |
75 | 75 |
|
76 | 76 |
%changelog |
77 |
+* Tue Nov 14 2017 Alexey Makhalov <amakhalov@vmware.com> 7.1.8-2 |
|
78 |
+- Aarch64 support |
|
77 | 79 |
* Wed Mar 22 2017 Alexey Makhalov <amakhalov@vmware.com> 7.1.8-1 |
78 | 80 |
- Update version to 7.1.8 (it supports linux-4.9) |
79 | 81 |
- Disable a patch - it requires a verification. |
80 | 82 |
new file mode 100644 |
... | ... |
@@ -0,0 +1,80 @@ |
0 |
+--- crash-gcore-command-1.4.0/libgcore/gcore_defs.h.orig 2017-09-30 16:05:19.520000000 -0400 |
|
1 |
+@@ -584,16 +584,8 @@ |
|
2 |
+ /* Type for a general-purpose register. */ |
|
3 |
+ typedef unsigned long elf_greg_t; |
|
4 |
+ |
|
5 |
+-/* And the whole bunch of them. We could have used `struct |
|
6 |
+- pt_regs' directly in the typedef, but tradition says that |
|
7 |
+- the register set is an array, which does have some peculiar |
|
8 |
+- semantics, so leave it that way. */ |
|
9 |
+-#define ELF_NGREG (sizeof (struct user_pt_regs) / sizeof(elf_greg_t)) |
|
10 |
+ typedef elf_greg_t elf_gregset_t[ELF_NGREG]; |
|
11 |
+ |
|
12 |
+-/* Register set for the floating-point registers. */ |
|
13 |
+-typedef struct user_fpsimd_state elf_fpregset_t; |
|
14 |
+- |
|
15 |
+ #ifdef GCORE_ARCH_COMPAT |
|
16 |
+ /* AArch32 registers. */ |
|
17 |
+ struct user_regs_struct32{ |
|
18 |
+@@ -699,13 +691,6 @@ |
|
19 |
+ PIDTYPE_MAX |
|
20 |
+ }; |
|
21 |
+ |
|
22 |
+-struct elf_siginfo |
|
23 |
+-{ |
|
24 |
+- int si_signo; /* signal number */ |
|
25 |
+- int si_code; /* extra code */ |
|
26 |
+- int si_errno; /* errno */ |
|
27 |
+-}; |
|
28 |
+- |
|
29 |
+ /* Parameters used to convert the timespec values: */ |
|
30 |
+ #define NSEC_PER_USEC 1000L |
|
31 |
+ #define NSEC_PER_SEC 1000000000L |
|
32 |
+@@ -796,24 +781,6 @@ |
|
33 |
+ } |
|
34 |
+ #endif |
|
35 |
+ |
|
36 |
+-struct elf_prstatus |
|
37 |
+-{ |
|
38 |
+- struct elf_siginfo pr_info; /* Info associated with signal */ |
|
39 |
+- short pr_cursig; /* Current signal */ |
|
40 |
+- unsigned long pr_sigpend; /* Set of pending signals */ |
|
41 |
+- unsigned long pr_sighold; /* Set of held signals */ |
|
42 |
+- int pr_pid; |
|
43 |
+- int pr_ppid; |
|
44 |
+- int pr_pgrp; |
|
45 |
+- int pr_sid; |
|
46 |
+- struct timeval pr_utime; /* User time */ |
|
47 |
+- struct timeval pr_stime; /* System time */ |
|
48 |
+- struct timeval pr_cutime; /* Cumulative user time */ |
|
49 |
+- struct timeval pr_cstime; /* Cumulative system time */ |
|
50 |
+- elf_gregset_t pr_reg; /* GP registers */ |
|
51 |
+- int pr_fpvalid; /* True if math co-processor being used. */ |
|
52 |
+-}; |
|
53 |
+- |
|
54 |
+ #if defined(X86) || defined(X86_64) || defined(ARM) || defined(MIPS) |
|
55 |
+ typedef unsigned short __kernel_old_uid_t; |
|
56 |
+ typedef unsigned short __kernel_old_gid_t; |
|
57 |
+@@ -892,21 +859,6 @@ |
|
58 |
+ |
|
59 |
+ #define ELF_PRARGSZ (80) /* Number of chars for args */ |
|
60 |
+ |
|
61 |
+-struct elf_prpsinfo |
|
62 |
+-{ |
|
63 |
+- char pr_state; /* numeric process state */ |
|
64 |
+- char pr_sname; /* char for pr_state */ |
|
65 |
+- char pr_zomb; /* zombie */ |
|
66 |
+- char pr_nice; /* nice val */ |
|
67 |
+- unsigned long pr_flag; /* flags */ |
|
68 |
+- __kernel_uid_t pr_uid; |
|
69 |
+- __kernel_gid_t pr_gid; |
|
70 |
+- pid_t pr_pid, pr_ppid, pr_pgrp, pr_sid; |
|
71 |
+- /* Lots missing */ |
|
72 |
+- char pr_fname[16]; /* filename of executable */ |
|
73 |
+- char pr_psargs[ELF_PRARGSZ]; /* initial part of arg list */ |
|
74 |
+-}; |
|
75 |
+- |
|
76 |
+ #ifdef GCORE_ARCH_COMPAT |
|
77 |
+ |
|
78 |
+ struct compat_elf_siginfo |
... | ... |
@@ -1,3 +1,14 @@ |
1 |
+--- gdb-7.6/gdb/aarch64-linux-nat.c.orig |
|
2 |
+@@ -457,7 +457,7 @@ aarch64_linux_new_fork (struct lwp_info *parent, pid_t child_pid) |
|
3 |
+ storage (or its descriptor). */ |
|
4 |
+ |
|
5 |
+ ps_err_e |
|
6 |
+-ps_get_thread_area (const struct ps_prochandle *ph, |
|
7 |
++ps_get_thread_area (struct ps_prochandle *ph, |
|
8 |
+ lwpid_t lwpid, int idx, void **base) |
|
9 |
+ { |
|
10 |
+ struct iovec iovec; |
|
1 | 11 |
--- gdb-7.6/gdb/amd64-linux-nat.c.orig |
2 | 12 |
+++ gdb-7.6/gdb/amd64-linux-nat.c |
3 | 13 |
@@ -482,7 +482,7 @@ |
... | ... |
@@ -1,7 +1,7 @@ |
1 | 1 |
Summary: Default file system |
2 | 2 |
Name: filesystem |
3 | 3 |
Version: 1.1 |
4 |
-Release: 1%{?dist} |
|
4 |
+Release: 2%{?dist} |
|
5 | 5 |
License: GPLv3 |
6 | 6 |
Group: System Environment/Base |
7 | 7 |
Vendor: VMware, Inc. |
... | ... |
@@ -41,15 +41,12 @@ ln -svfn ../bin %{buildroot}/usr/lib/debug/usr/bin |
41 | 41 |
ln -svfn ../sbin %{buildroot}/usr/lib/debug/usr/sbin |
42 | 42 |
ln -svfn ../lib %{buildroot}/usr/lib/debug/usr/lib |
43 | 43 |
|
44 |
-# Symlinks for AMD64 |
|
45 |
-%ifarch x86_64 |
|
46 | 44 |
ln -svfn usr/lib %{buildroot}/lib64 |
47 | 45 |
ln -svfn lib %{buildroot}/usr/lib64 |
48 | 46 |
ln -svfn lib %{buildroot}/usr/local/lib64 |
49 | 47 |
ln -svfn lib %{buildroot}/usr/lib/debug/lib64 |
50 | 48 |
ln -svfn ../lib %{buildroot}/usr/lib/debug/usr/lib64 |
51 | 49 |
|
52 |
-%endif |
|
53 | 50 |
install -vdm 755 %{buildroot}/var/{log,mail,spool,mnt,srv} |
54 | 51 |
|
55 | 52 |
ln -svfn var/srv %{buildroot}/srv |
... | ... |
@@ -532,15 +529,14 @@ EOF |
532 | 532 |
/var/lock |
533 | 533 |
/var/run |
534 | 534 |
|
535 |
-# Symlinks for AMD64 |
|
536 |
-%ifarch x86_64 |
|
537 | 535 |
/lib64 |
538 | 536 |
/usr/lib64 |
539 | 537 |
/usr/local/lib64 |
540 | 538 |
/usr/lib/debug/lib64 |
541 | 539 |
/usr/lib/debug/usr/lib64 |
542 |
-%endif |
|
543 | 540 |
%changelog |
541 |
+* Tue Nov 14 2017 Alexey Makhalov <amakhalov@vmware.com> 1.1-2 |
|
542 |
+- Aarch64 support |
|
544 | 543 |
* Fri Sep 15 2017 Anish Swaminathan <anishs@vmware.com> 1.1-1 |
545 | 544 |
- Move network file from filesystem package |
546 | 545 |
* Fri Apr 21 2017 Alexey Makhalov <amakhalov@vmware.com> 1.0-13 |
547 | 546 |
new file mode 100644 |
... | ... |
@@ -0,0 +1,16 @@ |
0 |
+--- fuse-2.9.7/include/fuse_kernel.h.orig 2017-09-30 19:00:45.272000000 -0400 |
|
1 |
+@@ -88,12 +88,7 @@ |
|
2 |
+ #ifndef _LINUX_FUSE_H |
|
3 |
+ #define _LINUX_FUSE_H |
|
4 |
+ |
|
5 |
+-#include <sys/types.h> |
|
6 |
+-#define __u64 uint64_t |
|
7 |
+-#define __s64 int64_t |
|
8 |
+-#define __u32 uint32_t |
|
9 |
+-#define __s32 int32_t |
|
10 |
+-#define __u16 uint16_t |
|
11 |
++#include <linux/types.h> |
|
12 |
+ |
|
13 |
+ /* |
|
14 |
+ * Version negotiation: |
... | ... |
@@ -1,7 +1,7 @@ |
1 | 1 |
Summary: File System in Userspace (FUSE) utilities |
2 | 2 |
Name: fuse |
3 | 3 |
Version: 2.9.7 |
4 |
-Release: 2%{?dist} |
|
4 |
+Release: 3%{?dist} |
|
5 | 5 |
License: GPL+ |
6 | 6 |
Url: http://fuse.sourceforge.net/ |
7 | 7 |
Group: System Environment/Base |
... | ... |
@@ -9,6 +9,7 @@ Vendor: VMware, Inc. |
9 | 9 |
Distribution: Photon |
10 | 10 |
Source0: https://github.com/libfuse/libfuse/releases/download/%{name}-%{version}/%{name}-%{version}.tar.gz |
11 | 11 |
%define sha1 fuse=cd174e3d37995a42fad32fac92f76cd18e24174f |
12 |
+Patch0: fuse-types.patch |
|
12 | 13 |
|
13 | 14 |
%description |
14 | 15 |
With FUSE it is possible to implement a fully functional filesystem in a |
... | ... |
@@ -23,6 +24,9 @@ It contains the libraries and header files to create fuse applications. |
23 | 23 |
|
24 | 24 |
%prep |
25 | 25 |
%setup -q |
26 |
+%ifarch aarch64 |
|
27 |
+%patch0 -p1 |
|
28 |
+%endif |
|
26 | 29 |
%build |
27 | 30 |
./configure --prefix=%{_prefix} --disable-static INIT_D_PATH=/tmp/init.d && |
28 | 31 |
make %{?_smp_mflags} |
... | ... |
@@ -53,6 +57,8 @@ find %{buildroot} -name '*.la' -delete |
53 | 53 |
%{_libdir}/pkgconfig/fuse.pc |
54 | 54 |
|
55 | 55 |
%changelog |
56 |
+* Tue Nov 14 2017 Alexey Makhalov <amakhalov@vmware.com> 2.9.7-3 |
|
57 |
+- Aarch64 support |
|
56 | 58 |
* Wed Jul 05 2017 Xiaolin Li <xiaolinl@vmware.com> 2.9.7-2 |
57 | 59 |
- Move pkgconfig folder to devel package. |
58 | 60 |
* Mon Apr 17 2017 Danut Moraru <dmoraru@vmware.com> 2.9.7-1 |
... | ... |
@@ -2,7 +2,7 @@ |
2 | 2 |
Summary: Contains the GNU compiler collection |
3 | 3 |
Name: gcc |
4 | 4 |
Version: 6.3.0 |
5 |
-Release: 6%{?dist} |
|
5 |
+Release: 7%{?dist} |
|
6 | 6 |
License: GPLv2+ |
7 | 7 |
URL: http://gcc.gnu.org |
8 | 8 |
Group: Development/Tools |
... | ... |
@@ -100,6 +100,7 @@ install -vdm 755 ../gcc-build |
100 | 100 |
# 1. "typedef struct ucontext ucontext_t" was renamed to |
101 | 101 |
# "typedef struct ucontext_t ucontext_t" |
102 | 102 |
sed -i 's/struct ucontext/ucontext_t/g' libgcc/config/i386/linux-unwind.h |
103 |
+sed -i 's/struct ucontext/ucontext_t/g' libgcc/config/aarch64/linux-unwind.h |
|
103 | 104 |
# 2. struct sigaltstack removed |
104 | 105 |
sed -i 's/struct sigaltstack/void/g' libsanitizer/sanitizer_common/sanitizer_linux.cc |
105 | 106 |
sed -i '/struct sigaltstack;/d' libsanitizer/sanitizer_common/sanitizer_linux.h |
... | ... |
@@ -132,13 +133,8 @@ install -vdm 755 %{buildroot}/%_lib |
132 | 132 |
ln -sv %{_bindir}/cpp %{buildroot}/%{_lib} |
133 | 133 |
ln -sv gcc %{buildroot}%{_bindir}/cc |
134 | 134 |
install -vdm 755 %{buildroot}%{_datarootdir}/gdb/auto-load%{_lib} |
135 |
-%ifarch x86_64 |
|
136 |
- mv -v %{buildroot}%{_lib64dir}/*gdb.py %{buildroot}%{_datarootdir}/gdb/auto-load%{_lib} |
|
137 |
- chmod 755 %{buildroot}/%{_lib64dir}/libgcc_s.so.1 |
|
138 |
-%else |
|
139 |
- mv -v %{buildroot}%{_libdir}/*gdb.py %{buildroot}%{_datarootdir}/gdb/auto-load%{_lib} |
|
140 |
- chmod 755 %{buildroot}/%{_lib}/libgcc_s.so.1 |
|
141 |
-%endif |
|
135 |
+mv -v %{buildroot}%{_lib64dir}/*gdb.py %{buildroot}%{_datarootdir}/gdb/auto-load%{_lib} |
|
136 |
+chmod 755 %{buildroot}/%{_lib64dir}/libgcc_s.so.1 |
|
142 | 137 |
rm -rf %{buildroot}%{_infodir} |
143 | 138 |
popd |
144 | 139 |
%find_lang %{name} --all-name |
... | ... |
@@ -164,11 +160,14 @@ make %{?_smp_mflags} check-gcc |
164 | 164 |
%{_lib}/cpp |
165 | 165 |
# Executables |
166 | 166 |
%exclude %{_bindir}/*gfortran |
167 |
-%exclude %{_libexecdir}/gcc/x86_64-pc-linux-gnu/%{version}/f951 |
|
168 | 167 |
%{_bindir}/* |
169 | 168 |
# Libraries |
170 |
-%ifarch x86_64 |
|
171 | 169 |
%{_lib64dir}/* |
170 |
+%ifarch x86_64 |
|
171 |
+%exclude %{_libexecdir}/gcc/x86_64-pc-linux-gnu/%{version}/f951 |
|
172 |
+%endif |
|
173 |
+%ifarch aarch64 |
|
174 |
+%exclude %{_libexecdir}/gcc/aarch64-unknown-linux-gnu/%{version}/f951 |
|
172 | 175 |
%endif |
173 | 176 |
%{_libdir}/gcc/* |
174 | 177 |
# Library executables |
... | ... |
@@ -181,92 +180,61 @@ make %{?_smp_mflags} check-gcc |
181 | 181 |
%{_mandir}/man7/*.gz |
182 | 182 |
%{_datadir}/gdb/* |
183 | 183 |
|
184 |
-%ifarch x86_64 |
|
185 | 184 |
%exclude %{_lib64dir}/libgcc* |
186 | 185 |
%exclude %{_lib64dir}/libstdc++* |
187 | 186 |
%exclude %{_lib64dir}/libgomp* |
188 |
-%else |
|
189 |
-%exclude %{_libdir}/libgcc* |
|
190 |
-%exclude %{_libdir}/libstdc++* |
|
191 |
-%exclude %{_libdir}/libgomp* |
|
192 |
-%endif |
|
193 | 187 |
|
194 | 188 |
%files -n gfortran |
195 | 189 |
%defattr(-,root,root) |
196 | 190 |
%{_bindir}/*gfortran |
197 | 191 |
%{_mandir}/man1/gfortran.1.gz |
192 |
+%ifarch x86_64 |
|
198 | 193 |
%{_libexecdir}/gcc/x86_64-pc-linux-gnu/%{version}/f951 |
194 |
+%endif |
|
195 |
+%ifarch aarch64 |
|
196 |
+%{_libexecdir}/gcc/aarch64-unknown-linux-gnu/%{version}/f951 |
|
197 |
+%endif |
|
199 | 198 |
|
200 | 199 |
%files -n libgcc |
201 | 200 |
%defattr(-,root,root) |
202 |
-%ifarch x86_64 |
|
203 | 201 |
%{_lib64dir}/libgcc_s.so.* |
204 |
-%else |
|
205 |
-%{_libdir}/libgcc_s.so.* |
|
206 |
-%endif |
|
207 | 202 |
|
208 | 203 |
%files -n libgcc-atomic |
209 | 204 |
%defattr(-,root,root) |
210 |
-%ifarch x86_64 |
|
211 |
-%{_lib64dir}/libatomic.so* |
|
212 |
-%else |
|
213 | 205 |
%{_lib64dir}/libatomic.so* |
214 |
-%endif |
|
215 | 206 |
|
216 | 207 |
%files -n libgcc-devel |
217 | 208 |
%defattr(-,root,root) |
218 |
-%ifarch x86_64 |
|
219 | 209 |
%{_lib64dir}/libgcc_s.so |
220 |
-%else |
|
221 |
-%{_libdir}/libgcc_s.so |
|
222 |
-%endif |
|
223 | 210 |
|
224 | 211 |
|
225 | 212 |
%files -n libstdc++ |
226 | 213 |
%defattr(-,root,root) |
227 |
-%ifarch x86_64 |
|
228 | 214 |
%{_lib64dir}/libstdc++.so.* |
229 |
-%else |
|
230 |
-%{_libdir}/libstdc++.so.* |
|
231 |
-%endif |
|
232 | 215 |
%dir %{_datarootdir}/gcc-%{version}/python/libstdcxx |
233 | 216 |
%{_datarootdir}/gcc-%{version}/python/libstdcxx/* |
234 | 217 |
|
235 | 218 |
%files -n libstdc++-devel |
236 | 219 |
%defattr(-,root,root) |
237 |
-%ifarch x86_64 |
|
238 | 220 |
%{_lib64dir}/libstdc++.so |
239 | 221 |
%{_lib64dir}/libstdc++.la |
240 |
-%else |
|
241 |
-%{_libdir}/libstdc++.so |
|
242 |
-%{_libdir}/libstdc++.la |
|
243 |
-%endif |
|
244 | 222 |
|
245 | 223 |
%{_includedir}/c++/* |
246 | 224 |
|
247 | 225 |
%files -n libgomp |
248 | 226 |
%defattr(-,root,root) |
249 |
-%ifarch x86_64 |
|
250 | 227 |
%{_lib64dir}/libgomp*.so.* |
251 |
-%else |
|
252 |
-%{_libdir}/libgomp*.so.* |
|
253 |
-%endif |
|
254 | 228 |
|
255 | 229 |
%files -n libgomp-devel |
256 | 230 |
%defattr(-,root,root) |
257 |
-%ifarch x86_64 |
|
258 | 231 |
%{_lib64dir}/libgomp.a |
259 | 232 |
%{_lib64dir}/libgomp.la |
260 | 233 |
%{_lib64dir}/libgomp.so |
261 | 234 |
%{_lib64dir}/libgomp.spec |
262 |
-%else |
|
263 |
-%{_libdir}/libgomp.a |
|
264 |
-%{_libdir}/libgomp.la |
|
265 |
-%{_libdir}/libgomp.so |
|
266 |
-%{_libdir}/libgomp.spec |
|
267 |
-%endif |
|
268 | 235 |
|
269 | 236 |
%changelog |
237 |
+* Tue Nov 14 2017 Alexey Makhalov <amakhalov@vmware.com> 6.3.0-7 |
|
238 |
+- Aarch64 support |
|
270 | 239 |
* Mon Oct 02 2017 Alexey Makhalov <amakhalov@vmware.com> 6.3.0-6 |
271 | 240 |
- Added smp_mflags for parallel build |
272 | 241 |
* Mon Sep 25 2017 Alexey Makhalov <amakhalov@vmware.com> 6.3.0-5 |
... | ... |
@@ -1,7 +1,7 @@ |
1 | 1 |
Summary: C debugger |
2 | 2 |
Name: gdb |
3 | 3 |
Version: 7.12.1 |
4 |
-Release: 6%{?dist} |
|
4 |
+Release: 7%{?dist} |
|
5 | 5 |
License: GPLv2+ |
6 | 6 |
URL: http://www.gnu.org/software/%{name} |
7 | 7 |
Source0: http://ftp.gnu.org/gnu/gdb/%{name}-%{version}.tar.xz |
... | ... |
@@ -50,6 +50,9 @@ rm %{buildroot}%{_libdir}/libopcodes.a |
50 | 50 |
rm %{buildroot}%{_datadir}/locale/de/LC_MESSAGES/opcodes.mo |
51 | 51 |
rm %{buildroot}%{_datadir}/locale/fi/LC_MESSAGES/bfd.mo |
52 | 52 |
rm %{buildroot}%{_datadir}/locale/fi/LC_MESSAGES/opcodes.mo |
53 |
+%ifarch aarch64 |
|
54 |
+rm %{buildroot}%{_libdir}/libaarch64-unknown-linux-gnu-sim.a |
|
55 |
+%endif |
|
53 | 56 |
%find_lang %{name} --all-name |
54 | 57 |
|
55 | 58 |
%check |
... | ... |
@@ -74,6 +77,8 @@ make %{?_smp_mflags} check || tail gdb/testsuite/gdb.sum | grep "# of unexpecte |
74 | 74 |
%{_mandir}/*/* |
75 | 75 |
|
76 | 76 |
%changelog |
77 |
+* Tue Nov 14 2017 Alexey Makhalov <amakhalov@vmware.com> 7.12.1-7 |
|
78 |
+- Aarch64 support |
|
77 | 79 |
* Mon Sep 11 2017 Rui Gu <ruig@vmware.com> 7.12.1-6 |
78 | 80 |
- Enable make check in docker with part of checks disabled |
79 | 81 |
* Thu Aug 10 2017 Alexey Makhalov <amakhalov@vmware.com> 7.12.1-5 |
... | ... |
@@ -4,7 +4,7 @@ |
4 | 4 |
Summary: Main C library |
5 | 5 |
Name: glibc |
6 | 6 |
Version: 2.26 |
7 |
-Release: 6%{?dist} |
|
7 |
+Release: 7%{?dist} |
|
8 | 8 |
License: LGPLv2+ |
9 | 9 |
URL: http://www.gnu.org/software/libc |
10 | 10 |
Group: Applications/System |
... | ... |
@@ -209,6 +209,9 @@ grep "^FAIL: nptl/tst-eintr1" tests.sum >/dev/null && n=$((n+1)) ||: |
209 | 209 |
%config(missingok,noreplace) %{_sysconfdir}/ld.so.cache |
210 | 210 |
%config %{_sysconfdir}/locale-gen.conf |
211 | 211 |
/lib64/* |
212 |
+%ifarch aarch64 |
|
213 |
+%exclude /lib |
|
214 |
+%endif |
|
212 | 215 |
%exclude /lib64/libpcprofile.so |
213 | 216 |
%{_lib64dir}/*.so |
214 | 217 |
/sbin/ldconfig |
... | ... |
@@ -271,10 +274,8 @@ grep "^FAIL: nptl/tst-eintr1" tests.sum >/dev/null && n=$((n+1)) ||: |
271 | 271 |
%defattr(-,root,root) |
272 | 272 |
# TODO: Excluding for now to remove dependency on PERL |
273 | 273 |
# /usr/bin/mtrace |
274 |
-%ifarch x86_64 |
|
275 | 274 |
%{_lib64dir}/*.a |
276 | 275 |
%{_lib64dir}/*.o |
277 |
-%endif |
|
278 | 276 |
%{_includedir}/* |
279 | 277 |
|
280 | 278 |
%files -f %{name}.lang lang |
... | ... |
@@ -282,6 +283,8 @@ grep "^FAIL: nptl/tst-eintr1" tests.sum >/dev/null && n=$((n+1)) ||: |
282 | 282 |
|
283 | 283 |
|
284 | 284 |
%changelog |
285 |
+* Tue Nov 14 2017 Alexey Makhalov <amakhalov@vmware.com> 2.26-7 |
|
286 |
+- Aarch64 support |
|
285 | 287 |
* Wed Oct 25 2017 Xiaolin Li <xiaolinl@vmware.com> 2.26-6 |
286 | 288 |
- Fix CVE-2017-15670 and CVE-2017-15804 |
287 | 289 |
* Tue Oct 10 2017 Alexey Makhalov <amakhalov@vmware.com> 2.26-5 |
... | ... |
@@ -1,7 +1,11 @@ |
1 | 1 |
|
2 | 2 |
%global goroot /usr/lib/golang |
3 | 3 |
%global gopath %{_datadir}/gocode |
4 |
+%ifarch aarch64 |
|
5 |
+%global gohostarch arm64 |
|
6 |
+%else |
|
4 | 7 |
%global gohostarch amd64 |
8 |
+%endif |
|
5 | 9 |
|
6 | 10 |
# rpmbuild magic to keep from having meta dependency on libc.so.6 |
7 | 11 |
%define _use_internal_dependency_generator 0 |
... | ... |
@@ -10,7 +14,7 @@ |
10 | 10 |
Summary: Go |
11 | 11 |
Name: go |
12 | 12 |
Version: 1.9.1 |
13 |
-Release: 1%{?dist} |
|
13 |
+Release: 2%{?dist} |
|
14 | 14 |
License: BSD |
15 | 15 |
URL: https://golang.org |
16 | 16 |
Group: System Environment/Security |
... | ... |
@@ -58,8 +62,10 @@ rm -rfv %{buildroot}%{goroot}/doc/Makefile |
58 | 58 |
# put binaries to bindir, linked to the arch we're building, |
59 | 59 |
# leave the arch independent pieces in %{goroot} |
60 | 60 |
mkdir -p %{buildroot}%{goroot}/bin/linux_%{gohostarch} |
61 |
-mv %{buildroot}%{goroot}/bin/go %{buildroot}%{goroot}/bin/linux_%{gohostarch}/go |
|
62 |
-mv %{buildroot}%{goroot}/bin/gofmt %{buildroot}%{goroot}/bin/linux_%{gohostarch}/gofmt |
|
61 |
+ln -sfv ../go %{buildroot}%{goroot}/bin/linux_%{gohostarch}/go |
|
62 |
+ln -sfv ../gofmt %{buildroot}%{goroot}/bin/linux_%{gohostarch}/gofmt |
|
63 |
+ln -sfv %{goroot}/bin/gofmt %{buildroot}%{_bindir}/gofmt |
|
64 |
+ln -sfv %{goroot}/bin/go %{buildroot}%{_bindir}/go |
|
63 | 65 |
|
64 | 66 |
# ensure these exist and are owned |
65 | 67 |
mkdir -p %{buildroot}%{gopath}/src/github.com/ |
... | ... |
@@ -67,11 +73,7 @@ mkdir -p %{buildroot}%{gopath}/src/bitbucket.org/ |
67 | 67 |
mkdir -p %{buildroot}%{gopath}/src/code.google.com/ |
68 | 68 |
mkdir -p %{buildroot}%{gopath}/src/code.google.com/p/ |
69 | 69 |
|
70 |
- |
|
71 |
-ln -sfv ../../%{goroot}/bin/linux_%{gohostarch}/gofmt %{buildroot}%{_bindir}/gofmt |
|
72 |
-ln -sfv ../../%{goroot}/bin/linux_%{gohostarch}/go %{buildroot}%{_bindir}/go |
|
73 |
- |
|
74 |
-install -vdm644 %{buildroot}/etc/profile.d |
|
70 |
+install -vdm755 %{buildroot}/etc/profile.d |
|
75 | 71 |
cat >> %{buildroot}/etc/profile.d/go-exports.sh <<- "EOF" |
76 | 72 |
export GOROOT=%{goroot} |
77 | 73 |
export GOPATH=%{_datadir}/gocode |
... | ... |
@@ -79,10 +81,10 @@ export GOHOSTOS=linux |
79 | 79 |
export GOHOSTARCH=%{gohostarch} |
80 | 80 |
export GOOS=linux |
81 | 81 |
EOF |
82 |
-chown -R root:root %{buildroot}/etc/profile.d/go-exports.sh |
|
82 |
+#chown -R root:root %{buildroot}/etc/profile.d/go-exports.sh |
|
83 | 83 |
|
84 | 84 |
|
85 |
-%{_fixperms} %{buildroot}/* |
|
85 |
+#%{_fixperms} %{buildroot}/* |
|
86 | 86 |
|
87 | 87 |
%post -p /sbin/ldconfig |
88 | 88 |
|
... | ... |
@@ -110,6 +112,8 @@ rm -rf %{buildroot}/* |
110 | 110 |
%{_bindir}/* |
111 | 111 |
|
112 | 112 |
%changelog |
113 |
+* Tue Nov 14 2017 Alexey Makhalov <amakhalov@vmware.com> 1.9.1-2 |
|
114 |
+- Aarch64 support |
|
113 | 115 |
* Wed Nov 01 2017 Vinay Kulkarni <kulkarniv@vmware.com> 1.9.1-1 |
114 | 116 |
- Update to golang release v1.9.1 |
115 | 117 |
* Wed May 31 2017 Xiaolin Li <xiaolinl@vmware.com> 1.8.1-2 |
... | ... |
@@ -3,7 +3,7 @@ |
3 | 3 |
Summary: GRand Unified Bootloader |
4 | 4 |
Name: grub2 |
5 | 5 |
Version: 2.02 |
6 |
-Release: 9%{?dist} |
|
6 |
+Release: 10%{?dist} |
|
7 | 7 |
License: GPLv3+ |
8 | 8 |
URL: http://www.gnu.org/software/grub |
9 | 9 |
Group: Applications/System |
... | ... |
@@ -28,12 +28,14 @@ Requires: %{name} = %{version} |
28 | 28 |
%description lang |
29 | 29 |
These are the additional language files of grub. |
30 | 30 |
|
31 |
+%ifarch x86_64 |
|
31 | 32 |
%package pc |
32 | 33 |
Summary: GRUB Library for BIOS |
33 | 34 |
Group: System Environment/Programming |
34 | 35 |
Requires: %{name} = %{version} |
35 | 36 |
%description pc |
36 | 37 |
Additional library files for grub |
38 |
+%endif |
|
37 | 39 |
|
38 | 40 |
%package efi |
39 | 41 |
Summary: GRUB Library for UEFI |
... | ... |
@@ -48,8 +50,9 @@ Additional library files for grub |
48 | 48 |
%patch1 -p1 |
49 | 49 |
%build |
50 | 50 |
./autogen.sh |
51 |
-mkdir build-for-pc build-for-efi |
|
52 |
-cd build-for-pc |
|
51 |
+%ifarch x86_64 |
|
52 |
+mkdir build-for-pc |
|
53 |
+pushd build-for-pc |
|
53 | 54 |
../configure \ |
54 | 55 |
--prefix=%{_prefix} \ |
55 | 56 |
--sbindir=/sbin \ |
... | ... |
@@ -64,7 +67,11 @@ cd build-for-pc |
64 | 64 |
--with-bootdir="/boot" |
65 | 65 |
make %{?_smp_mflags} |
66 | 66 |
make DESTDIR=$PWD/../install-for-pc install |
67 |
-cd ../build-for-efi |
|
67 |
+popd |
|
68 |
+%endif |
|
69 |
+ |
|
70 |
+mkdir build-for-efi |
|
71 |
+pushd build-for-efi |
|
68 | 72 |
../configure \ |
69 | 73 |
--prefix=%{_prefix} \ |
70 | 74 |
--sbindir=/sbin \ |
... | ... |
@@ -74,23 +81,28 @@ cd ../build-for-efi |
74 | 74 |
--disable-efiemu \ |
75 | 75 |
--with-grubdir=grub2 \ |
76 | 76 |
--with-platform=efi \ |
77 |
- --target=x86_64 \ |
|
77 |
+ --target=%{_arch} \ |
|
78 | 78 |
--program-transform-name=s,grub,%{name}, \ |
79 | 79 |
--with-bootdir="/boot" |
80 | 80 |
make %{?_smp_mflags} |
81 | 81 |
make DESTDIR=$PWD/../install-for-efi install |
82 |
+popd |
|
82 | 83 |
|
83 | 84 |
#make sure all the files are same between two configure except the /usr/lib/grub |
84 | 85 |
%check |
86 |
+%ifarch x86_64 |
|
85 | 87 |
diff -sr install-for-efi/sbin install-for-pc/sbin && \ |
86 | 88 |
diff -sr install-for-efi%{_bindir} install-for-pc%{_bindir} && \ |
87 | 89 |
diff -sr install-for-efi%{_sysconfdir} install-for-pc%{_sysconfdir} && \ |
88 | 90 |
diff -sr install-for-efi%{_datarootdir} install-for-pc%{_datarootdir} |
91 |
+%endif |
|
89 | 92 |
|
90 | 93 |
%install |
91 | 94 |
mkdir -p %{buildroot} |
92 | 95 |
cp -a install-for-efi/. %{buildroot}/. |
96 |
+%ifarch x86_64 |
|
93 | 97 |
cp -a install-for-pc/. %{buildroot}/. |
98 |
+%endif |
|
94 | 99 |
mkdir %{buildroot}%{_sysconfdir}/default |
95 | 100 |
touch %{buildroot}%{_sysconfdir}/default/grub |
96 | 101 |
mkdir %{buildroot}%{_sysconfdir}/sysconfig |
... | ... |
@@ -120,17 +132,21 @@ rm -rf %{buildroot}%{_infodir} |
120 | 120 |
%{_sysconfdir}/default/grub |
121 | 121 |
%ghost %config(noreplace) /boot/%{name}/grub.cfg |
122 | 122 |
|
123 |
+%ifarch x86_64 |
|
123 | 124 |
%files pc |
124 | 125 |
%{_libdir}/grub/i386-pc |
126 |
+%endif |
|
125 | 127 |
|
126 | 128 |
%files efi |
127 |
-%{_libdir}/grub/x86_64-efi |
|
129 |
+%{_libdir}/grub/* |
|
128 | 130 |
|
129 | 131 |
%files lang |
130 | 132 |
%defattr(-,root,root) |
131 | 133 |
%{_datarootdir}/locale/* |
132 | 134 |
|
133 | 135 |
%changelog |
136 |
+* Tue Nov 14 2017 Alexey Makhalov <amakhalov@vmware.com> 2.02-10 |
|
137 |
+- Aarch64 support |
|
134 | 138 |
* Fri Jun 2 2017 Bo Gan <ganb@vmware.com> 2.02-9 |
135 | 139 |
- Split grub2 to grub2 and grub2-pc, remove grub2-efi spec |
136 | 140 |
* Fri Apr 14 2017 Alexey Makhalov <amakhalov@vmware.com> 2.02-8 |
... | ... |
@@ -1,12 +1,13 @@ |
1 | 1 |
Summary: Mozilla's JavaScript engine. |
2 | 2 |
Name: js |
3 | 3 |
Version: 1.8.5 |
4 |
-Release: 1%{?dist} |
|
4 |
+Release: 2%{?dist} |
|
5 | 5 |
Group: Applications/System |
6 | 6 |
Vendor: VMware, Inc. |
7 | 7 |
License: GPLv2+ or LGPLv2+ or MPLv1.1 |
8 | 8 |
URL: https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey/Releases/1.8.5 |
9 | 9 |
Source0: https://archive.mozilla.org/pub/js/js185-1.0.0.tar.gz |
10 |
+Patch0: mozjs-aarch64-support.patch |
|
10 | 11 |
Distribution: Photon |
11 | 12 |
BuildRequires: autoconf |
12 | 13 |
BuildRequires: ncurses-devel |
... | ... |
@@ -29,19 +30,12 @@ This contains development tools and libraries for SpiderMonkey. |
29 | 29 |
|
30 | 30 |
%prep |
31 | 31 |
%setup -q |
32 |
+%patch0 -p1 |
|
32 | 33 |
|
33 | 34 |
%build |
34 | 35 |
cd js/src |
35 |
-./configure \ |
|
36 |
- --prefix=%{_prefix} \ |
|
37 |
- --bindir=%{_bindir} \ |
|
38 |
- --sbindir=%{_sbindir} \ |
|
39 |
- --includedir=%{_includedir} \ |
|
40 |
- --libdir=%{_libdir} \ |
|
41 |
- --mandir=%{_mandir} \ |
|
42 |
- --infodir=%{_infodir} \ |
|
36 |
+%configure \ |
|
43 | 37 |
--datadir=%{_datarootdir} \ |
44 |
- --sysconfdir=/etc \ |
|
45 | 38 |
--with-system-nspr \ |
46 | 39 |
--enable-threadsafe \ |
47 | 40 |
--enable-readline |
... | ... |
@@ -75,7 +69,9 @@ find %{buildroot} -name '*.la' -delete |
75 | 75 |
%{_libdir}/pkgconfig/mozjs185.pc |
76 | 76 |
|
77 | 77 |
%changelog |
78 |
-* Tue Oct 05 2017 Vinay Kulkarni <kulkarniv@vmware.com> 1.8.5-1 |
|
78 |
+* Tue Nov 14 2017 Alexey Makhalov <amakhalov@vmware.com> 1.8.5-2 |
|
79 |
+- Aarch64 support |
|
80 |
+* Thu Oct 05 2017 Vinay Kulkarni <kulkarniv@vmware.com> 1.8.5-1 |
|
79 | 81 |
- mozjs v1.8.5. |
80 | 82 |
* Fri May 22 2015 Alexey Makhalov <amakhalov@vmware.com> 17.0.0-1 |
81 | 83 |
- initial version |
82 | 84 |
new file mode 100644 |
... | ... |
@@ -0,0 +1,52 @@ |
0 |
+--- a/js/src/Makefile.in |
|
1 |
+@@ -382,7 +382,7 @@ CPPSRCS += checks.cc \ |
|
2 |
+ # END enclude sources for V8 dtoa |
|
3 |
+ ############################################# |
|
4 |
+ |
|
5 |
+-ifeq (,$(filter-out powerpc sparc,$(TARGET_CPU))) |
|
6 |
++ifeq (,$(filter-out aarch64 powerpc sparc,$(TARGET_CPU))) |
|
7 |
+ |
|
8 |
+ VPATH += $(srcdir)/assembler \ |
|
9 |
+ $(srcdir)/assembler/wtf \ |
|
10 |
+--- a/js/src/assembler/jit/ExecutableAllocator.h |
|
11 |
+@@ -391,6 +391,12 @@ public: |
|
12 |
+ { |
|
13 |
+ CacheRangeFlush(code, size, CACHE_SYNC_ALL); |
|
14 |
+ } |
|
15 |
++#elif WTF_CPU_AARCH64 && WTF_PLATFORM_LINUX |
|
16 |
++ static void cacheFlush(void* code, size_t size) |
|
17 |
++ { |
|
18 |
++ intptr_t end = reinterpret_cast<intptr_t>(code) + size; |
|
19 |
++ __builtin___clear_cache(reinterpret_cast<char*>(code), reinterpret_cast<char*>(end)); |
|
20 |
++ } |
|
21 |
+ #else |
|
22 |
+ #error "The cacheFlush support is missing on this platform." |
|
23 |
+ #endif |
|
24 |
+--- a/js/src/assembler/wtf/Platform.h |
|
25 |
+@@ -292,6 +292,10 @@ |
|
26 |
+ |
|
27 |
+ #endif /* ARM */ |
|
28 |
+ |
|
29 |
++/* CPU(AArch64) - 64-bit ARM */ |
|
30 |
++#if defined(__aarch64__) |
|
31 |
++#define WTF_CPU_AARCH64 1 |
|
32 |
++#endif |
|
33 |
+ |
|
34 |
+ |
|
35 |
+ /* Operating systems - low-level dependencies */ |
|
36 |
+--- a/js/src/configure.in |
|
37 |
+@@ -1534,6 +1534,10 @@ arm*) |
|
38 |
+ CPU_ARCH=arm |
|
39 |
+ ;; |
|
40 |
+ |
|
41 |
++aarch64) |
|
42 |
++ CPU_ARCH=aarch64 |
|
43 |
++ ;; |
|
44 |
++ |
|
45 |
+ mips|mipsel) |
|
46 |
+ CPU_ARCH="mips" |
|
47 |
+ ;; |
... | ... |
@@ -1,7 +1,7 @@ |
1 | 1 |
Summary: Kubernetes DNS |
2 | 2 |
Name: kubernetes-dns |
3 | 3 |
Version: 1.14.6 |
4 |
-Release: 2%{?dist} |
|
4 |
+Release: 3%{?dist} |
|
5 | 5 |
License: ASL 2.0 |
6 | 6 |
URL: https://github.com/kubernetes/dns/archive/%{version}.tar.gz |
7 | 7 |
Source0: kubernetes-dns-%{version}.tar.gz |
... | ... |
@@ -18,7 +18,12 @@ Kubernetes DNS is a name lookup service for kubernetes pods. |
18 | 18 |
%setup -qn dns-%{version} |
19 | 19 |
|
20 | 20 |
%build |
21 |
+%ifarch x86_64 |
|
21 | 22 |
export ARCH=amd64 |
23 |
+%endif |
|
24 |
+%ifarch aarch64 |
|
25 |
+export ARCH=arm64 |
|
26 |
+%endif |
|
22 | 27 |
export VERSION=%{version} |
23 | 28 |
export PKG=k8s.io/dns |
24 | 29 |
export GOARCH=${ARCH} |
... | ... |
@@ -64,6 +69,8 @@ rm -rf %{buildroot}/* |
64 | 64 |
%{_bindir}/sidecar-e2e |
65 | 65 |
|
66 | 66 |
%changelog |
67 |
+* Tue Nov 14 2017 Alexey Makhalov <amakhalov@vmware.com> 1.14.6-3 |
|
68 |
+- Aarch64 support |
|
67 | 69 |
* Wed Nov 01 2017 Vinay Kulkarni <kulkarniv@vmware.com> 1.14.6-2 |
68 | 70 |
- Remove go testing framework binary. |
69 | 71 |
* Mon Oct 02 2017 Vinay Kulkarni <kulkarniv@vmware.com> 1.14.6-1 |
... | ... |
@@ -1,7 +1,15 @@ |
1 |
+%ifarch x86_64 |
|
2 |
+%define archname amd64 |
|
3 |
+%endif |
|
4 |
+%ifarch aarch64 |
|
5 |
+%define archname arm64 |
|
6 |
+%endif |
|
7 |
+ |
|
8 |
+ |
|
1 | 9 |
Summary: Kubernetes cluster management |
2 | 10 |
Name: kubernetes |
3 | 11 |
Version: 1.8.1 |
4 |
-Release: 3%{?dist} |
|
12 |
+Release: 4%{?dist} |
|
5 | 13 |
License: ASL 2.0 |
6 | 14 |
URL: https://github.com/kubernetes/kubernetes/archive/v%{version}.tar.gz |
7 | 15 |
Source0: kubernetes-v%{version}.tar.gz |
... | ... |
@@ -52,8 +60,8 @@ cd %{name}-%{version} |
52 | 52 |
make |
53 | 53 |
pushd build/pause |
54 | 54 |
mkdir -p bin |
55 |
-gcc -Os -Wall -Werror -static -o bin/pause-amd64 pause.c |
|
56 |
-strip bin/pause-amd64 |
|
55 |
+gcc -Os -Wall -Werror -static -o bin/pause-%{archname} pause.c |
|
56 |
+strip bin/pause-%{archname} |
|
57 | 57 |
popd |
58 | 58 |
|
59 | 59 |
%install |
... | ... |
@@ -63,13 +71,13 @@ install -m 755 -d %{buildroot}%{_bindir} |
63 | 63 |
binaries=(cloud-controller-manager hyperkube kube-aggregator kube-apiserver kube-controller-manager kubelet kube-proxy kube-scheduler kubectl kubefed) |
64 | 64 |
for bin in "${binaries[@]}"; do |
65 | 65 |
echo "+++ INSTALLING ${bin}" |
66 |
- install -p -m 755 -t %{buildroot}%{_bindir} _output/local/bin/linux/amd64/${bin} |
|
66 |
+ install -p -m 755 -t %{buildroot}%{_bindir} _output/local/bin/linux/%{archname}/${bin} |
|
67 | 67 |
done |
68 |
-install -p -m 755 -t %{buildroot}%{_bindir} build/pause/bin/pause-amd64 |
|
68 |
+install -p -m 755 -t %{buildroot}%{_bindir} build/pause/bin/pause-%{archname} |
|
69 | 69 |
|
70 | 70 |
# kubeadm install |
71 | 71 |
install -vdm644 %{buildroot}/etc/systemd/system/kubelet.service.d |
72 |
-install -p -m 755 -t %{buildroot}%{_bindir} _output/local/bin/linux/amd64/kubeadm |
|
72 |
+install -p -m 755 -t %{buildroot}%{_bindir} _output/local/bin/linux/%{archname}/kubeadm |
|
73 | 73 |
install -p -m 755 -t %{buildroot}/etc/systemd/system build/rpms/kubelet.service |
74 | 74 |
install -p -m 755 -t %{buildroot}/etc/systemd/system/kubelet.service.d build/rpms/10-kubeadm.conf |
75 | 75 |
sed -i '/KUBELET_CGROUP_ARGS=--cgroup-driver=systemd/d' %{buildroot}/etc/systemd/system/kubelet.service.d/10-kubeadm.conf |
... | ... |
@@ -180,10 +188,12 @@ fi |
180 | 180 |
|
181 | 181 |
%files pause |
182 | 182 |
%defattr(-,root,root) |
183 |
-%{_bindir}/pause-amd64 |
|
183 |
+%{_bindir}/pause-%{archname} |
|
184 | 184 |
|
185 | 185 |
%changelog |
186 |
-* Fri Nov 15 2017 Vinay Kulkarni <kulkarniv@vmware.com> 1.8.1-3 |
|
186 |
+* Wed Nov 15 2017 Alexey Makhalov <amakhalov@vmware.com> 1.8.1-4 |
|
187 |
+- Aarch64 support |
|
188 |
+* Wed Nov 15 2017 Vinay Kulkarni <kulkarniv@vmware.com> 1.8.1-3 |
|
187 | 189 |
- Specify --kubeconfig to pass in config file. |
188 | 190 |
* Tue Nov 07 2017 Vinay Kulkarni <kulkarniv@vmware.com> 1.8.1-2 |
189 | 191 |
- Specify API server via kubeconfig file. |
... | ... |
@@ -1,7 +1,7 @@ |
1 | 1 |
Summary: Libcap |
2 | 2 |
Name: libcap |
3 | 3 |
Version: 2.25 |
4 |
-Release: 7%{?dist} |
|
4 |
+Release: 8%{?dist} |
|
5 | 5 |
License: GPLv2+ |
6 | 6 |
URL: https://www.gnu.org/software/hurd/community/gsoc/project_ideas/libcap.html |
7 | 7 |
Source0: https://www.kernel.org/pub/linux/libs/security/linux-privs/libcap2/%{name}-%{version}.tar.xz |
... | ... |
@@ -30,6 +30,9 @@ sed -i 's:LIBDIR:PAM_&:g' pam_cap/Makefile |
30 | 30 |
make %{?_smp_mflags} |
31 | 31 |
%install |
32 | 32 |
make prefix=%{_prefix} SBINDIR=%{_sbindir} PAM_LIBDIR=%{_libdir} RAISE_SETFCAP=no DESTDIR=%{buildroot} install |
33 |
+%ifarch aarch64 |
|
34 |
+mv %{buildroot}%{_libdir} %{buildroot}%{_lib64dir} |
|
35 |
+%endif |
|
33 | 36 |
chmod -v 755 %{buildroot}/usr/lib64/libcap.so |
34 | 37 |
%check |
35 | 38 |
cd progs |
... | ... |
@@ -51,8 +54,11 @@ sed -i "s|pass_capsh --chroot=\$(/bin/pwd) ==||g" quicktest.sh |
51 | 51 |
%{_mandir}/man3/* |
52 | 52 |
|
53 | 53 |
%changelog |
54 |
+* Tue Nov 14 2017 Alexey Makhalov <amakhalov@vmware.com> 2.25-8 |
|
55 |
+- Aarch64 support |
|
54 | 56 |
* Wed Aug 09 2017 Danut Moraru <dmoraru@vmware.com> 2.25-7 |
55 |
-- Remove capsh test that runs chroot already in chroot, failing due to expected environment/dependencies not available |
|
57 |
+- Remove capsh test that runs chroot already in chroot, failing due to |
|
58 |
+ expected environment/dependencies not available |
|
56 | 59 |
* Fri Apr 14 2017 Alexey Makhalov <amakhalov@vmware.com> 2.25-6 |
57 | 60 |
- Remove attr deps. |
58 | 61 |
* Wed Dec 07 2016 Xiaolin Li <xiaolinl@vmware.com> 2.25-5 |
... | ... |
@@ -1,7 +1,7 @@ |
1 | 1 |
Summary: The Berkley DB database library for C |
2 | 2 |
Name: libdb |
3 | 3 |
Version: 5.3.28 |
4 |
-Release: 1%{?dist} |
|
4 |
+Release: 2%{?dist} |
|
5 | 5 |
License: BSD and LGPLv2 and Sleepycat |
6 | 6 |
URL: https://oss.oracle.com/berkeley-db.html |
7 | 7 |
Source0: http://download.oracle.com/berkeley-db/db-%{version}.tar.gz |
... | ... |
@@ -32,6 +32,7 @@ The package contains the DB doc files |
32 | 32 |
%build |
33 | 33 |
cd build_unix |
34 | 34 |
../dist/configure \ |
35 |
+ --host=%{_host} --build=%{_build} \ |
|
35 | 36 |
--prefix=%{_prefix} \ |
36 | 37 |
--enable-compat185 \ |
37 | 38 |
--enable-dbm \ |
... | ... |
@@ -65,5 +66,7 @@ rm -rf %{buildroot} |
65 | 65 |
%{_includedir}/* |
66 | 66 |
|
67 | 67 |
%changelog |
68 |
+* Tue Nov 14 2017 Alexey Makhalov <amakhalov@vmware.com> 5.3.28-2 |
|
69 |
+- Aarch64 support |
|
68 | 70 |
* Thu Oct 27 2016 Priyesh Padmavilasom <ppadmavilasom@vmware.com> 5.3.28-1 |
69 | 71 |
- Initial build. First version |
... | ... |
@@ -1,7 +1,7 @@ |
1 | 1 |
Summary: A simplified, portable interface to several low-level networking routines |
2 | 2 |
Name: libdnet |
3 | 3 |
Version: 1.11 |
4 |
-Release: 5%{?dist} |
|
4 |
+Release: 6%{?dist} |
|
5 | 5 |
License: BSD |
6 | 6 |
URL: http://prdownloads.sourceforge.net/libdnet/libdnet-1.11.tar.gz |
7 | 7 |
Group: Applications/System |
... | ... |
@@ -24,6 +24,7 @@ It contains the libraries and header files to create applications. |
24 | 24 |
%patch0 -p1 |
25 | 25 |
%build |
26 | 26 |
./configure --prefix=/usr "CFLAGS=-fPIC" \ |
27 |
+ --host=%{_host} --build=%{_build} \ |
|
27 | 28 |
--mandir=%{_mandir} |
28 | 29 |
make %{?_smp_mflags} |
29 | 30 |
%install |
... | ... |
@@ -50,6 +51,8 @@ make %{?_smp_mflags} check |
50 | 50 |
%{_libdir}/libdnet.a |
51 | 51 |
|
52 | 52 |
%changelog |
53 |
+* Tue Nov 14 2017 Alexey Makhalov <amakhalov@vmware.com> 1.11-6 |
|
54 |
+- Aarch64 support |
|
53 | 55 |
* Thu Aug 03 2017 Kumar Kaushik <kaushikk@vmware.com> 1.11-5 |
54 | 56 |
- Applying patch for makecheck bug #1633615. |
55 | 57 |
* Fri Jun 23 2017 Xiaolin Li <xiaolinl@vmware.com> 1.11-4 |
... | ... |
@@ -1,7 +1,7 @@ |
1 | 1 |
Summary: A portable, high level programming interface to various calling conventions |
2 | 2 |
Name: libffi |
3 | 3 |
Version: 3.2.1 |
4 |
-Release: 5%{?dist} |
|
4 |
+Release: 6%{?dist} |
|
5 | 5 |
License: BSD |
6 | 6 |
URL: http://sourceware.org/libffi/ |
7 | 7 |
Group: System Environment/GeneralLibraries |
... | ... |
@@ -46,11 +46,7 @@ make %{?_smp_mflags} |
46 | 46 |
[ %{buildroot} != "/"] && rm -rf %{buildroot}/* |
47 | 47 |
make DESTDIR=%{buildroot} install |
48 | 48 |
install -D -m644 LICENSE %{buildroot}/usr/share/licenses/%{name}/LICENSE |
49 |
-%ifarch x86_64 |
|
50 | 49 |
find %{buildroot}/%{_lib64dir} -name '*.la' -delete |
51 |
-%else |
|
52 |
-find %{buildroot}/%{_libdir} -name '*.la' -delete |
|
53 |
-%endif |
|
54 | 50 |
rm -rf %{buildroot}/%{_infodir} |
55 | 51 |
%{_fixperms} %{buildroot}/* |
56 | 52 |
|
... | ... |
@@ -64,11 +60,7 @@ rm -rf %{buildroot}/* |
64 | 64 |
|
65 | 65 |
%files |
66 | 66 |
%defattr(-,root,root) |
67 |
-%ifarch x86_64 |
|
68 | 67 |
%{_lib64dir}/*.so* |
69 |
-%else |
|
70 |
-%{_libdir}/*.so* |
|
71 |
-%endif |
|
72 | 68 |
|
73 | 69 |
%files devel |
74 | 70 |
%defattr(-,root,root) |
... | ... |
@@ -78,6 +70,8 @@ rm -rf %{buildroot}/* |
78 | 78 |
%{_mandir}/man3/* |
79 | 79 |
|
80 | 80 |
%changelog |
81 |
+* Tue Nov 14 2017 Alexey Makhalov <amakhalov@vmware.com> 3.2.1-6 |
|
82 |
+- Aarch64 support |
|
81 | 83 |
* Wed Jul 12 2017 Alexey Makhalov <amakhalov@vmware.com> 3.2.1-5 |
82 | 84 |
- Get tcl, expect and dejagnu from packages |
83 | 85 |
* Fri Apr 14 2017 Alexey Makhalov <amakhalov@vmware.com> 3.2.1-4 |
84 | 86 |
new file mode 100644 |
... | ... |
@@ -0,0 +1,19 @@ |
0 |
+--- likewise-open-6.2.11.4/makekit/mk/module/platform.sh.orig 2017-10-02 20:15:04.188000000 -0400 |
|
1 |
+@@ -285,6 +285,9 @@ |
|
2 |
+ x86_64|amd64) |
|
3 |
+ _default_MK_BUILD_ARCH="x86_64" |
|
4 |
+ ;; |
|
5 |
++ aarch64|arm64) |
|
6 |
++ _default_MK_BUILD_ARCH="aarch64" |
|
7 |
++ ;; |
|
8 |
+ *) |
|
9 |
+ mk_fail "unknown architecture: `uname -m`" |
|
10 |
+ ;; |
|
11 |
+@@ -690,4 +693,4 @@ |
|
12 |
+ { |
|
13 |
+ _MK_MULTIARCH_SYS="${_MK_MULTIARCH_SYS_MAKE}" |
|
14 |
+ _MK_COMPAT_SYS="${_MK_MULTIARCH_COMPAT_MAKE}" |
|
15 |
+-} |
|
16 |
+\ No newline at end of file |
|
17 |
++} |
... | ... |
@@ -1,13 +1,14 @@ |
1 | 1 |
Name: likewise-open |
2 | 2 |
Summary: Likewise Open |
3 | 3 |
Version: 6.2.11.4 |
4 |
-Release: 3%{?dist} |
|
4 |
+Release: 4%{?dist} |
|
5 | 5 |
Group: Development/Libraries |
6 | 6 |
Vendor: VMware, Inc. |
7 | 7 |
License: GPL 2.0,LGPL 2.1 |
8 | 8 |
URL: https://github.com/vmware/likewise-open |
9 | 9 |
Source0: %{name}-%{version}.tar.gz |
10 | 10 |
%define sha1 likewise-open=6aa4cf11de6747d5f8940666c21adc3e1f7b6a4b |
11 |
+Patch0: likewise-open-aarch64.patch |
|
11 | 12 |
Distribution: Photon |
12 | 13 |
Requires: Linux-PAM |
13 | 14 |
Requires: (coreutils >= 8.22 or toybox) |
... | ... |
@@ -45,6 +46,7 @@ This package provides files for developing against the Likewise APIs |
45 | 45 |
|
46 | 46 |
%prep |
47 | 47 |
%setup -q |
48 |
+%patch0 -p1 |
|
48 | 49 |
|
49 | 50 |
%build |
50 | 51 |
# hack against glibc-2.26 to avoid getopt declaration mismatch |
... | ... |
@@ -62,7 +64,7 @@ export CFLAGS="-Wno-error=unused-but-set-variable -Wno-error=implicit-function-d |
62 | 62 |
--libdir=/opt/likewise/lib64 \ |
63 | 63 |
--datadir=/opt/likewise/share \ |
64 | 64 |
--datarootdir=/opt/likewise/share \ |
65 |
- --build-isas=x86_64 \ |
|
65 |
+ --build-isas=%{_arch} \ |
|
66 | 66 |
--lw-bundled-libs='libedit' \ |
67 | 67 |
--enable-vmdir-provider=yes \ |
68 | 68 |
--disable-static |
... | ... |
@@ -288,6 +290,8 @@ rm -rf %{buildroot}/* |
288 | 288 |
/opt/likewise/lib64/pkgconfig/libedit.pc |
289 | 289 |
|
290 | 290 |
%changelog |
291 |
+* Tue Nov 14 2017 Alexey Makhalov <amakhalov@vmware.com> 6.2.11.4-4 |
|
292 |
+- Aarch64 support |
|
291 | 293 |
* Mon Sep 18 2017 Alexey Makhalov <amakhalov@vmware.com> 6.2.11.4-3 |
292 | 294 |
- Requires coreutils/procps-ng or toybox, /bin/grep, /bin/sed |
293 | 295 |
* Thu Aug 24 2017 Alexey Makhalov <amakhalov@vmware.com> 6.2.11.4-2 |
294 | 296 |
new file mode 100644 |
... | ... |
@@ -0,0 +1,30 @@ |
0 |
+Author: dann frazier <dannf@debian.org> |
|
1 |
+Description: Add missing #include stdio.h |
|
2 |
+ Include stdio.h in files that use fprintf() |
|
3 |
+Applied-Upstream: http://anonscm.debian.org/gitweb/?p=collab-maint/ltrace.git;a=commitdiff;h=3c4a0de0be06377caf43a5f9e1682b05ef7299f9 |
|
4 |
+Last-Update: 2014-03-17 |
|
5 |
+ |
|
6 |
+Index: ltrace/sysdeps/linux-gnu/aarch64/regs.c |
|
7 |
+=================================================================== |
|
8 |
+--- ltrace.orig/sysdeps/linux-gnu/aarch64/regs.c 2014-03-12 16:23:25.382866486 -0600 |
|
9 |
+@@ -23,6 +23,7 @@ |
|
10 |
+ #include <linux/uio.h> |
|
11 |
+ #include <assert.h> |
|
12 |
+ #include <stdlib.h> |
|
13 |
++#include <stdio.h> |
|
14 |
+ |
|
15 |
+ #include "backend.h" |
|
16 |
+ #include "proc.h" |
|
17 |
+Index: ltrace/sysdeps/linux-gnu/aarch64/trace.c |
|
18 |
+=================================================================== |
|
19 |
+--- ltrace.orig/sysdeps/linux-gnu/aarch64/trace.c 2014-03-12 16:23:25.382866486 -0600 |
|
20 |
+@@ -23,6 +23,7 @@ |
|
21 |
+ #include <sys/wait.h> |
|
22 |
+ #include <asm/ptrace.h> |
|
23 |
+ #include <string.h> |
|
24 |
++#include <stdio.h> |
|
25 |
+ #include <errno.h> |
|
26 |
+ |
|
27 |
+ #include "backend.h" |
0 | 28 |
new file mode 100644 |
... | ... |
@@ -0,0 +1,1945 @@ |
0 |
+Author: Petr Machata <pmachata@apm-mustang-ev2-02.ml3.eng.bos.redhat.com> |
|
1 |
+Description: Set child stack alignment in trace-clone.c |
|
2 |
+ This is important on aarch64, which requires 16-byte aligned |
|
3 |
+ stack pointer. This might be relevant on other arches as well, |
|
4 |
+ I suspect we just happened to get the 16-byte boundary in some |
|
5 |
+ cases. |
|
6 |
+Applied-Upstream: http://anonscm.debian.org/gitweb/?p=collab-maint/ltrace.git;a=commit;h=912a0f75b3521803fa724a55f0e883c134c7b4e9 |
|
7 |
+Last-Update: 2014-03-13 |
|
8 |
+ |
|
9 |
+Index: ltrace/configure.ac |
|
10 |
+=================================================================== |
|
11 |
+--- ltrace.orig/configure.ac 2014-03-12 16:20:44.020676662 -0600 |
|
12 |
+@@ -1,6 +1,6 @@ |
|
13 |
+ # -*- Autoconf -*- |
|
14 |
+ # This file is part of ltrace. |
|
15 |
+-# Copyright (C) 2010,2013 Petr Machata, Red Hat Inc. |
|
16 |
++# Copyright (C) 2010,2013,2014 Petr Machata, Red Hat Inc. |
|
17 |
+ # Copyright (C) 2010,2011 Joe Damato |
|
18 |
+ # Copyright (C) 2010 Marc Kleine-Budde |
|
19 |
+ # Copyright (C) 2010 Zachary T Welch |
|
20 |
+@@ -319,6 +319,7 @@ |
|
21 |
+ Makefile |
|
22 |
+ sysdeps/Makefile |
|
23 |
+ sysdeps/linux-gnu/Makefile |
|
24 |
++ sysdeps/linux-gnu/aarch64/Makefile |
|
25 |
+ sysdeps/linux-gnu/alpha/Makefile |
|
26 |
+ sysdeps/linux-gnu/arm/Makefile |
|
27 |
+ sysdeps/linux-gnu/cris/Makefile |
|
28 |
+Index: ltrace/sysdeps/linux-gnu/Makefile.am |
|
29 |
+=================================================================== |
|
30 |
+--- ltrace.orig/sysdeps/linux-gnu/Makefile.am 2014-03-12 16:20:44.020676662 -0600 |
|
31 |
+@@ -1,4 +1,5 @@ |
|
32 |
+ # This file is part of ltrace. |
|
33 |
++# Copyright (C) 2014 Petr Machata, Red Hat, Inc. |
|
34 |
+ # Copyright (C) 2010,2012 Marc Kleine-Budde, Pengutronix |
|
35 |
+ # |
|
36 |
+ # This program is free software; you can redistribute it and/or |
|
37 |
+@@ -16,7 +17,7 @@ |
|
38 |
+ # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA |
|
39 |
+ # 02110-1301 USA |
|
40 |
+ |
|
41 |
+-DIST_SUBDIRS = alpha arm cris ia64 m68k mips ppc s390 sparc x86 |
|
42 |
++DIST_SUBDIRS = aarch64 alpha arm cris ia64 m68k mips ppc s390 sparc x86 |
|
43 |
+ |
|
44 |
+ SUBDIRS = \ |
|
45 |
+ $(HOST_CPU) |
|
46 |
+Index: ltrace/sysdeps/linux-gnu/aarch64/Makefile.am |
|
47 |
+=================================================================== |
|
48 |
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
|
49 |
+@@ -0,0 +1,25 @@ |
|
50 |
++# This file is part of ltrace. |
|
51 |
++# Copyright (C) 2014 Petr Machata, Red Hat, Inc. |
|
52 |
++# |
|
53 |
++# This program is free software; you can redistribute it and/or |
|
54 |
++# modify it under the terms of the GNU General Public License as |
|
55 |
++# published by the Free Software Foundation; either version 2 of the |
|
56 |
++# License, or (at your option) any later version. |
|
57 |
++# |
|
58 |
++# This program is distributed in the hope that it will be useful, but |
|
59 |
++# WITHOUT ANY WARRANTY; without even the implied warranty of |
|
60 |
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
|
61 |
++# General Public License for more details. |
|
62 |
++# |
|
63 |
++# You should have received a copy of the GNU General Public License |
|
64 |
++# along with this program; if not, write to the Free Software |
|
65 |
++# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA |
|
66 |
++# 02110-1301 USA |
|
67 |
++ |
|
68 |
++noinst_LTLIBRARIES = ../libcpu.la |
|
69 |
++ |
|
70 |
++___libcpu_la_SOURCES = fetch.c plt.c regs.c trace.c |
|
71 |
++ |
|
72 |
++noinst_HEADERS = arch.h ptrace.h signalent.h syscallent.h |
|
73 |
++ |
|
74 |
++MAINTAINERCLEANFILES = Makefile.in |
|
75 |
+Index: ltrace/sysdeps/linux-gnu/aarch64/arch.h |
|
76 |
+=================================================================== |
|
77 |
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
|
78 |
+@@ -0,0 +1,37 @@ |
|
79 |
++/* |
|
80 |
++ * This file is part of ltrace. |
|
81 |
++ * Copyright (C) 2014 Petr Machata, Red Hat, Inc. |
|
82 |
++ * |
|
83 |
++ * This program is free software; you can redistribute it and/or |
|
84 |
++ * modify it under the terms of the GNU General Public License as |
|
85 |
++ * published by the Free Software Foundation; either version 2 of the |
|
86 |
++ * License, or (at your option) any later version. |
|
87 |
++ * |
|
88 |
++ * This program is distributed in the hope that it will be useful, but |
|
89 |
++ * WITHOUT ANY WARRANTY; without even the implied warranty of |
|
90 |
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
|
91 |
++ * General Public License for more details. |
|
92 |
++ * |
|
93 |
++ * You should have received a copy of the GNU General Public License |
|
94 |
++ * along with this program; if not, write to the Free Software |
|
95 |
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA |
|
96 |
++ * 02110-1301 USA |
|
97 |
++ */ |
|
98 |
++#ifndef LTRACE_AARCH64_ARCH_H |
|
99 |
++#define LTRACE_AARCH64_ARCH_H |
|
100 |
++ |
|
101 |
++/* | 31 21 | 20 5 | 4 0 | * |
|
102 |
++ * | 1 1 0 1 0 1 0 0 0 0 1 | imm16 | 0 0 0 0 0 | */ |
|
103 |
++#define BREAKPOINT_VALUE { 0xd4, 0x20, 0, 0 } |
|
104 |
++#define BREAKPOINT_LENGTH 4 |
|
105 |
++#define DECR_PC_AFTER_BREAK 0 |
|
106 |
++ |
|
107 |
++#define LT_ELFCLASS ELFCLASS64 |
|
108 |
++#define LT_ELF_MACHINE EM_AARCH64 |
|
109 |
++ |
|
110 |
++#define ARCH_HAVE_FETCH_ARG |
|
111 |
++#define ARCH_ENDIAN_BIG |
|
112 |
++#define ARCH_HAVE_SIZEOF |
|
113 |
++#define ARCH_HAVE_ALIGNOF |
|
114 |
++ |
|
115 |
++#endif /* LTRACE_AARCH64_ARCH_H */ |
|
116 |
+Index: ltrace/sysdeps/linux-gnu/aarch64/fetch.c |
|
117 |
+=================================================================== |
|
118 |
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
|
119 |
+@@ -0,0 +1,365 @@ |
|
120 |
++/* |
|
121 |
++ * This file is part of ltrace. |
|
122 |
++ * Copyright (C) 2014 Petr Machata, Red Hat, Inc. |
|
123 |
++ * |
|
124 |
++ * This program is free software; you can redistribute it and/or |
|
125 |
++ * modify it under the terms of the GNU General Public License as |
|
126 |
++ * published by the Free Software Foundation; either version 2 of the |
|
127 |
++ * License, or (at your option) any later version. |
|
128 |
++ * |
|
129 |
++ * This program is distributed in the hope that it will be useful, but |
|
130 |
++ * WITHOUT ANY WARRANTY; without even the implied warranty of |
|
131 |
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
|
132 |
++ * General Public License for more details. |
|
133 |
++ * |
|
134 |
++ * You should have received a copy of the GNU General Public License |
|
135 |
++ * along with this program; if not, write to the Free Software |
|
136 |
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA |
|
137 |
++ * 02110-1301 USA |
|
138 |
++ */ |
|
139 |
++ |
|
140 |
++#include <sys/ptrace.h> |
|
141 |
++#include <asm/ptrace.h> |
|
142 |
++#include <stdlib.h> |
|
143 |
++#include <string.h> |
|
144 |
++ |
|
145 |
++#include "fetch.h" |
|
146 |
++#include "proc.h" |
|
147 |
++#include "type.h" |
|
148 |
++#include "value.h" |
|
149 |
++ |
|
150 |
++int aarch64_read_gregs(struct Process *proc, struct user_pt_regs *regs); |
|
151 |
++int aarch64_read_fregs(struct Process *proc, struct user_fpsimd_state *regs); |
|
152 |
++ |
|
153 |
++ |
|
154 |
++struct fetch_context |
|
155 |
++{ |
|
156 |
++ struct user_pt_regs gregs; |
|
157 |
++ struct user_fpsimd_state fpregs; |
|
158 |
++ arch_addr_t nsaa; |
|
159 |
++ unsigned ngrn; |
|
160 |
++ unsigned nsrn; |
|
161 |
++ arch_addr_t x8; |
|
162 |
++}; |
|
163 |
++ |
|
164 |
++static int |
|
165 |
++context_init(struct fetch_context *context, struct Process *proc) |
|
166 |
++{ |
|
167 |
++ if (aarch64_read_gregs(proc, &context->gregs) < 0 |
|
168 |
++ || aarch64_read_fregs(proc, &context->fpregs) < 0) |
|
169 |
++ return -1; |
|
170 |
++ |
|
171 |
++ context->ngrn = 0; |
|
172 |
++ context->nsrn = 0; |
|
173 |
++ /* XXX double cast */ |
|
174 |
++ context->nsaa = (arch_addr_t) (uintptr_t) context->gregs.sp; |
|
175 |
++ context->x8 = 0; |
|
176 |
++ |
|
177 |
++ return 0; |
|
178 |
++} |
|
179 |
++ |
|
180 |
++struct fetch_context * |
|
181 |
++arch_fetch_arg_clone(struct Process *proc, struct fetch_context *context) |
|
182 |
++{ |
|
183 |
++ struct fetch_context *ret = malloc(sizeof(*ret)); |
|
184 |
++ if (ret == NULL) |
|
185 |
++ return NULL; |
|
186 |
++ return memcpy(ret, context, sizeof(*ret)); |
|
187 |
++} |
|
188 |
++ |
|
189 |
++static void |
|
190 |
++fetch_next_gpr(struct fetch_context *context, unsigned char *buf) |
|
191 |
++{ |
|
192 |
++ uint64_t u = context->gregs.regs[context->ngrn++]; |
|
193 |
++ memcpy(buf, &u, 8); |
|
194 |
++} |
|
195 |
++ |
|
196 |
++static int |
|
197 |
++fetch_gpr(struct fetch_context *context, struct value *value, size_t sz) |
|
198 |
++{ |
|
199 |
++ if (sz < 8) |
|
200 |
++ sz = 8; |
|
201 |
++ |
|
202 |
++ unsigned char *buf = value_reserve(value, sz); |
|
203 |
++ if (buf == NULL) |
|
204 |
++ return -1; |
|
205 |
++ |
|
206 |
++ size_t i; |
|
207 |
++ for (i = 0; i < sz; i += 8) |
|
208 |
++ fetch_next_gpr(context, buf + i); |
|
209 |
++ |
|
210 |
++ return 0; |
|
211 |
++} |
|
212 |
++ |
|
213 |
++static void |
|
214 |
++fetch_next_sse(struct fetch_context *context, unsigned char *buf, size_t sz) |
|
215 |
++{ |
|
216 |
++ __int128 u = context->fpregs.vregs[context->nsrn++]; |
|
217 |
++ memcpy(buf, &u, sz); |
|
218 |
++} |
|
219 |
++ |
|
220 |
++static int |
|
221 |
++fetch_sse(struct fetch_context *context, struct value *value, size_t sz) |
|
222 |
++{ |
|
223 |
++ unsigned char *buf = value_reserve(value, sz); |
|
224 |
++ if (buf == NULL) |
|
225 |
++ return -1; |
|
226 |
++ |
|
227 |
++ fetch_next_sse(context, buf, sz); |
|
228 |
++ return 0; |
|
229 |
++} |
|
230 |
++ |
|
231 |
++static int |
|
232 |
++fetch_hfa(struct fetch_context *context, |
|
233 |
++ struct value *value, struct arg_type_info *hfa_t, size_t count) |
|
234 |
++{ |
|
235 |
++ size_t sz = type_sizeof(value->inferior, hfa_t); |
|
236 |
++ unsigned char *buf = value_reserve(value, sz * count); |
|
237 |
++ if (buf == NULL) |
|
238 |
++ return -1; |
|
239 |
++ |
|
240 |
++ size_t i; |
|
241 |
++ for (i = 0; i < count; ++i) { |
|
242 |
++ fetch_next_sse(context, buf, sz); |
|
243 |
++ buf += sz; |
|
244 |
++ } |
|
245 |
++ return 0; |
|
246 |
++} |
|
247 |
++ |
|
248 |
++static int |
|
249 |
++fetch_stack(struct fetch_context *context, struct value *value, |
|
250 |
++ size_t align, size_t sz) |
|
251 |
++{ |
|
252 |
++ if (align < 8) |
|
253 |
++ align = 8; |
|
254 |
++ size_t amount = ((sz + align - 1) / align) * align; |
|
255 |
++ |
|
256 |
++ /* XXX double casts */ |
|
257 |
++ uintptr_t sp = (uintptr_t) context->nsaa; |
|
258 |
++ sp = ((sp + align - 1) / align) * align; |
|
259 |
++ |
|
260 |
++ value_in_inferior(value, (arch_addr_t) sp); |
|
261 |
++ |
|
262 |
++ sp += amount; |
|
263 |
++ context->nsaa = (arch_addr_t) sp; |
|
264 |
++ |
|
265 |
++ return 0; |
|
266 |
++} |
|
267 |
++ |
|
268 |
++enum convert_method { |
|
269 |
++ CVT_ERR = -1, |
|
270 |
++ CVT_NOP = 0, |
|
271 |
++ CVT_BYREF, |
|
272 |
++}; |
|
273 |
++ |
|
274 |
++enum fetch_method { |
|
275 |
++ FETCH_NOP, |
|
276 |
++ FETCH_STACK, |
|
277 |
++ FETCH_GPR, |
|
278 |
++ FETCH_SSE, |
|
279 |
++ FETCH_HFA, |
|
280 |
++}; |
|
281 |
++ |
|
282 |
++struct fetch_script { |
|
283 |
++ enum convert_method c; |
|
284 |
++ enum fetch_method f; |
|
285 |
++ size_t sz; |
|
286 |
++ struct arg_type_info *hfa_t; |
|
287 |
++ size_t count; |
|
288 |
++}; |
|
289 |
++ |
|
290 |
++static struct fetch_script |
|
291 |
++pass_arg(struct fetch_context const *context, |
|
292 |
++ struct Process *proc, struct arg_type_info *info) |
|
293 |
++{ |
|
294 |
++ enum fetch_method cvt = CVT_NOP; |
|
295 |
++ |
|
296 |
++ size_t sz = type_sizeof(proc, info); |
|
297 |
++ if (sz == (size_t) -1) |
|
298 |
++ return (struct fetch_script) { CVT_ERR, FETCH_NOP, sz }; |
|
299 |
++ |
|
300 |
++ switch (info->type) { |
|
301 |
++ case ARGTYPE_VOID: |
|
302 |
++ return (struct fetch_script) { cvt, FETCH_NOP, sz }; |
|
303 |
++ |
|
304 |
++ case ARGTYPE_STRUCT: |
|
305 |
++ case ARGTYPE_ARRAY:; |
|
306 |
++ size_t count; |
|
307 |
++ struct arg_type_info *hfa_t = type_get_hfa_type(info, &count); |
|
308 |
++ if (hfa_t != NULL && count <= 4) { |
|
309 |
++ if (context->nsrn + count <= 8) |
|
310 |
++ return (struct fetch_script) |
|
311 |
++ { cvt, FETCH_HFA, sz, hfa_t, count }; |
|
312 |
++ return (struct fetch_script) |
|
313 |
++ { cvt, FETCH_STACK, sz, hfa_t, count }; |
|
314 |
++ } |
|
315 |
++ |
|
316 |
++ if (sz <= 16) { |
|
317 |
++ size_t count = sz / 8; |
|
318 |
++ if (context->ngrn + count <= 8) |
|
319 |
++ return (struct fetch_script) |
|
320 |
++ { cvt, FETCH_GPR, sz }; |
|
321 |
++ } |
|
322 |
++ |
|
323 |
++ cvt = CVT_BYREF; |
|
324 |
++ sz = 8; |
|
325 |
++ /* Fall through. */ |
|
326 |
++ |
|
327 |
++ case ARGTYPE_POINTER: |
|
328 |
++ case ARGTYPE_INT: |
|
329 |
++ case ARGTYPE_UINT: |
|
330 |
++ case ARGTYPE_LONG: |
|
331 |
++ case ARGTYPE_ULONG: |
|
332 |
++ case ARGTYPE_CHAR: |
|
333 |
++ case ARGTYPE_SHORT: |
|
334 |
++ case ARGTYPE_USHORT: |
|
335 |
++ if (context->ngrn < 8 && sz <= 8) |
|
336 |
++ return (struct fetch_script) { cvt, FETCH_GPR, sz }; |
|
337 |
++ /* We don't support types wider than 8 bytes as of |
|
338 |
++ * now. */ |
|
339 |
++ assert(sz <= 8); |
|
340 |
++ |
|
341 |
++ return (struct fetch_script) { cvt, FETCH_STACK, sz }; |
|
342 |
++ |
|
343 |
++ case ARGTYPE_FLOAT: |
|
344 |
++ case ARGTYPE_DOUBLE: |
|
345 |
++ if (context->nsrn < 8) { |
|
346 |
++ /* ltrace doesn't support float128. */ |
|
347 |
++ assert(sz <= 8); |
|
348 |
++ return (struct fetch_script) { cvt, FETCH_SSE, sz }; |
|
349 |
++ } |
|
350 |
++ |
|
351 |
++ return (struct fetch_script) { cvt, FETCH_STACK, sz }; |
|
352 |
++ } |
|
353 |
++ |
|
354 |
++ assert(! "Failed to allocate argument."); |
|
355 |
++ abort(); |
|
356 |
++} |
|
357 |
++ |
|
358 |
++static int |
|
359 |
++convert_arg(struct value *value, struct fetch_script how) |
|
360 |
++{ |
|
361 |
++ switch (how.c) { |
|
362 |
++ case CVT_NOP: |
|
363 |
++ return 0; |
|
364 |
++ case CVT_BYREF: |
|
365 |
++ return value_pass_by_reference(value); |
|
366 |
++ case CVT_ERR: |
|
367 |
++ return -1; |
|
368 |
++ } |
|
369 |
++ |
|
370 |
++ assert(! "Don't know how to convert argument."); |
|
371 |
++ abort(); |
|
372 |
++} |
|
373 |
++ |
|
374 |
++static int |
|
375 |
++fetch_arg(struct fetch_context *context, |
|
376 |
++ struct Process *proc, struct arg_type_info *info, |
|
377 |
++ struct value *value, struct fetch_script how) |
|
378 |
++{ |
|
379 |
++ if (convert_arg(value, how) < 0) |
|
380 |
++ return -1; |
|
381 |
++ |
|
382 |
++ switch (how.f) { |
|
383 |
++ case FETCH_NOP: |
|
384 |
++ return 0; |
|
385 |
++ |
|
386 |
++ case FETCH_STACK: |
|
387 |
++ if (how.hfa_t != NULL && how.count != 0 && how.count <= 8) |
|
388 |
++ context->nsrn = 8; |
|
389 |
++ return fetch_stack(context, value, |
|
390 |
++ type_alignof(proc, info), how.sz); |
|
391 |
++ |
|
392 |
++ case FETCH_GPR: |
|
393 |
++ return fetch_gpr(context, value, how.sz); |
|
394 |
++ |
|
395 |
++ case FETCH_SSE: |
|
396 |
++ return fetch_sse(context, value, how.sz); |
|
397 |
++ |
|
398 |
++ case FETCH_HFA: |
|
399 |
++ return fetch_hfa(context, value, how.hfa_t, how.count); |
|
400 |
++ } |
|
401 |
++ |
|
402 |
++ assert(! "Don't know how to fetch argument."); |
|
403 |
++ abort(); |
|
404 |
++} |
|
405 |
++ |
|
406 |
++struct fetch_context * |
|
407 |
++arch_fetch_arg_init(enum tof type, struct Process *proc, |
|
408 |
++ struct arg_type_info *ret_info) |
|
409 |
++{ |
|
410 |
++ struct fetch_context *context = malloc(sizeof *context); |
|
411 |
++ if (context == NULL || context_init(context, proc) < 0) { |
|
412 |
++ fail: |
|
413 |
++ free(context); |
|
414 |
++ return NULL; |
|
415 |
++ } |
|
416 |
++ |
|
417 |
++ /* There's a provision in ARMv8 parameter passing convention |
|
418 |
++ * for returning types that, if passed as first argument to a |
|
419 |
++ * function, would be passed on stack. For those types, x8 |
|
420 |
++ * contains an address where the return argument should be |
|
421 |
++ * placed. The callee doesn't need to preserve the value of |
|
422 |
++ * x8, so we need to fetch it now. |
|
423 |
++ * |
|
424 |
++ * To my knowledge, there are currently no types where this |
|
425 |
++ * holds, but the code is here, utterly untested. */ |
|
426 |
++ |
|
427 |
++ struct fetch_script how = pass_arg(context, proc, ret_info); |
|
428 |
++ if (how.c == CVT_ERR) |
|
429 |
++ goto fail; |
|
430 |
++ if (how.c == CVT_NOP && how.f == FETCH_STACK) { |
|
431 |
++ /* XXX double cast. */ |
|
432 |
++ context->x8 = (arch_addr_t) (uintptr_t) context->gregs.regs[8]; |
|
433 |
++ /* See the comment above about the assert. */ |
|
434 |
++ assert(! "Unexpected: first argument passed on stack."); |
|
435 |
++ abort(); |
|
436 |
++ } |
|
437 |
++ |
|
438 |
++ return context; |
|
439 |
++} |
|
440 |
++ |
|
441 |
++int |
|
442 |
++arch_fetch_arg_next(struct fetch_context *context, enum tof type, |
|
443 |
++ struct Process *proc, struct arg_type_info *info, |
|
444 |
++ struct value *value) |
|
445 |
++{ |
|
446 |
++ return fetch_arg(context, proc, info, value, |
|
447 |
++ pass_arg(context, proc, info)); |
|
448 |
++} |
|
449 |
++ |
|
450 |
++int |
|
451 |
++arch_fetch_retval(struct fetch_context *context, enum tof type, |
|
452 |
++ struct Process *proc, struct arg_type_info *info, |
|
453 |
++ struct value *value) |
|
454 |
++{ |
|
455 |
++ if (context->x8 != 0) { |
|
456 |
++ value_in_inferior(value, context->x8); |
|
457 |
++ return 0; |
|
458 |
++ } |
|
459 |
++ |
|
460 |
++ if (context_init(context, proc) < 0) |
|
461 |
++ return -1; |
|
462 |
++ |
|
463 |
++ return fetch_arg(context, proc, info, value, |
|
464 |
++ pass_arg(context, proc, info)); |
|
465 |
++} |
|
466 |
++ |
|
467 |
++void |
|
468 |
++arch_fetch_arg_done(struct fetch_context *context) |
|
469 |
++{ |
|
470 |
++ if (context != NULL) |
|
471 |
++ free(context); |
|
472 |
++} |
|
473 |
++ |
|
474 |
++size_t |
|
475 |
++arch_type_sizeof(struct Process *proc, struct arg_type_info *arg) |
|
476 |
++{ |
|
477 |
++ return (size_t) -2; |
|
478 |
++} |
|
479 |
++ |
|
480 |
++size_t |
|
481 |
++arch_type_alignof(struct Process *proc, struct arg_type_info *arg) |
|
482 |
++{ |
|
483 |
++ return (size_t) -2; |
|
484 |
++} |
|
485 |
+Index: ltrace/sysdeps/linux-gnu/aarch64/plt.c |
|
486 |
+=================================================================== |
|
487 |
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
|
488 |
+@@ -0,0 +1,38 @@ |
|
489 |
++/* |
|
490 |
++ * This file is part of ltrace. |
|
491 |
++ * Copyright (C) 2014 Petr Machata, Red Hat, Inc. |
|
492 |
++ * |
|
493 |
++ * This program is free software; you can redistribute it and/or |
|
494 |
++ * modify it under the terms of the GNU General Public License as |
|
495 |
++ * published by the Free Software Foundation; either version 2 of the |
|
496 |
++ * License, or (at your option) any later version. |
|
497 |
++ * |
|
498 |
++ * This program is distributed in the hope that it will be useful, but |
|
499 |
++ * WITHOUT ANY WARRANTY; without even the implied warranty of |
|
500 |
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
|
501 |
++ * General Public License for more details. |
|
502 |
++ * |
|
503 |
++ * You should have received a copy of the GNU General Public License |
|
504 |
++ * along with this program; if not, write to the Free Software |
|
505 |
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA |
|
506 |
++ * 02110-1301 USA |
|
507 |
++ */ |
|
508 |
++ |
|
509 |
++#include <gelf.h> |
|
510 |
++ |
|
511 |
++#include "backend.h" |
|
512 |
++#include "proc.h" |
|
513 |
++#include "library.h" |
|
514 |
++#include "ltrace-elf.h" |
|
515 |
++ |
|
516 |
++arch_addr_t |
|
517 |
++sym2addr(struct Process *proc, struct library_symbol *sym) |
|
518 |
++{ |
|
519 |
++ return sym->enter_addr; |
|
520 |
++} |
|
521 |
++ |
|
522 |
++GElf_Addr |
|
523 |
++arch_plt_sym_val(struct ltelf *lte, size_t ndx, GElf_Rela *rela) |
|
524 |
++{ |
|
525 |
++ return lte->plt_addr + 32 + ndx * 16; |
|
526 |
++} |
|
527 |
+Index: ltrace/sysdeps/linux-gnu/aarch64/ptrace.h |
|
528 |
+=================================================================== |
|
529 |
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
|
530 |
+@@ -0,0 +1,22 @@ |
|
531 |
++/* |
|
532 |
++ * This file is part of ltrace. |
|
533 |
++ * Copyright (C) 2014 Petr Machata, Red Hat, Inc. |
|
534 |
++ * |
|
535 |
++ * This program is free software; you can redistribute it and/or |
|
536 |
++ * modify it under the terms of the GNU General Public License as |
|
537 |
++ * published by the Free Software Foundation; either version 2 of the |
|
538 |
++ * License, or (at your option) any later version. |
|
539 |
++ * |
|
540 |
++ * This program is distributed in the hope that it will be useful, but |
|
541 |
++ * WITHOUT ANY WARRANTY; without even the implied warranty of |
|
542 |
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
|
543 |
++ * General Public License for more details. |
|
544 |
++ * |
|
545 |
++ * You should have received a copy of the GNU General Public License |
|
546 |
++ * along with this program; if not, write to the Free Software |
|
547 |
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA |
|
548 |
++ * 02110-1301 USA |
|
549 |
++ */ |
|
550 |
++ |
|
551 |
++#include <sys/ptrace.h> |
|
552 |
++#include <asm/ptrace.h> |
|
553 |
+Index: ltrace/sysdeps/linux-gnu/aarch64/regs.c |
|
554 |
+=================================================================== |
|
555 |
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
|
556 |
+@@ -0,0 +1,130 @@ |
|
557 |
++/* |
|
558 |
++ * This file is part of ltrace. |
|
559 |
++ * Copyright (C) 2014 Petr Machata, Red Hat, Inc. |
|
560 |
++ * |
|
561 |
++ * This program is free software; you can redistribute it and/or |
|
562 |
++ * modify it under the terms of the GNU General Public License as |
|
563 |
++ * published by the Free Software Foundation; either version 2 of the |
|
564 |
++ * License, or (at your option) any later version. |
|
565 |
++ * |
|
566 |
++ * This program is distributed in the hope that it will be useful, but |
|
567 |
++ * WITHOUT ANY WARRANTY; without even the implied warranty of |
|
568 |
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
|
569 |
++ * General Public License for more details. |
|
570 |
++ * |
|
571 |
++ * You should have received a copy of the GNU General Public License |
|
572 |
++ * along with this program; if not, write to the Free Software |
|
573 |
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA |
|
574 |
++ * 02110-1301 USA |
|
575 |
++ */ |
|
576 |
++ |
|
577 |
++#include <sys/ptrace.h> |
|
578 |
++#include <asm/ptrace.h> |
|
579 |
++#include <linux/uio.h> |
|
580 |
++#include <assert.h> |
|
581 |
++#include <stdlib.h> |
|
582 |
++ |
|
583 |
++#include "backend.h" |
|
584 |
++#include "proc.h" |
|
585 |
++ |
|
586 |
++#define PC_OFF (32 * 4) |
|
587 |
++ |
|
588 |
++int |
|
589 |
++aarch64_read_gregs(struct Process *proc, struct user_pt_regs *regs) |
|
590 |
++{ |
|
591 |
++ *regs = (struct user_pt_regs) {}; |
|
592 |
++ struct iovec iovec; |
|
593 |
++ iovec.iov_base = regs; |
|
594 |
++ iovec.iov_len = sizeof *regs; |
|
595 |
++ return ptrace(PTRACE_GETREGSET, proc->pid, NT_PRSTATUS, &iovec) < 0 |
|
596 |
++ ? -1 : 0; |
|
597 |
++} |
|
598 |
++ |
|
599 |
++int |
|
600 |
++aarch64_write_gregs(struct Process *proc, struct user_pt_regs *regs) |
|
601 |
++{ |
|
602 |
++ struct iovec iovec; |
|
603 |
++ iovec.iov_base = regs; |
|
604 |
++ iovec.iov_len = sizeof *regs; |
|
605 |
++ return ptrace(PTRACE_SETREGSET, proc->pid, NT_PRSTATUS, &iovec) < 0 |
|
606 |
++ ? -1 : 0; |
|
607 |
++} |
|
608 |
++ |
|
609 |
++int |
|
610 |
++aarch64_read_fregs(struct Process *proc, struct user_fpsimd_state *regs) |
|
611 |
++{ |
|
612 |
++ *regs = (struct user_fpsimd_state) {}; |
|
613 |
++ struct iovec iovec; |
|
614 |
++ iovec.iov_base = regs; |
|
615 |
++ iovec.iov_len = sizeof *regs; |
|
616 |
++ return ptrace(PTRACE_GETREGSET, proc->pid, NT_FPREGSET, &iovec) < 0 |
|
617 |
++ ? -1 : 0; |
|
618 |
++} |
|
619 |
++ |
|
620 |
++arch_addr_t |
|
621 |
++get_instruction_pointer(struct Process *proc) |
|
622 |
++{ |
|
623 |
++ struct user_pt_regs regs; |
|
624 |
++ if (aarch64_read_gregs(proc, ®s) < 0) { |
|
625 |
++ fprintf(stderr, "get_instruction_pointer: " |
|
626 |
++ "Couldn't read registers of %d.\n", proc->pid); |
|
627 |
++ return 0; |
|
628 |
++ } |
|
629 |
++ |
|
630 |
++ /* |
|
631 |
++ char buf[128]; |
|
632 |
++ sprintf(buf, "cat /proc/%d/maps", proc->pid); |
|
633 |
++ system(buf); |
|
634 |
++ */ |
|
635 |
++ |
|
636 |
++ /* XXX double cast */ |
|
637 |
++ return (arch_addr_t) (uintptr_t) regs.pc; |
|
638 |
++} |
|
639 |
++ |
|
640 |
++void |
|
641 |
++set_instruction_pointer(struct Process *proc, arch_addr_t addr) |
|
642 |
++{ |
|
643 |
++ struct user_pt_regs regs; |
|
644 |
++ if (aarch64_read_gregs(proc, ®s) < 0) { |
|
645 |
++ fprintf(stderr, "get_instruction_pointer: " |
|
646 |
++ "Couldn't read registers of %d.\n", proc->pid); |
|
647 |
++ return; |
|
648 |
++ } |
|
649 |
++ |
|
650 |
++ /* XXX double cast */ |
|
651 |
++ regs.pc = (uint64_t) (uintptr_t) addr; |
|
652 |
++ |
|
653 |
++ if (aarch64_write_gregs(proc, ®s) < 0) { |
|
654 |
++ fprintf(stderr, "get_instruction_pointer: " |
|
655 |
++ "Couldn't write registers of %d.\n", proc->pid); |
|
656 |
++ return; |
|
657 |
++ } |
|
658 |
++} |
|
659 |
++ |
|
660 |
++arch_addr_t |
|
661 |
++get_stack_pointer(struct Process *proc) |
|
662 |
++{ |
|
663 |
++ struct user_pt_regs regs; |
|
664 |
++ if (aarch64_read_gregs(proc, ®s) < 0) { |
|
665 |
++ fprintf(stderr, "get_stack_pointer: " |
|
666 |
++ "Couldn't read registers of %d.\n", proc->pid); |
|
667 |
++ return 0; |
|
668 |
++ } |
|
669 |
++ |
|
670 |
++ /* XXX double cast */ |
|
671 |
++ return (arch_addr_t) (uintptr_t) regs.sp; |
|
672 |
++} |
|
673 |
++ |
|
674 |
++arch_addr_t |
|
675 |
++get_return_addr(struct Process *proc, arch_addr_t stack_pointer) |
|
676 |
++{ |
|
677 |
++ struct user_pt_regs regs; |
|
678 |
++ if (aarch64_read_gregs(proc, ®s) < 0) { |
|
679 |
++ fprintf(stderr, "get_return_addr: " |
|
680 |
++ "Couldn't read registers of %d.\n", proc->pid); |
|
681 |
++ return 0; |
|
682 |
++ } |
|
683 |
++ |
|
684 |
++ /* XXX double cast */ |
|
685 |
++ return (arch_addr_t) (uintptr_t) regs.regs[30]; |
|
686 |
++} |
|
687 |
+Index: ltrace/sysdeps/linux-gnu/aarch64/signalent.h |
|
688 |
+=================================================================== |
|
689 |
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
|
690 |
+@@ -0,0 +1,52 @@ |
|
691 |
++/* |
|
692 |
++ * This file is part of ltrace. |
|
693 |
++ * Copyright (C) 2006 Ian Wienand |
|
694 |
++ * |
|
695 |
++ * This program is free software; you can redistribute it and/or |
|
696 |
++ * modify it under the terms of the GNU General Public License as |
|
697 |
++ * published by the Free Software Foundation; either version 2 of the |
|
698 |
++ * License, or (at your option) any later version. |
|
699 |
++ * |
|
700 |
++ * This program is distributed in the hope that it will be useful, but |
|
701 |
++ * WITHOUT ANY WARRANTY; without even the implied warranty of |
|
702 |
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
|
703 |
++ * General Public License for more details. |
|
704 |
++ * |
|
705 |
++ * You should have received a copy of the GNU General Public License |
|
706 |
++ * along with this program; if not, write to the Free Software |
|
707 |
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA |
|
708 |
++ * 02110-1301 USA |
|
709 |
++ */ |
|
710 |
++ |
|
711 |
++ "SIG_0", /* 0 */ |
|
712 |
++ "SIGHUP", /* 1 */ |
|
713 |
++ "SIGINT", /* 2 */ |
|
714 |
++ "SIGQUIT", /* 3 */ |
|
715 |
++ "SIGILL", /* 4 */ |
|
716 |
++ "SIGTRAP", /* 5 */ |
|
717 |
++ "SIGABRT", /* 6 */ |
|
718 |
++ "SIGBUS", /* 7 */ |
|
719 |
++ "SIGFPE", /* 8 */ |
|
720 |
++ "SIGKILL", /* 9 */ |
|
721 |
++ "SIGUSR1", /* 10 */ |
|
722 |
++ "SIGSEGV", /* 11 */ |
|
723 |
++ "SIGUSR2", /* 12 */ |
|
724 |
++ "SIGPIPE", /* 13 */ |
|
725 |
++ "SIGALRM", /* 14 */ |
|
726 |
++ "SIGTERM", /* 15 */ |
|
727 |
++ "SIGSTKFLT", /* 16 */ |
|
728 |
++ "SIGCHLD", /* 17 */ |
|
729 |
++ "SIGCONT", /* 18 */ |
|
730 |
++ "SIGSTOP", /* 19 */ |
|
731 |
++ "SIGTSTP", /* 20 */ |
|
732 |
++ "SIGTTIN", /* 21 */ |
|
733 |
++ "SIGTTOU", /* 22 */ |
|
734 |
++ "SIGURG", /* 23 */ |
|
735 |
++ "SIGXCPU", /* 24 */ |
|
736 |
++ "SIGXFSZ", /* 25 */ |
|
737 |
++ "SIGVTALRM", /* 26 */ |
|
738 |
++ "SIGPROF", /* 27 */ |
|
739 |
++ "SIGWINCH", /* 28 */ |
|
740 |
++ "SIGIO", /* 29 */ |
|
741 |
++ "SIGPWR", /* 30 */ |
|
742 |
++ "SIGSYS", /* 31 */ |
|
743 |
+Index: ltrace/sysdeps/linux-gnu/aarch64/syscallent.h |
|
744 |
+=================================================================== |
|
745 |
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
|
746 |
+@@ -0,0 +1,1100 @@ |
|
747 |
++/* |
|
748 |
++ * This file is part of ltrace. |
|
749 |
++ * Copyright (C) 2014 Petr Machata, Red Hat, Inc. |
|
750 |
++ * |
|
751 |
++ * This program is free software; you can redistribute it and/or |
|
752 |
++ * modify it under the terms of the GNU General Public License as |
|
753 |
++ * published by the Free Software Foundation; either version 2 of the |
|
754 |
++ * License, or (at your option) any later version. |
|
755 |
++ * |
|
756 |
++ * This program is distributed in the hope that it will be useful, but |
|
757 |
++ * WITHOUT ANY WARRANTY; without even the implied warranty of |
|
758 |
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
|
759 |
++ * General Public License for more details. |
|
760 |
++ * |
|
761 |
++ * You should have received a copy of the GNU General Public License |
|
762 |
++ * along with this program; if not, write to the Free Software |
|
763 |
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA |
|
764 |
++ * 02110-1301 USA |
|
765 |
++ */ |
|
766 |
++ |
|
767 |
++ "io_setup", /* 0 */ |
|
768 |
++ "io_destroy", /* 1 */ |
|
769 |
++ "io_submit", /* 2 */ |
|
770 |
++ "io_cancel", /* 3 */ |
|
771 |
++ "io_getevents", /* 4 */ |
|
772 |
++ "setxattr", /* 5 */ |
|
773 |
++ "lsetxattr", /* 6 */ |
|
774 |
++ "fsetxattr", /* 7 */ |
|
775 |
++ "getxattr", /* 8 */ |
|
776 |
++ "lgetxattr", /* 9 */ |
|
777 |
++ "fgetxattr", /* 10 */ |
|
778 |
++ "listxattr", /* 11 */ |
|
779 |
++ "llistxattr", /* 12 */ |
|
780 |
++ "flistxattr", /* 13 */ |
|
781 |
++ "removexattr", /* 14 */ |
|
782 |
++ "lremovexattr", /* 15 */ |
|
783 |
++ "fremovexattr", /* 16 */ |
|
784 |
++ "getcwd", /* 17 */ |
|
785 |
++ "lookup_dcookie", /* 18 */ |
|
786 |
++ "eventfd2", /* 19 */ |
|
787 |
++ "epoll_create1", /* 20 */ |
|
788 |
++ "epoll_ctl", /* 21 */ |
|
789 |
++ "epoll_pwait", /* 22 */ |
|
790 |
++ "dup", /* 23 */ |
|
791 |
++ "dup3", /* 24 */ |
|
792 |
++ "fcntl", /* 25 */ |
|
793 |
++ "inotify_init1", /* 26 */ |
|
794 |
++ "inotify_add_watch", /* 27 */ |
|
795 |
++ "inotify_rm_watch", /* 28 */ |
|
796 |
++ "ioctl", /* 29 */ |
|
797 |
++ "ioprio_set", /* 30 */ |
|
798 |
++ "ioprio_get", /* 31 */ |
|
799 |
++ "flock", /* 32 */ |
|
800 |
++ "mknodat", /* 33 */ |
|
801 |
++ "mkdirat", /* 34 */ |
|
802 |
++ "unlinkat", /* 35 */ |
|
803 |
++ "symlinkat", /* 36 */ |
|
804 |
++ "linkat", /* 37 */ |
|
805 |
++ "renameat", /* 38 */ |
|
806 |
++ "umount2", /* 39 */ |
|
807 |
++ "mount", /* 40 */ |
|
808 |
++ "pivot_root", /* 41 */ |
|
809 |
++ "nfsservctl", /* 42 */ |
|
810 |
++ "statfs", /* 43 */ |
|
811 |
++ "fstatfs", /* 44 */ |
|
812 |
++ "truncate", /* 45 */ |
|
813 |
++ "ftruncate", /* 46 */ |
|
814 |
++ "fallocate", /* 47 */ |
|
815 |
++ "faccessat", /* 48 */ |
|
816 |
++ "chdir", /* 49 */ |
|
817 |
++ "fchdir", /* 50 */ |
|
818 |
++ "chroot", /* 51 */ |
|
819 |
++ "fchmod", /* 52 */ |
|
820 |
++ "fchmodat", /* 53 */ |
|
821 |
++ "fchownat", /* 54 */ |
|
822 |
++ "fchown", /* 55 */ |
|
823 |
++ "openat", /* 56 */ |
|
824 |
++ "close", /* 57 */ |
|
825 |
++ "vhangup", /* 58 */ |
|
826 |
++ "pipe2", /* 59 */ |
|
827 |
++ "quotactl", /* 60 */ |
|
828 |
++ "getdents64", /* 61 */ |
|
829 |
++ "lseek", /* 62 */ |
|
830 |
++ "read", /* 63 */ |
|
831 |
++ "write", /* 64 */ |
|
832 |
++ "readv", /* 65 */ |
|
833 |
++ "writev", /* 66 */ |
|
834 |
++ "pread64", /* 67 */ |
|
835 |
++ "pwrite64", /* 68 */ |
|
836 |
++ "preadv", /* 69 */ |
|
837 |
++ "pwritev", /* 70 */ |
|
838 |
++ "sendfile", /* 71 */ |
|
839 |
++ "pselect6", /* 72 */ |
|
840 |
++ "ppoll", /* 73 */ |
|
841 |
++ "signalfd4", /* 74 */ |
|
842 |
++ "vmsplice", /* 75 */ |
|
843 |
++ "splice", /* 76 */ |
|
844 |
++ "tee", /* 77 */ |
|
845 |
++ "readlinkat", /* 78 */ |
|
846 |
++ "fstatat", /* 79 */ |
|
847 |
++ "fstat", /* 80 */ |
|
848 |
++ "sync", /* 81 */ |
|
849 |
++ "fsync", /* 82 */ |
|
850 |
++ "fdatasync", /* 83 */ |
|
851 |
++ "sync_file_range", /* 84 */ |
|
852 |
++ "timerfd_create", /* 85 */ |
|
853 |
++ "timerfd_settime", /* 86 */ |
|
854 |
++ "timerfd_gettime", /* 87 */ |
|
855 |
++ "utimensat", /* 88 */ |
|
856 |
++ "acct", /* 89 */ |
|
857 |
++ "capget", /* 90 */ |
|
858 |
++ "capset", /* 91 */ |
|
859 |
++ "personality", /* 92 */ |
|
860 |
++ "exit", /* 93 */ |
|
861 |
++ "exit_group", /* 94 */ |
|
862 |
++ "waitid", /* 95 */ |
|
863 |
++ "set_tid_address", /* 96 */ |
|
864 |
++ "unshare", /* 97 */ |
|
865 |
++ "futex", /* 98 */ |
|
866 |
++ "set_robust_list", /* 99 */ |
|
867 |
++ "get_robust_list", /* 100 */ |
|
868 |
++ "nanosleep", /* 101 */ |
|
869 |
++ "getitimer", /* 102 */ |
|
870 |
++ "setitimer", /* 103 */ |
|
871 |
++ "kexec_load", /* 104 */ |
|
872 |
++ "init_module", /* 105 */ |
|
873 |
++ "delete_module", /* 106 */ |
|
874 |
++ "timer_create", /* 107 */ |
|
875 |
++ "timer_gettime", /* 108 */ |
|
876 |
++ "timer_getoverrun", /* 109 */ |
|
877 |
++ "timer_settime", /* 110 */ |
|
878 |
++ "timer_delete", /* 111 */ |
|
879 |
++ "clock_settime", /* 112 */ |
|
880 |
++ "clock_gettime", /* 113 */ |
|
881 |
++ "clock_getres", /* 114 */ |
|
882 |
++ "clock_nanosleep", /* 115 */ |
|
883 |
++ "syslog", /* 116 */ |
|
884 |
++ "ptrace", /* 117 */ |
|
885 |
++ "sched_setparam", /* 118 */ |
|
886 |
++ "sched_setscheduler", /* 119 */ |
|
887 |
++ "sched_getscheduler", /* 120 */ |
|
888 |
++ "sched_getparam", /* 121 */ |
|
889 |
++ "sched_setaffinity", /* 122 */ |
|
890 |
++ "sched_getaffinity", /* 123 */ |
|
891 |
++ "sched_yield", /* 124 */ |
|
892 |
++ "sched_get_priority_max", /* 125 */ |
|
893 |
++ "sched_get_priority_min", /* 126 */ |
|
894 |
++ "sched_rr_get_interval", /* 127 */ |
|
895 |
++ "restart_syscall", /* 128 */ |
|
896 |
++ "kill", /* 129 */ |
|
897 |
++ "tkill", /* 130 */ |
|
898 |
++ "tgkill", /* 131 */ |
|
899 |
++ "sigaltstack", /* 132 */ |
|
900 |
++ "rt_sigsuspend", /* 133 */ |
|
901 |
++ "rt_sigaction", /* 134 */ |
|
902 |
++ "rt_sigprocmask", /* 135 */ |
|
903 |
++ "rt_sigpending", /* 136 */ |
|
904 |
++ "rt_sigtimedwait", /* 137 */ |
|
905 |
++ "rt_sigqueueinfo", /* 138 */ |
|
906 |
++ "rt_sigreturn", /* 139 */ |
|
907 |
++ "setpriority", /* 140 */ |
|
908 |
++ "getpriority", /* 141 */ |
|
909 |
++ "reboot", /* 142 */ |
|
910 |
++ "setregid", /* 143 */ |
|
911 |
++ "setgid", /* 144 */ |
|
912 |
++ "setreuid", /* 145 */ |
|
913 |
++ "setuid", /* 146 */ |
|
914 |
++ "setresuid", /* 147 */ |
|
915 |
++ "getresuid", /* 148 */ |
|
916 |
++ "setresgid", /* 149 */ |
|
917 |
++ "getresgid", /* 150 */ |
|
918 |
++ "setfsuid", /* 151 */ |
|
919 |
++ "setfsgid", /* 152 */ |
|
920 |
++ "times", /* 153 */ |
|
921 |
++ "setpgid", /* 154 */ |
|
922 |
++ "getpgid", /* 155 */ |
|
923 |
++ "getsid", /* 156 */ |
|
924 |
++ "setsid", /* 157 */ |
|
925 |
++ "getgroups", /* 158 */ |
|
926 |
++ "setgroups", /* 159 */ |
|
927 |
++ "uname", /* 160 */ |
|
928 |
++ "sethostname", /* 161 */ |
|
929 |
++ "setdomainname", /* 162 */ |
|
930 |
++ "getrlimit", /* 163 */ |
|
931 |
++ "setrlimit", /* 164 */ |
|
932 |
++ "getrusage", /* 165 */ |
|
933 |
++ "umask", /* 166 */ |
|
934 |
++ "prctl", /* 167 */ |
|
935 |
++ "getcpu", /* 168 */ |
|
936 |
++ "gettimeofday", /* 169 */ |
|
937 |
++ "settimeofday", /* 170 */ |
|
938 |
++ "adjtimex", /* 171 */ |
|
939 |
++ "getpid", /* 172 */ |
|
940 |
++ "getppid", /* 173 */ |
|
941 |
++ "getuid", /* 174 */ |
|
942 |
++ "geteuid", /* 175 */ |
|
943 |
++ "getgid", /* 176 */ |
|
944 |
++ "getegid", /* 177 */ |
|
945 |
++ "gettid", /* 178 */ |
|
946 |
++ "sysinfo", /* 179 */ |
|
947 |
++ "mq_open", /* 180 */ |
|
948 |
++ "mq_unlink", /* 181 */ |
|
949 |
++ "mq_timedsend", /* 182 */ |
|
950 |
++ "mq_timedreceive", /* 183 */ |
|
951 |
++ "mq_notify", /* 184 */ |
|
952 |
++ "mq_getsetattr", /* 185 */ |
|
953 |
++ "msgget", /* 186 */ |
|
954 |
++ "msgctl", /* 187 */ |
|
955 |
++ "msgrcv", /* 188 */ |
|
956 |
++ "msgsnd", /* 189 */ |
|
957 |
++ "semget", /* 190 */ |
|
958 |
++ "semctl", /* 191 */ |
|
959 |
++ "semtimedop", /* 192 */ |
|
960 |
++ "semop", /* 193 */ |
|
961 |
++ "shmget", /* 194 */ |
|
962 |
++ "shmctl", /* 195 */ |
|
963 |
++ "shmat", /* 196 */ |
|
964 |
++ "shmdt", /* 197 */ |
|
965 |
++ "socket", /* 198 */ |
|
966 |
++ "socketpair", /* 199 */ |
|
967 |
++ "bind", /* 200 */ |
|
968 |
++ "listen", /* 201 */ |
|
969 |
++ "accept", /* 202 */ |
|
970 |
++ "connect", /* 203 */ |
|
971 |
++ "getsockname", /* 204 */ |
|
972 |
++ "getpeername", /* 205 */ |
|
973 |
++ "sendto", /* 206 */ |
|
974 |
++ "recvfrom", /* 207 */ |
|
975 |
++ "setsockopt", /* 208 */ |
|
976 |
++ "getsockopt", /* 209 */ |
|
977 |
++ "shutdown", /* 210 */ |
|
978 |
++ "sendmsg", /* 211 */ |
|
979 |
++ "recvmsg", /* 212 */ |
|
980 |
++ "readahead", /* 213 */ |
|
981 |
++ "brk", /* 214 */ |
|
982 |
++ "munmap", /* 215 */ |
|
983 |
++ "mremap", /* 216 */ |
|
984 |
++ "add_key", /* 217 */ |
|
985 |
++ "request_key", /* 218 */ |
|
986 |
++ "keyctl", /* 219 */ |
|
987 |
++ "clone", /* 220 */ |
|
988 |
++ "execve", /* 221 */ |
|
989 |
++ "mmap", /* 222 */ |
|
990 |
++ "fadvise64", /* 223 */ |
|
991 |
++ "swapon", /* 224 */ |
|
992 |
++ "swapoff", /* 225 */ |
|
993 |
++ "mprotect", /* 226 */ |
|
994 |
++ "msync", /* 227 */ |
|
995 |
++ "mlock", /* 228 */ |
|
996 |
++ "munlock", /* 229 */ |
|
997 |
++ "mlockall", /* 230 */ |
|
998 |
++ "munlockall", /* 231 */ |
|
999 |
++ "mincore", /* 232 */ |
|
1000 |
++ "madvise", /* 233 */ |
|
1001 |
++ "remap_file_pages", /* 234 */ |
|
1002 |
++ "mbind", /* 235 */ |
|
1003 |
++ "get_mempolicy", /* 236 */ |
|
1004 |
++ "set_mempolicy", /* 237 */ |
|
1005 |
++ "migrate_pages", /* 238 */ |
|
1006 |
++ "move_pages", /* 239 */ |
|
1007 |
++ "rt_tgsigqueueinfo", /* 240 */ |
|
1008 |
++ "perf_event_open", /* 241 */ |
|
1009 |
++ "accept4", /* 242 */ |
|
1010 |
++ "recvmmsg", /* 243 */ |
|
1011 |
++ "arch_specific_syscall", /* 244 */ |
|
1012 |
++ "245", /* 245 */ |
|
1013 |
++ "246", /* 246 */ |
|
1014 |
++ "247", /* 247 */ |
|
1015 |
++ "248", /* 248 */ |
|
1016 |
++ "249", /* 249 */ |
|
1017 |
++ "250", /* 250 */ |
|
1018 |
++ "251", /* 251 */ |
|
1019 |
++ "252", /* 252 */ |
|
1020 |
++ "253", /* 253 */ |
|
1021 |
++ "254", /* 254 */ |
|
1022 |
++ "255", /* 255 */ |
|
1023 |
++ "256", /* 256 */ |
|
1024 |
++ "257", /* 257 */ |
|
1025 |
++ "258", /* 258 */ |
|
1026 |
++ "259", /* 259 */ |
|
1027 |
++ "wait4", /* 260 */ |
|
1028 |
++ "prlimit64", /* 261 */ |
|
1029 |
++ "fanotify_init", /* 262 */ |
|
1030 |
++ "fanotify_mark", /* 263 */ |
|
1031 |
++ "name_to_handle_at", /* 264 */ |
|
1032 |
++ "open_by_handle_at", /* 265 */ |
|
1033 |
++ "clock_adjtime", /* 266 */ |
|
1034 |
++ "syncfs", /* 267 */ |
|
1035 |
++ "setns", /* 268 */ |
|
1036 |
++ "sendmmsg", /* 269 */ |
|
1037 |
++ "process_vm_readv", /* 270 */ |
|
1038 |
++ "process_vm_writev", /* 271 */ |
|
1039 |
++ "kcmp", /* 272 */ |
|
1040 |
++ "finit_module", /* 273 */ |
|
1041 |
++ "syscalls", /* 274 */ |
|
1042 |
++ "275", /* 275 */ |
|
1043 |
++ "276", /* 276 */ |
|
1044 |
++ "277", /* 277 */ |
|
1045 |
++ "278", /* 278 */ |
|
1046 |
++ "279", /* 279 */ |
|
1047 |
++ "280", /* 280 */ |
|
1048 |
++ "281", /* 281 */ |
|
1049 |
++ "282", /* 282 */ |
|
1050 |
++ "283", /* 283 */ |
|
1051 |
++ "284", /* 284 */ |
|
1052 |
++ "285", /* 285 */ |
|
1053 |
++ "286", /* 286 */ |
|
1054 |
++ "287", /* 287 */ |
|
1055 |
++ "288", /* 288 */ |
|
1056 |
++ "289", /* 289 */ |
|
1057 |
++ "290", /* 290 */ |
|
1058 |
++ "291", /* 291 */ |
|
1059 |
++ "292", /* 292 */ |
|
1060 |
++ "293", /* 293 */ |
|
1061 |
++ "294", /* 294 */ |
|
1062 |
++ "295", /* 295 */ |
|
1063 |
++ "296", /* 296 */ |
|
1064 |
++ "297", /* 297 */ |
|
1065 |
++ "298", /* 298 */ |
|
1066 |
++ "299", /* 299 */ |
|
1067 |
++ "300", /* 300 */ |
|
1068 |
++ "301", /* 301 */ |
|
1069 |
++ "302", /* 302 */ |
|
1070 |
++ "303", /* 303 */ |
|
1071 |
++ "304", /* 304 */ |
|
1072 |
++ "305", /* 305 */ |
|
1073 |
++ "306", /* 306 */ |
|
1074 |
++ "307", /* 307 */ |
|
1075 |
++ "308", /* 308 */ |
|
1076 |
++ "309", /* 309 */ |
|
1077 |
++ "310", /* 310 */ |
|
1078 |
++ "311", /* 311 */ |
|
1079 |
++ "312", /* 312 */ |
|
1080 |
++ "313", /* 313 */ |
|
1081 |
++ "314", /* 314 */ |
|
1082 |
++ "315", /* 315 */ |
|
1083 |
++ "316", /* 316 */ |
|
1084 |
++ "317", /* 317 */ |
|
1085 |
++ "318", /* 318 */ |
|
1086 |
++ "319", /* 319 */ |
|
1087 |
++ "320", /* 320 */ |
|
1088 |
++ "321", /* 321 */ |
|
1089 |
++ "322", /* 322 */ |
|
1090 |
++ "323", /* 323 */ |
|
1091 |
++ "324", /* 324 */ |
|
1092 |
++ "325", /* 325 */ |
|
1093 |
++ "326", /* 326 */ |
|
1094 |
++ "327", /* 327 */ |
|
1095 |
++ "328", /* 328 */ |
|
1096 |
++ "329", /* 329 */ |
|
1097 |
++ "330", /* 330 */ |
|
1098 |
++ "331", /* 331 */ |
|
1099 |
++ "332", /* 332 */ |
|
1100 |
++ "333", /* 333 */ |
|
1101 |
++ "334", /* 334 */ |
|
1102 |
++ "335", /* 335 */ |
|
1103 |
++ "336", /* 336 */ |
|
1104 |
++ "337", /* 337 */ |
|
1105 |
++ "338", /* 338 */ |
|
1106 |
++ "339", /* 339 */ |
|
1107 |
++ "340", /* 340 */ |
|
1108 |
++ "341", /* 341 */ |
|
1109 |
++ "342", /* 342 */ |
|
1110 |
++ "343", /* 343 */ |
|
1111 |
++ "344", /* 344 */ |
|
1112 |
++ "345", /* 345 */ |
|
1113 |
++ "346", /* 346 */ |
|
1114 |
++ "347", /* 347 */ |
|
1115 |
++ "348", /* 348 */ |
|
1116 |
++ "349", /* 349 */ |
|
1117 |
++ "350", /* 350 */ |
|
1118 |
++ "351", /* 351 */ |
|
1119 |
++ "352", /* 352 */ |
|
1120 |
++ "353", /* 353 */ |
|
1121 |
++ "354", /* 354 */ |
|
1122 |
++ "355", /* 355 */ |
|
1123 |
++ "356", /* 356 */ |
|
1124 |
++ "357", /* 357 */ |
|
1125 |
++ "358", /* 358 */ |
|
1126 |
++ "359", /* 359 */ |
|
1127 |
++ "360", /* 360 */ |
|
1128 |
++ "361", /* 361 */ |
|
1129 |
++ "362", /* 362 */ |
|
1130 |
++ "363", /* 363 */ |
|
1131 |
++ "364", /* 364 */ |
|
1132 |
++ "365", /* 365 */ |
|
1133 |
++ "366", /* 366 */ |
|
1134 |
++ "367", /* 367 */ |
|
1135 |
++ "368", /* 368 */ |
|
1136 |
++ "369", /* 369 */ |
|
1137 |
++ "370", /* 370 */ |
|
1138 |
++ "371", /* 371 */ |
|
1139 |
++ "372", /* 372 */ |
|
1140 |
++ "373", /* 373 */ |
|
1141 |
++ "374", /* 374 */ |
|
1142 |
++ "375", /* 375 */ |
|
1143 |
++ "376", /* 376 */ |
|
1144 |
++ "377", /* 377 */ |
|
1145 |
++ "378", /* 378 */ |
|
1146 |
++ "379", /* 379 */ |
|
1147 |
++ "380", /* 380 */ |
|
1148 |
++ "381", /* 381 */ |
|
1149 |
++ "382", /* 382 */ |
|
1150 |
++ "383", /* 383 */ |
|
1151 |
++ "384", /* 384 */ |
|
1152 |
++ "385", /* 385 */ |
|
1153 |
++ "386", /* 386 */ |
|
1154 |
++ "387", /* 387 */ |
|
1155 |
++ "388", /* 388 */ |
|
1156 |
++ "389", /* 389 */ |
|
1157 |
++ "390", /* 390 */ |
|
1158 |
++ "391", /* 391 */ |
|
1159 |
++ "392", /* 392 */ |
|
1160 |
++ "393", /* 393 */ |
|
1161 |
++ "394", /* 394 */ |
|
1162 |
++ "395", /* 395 */ |
|
1163 |
++ "396", /* 396 */ |
|
1164 |
++ "397", /* 397 */ |
|
1165 |
++ "398", /* 398 */ |
|
1166 |
++ "399", /* 399 */ |
|
1167 |
++ "400", /* 400 */ |
|
1168 |
++ "401", /* 401 */ |
|
1169 |
++ "402", /* 402 */ |
|
1170 |
++ "403", /* 403 */ |
|
1171 |
++ "404", /* 404 */ |
|
1172 |
++ "405", /* 405 */ |
|
1173 |
++ "406", /* 406 */ |
|
1174 |
++ "407", /* 407 */ |
|
1175 |
++ "408", /* 408 */ |
|
1176 |
++ "409", /* 409 */ |
|
1177 |
++ "410", /* 410 */ |
|
1178 |
++ "411", /* 411 */ |
|
1179 |
++ "412", /* 412 */ |
|
1180 |
++ "413", /* 413 */ |
|
1181 |
++ "414", /* 414 */ |
|
1182 |
++ "415", /* 415 */ |
|
1183 |
++ "416", /* 416 */ |
|
1184 |
++ "417", /* 417 */ |
|
1185 |
++ "418", /* 418 */ |
|
1186 |
++ "419", /* 419 */ |
|
1187 |
++ "420", /* 420 */ |
|
1188 |
++ "421", /* 421 */ |
|
1189 |
++ "422", /* 422 */ |
|
1190 |
++ "423", /* 423 */ |
|
1191 |
++ "424", /* 424 */ |
|
1192 |
++ "425", /* 425 */ |
|
1193 |
++ "426", /* 426 */ |
|
1194 |
++ "427", /* 427 */ |
|
1195 |
++ "428", /* 428 */ |
|
1196 |
++ "429", /* 429 */ |
|
1197 |
++ "430", /* 430 */ |
|
1198 |
++ "431", /* 431 */ |
|
1199 |
++ "432", /* 432 */ |
|
1200 |
++ "433", /* 433 */ |
|
1201 |
++ "434", /* 434 */ |
|
1202 |
++ "435", /* 435 */ |
|
1203 |
++ "436", /* 436 */ |
|
1204 |
++ "437", /* 437 */ |
|
1205 |
++ "438", /* 438 */ |
|
1206 |
++ "439", /* 439 */ |
|
1207 |
++ "440", /* 440 */ |
|
1208 |
++ "441", /* 441 */ |
|
1209 |
++ "442", /* 442 */ |
|
1210 |
++ "443", /* 443 */ |
|
1211 |
++ "444", /* 444 */ |
|
1212 |
++ "445", /* 445 */ |
|
1213 |
++ "446", /* 446 */ |
|
1214 |
++ "447", /* 447 */ |
|
1215 |
++ "448", /* 448 */ |
|
1216 |
++ "449", /* 449 */ |
|
1217 |
++ "450", /* 450 */ |
|
1218 |
++ "451", /* 451 */ |
|
1219 |
++ "452", /* 452 */ |
|
1220 |
++ "453", /* 453 */ |
|
1221 |
++ "454", /* 454 */ |
|
1222 |
++ "455", /* 455 */ |
|
1223 |
++ "456", /* 456 */ |
|
1224 |
++ "457", /* 457 */ |
|
1225 |
++ "458", /* 458 */ |
|
1226 |
++ "459", /* 459 */ |
|
1227 |
++ "460", /* 460 */ |
|
1228 |
++ "461", /* 461 */ |
|
1229 |
++ "462", /* 462 */ |
|
1230 |
++ "463", /* 463 */ |
|
1231 |
++ "464", /* 464 */ |
|
1232 |
++ "465", /* 465 */ |
|
1233 |
++ "466", /* 466 */ |
|
1234 |
++ "467", /* 467 */ |
|
1235 |
++ "468", /* 468 */ |
|
1236 |
++ "469", /* 469 */ |
|
1237 |
++ "470", /* 470 */ |
|
1238 |
++ "471", /* 471 */ |
|
1239 |
++ "472", /* 472 */ |
|
1240 |
++ "473", /* 473 */ |
|
1241 |
++ "474", /* 474 */ |
|
1242 |
++ "475", /* 475 */ |
|
1243 |
++ "476", /* 476 */ |
|
1244 |
++ "477", /* 477 */ |
|
1245 |
++ "478", /* 478 */ |
|
1246 |
++ "479", /* 479 */ |
|
1247 |
++ "480", /* 480 */ |
|
1248 |
++ "481", /* 481 */ |
|
1249 |
++ "482", /* 482 */ |
|
1250 |
++ "483", /* 483 */ |
|
1251 |
++ "484", /* 484 */ |
|
1252 |
++ "485", /* 485 */ |
|
1253 |
++ "486", /* 486 */ |
|
1254 |
++ "487", /* 487 */ |
|
1255 |
++ "488", /* 488 */ |
|
1256 |
++ "489", /* 489 */ |
|
1257 |
++ "490", /* 490 */ |
|
1258 |
++ "491", /* 491 */ |
|
1259 |
++ "492", /* 492 */ |
|
1260 |
++ "493", /* 493 */ |
|
1261 |
++ "494", /* 494 */ |
|
1262 |
++ "495", /* 495 */ |
|
1263 |
++ "496", /* 496 */ |
|
1264 |
++ "497", /* 497 */ |
|
1265 |
++ "498", /* 498 */ |
|
1266 |
++ "499", /* 499 */ |
|
1267 |
++ "500", /* 500 */ |
|
1268 |
++ "501", /* 501 */ |
|
1269 |
++ "502", /* 502 */ |
|
1270 |
++ "503", /* 503 */ |
|
1271 |
++ "504", /* 504 */ |
|
1272 |
++ "505", /* 505 */ |
|
1273 |
++ "506", /* 506 */ |
|
1274 |
++ "507", /* 507 */ |
|
1275 |
++ "508", /* 508 */ |
|
1276 |
++ "509", /* 509 */ |
|
1277 |
++ "510", /* 510 */ |
|
1278 |
++ "511", /* 511 */ |
|
1279 |
++ "512", /* 512 */ |
|
1280 |
++ "513", /* 513 */ |
|
1281 |
++ "514", /* 514 */ |
|
1282 |
++ "515", /* 515 */ |
|
1283 |
++ "516", /* 516 */ |
|
1284 |
++ "517", /* 517 */ |
|
1285 |
++ "518", /* 518 */ |
|
1286 |
++ "519", /* 519 */ |
|
1287 |
++ "520", /* 520 */ |
|
1288 |
++ "521", /* 521 */ |
|
1289 |
++ "522", /* 522 */ |
|
1290 |
++ "523", /* 523 */ |
|
1291 |
++ "524", /* 524 */ |
|
1292 |
++ "525", /* 525 */ |
|
1293 |
++ "526", /* 526 */ |
|
1294 |
++ "527", /* 527 */ |
|
1295 |
++ "528", /* 528 */ |
|
1296 |
++ "529", /* 529 */ |
|
1297 |
++ "530", /* 530 */ |
|
1298 |
++ "531", /* 531 */ |
|
1299 |
++ "532", /* 532 */ |
|
1300 |
++ "533", /* 533 */ |
|
1301 |
++ "534", /* 534 */ |
|
1302 |
++ "535", /* 535 */ |
|
1303 |
++ "536", /* 536 */ |
|
1304 |
++ "537", /* 537 */ |
|
1305 |
++ "538", /* 538 */ |
|
1306 |
++ "539", /* 539 */ |
|
1307 |
++ "540", /* 540 */ |
|
1308 |
++ "541", /* 541 */ |
|
1309 |
++ "542", /* 542 */ |
|
1310 |
++ "543", /* 543 */ |
|
1311 |
++ "544", /* 544 */ |
|
1312 |
++ "545", /* 545 */ |
|
1313 |
++ "546", /* 546 */ |
|
1314 |
++ "547", /* 547 */ |
|
1315 |
++ "548", /* 548 */ |
|
1316 |
++ "549", /* 549 */ |
|
1317 |
++ "550", /* 550 */ |
|
1318 |
++ "551", /* 551 */ |
|
1319 |
++ "552", /* 552 */ |
|
1320 |
++ "553", /* 553 */ |
|
1321 |
++ "554", /* 554 */ |
|
1322 |
++ "555", /* 555 */ |
|
1323 |
++ "556", /* 556 */ |
|
1324 |
++ "557", /* 557 */ |
|
1325 |
++ "558", /* 558 */ |
|
1326 |
++ "559", /* 559 */ |
|
1327 |
++ "560", /* 560 */ |
|
1328 |
++ "561", /* 561 */ |
|
1329 |
++ "562", /* 562 */ |
|
1330 |
++ "563", /* 563 */ |
|
1331 |
++ "564", /* 564 */ |
|
1332 |
++ "565", /* 565 */ |
|
1333 |
++ "566", /* 566 */ |
|
1334 |
++ "567", /* 567 */ |
|
1335 |
++ "568", /* 568 */ |
|
1336 |
++ "569", /* 569 */ |
|
1337 |
++ "570", /* 570 */ |
|
1338 |
++ "571", /* 571 */ |
|
1339 |
++ "572", /* 572 */ |
|
1340 |
++ "573", /* 573 */ |
|
1341 |
++ "574", /* 574 */ |
|
1342 |
++ "575", /* 575 */ |
|
1343 |
++ "576", /* 576 */ |
|
1344 |
++ "577", /* 577 */ |
|
1345 |
++ "578", /* 578 */ |
|
1346 |
++ "579", /* 579 */ |
|
1347 |
++ "580", /* 580 */ |
|
1348 |
++ "581", /* 581 */ |
|
1349 |
++ "582", /* 582 */ |
|
1350 |
++ "583", /* 583 */ |
|
1351 |
++ "584", /* 584 */ |
|
1352 |
++ "585", /* 585 */ |
|
1353 |
++ "586", /* 586 */ |
|
1354 |
++ "587", /* 587 */ |
|
1355 |
++ "588", /* 588 */ |
|
1356 |
++ "589", /* 589 */ |
|
1357 |
++ "590", /* 590 */ |
|
1358 |
++ "591", /* 591 */ |
|
1359 |
++ "592", /* 592 */ |
|
1360 |
++ "593", /* 593 */ |
|
1361 |
++ "594", /* 594 */ |
|
1362 |
++ "595", /* 595 */ |
|
1363 |
++ "596", /* 596 */ |
|
1364 |
++ "597", /* 597 */ |
|
1365 |
++ "598", /* 598 */ |
|
1366 |
++ "599", /* 599 */ |
|
1367 |
++ "600", /* 600 */ |
|
1368 |
++ "601", /* 601 */ |
|
1369 |
++ "602", /* 602 */ |
|
1370 |
++ "603", /* 603 */ |
|
1371 |
++ "604", /* 604 */ |
|
1372 |
++ "605", /* 605 */ |
|
1373 |
++ "606", /* 606 */ |
|
1374 |
++ "607", /* 607 */ |
|
1375 |
++ "608", /* 608 */ |
|
1376 |
++ "609", /* 609 */ |
|
1377 |
++ "610", /* 610 */ |
|
1378 |
++ "611", /* 611 */ |
|
1379 |
++ "612", /* 612 */ |
|
1380 |
++ "613", /* 613 */ |
|
1381 |
++ "614", /* 614 */ |
|
1382 |
++ "615", /* 615 */ |
|
1383 |
++ "616", /* 616 */ |
|
1384 |
++ "617", /* 617 */ |
|
1385 |
++ "618", /* 618 */ |
|
1386 |
++ "619", /* 619 */ |
|
1387 |
++ "620", /* 620 */ |
|
1388 |
++ "621", /* 621 */ |
|
1389 |
++ "622", /* 622 */ |
|
1390 |
++ "623", /* 623 */ |
|
1391 |
++ "624", /* 624 */ |
|
1392 |
++ "625", /* 625 */ |
|
1393 |
++ "626", /* 626 */ |
|
1394 |
++ "627", /* 627 */ |
|
1395 |
++ "628", /* 628 */ |
|
1396 |
++ "629", /* 629 */ |
|
1397 |
++ "630", /* 630 */ |
|
1398 |
++ "631", /* 631 */ |
|
1399 |
++ "632", /* 632 */ |
|
1400 |
++ "633", /* 633 */ |
|
1401 |
++ "634", /* 634 */ |
|
1402 |
++ "635", /* 635 */ |
|
1403 |
++ "636", /* 636 */ |
|
1404 |
++ "637", /* 637 */ |
|
1405 |
++ "638", /* 638 */ |
|
1406 |
++ "639", /* 639 */ |
|
1407 |
++ "640", /* 640 */ |
|
1408 |
++ "641", /* 641 */ |
|
1409 |
++ "642", /* 642 */ |
|
1410 |
++ "643", /* 643 */ |
|
1411 |
++ "644", /* 644 */ |
|
1412 |
++ "645", /* 645 */ |
|
1413 |
++ "646", /* 646 */ |
|
1414 |
++ "647", /* 647 */ |
|
1415 |
++ "648", /* 648 */ |
|
1416 |
++ "649", /* 649 */ |
|
1417 |
++ "650", /* 650 */ |
|
1418 |
++ "651", /* 651 */ |
|
1419 |
++ "652", /* 652 */ |
|
1420 |
++ "653", /* 653 */ |
|
1421 |
++ "654", /* 654 */ |
|
1422 |
++ "655", /* 655 */ |
|
1423 |
++ "656", /* 656 */ |
|
1424 |
++ "657", /* 657 */ |
|
1425 |
++ "658", /* 658 */ |
|
1426 |
++ "659", /* 659 */ |
|
1427 |
++ "660", /* 660 */ |
|
1428 |
++ "661", /* 661 */ |
|
1429 |
++ "662", /* 662 */ |
|
1430 |
++ "663", /* 663 */ |
|
1431 |
++ "664", /* 664 */ |
|
1432 |
++ "665", /* 665 */ |
|
1433 |
++ "666", /* 666 */ |
|
1434 |
++ "667", /* 667 */ |
|
1435 |
++ "668", /* 668 */ |
|
1436 |
++ "669", /* 669 */ |
|
1437 |
++ "670", /* 670 */ |
|
1438 |
++ "671", /* 671 */ |
|
1439 |
++ "672", /* 672 */ |
|
1440 |
++ "673", /* 673 */ |
|
1441 |
++ "674", /* 674 */ |
|
1442 |
++ "675", /* 675 */ |
|
1443 |
++ "676", /* 676 */ |
|
1444 |
++ "677", /* 677 */ |
|
1445 |
++ "678", /* 678 */ |
|
1446 |
++ "679", /* 679 */ |
|
1447 |
++ "680", /* 680 */ |
|
1448 |
++ "681", /* 681 */ |
|
1449 |
++ "682", /* 682 */ |
|
1450 |
++ "683", /* 683 */ |
|
1451 |
++ "684", /* 684 */ |
|
1452 |
++ "685", /* 685 */ |
|
1453 |
++ "686", /* 686 */ |
|
1454 |
++ "687", /* 687 */ |
|
1455 |
++ "688", /* 688 */ |
|
1456 |
++ "689", /* 689 */ |
|
1457 |
++ "690", /* 690 */ |
|
1458 |
++ "691", /* 691 */ |
|
1459 |
++ "692", /* 692 */ |
|
1460 |
++ "693", /* 693 */ |
|
1461 |
++ "694", /* 694 */ |
|
1462 |
++ "695", /* 695 */ |
|
1463 |
++ "696", /* 696 */ |
|
1464 |
++ "697", /* 697 */ |
|
1465 |
++ "698", /* 698 */ |
|
1466 |
++ "699", /* 699 */ |
|
1467 |
++ "700", /* 700 */ |
|
1468 |
++ "701", /* 701 */ |
|
1469 |
++ "702", /* 702 */ |
|
1470 |
++ "703", /* 703 */ |
|
1471 |
++ "704", /* 704 */ |
|
1472 |
++ "705", /* 705 */ |
|
1473 |
++ "706", /* 706 */ |
|
1474 |
++ "707", /* 707 */ |
|
1475 |
++ "708", /* 708 */ |
|
1476 |
++ "709", /* 709 */ |
|
1477 |
++ "710", /* 710 */ |
|
1478 |
++ "711", /* 711 */ |
|
1479 |
++ "712", /* 712 */ |
|
1480 |
++ "713", /* 713 */ |
|
1481 |
++ "714", /* 714 */ |
|
1482 |
++ "715", /* 715 */ |
|
1483 |
++ "716", /* 716 */ |
|
1484 |
++ "717", /* 717 */ |
|
1485 |
++ "718", /* 718 */ |
|
1486 |
++ "719", /* 719 */ |
|
1487 |
++ "720", /* 720 */ |
|
1488 |
++ "721", /* 721 */ |
|
1489 |
++ "722", /* 722 */ |
|
1490 |
++ "723", /* 723 */ |
|
1491 |
++ "724", /* 724 */ |
|
1492 |
++ "725", /* 725 */ |
|
1493 |
++ "726", /* 726 */ |
|
1494 |
++ "727", /* 727 */ |
|
1495 |
++ "728", /* 728 */ |
|
1496 |
++ "729", /* 729 */ |
|
1497 |
++ "730", /* 730 */ |
|
1498 |
++ "731", /* 731 */ |
|
1499 |
++ "732", /* 732 */ |
|
1500 |
++ "733", /* 733 */ |
|
1501 |
++ "734", /* 734 */ |
|
1502 |
++ "735", /* 735 */ |
|
1503 |
++ "736", /* 736 */ |
|
1504 |
++ "737", /* 737 */ |
|
1505 |
++ "738", /* 738 */ |
|
1506 |
++ "739", /* 739 */ |
|
1507 |
++ "740", /* 740 */ |
|
1508 |
++ "741", /* 741 */ |
|
1509 |
++ "742", /* 742 */ |
|
1510 |
++ "743", /* 743 */ |
|
1511 |
++ "744", /* 744 */ |
|
1512 |
++ "745", /* 745 */ |
|
1513 |
++ "746", /* 746 */ |
|
1514 |
++ "747", /* 747 */ |
|
1515 |
++ "748", /* 748 */ |
|
1516 |
++ "749", /* 749 */ |
|
1517 |
++ "750", /* 750 */ |
|
1518 |
++ "751", /* 751 */ |
|
1519 |
++ "752", /* 752 */ |
|
1520 |
++ "753", /* 753 */ |
|
1521 |
++ "754", /* 754 */ |
|
1522 |
++ "755", /* 755 */ |
|
1523 |
++ "756", /* 756 */ |
|
1524 |
++ "757", /* 757 */ |
|
1525 |
++ "758", /* 758 */ |
|
1526 |
++ "759", /* 759 */ |
|
1527 |
++ "760", /* 760 */ |
|
1528 |
++ "761", /* 761 */ |
|
1529 |
++ "762", /* 762 */ |
|
1530 |
++ "763", /* 763 */ |
|
1531 |
++ "764", /* 764 */ |
|
1532 |
++ "765", /* 765 */ |
|
1533 |
++ "766", /* 766 */ |
|
1534 |
++ "767", /* 767 */ |
|
1535 |
++ "768", /* 768 */ |
|
1536 |
++ "769", /* 769 */ |
|
1537 |
++ "770", /* 770 */ |
|
1538 |
++ "771", /* 771 */ |
|
1539 |
++ "772", /* 772 */ |
|
1540 |
++ "773", /* 773 */ |
|
1541 |
++ "774", /* 774 */ |
|
1542 |
++ "775", /* 775 */ |
|
1543 |
++ "776", /* 776 */ |
|
1544 |
++ "777", /* 777 */ |
|
1545 |
++ "778", /* 778 */ |
|
1546 |
++ "779", /* 779 */ |
|
1547 |
++ "780", /* 780 */ |
|
1548 |
++ "781", /* 781 */ |
|
1549 |
++ "782", /* 782 */ |
|
1550 |
++ "783", /* 783 */ |
|
1551 |
++ "784", /* 784 */ |
|
1552 |
++ "785", /* 785 */ |
|
1553 |
++ "786", /* 786 */ |
|
1554 |
++ "787", /* 787 */ |
|
1555 |
++ "788", /* 788 */ |
|
1556 |
++ "789", /* 789 */ |
|
1557 |
++ "790", /* 790 */ |
|
1558 |
++ "791", /* 791 */ |
|
1559 |
++ "792", /* 792 */ |
|
1560 |
++ "793", /* 793 */ |
|
1561 |
++ "794", /* 794 */ |
|
1562 |
++ "795", /* 795 */ |
|
1563 |
++ "796", /* 796 */ |
|
1564 |
++ "797", /* 797 */ |
|
1565 |
++ "798", /* 798 */ |
|
1566 |
++ "799", /* 799 */ |
|
1567 |
++ "800", /* 800 */ |
|
1568 |
++ "801", /* 801 */ |
|
1569 |
++ "802", /* 802 */ |
|
1570 |
++ "803", /* 803 */ |
|
1571 |
++ "804", /* 804 */ |
|
1572 |
++ "805", /* 805 */ |
|
1573 |
++ "806", /* 806 */ |
|
1574 |
++ "807", /* 807 */ |
|
1575 |
++ "808", /* 808 */ |
|
1576 |
++ "809", /* 809 */ |
|
1577 |
++ "810", /* 810 */ |
|
1578 |
++ "811", /* 811 */ |
|
1579 |
++ "812", /* 812 */ |
|
1580 |
++ "813", /* 813 */ |
|
1581 |
++ "814", /* 814 */ |
|
1582 |
++ "815", /* 815 */ |
|
1583 |
++ "816", /* 816 */ |
|
1584 |
++ "817", /* 817 */ |
|
1585 |
++ "818", /* 818 */ |
|
1586 |
++ "819", /* 819 */ |
|
1587 |
++ "820", /* 820 */ |
|
1588 |
++ "821", /* 821 */ |
|
1589 |
++ "822", /* 822 */ |
|
1590 |
++ "823", /* 823 */ |
|
1591 |
++ "824", /* 824 */ |
|
1592 |
++ "825", /* 825 */ |
|
1593 |
++ "826", /* 826 */ |
|
1594 |
++ "827", /* 827 */ |
|
1595 |
++ "828", /* 828 */ |
|
1596 |
++ "829", /* 829 */ |
|
1597 |
++ "830", /* 830 */ |
|
1598 |
++ "831", /* 831 */ |
|
1599 |
++ "832", /* 832 */ |
|
1600 |
++ "833", /* 833 */ |
|
1601 |
++ "834", /* 834 */ |
|
1602 |
++ "835", /* 835 */ |
|
1603 |
++ "836", /* 836 */ |
|
1604 |
++ "837", /* 837 */ |
|
1605 |
++ "838", /* 838 */ |
|
1606 |
++ "839", /* 839 */ |
|
1607 |
++ "840", /* 840 */ |
|
1608 |
++ "841", /* 841 */ |
|
1609 |
++ "842", /* 842 */ |
|
1610 |
++ "843", /* 843 */ |
|
1611 |
++ "844", /* 844 */ |
|
1612 |
++ "845", /* 845 */ |
|
1613 |
++ "846", /* 846 */ |
|
1614 |
++ "847", /* 847 */ |
|
1615 |
++ "848", /* 848 */ |
|
1616 |
++ "849", /* 849 */ |
|
1617 |
++ "850", /* 850 */ |
|
1618 |
++ "851", /* 851 */ |
|
1619 |
++ "852", /* 852 */ |
|
1620 |
++ "853", /* 853 */ |
|
1621 |
++ "854", /* 854 */ |
|
1622 |
++ "855", /* 855 */ |
|
1623 |
++ "856", /* 856 */ |
|
1624 |
++ "857", /* 857 */ |
|
1625 |
++ "858", /* 858 */ |
|
1626 |
++ "859", /* 859 */ |
|
1627 |
++ "860", /* 860 */ |
|
1628 |
++ "861", /* 861 */ |
|
1629 |
++ "862", /* 862 */ |
|
1630 |
++ "863", /* 863 */ |
|
1631 |
++ "864", /* 864 */ |
|
1632 |
++ "865", /* 865 */ |
|
1633 |
++ "866", /* 866 */ |
|
1634 |
++ "867", /* 867 */ |
|
1635 |
++ "868", /* 868 */ |
|
1636 |
++ "869", /* 869 */ |
|
1637 |
++ "870", /* 870 */ |
|
1638 |
++ "871", /* 871 */ |
|
1639 |
++ "872", /* 872 */ |
|
1640 |
++ "873", /* 873 */ |
|
1641 |
++ "874", /* 874 */ |
|
1642 |
++ "875", /* 875 */ |
|
1643 |
++ "876", /* 876 */ |
|
1644 |
++ "877", /* 877 */ |
|
1645 |
++ "878", /* 878 */ |
|
1646 |
++ "879", /* 879 */ |
|
1647 |
++ "880", /* 880 */ |
|
1648 |
++ "881", /* 881 */ |
|
1649 |
++ "882", /* 882 */ |
|
1650 |
++ "883", /* 883 */ |
|
1651 |
++ "884", /* 884 */ |
|
1652 |
++ "885", /* 885 */ |
|
1653 |
++ "886", /* 886 */ |
|
1654 |
++ "887", /* 887 */ |
|
1655 |
++ "888", /* 888 */ |
|
1656 |
++ "889", /* 889 */ |
|
1657 |
++ "890", /* 890 */ |
|
1658 |
++ "891", /* 891 */ |
|
1659 |
++ "892", /* 892 */ |
|
1660 |
++ "893", /* 893 */ |
|
1661 |
++ "894", /* 894 */ |
|
1662 |
++ "895", /* 895 */ |
|
1663 |
++ "896", /* 896 */ |
|
1664 |
++ "897", /* 897 */ |
|
1665 |
++ "898", /* 898 */ |
|
1666 |
++ "899", /* 899 */ |
|
1667 |
++ "900", /* 900 */ |
|
1668 |
++ "901", /* 901 */ |
|
1669 |
++ "902", /* 902 */ |
|
1670 |
++ "903", /* 903 */ |
|
1671 |
++ "904", /* 904 */ |
|
1672 |
++ "905", /* 905 */ |
|
1673 |
++ "906", /* 906 */ |
|
1674 |
++ "907", /* 907 */ |
|
1675 |
++ "908", /* 908 */ |
|
1676 |
++ "909", /* 909 */ |
|
1677 |
++ "910", /* 910 */ |
|
1678 |
++ "911", /* 911 */ |
|
1679 |
++ "912", /* 912 */ |
|
1680 |
++ "913", /* 913 */ |
|
1681 |
++ "914", /* 914 */ |
|
1682 |
++ "915", /* 915 */ |
|
1683 |
++ "916", /* 916 */ |
|
1684 |
++ "917", /* 917 */ |
|
1685 |
++ "918", /* 918 */ |
|
1686 |
++ "919", /* 919 */ |
|
1687 |
++ "920", /* 920 */ |
|
1688 |
++ "921", /* 921 */ |
|
1689 |
++ "922", /* 922 */ |
|
1690 |
++ "923", /* 923 */ |
|
1691 |
++ "924", /* 924 */ |
|
1692 |
++ "925", /* 925 */ |
|
1693 |
++ "926", /* 926 */ |
|
1694 |
++ "927", /* 927 */ |
|
1695 |
++ "928", /* 928 */ |
|
1696 |
++ "929", /* 929 */ |
|
1697 |
++ "930", /* 930 */ |
|
1698 |
++ "931", /* 931 */ |
|
1699 |
++ "932", /* 932 */ |
|
1700 |
++ "933", /* 933 */ |
|
1701 |
++ "934", /* 934 */ |
|
1702 |
++ "935", /* 935 */ |
|
1703 |
++ "936", /* 936 */ |
|
1704 |
++ "937", /* 937 */ |
|
1705 |
++ "938", /* 938 */ |
|
1706 |
++ "939", /* 939 */ |
|
1707 |
++ "940", /* 940 */ |
|
1708 |
++ "941", /* 941 */ |
|
1709 |
++ "942", /* 942 */ |
|
1710 |
++ "943", /* 943 */ |
|
1711 |
++ "944", /* 944 */ |
|
1712 |
++ "945", /* 945 */ |
|
1713 |
++ "946", /* 946 */ |
|
1714 |
++ "947", /* 947 */ |
|
1715 |
++ "948", /* 948 */ |
|
1716 |
++ "949", /* 949 */ |
|
1717 |
++ "950", /* 950 */ |
|
1718 |
++ "951", /* 951 */ |
|
1719 |
++ "952", /* 952 */ |
|
1720 |
++ "953", /* 953 */ |
|
1721 |
++ "954", /* 954 */ |
|
1722 |
++ "955", /* 955 */ |
|
1723 |
++ "956", /* 956 */ |
|
1724 |
++ "957", /* 957 */ |
|
1725 |
++ "958", /* 958 */ |
|
1726 |
++ "959", /* 959 */ |
|
1727 |
++ "960", /* 960 */ |
|
1728 |
++ "961", /* 961 */ |
|
1729 |
++ "962", /* 962 */ |
|
1730 |
++ "963", /* 963 */ |
|
1731 |
++ "964", /* 964 */ |
|
1732 |
++ "965", /* 965 */ |
|
1733 |
++ "966", /* 966 */ |
|
1734 |
++ "967", /* 967 */ |
|
1735 |
++ "968", /* 968 */ |
|
1736 |
++ "969", /* 969 */ |
|
1737 |
++ "970", /* 970 */ |
|
1738 |
++ "971", /* 971 */ |
|
1739 |
++ "972", /* 972 */ |
|
1740 |
++ "973", /* 973 */ |
|
1741 |
++ "974", /* 974 */ |
|
1742 |
++ "975", /* 975 */ |
|
1743 |
++ "976", /* 976 */ |
|
1744 |
++ "977", /* 977 */ |
|
1745 |
++ "978", /* 978 */ |
|
1746 |
++ "979", /* 979 */ |
|
1747 |
++ "980", /* 980 */ |
|
1748 |
++ "981", /* 981 */ |
|
1749 |
++ "982", /* 982 */ |
|
1750 |
++ "983", /* 983 */ |
|
1751 |
++ "984", /* 984 */ |
|
1752 |
++ "985", /* 985 */ |
|
1753 |
++ "986", /* 986 */ |
|
1754 |
++ "987", /* 987 */ |
|
1755 |
++ "988", /* 988 */ |
|
1756 |
++ "989", /* 989 */ |
|
1757 |
++ "990", /* 990 */ |
|
1758 |
++ "991", /* 991 */ |
|
1759 |
++ "992", /* 992 */ |
|
1760 |
++ "993", /* 993 */ |
|
1761 |
++ "994", /* 994 */ |
|
1762 |
++ "995", /* 995 */ |
|
1763 |
++ "996", /* 996 */ |
|
1764 |
++ "997", /* 997 */ |
|
1765 |
++ "998", /* 998 */ |
|
1766 |
++ "999", /* 999 */ |
|
1767 |
++ "1000", /* 1000 */ |
|
1768 |
++ "1001", /* 1001 */ |
|
1769 |
++ "1002", /* 1002 */ |
|
1770 |
++ "1003", /* 1003 */ |
|
1771 |
++ "1004", /* 1004 */ |
|
1772 |
++ "1005", /* 1005 */ |
|
1773 |
++ "1006", /* 1006 */ |
|
1774 |
++ "1007", /* 1007 */ |
|
1775 |
++ "1008", /* 1008 */ |
|
1776 |
++ "1009", /* 1009 */ |
|
1777 |
++ "1010", /* 1010 */ |
|
1778 |
++ "1011", /* 1011 */ |
|
1779 |
++ "1012", /* 1012 */ |
|
1780 |
++ "1013", /* 1013 */ |
|
1781 |
++ "1014", /* 1014 */ |
|
1782 |
++ "1015", /* 1015 */ |
|
1783 |
++ "1016", /* 1016 */ |
|
1784 |
++ "1017", /* 1017 */ |
|
1785 |
++ "1018", /* 1018 */ |
|
1786 |
++ "1019", /* 1019 */ |
|
1787 |
++ "1020", /* 1020 */ |
|
1788 |
++ "1021", /* 1021 */ |
|
1789 |
++ "1022", /* 1022 */ |
|
1790 |
++ "1023", /* 1023 */ |
|
1791 |
++ "open", /* 1024 */ |
|
1792 |
++ "link", /* 1025 */ |
|
1793 |
++ "unlink", /* 1026 */ |
|
1794 |
++ "mknod", /* 1027 */ |
|
1795 |
++ "chmod", /* 1028 */ |
|
1796 |
++ "chown", /* 1029 */ |
|
1797 |
++ "mkdir", /* 1030 */ |
|
1798 |
++ "rmdir", /* 1031 */ |
|
1799 |
++ "lchown", /* 1032 */ |
|
1800 |
++ "access", /* 1033 */ |
|
1801 |
++ "rename", /* 1034 */ |
|
1802 |
++ "readlink", /* 1035 */ |
|
1803 |
++ "symlink", /* 1036 */ |
|
1804 |
++ "utimes", /* 1037 */ |
|
1805 |
++ "stat", /* 1038 */ |
|
1806 |
++ "lstat", /* 1039 */ |
|
1807 |
++ "pipe", /* 1040 */ |
|
1808 |
++ "dup2", /* 1041 */ |
|
1809 |
++ "epoll_create", /* 1042 */ |
|
1810 |
++ "inotify_init", /* 1043 */ |
|
1811 |
++ "eventfd", /* 1044 */ |
|
1812 |
++ "signalfd", /* 1045 */ |
|
1813 |
++ "sendfile", /* 1046 */ |
|
1814 |
++ "ftruncate", /* 1047 */ |
|
1815 |
++ "truncate", /* 1048 */ |
|
1816 |
++ "stat", /* 1049 */ |
|
1817 |
++ "lstat", /* 1050 */ |
|
1818 |
++ "fstat", /* 1051 */ |
|
1819 |
++ "fcntl", /* 1052 */ |
|
1820 |
++ "fadvise64", /* 1053 */ |
|
1821 |
++ "newfstatat", /* 1054 */ |
|
1822 |
++ "fstatfs", /* 1055 */ |
|
1823 |
++ "statfs", /* 1056 */ |
|
1824 |
++ "lseek", /* 1057 */ |
|
1825 |
++ "mmap", /* 1058 */ |
|
1826 |
++ "alarm", /* 1059 */ |
|
1827 |
++ "getpgrp", /* 1060 */ |
|
1828 |
++ "pause", /* 1061 */ |
|
1829 |
++ "time", /* 1062 */ |
|
1830 |
++ "utime", /* 1063 */ |
|
1831 |
++ "creat", /* 1064 */ |
|
1832 |
++ "getdents", /* 1065 */ |
|
1833 |
++ "futimesat", /* 1066 */ |
|
1834 |
++ "select", /* 1067 */ |
|
1835 |
++ "poll", /* 1068 */ |
|
1836 |
++ "epoll_wait", /* 1069 */ |
|
1837 |
++ "ustat", /* 1070 */ |
|
1838 |
++ "vfork", /* 1071 */ |
|
1839 |
++ "oldwait4", /* 1072 */ |
|
1840 |
++ "recv", /* 1073 */ |
|
1841 |
++ "send", /* 1074 */ |
|
1842 |
++ "bdflush", /* 1075 */ |
|
1843 |
++ "umount", /* 1076 */ |
|
1844 |
++ "uselib", /* 1077 */ |
|
1845 |
++ "_sysctl", /* 1078 */ |
|
1846 |
++ "fork", /* 1079 */ |
|
1847 |
+Index: ltrace/sysdeps/linux-gnu/aarch64/trace.c |
|
1848 |
+=================================================================== |
|
1849 |
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
|
1850 |
+@@ -0,0 +1,83 @@ |
|
1851 |
++/* |
|
1852 |
++ * This file is part of ltrace. |
|
1853 |
++ * Copyright (C) 2014 Petr Machata, Red Hat, Inc. |
|
1854 |
++ * |
|
1855 |
++ * This program is free software; you can redistribute it and/or |
|
1856 |
++ * modify it under the terms of the GNU General Public License as |
|
1857 |
++ * published by the Free Software Foundation; either version 2 of the |
|
1858 |
++ * License, or (at your option) any later version. |
|
1859 |
++ * |
|
1860 |
++ * This program is distributed in the hope that it will be useful, but |
|
1861 |
++ * WITHOUT ANY WARRANTY; without even the implied warranty of |
|
1862 |
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
|
1863 |
++ * General Public License for more details. |
|
1864 |
++ * |
|
1865 |
++ * You should have received a copy of the GNU General Public License |
|
1866 |
++ * along with this program; if not, write to the Free Software |
|
1867 |
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA |
|
1868 |
++ * 02110-1301 USA |
|
1869 |
++ */ |
|
1870 |
++ |
|
1871 |
++#include <sys/ptrace.h> |
|
1872 |
++#include <sys/types.h> |
|
1873 |
++#include <sys/wait.h> |
|
1874 |
++#include <asm/ptrace.h> |
|
1875 |
++#include <string.h> |
|
1876 |
++#include <errno.h> |
|
1877 |
++ |
|
1878 |
++#include "backend.h" |
|
1879 |
++#include "proc.h" |
|
1880 |
++ |
|
1881 |
++void |
|
1882 |
++get_arch_dep(struct Process *proc) |
|
1883 |
++{ |
|
1884 |
++} |
|
1885 |
++ |
|
1886 |
++int aarch64_read_gregs(struct Process *proc, struct user_pt_regs *regs); |
|
1887 |
++ |
|
1888 |
++/* The syscall instruction is: |
|
1889 |
++ * | 31 21 | 20 5 | 4 0 | |
|
1890 |
++ * | 1 1 0 1 0 1 0 0 | 0 0 0 | imm16 | 0 0 0 0 1 | */ |
|
1891 |
++#define SVC_MASK 0xffe0001f |
|
1892 |
++#define SVC_VALUE 0xd4000001 |
|
1893 |
++ |
|
1894 |
++int |
|
1895 |
++syscall_p(struct Process *proc, int status, int *sysnum) |
|
1896 |
++{ |
|
1897 |
++ if (WIFSTOPPED(status) |
|
1898 |
++ && WSTOPSIG(status) == (SIGTRAP | proc->tracesysgood)) { |
|
1899 |
++ |
|
1900 |
++ struct user_pt_regs regs; |
|
1901 |
++ if (aarch64_read_gregs(proc, ®s) < 0) { |
|
1902 |
++ fprintf(stderr, "syscall_p: " |
|
1903 |
++ "Couldn't read registers of %d.\n", proc->pid); |
|
1904 |
++ return -1; |
|
1905 |
++ } |
|
1906 |
++ |
|
1907 |
++ errno = 0; |
|
1908 |
++ unsigned long insn = (unsigned long) ptrace(PTRACE_PEEKTEXT, |
|
1909 |
++ proc->pid, |
|
1910 |
++ regs.pc - 4, 0); |
|
1911 |
++ if (insn == -1UL && errno != 0) { |
|
1912 |
++ fprintf(stderr, "syscall_p: " |
|
1913 |
++ "Couldn't peek into %d: %s\n", proc->pid, |
|
1914 |
++ strerror(errno)); |
|
1915 |
++ return -1; |
|
1916 |
++ } |
|
1917 |
++ |
|
1918 |
++ insn &= 0xffffffffUL; |
|
1919 |
++ if ((insn & SVC_MASK) == SVC_VALUE) { |
|
1920 |
++ *sysnum = regs.regs[8]; |
|
1921 |
++ |
|
1922 |
++ size_t d1 = proc->callstack_depth - 1; |
|
1923 |
++ if (proc->callstack_depth > 0 |
|
1924 |
++ && proc->callstack[d1].is_syscall |
|
1925 |
++ && proc->callstack[d1].c_un.syscall == *sysnum) |
|
1926 |
++ return 2; |
|
1927 |
++ |
|
1928 |
++ return 1; |
|
1929 |
++ } |
|
1930 |
++ } |
|
1931 |
++ |
|
1932 |
++ return 0; |
|
1933 |
++} |
0 | 1934 |
new file mode 100644 |
... | ... |
@@ -0,0 +1,163 @@ |
0 |
+Author: Petr Machata <pmachata@apm-mustang-ev2-02.ml3.eng.bos.redhat.com> |
|
1 |
+Description: Move get_hfa_type from IA64 backend to type.c, name it type_get_hfa_type |
|
2 |
+Applied-Upstream: http://anonscm.debian.org/gitweb/?p=collab-maint/ltrace.git;a=commit;h=982cbca34b2b49a158086ff5f43eb9bba89edead |
|
3 |
+Last-Update: 2014-03-13 |
|
4 |
+ |
|
5 |
+Index: ltrace/sysdeps/linux-gnu/ia64/fetch.c |
|
6 |
+=================================================================== |
|
7 |
+--- ltrace.orig/sysdeps/linux-gnu/ia64/fetch.c 2014-03-12 16:13:44.075726000 -0600 |
|
8 |
+@@ -1,6 +1,6 @@ |
|
9 |
+ /* |
|
10 |
+ * This file is part of ltrace. |
|
11 |
+- * Copyright (C) 2012 Petr Machata, Red Hat Inc. |
|
12 |
++ * Copyright (C) 2012,2013 Petr Machata, Red Hat Inc. |
|
13 |
+ * Copyright (C) 2008,2009 Juan Cespedes |
|
14 |
+ * Copyright (C) 2006 Steve Fink |
|
15 |
+ * Copyright (C) 2006 Ian Wienand |
|
16 |
+@@ -249,37 +249,6 @@ |
|
17 |
+ return 0; |
|
18 |
+ } |
|
19 |
+ |
|
20 |
+-static enum arg_type |
|
21 |
+-get_hfa_type(struct arg_type_info *info, size_t *countp) |
|
22 |
+-{ |
|
23 |
+- size_t n = type_aggregate_size(info); |
|
24 |
+- if (n == (size_t)-1) |
|
25 |
+- return ARGTYPE_VOID; |
|
26 |
+- |
|
27 |
+- enum arg_type type = ARGTYPE_VOID; |
|
28 |
+- *countp = 0; |
|
29 |
+- |
|
30 |
+- while (n-- > 0) { |
|
31 |
+- struct arg_type_info *emt = type_element(info, n); |
|
32 |
+- |
|
33 |
+- enum arg_type emt_type = emt->type; |
|
34 |
+- size_t emt_count = 1; |
|
35 |
+- if (emt_type == ARGTYPE_STRUCT || emt_type == ARGTYPE_ARRAY) |
|
36 |
+- emt_type = get_hfa_type(emt, &emt_count); |
|
37 |
+- |
|
38 |
+- if (type == ARGTYPE_VOID) { |
|
39 |
+- if (emt_type != ARGTYPE_FLOAT |
|
40 |
+- && emt_type != ARGTYPE_DOUBLE) |
|
41 |
+- return ARGTYPE_VOID; |
|
42 |
+- type = emt_type; |
|
43 |
+- } |
|
44 |
+- if (emt_type != type) |
|
45 |
+- return ARGTYPE_VOID; |
|
46 |
+- *countp += emt_count; |
|
47 |
+- } |
|
48 |
+- return type; |
|
49 |
+-} |
|
50 |
+- |
|
51 |
+ static int |
|
52 |
+ allocate_hfa(struct fetch_context *ctx, struct Process *proc, |
|
53 |
+ struct arg_type_info *info, struct value *valuep, |
|
54 |
+@@ -380,10 +349,11 @@ |
|
55 |
+ * floating-point registers, beginning with f8. */ |
|
56 |
+ if (info->type == ARGTYPE_STRUCT || info->type == ARGTYPE_ARRAY) { |
|
57 |
+ size_t hfa_size; |
|
58 |
+- enum arg_type hfa_type = get_hfa_type(info, &hfa_size); |
|
59 |
+- if (hfa_type != ARGTYPE_VOID && hfa_size <= 8) |
|
60 |
++ struct arg_type_info *hfa_info |
|
61 |
++ = type_get_hfa_type(info, &hfa_size); |
|
62 |
++ if (hfa_info != NULL && hfa_size <= 8) |
|
63 |
+ return allocate_hfa(ctx, proc, info, valuep, |
|
64 |
+- hfa_type, hfa_size); |
|
65 |
++ hfa_info->type, hfa_size); |
|
66 |
+ } |
|
67 |
+ |
|
68 |
+ /* Integers and pointers are passed in r8. 128-bit integers |
|
69 |
+@@ -409,7 +379,7 @@ |
|
70 |
+ struct arg_type_info *info, struct value *valuep) |
|
71 |
+ { |
|
72 |
+ switch (info->type) { |
|
73 |
+- enum arg_type hfa_type; |
|
74 |
++ struct arg_type_info *hfa_info; |
|
75 |
+ size_t hfa_size; |
|
76 |
+ |
|
77 |
+ case ARGTYPE_VOID: |
|
78 |
+@@ -421,10 +391,10 @@ |
|
79 |
+ return allocate_float(ctx, proc, info, valuep, 1); |
|
80 |
+ |
|
81 |
+ case ARGTYPE_STRUCT: |
|
82 |
+- hfa_type = get_hfa_type(info, &hfa_size); |
|
83 |
+- if (hfa_type != ARGTYPE_VOID) |
|
84 |
++ hfa_info = type_get_hfa_type(info, &hfa_size); |
|
85 |
++ if (hfa_info != NULL) |
|
86 |
+ return allocate_hfa(ctx, proc, info, valuep, |
|
87 |
+- hfa_type, hfa_size); |
|
88 |
++ hfa_info->type, hfa_size); |
|
89 |
+ /* Fall through. */ |
|
90 |
+ case ARGTYPE_CHAR: |
|
91 |
+ case ARGTYPE_SHORT: |
|
92 |
+Index: ltrace/type.c |
|
93 |
+=================================================================== |
|
94 |
+--- ltrace.orig/type.c 2014-03-12 16:13:44.075726000 -0600 |
|
95 |
+@@ -568,3 +568,39 @@ |
|
96 |
+ } |
|
97 |
+ abort(); |
|
98 |
+ } |
|
99 |
++ |
|
100 |
++struct arg_type_info * |
|
101 |
++type_get_hfa_type(struct arg_type_info *info, size_t *countp) |
|
102 |
++{ |
|
103 |
++ assert(info != NULL); |
|
104 |
++ if (info->type != ARGTYPE_STRUCT |
|
105 |
++ && info->type != ARGTYPE_ARRAY) |
|
106 |
++ return NULL; |
|
107 |
++ |
|
108 |
++ size_t n = type_aggregate_size(info); |
|
109 |
++ if (n == (size_t)-1) |
|
110 |
++ return NULL; |
|
111 |
++ |
|
112 |
++ struct arg_type_info *ret = NULL; |
|
113 |
++ *countp = 0; |
|
114 |
++ |
|
115 |
++ while (n-- > 0) { |
|
116 |
++ struct arg_type_info *emt = type_element(info, n); |
|
117 |
++ |
|
118 |
++ size_t emt_count = 1; |
|
119 |
++ if (emt->type == ARGTYPE_STRUCT || emt->type == ARGTYPE_ARRAY) |
|
120 |
++ emt = type_get_hfa_type(emt, &emt_count); |
|
121 |
++ if (emt == NULL) |
|
122 |
++ return NULL; |
|
123 |
++ if (ret == NULL) { |
|
124 |
++ if (emt->type != ARGTYPE_FLOAT |
|
125 |
++ && emt->type != ARGTYPE_DOUBLE) |
|
126 |
++ return NULL; |
|
127 |
++ ret = emt; |
|
128 |
++ } |
|
129 |
++ if (emt->type != ret->type) |
|
130 |
++ return NULL; |
|
131 |
++ *countp += emt_count; |
|
132 |
++ } |
|
133 |
++ return ret; |
|
134 |
++} |
|
135 |
+Index: ltrace/type.h |
|
136 |
+=================================================================== |
|
137 |
+--- ltrace.orig/type.h 2014-03-12 16:13:44.075726000 -0600 |
|
138 |
+@@ -1,6 +1,6 @@ |
|
139 |
+ /* |
|
140 |
+ * This file is part of ltrace. |
|
141 |
+- * Copyright (C) 2011,2012 Petr Machata, Red Hat Inc. |
|
142 |
++ * Copyright (C) 2011,2012,2013 Petr Machata, Red Hat Inc. |
|
143 |
+ * Copyright (C) 1997-2009 Juan Cespedes |
|
144 |
+ * |
|
145 |
+ * This program is free software; you can redistribute it and/or |
|
146 |
+@@ -142,4 +142,13 @@ |
|
147 |
+ * type. */ |
|
148 |
+ struct arg_type_info *type_get_fp_equivalent(struct arg_type_info *info); |
|
149 |
+ |
|
150 |
++/* If INFO is homogeneous floating-point aggregate, return the |
|
151 |
++ * corresponding floating point type, and set *COUNTP to number of |
|
152 |
++ * fields of the structure. Otherwise return NULL. INFO is a HFA if |
|
153 |
++ * it's an aggregate whose each field is either a HFA, or a |
|
154 |
++ * floating-point type. */ |
|
155 |
++struct arg_type_info *type_get_hfa_type(struct arg_type_info *info, |
|
156 |
++ size_t *countp); |
|
157 |
++ |
|
158 |
++ |
|
159 |
+ #endif /* TYPE_H */ |
0 | 160 |
new file mode 100644 |
... | ... |
@@ -0,0 +1,31 @@ |
0 |
+Author: Petr Machata <pmachata@apm-mustang-ev2-02.ml3.eng.bos.redhat.com> |
|
1 |
+Description: Set child stack alignment in trace-clone.c |
|
2 |
+ This is important on aarch64, which requires 16-byte aligned |
|
3 |
+ stack pointer. This might be relevant on other arches as well, |
|
4 |
+ I suspect we just happened to get the 16-byte boundary in some |
|
5 |
+ cases. |
|
6 |
+Applied-Upstream: http://anonscm.debian.org/gitweb/?p=collab-maint/ltrace.git;a=commit;h=0b5457a9e59978bcd2eb5240f54838910365a93c |
|
7 |
+Last-Update: 2014-03-13 |
|
8 |
+ |
|
9 |
+Index: ltrace/testsuite/ltrace.minor/trace-clone.c |
|
10 |
+=================================================================== |
|
11 |
+--- ltrace.orig/testsuite/ltrace.minor/trace-clone.c 2014-03-12 16:13:44.075726000 -0600 |
|
12 |
+@@ -8,6 +8,7 @@ |
|
13 |
+ #include <sys/types.h> |
|
14 |
+ #include <stdlib.h> |
|
15 |
+ #include <sched.h> |
|
16 |
++#include <unistd.h> |
|
17 |
+ |
|
18 |
+ int child () |
|
19 |
+ { |
|
20 |
+@@ -22,7 +23,8 @@ |
|
21 |
+ int main () |
|
22 |
+ { |
|
23 |
+ pid_t pid; |
|
24 |
+- static char stack[STACK_SIZE]; |
|
25 |
++ static __attribute__ ((aligned (16))) char stack[STACK_SIZE]; |
|
26 |
++ |
|
27 |
+ #ifdef __ia64__ |
|
28 |
+ pid = __clone2((myfunc)&child, stack, STACK_SIZE, CLONE_FS, NULL); |
|
29 |
+ #else |
0 | 30 |
new file mode 100644 |
... | ... |
@@ -0,0 +1,20 @@ |
0 |
+Author: dann frazier <dannf@debian.org> |
|
1 |
+Description: add missing <stdint.h> include |
|
2 |
+ aarch64's fetch.c uses the uintptr_t typedef defined by stdint.h without |
|
3 |
+ including it. This doesn't currently cause a build failure because stdint.h |
|
4 |
+ is indirectly included via proc.h. |
|
5 |
+Applied-Upstream: http://anonscm.debian.org/gitweb/?p=collab-maint/ltrace.git;a=commitdiff;h=e9919d980a5b6fc2417d7c05d46329b442467940 |
|
6 |
+Last-Update: 2014-03-17 |
|
7 |
+ |
|
8 |
+Index: ltrace/sysdeps/linux-gnu/aarch64/fetch.c |
|
9 |
+=================================================================== |
|
10 |
+--- ltrace.orig/sysdeps/linux-gnu/aarch64/fetch.c 2014-03-12 16:23:25.382866486 -0600 |
|
11 |
+@@ -22,6 +22,7 @@ |
|
12 |
+ #include <asm/ptrace.h> |
|
13 |
+ #include <stdlib.h> |
|
14 |
+ #include <string.h> |
|
15 |
++#include <stdint.h> |
|
16 |
+ |
|
17 |
+ #include "fetch.h" |
|
18 |
+ #include "proc.h" |
... | ... |
@@ -1,7 +1,7 @@ |
1 | 1 |
Summary: ltrace intercepts and records dynamic library calls. |
2 | 2 |
Name: ltrace |
3 | 3 |
Version: 0.7.3 |
4 |
-Release: 3%{?dist} |
|
4 |
+Release: 4%{?dist} |
|
5 | 5 |
License: GPLv2+ |
6 | 6 |
URL: http://www.ltrace.org/ |
7 | 7 |
Group: Development/Debuggers |
... | ... |
@@ -9,6 +9,11 @@ Vendor: VMware, Inc. |
9 | 9 |
Distribution: Photon |
10 | 10 |
Source0: http://www.ltrace.org/%{name}_%{version}.orig.tar.bz2 |
11 | 11 |
%define sha1 ltrace=8df2acc8bc135a229917de6ef814f416d38124ca |
12 |
+Patch0: Move-get_hfa_type-from-IA64-backend-to-type.c-name-i.patch |
|
13 |
+Patch1: Set-child-stack-alignment-in-trace-clone.c.patch |
|
14 |
+Patch2: Implement-aarch64-support.patch |
|
15 |
+Patch3: add-missing-stdint.h-include.patch |
|
16 |
+Patch4: Add-missing-include-stdio.h.patch |
|
12 | 17 |
BuildRequires: elfutils-libelf-devel |
13 | 18 |
Requires: elfutils-libelf |
14 | 19 |
%description |
... | ... |
@@ -16,10 +21,18 @@ ltrace intercepts and records dynamic library calls which are called by an execu |
16 | 16 |
|
17 | 17 |
%prep |
18 | 18 |
%setup -q |
19 |
-%build |
|
19 |
+%ifarch aarch64 |
|
20 |
+%patch0 -p1 |
|
21 |
+%patch1 -p1 |
|
22 |
+%patch2 -p1 |
|
23 |
+%patch3 -p1 |
|
24 |
+%patch4 -p1 |
|
25 |
+%endif |
|
20 | 26 |
|
21 |
-./configure \ |
|
22 |
- --prefix=%{_prefix} --disable-werror |
|
27 |
+%build |
|
28 |
+autoreconf -fiv |
|
29 |
+%configure \ |
|
30 |
+ --disable-werror |
|
23 | 31 |
|
24 | 32 |
make %{?_smp_mflags} |
25 | 33 |
|
... | ... |
@@ -34,10 +47,12 @@ rm -rf %{buildroot}/* |
34 | 34 |
|
35 | 35 |
%files |
36 | 36 |
%defattr(-,root,root) |
37 |
-/usr/etc/ltrace.conf |
|
37 |
+%{_sysconfdir}/ltrace.conf |
|
38 | 38 |
%{_bindir}/* |
39 | 39 |
%{_datadir} |
40 | 40 |
%changelog |
41 |
+* Tue Nov 14 2017 Alexey Makhalov <amakhalov@vmware.com> 0.7.3-4 |
|
42 |
+- Aarch64 support |
|
41 | 43 |
* Mon Oct 03 2016 ChangLee <changLee@vmware.com> 0.7.3-3 |
42 | 44 |
- Modified check |
43 | 45 |
* Tue May 24 2016 Priyesh Padmavilasom <ppadmavilasom@vmware.com> 0.7.3-2 |
... | ... |
@@ -1,7 +1,7 @@ |
1 | 1 |
Summary: Network traffic statics utility for Solaris and Linux |
2 | 2 |
Name: nicstat |
3 | 3 |
Version: 1.95 |
4 |
-Release: 2%{?dist} |
|
4 |
+Release: 3%{?dist} |
|
5 | 5 |
License: Artistic License 2.0 |
6 | 6 |
URL: http://sourceforge.net/projects/%{name} |
7 | 7 |
Source0: http://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.gz |
... | ... |
@@ -17,7 +17,7 @@ Nicstat is a Solaris and Linux command-line that prints out network statistics f |
17 | 17 |
%setup -q |
18 | 18 |
|
19 | 19 |
%build |
20 |
-gcc -o3 -m64 %{name}.c -o %{name} |
|
20 |
+gcc -o3 $([ $(uname -m) = x86_64 ] && echo -m64) %{name}.c -o %{name} |
|
21 | 21 |
|
22 | 22 |
%install |
23 | 23 |
install -p -m755 -D %{name} %{buildroot}%{_bindir}/%{name} |
... | ... |
@@ -28,6 +28,8 @@ install -p -m644 -D %{name}.1 %{buildroot}%{_mandir}/man1/%{name}.1 |
28 | 28 |
%{_mandir}/man1/* |
29 | 29 |
|
30 | 30 |
%changelog |
31 |
+* Tue Nov 14 2017 Alexey Makhalov <amakhalov@vmware.com> 1.95-3 |
|
32 |
+- Aarch64 support |
|
31 | 33 |
* Tue May 24 2016 Priyesh Padmavilasom <ppadmavilasom@vmware.com> 1.95-2 |
32 | 34 |
- GA - Bump release of all rpms |
33 | 35 |
* Mon Nov 30 2015 Xiaolin Li <xiaolinl@vmware.com> 1.95-1 |
... | ... |
@@ -1,7 +1,7 @@ |
1 | 1 |
Summary: Security client |
2 | 2 |
Name: nss |
3 | 3 |
Version: 3.31 |
4 |
-Release: 3%{?dist} |
|
4 |
+Release: 4%{?dist} |
|
5 | 5 |
License: MPLv2.0 |
6 | 6 |
URL: http://ftp.mozilla.org/pub/security/nss/releases/NSS_3_31_RTM/src/%{name}-%{version}.tar.gz |
7 | 7 |
Group: Applications/System |
... | ... |
@@ -50,7 +50,7 @@ make VERBOSE=1 BUILD_OPT=1 \ |
50 | 50 |
NSPR_INCLUDE_DIR=%{_includedir}/nspr \ |
51 | 51 |
USE_SYSTEM_ZLIB=1 \ |
52 | 52 |
ZLIB_LIBS=-lz \ |
53 |
- $([ $(uname -m) = x86_64 ] && echo USE_64=1) \ |
|
53 |
+ USE_64=1 \ |
|
54 | 54 |
$([ -f %{_includedir}/sqlite3.h ] && echo NSS_USE_SYSTEM_SQLITE=1) |
55 | 55 |
%install |
56 | 56 |
cd nss |
... | ... |
@@ -97,6 +97,8 @@ sudo -u test ./all.sh && userdel test -r -f |
97 | 97 |
%{_libdir}/libsoftokn3.so |
98 | 98 |
|
99 | 99 |
%changelog |
100 |
+* Tue Nov 14 2017 Alexey Makhalov <amakhalov@vmware.com> 3.31-4 |
|
101 |
+- Aarch64 support |
|
100 | 102 |
* Fri Jul 07 2017 Vinay Kulkarni <kulkarniv@vmware.com> 3.31-3 |
101 | 103 |
- Fix buildrequires. |
102 | 104 |
* Thu Jun 29 2017 Xiaolin Li <xiaolinl@vmware.com> 3.31-2 |
... | ... |
@@ -1,7 +1,7 @@ |
1 | 1 |
Summary: Free version of the SSH connectivity tools |
2 | 2 |
Name: openssh |
3 | 3 |
Version: 7.5p1 |
4 |
-Release: 9%{?dist} |
|
4 |
+Release: 10%{?dist} |
|
5 | 5 |
License: BSD |
6 | 6 |
URL: https://www.openssh.com/ |
7 | 7 |
Group: System Environment/Security |
... | ... |
@@ -42,6 +42,7 @@ Requires: shadow |
42 | 42 |
Requires: ncurses-terminfo |
43 | 43 |
Requires: openssh-clients = %{version}-%{release} |
44 | 44 |
Requires(post): /bin/chown |
45 |
+Requires(pre): /usr/sbin/useradd /usr/sbin/groupadd |
|
45 | 46 |
%description server |
46 | 47 |
This provides the ssh server daemons, utilities, configuration and service files. |
47 | 48 |
|
... | ... |
@@ -178,6 +179,8 @@ rm -rf %{buildroot}/* |
178 | 178 |
%{_mandir}/man8/ssh-pkcs11-helper.8.gz |
179 | 179 |
|
180 | 180 |
%changelog |
181 |
+* Tue Nov 14 2017 Alexey Makhalov <amakhalov@vmware.com> 7.5p1-10 |
|
182 |
+- Fix: openssh-server requires(pre) shadow tools |
|
181 | 183 |
* Tue Nov 14 2017 Anish Swaminathan <anishs@vmware.com> 7.5p1-9 |
182 | 184 |
- Add ciphers aes128-gcm, aes256-gcm and kex dh14/16/18 in fips mode |
183 | 185 |
* Tue Oct 10 2017 Alexey Makhalov <amakhalov@vmware.com> 7.5p1-8 |
... | ... |
@@ -1,7 +1,7 @@ |
1 | 1 |
Summary: Tracks system calls that are made by a running process |
2 | 2 |
Name: strace |
3 | 3 |
Version: 4.16 |
4 |
-Release: 2%{?dist} |
|
4 |
+Release: 3%{?dist} |
|
5 | 5 |
License: BSD |
6 | 6 |
URL: http://sourceforge.net/p/strace/code/ci/master/tree/ |
7 | 7 |
Group: Development/Debuggers |
... | ... |
@@ -25,6 +25,7 @@ all the arugments and return values from the system calls. This is useful in deb |
25 | 25 |
|
26 | 26 |
# to resolve build issue with glibc-2.26 |
27 | 27 |
sed -i 's/struct ucontext/ucontext_t/g' linux/x86_64/arch_sigreturn.c |
28 |
+sed -i 's/struct ucontext/ucontext_t/g' linux/arm/arch_sigreturn.c |
|
28 | 29 |
|
29 | 30 |
make %{?_smp_mflags} |
30 | 31 |
|
... | ... |
@@ -44,6 +45,8 @@ rm -rf %{buildroot}/* |
44 | 44 |
%{_mandir}/man1/* |
45 | 45 |
|
46 | 46 |
%changelog |
47 |
+* Tue Nov 14 2017 Alexey Makhalov <amakhalov@vmware.com> 4.16-3 |
|
48 |
+- Aarch64 support |
|
47 | 49 |
* Wed Aug 23 2017 Alexey Makhalov <amakhalov@vmware.com> 4.16-2 |
48 | 50 |
- Fix compilation issue for glibc-2.26 |
49 | 51 |
* Wed Apr 12 2017 Vinay Kulkarni <kulkarniv@vmware.com> 4.16-1 |