diff options
author | Li Jinjing <jinjingx.li@intel.com> | 2015-01-19 18:49:21 +0800 |
---|---|---|
committer | Li Jinjing <jinjingx.li@intel.com> | 2015-01-19 19:25:58 +0800 |
commit | b8610ee88814655accde9f5170c23b6a0e09cd78 (patch) | |
tree | 8edf2426350f993ed0d881f87ee1e047f6f9e448 | |
parent | 15b11d522117cdd20fc42689ac6a43a6b5c79dd3 (diff) | |
download | qemu-accel-b8610ee88814655accde9f5170c23b6a0e09cd78.tar.gz qemu-accel-b8610ee88814655accde9f5170c23b6a0e09cd78.tar.bz2 qemu-accel-b8610ee88814655accde9f5170c23b6a0e09cd78.zip |
remove unused files
Currently, qemu-accel-armv7el.spec and qemu-accel-armv7hl.spec has not been
submmited to OBS for building, for consistency of OBS and gbs, it's necessary
to clean it up.
Without this change, `gbs build -A x86_64` results will contain build error
with dependency issue below, no packages could offord *-gcc47-* and *-gcc48-*
now. The build result will be much cleaner after applying this patch.
Dependency issues:
qemu-accel-armv7el:
nothing provides cross-armv7el-gcc47-icecream-backend
qemu-accel-armv7hl:
nothing provides cross-armv7hl-gcc48-icecream-backend
Change-Id: I713cb67032a98da450453a89f6de5304b4e1eef0
Signed-off-by: Li Jinjing <jinjingx.li@intel.com>
-rw-r--r-- | packaging/qemu-accel-armv7el.spec | 350 | ||||
-rw-r--r-- | packaging/qemu-accel-armv7hl.changes | 18 | ||||
-rw-r--r-- | packaging/qemu-accel-armv7hl.spec | 287 |
3 files changed, 0 insertions, 655 deletions
diff --git a/packaging/qemu-accel-armv7el.spec b/packaging/qemu-accel-armv7el.spec deleted file mode 100644 index 96a8e46..0000000 --- a/packaging/qemu-accel-armv7el.spec +++ /dev/null @@ -1,350 +0,0 @@ -# -# spec file for package qemu-accel-armv7el -# -# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany. -# -# All modifications and additions to the file contributed by third parties -# remain the property of their copyright owners, unless otherwise agreed -# upon. The license for this file, and modifications and additions to the -# file, is the same license as for the pristine package itself (unless the -# license for the pristine package is not an Open Source License, in which -# case the license is the MIT License). An "Open Source License" is a -# license that conforms to the Open Source Definition (Version 1.9) -# published by the Open Source Initiative. - -# Please submit bugfixes or comments via http://bugs.opensuse.org/ -# - - -# Choose which gcc hijack method (if any) to use. -# Only select one of the two at a time! -%define use_icecream 0 -%define hijack_gcc 1 - -Name: qemu-accel-armv7el -Version: 0.2 -Release: 0 -AutoReqProv: off -BuildRequires: cross-arm-binutils -BuildRequires: cross-armv7el-gcc47-icecream-backend -#BuildRequires: expect -BuildRequires: fdupes -BuildRequires: glibc-locale -BuildRequires: gcc-c++ -BuildRequires: gettext-runtime -BuildRequires: gettext-tools -BuildRequires: m4 -# required for xxd -BuildRequires: vim -BuildRequires: patchelf -#BuildRequires: rpmlint-mini -BuildRequires: qemu-linux-user -%if %use_icecream -BuildRequires: icecream -BuildRequires: schroot -%endif -Requires: coreutils -Summary: Native binaries for speeding up cross compile -License: GPL-2.0 -Group: Development/Libraries/Cross -ExclusiveArch: x86_64 - -# default path in qemu -%define HOST_ARCH %(echo %{_host_cpu} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;") -%define our_path /emul/%{HOST_ARCH}-for-arm -%define icecream_cross_env cross-armv7el-gcc47-icecream-backend_x86_64 - -%description -This package is used in armv7el architecture builds using qemu to speed up builds -with native binaries. - This should not be installed on systems, it is just intended for qemu environments. - -%prep -%setup -q -D -T -n . - -%build - -%install -binaries="/%_lib/libnsl.so.1 /%_lib/libnss_compat.so.2" # loaded via dlopen by glibc -%ifarch %ix86 - LD="/lib/ld-linux.so.2" -%else -%ifarch x86_64 - LD="/lib64/ld-linux-x86-64.so.2" -%else - echo "ERROR unhandled arch" - exit 1 -%endif -%endif - -# XXX this fails with the following error: -# /opt/testing/bin/python: error while loading shared libraries: libpython2.7.so.1.0: wrong ELF class: ELFCLASS32 - -for executable in $LD \ - /bin/{bash,grep,gzip,sed,tar,rpm} \ - /usr/lib64/libnssdbm3.so /usr/lib64/libsoftokn3.so /lib64/libfreebl3.so \ - /usr/bin/{bzip2,cat,expr,make,m4,mkdir,msgexec,msgfmt,msgcat,msgmerge,mv,patch,rm,rmdir,rpmbuild,xz,xzdec} \ -%if %use_icecream - /usr/sbin/iceccd /usr/bin/icecc /usr/bin/schroot \ -%endif - /usr/arm-tizen-linux-gnueabi/bin/{as,ar,ld,ld.bfd,objcopy,objdump} -do - binaries="$binaries $executable `ldd $executable | sed -n 's,.*=> \(/[^ ]*\) .*,\1,p'`" -done - -%if %hijack_gcc -# extract cross-compiler -mkdir -p cross-compiler-tmp -for executable in $(tar -C cross-compiler-tmp -xvzf /usr/share/icecream-envs/cross-armv7el-gcc47-icecream-backend_*.tar.gz); do - if [ ! -d "cross-compiler-tmp/$executable" ]; then - binaries="$binaries cross-compiler-tmp/$executable" - fi -done -%endif - -%if %use_icecream -mkdir -p %buildroot%{our_path}/opt/icecream/bin -mkdir -p %buildroot/opt/icecream/bin -for p in gcc g++ cc c++ ; do - ln -s %{our_path}/usr/bin/icecc %buildroot%{our_path}/opt/icecream/bin/$p - echo "#!/bin/bash -exec /usr/bin/$p \"\$@\"" > %buildroot/opt/icecream/bin/$p - chmod a+x %buildroot/opt/icecream/bin/$p -done -# to have it in the $PATH -ln -s %{our_path}/usr/bin/schroot %buildroot/opt/icecream/bin/schroot -mkdir -p %buildroot/etc/schroot/chroot.d -mkdir -p %buildroot/%_lib/security - -# unfortunately pam does not look for emul (yet) -# as soon as we have lib64 in arm, we're doomed :) -cp /lib64/security/pam_permit.so %buildroot/%_lib/security -mkdir -p %buildroot/etc/pam.d/ -for i in auth session account password session; do - echo "$i optional pam_permit.so" >> %buildroot/etc/pam.d/schroot -done - -# Install -mkdir -p %buildroot/usr/share/icecream-envs/%{icecream_cross_env} -pushd %buildroot/usr/share/icecream-envs/%{icecream_cross_env} -tar xvf /usr/share/icecream-envs/%{icecream_cross_env}.tar.gz -mkdir tmp -chmod a+w tmp -popd -mkdir -p %{buildroot}/etc/profile.d -echo "export ICECC_SCHROOT=cross" > %{buildroot}/etc/profile.d/icecream.sh -echo "export ICECC_CC=/usr/bin/gcc-4.7" >> %{buildroot}/etc/profile.d/icecream.sh -echo "export ICECC_CXX=/usr/bin/g++-4.7" >> %{buildroot}/etc/profile.d/icecream.sh -echo "#export ICECC_DEBUG=debug" >> %{buildroot}/etc/profile.d/icecream.sh -echo 'export PATH=/opt/icecream/bin:$PATH' >> %{buildroot}/etc/profile.d/icecream.sh - -mkdir -p %{buildroot}/etc/schroot -( -echo "[cross]" -echo "directory=/usr/share/icecream-envs/%{icecream_cross_env}" -echo "users=abuild" -) > %{buildroot}/etc/schroot/schroot.conf -%endif - -%if %hijack_gcc -# Install -mkdir -p %buildroot%{our_path}/usr/share/icecream-envs/%{icecream_cross_env} -cp -a /usr/share/icecream-envs/%{icecream_cross_env}.tar.gz \ - %buildroot%{our_path}/usr/share/icecream-envs -# And extract it for direct usage -tar xvz -C %buildroot%{our_path}/usr/share/icecream-envs/%{icecream_cross_env} -f /usr/share/icecream-envs/cross-armv7el-gcc47-icecream-backend_*.tar.gz -# It needs a tmp working directory which is writable -install -d -m0755 %buildroot%{our_path}/usr/share/icecream-envs -%endif - -for binary in $binaries -do - outfile=%buildroot%{our_path}$(echo $binary | sed 's:cross-compiler-tmp::;s:/opt/cross/armv7el-tizen-linux-gnueabi:/usr:') - [ -f $outfile ] && continue - mkdir -p ${outfile%/*} - cp -aL $binary $outfile - # XXX hack alert! Only works for armv7l-on-x86_64 - [ "$(basename $outfile)" = "bash" ] && sed -i 's/x86_64/armv7l/g' "$outfile" - objdump -s -j .rodata -j .data $outfile | sed 's/^ *\([a-z0-9]*\)/\1:/' | \ - grep ': ' | grep -v 'file format' | grep -v 'Contents of section' | \ - xxd -g4 -r - $outfile.data - if grep -q "%{HOST_ARCH}"$outfile.data; then - echo "ERROR file $binary leaks host information into the guest" - exit 1 - fi - rm -f $outfile.data - [ "$binary" == "$LD" ] && continue - patchelf --debug --set-rpath "%our_path/%_lib:%our_path%_libdir" $outfile -# not all binaries have an .interp section - if patchelf --print-interpreter $outfile; then - patchelf --debug --set-interpreter %{our_path}$LD $outfile - fi -done - -# make gconv libraries available (needed for msg*) -mkdir -p %{buildroot}/usr/lib64/gconv -cp -a /usr/lib64/gconv/* "%{buildroot}/usr/lib64/gconv/" - -# create symlinks for bash -ln -sf bash "%{buildroot}%{our_path}/bin/sh" -ln -sf ../../bin/bash "%{buildroot}%{our_path}/usr/bin/sh" -# create symlink for gzip -ln -sf ../../bin/gzip "%{buildroot}%{our_path}/usr/bin/gzip" -ln -sf ../../bin/sed "%{buildroot}%{our_path}/usr/bin/sed" - -# binutils needs to be exposed in /usr/bin -for i in ar ld ld.bfd objcopy objdump; do - ln -s ../arm-tizen-linux-gnueabi/bin/$i %{buildroot}%{our_path}/usr/bin/$i -done - -%if %hijack_gcc -# create symlinks for lib64 / lib mappings (gcc!) -mkdir -p "%{buildroot}%{our_path}/usr/lib/" -# binutils secondary directories -mkdir -p %{buildroot}%{our_path}/usr/armv7el-tizen-linux-gnueabi/ -ln -sf ../bin %{buildroot}%{our_path}/usr/armv7el-tizen-linux-gnueabi/bin - -ln -sf ../lib64/gcc "%{buildroot}%{our_path}/usr/lib/gcc" -# g++ can also be called c++ -ln -sf g++ "%{buildroot}%{our_path}/usr/bin/c++" -# gcc can also be called cc -ln -sf gcc "%{buildroot}%{our_path}/usr/bin/cc" -# gcc can also be called gcc-4.7 -ln -sf gcc "%{buildroot}%{our_path}/usr/bin/gcc-4.7" - -# nasty hack: If LIBRARY_PATH is set, native gcc adds the contents to its -# library search list, but cross gcc does not. So switch to all -# native in these situations. -mv %{buildroot}%{our_path}/usr/bin/gcc{,.real} -echo '#!/bin/bash -if [ "$LIBRARY_PATH" ]; then - mv %{our_path}{,.bkp} - exec /usr/bin/qemu-arm /usr/bin/gcc "$@" -fi -exec -a /usr/bin/gcc %{our_path}/usr/bin/gcc.real "$@" -' > %{buildroot}%{our_path}/usr/bin/gcc -chmod +x %{buildroot}%{our_path}/usr/bin/gcc -# -# as is not writing right EABI ELF header inside of arm environment for unknown reason -# -mv %{buildroot}%{our_path}/usr/bin/as{,.real} -echo '#!/bin/bash -exec -a /usr/bin/as %{our_path}/usr/bin/as.real -meabi=5 "$@" -' > %{buildroot}%{our_path}/usr/bin/as -chmod +x %{buildroot}%{our_path}/usr/bin/as - -# allow abuild to do the mv -chmod 755 %{buildroot}/emul - -# make cross ld work with emulated compilers -mv %{buildroot}%{our_path}/usr/arm-tizen-linux-gnueabi/bin/ld{,.real} -echo '#!/bin/bash -if [ -n "$LD_LIBRARY_PATH" ]; then - # arguments as file - if [ "${1:0:1}" = "@" ]; then - FILE="${1:1}" - grep -v -- "--sysroot=" "$FILE" > "$FILE.fixed" - mv "$FILE.fixed" "$FILE" - fi - - # cross ld does not work correctly using LD_LIBRARY_PATH, use arm version - args=() - for i in "$@"; do - if [ "${i:0:10}" != "--sysroot=" ]; then - args=(${args[@]} "$i") - fi - done - exec /usr/bin/qemu-arm /usr/bin/ld "${args[@]}" -fi -for i in "$@"; do - if [ "${i:0:10}" = "--sysroot=" ]; then - exec -a "$0" %{our_path}/usr/arm-tizen-linux-gnueabi/bin/ld.real "$@" - fi -done - -exec -a "$0" %{our_path}/usr/arm-tizen-linux-gnueabi/bin/ld.real --sysroot=/ "$@" -' > %{buildroot}%{our_path}/usr/arm-tizen-linux-gnueabi/bin/ld -chmod +x %{buildroot}%{our_path}/usr/arm-tizen-linux-gnueabi/bin/ld - -# To support gcc sysroot -mkdir -p %{buildroot}/usr/armv7el-tizen-linux-gnueabi -ln -sf .. %{buildroot}/usr/armv7el-tizen-linux-gnueabi/usr -%endif - -# Make QEMU available through /qemu -mkdir %buildroot/qemu -cp -L /usr/bin/qemu-arm{,-binfmt} %buildroot/qemu/ - -%fdupes -s %{buildroot} - -export NO_BRP_CHECK_RPATH="true" - -# Install glibc-locale, otherwise msgmerge >= 0.18.3 fails -cp -R /usr/lib/{gconv,locale} %{buildroot}%{our_path}/usr/lib -cp -R /usr/share/locale %{buildroot}%{our_path}/usr/share -# Fix permissions for abuild -chmod 755 %{buildroot}%{our_path}/usr/lib/{gconv,locale} -chmod 755 %{buildroot}%{our_path}/usr/share/locale - -%post -set -x -if [ $(uname -m) = armv7l ]; then - # XXX find a way around this for cross-gcc - mkdir -p /usr/lib64/gcc /lib64 || true - ln -sf ../../lib/gcc/armv7el-tizen-linux-gnueabi /usr/lib64/gcc/armv7hl-tizen-linux-gnueabi || true - ln -sf %{our_path}/lib64/libnsl.so.1 /lib64/libnsl.so.1 || true -fi -%if %use_icecream -chmod 4755 %{our_path}/usr/bin/schroot -%endif -# use qemu-arm{,-binfmt} from a safe directory, so even overwriting -# /usr/bin/$file won't affect our ability to run arm code - -# load the binfmt_misc module -if [ ! -d /proc/sys/fs/binfmt_misc ]; then - builtin echo "Calling modprobe" - /sbin/modprobe binfmt_misc -fi - -did_mount_it="" - -if [ ! -f /proc/sys/fs/binfmt_misc/register ]; then - builtin echo "mounting binfmt_misc" - mount binfmt_misc -t binfmt_misc /proc/sys/fs/binfmt_misc - did_mount_it=1 -fi - -if [ -e /proc/sys/fs/binfmt_misc/arm ]; then - builtin echo "Registering accelerated handler" - builtin echo -1 > /proc/sys/fs/binfmt_misc/arm - builtin echo ':arm:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/qemu/qemu-arm-binfmt:P' > /proc/sys/fs/binfmt_misc/register -fi - -if [ $did_mount_it ]; then - builtin echo "Unmounting again."; - umount /proc/sys/fs/binfmt_misc -fi - -builtin echo "All done" - -# Fix up sysroot paths -rm -rf /usr/armv7el-tizen-linux-gnueabi/lib -ln -s /lib /usr/armv7el-tizen-linux-gnueabi/lib - -%files -%defattr(-,root,root) -%if %use_icecream -/etc/profile.d -/etc/pam.d -/etc/schroot -/lib64/security/pam_permit.so -/usr/share/icecream-envs -/opt/icecream/bin -%endif -%dir /usr/armv7el-tizen-linux-gnueabi -/usr/armv7el-tizen-linux-gnueabi/usr -/emul -/qemu -/usr/lib64 - -%changelog diff --git a/packaging/qemu-accel-armv7hl.changes b/packaging/qemu-accel-armv7hl.changes deleted file mode 100644 index 09582ab..0000000 --- a/packaging/qemu-accel-armv7hl.changes +++ /dev/null @@ -1,18 +0,0 @@ -* Tue Aug 27 2013 Anas Nashif <anas.nashif@intel.com> submit/tizen/20130711.123431@93c2970 -- support gcc 48 - -* Mon Jun 03 2013 Anas Nashif <anas.nashif@intel.com> submit/tizen/20130531.044522@60cac50 -- add armv7l support - -* Fri May 31 2013 Anas Nashif <anas.nashif@intel.com> submit/tizen/20130530.193729@55972e4 -- link bin to usr/bin - -* Thu May 30 2013 Anas Nashif <anas.nashif@intel.com> submit/tizen/20130530.115151@0b238a7 -- Add rpmdb to binary list - -* Thu May 30 2013 Anas Nashif <anas.nashif@intel.com> submit/tizen/20130530.111119@de0b4dd -- Fix build on ARM - -* Thu May 30 2013 Anas Nashif <anas.nashif@intel.com> submit/tizen/20130530.104715@e8395c9 -- link to right bash - diff --git a/packaging/qemu-accel-armv7hl.spec b/packaging/qemu-accel-armv7hl.spec deleted file mode 100644 index e89d854..0000000 --- a/packaging/qemu-accel-armv7hl.spec +++ /dev/null @@ -1,287 +0,0 @@ -# -# spec file for package qemu-accel-armv7hl -# -# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany. -# -# All modifications and additions to the file contributed by third parties -# remain the property of their copyright owners, unless otherwise agreed -# upon. The license for this file, and modifications and additions to the -# file, is the same license as for the pristine package itself (unless the -# license for the pristine package is not an Open Source License, in which -# case the license is the MIT License). An "Open Source License" is a -# license that conforms to the Open Source Definition (Version 1.9) -# published by the Open Source Initiative. - -# Please submit bugfixes or comments via http://bugs.opensuse.org/ -# - - -# Choose which gcc hijack method (if any) to use. -# Only select one of the two at a time! -%define hijack_gcc 1 - -Name: qemu-accel-armv7hl -Version: 0.2 -Release: 0 -AutoReqProv: off -BuildRequires: cross-arm-binutils -BuildRequires: cross-armv7hl-gcc48-icecream-backend -#BuildRequires: expect -BuildRequires: fdupes -BuildRequires: glibc-locale -BuildRequires: gcc-c++ -BuildRequires: gettext-runtime -BuildRequires: gettext-tools -BuildRequires: m4 -# required for xxd -BuildRequires: vim -BuildRequires: patchelf -#BuildRequires: rpmlint-mini -BuildRequires: qemu-linux-user -Requires: coreutils -Summary: Native binaries for speeding up cross compile -License: GPL-2.0 -Group: Development/Libraries/Cross -ExclusiveArch: x86_64 - -# default path in qemu -%define HOST_ARCH %(echo %{_host_cpu} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;") -%define our_path /emul/%{HOST_ARCH}-for-arm -%define icecream_cross_env cross-armv7hl-gcc48-icecream-backend_x86_64 - -%description -This package is used in armv7hl architecture builds using qemu to speed up builds -with native binaries. - This should not be installed on systems, it is just intended for qemu environments. - -%prep -%setup -q -D -T -n . - -%build - -%install -binaries="/%_lib/libnsl.so.1 /%_lib/libnss_compat.so.2 %{_libdir}/rpm-plugins/msm.so" # loaded via dlopen by glibc -%ifarch %ix86 - LD="/lib/ld-linux.so.2" -%else -%ifarch x86_64 - LD="/lib64/ld-linux-x86-64.so.2" -%else - echo "ERROR unhandled arch" - exit 1 -%endif -%endif - -# XXX this fails with the following error: -# /opt/testing/bin/python: error while loading shared libraries: libpython2.7.so.1.0: wrong ELF class: ELFCLASS32 - -for executable in $LD \ - /usr/bin/{bash,rpm,rpmdb} \ - /usr/bin/{gzip,grep,sed,tar} \ - /usr/lib64/libnssdbm3.so /usr/lib64/libsoftokn3.so /lib64/libfreebl3.so \ - /usr/bin/{bzip2,cat,expr,make,m4,mkdir,msgexec,msgfmt,msgcat,msgmerge,mv,patch,rm,rmdir,rpmbuild,xz,xzdec} \ - /usr/arm-tizen-linux-gnueabi/bin/{as,ar,ld,ld.bfd,objcopy,objdump} -do - binaries="$binaries $executable `ldd $executable | sed -n 's,.*=> \(/[^ ]*\) .*,\1,p'`" -done - -%if %hijack_gcc -# extract cross-compiler -mkdir -p cross-compiler-tmp -for executable in $(tar -C cross-compiler-tmp -xvzf /usr/share/icecream-envs/cross-armv7hl-gcc48-icecream-backend_*.tar.gz); do - if [ ! -d "cross-compiler-tmp/$executable" ]; then - binaries="$binaries cross-compiler-tmp/$executable" - fi -done -%endif - - -%if %hijack_gcc -# Install -mkdir -p %buildroot%{our_path}/usr/share/icecream-envs/%{icecream_cross_env} -cp -a /usr/share/icecream-envs/%{icecream_cross_env}.tar.gz \ - %buildroot%{our_path}/usr/share/icecream-envs -# And extract it for direct usage -tar xvz -C %buildroot%{our_path}/usr/share/icecream-envs/%{icecream_cross_env} -f /usr/share/icecream-envs/cross-armv7hl-gcc48-icecream-backend_*.tar.gz -# It needs a tmp working directory which is writable -install -d -m0755 %buildroot%{our_path}/usr/share/icecream-envs -%endif - -for binary in $binaries -do - outfile=%buildroot%{our_path}$(echo $binary | sed 's:cross-compiler-tmp::;s:/opt/cross/armv7hl-tizen-linux-gnueabi:/usr:') - [ -f $outfile ] && continue - mkdir -p ${outfile%/*} - cp -aL $binary $outfile - # XXX hack alert! Only works for armv7l-on-x86_64 - [ "$(basename $outfile)" = "bash" ] && sed -i 's/x86_64/armv7l/g' "$outfile" - objdump -s -j .rodata -j .data $outfile | sed 's/^ *\([a-z0-9]*\)/\1:/' | \ - grep ': ' | grep -v 'file format' | grep -v 'Contents of section' | \ - xxd -g4 -r - $outfile.data - if grep -q "%{HOST_ARCH}"$outfile.data; then - echo "ERROR file $binary leaks host information into the guest" - exit 1 - fi - rm -f $outfile.data - [ "$binary" == "$LD" ] && continue - patchelf --debug --set-rpath "%our_path/%_lib:%our_path%_libdir" $outfile -# not all binaries have an .interp section - if patchelf --print-interpreter $outfile; then - patchelf --debug --set-interpreter %{our_path}$LD $outfile - fi -done - -# make gconv libraries available (needed for msg*) -mkdir -p %{buildroot}/usr/lib64/gconv -cp -a /usr/lib64/gconv/* "%{buildroot}/usr/lib64/gconv/" - -# create symlinks for bash -#ln -sf ../usr/bin/bash "%{buildroot}%{our_path}/bin/sh" -#ln -sf ../../bin/bash "%{buildroot}%{our_path}/usr/bin/sh" - -# binutils needs to be exposed in /usr/bin -for i in ar ld ld.bfd objcopy objdump; do - ln -s ../arm-tizen-linux-gnueabi/bin/$i %{buildroot}%{our_path}/usr/bin/$i -done -pushd %{buildroot}%{our_path} && ln -s usr/bin && popd - -%if %hijack_gcc -# create symlinks for lib64 / lib mappings (gcc!) -mkdir -p "%{buildroot}%{our_path}/usr/lib/" -# binutils secondary directories -mkdir -p %{buildroot}%{our_path}/usr/armv7hl-tizen-linux-gnueabi/ -ln -sf ../bin %{buildroot}%{our_path}/usr/armv7hl-tizen-linux-gnueabi/bin - -ln -sf ../lib64/gcc "%{buildroot}%{our_path}/usr/lib/gcc" -# g++ can also be called c++ -ln -sf g++ "%{buildroot}%{our_path}/usr/bin/c++" -# gcc can also be called cc -ln -sf gcc "%{buildroot}%{our_path}/usr/bin/cc" -# gcc can also be called gcc-4.8 -ln -sf gcc "%{buildroot}%{our_path}/usr/bin/gcc-4.8" - -# nasty hack: If LIBRARY_PATH is set, native gcc adds the contents to its -# library search list, but cross gcc does not. So switch to all -# native in these situations. -mv %{buildroot}%{our_path}/usr/bin/gcc{,.real} -echo '#!/bin/bash -if [ "$LIBRARY_PATH" ]; then - mv %{our_path}{,.bkp} - exec /usr/bin/qemu-arm /usr/bin/gcc "$@" -fi -exec -a /usr/bin/gcc %{our_path}/usr/bin/gcc.real "$@" -' > %{buildroot}%{our_path}/usr/bin/gcc -chmod +x %{buildroot}%{our_path}/usr/bin/gcc -# -# as is not writing right EABI ELF header inside of arm environment for unknown reason -# -mv %{buildroot}%{our_path}/usr/bin/as{,.real} -echo '#!/bin/bash -exec -a /usr/bin/as %{our_path}/usr/bin/as.real -meabi=5 "$@" -' > %{buildroot}%{our_path}/usr/bin/as -chmod +x %{buildroot}%{our_path}/usr/bin/as - -# allow abuild to do the mv -chmod 755 %{buildroot}/emul - -# make cross ld work with emulated compilers -mv %{buildroot}%{our_path}/usr/arm-tizen-linux-gnueabi/bin/ld{,.real} -echo '#!/bin/bash -if [ -n "$LD_LIBRARY_PATH" ]; then - # arguments as file - if [ "${1:0:1}" = "@" ]; then - FILE="${1:1}" - grep -v -- "--sysroot=" "$FILE" > "$FILE.fixed" - mv "$FILE.fixed" "$FILE" - fi - - # cross ld does not work correctly using LD_LIBRARY_PATH, use arm version - args=() - for i in "$@"; do - if [ "${i:0:10}" != "--sysroot=" ]; then - args=(${args[@]} "$i") - fi - done - exec /usr/bin/qemu-arm /usr/bin/ld "${args[@]}" -fi -for i in "$@"; do - if [ "${i:0:10}" = "--sysroot=" ]; then - exec -a "$0" %{our_path}/usr/arm-tizen-linux-gnueabi/bin/ld.real "$@" - fi -done - -exec -a "$0" %{our_path}/usr/arm-tizen-linux-gnueabi/bin/ld.real --sysroot=/ "$@" -' > %{buildroot}%{our_path}/usr/arm-tizen-linux-gnueabi/bin/ld -chmod +x %{buildroot}%{our_path}/usr/arm-tizen-linux-gnueabi/bin/ld - -# To support gcc sysroot -mkdir -p %{buildroot}/usr/armv7hl-tizen-linux-gnueabi -ln -sf .. %{buildroot}/usr/armv7hl-tizen-linux-gnueabi/usr -%endif - -# Make QEMU available through /qemu -mkdir %buildroot/qemu -cp -L /usr/bin/qemu-arm{,-binfmt} %buildroot/qemu/ - -%fdupes -s %{buildroot} - -export NO_BRP_CHECK_RPATH="true" - -# Install glibc-locale, otherwise msgmerge >= 0.18.3 fails -cp -R /usr/lib/{gconv,locale} %{buildroot}%{our_path}/usr/lib -cp -R /usr/share/locale %{buildroot}%{our_path}/usr/share -# Fix permissions for abuild -chmod 755 %{buildroot}%{our_path}/usr/lib/{gconv,locale} -chmod 755 %{buildroot}%{our_path}/usr/share/locale - -%post -set -x -if [ $(uname -m) = armv7l ]; then - # XXX find a way around this for cross-gcc - mkdir -p /usr/lib64/gcc /lib64 || true - ln -sf ../../lib/gcc/armv7hl-tizen-linux-gnueabi /usr/lib64/gcc/armv7hl-tizen-linux-gnueabi || true - ln -sf %{our_path}/lib64/libnsl.so.1 /lib64/libnsl.so.1 || true -fi -# use qemu-arm{,-binfmt} from a safe directory, so even overwriting -# /usr/bin/$file won't affect our ability to run arm code - -# load the binfmt_misc module -if [ ! -d /proc/sys/fs/binfmt_misc ]; then - builtin echo "Calling modprobe" - /sbin/modprobe binfmt_misc -fi - -did_mount_it="" - -if [ ! -f /proc/sys/fs/binfmt_misc/register ]; then - builtin echo "mounting binfmt_misc" - mount binfmt_misc -t binfmt_misc /proc/sys/fs/binfmt_misc - did_mount_it=1 -fi - -if [ -e /proc/sys/fs/binfmt_misc/arm ]; then - builtin echo "Registering accelerated handler" - builtin echo -1 > /proc/sys/fs/binfmt_misc/arm - builtin echo ':arm:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/qemu/qemu-arm-binfmt:P' > /proc/sys/fs/binfmt_misc/register -fi - -if [ $did_mount_it ]; then - builtin echo "Unmounting again."; - umount /proc/sys/fs/binfmt_misc -fi - -builtin echo "All done" - -# Fix up sysroot paths -rm -rf /usr/armv7hl-tizen-linux-gnueabi/lib -ln -s /lib /usr/armv7hl-tizen-linux-gnueabi/usr/lib - -%files -%defattr(-,root,root) -%dir /usr/armv7hl-tizen-linux-gnueabi -/usr/armv7hl-tizen-linux-gnueabi/usr -/emul -/qemu -/usr/lib64 - -%changelog |