aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTing-Wei Lan <lantw44@gmail.com>2015-12-29 17:43:36 +0800
committerTing-Wei Lan <lantw44@gmail.com>2015-12-29 17:43:36 +0800
commit955ba125b3ca439c9389e44454b89cefca5bcda6 (patch)
tree43fbe8bb5a7e437f2a7c9a8113a3b1919aa9ead4
parentbbb8fceb797e5d7f55128664ffac88663b4d3307 (diff)
downloadcopr-rpm-spec-955ba125b3ca439c9389e44454b89cefca5bcda6.tar.gz
copr-rpm-spec-955ba125b3ca439c9389e44454b89cefca5bcda6.tar.zst
copr-rpm-spec-955ba125b3ca439c9389e44454b89cefca5bcda6.zip
arm-linux-gnueabi-toolchain: Support armv7hl and aarch64
Most build options are also synced with Fedora.
-rw-r--r--arm-linux-gnueabi-toolchain/arm-linux-gnueabi-binutils/arm-linux-gnueabi-binutils.spec7
-rw-r--r--arm-linux-gnueabi-toolchain/arm-linux-gnueabi-filesystem/arm-linux-gnueabi-filesystem.spec28
-rw-r--r--arm-linux-gnueabi-toolchain/arm-linux-gnueabi-gcc/arm-linux-gnueabi-gcc.spec113
-rw-r--r--arm-linux-gnueabi-toolchain/arm-linux-gnueabi-glibc/arm-linux-gnueabi-glibc.spec239
-rwxr-xr-xarm-linux-gnueabi-toolchain/create-arch.sh48
5 files changed, 296 insertions, 139 deletions
diff --git a/arm-linux-gnueabi-toolchain/arm-linux-gnueabi-binutils/arm-linux-gnueabi-binutils.spec b/arm-linux-gnueabi-toolchain/arm-linux-gnueabi-binutils/arm-linux-gnueabi-binutils.spec
index 709fe29..68f6235 100644
--- a/arm-linux-gnueabi-toolchain/arm-linux-gnueabi-binutils/arm-linux-gnueabi-binutils.spec
+++ b/arm-linux-gnueabi-toolchain/arm-linux-gnueabi-binutils/arm-linux-gnueabi-binutils.spec
@@ -4,7 +4,7 @@
Name: %{cross_triplet}-binutils
Version: 2.25.1
-Release: 4%{?dist}
+Release: 5%{?dist}
Summary: A GNU collection of binary utilities (%{cross_triplet})
Group: Development/Tools
@@ -29,6 +29,7 @@ Requires: %{cross_triplet}-filesystem
--build=%{_target_platform} \
--target=%{cross_triplet} \
--program-prefix=%{cross_triplet}- \
+ --enable-64-bit-bfd \
--enable-ld=default \
--enable-gold=yes \
--enable-multilib \
@@ -83,6 +84,10 @@ rm -rf %{buildroot}%{_infodir}
%changelog
+* Mon Dec 28 2015 Ting-Wei Lan <lantw44@gmail.com> - 2.25.1-5
+- Sync configure options with Fedora
+- Support arm-linux-gnueabihf and aarch64-linux-gnu
+
* Tue Nov 24 2015 Ting-Wei Lan <lantw44@gmail.com> - 2.25.1-4
- Require the filesystem sub-package
diff --git a/arm-linux-gnueabi-toolchain/arm-linux-gnueabi-filesystem/arm-linux-gnueabi-filesystem.spec b/arm-linux-gnueabi-toolchain/arm-linux-gnueabi-filesystem/arm-linux-gnueabi-filesystem.spec
index e7347ea..c2c66e2 100644
--- a/arm-linux-gnueabi-toolchain/arm-linux-gnueabi-filesystem/arm-linux-gnueabi-filesystem.spec
+++ b/arm-linux-gnueabi-toolchain/arm-linux-gnueabi-filesystem/arm-linux-gnueabi-filesystem.spec
@@ -2,8 +2,18 @@
%define cross_triplet arm-linux-gnueabi
%define cross_sysroot %{_prefix}/%{cross_triplet}/sys-root
+%if %{cross_arch} == "arm"
+ %define lib_dir_name lib
+%else
+ %if %{cross_arch} == "arm64"
+ %define lib_dir_name lib64
+ %else
+ %define lib_dir_name lib
+ %endif
+%endif
+
Name: %{cross_triplet}-filesystem
-Version: 1
+Version: 2
Release: 1%{?dist}
Summary: Cross compilation toolchain filesystem layout (%{cross_triplet})
@@ -28,13 +38,15 @@ mkdir %{buildroot}%{_prefix}/%{cross_triplet}/bin
mkdir %{buildroot}%{_prefix}/%{cross_triplet}/lib
mkdir -p %{buildroot}%{cross_sysroot}
mkdir %{buildroot}%{cross_sysroot}/etc
+%if %{cross_arch} == "arm64"
mkdir %{buildroot}%{cross_sysroot}/lib
+%endif
+mkdir %{buildroot}%{cross_sysroot}/%{lib_dir_name}
mkdir %{buildroot}%{cross_sysroot}/sbin
mkdir %{buildroot}%{cross_sysroot}/usr
mkdir %{buildroot}%{cross_sysroot}/usr/bin
-mkdir %{buildroot}%{cross_sysroot}/usr/etc
mkdir %{buildroot}%{cross_sysroot}/usr/include
-mkdir %{buildroot}%{cross_sysroot}/usr/lib
+mkdir %{buildroot}%{cross_sysroot}/usr/%{lib_dir_name}
mkdir %{buildroot}%{cross_sysroot}/usr/libexec
mkdir %{buildroot}%{cross_sysroot}/usr/sbin
mkdir %{buildroot}%{cross_sysroot}/usr/share
@@ -48,13 +60,15 @@ mkdir %{buildroot}%{cross_sysroot}/var/db
%dir %{_prefix}/%{cross_triplet}/lib
%dir %{cross_sysroot}
%dir %{cross_sysroot}/etc
+%if %{cross_arch} == "arm64"
%dir %{cross_sysroot}/lib
+%endif
+%dir %{cross_sysroot}/%{lib_dir_name}
%dir %{cross_sysroot}/sbin
%dir %{cross_sysroot}/usr
%dir %{cross_sysroot}/usr/bin
-%dir %{cross_sysroot}/usr/etc
%dir %{cross_sysroot}/usr/include
-%dir %{cross_sysroot}/usr/lib
+%dir %{cross_sysroot}/usr/%{lib_dir_name}
%dir %{cross_sysroot}/usr/libexec
%dir %{cross_sysroot}/usr/sbin
%dir %{cross_sysroot}/usr/share
@@ -64,5 +78,9 @@ mkdir %{buildroot}%{cross_sysroot}/var/db
%changelog
+* Tue Dec 29 2015 Ting-Wei Lan <lantw44@gmail.com> - 2-1
+- Support aarch64-linux-gnu
+- /usr/etc is not needed
+
* Tue Nov 24 2015 Ting-Wei Lan <lantw44@gmail.com> - 1-1
- Create required filesystem layout
diff --git a/arm-linux-gnueabi-toolchain/arm-linux-gnueabi-gcc/arm-linux-gnueabi-gcc.spec b/arm-linux-gnueabi-toolchain/arm-linux-gnueabi-gcc/arm-linux-gnueabi-gcc.spec
index 8d4d4e3..6639443 100644
--- a/arm-linux-gnueabi-toolchain/arm-linux-gnueabi-gcc/arm-linux-gnueabi-gcc.spec
+++ b/arm-linux-gnueabi-toolchain/arm-linux-gnueabi-gcc/arm-linux-gnueabi-gcc.spec
@@ -18,9 +18,19 @@
%define enable_ada 0
%endif
+%if %{cross_arch} == "arm"
+ %define lib_dir_name lib
+%else
+ %if %{cross_arch} == "arm64"
+ %define lib_dir_name lib64
+ %else
+ %define lib_dir_name lib
+ %endif
+%endif
+
Name: %{cross_triplet}-gcc%{pkg_suffix}
Version: 5.3.0
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: The GNU Compiler Collection (%{cross_triplet})
Group: Development/Languages
@@ -79,12 +89,26 @@ WINDMC_FOR_TARGET=%{_bindir}/%{cross_triplet}-windmc \
--target=%{cross_triplet} \
--with-local-prefix=%{cross_sysroot} \
--with-sysroot=%{cross_sysroot} \
+ --with-linker-hash-style=gnu \
--with-system-zlib \
--with-isl \
--disable-nls \
--enable-lto \
+ --enable-multilib \
--enable-__cxa_atexit \
+ --enable-initfini-array \
--enable-linker-build-id \
+ --enable-gnu-unique-object \
+ --enable-gnu-indirect-function \
+%if %{cross_arch} == "arm"
+%if %(echo %{cross_triplet} | sed 's/.*-\([a-z]*\)$/\1/') == "gnueabihf"
+ --with-tune=cortex-a8 \
+ --with-arch=armv7-a \
+ --with-float=hard \
+ --with-fpu=vfpv3-d16 \
+ --with-abi=aapcs-linux \
+%endif
+%endif
%if %{cross_stage} == "pass1"
--with-newlib \
--enable-languages=c \
@@ -133,15 +157,17 @@ make install-gcc DESTDIR=%{buildroot}
%endif
%if %{cross_stage} == "pass2"
make install-gcc install-target-libgcc DESTDIR=%{buildroot}
-mkdir -p %{buildroot}%{cross_sysroot}/lib
-mv %{buildroot}%{_prefix}/%{cross_triplet}/lib/* %{buildroot}%{cross_sysroot}/lib
-rmdir %{buildroot}%{_prefix}/%{cross_triplet}/lib
+mkdir -p %{buildroot}%{cross_sysroot}/%{lib_dir_name}
+mv %{buildroot}%{_prefix}/%{cross_triplet}/%{lib_dir_name}/* \
+ %{buildroot}%{cross_sysroot}/%{lib_dir_name}
+rmdir %{buildroot}%{_prefix}/%{cross_triplet}/%{lib_dir_name}
%endif
%if %{cross_stage} == "final"
make install DESTDIR=%{buildroot}
-mkdir -p %{buildroot}%{cross_sysroot}/lib
-mv %{buildroot}%{_prefix}/%{cross_triplet}/lib/* %{buildroot}%{cross_sysroot}/lib
-rmdir %{buildroot}%{_prefix}/%{cross_triplet}/lib
+mkdir -p %{buildroot}%{cross_sysroot}/%{lib_dir_name}
+mv %{buildroot}%{_prefix}/%{cross_triplet}/%{lib_dir_name}/* \
+ %{buildroot}%{cross_sysroot}/%{lib_dir_name}
+rmdir %{buildroot}%{_prefix}/%{cross_triplet}/%{lib_dir_name}
%endif
find %{buildroot} -name '*.la' -delete
@@ -222,6 +248,8 @@ chmod +x %{__rpmdeps_skip_sysroot}
%if %{cross_arch} == "arm"
%{_prefix}/lib/gcc/%{cross_triplet}/%{version}/include/unwind-arm-common.h
%{_prefix}/lib/gcc/%{cross_triplet}/%{version}/include/mmintrin.h
+%endif
+%if %{cross_arch} == "arm" || %{cross_arch} == "arm64"
%{_prefix}/lib/gcc/%{cross_triplet}/%{version}/include/arm_neon.h
%{_prefix}/lib/gcc/%{cross_triplet}/%{version}/include/arm_acle.h
%endif
@@ -236,11 +264,14 @@ chmod +x %{__rpmdeps_skip_sysroot}
%{_prefix}/lib/gcc/%{cross_triplet}/%{version}/include/unwind.h
%{_prefix}/lib/gcc/%{cross_triplet}/%{version}/crtbegin*.o
%{_prefix}/lib/gcc/%{cross_triplet}/%{version}/crtend*.o
+%if %{cross_arch} == "arm64"
+%{_prefix}/lib/gcc/%{cross_triplet}/%{version}/crtfastmath.o
+%endif
%{_prefix}/lib/gcc/%{cross_triplet}/%{version}/libgcc.a
%{_prefix}/lib/gcc/%{cross_triplet}/%{version}/libgcc_eh.a
%{_prefix}/lib/gcc/%{cross_triplet}/%{version}/libgcov.a
-%{cross_sysroot}/lib/libgcc_s.so
-%{cross_sysroot}/lib/libgcc_s.so.1
+%{cross_sysroot}/%{lib_dir_name}/libgcc_s.so
+%{cross_sysroot}/%{lib_dir_name}/libgcc_s.so.1
%endif
%if %{cross_stage} == "final"
%{_bindir}/%{cross_triplet}-c++
@@ -262,36 +293,36 @@ chmod +x %{__rpmdeps_skip_sysroot}
%{_libexecdir}/gcc/%{cross_triplet}/%{version}/cc1obj
%{_libexecdir}/gcc/%{cross_triplet}/%{version}/cc1objplus
%{_libexecdir}/gcc/%{cross_triplet}/%{version}/f951
-%{cross_sysroot}/lib/libasan.a
-%{cross_sysroot}/lib/libasan_preinit.o
-%{cross_sysroot}/lib/libasan.so*
-%{cross_sysroot}/lib/libatomic.a
-%{cross_sysroot}/lib/libatomic.so*
-%{cross_sysroot}/lib/libgfortran.a
-%{cross_sysroot}/lib/libgfortran.so*
-%{cross_sysroot}/lib/libgfortran.spec
-%{cross_sysroot}/lib/libgomp.a
-%{cross_sysroot}/lib/libgomp.so*
-%{cross_sysroot}/lib/libgomp.spec
-%{cross_sysroot}/lib/libgomp-plugin-host_nonshm.so*
-%{cross_sysroot}/lib/libitm.a
-%{cross_sysroot}/lib/libitm.so*
-%{cross_sysroot}/lib/libitm.spec
-%{cross_sysroot}/lib/libobjc.a
-%{cross_sysroot}/lib/libobjc.so*
-%{cross_sysroot}/lib/libsanitizer.spec
-%{cross_sysroot}/lib/libssp.a
-%{cross_sysroot}/lib/libssp_nonshared.a
-%{cross_sysroot}/lib/libssp.so
-%{cross_sysroot}/lib/libssp.so.0*
-%{cross_sysroot}/lib/libstdc++fs.a
-%{cross_sysroot}/lib/libstdc++.a
-%{cross_sysroot}/lib/libstdc++.so
-%{cross_sysroot}/lib/libstdc++.so.6
-%{cross_sysroot}/lib/libstdc++.so.6.*.*
-%{cross_sysroot}/lib/libsupc++.a
-%{cross_sysroot}/lib/libubsan.a
-%{cross_sysroot}/lib/libubsan.so*
+%{cross_sysroot}/%{lib_dir_name}/libasan.a
+%{cross_sysroot}/%{lib_dir_name}/libasan_preinit.o
+%{cross_sysroot}/%{lib_dir_name}/libasan.so*
+%{cross_sysroot}/%{lib_dir_name}/libatomic.a
+%{cross_sysroot}/%{lib_dir_name}/libatomic.so*
+%{cross_sysroot}/%{lib_dir_name}/libgfortran.a
+%{cross_sysroot}/%{lib_dir_name}/libgfortran.so*
+%{cross_sysroot}/%{lib_dir_name}/libgfortran.spec
+%{cross_sysroot}/%{lib_dir_name}/libgomp.a
+%{cross_sysroot}/%{lib_dir_name}/libgomp.so*
+%{cross_sysroot}/%{lib_dir_name}/libgomp.spec
+%{cross_sysroot}/%{lib_dir_name}/libgomp-plugin-host_nonshm.so*
+%{cross_sysroot}/%{lib_dir_name}/libitm.a
+%{cross_sysroot}/%{lib_dir_name}/libitm.so*
+%{cross_sysroot}/%{lib_dir_name}/libitm.spec
+%{cross_sysroot}/%{lib_dir_name}/libobjc.a
+%{cross_sysroot}/%{lib_dir_name}/libobjc.so*
+%{cross_sysroot}/%{lib_dir_name}/libsanitizer.spec
+%{cross_sysroot}/%{lib_dir_name}/libssp.a
+%{cross_sysroot}/%{lib_dir_name}/libssp_nonshared.a
+%{cross_sysroot}/%{lib_dir_name}/libssp.so
+%{cross_sysroot}/%{lib_dir_name}/libssp.so.0*
+%{cross_sysroot}/%{lib_dir_name}/libstdc++fs.a
+%{cross_sysroot}/%{lib_dir_name}/libstdc++.a
+%{cross_sysroot}/%{lib_dir_name}/libstdc++.so
+%{cross_sysroot}/%{lib_dir_name}/libstdc++.so.6
+%{cross_sysroot}/%{lib_dir_name}/libstdc++.so.6.*.*
+%{cross_sysroot}/%{lib_dir_name}/libsupc++.a
+%{cross_sysroot}/%{lib_dir_name}/libubsan.a
+%{cross_sysroot}/%{lib_dir_name}/libubsan.so*
%if %{enable_ada}
%{_bindir}/%{cross_triplet}-gnat
%{_bindir}/%{cross_triplet}-gnatbind
@@ -313,6 +344,10 @@ chmod +x %{__rpmdeps_skip_sysroot}
%changelog
+* Mon Dec 28 2015 Ting-Wei Lan <lantw44@gmail.com> - 5.3.0-2
+- Sync configure options with Fedora
+- Support arm-linux-gnueabihf and aarch64-linux-gnu
+
* Sat Dec 05 2015 Ting-Wei Lan <lantw44@gmail.com> - 5.3.0-1
- Update to new stable release 5.3.0
- Fix glibc build with dnf on Fedora 24
diff --git a/arm-linux-gnueabi-toolchain/arm-linux-gnueabi-glibc/arm-linux-gnueabi-glibc.spec b/arm-linux-gnueabi-toolchain/arm-linux-gnueabi-glibc/arm-linux-gnueabi-glibc.spec
index 91686a5..4dcc2ec 100644
--- a/arm-linux-gnueabi-toolchain/arm-linux-gnueabi-glibc/arm-linux-gnueabi-glibc.spec
+++ b/arm-linux-gnueabi-toolchain/arm-linux-gnueabi-glibc/arm-linux-gnueabi-glibc.spec
@@ -10,9 +10,40 @@
%define pkg_suffix %{nil}
%endif
+%if %{cross_arch} == "arm"
+ %define arm_type %(echo %{cross_triplet} | sed 's/.*-\\([a-z]*\\)$/\\1/')
+ %if %{arm_type} == "gnueabi"
+ %define loader_suffix %{nil}
+ %define loader_version 3
+ %define gnu_hdr_suffix -soft
+ %define lib_dir_name lib
+ %else
+ %if %{arm_type} == "gnueabihf"
+ %define loader_suffix -armhf
+ %define loader_version 3
+ %define gnu_hdr_suffix -hard
+ %define lib_dir_name lib
+ %else
+ %{error:Unsupported ARM processor type}
+ %endif
+ %endif
+%else
+ %if %{cross_arch} == "arm64"
+ %define loader_suffix -aarch64
+ %define loader_version 1
+ %define gnu_hdr_suffix -lp64
+ %define lib_dir_name lib64
+ %else
+ %define loader_suffix %{nil}
+ %define loader_version 0
+ %define gnu_hdr_suffix %{nil}
+ %define lib_dir_name lib
+ %endif
+%endif
+
Name: %{cross_triplet}-glibc%{pkg_suffix}
Version: 2.22
-Release: 4%{?dist}
+Release: 5%{?dist}
Summary: The GNU C Library (%{cross_triplet})
Group: Development/Libraries
@@ -53,6 +84,7 @@ RANLIB=%{_bindir}/%{cross_triplet}-ranlib \
--enable-kernel=2.6.32 \
--enable-shared \
--enable-add-ons \
+ --enable-multi-arch \
--enable-obsolete-rpc \
--disable-profile \
--with-headers=%{cross_sysroot}/usr/include \
@@ -78,10 +110,11 @@ cd %{_builddir}/glibc-build
make install-headers install_root=%{buildroot}%{cross_sysroot} \
install-bootstrap-headers=yes
touch %{buildroot}%{cross_sysroot}/usr/include/gnu/stubs.h
-mkdir -p %{buildroot}%{cross_sysroot}/usr/lib
-cp csu/crt1.o csu/crti.o csu/crtn.o %{buildroot}%{cross_sysroot}/usr/lib
+mkdir -p %{buildroot}%{cross_sysroot}/usr/%{lib_dir_name}
+cp csu/crt1.o csu/crti.o csu/crtn.o \
+ %{buildroot}%{cross_sysroot}/usr/%{lib_dir_name}
%{cross_triplet}-gcc -nostdlib -nostartfiles -shared -x c /dev/null \
- -o %{buildroot}%{cross_sysroot}/usr/lib/libc.so
+ -o %{buildroot}%{cross_sysroot}/usr/%{lib_dir_name}/libc.so
%else
make install install_root=%{buildroot}%{cross_sysroot}
rm -rf %{buildroot}%{cross_sysroot}/usr/share/man
@@ -301,7 +334,9 @@ chmod +x %{__ar_no_strip}
%{cross_sysroot}/usr/include/sys/gmon.h
%{cross_sysroot}/usr/include/sys/gmon_out.h
%{cross_sysroot}/usr/include/sys/inotify.h
+%if %{cross_arch} == "arm"
%{cross_sysroot}/usr/include/sys/io.h
+%endif
%{cross_sysroot}/usr/include/sys/ioctl.h
%{cross_sysroot}/usr/include/sys/ipc.h
%{cross_sysroot}/usr/include/sys/kd.h
@@ -390,57 +425,61 @@ chmod +x %{__ar_no_strip}
%{cross_sysroot}/usr/include/wctype.h
%{cross_sysroot}/usr/include/wordexp.h
%{cross_sysroot}/usr/include/xlocale.h
-%{cross_sysroot}/usr/lib/crt1.o
-%{cross_sysroot}/usr/lib/crti.o
-%{cross_sysroot}/usr/lib/crtn.o
-%{cross_sysroot}/usr/lib/libc.so
+%{cross_sysroot}/usr/%{lib_dir_name}/crt1.o
+%{cross_sysroot}/usr/%{lib_dir_name}/crti.o
+%{cross_sysroot}/usr/%{lib_dir_name}/crtn.o
+%{cross_sysroot}/usr/%{lib_dir_name}/libc.so
%if !%{headers_only}
%{cross_sysroot}/etc/rpc
-%{cross_sysroot}/lib/ld-%{version}.so
-%{cross_sysroot}/lib/ld-linux.so.3
-%{cross_sysroot}/lib/libBrokenLocale-%{version}.so
-%{cross_sysroot}/lib/libBrokenLocale.so.1
-%{cross_sysroot}/lib/libSegFault.so
-%{cross_sysroot}/lib/libanl-%{version}.so
-%{cross_sysroot}/lib/libanl.so.1
-%{cross_sysroot}/lib/libc-%{version}.so
-%{cross_sysroot}/lib/libc.so.6
-%{cross_sysroot}/lib/libcidn-%{version}.so
-%{cross_sysroot}/lib/libcidn.so.1
-%{cross_sysroot}/lib/libcrypt-%{version}.so
-%{cross_sysroot}/lib/libcrypt.so.1
-%{cross_sysroot}/lib/libdl-%{version}.so
-%{cross_sysroot}/lib/libdl.so.2
-%{cross_sysroot}/lib/libm-%{version}.so
-%{cross_sysroot}/lib/libm.so.6
-%{cross_sysroot}/lib/libmemusage.so
-%{cross_sysroot}/lib/libnsl-%{version}.so
-%{cross_sysroot}/lib/libnsl.so.1
-%{cross_sysroot}/lib/libnss_compat-%{version}.so
-%{cross_sysroot}/lib/libnss_compat.so.2
-%{cross_sysroot}/lib/libnss_db-%{version}.so
-%{cross_sysroot}/lib/libnss_db.so.2
-%{cross_sysroot}/lib/libnss_dns-%{version}.so
-%{cross_sysroot}/lib/libnss_dns.so.2
-%{cross_sysroot}/lib/libnss_files-%{version}.so
-%{cross_sysroot}/lib/libnss_files.so.2
-%{cross_sysroot}/lib/libnss_hesiod-%{version}.so
-%{cross_sysroot}/lib/libnss_hesiod.so.2
-%{cross_sysroot}/lib/libnss_nis-%{version}.so
-%{cross_sysroot}/lib/libnss_nis.so.2
-%{cross_sysroot}/lib/libnss_nisplus-%{version}.so
-%{cross_sysroot}/lib/libnss_nisplus.so.2
-%{cross_sysroot}/lib/libpcprofile.so
-%{cross_sysroot}/lib/libpthread-%{version}.so
-%{cross_sysroot}/lib/libpthread.so.0
-%{cross_sysroot}/lib/libresolv-%{version}.so
-%{cross_sysroot}/lib/libresolv.so.2
-%{cross_sysroot}/lib/librt-%{version}.so
-%{cross_sysroot}/lib/librt.so.1
-%{cross_sysroot}/lib/libthread_db-1.0.so
-%{cross_sysroot}/lib/libthread_db.so.1
-%{cross_sysroot}/lib/libutil-%{version}.so
-%{cross_sysroot}/lib/libutil.so.1
+%if %{cross_arch} == "arm64"
+%{cross_sysroot}/lib/ld-linux%{loader_suffix}.so.%{loader_version}
+%else
+%{cross_sysroot}/%{lib_dir_name}/ld-linux%{loader_suffix}.so.%{loader_version}
+%endif
+%{cross_sysroot}/%{lib_dir_name}/ld-%{version}.so
+%{cross_sysroot}/%{lib_dir_name}/libBrokenLocale-%{version}.so
+%{cross_sysroot}/%{lib_dir_name}/libBrokenLocale.so.1
+%{cross_sysroot}/%{lib_dir_name}/libSegFault.so
+%{cross_sysroot}/%{lib_dir_name}/libanl-%{version}.so
+%{cross_sysroot}/%{lib_dir_name}/libanl.so.1
+%{cross_sysroot}/%{lib_dir_name}/libc-%{version}.so
+%{cross_sysroot}/%{lib_dir_name}/libc.so.6
+%{cross_sysroot}/%{lib_dir_name}/libcidn-%{version}.so
+%{cross_sysroot}/%{lib_dir_name}/libcidn.so.1
+%{cross_sysroot}/%{lib_dir_name}/libcrypt-%{version}.so
+%{cross_sysroot}/%{lib_dir_name}/libcrypt.so.1
+%{cross_sysroot}/%{lib_dir_name}/libdl-%{version}.so
+%{cross_sysroot}/%{lib_dir_name}/libdl.so.2
+%{cross_sysroot}/%{lib_dir_name}/libm-%{version}.so
+%{cross_sysroot}/%{lib_dir_name}/libm.so.6
+%{cross_sysroot}/%{lib_dir_name}/libmemusage.so
+%{cross_sysroot}/%{lib_dir_name}/libnsl-%{version}.so
+%{cross_sysroot}/%{lib_dir_name}/libnsl.so.1
+%{cross_sysroot}/%{lib_dir_name}/libnss_compat-%{version}.so
+%{cross_sysroot}/%{lib_dir_name}/libnss_compat.so.2
+%{cross_sysroot}/%{lib_dir_name}/libnss_db-%{version}.so
+%{cross_sysroot}/%{lib_dir_name}/libnss_db.so.2
+%{cross_sysroot}/%{lib_dir_name}/libnss_dns-%{version}.so
+%{cross_sysroot}/%{lib_dir_name}/libnss_dns.so.2
+%{cross_sysroot}/%{lib_dir_name}/libnss_files-%{version}.so
+%{cross_sysroot}/%{lib_dir_name}/libnss_files.so.2
+%{cross_sysroot}/%{lib_dir_name}/libnss_hesiod-%{version}.so
+%{cross_sysroot}/%{lib_dir_name}/libnss_hesiod.so.2
+%{cross_sysroot}/%{lib_dir_name}/libnss_nis-%{version}.so
+%{cross_sysroot}/%{lib_dir_name}/libnss_nis.so.2
+%{cross_sysroot}/%{lib_dir_name}/libnss_nisplus-%{version}.so
+%{cross_sysroot}/%{lib_dir_name}/libnss_nisplus.so.2
+%{cross_sysroot}/%{lib_dir_name}/libpcprofile.so
+%{cross_sysroot}/%{lib_dir_name}/libpthread-%{version}.so
+%{cross_sysroot}/%{lib_dir_name}/libpthread.so.0
+%{cross_sysroot}/%{lib_dir_name}/libresolv-%{version}.so
+%{cross_sysroot}/%{lib_dir_name}/libresolv.so.2
+%{cross_sysroot}/%{lib_dir_name}/librt-%{version}.so
+%{cross_sysroot}/%{lib_dir_name}/librt.so.1
+%{cross_sysroot}/%{lib_dir_name}/libthread_db-1.0.so
+%{cross_sysroot}/%{lib_dir_name}/libthread_db.so.1
+%{cross_sysroot}/%{lib_dir_name}/libutil-%{version}.so
+%{cross_sysroot}/%{lib_dir_name}/libutil.so.1
%{cross_sysroot}/sbin/ldconfig
%{cross_sysroot}/sbin/sln
%{cross_sysroot}/usr/bin/catchsegv
@@ -460,54 +499,62 @@ chmod +x %{__ar_no_strip}
%{cross_sysroot}/usr/bin/sprof
%{cross_sysroot}/usr/bin/tzselect
%{cross_sysroot}/usr/bin/xtrace
-%{cross_sysroot}/usr/include/gnu/lib-names-soft.h
-%{cross_sysroot}/usr/include/gnu/stubs-soft.h
-%{cross_sysroot}/usr/lib/?crt1.o
-%{cross_sysroot}/usr/lib/audit
-%{cross_sysroot}/usr/lib/gconv
-%{cross_sysroot}/usr/lib/libBrokenLocale.a
-%{cross_sysroot}/usr/lib/libBrokenLocale.so
-%{cross_sysroot}/usr/lib/libanl.a
-%{cross_sysroot}/usr/lib/libanl.so
-%{cross_sysroot}/usr/lib/libc.a
-%{cross_sysroot}/usr/lib/libc_nonshared.a
-%{cross_sysroot}/usr/lib/libcidn.so
-%{cross_sysroot}/usr/lib/libcrypt.a
-%{cross_sysroot}/usr/lib/libcrypt.so
-%{cross_sysroot}/usr/lib/libdl.a
-%{cross_sysroot}/usr/lib/libdl.so
-%{cross_sysroot}/usr/lib/libg.a
-%{cross_sysroot}/usr/lib/libieee.a
-%{cross_sysroot}/usr/lib/libm.a
-%{cross_sysroot}/usr/lib/libm.so
-%{cross_sysroot}/usr/lib/libmcheck.a
-%{cross_sysroot}/usr/lib/libnsl.a
-%{cross_sysroot}/usr/lib/libnsl.so
-%{cross_sysroot}/usr/lib/libnss_compat.so
-%{cross_sysroot}/usr/lib/libnss_db.so
-%{cross_sysroot}/usr/lib/libnss_dns.so
-%{cross_sysroot}/usr/lib/libnss_files.so
-%{cross_sysroot}/usr/lib/libnss_hesiod.so
-%{cross_sysroot}/usr/lib/libnss_nis.so
-%{cross_sysroot}/usr/lib/libnss_nisplus.so
-%{cross_sysroot}/usr/lib/libpthread.a
-%{cross_sysroot}/usr/lib/libpthread.so
-%{cross_sysroot}/usr/lib/libpthread_nonshared.a
-%{cross_sysroot}/usr/lib/libresolv.a
-%{cross_sysroot}/usr/lib/libresolv.so
-%{cross_sysroot}/usr/lib/librpcsvc.a
-%{cross_sysroot}/usr/lib/librt.a
-%{cross_sysroot}/usr/lib/librt.so
-%{cross_sysroot}/usr/lib/libthread_db.so
-%{cross_sysroot}/usr/lib/libutil.a
-%{cross_sysroot}/usr/lib/libutil.so
+%{cross_sysroot}/usr/include/gnu/lib-names%{gnu_hdr_suffix}.h
+%{cross_sysroot}/usr/include/gnu/stubs%{gnu_hdr_suffix}.h
+%{cross_sysroot}/usr/%{lib_dir_name}/?crt1.o
+%{cross_sysroot}/usr/%{lib_dir_name}/audit
+%{cross_sysroot}/usr/%{lib_dir_name}/gconv
+%{cross_sysroot}/usr/%{lib_dir_name}/libBrokenLocale.a
+%{cross_sysroot}/usr/%{lib_dir_name}/libBrokenLocale.so
+%{cross_sysroot}/usr/%{lib_dir_name}/libanl.a
+%{cross_sysroot}/usr/%{lib_dir_name}/libanl.so
+%{cross_sysroot}/usr/%{lib_dir_name}/libc.a
+%{cross_sysroot}/usr/%{lib_dir_name}/libc_nonshared.a
+%{cross_sysroot}/usr/%{lib_dir_name}/libcidn.so
+%{cross_sysroot}/usr/%{lib_dir_name}/libcrypt.a
+%{cross_sysroot}/usr/%{lib_dir_name}/libcrypt.so
+%{cross_sysroot}/usr/%{lib_dir_name}/libdl.a
+%{cross_sysroot}/usr/%{lib_dir_name}/libdl.so
+%{cross_sysroot}/usr/%{lib_dir_name}/libg.a
+%{cross_sysroot}/usr/%{lib_dir_name}/libieee.a
+%{cross_sysroot}/usr/%{lib_dir_name}/libm.a
+%{cross_sysroot}/usr/%{lib_dir_name}/libm.so
+%{cross_sysroot}/usr/%{lib_dir_name}/libmcheck.a
+%{cross_sysroot}/usr/%{lib_dir_name}/libnsl.a
+%{cross_sysroot}/usr/%{lib_dir_name}/libnsl.so
+%{cross_sysroot}/usr/%{lib_dir_name}/libnss_compat.so
+%{cross_sysroot}/usr/%{lib_dir_name}/libnss_db.so
+%{cross_sysroot}/usr/%{lib_dir_name}/libnss_dns.so
+%{cross_sysroot}/usr/%{lib_dir_name}/libnss_files.so
+%{cross_sysroot}/usr/%{lib_dir_name}/libnss_hesiod.so
+%{cross_sysroot}/usr/%{lib_dir_name}/libnss_nis.so
+%{cross_sysroot}/usr/%{lib_dir_name}/libnss_nisplus.so
+%{cross_sysroot}/usr/%{lib_dir_name}/libpthread.a
+%{cross_sysroot}/usr/%{lib_dir_name}/libpthread.so
+%{cross_sysroot}/usr/%{lib_dir_name}/libpthread_nonshared.a
+%{cross_sysroot}/usr/%{lib_dir_name}/libresolv.a
+%{cross_sysroot}/usr/%{lib_dir_name}/libresolv.so
+%{cross_sysroot}/usr/%{lib_dir_name}/librpcsvc.a
+%{cross_sysroot}/usr/%{lib_dir_name}/librt.a
+%{cross_sysroot}/usr/%{lib_dir_name}/librt.so
+%{cross_sysroot}/usr/%{lib_dir_name}/libthread_db.so
+%{cross_sysroot}/usr/%{lib_dir_name}/libutil.a
+%{cross_sysroot}/usr/%{lib_dir_name}/libutil.so
%dir %{cross_sysroot}/usr/libexec/getconf
+%if %{cross_arch} == "arm"
%{cross_sysroot}/usr/libexec/getconf/POSIX_V6_ILP32_OFF32
%{cross_sysroot}/usr/libexec/getconf/POSIX_V6_ILP32_OFFBIG
%{cross_sysroot}/usr/libexec/getconf/POSIX_V7_ILP32_OFF32
%{cross_sysroot}/usr/libexec/getconf/POSIX_V7_ILP32_OFFBIG
%{cross_sysroot}/usr/libexec/getconf/XBS5_ILP32_OFF32
%{cross_sysroot}/usr/libexec/getconf/XBS5_ILP32_OFFBIG
+%else
+%if %{cross_arch} == "arm64"
+%{cross_sysroot}/usr/libexec/getconf/POSIX_V6_LP64_OFF64
+%{cross_sysroot}/usr/libexec/getconf/POSIX_V7_LP64_OFF64
+%{cross_sysroot}/usr/libexec/getconf/XBS5_LP64_OFF64
+%endif
+%endif
%{cross_sysroot}/usr/sbin/iconvconfig
%{cross_sysroot}/usr/sbin/nscd
%{cross_sysroot}/usr/sbin/zdump
@@ -520,6 +567,10 @@ chmod +x %{__ar_no_strip}
%changelog
+* Mon Dec 28 2015 Ting-Wei Lan <lantw44@gmail.com> - 2.22-5
+- Sync configure options with Fedora
+- Support arm-linux-gnueabihf and aarch64-linux-gnu
+
* Sat Dec 05 2015 Ting-Wei Lan <lantw44@gmail.com> - 2.22-4
- Fix the build with dnf on Fedora 24
diff --git a/arm-linux-gnueabi-toolchain/create-arch.sh b/arm-linux-gnueabi-toolchain/create-arch.sh
new file mode 100755
index 0000000..dd96f39
--- /dev/null
+++ b/arm-linux-gnueabi-toolchain/create-arch.sh
@@ -0,0 +1,48 @@
+#!/bin/sh
+
+srcdir="`dirname "$0"`"
+test -z "${srcdir}" && srcdir=.
+
+base_arch="arm"
+base_triplet="arm-linux-gnueabi"
+base_dir="${base_triplet}-toolchain"
+
+if [ "$#" '!=' "3" ]; then
+ echo 'Usage: create-arch.sh ARCH TRIPLET OUTPUT_DIRECTORY'
+ echo 'Example: create-arch.sh arm arm-linux-gnueabihf /home/copr/armhf'
+ echo 'Example: create-arch.sh arm64 aarch-linux-gnu /home/copr/arm64'
+ exit 1
+fi
+
+new_arch="$1"
+new_triplet="$2"
+new_dir="$3"
+
+for spec in "${srcdir}/../${base_dir}/${base_triplet}"*/*.spec; do
+ base_pkg_name="`basename "${spec}" | sed 's/\.spec$//'`"
+ new_pkg_name="`echo "${base_pkg_name}" | sed "s/^${base_triplet}/${new_triplet}/"`"
+ echo "Creating RPM spec: ${new_pkg_name}"
+ mkdir -p "${new_dir}/${new_pkg_name}"
+ sed -e "1s/${base_arch}/${new_arch}/" -e "2s/${base_triplet}/${new_triplet}/" \
+ "${spec}" > "${new_dir}/${new_pkg_name}/${new_pkg_name}.spec"
+done
+
+for boot_spec in bootstrap; do
+ base_pkg_name="${new_triplet}-glibc"
+ new_pkg_name="${new_triplet}-glibc-headers"
+ echo "Creating bootstrap RPM spec: ${new_pkg_name}"
+ mkdir -p "${new_dir}/${new_pkg_name}"
+ { echo '%define bootstrap 1';
+ cat "${new_dir}/${base_pkg_name}/${base_pkg_name}.spec"; } > \
+ "${new_dir}/${new_pkg_name}/${new_pkg_name}.spec"
+done
+
+for boot_spec in pass1 pass2; do
+ base_pkg_name="${new_triplet}-gcc"
+ new_pkg_name="${new_triplet}-gcc-${boot_spec}"
+ echo "Creating bootstrap RPM spec: ${new_pkg_name}"
+ mkdir -p "${new_dir}/${new_pkg_name}"
+ { echo "%define cross_stage ${boot_spec}";
+ cat "${new_dir}/${base_pkg_name}/${base_pkg_name}.spec"; } > \
+ "${new_dir}/${new_pkg_name}/${new_pkg_name}.spec"
+done