Browse code

Bulk aarch64 support changes

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>

Alexey Makhalov authored on 2017/11/15 19:58:54
Showing 35 changed files
... ...
@@ -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, &regs) < 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, &regs) < 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, &regs) < 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, &regs) < 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, &regs) < 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, &regs) < 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