arch i586 targets armv5tel:armv5tel armv6l:armv6l armv7l:armv7l armv7hl:armv7hl armv7nhl:armv7nhl
+arch x86_64 targets armv5tel:armv5tel armv6l:armv6l armv7l:armv7l armv7hl:armv7hl armv7nhl:armv7nhl
-cross-armv5tel-gcc-accel
+
+cross-armv5tel-gcc-accel-@X86@
targettype x86 block!
targettype 32bit block!
targettype armv6l block!
targettype armv5tel autoreqprov off
targettype armv5tel provides "cross-arm-gcc-accel"
- targettype armv5tel requires "glibc-x86-arm"
- targettype armv5tel requires "gmp-x86-arm"
- targettype armv5tel requires "libgcc-x86-arm"
- targettype armv5tel requires "mpfr-x86-arm"
- targettype armv5tel requires "mpc-x86-arm"
+ targettype armv5tel provides "cross-armv5tel-gcc-accel-armv5tel"
+ targettype armv5tel requires "eglibc-@X86@-arm"
+ targettype armv5tel requires "gmp-@X86@-arm"
+ targettype armv5tel requires "libgcc-@X86@-arm"
+ targettype armv5tel requires "mpfr-@X86@-arm"
+ targettype armv5tel requires "mpc-@X86@-arm"
targettype armv5tel requires "gcc"
targettype armv5tel requires "gcc-c++"
targettype armv5tel extension -arm
targettype armv5tel +/
targettype armv5tel -/usr/lib/debug
+ targettype armv5tel -/usr/lib64/debug
targettype armv5tel -/usr/src/debug
targettype armv5tel -/usr/share/man
targettype armv5tel -/usr/share/doc
targettype armv5tel post " echo \"GCCVER: $GCCVER GCCVER_NEW: $GCCVER_NEW \" "
targettype armv5tel post " if test "${GCCVER}" == "${GCCVER_NEW}"; then"
targettype armv5tel post " echo "GCC and GCC-accel versions match. Enabling cross-compiler." "
- targettype armv5tel post " for bin in c++ c89 c99 cpp g++ gcc gcov gcc-ar gcc-nm gcc-ranlib; do "
+ targettype armv5tel post " for bin in c++ cpp g++ gcc gcov; do "
targettype armv5tel post " binary="/usr/bin/${bin}" "
targettype armv5tel post " if test -L ${binary} -a -e ${binary}.orig-arm ; then"
targettype armv5tel post " echo "${binary} not installed or ${binary}.orig-arm already present !" "
targettype armv5tel post " done "
targettype armv5tel post " for bin in cc1 cc1plus collect2 lto-wrapper lto1 ; do "
- targettype armv5tel post " binary="/usr/libexec/gcc/armv5tel-tizen-linux-gnueabi/$GCCVER/$bin" "
+ targettype armv5tel post " binary="/usr/lib/gcc/armv5tel-tizen-linux-gnueabi/$GCCVER/$bin" "
targettype armv5tel post " if test -L ${binary} -a -e ${binary}.orig-arm ; then"
targettype armv5tel post " echo "${binary} not installed or ${binary}.orig-arm already present !" "
targettype armv5tel post " else "
- targettype armv5tel post " mv ${binary} ${binary}.orig-arm && cp <prefix>/usr/libexec/gcc/armv5tel-tizen-linux-gnueabi/$GCCVER_NEW/${bin} ${binary}"
+ targettype armv5tel post " mv ${binary} ${binary}.orig-arm && cp <prefix>/usr/lib/gcc/armv5tel-tizen-linux-gnueabi/$GCCVER_NEW/${bin} ${binary}"
targettype armv5tel post " fi "
targettype armv5tel post " done "
targettype armv5tel post " else"
targettype armv5tel post " echo "GCC and GCC-accel versions don't match. Rollback also binutils..." "
- targettype armv5tel post " for bin in addr2line ar as c++filt gprov ld ld.bfd nm objcopy objdump ranlib readelf size strings strip ; do"
+ targettype armv5tel post " for bin in addr2line ar as c++filt elfedit gprof ld ld.bfd ld.gold nm objcopy objdump ranlib readelf size strings strip ; do"
targettype armv5tel post " binary="/usr/bin/${bin}" "
targettype armv5tel post " if test -e ${binary}.orig-arm ; then"
targettype armv5tel post " rm ${binary} && mv ${binary}.orig-arm ${binary}"
targettype armv5tel post " echo "${binary}.orig-arm not present !" "
targettype armv5tel post " fi "
targettype armv5tel post " done "
- targettype armv5tel post " rm -f /usr/libexec/gcc/armv5tel-tizen-linux-gnueabi/${GCCVER}/ld"
- targettype armv5tel post " rm -f /usr/libexec/gcc/armv5tel-tizen-linux-gnueabi/${GCCVER}/ld.bfd"
+ targettype armv5tel post " rm -f /usr/lib/gcc/armv5tel-tizen-linux-gnueabi/${GCCVER}/ld"
+ targettype armv5tel post " rm -f /usr/lib/gcc/armv5tel-tizen-linux-gnueabi/${GCCVER}/ld.bfd"
+ targettype armv5tel post " rm -f /usr/lib/gcc/armv5tel-tizen-linux-gnueabi/${GCCVER}/ld.gold"
targettype armv5tel post " fi"
targettype armv5tel preun " export GCCVER=$(LANG=C gcc --version | head -1 | cut -d" " -f5) "
- targettype armv5tel preun " for i in c++ c89 c99 cpp g++ gcc gcov gcc-ar gcc-nm gcc-ranlib; do if test -e /usr/bin/${i}.orig-arm ; then rm /usr/bin/${i} ; mv /usr/bin/${i}.orig-arm /usr/bin/${i}; fi ; done "
- targettype armv5tel preun " for i in cc1 cc1plus collect2 lto-wrapper lto1 ; do cd /usr/libexec/gcc/armv5tel-tizen-linux-gnueabi/$GCCVER ; if test -e ${i}.orig-arm ; then rm ${i} ; mv ${i}.orig-arm ${i} ; fi ; done "
+ targettype armv5tel preun " for i in c++ cpp g++ gcc gcov; do if test -e /usr/bin/${i}.orig-arm ; then rm /usr/bin/${i} ; mv /usr/bin/${i}.orig-arm /usr/bin/${i}; fi ; done "
+ targettype armv5tel preun " for i in cc1 cc1plus collect2 lto-wrapper lto1 ; do cd /usr/lib/gcc/armv5tel-tizen-linux-gnueabi/$GCCVER ; if test -e ${i}.orig-arm ; then rm ${i} ; mv ${i}.orig-arm ${i} ; fi ; done "
-cross-armv6l-gcc-accel
+cross-armv6l-gcc-accel-@X86@
targettype x86 block!
targettype 32bit block!
targettype armv5tel block!
targettype armv6l autoreqprov off
targettype armv6l provides "cross-arm-gcc-accel"
- targettype armv6l requires "glibc-x86-arm"
- targettype armv6l requires "gmp-x86-arm"
- targettype armv6l requires "libgcc-x86-arm"
- targettype armv6l requires "mpfr-x86-arm"
- targettype armv6l requires "mpc-x86-arm"
+ targettype armv6l provides "cross-armv6l-gcc-accel-armv6l"
+ targettype armv6l requires "eglibc-@X86@-arm"
+ targettype armv6l requires "gmp-@X86@-arm"
+ targettype armv6l requires "libgcc-@X86@-arm"
+ targettype armv6l requires "mpfr-@X86@-arm"
+ targettype armv6l requires "mpc-@X86@-arm"
targettype armv6l requires "gcc"
targettype armv6l requires "gcc-c++"
targettype armv6l extension -arm
targettype armv6l +/
targettype armv6l -/usr/lib/debug
+ targettype armv6l -/usr/lib64/debug
targettype armv6l -/usr/src/debug
targettype armv6l -/usr/share/man
targettype armv6l -/usr/share/doc
targettype armv6l post " echo \"GCCVER: $GCCVER GCCVER_NEW: $GCCVER_NEW \" "
targettype armv6l post " if test "${GCCVER}" == "${GCCVER_NEW}"; then"
targettype armv6l post " echo "GCC and GCC-accel versions match. Enabling cross-compiler." "
- targettype armv6l post " for bin in c++ c89 c99 cpp g++ gcc gcov gcc-ar gcc-nm gcc-ranlib; do "
+ targettype armv6l post " for bin in c++ cpp g++ gcc gcov; do "
targettype armv6l post " binary="/usr/bin/${bin}" "
targettype armv6l post " if test -L ${binary} -a -e ${binary}.orig-arm ; then"
targettype armv6l post " echo "${binary} not installed or ${binary}.orig-arm already present !" "
targettype armv6l post " done "
targettype armv6l post " for bin in cc1 cc1plus collect2 lto-wrapper lto1 ; do "
- targettype armv6l post " binary="/usr/libexec/gcc/armv6l-tizen-linux-gnueabi/$GCCVER/$bin" "
+ targettype armv6l post " binary="/usr/lib/gcc/armv6l-tizen-linux-gnueabi/$GCCVER/$bin" "
targettype armv6l post " if test -L ${binary} -a -e ${binary}.orig-arm ; then"
targettype armv6l post " echo "${binary} not installed or ${binary}.orig-arm already present !" "
targettype armv6l post " else "
- targettype armv6l post " mv ${binary} ${binary}.orig-arm && cp <prefix>/usr/libexec/gcc/armv6l-tizen-linux-gnueabi/$GCCVER_NEW/${bin} ${binary}"
+ targettype armv6l post " mv ${binary} ${binary}.orig-arm && cp <prefix>/usr/lib/gcc/armv6l-tizen-linux-gnueabi/$GCCVER_NEW/${bin} ${binary}"
targettype armv6l post " fi "
targettype armv6l post " done "
targettype armv6l post " else"
targettype armv6l post " echo "GCC and GCC-accel versions don't match. Rollback also binutils..." "
- targettype armv6l post " for bin in addr2line ar as c++filt gprov ld ld.bfd nm objcopy objdump ranlib readelf size strings strip ; do"
+ targettype armv6l post " for bin in addr2line ar as c++filt elfedit gprof ld ld.bfd ld.gold nm objcopy objdump ranlib readelf size strings strip ; do"
targettype armv6l post " binary="/usr/bin/${bin}" "
targettype armv6l post " if test -e ${binary}.orig-arm ; then"
targettype armv6l post " rm ${binary} && mv ${binary}.orig-arm ${binary}"
targettype armv6l post " echo "${binary}.orig-arm not present !" "
targettype armv6l post " fi "
targettype armv6l post " done "
- targettype armv6l post " rm -f /usr/libexec/gcc/armv6l-tizen-linux-gnueabi/${GCCVER}/ld"
- targettype armv6l post " rm -f /usr/libexec/gcc/armv6l-tizen-linux-gnueabi/${GCCVER}/ld.bfd"
+ targettype armv6l post " rm -f /usr/lib/gcc/armv6l-tizen-linux-gnueabi/${GCCVER}/ld"
+ targettype armv6l post " rm -f /usr/lib/gcc/armv6l-tizen-linux-gnueabi/${GCCVER}/ld.bfd"
+ targettype armv6l post " rm -f /usr/lib/gcc/armv6l-tizen-linux-gnueabi/${GCCVER}/ld.gold"
targettype armv6l post " fi"
targettype armv6l preun " export GCCVER=$(LANG=C gcc --version | head -1 | cut -d" " -f5) "
- targettype armv6l preun " for i in c++ c89 c99 cpp g++ gcc gcov gcc-ar gcc-nm gcc-ranlib; do if test -e /usr/bin/${i}.orig-arm ; then rm /usr/bin/${i} ; mv /usr/bin/${i}.orig-arm /usr/bin/${i}; fi ; done "
- targettype armv6l preun " for i in cc1 cc1plus collect2 lto-wrapper lto1 ; do cd /usr/libexec/gcc/armv6l-tizen-linux-gnueabi/$GCCVER ; if test -e ${i}.orig-arm ; then rm ${i} ; mv ${i}.orig-arm ${i} ; fi ; done "
+ targettype armv6l preun " for i in c++ cpp g++ gcc gcov; do if test -e /usr/bin/${i}.orig-arm ; then rm /usr/bin/${i} ; mv /usr/bin/${i}.orig-arm /usr/bin/${i}; fi ; done "
+ targettype armv6l preun " for i in cc1 cc1plus collect2 lto-wrapper lto1 ; do cd /usr/lib/gcc/armv6l-tizen-linux-gnueabi/$GCCVER ; if test -e ${i}.orig-arm ; then rm ${i} ; mv ${i}.orig-arm ${i} ; fi ; done "
-cross-armv7l-gcc-accel
+cross-armv7l-gcc-accel-@X86@
targettype x86 block!
targettype 32bit block!
targettype armv5tel block!
targettype armv7l autoreqprov off
targettype armv7l provides "cross-arm-gcc-accel"
- targettype armv7l requires "glibc-x86-arm"
- targettype armv7l requires "gmp-x86-arm"
- targettype armv7l requires "libgcc-x86-arm"
- targettype armv7l requires "mpfr-x86-arm"
- targettype armv7l requires "mpc-x86-arm"
+ targettype armv7l provides "cross-armv7l-gcc-accel-armv7l"
+ targettype armv7l requires "eglibc-@X86@-arm"
+ targettype armv7l requires "gmp-@X86@-arm"
+ targettype armv7l requires "libgcc-@X86@-arm"
+ targettype armv7l requires "mpfr-@X86@-arm"
+ targettype armv7l requires "mpc-@X86@-arm"
targettype armv7l requires "gcc"
targettype armv7l requires "gcc-c++"
targettype armv7l extension -arm
targettype armv7l +/
targettype armv7l -/usr/lib/debug
+ targettype armv7l -/usr/lib64/debug
targettype armv7l -/usr/src/debug
targettype armv7l -/usr/share/man
targettype armv7l -/usr/share/doc
targettype armv7l post " echo \"GCCVER: $GCCVER GCCVER_NEW: $GCCVER_NEW \" "
targettype armv7l post " if test "${GCCVER}" == "${GCCVER_NEW}"; then"
targettype armv7l post " echo "GCC and GCC-accel versions match. Enabling cross-compiler." "
- targettype armv7l post " for bin in c++ c89 c99 cpp g++ gcc gcov gcc-ar gcc-nm gcc-ranlib; do "
+ targettype armv7l post " for bin in c++ cpp g++ gcc gcov; do "
targettype armv7l post " binary="/usr/bin/${bin}" "
targettype armv7l post " if test -L ${binary} -a -e ${binary}.orig-arm ; then"
targettype armv7l post " echo "${binary} not installed or ${binary}.orig-arm already present !" "
targettype armv7l post " done "
targettype armv7l post " for bin in cc1 cc1plus collect2 lto-wrapper lto1 ; do "
- targettype armv7l post " binary="/usr/libexec/gcc/armv7l-tizen-linux-gnueabi/$GCCVER/$bin" "
+ targettype armv7l post " binary="/usr/lib/gcc/armv7l-tizen-linux-gnueabi/$GCCVER/$bin" "
targettype armv7l post " if test -L ${binary} -a -e ${binary}.orig-arm ; then"
targettype armv7l post " echo "${binary} not installed or ${binary}.orig-arm already present !" "
targettype armv7l post " else "
- targettype armv7l post " mv ${binary} ${binary}.orig-arm && cp <prefix>/usr/libexec/gcc/armv7l-tizen-linux-gnueabi/$GCCVER_NEW/${bin} ${binary}"
+ targettype armv7l post " mv ${binary} ${binary}.orig-arm && cp <prefix>/usr/lib/gcc/armv7l-tizen-linux-gnueabi/$GCCVER_NEW/${bin} ${binary}"
targettype armv7l post " fi "
targettype armv7l post " done "
targettype armv7l post " else"
targettype armv7l post " echo "GCC and GCC-accel versions don't match. Rollback also binutils..." "
- targettype armv7l post " for bin in addr2line ar as c++filt gprov ld ld.bfd nm objcopy objdump ranlib readelf size strings strip ; do"
+ targettype armv7l post " for bin in addr2line ar as c++filt elfedit gprof ld ld.bfd ld.gold nm objcopy objdump ranlib readelf size strings strip ; do"
targettype armv7l post " binary="/usr/bin/${bin}" "
targettype armv7l post " if test -e ${binary}.orig-arm ; then"
targettype armv7l post " rm ${binary} && mv ${binary}.orig-arm ${binary}"
targettype armv7l post " echo "${binary}.orig-arm not present !" "
targettype armv7l post " fi "
targettype armv7l post " done "
- targettype armv7l post " rm -f /usr/libexec/gcc/armv7l-tizen-linux-gnueabi/${GCCVER}/ld"
- targettype armv7l post " rm -f /usr/libexec/gcc/armv7l-tizen-linux-gnueabi/${GCCVER}/ld.bfd"
+ targettype armv7l post " rm -f /usr/lib/gcc/armv7l-tizen-linux-gnueabi/${GCCVER}/ld"
+ targettype armv7l post " rm -f /usr/lib/gcc/armv7l-tizen-linux-gnueabi/${GCCVER}/ld.bfd"
+ targettype armv7l post " rm -f /usr/lib/gcc/armv7l-tizen-linux-gnueabi/${GCCVER}/ld.gold"
targettype armv7l post " fi"
targettype armv7l preun " export GCCVER=$(LANG=C gcc --version | head -1 | cut -d" " -f5) "
- targettype armv7l preun " for i in c++ c89 c99 cpp g++ gcc gcov gcc-ar gcc-nm gcc-ranlib; do if test -e /usr/bin/${i}.orig-arm ; then rm /usr/bin/${i} ; mv /usr/bin/${i}.orig-arm /usr/bin/${i}; fi ; done "
- targettype armv7l preun " for i in cc1 cc1plus collect2 lto-wrapper lto1 ; do cd /usr/libexec/gcc/armv7l-tizen-linux-gnueabi/$GCCVER ; if test -e ${i}.orig-arm ; then rm ${i} ; mv ${i}.orig-arm ${i} ; fi ; done "
+ targettype armv7l preun " for i in c++ cpp g++ gcc gcov; do if test -e /usr/bin/${i}.orig-arm ; then rm /usr/bin/${i} ; mv /usr/bin/${i}.orig-arm /usr/bin/${i}; fi ; done "
+ targettype armv7l preun " for i in cc1 cc1plus collect2 lto-wrapper lto1 ; do cd /usr/lib/gcc/armv7l-tizen-linux-gnueabi/$GCCVER ; if test -e ${i}.orig-arm ; then rm ${i} ; mv ${i}.orig-arm ${i} ; fi ; done "
-cross-armv7hl-gcc-accel
+cross-armv7hl-gcc-accel-@X86@
targettype x86 block!
targettype 32bit block!
targettype armv5tel block!
targettype armv7hl autoreqprov off
targettype armv7hl provides "cross-arm-gcc-accel"
- targettype armv7hl requires "glibc-x86-arm"
- targettype armv7hl requires "gmp-x86-arm"
- targettype armv7hl requires "libgcc-x86-arm"
- targettype armv7hl requires "mpfr-x86-arm"
- targettype armv7hl requires "mpc-x86-arm"
+ targettype armv7hl provides "cross-armv7hl-gcc-accel-armv7hl"
+ targettype armv7hl requires "eglibc-@X86@-arm"
+ targettype armv7hl requires "gmp-@X86@-arm"
+ targettype armv7hl requires "libgcc-@X86@-arm"
+ targettype armv7hl requires "mpfr-@X86@-arm"
+ targettype armv7hl requires "mpc-@X86@-arm"
targettype armv7hl requires "gcc"
targettype armv7hl requires "gcc-c++"
targettype armv7hl extension -arm
targettype armv7hl +/
targettype armv7hl -/usr/lib/debug
+ targettype armv7hl -/usr/lib64/debug
targettype armv7hl -/usr/src/debug
targettype armv7hl -/usr/share/man
targettype armv7hl -/usr/share/doc
targettype armv7hl post " echo \"GCCVER: $GCCVER GCCVER_NEW: $GCCVER_NEW \" "
targettype armv7hl post " if test "${GCCVER}" == "${GCCVER_NEW}"; then"
targettype armv7hl post " echo "GCC and GCC-accel versions match. Enabling cross-compiler." "
- targettype armv7hl post " for bin in c++ c89 c99 cpp g++ gcc gcov gcc-ar gcc-nm gcc-ranlib; do "
+ targettype armv7hl post " for bin in c++ cpp g++ gcc gcov; do "
targettype armv7hl post " binary="/usr/bin/${bin}" "
targettype armv7hl post " if test -L ${binary} -a -e ${binary}.orig-arm ; then"
targettype armv7hl post " echo "${binary} not installed or ${binary}.orig-arm already present !" "
targettype armv7hl post " done "
targettype armv7hl post " for bin in cc1 cc1plus collect2 lto-wrapper lto1 ; do "
- targettype armv7hl post " binary="/usr/libexec/gcc/armv7hl-tizen-linux-gnueabi/$GCCVER/$bin" "
+ targettype armv7hl post " binary="/usr/lib/gcc/armv7hl-tizen-linux-gnueabi/$GCCVER/$bin" "
targettype armv7hl post " if test -L ${binary} -a -e ${binary}.orig-arm ; then"
targettype armv7hl post " echo "${binary} not installed or ${binary}.orig-arm already present !" "
targettype armv7hl post " else "
- targettype armv7hl post " mv ${binary} ${binary}.orig-arm && cp <prefix>/usr/libexec/gcc/armv7hl-tizen-linux-gnueabi/$GCCVER_NEW/${bin} ${binary}"
+ targettype armv7hl post " mv ${binary} ${binary}.orig-arm && cp <prefix>/usr/lib/gcc/armv7hl-tizen-linux-gnueabi/$GCCVER_NEW/${bin} ${binary}"
targettype armv7hl post " fi "
targettype armv7hl post " done "
targettype armv7hl post " else"
targettype armv7hl post " echo "GCC and GCC-accel versions don't match. Rollback also binutils..." "
- targettype armv7hl post " for bin in addr2line ar as c++filt gprov ld ld.bfd nm objcopy objdump ranlib readelf size strings strip ; do"
+ targettype armv7hl post " for bin in addr2line ar as c++filt elfedit gprof ld ld.bfd ld.gold nm objcopy objdump ranlib readelf size strings strip ; do"
targettype armv7hl post " binary="/usr/bin/${bin}" "
targettype armv7hl post " if test -e ${binary}.orig-arm ; then"
targettype armv7hl post " rm ${binary} && mv ${binary}.orig-arm ${binary}"
targettype armv7hl post " echo "${binary}.orig-arm not present !" "
targettype armv7hl post " fi "
targettype armv7hl post " done "
- targettype armv7hl post " rm -f /usr/libexec/gcc/armv7hl-tizen-linux-gnueabi/${GCCVER}/ld"
- targettype armv7hl post " rm -f /usr/libexec/gcc/armv7hl-tizen-linux-gnueabi/${GCCVER}/ld.bfd"
+ targettype armv7hl post " rm -f /usr/lib/gcc/armv7hl-tizen-linux-gnueabi/${GCCVER}/ld"
+ targettype armv7hl post " rm -f /usr/lib/gcc/armv7hl-tizen-linux-gnueabi/${GCCVER}/ld.bfd"
+ targettype armv7hl post " rm -f /usr/lib/gcc/armv7hl-tizen-linux-gnueabi/${GCCVER}/ld.gold"
targettype armv7hl post " fi"
targettype armv7hl preun " export GCCVER=$(LANG=C gcc --version | head -1 | cut -d" " -f5) "
- targettype armv7hl preun " for i in c++ c89 c99 cpp g++ gcc gcov gcc-ar gcc-nm gcc-ranlib; do if test -e /usr/bin/${i}.orig-arm ; then rm /usr/bin/${i} ; mv /usr/bin/${i}.orig-arm /usr/bin/${i}; fi ; done "
- targettype armv7hl preun " for i in cc1 cc1plus collect2 lto-wrapper lto1 ; do cd /usr/libexec/gcc/armv7hl-tizen-linux-gnueabi/$GCCVER ; if test -e ${i}.orig-arm ; then rm ${i} ; mv ${i}.orig-arm ${i} ; fi ; done "
+ targettype armv7hl preun " for i in c++ cpp g++ gcc gcov; do if test -e /usr/bin/${i}.orig-arm ; then rm /usr/bin/${i} ; mv /usr/bin/${i}.orig-arm /usr/bin/${i}; fi ; done "
+ targettype armv7hl preun " for i in cc1 cc1plus collect2 lto-wrapper lto1 ; do cd /usr/lib/gcc/armv7hl-tizen-linux-gnueabi/$GCCVER ; if test -e ${i}.orig-arm ; then rm ${i} ; mv ${i}.orig-arm ${i} ; fi ; done "
-cross-armv7nhl-gcc-accel
+cross-armv7nhl-gcc-accel-@X86@
targettype x86 block!
targettype 32bit block!
targettype armv5tel block!
targettype armv7nhl autoreqprov off
targettype armv7nhl provides "cross-arm-gcc-accel"
- targettype armv7nhl requires "glibc-x86-arm"
- targettype armv7nhl requires "gmp-x86-arm"
- targettype armv7nhl requires "libgcc-x86-arm"
- targettype armv7nhl requires "mpfr-x86-arm"
- targettype armv7nhl requires "mpc-x86-arm"
+ targettype armv7nhl provides "cross-armv7nhl-gcc-accel-armv7nhl"
+ targettype armv7nhl requires "eglibc-@X86@-arm"
+ targettype armv7nhl requires "gmp-@X86@-arm"
+ targettype armv7nhl requires "libgcc-@X86@-arm"
+ targettype armv7nhl requires "mpfr-@X86@-arm"
+ targettype armv7nhl requires "mpc-@X86@-arm"
targettype armv7nhl requires "gcc"
targettype armv7nhl requires "gcc-c++"
targettype armv7nhl extension -arm
targettype armv7nhl +/
targettype armv7nhl -/usr/lib/debug
+ targettype armv7nhl -/usr/lib64/debug
targettype armv7nhl -/usr/src/debug
targettype armv7nhl -/usr/share/man
targettype armv7nhl -/usr/share/doc
targettype armv7nhl post " echo \"GCCVER: $GCCVER GCCVER_NEW: $GCCVER_NEW \" "
targettype armv7nhl post " if test "${GCCVER}" == "${GCCVER_NEW}"; then"
targettype armv7nhl post " echo "GCC and GCC-accel versions match. Enabling cross-compiler." "
- targettype armv7nhl post " for bin in c++ c89 c99 cpp g++ gcc gcov gcc-ar gcc-nm gcc-ranlib; do "
+ targettype armv7nhl post " for bin in c++ cpp g++ gcc gcov; do "
targettype armv7nhl post " binary="/usr/bin/${bin}" "
targettype armv7nhl post " if test -L ${binary} -a -e ${binary}.orig-arm ; then"
targettype armv7nhl post " echo "${binary} not installed or ${binary}.orig-arm already present !" "
targettype armv7nhl post " done "
targettype armv7nhl post " for bin in cc1 cc1plus collect2 lto-wrapper lto1 ; do "
- targettype armv7nhl post " binary="/usr/libexec/gcc/armv7nhl-tizen-linux-gnueabi/$GCCVER/$bin" "
+ targettype armv7nhl post " binary="/usr/lib/gcc/armv7nhl-tizen-linux-gnueabi/$GCCVER/$bin" "
targettype armv7nhl post " if test -L ${binary} -a -e ${binary}.orig-arm ; then"
targettype armv7nhl post " echo "${binary} not installed or ${binary}.orig-arm already present !" "
targettype armv7nhl post " else "
- targettype armv7nhl post " mv ${binary} ${binary}.orig-arm && cp <prefix>/usr/libexec/gcc/armv7nhl-tizen-linux-gnueabi/$GCCVER_NEW/${bin} ${binary}"
+ targettype armv7nhl post " mv ${binary} ${binary}.orig-arm && cp <prefix>/usr/lib/gcc/armv7nhl-tizen-linux-gnueabi/$GCCVER_NEW/${bin} ${binary}"
targettype armv7nhl post " fi "
targettype armv7nhl post " done "
targettype armv7nhl post " else"
targettype armv7nhl post " echo "GCC and GCC-accel versions don't match. Rollback also binutils..." "
- targettype armv7nhl post " for bin in addr2line ar as c++filt gprov ld ld.bfd nm objcopy objdump ranlib readelf size strings strip ; do"
+ targettype armv7nhl post " for bin in addr2line ar as c++filt elfedit gprof ld ld.bfd ld.gold nm objcopy objdump ranlib readelf size strings strip ; do"
targettype armv7nhl post " binary="/usr/bin/${bin}" "
targettype armv7nhl post " if test -e ${binary}.orig-arm ; then"
targettype armv7nhl post " rm ${binary} && mv ${binary}.orig-arm ${binary}"
targettype armv7nhl post " echo "${binary}.orig-arm not present !" "
targettype armv7nhl post " fi "
targettype armv7nhl post " done "
- targettype armv7nhl post " rm -f /usr/libexec/gcc/armv7nhl-tizen-linux-gnueabi/${GCCVER}/ld"
- targettype armv7nhl post " rm -f /usr/libexec/gcc/armv7nhl-tizen-linux-gnueabi/${GCCVER}/ld.bfd"
+ targettype armv7nhl post " rm -f /usr/lib/gcc/armv7nhl-tizen-linux-gnueabi/${GCCVER}/ld"
+ targettype armv7nhl post " rm -f /usr/lib/gcc/armv7nhl-tizen-linux-gnueabi/${GCCVER}/ld.bfd"
+ targettype armv7nhl post " rm -f /usr/lib/gcc/armv7nhl-tizen-linux-gnueabi/${GCCVER}/ld.gold"
targettype armv7nhl post " fi"
targettype armv7nhl preun " export GCCVER=$(LANG=C gcc --version | head -1 | cut -d" " -f5) "
- targettype armv7nhl preun " for i in c++ c89 c99 cpp g++ gcc gcov gcc-ar gcc-nm gcc-ranlib; do if test -e /usr/bin/${i}.orig-arm ; then rm /usr/bin/${i} ; mv /usr/bin/${i}.orig-arm /usr/bin/${i}; fi ; done "
- targettype armv7nhl preun " for i in cc1 cc1plus collect2 lto-wrapper lto1 ; do cd /usr/libexec/gcc/armv7nhl-tizen-linux-gnueabi/$GCCVER ; if test -e ${i}.orig-arm ; then rm ${i} ; mv ${i}.orig-arm ${i} ; fi ; done "
+ targettype armv7nhl preun " for i in c++ cpp g++ gcc gcov; do if test -e /usr/bin/${i}.orig-arm ; then rm /usr/bin/${i} ; mv /usr/bin/${i}.orig-arm /usr/bin/${i}; fi ; done "
+ targettype armv7nhl preun " for i in cc1 cc1plus collect2 lto-wrapper lto1 ; do cd /usr/lib/gcc/armv7nhl-tizen-linux-gnueabi/$GCCVER ; if test -e ${i}.orig-arm ; then rm ${i} ; mv ${i}.orig-arm ${i} ; fi ; done "
# Combined gcc / cross-armv*-gcc(-accel) specfile
-Name: cross-armv5tel-gcc-accel
+%ifarch x86_64
+%define x64 x64
+%endif
+Name: cross-armv5tel-gcc-accel-%{!?x64:x86}%{?x64}
# crossbuild / accelerator section
# \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/
%define crossextraconfig --with-float=hard --with-fpu=neon --with-arch=armv7-a
%endif
# Fixme: see above
-%if "%{name}" == "cross-armv5tel-gcc-accel"
+%if "%{name}" == "cross-armv5tel-gcc-accel-x86" || "%{name}" == "cross-armv5tel-gcc-accel-x64"
BuildRequires: cross-armv5tel-eglibc cross-armv5tel-eglibc-devel cross-armv5tel-eglibc-headers
BuildRequires: cross-armv5tel-kernel-headers cross-armv5tel-binutils
%define crossextraconfig %{nil}
%endif
-%if "%{name}" == "cross-armv6l-gcc-accel"
+%if "%{name}" == "cross-armv6l-gcc-accel-x86" || "%{name}" == "cross-armv6l-gcc-accel-x64"
BuildRequires: cross-armv6l-eglibc cross-armv6l-eglibc-devel cross-armv6l-eglibc-headers
BuildRequires: cross-armv6l-kernel-headers cross-armv6l-binutils
%define crossextraconfig %{nil}
%endif
-%if "%{name}" == "cross-armv7l-gcc-accel"
+%if "%{name}" == "cross-armv7l-gcc-accel-x86" || "%{name}" == "cross-armv7l-gcc-accel-x64"
BuildRequires: cross-armv7l-eglibc cross-armv7l-eglibc-devel cross-armv7l-eglibc-headers
BuildRequires: cross-armv7l-kernel-headers cross-armv7l-binutils
%define crossextraconfig --with-float=softfp --with-fpu=vfpv3 --with-arch=armv7-a
%endif
-%if "%{name}" == "cross-armv7hl-gcc-accel"
+%if "%{name}" == "cross-armv7hl-gcc-accel-x86" || "%{name}" == "cross-armv7hl-gcc-accel-x64"
BuildRequires: cross-armv7hl-eglibc cross-armv7hl-eglibc-devel cross-armv7hl-eglibc-headers
BuildRequires: cross-armv7hl-kernel-headers cross-armv7hl-binutils
%define crossextraconfig --with-float=hard --with-fpu=vfpv3-d16 --with-arch=armv7-a
%endif
-%if "%{name}" == "cross-armv7nhl-gcc-accel"
+%if "%{name}" == "cross-armv7nhl-gcc-accel-x86" || "%{name}" == "cross-armv7nhl-gcc-accel-x64"
BuildRequires: cross-armv7nhl-eglibc cross-armv7nhl-eglibc-devel cross-armv7nhl-eglibc-headers
BuildRequires: cross-armv7nhl-kernel-headers cross-armv7nhl-binutils
%define crossextraconfig --with-float=hard --with-fpu=neon --with-arch=armv7-a
%endif
# single target atm.
-ExclusiveArch: %ix86
+ExclusiveArch: %ix86 x86_64
#
# special handling for Tizen ARM build acceleration
# cross-armv*-gcc-accel
-%if "%(echo %{name} | sed -e "s/cross-.*-gcc-\\(.*\\)/\\1/")" == "accel"
+%if "%(echo %{name} | sed -e "s/cross-.*-gcc-\\(.*\\)-.*/\\1/")" == "accel"
# cross architecture
-%define crossarch %(echo %{name} | sed -e "s/cross-\\(.*\\)-gcc-accel/\\1/")
+%define crossarch %(echo %{name} | sed -e "s/cross-\\(.*\\)-gcc-accel-.*/\\1/")
# cross target platform
%define cross_gcc_target_platform %{crossarch}-tizen-linux-gnueabi
# prefix - as it's going to "replace" the original compiler ...
%define crossbuild 1
%define accelerator_crossbuild 1
# where to find the libs at runtime
-%define newrpath /emul/ia32-linux/lib:/emul/ia32-linux/usr/lib
+%define newrpath /emul/ia32-linux/%{_lib}:/emul/ia32-linux/usr/%{_lib}
%define _build_name_fmt %%{ARCH}/%%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.dontuse.rpm
%endif
# end special accel
# /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
# end crossbuild / accelerator section
-%global gcc_version 4.6
+%global gcc_version 4.6.4
%global gcc_release 2013.05
+%global release_prefix %{gcc_release}
%global _unpackaged_files_terminate_build 0
%ifarch %{arm}
%global build_cloog 0
%global build_cloog 1
%endif
%endif
-%global multilib_64_archs x86_64
+#global multilib_64_archs x86_64
%ifarch x86_64
%global multilib_32_arch i686
%endif
Summary: Various compilers (C, C++, Objective-C, Java, ...)
Version: %{gcc_version}
Release: %{gcc_release}
-VCS: toolchains/gcc#submit/master/20131126.022252-0-ga6b8565e99e42d6caee61b5015810d8b78c511bf
License: GPLv3+, GPLv3+ with exceptions and GPLv2+ with exceptions
Group: Development/Languages
URL: http://gcc.gnu.org
-Source0: gcc-linaro-%{version}-%{gcc_release}.tar.xz
+Source0: gcc-linaro-4.6-%{gcc_release}.tar.xz
Source1: libgcc_post_upgrade.c
Source100: gcc-rpmlintrc
Source200: baselibs.conf
%endif
Patch41: libgcc_post_upgrade.c.arm.patch
+Patch1000: gcc_arm_hard_float_dynamic_linker_revert.patch
#We need -gnueabi indicator for ARM
%ifnarch %{arm}
32bit enviroment from compiler side.
%prep
-%setup -q -n gcc-linaro-%{version}-%{gcc_release}
+%setup -q -n gcc-linaro-4.6-%{gcc_release}
+%patch1000 -p1
echo '%{version}' >gcc/BASE-VER
export OPT_FLAGS=`echo "$OPT_FLAGS" | sed -e "s#\-march=.*##g"`
%if %{accelerator_crossbuild}
# adding -rpath to the special crosscompiler
-export OPT_FLAGS="$OPT_FLAGS -Wl,-rpath,/emul/ia32-linux/usr/lib:/emul/ia32-linux/lib:/usr/lib:/lib"
+export OPT_FLAGS="$OPT_FLAGS -Wl,-rpath,/emul/ia32-linux/usr/%{_lib}:/emul/ia32-linux/%{_lib}:/usr/%{_lib}:/%{_lib}:/usr/lib:/lib"
%endif
%endif
CC="$CC" CFLAGS="$OPT_FLAGS" CXXFLAGS="`echo $OPT_FLAGS | sed 's/ -Wall / /g'`" XCFLAGS="$OPT_FLAGS" TCFLAGS="$OPT_FLAGS" \
- ../configure --prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir} \
+ ../configure --prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir} --libexecdir=%{_libexecdir} \
--enable-shared --enable-linker-build-id \
%ifarch %{arm}
--enable-checking=release \
%else
--enable-checking=release \
--enable-multiarch \
+ --disable-multilib \
%endif
%endif
%if %{build_cloog}
%install
rm -fr %{buildroot}
-mkdir -p %{buildroot}/usr/share/license
-cp gcc/COPYING %{buildroot}/usr/share/license/gcc
-cp gcc/COPYING %{buildroot}/usr/share/license/cpp
-cp gcc/COPYING %{buildroot}/usr/share/license/libgcc
-cp gcc/COPYING %{buildroot}/usr/share/license/gcc-c++
-cp gcc/COPYING %{buildroot}/usr/share/license/libstdc++
-cp gcc/COPYING %{buildroot}/usr/share/license/libgomp
-cp gcc/COPYING %{buildroot}/usr/share/license/libmudflap
-
cd obj-%{gcc_target_platform}
%if !%{crossbuild}
# \/\/\/
FULLPATH=%{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
-FULLEPATH=%{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+FULLEPATH=%{buildroot}%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}
ln -sf gcc %{buildroot}%{_prefix}/bin/cc
mkdir -p %{buildroot}/lib
mv -f %{buildroot}%{_prefix}/%{_lib}/libgomp.spec $FULLPATH/
-mkdir -p %{buildroot}%{_prefix}/libexec/getconf
+mkdir -p %{buildroot}%{_libexecdir}/getconf
if gcc/xgcc -B gcc/ -E -dD -xc /dev/null | grep __LONG_MAX__.*2147483647; then
- ln -sf POSIX_V6_ILP32_OFF32 %{buildroot}%{_prefix}/libexec/getconf/default
+ ln -sf POSIX_V6_ILP32_OFF32 %{buildroot}%{_libexecdir}/getconf/default
else
- ln -sf POSIX_V6_LP64_OFF64 %{buildroot}%{_prefix}/libexec/getconf/default
+ ln -sf POSIX_V6_LP64_OFF64 %{buildroot}%{_libexecdir}/getconf/default
fi
gcc -static -Os %{SOURCE1} -o %{buildroot}%{_prefix}/sbin/libgcc_post_upgrade
strip %{buildroot}%{_prefix}/sbin/libgcc_post_upgrade
-cd ..
-
# Remove binaries we will not be including, so that they don't end up in
# gcc-debuginfo
rm -f %{buildroot}%{_prefix}/%{_lib}/{libffi*,libiberty.a}
rm -rRf %buildroot/%{_prefix}/lib/libiberty.a
rm -rRf %buildroot/%{_prefix}/share
#set +x
+%else
+# Fixed x86 dependencies
+sed "s/@X86@/%{!?x64:x86}%{?x64}/g" -i %{_sourcedir}/baselibs.conf
%endif
# /\/\/\
# cross
%endif
+cd ..
+
+mkdir -p %{buildroot}%{_datadir}/license
+cp gcc/COPYING %{buildroot}%{_datadir}/license/gcc
+cp gcc/COPYING %{buildroot}%{_datadir}/license/cpp
+cp gcc/COPYING %{buildroot}%{_datadir}/license/libgcc
+cp gcc/COPYING %{buildroot}%{_datadir}/license/gcc-c++
+cp gcc/COPYING %{buildroot}%{_datadir}/license/libstdc++
+cp gcc/COPYING %{buildroot}%{_datadir}/license/libgomp
+cp gcc/COPYING %{buildroot}%{_datadir}/license/libmudflap
+
%if !%{crossbuild}
# checking and split packaging for native ...
# native
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
-%dir %{_prefix}/libexec/gcc
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_libexecdir}/gcc
+%dir %{_libexecdir}/gcc/%{gcc_target_platform}
+%dir %{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include
# Shouldn't include all files under this fold, split to diff pkgs
-#%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/*
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/lto1
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/lto-wrapper
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/collect2
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/liblto_plugin.*
+#%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/*
+%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/lto1
+%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/lto-wrapper
+%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/collect2
+%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/liblto_plugin.*
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/plugin
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/plugin/include
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include-fixed
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include-fixed/README
+%ifnarch %{arm}
+#kernel 3.4 upstream removed a.out.h for arm arch
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include-fixed/linux/a.out.h
+%endif
# For ARM port
%ifarch %{arm}
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/arm_neon.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libmudflap.so
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libmudflapth.so
%endif
-%dir %{_prefix}/libexec/getconf
-%{_prefix}/libexec/getconf/default
+%dir %{_libexecdir}/getconf
+%{_libexecdir}/getconf/default
%doc gcc/README* gcc/COPYING*
-/usr/share/license/gcc
+%{_datadir}/license/gcc
%manifest gcc.manifest
%files -n cpp
/lib/cpp
%{_prefix}/bin/cpp
%{_mandir}/man1/cpp.1*
-%dir %{_prefix}/libexec/gcc
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/cc1
-/usr/share/license/cpp
+%dir %{_libexecdir}/gcc
+%dir %{_libexecdir}/gcc/%{gcc_target_platform}
+%dir %{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}
+%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/cc1
+%{_datadir}/license/cpp
%manifest cpp.manifest
%files -n libgcc
/%{_libdir}/libgcc_s.*
%{_prefix}/sbin/libgcc_post_upgrade
%doc gcc/COPYING.LIB
-/usr/share/license/libgcc
+%{_datadir}/license/libgcc
%manifest libgcc.manifest
# For ARM port
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
-%dir %{_prefix}/libexec/gcc
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/cc1plus
+%dir %{_libexecdir}/gcc
+%dir %{_libexecdir}/gcc/%{gcc_target_platform}
+%dir %{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}
+%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/cc1plus
%ifarch %{multilib_64_archs}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libstdc++.so
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libstdc++.so
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libsupc++.a
%endif
-/usr/share/license/gcc-c++
+%{_datadir}/license/gcc-c++
%manifest gcc-c++.manifest
%files -n libstdc++
%{_datadir}/gdb/auto-load/%{_prefix}/%{_lib}/libstdc*gdb.py*
%dir %{_prefix}/share/gcc-%{gcc_version}
%{_prefix}/share/gcc-%{gcc_version}/python
-/usr/share/license/libstdc++
+%{_datadir}/license/libstdc++
%manifest libstdc++.manifest
%files -n libstdc++-devel
%files -n libgomp
%defattr(-,root,root,-)
%{_prefix}/%{_lib}/libgomp.*
-/usr/share/license/libgomp
+%{_datadir}/license/libgomp
%manifest libgomp.manifest
%files -n libmudflap
%defattr(-,root,root,-)
%{_prefix}/%{_lib}/libmudflap.*
%{_prefix}/%{_lib}/libmudflapth.*
-/usr/share/license/libmudflap
+%{_datadir}/license/libmudflap
%manifest libmudflap.manifest
%files -n libmudflap-devel
# cross
# \/\/\/
%files
-/usr/share/license/gcc
%manifest gcc.manifest
%defattr(-,root,root,-)
%{_prefix}
# Combined gcc / cross-armv*-gcc(-accel) specfile
+%ifarch x86_64
+%define x64 x64
+%endif
Name: cross-armv5tel-gcc
# crossbuild / accelerator section
%define crossextraconfig --with-float=hard --with-fpu=neon --with-arch=armv7-a
%endif
# Fixme: see above
-%if "%{name}" == "cross-armv5tel-gcc-accel"
+%if "%{name}" == "cross-armv5tel-gcc-accel-x86" || "%{name}" == "cross-armv5tel-gcc-accel-x64"
BuildRequires: cross-armv5tel-eglibc cross-armv5tel-eglibc-devel cross-armv5tel-eglibc-headers
BuildRequires: cross-armv5tel-kernel-headers cross-armv5tel-binutils
%define crossextraconfig %{nil}
%endif
-%if "%{name}" == "cross-armv6l-gcc-accel"
+%if "%{name}" == "cross-armv6l-gcc-accel-x86" || "%{name}" == "cross-armv6l-gcc-accel-x64"
BuildRequires: cross-armv6l-eglibc cross-armv6l-eglibc-devel cross-armv6l-eglibc-headers
BuildRequires: cross-armv6l-kernel-headers cross-armv6l-binutils
%define crossextraconfig %{nil}
%endif
-%if "%{name}" == "cross-armv7l-gcc-accel"
+%if "%{name}" == "cross-armv7l-gcc-accel-x86" || "%{name}" == "cross-armv7l-gcc-accel-x64"
BuildRequires: cross-armv7l-eglibc cross-armv7l-eglibc-devel cross-armv7l-eglibc-headers
BuildRequires: cross-armv7l-kernel-headers cross-armv7l-binutils
%define crossextraconfig --with-float=softfp --with-fpu=vfpv3 --with-arch=armv7-a
%endif
-%if "%{name}" == "cross-armv7hl-gcc-accel"
+%if "%{name}" == "cross-armv7hl-gcc-accel-x86" || "%{name}" == "cross-armv7hl-gcc-accel-x64"
BuildRequires: cross-armv7hl-eglibc cross-armv7hl-eglibc-devel cross-armv7hl-eglibc-headers
BuildRequires: cross-armv7hl-kernel-headers cross-armv7hl-binutils
%define crossextraconfig --with-float=hard --with-fpu=vfpv3-d16 --with-arch=armv7-a
%endif
-%if "%{name}" == "cross-armv7nhl-gcc-accel"
+%if "%{name}" == "cross-armv7nhl-gcc-accel-x86" || "%{name}" == "cross-armv7nhl-gcc-accel-x64"
BuildRequires: cross-armv7nhl-eglibc cross-armv7nhl-eglibc-devel cross-armv7nhl-eglibc-headers
BuildRequires: cross-armv7nhl-kernel-headers cross-armv7nhl-binutils
%define crossextraconfig --with-float=hard --with-fpu=neon --with-arch=armv7-a
%endif
# single target atm.
-ExclusiveArch: %ix86
+ExclusiveArch: %ix86 x86_64
#
# special handling for Tizen ARM build acceleration
# cross-armv*-gcc-accel
-%if "%(echo %{name} | sed -e "s/cross-.*-gcc-\\(.*\\)/\\1/")" == "accel"
+%if "%(echo %{name} | sed -e "s/cross-.*-gcc-\\(.*\\)-.*/\\1/")" == "accel"
# cross architecture
-%define crossarch %(echo %{name} | sed -e "s/cross-\\(.*\\)-gcc-accel/\\1/")
+%define crossarch %(echo %{name} | sed -e "s/cross-\\(.*\\)-gcc-accel-.*/\\1/")
# cross target platform
%define cross_gcc_target_platform %{crossarch}-tizen-linux-gnueabi
# prefix - as it's going to "replace" the original compiler ...
%define crossbuild 1
%define accelerator_crossbuild 1
# where to find the libs at runtime
-%define newrpath /emul/ia32-linux/lib:/emul/ia32-linux/usr/lib
+%define newrpath /emul/ia32-linux/%{_lib}:/emul/ia32-linux/usr/%{_lib}
%define _build_name_fmt %%{ARCH}/%%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.dontuse.rpm
%endif
# end special accel
# /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
# end crossbuild / accelerator section
-%global gcc_version 4.6
+%global gcc_version 4.6.4
%global gcc_release 2013.05
+%global release_prefix %{gcc_release}
%global _unpackaged_files_terminate_build 0
%ifarch %{arm}
%global build_cloog 0
%global build_cloog 1
%endif
%endif
-%global multilib_64_archs x86_64
+#global multilib_64_archs x86_64
%ifarch x86_64
%global multilib_32_arch i686
%endif
Summary: Various compilers (C, C++, Objective-C, Java, ...)
Version: %{gcc_version}
Release: %{gcc_release}
-VCS: toolchains/gcc#submit/master/20131126.022252-0-ga6b8565e99e42d6caee61b5015810d8b78c511bf
License: GPLv3+, GPLv3+ with exceptions and GPLv2+ with exceptions
Group: Development/Languages
URL: http://gcc.gnu.org
-Source0: gcc-linaro-%{version}-%{gcc_release}.tar.xz
+Source0: gcc-linaro-4.6-%{gcc_release}.tar.xz
Source1: libgcc_post_upgrade.c
Source100: gcc-rpmlintrc
Source200: baselibs.conf
%endif
Patch41: libgcc_post_upgrade.c.arm.patch
+Patch1000: gcc_arm_hard_float_dynamic_linker_revert.patch
#We need -gnueabi indicator for ARM
%ifnarch %{arm}
32bit enviroment from compiler side.
%prep
-%setup -q -n gcc-linaro-%{version}-%{gcc_release}
+%setup -q -n gcc-linaro-4.6-%{gcc_release}
+%patch1000 -p1
echo '%{version}' >gcc/BASE-VER
export OPT_FLAGS=`echo "$OPT_FLAGS" | sed -e "s#\-march=.*##g"`
%if %{accelerator_crossbuild}
# adding -rpath to the special crosscompiler
-export OPT_FLAGS="$OPT_FLAGS -Wl,-rpath,/emul/ia32-linux/usr/lib:/emul/ia32-linux/lib:/usr/lib:/lib"
+export OPT_FLAGS="$OPT_FLAGS -Wl,-rpath,/emul/ia32-linux/usr/%{_lib}:/emul/ia32-linux/%{_lib}:/usr/%{_lib}:/%{_lib}:/usr/lib:/lib"
%endif
%endif
CC="$CC" CFLAGS="$OPT_FLAGS" CXXFLAGS="`echo $OPT_FLAGS | sed 's/ -Wall / /g'`" XCFLAGS="$OPT_FLAGS" TCFLAGS="$OPT_FLAGS" \
- ../configure --prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir} \
+ ../configure --prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir} --libexecdir=%{_libexecdir} \
--enable-shared --enable-linker-build-id \
%ifarch %{arm}
--enable-checking=release \
%else
--enable-checking=release \
--enable-multiarch \
+ --disable-multilib \
%endif
%endif
%if %{build_cloog}
%install
rm -fr %{buildroot}
-mkdir -p %{buildroot}/usr/share/license
-cp gcc/COPYING %{buildroot}/usr/share/license/gcc
-cp gcc/COPYING %{buildroot}/usr/share/license/cpp
-cp gcc/COPYING %{buildroot}/usr/share/license/libgcc
-cp gcc/COPYING %{buildroot}/usr/share/license/gcc-c++
-cp gcc/COPYING %{buildroot}/usr/share/license/libstdc++
-cp gcc/COPYING %{buildroot}/usr/share/license/libgomp
-cp gcc/COPYING %{buildroot}/usr/share/license/libmudflap
-
cd obj-%{gcc_target_platform}
%if !%{crossbuild}
# \/\/\/
FULLPATH=%{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
-FULLEPATH=%{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+FULLEPATH=%{buildroot}%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}
ln -sf gcc %{buildroot}%{_prefix}/bin/cc
mkdir -p %{buildroot}/lib
mv -f %{buildroot}%{_prefix}/%{_lib}/libgomp.spec $FULLPATH/
-mkdir -p %{buildroot}%{_prefix}/libexec/getconf
+mkdir -p %{buildroot}%{_libexecdir}/getconf
if gcc/xgcc -B gcc/ -E -dD -xc /dev/null | grep __LONG_MAX__.*2147483647; then
- ln -sf POSIX_V6_ILP32_OFF32 %{buildroot}%{_prefix}/libexec/getconf/default
+ ln -sf POSIX_V6_ILP32_OFF32 %{buildroot}%{_libexecdir}/getconf/default
else
- ln -sf POSIX_V6_LP64_OFF64 %{buildroot}%{_prefix}/libexec/getconf/default
+ ln -sf POSIX_V6_LP64_OFF64 %{buildroot}%{_libexecdir}/getconf/default
fi
gcc -static -Os %{SOURCE1} -o %{buildroot}%{_prefix}/sbin/libgcc_post_upgrade
strip %{buildroot}%{_prefix}/sbin/libgcc_post_upgrade
-cd ..
-
# Remove binaries we will not be including, so that they don't end up in
# gcc-debuginfo
rm -f %{buildroot}%{_prefix}/%{_lib}/{libffi*,libiberty.a}
rm -rRf %buildroot/%{_prefix}/lib/libiberty.a
rm -rRf %buildroot/%{_prefix}/share
#set +x
+%else
+# Fixed x86 dependencies
+sed "s/@X86@/%{!?x64:x86}%{?x64}/g" -i %{_sourcedir}/baselibs.conf
%endif
# /\/\/\
# cross
%endif
+cd ..
+
+mkdir -p %{buildroot}%{_datadir}/license
+cp gcc/COPYING %{buildroot}%{_datadir}/license/gcc
+cp gcc/COPYING %{buildroot}%{_datadir}/license/cpp
+cp gcc/COPYING %{buildroot}%{_datadir}/license/libgcc
+cp gcc/COPYING %{buildroot}%{_datadir}/license/gcc-c++
+cp gcc/COPYING %{buildroot}%{_datadir}/license/libstdc++
+cp gcc/COPYING %{buildroot}%{_datadir}/license/libgomp
+cp gcc/COPYING %{buildroot}%{_datadir}/license/libmudflap
+
%if !%{crossbuild}
# checking and split packaging for native ...
# native
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
-%dir %{_prefix}/libexec/gcc
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_libexecdir}/gcc
+%dir %{_libexecdir}/gcc/%{gcc_target_platform}
+%dir %{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include
# Shouldn't include all files under this fold, split to diff pkgs
-#%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/*
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/lto1
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/lto-wrapper
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/collect2
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/liblto_plugin.*
+#%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/*
+%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/lto1
+%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/lto-wrapper
+%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/collect2
+%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/liblto_plugin.*
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/plugin
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/plugin/include
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include-fixed
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include-fixed/README
+%ifnarch %{arm}
+#kernel 3.4 upstream removed a.out.h for arm arch
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include-fixed/linux/a.out.h
+%endif
# For ARM port
%ifarch %{arm}
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/arm_neon.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libmudflap.so
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libmudflapth.so
%endif
-%dir %{_prefix}/libexec/getconf
-%{_prefix}/libexec/getconf/default
+%dir %{_libexecdir}/getconf
+%{_libexecdir}/getconf/default
%doc gcc/README* gcc/COPYING*
-/usr/share/license/gcc
+%{_datadir}/license/gcc
%manifest gcc.manifest
%files -n cpp
/lib/cpp
%{_prefix}/bin/cpp
%{_mandir}/man1/cpp.1*
-%dir %{_prefix}/libexec/gcc
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/cc1
-/usr/share/license/cpp
+%dir %{_libexecdir}/gcc
+%dir %{_libexecdir}/gcc/%{gcc_target_platform}
+%dir %{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}
+%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/cc1
+%{_datadir}/license/cpp
%manifest cpp.manifest
%files -n libgcc
/%{_libdir}/libgcc_s.*
%{_prefix}/sbin/libgcc_post_upgrade
%doc gcc/COPYING.LIB
-/usr/share/license/libgcc
+%{_datadir}/license/libgcc
%manifest libgcc.manifest
# For ARM port
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
-%dir %{_prefix}/libexec/gcc
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/cc1plus
+%dir %{_libexecdir}/gcc
+%dir %{_libexecdir}/gcc/%{gcc_target_platform}
+%dir %{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}
+%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/cc1plus
%ifarch %{multilib_64_archs}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libstdc++.so
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libstdc++.so
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libsupc++.a
%endif
-/usr/share/license/gcc-c++
+%{_datadir}/license/gcc-c++
%manifest gcc-c++.manifest
%files -n libstdc++
%{_datadir}/gdb/auto-load/%{_prefix}/%{_lib}/libstdc*gdb.py*
%dir %{_prefix}/share/gcc-%{gcc_version}
%{_prefix}/share/gcc-%{gcc_version}/python
-/usr/share/license/libstdc++
+%{_datadir}/license/libstdc++
%manifest libstdc++.manifest
%files -n libstdc++-devel
%files -n libgomp
%defattr(-,root,root,-)
%{_prefix}/%{_lib}/libgomp.*
-/usr/share/license/libgomp
+%{_datadir}/license/libgomp
%manifest libgomp.manifest
%files -n libmudflap
%defattr(-,root,root,-)
%{_prefix}/%{_lib}/libmudflap.*
%{_prefix}/%{_lib}/libmudflapth.*
-/usr/share/license/libmudflap
+%{_datadir}/license/libmudflap
%manifest libmudflap.manifest
%files -n libmudflap-devel
# cross
# \/\/\/
%files
-/usr/share/license/gcc
%manifest gcc.manifest
%defattr(-,root,root,-)
%{_prefix}
# Combined gcc / cross-armv*-gcc(-accel) specfile
-Name: cross-armv6l-gcc-accel
+%ifarch x86_64
+%define x64 x64
+%endif
+Name: cross-armv6l-gcc-accel-%{!?x64:x86}%{?x64}
# crossbuild / accelerator section
# \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/
%define crossextraconfig --with-float=hard --with-fpu=neon --with-arch=armv7-a
%endif
# Fixme: see above
-%if "%{name}" == "cross-armv5tel-gcc-accel"
+%if "%{name}" == "cross-armv5tel-gcc-accel-x86" || "%{name}" == "cross-armv5tel-gcc-accel-x64"
BuildRequires: cross-armv5tel-eglibc cross-armv5tel-eglibc-devel cross-armv5tel-eglibc-headers
BuildRequires: cross-armv5tel-kernel-headers cross-armv5tel-binutils
%define crossextraconfig %{nil}
%endif
-%if "%{name}" == "cross-armv6l-gcc-accel"
+%if "%{name}" == "cross-armv6l-gcc-accel-x86" || "%{name}" == "cross-armv6l-gcc-accel-x64"
BuildRequires: cross-armv6l-eglibc cross-armv6l-eglibc-devel cross-armv6l-eglibc-headers
BuildRequires: cross-armv6l-kernel-headers cross-armv6l-binutils
%define crossextraconfig %{nil}
%endif
-%if "%{name}" == "cross-armv7l-gcc-accel"
+%if "%{name}" == "cross-armv7l-gcc-accel-x86" || "%{name}" == "cross-armv7l-gcc-accel-x64"
BuildRequires: cross-armv7l-eglibc cross-armv7l-eglibc-devel cross-armv7l-eglibc-headers
BuildRequires: cross-armv7l-kernel-headers cross-armv7l-binutils
%define crossextraconfig --with-float=softfp --with-fpu=vfpv3 --with-arch=armv7-a
%endif
-%if "%{name}" == "cross-armv7hl-gcc-accel"
+%if "%{name}" == "cross-armv7hl-gcc-accel-x86" || "%{name}" == "cross-armv7hl-gcc-accel-x64"
BuildRequires: cross-armv7hl-eglibc cross-armv7hl-eglibc-devel cross-armv7hl-eglibc-headers
BuildRequires: cross-armv7hl-kernel-headers cross-armv7hl-binutils
%define crossextraconfig --with-float=hard --with-fpu=vfpv3-d16 --with-arch=armv7-a
%endif
-%if "%{name}" == "cross-armv7nhl-gcc-accel"
+%if "%{name}" == "cross-armv7nhl-gcc-accel-x86" || "%{name}" == "cross-armv7nhl-gcc-accel-x64"
BuildRequires: cross-armv7nhl-eglibc cross-armv7nhl-eglibc-devel cross-armv7nhl-eglibc-headers
BuildRequires: cross-armv7nhl-kernel-headers cross-armv7nhl-binutils
%define crossextraconfig --with-float=hard --with-fpu=neon --with-arch=armv7-a
%endif
# single target atm.
-ExclusiveArch: %ix86
+ExclusiveArch: %ix86 x86_64
#
# special handling for Tizen ARM build acceleration
# cross-armv*-gcc-accel
-%if "%(echo %{name} | sed -e "s/cross-.*-gcc-\\(.*\\)/\\1/")" == "accel"
+%if "%(echo %{name} | sed -e "s/cross-.*-gcc-\\(.*\\)-.*/\\1/")" == "accel"
# cross architecture
-%define crossarch %(echo %{name} | sed -e "s/cross-\\(.*\\)-gcc-accel/\\1/")
+%define crossarch %(echo %{name} | sed -e "s/cross-\\(.*\\)-gcc-accel-.*/\\1/")
# cross target platform
%define cross_gcc_target_platform %{crossarch}-tizen-linux-gnueabi
# prefix - as it's going to "replace" the original compiler ...
%define crossbuild 1
%define accelerator_crossbuild 1
# where to find the libs at runtime
-%define newrpath /emul/ia32-linux/lib:/emul/ia32-linux/usr/lib
+%define newrpath /emul/ia32-linux/%{_lib}:/emul/ia32-linux/usr/%{_lib}
%define _build_name_fmt %%{ARCH}/%%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.dontuse.rpm
%endif
# end special accel
# /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
# end crossbuild / accelerator section
-%global gcc_version 4.6
+%global gcc_version 4.6.4
%global gcc_release 2013.05
+%global release_prefix %{gcc_release}
%global _unpackaged_files_terminate_build 0
%ifarch %{arm}
%global build_cloog 0
%global build_cloog 1
%endif
%endif
-%global multilib_64_archs x86_64
+#global multilib_64_archs x86_64
%ifarch x86_64
%global multilib_32_arch i686
%endif
Summary: Various compilers (C, C++, Objective-C, Java, ...)
Version: %{gcc_version}
Release: %{gcc_release}
-VCS: toolchains/gcc#submit/master/20131126.022252-0-ga6b8565e99e42d6caee61b5015810d8b78c511bf
License: GPLv3+, GPLv3+ with exceptions and GPLv2+ with exceptions
Group: Development/Languages
URL: http://gcc.gnu.org
-Source0: gcc-linaro-%{version}-%{gcc_release}.tar.xz
+Source0: gcc-linaro-4.6-%{gcc_release}.tar.xz
Source1: libgcc_post_upgrade.c
Source100: gcc-rpmlintrc
Source200: baselibs.conf
%endif
Patch41: libgcc_post_upgrade.c.arm.patch
+Patch1000: gcc_arm_hard_float_dynamic_linker_revert.patch
#We need -gnueabi indicator for ARM
%ifnarch %{arm}
32bit enviroment from compiler side.
%prep
-%setup -q -n gcc-linaro-%{version}-%{gcc_release}
+%setup -q -n gcc-linaro-4.6-%{gcc_release}
+%patch1000 -p1
echo '%{version}' >gcc/BASE-VER
export OPT_FLAGS=`echo "$OPT_FLAGS" | sed -e "s#\-march=.*##g"`
%if %{accelerator_crossbuild}
# adding -rpath to the special crosscompiler
-export OPT_FLAGS="$OPT_FLAGS -Wl,-rpath,/emul/ia32-linux/usr/lib:/emul/ia32-linux/lib:/usr/lib:/lib"
+export OPT_FLAGS="$OPT_FLAGS -Wl,-rpath,/emul/ia32-linux/usr/%{_lib}:/emul/ia32-linux/%{_lib}:/usr/%{_lib}:/%{_lib}:/usr/lib:/lib"
%endif
%endif
CC="$CC" CFLAGS="$OPT_FLAGS" CXXFLAGS="`echo $OPT_FLAGS | sed 's/ -Wall / /g'`" XCFLAGS="$OPT_FLAGS" TCFLAGS="$OPT_FLAGS" \
- ../configure --prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir} \
+ ../configure --prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir} --libexecdir=%{_libexecdir} \
--enable-shared --enable-linker-build-id \
%ifarch %{arm}
--enable-checking=release \
%else
--enable-checking=release \
--enable-multiarch \
+ --disable-multilib \
%endif
%endif
%if %{build_cloog}
%install
rm -fr %{buildroot}
-mkdir -p %{buildroot}/usr/share/license
-cp gcc/COPYING %{buildroot}/usr/share/license/gcc
-cp gcc/COPYING %{buildroot}/usr/share/license/cpp
-cp gcc/COPYING %{buildroot}/usr/share/license/libgcc
-cp gcc/COPYING %{buildroot}/usr/share/license/gcc-c++
-cp gcc/COPYING %{buildroot}/usr/share/license/libstdc++
-cp gcc/COPYING %{buildroot}/usr/share/license/libgomp
-cp gcc/COPYING %{buildroot}/usr/share/license/libmudflap
-
cd obj-%{gcc_target_platform}
%if !%{crossbuild}
# \/\/\/
FULLPATH=%{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
-FULLEPATH=%{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+FULLEPATH=%{buildroot}%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}
ln -sf gcc %{buildroot}%{_prefix}/bin/cc
mkdir -p %{buildroot}/lib
mv -f %{buildroot}%{_prefix}/%{_lib}/libgomp.spec $FULLPATH/
-mkdir -p %{buildroot}%{_prefix}/libexec/getconf
+mkdir -p %{buildroot}%{_libexecdir}/getconf
if gcc/xgcc -B gcc/ -E -dD -xc /dev/null | grep __LONG_MAX__.*2147483647; then
- ln -sf POSIX_V6_ILP32_OFF32 %{buildroot}%{_prefix}/libexec/getconf/default
+ ln -sf POSIX_V6_ILP32_OFF32 %{buildroot}%{_libexecdir}/getconf/default
else
- ln -sf POSIX_V6_LP64_OFF64 %{buildroot}%{_prefix}/libexec/getconf/default
+ ln -sf POSIX_V6_LP64_OFF64 %{buildroot}%{_libexecdir}/getconf/default
fi
gcc -static -Os %{SOURCE1} -o %{buildroot}%{_prefix}/sbin/libgcc_post_upgrade
strip %{buildroot}%{_prefix}/sbin/libgcc_post_upgrade
-cd ..
-
# Remove binaries we will not be including, so that they don't end up in
# gcc-debuginfo
rm -f %{buildroot}%{_prefix}/%{_lib}/{libffi*,libiberty.a}
rm -rRf %buildroot/%{_prefix}/lib/libiberty.a
rm -rRf %buildroot/%{_prefix}/share
#set +x
+%else
+# Fixed x86 dependencies
+sed "s/@X86@/%{!?x64:x86}%{?x64}/g" -i %{_sourcedir}/baselibs.conf
%endif
# /\/\/\
# cross
%endif
+cd ..
+
+mkdir -p %{buildroot}%{_datadir}/license
+cp gcc/COPYING %{buildroot}%{_datadir}/license/gcc
+cp gcc/COPYING %{buildroot}%{_datadir}/license/cpp
+cp gcc/COPYING %{buildroot}%{_datadir}/license/libgcc
+cp gcc/COPYING %{buildroot}%{_datadir}/license/gcc-c++
+cp gcc/COPYING %{buildroot}%{_datadir}/license/libstdc++
+cp gcc/COPYING %{buildroot}%{_datadir}/license/libgomp
+cp gcc/COPYING %{buildroot}%{_datadir}/license/libmudflap
+
%if !%{crossbuild}
# checking and split packaging for native ...
# native
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
-%dir %{_prefix}/libexec/gcc
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_libexecdir}/gcc
+%dir %{_libexecdir}/gcc/%{gcc_target_platform}
+%dir %{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include
# Shouldn't include all files under this fold, split to diff pkgs
-#%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/*
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/lto1
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/lto-wrapper
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/collect2
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/liblto_plugin.*
+#%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/*
+%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/lto1
+%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/lto-wrapper
+%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/collect2
+%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/liblto_plugin.*
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/plugin
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/plugin/include
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include-fixed
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include-fixed/README
+%ifnarch %{arm}
+#kernel 3.4 upstream removed a.out.h for arm arch
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include-fixed/linux/a.out.h
+%endif
# For ARM port
%ifarch %{arm}
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/arm_neon.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libmudflap.so
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libmudflapth.so
%endif
-%dir %{_prefix}/libexec/getconf
-%{_prefix}/libexec/getconf/default
+%dir %{_libexecdir}/getconf
+%{_libexecdir}/getconf/default
%doc gcc/README* gcc/COPYING*
-/usr/share/license/gcc
+%{_datadir}/license/gcc
%manifest gcc.manifest
%files -n cpp
/lib/cpp
%{_prefix}/bin/cpp
%{_mandir}/man1/cpp.1*
-%dir %{_prefix}/libexec/gcc
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/cc1
-/usr/share/license/cpp
+%dir %{_libexecdir}/gcc
+%dir %{_libexecdir}/gcc/%{gcc_target_platform}
+%dir %{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}
+%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/cc1
+%{_datadir}/license/cpp
%manifest cpp.manifest
%files -n libgcc
/%{_libdir}/libgcc_s.*
%{_prefix}/sbin/libgcc_post_upgrade
%doc gcc/COPYING.LIB
-/usr/share/license/libgcc
+%{_datadir}/license/libgcc
%manifest libgcc.manifest
# For ARM port
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
-%dir %{_prefix}/libexec/gcc
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/cc1plus
+%dir %{_libexecdir}/gcc
+%dir %{_libexecdir}/gcc/%{gcc_target_platform}
+%dir %{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}
+%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/cc1plus
%ifarch %{multilib_64_archs}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libstdc++.so
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libstdc++.so
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libsupc++.a
%endif
-/usr/share/license/gcc-c++
+%{_datadir}/license/gcc-c++
%manifest gcc-c++.manifest
%files -n libstdc++
%{_datadir}/gdb/auto-load/%{_prefix}/%{_lib}/libstdc*gdb.py*
%dir %{_prefix}/share/gcc-%{gcc_version}
%{_prefix}/share/gcc-%{gcc_version}/python
-/usr/share/license/libstdc++
+%{_datadir}/license/libstdc++
%manifest libstdc++.manifest
%files -n libstdc++-devel
%files -n libgomp
%defattr(-,root,root,-)
%{_prefix}/%{_lib}/libgomp.*
-/usr/share/license/libgomp
+%{_datadir}/license/libgomp
%manifest libgomp.manifest
%files -n libmudflap
%defattr(-,root,root,-)
%{_prefix}/%{_lib}/libmudflap.*
%{_prefix}/%{_lib}/libmudflapth.*
-/usr/share/license/libmudflap
+%{_datadir}/license/libmudflap
%manifest libmudflap.manifest
%files -n libmudflap-devel
# cross
# \/\/\/
%files
-/usr/share/license/gcc
%manifest gcc.manifest
%defattr(-,root,root,-)
%{_prefix}
# Combined gcc / cross-armv*-gcc(-accel) specfile
+%ifarch x86_64
+%define x64 x64
+%endif
Name: cross-armv6l-gcc
# crossbuild / accelerator section
%define crossextraconfig --with-float=hard --with-fpu=neon --with-arch=armv7-a
%endif
# Fixme: see above
-%if "%{name}" == "cross-armv5tel-gcc-accel"
+%if "%{name}" == "cross-armv5tel-gcc-accel-x86" || "%{name}" == "cross-armv5tel-gcc-accel-x64"
BuildRequires: cross-armv5tel-eglibc cross-armv5tel-eglibc-devel cross-armv5tel-eglibc-headers
BuildRequires: cross-armv5tel-kernel-headers cross-armv5tel-binutils
%define crossextraconfig %{nil}
%endif
-%if "%{name}" == "cross-armv6l-gcc-accel"
+%if "%{name}" == "cross-armv6l-gcc-accel-x86" || "%{name}" == "cross-armv6l-gcc-accel-x64"
BuildRequires: cross-armv6l-eglibc cross-armv6l-eglibc-devel cross-armv6l-eglibc-headers
BuildRequires: cross-armv6l-kernel-headers cross-armv6l-binutils
%define crossextraconfig %{nil}
%endif
-%if "%{name}" == "cross-armv7l-gcc-accel"
+%if "%{name}" == "cross-armv7l-gcc-accel-x86" || "%{name}" == "cross-armv7l-gcc-accel-x64"
BuildRequires: cross-armv7l-eglibc cross-armv7l-eglibc-devel cross-armv7l-eglibc-headers
BuildRequires: cross-armv7l-kernel-headers cross-armv7l-binutils
%define crossextraconfig --with-float=softfp --with-fpu=vfpv3 --with-arch=armv7-a
%endif
-%if "%{name}" == "cross-armv7hl-gcc-accel"
+%if "%{name}" == "cross-armv7hl-gcc-accel-x86" || "%{name}" == "cross-armv7hl-gcc-accel-x64"
BuildRequires: cross-armv7hl-eglibc cross-armv7hl-eglibc-devel cross-armv7hl-eglibc-headers
BuildRequires: cross-armv7hl-kernel-headers cross-armv7hl-binutils
%define crossextraconfig --with-float=hard --with-fpu=vfpv3-d16 --with-arch=armv7-a
%endif
-%if "%{name}" == "cross-armv7nhl-gcc-accel"
+%if "%{name}" == "cross-armv7nhl-gcc-accel-x86" || "%{name}" == "cross-armv7nhl-gcc-accel-x64"
BuildRequires: cross-armv7nhl-eglibc cross-armv7nhl-eglibc-devel cross-armv7nhl-eglibc-headers
BuildRequires: cross-armv7nhl-kernel-headers cross-armv7nhl-binutils
%define crossextraconfig --with-float=hard --with-fpu=neon --with-arch=armv7-a
%endif
# single target atm.
-ExclusiveArch: %ix86
+ExclusiveArch: %ix86 x86_64
#
# special handling for Tizen ARM build acceleration
# cross-armv*-gcc-accel
-%if "%(echo %{name} | sed -e "s/cross-.*-gcc-\\(.*\\)/\\1/")" == "accel"
+%if "%(echo %{name} | sed -e "s/cross-.*-gcc-\\(.*\\)-.*/\\1/")" == "accel"
# cross architecture
-%define crossarch %(echo %{name} | sed -e "s/cross-\\(.*\\)-gcc-accel/\\1/")
+%define crossarch %(echo %{name} | sed -e "s/cross-\\(.*\\)-gcc-accel-.*/\\1/")
# cross target platform
%define cross_gcc_target_platform %{crossarch}-tizen-linux-gnueabi
# prefix - as it's going to "replace" the original compiler ...
%define crossbuild 1
%define accelerator_crossbuild 1
# where to find the libs at runtime
-%define newrpath /emul/ia32-linux/lib:/emul/ia32-linux/usr/lib
+%define newrpath /emul/ia32-linux/%{_lib}:/emul/ia32-linux/usr/%{_lib}
%define _build_name_fmt %%{ARCH}/%%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.dontuse.rpm
%endif
# end special accel
# /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
# end crossbuild / accelerator section
-%global gcc_version 4.6
+%global gcc_version 4.6.4
%global gcc_release 2013.05
+%global release_prefix %{gcc_release}
%global _unpackaged_files_terminate_build 0
%ifarch %{arm}
%global build_cloog 0
%global build_cloog 1
%endif
%endif
-%global multilib_64_archs x86_64
+#global multilib_64_archs x86_64
%ifarch x86_64
%global multilib_32_arch i686
%endif
Summary: Various compilers (C, C++, Objective-C, Java, ...)
Version: %{gcc_version}
Release: %{gcc_release}
-VCS: toolchains/gcc#submit/master/20131126.022252-0-ga6b8565e99e42d6caee61b5015810d8b78c511bf
License: GPLv3+, GPLv3+ with exceptions and GPLv2+ with exceptions
Group: Development/Languages
URL: http://gcc.gnu.org
-Source0: gcc-linaro-%{version}-%{gcc_release}.tar.xz
+Source0: gcc-linaro-4.6-%{gcc_release}.tar.xz
Source1: libgcc_post_upgrade.c
Source100: gcc-rpmlintrc
Source200: baselibs.conf
%endif
Patch41: libgcc_post_upgrade.c.arm.patch
+Patch1000: gcc_arm_hard_float_dynamic_linker_revert.patch
#We need -gnueabi indicator for ARM
%ifnarch %{arm}
32bit enviroment from compiler side.
%prep
-%setup -q -n gcc-linaro-%{version}-%{gcc_release}
+%setup -q -n gcc-linaro-4.6-%{gcc_release}
+%patch1000 -p1
echo '%{version}' >gcc/BASE-VER
export OPT_FLAGS=`echo "$OPT_FLAGS" | sed -e "s#\-march=.*##g"`
%if %{accelerator_crossbuild}
# adding -rpath to the special crosscompiler
-export OPT_FLAGS="$OPT_FLAGS -Wl,-rpath,/emul/ia32-linux/usr/lib:/emul/ia32-linux/lib:/usr/lib:/lib"
+export OPT_FLAGS="$OPT_FLAGS -Wl,-rpath,/emul/ia32-linux/usr/%{_lib}:/emul/ia32-linux/%{_lib}:/usr/%{_lib}:/%{_lib}:/usr/lib:/lib"
%endif
%endif
CC="$CC" CFLAGS="$OPT_FLAGS" CXXFLAGS="`echo $OPT_FLAGS | sed 's/ -Wall / /g'`" XCFLAGS="$OPT_FLAGS" TCFLAGS="$OPT_FLAGS" \
- ../configure --prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir} \
+ ../configure --prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir} --libexecdir=%{_libexecdir} \
--enable-shared --enable-linker-build-id \
%ifarch %{arm}
--enable-checking=release \
%else
--enable-checking=release \
--enable-multiarch \
+ --disable-multilib \
%endif
%endif
%if %{build_cloog}
%install
rm -fr %{buildroot}
-mkdir -p %{buildroot}/usr/share/license
-cp gcc/COPYING %{buildroot}/usr/share/license/gcc
-cp gcc/COPYING %{buildroot}/usr/share/license/cpp
-cp gcc/COPYING %{buildroot}/usr/share/license/libgcc
-cp gcc/COPYING %{buildroot}/usr/share/license/gcc-c++
-cp gcc/COPYING %{buildroot}/usr/share/license/libstdc++
-cp gcc/COPYING %{buildroot}/usr/share/license/libgomp
-cp gcc/COPYING %{buildroot}/usr/share/license/libmudflap
-
cd obj-%{gcc_target_platform}
%if !%{crossbuild}
# \/\/\/
FULLPATH=%{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
-FULLEPATH=%{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+FULLEPATH=%{buildroot}%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}
ln -sf gcc %{buildroot}%{_prefix}/bin/cc
mkdir -p %{buildroot}/lib
mv -f %{buildroot}%{_prefix}/%{_lib}/libgomp.spec $FULLPATH/
-mkdir -p %{buildroot}%{_prefix}/libexec/getconf
+mkdir -p %{buildroot}%{_libexecdir}/getconf
if gcc/xgcc -B gcc/ -E -dD -xc /dev/null | grep __LONG_MAX__.*2147483647; then
- ln -sf POSIX_V6_ILP32_OFF32 %{buildroot}%{_prefix}/libexec/getconf/default
+ ln -sf POSIX_V6_ILP32_OFF32 %{buildroot}%{_libexecdir}/getconf/default
else
- ln -sf POSIX_V6_LP64_OFF64 %{buildroot}%{_prefix}/libexec/getconf/default
+ ln -sf POSIX_V6_LP64_OFF64 %{buildroot}%{_libexecdir}/getconf/default
fi
gcc -static -Os %{SOURCE1} -o %{buildroot}%{_prefix}/sbin/libgcc_post_upgrade
strip %{buildroot}%{_prefix}/sbin/libgcc_post_upgrade
-cd ..
-
# Remove binaries we will not be including, so that they don't end up in
# gcc-debuginfo
rm -f %{buildroot}%{_prefix}/%{_lib}/{libffi*,libiberty.a}
rm -rRf %buildroot/%{_prefix}/lib/libiberty.a
rm -rRf %buildroot/%{_prefix}/share
#set +x
+%else
+# Fixed x86 dependencies
+sed "s/@X86@/%{!?x64:x86}%{?x64}/g" -i %{_sourcedir}/baselibs.conf
%endif
# /\/\/\
# cross
%endif
+cd ..
+
+mkdir -p %{buildroot}%{_datadir}/license
+cp gcc/COPYING %{buildroot}%{_datadir}/license/gcc
+cp gcc/COPYING %{buildroot}%{_datadir}/license/cpp
+cp gcc/COPYING %{buildroot}%{_datadir}/license/libgcc
+cp gcc/COPYING %{buildroot}%{_datadir}/license/gcc-c++
+cp gcc/COPYING %{buildroot}%{_datadir}/license/libstdc++
+cp gcc/COPYING %{buildroot}%{_datadir}/license/libgomp
+cp gcc/COPYING %{buildroot}%{_datadir}/license/libmudflap
+
%if !%{crossbuild}
# checking and split packaging for native ...
# native
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
-%dir %{_prefix}/libexec/gcc
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_libexecdir}/gcc
+%dir %{_libexecdir}/gcc/%{gcc_target_platform}
+%dir %{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include
# Shouldn't include all files under this fold, split to diff pkgs
-#%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/*
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/lto1
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/lto-wrapper
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/collect2
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/liblto_plugin.*
+#%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/*
+%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/lto1
+%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/lto-wrapper
+%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/collect2
+%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/liblto_plugin.*
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/plugin
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/plugin/include
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include-fixed
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include-fixed/README
+%ifnarch %{arm}
+#kernel 3.4 upstream removed a.out.h for arm arch
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include-fixed/linux/a.out.h
+%endif
# For ARM port
%ifarch %{arm}
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/arm_neon.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libmudflap.so
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libmudflapth.so
%endif
-%dir %{_prefix}/libexec/getconf
-%{_prefix}/libexec/getconf/default
+%dir %{_libexecdir}/getconf
+%{_libexecdir}/getconf/default
%doc gcc/README* gcc/COPYING*
-/usr/share/license/gcc
+%{_datadir}/license/gcc
%manifest gcc.manifest
%files -n cpp
/lib/cpp
%{_prefix}/bin/cpp
%{_mandir}/man1/cpp.1*
-%dir %{_prefix}/libexec/gcc
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/cc1
-/usr/share/license/cpp
+%dir %{_libexecdir}/gcc
+%dir %{_libexecdir}/gcc/%{gcc_target_platform}
+%dir %{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}
+%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/cc1
+%{_datadir}/license/cpp
%manifest cpp.manifest
%files -n libgcc
/%{_libdir}/libgcc_s.*
%{_prefix}/sbin/libgcc_post_upgrade
%doc gcc/COPYING.LIB
-/usr/share/license/libgcc
+%{_datadir}/license/libgcc
%manifest libgcc.manifest
# For ARM port
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
-%dir %{_prefix}/libexec/gcc
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/cc1plus
+%dir %{_libexecdir}/gcc
+%dir %{_libexecdir}/gcc/%{gcc_target_platform}
+%dir %{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}
+%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/cc1plus
%ifarch %{multilib_64_archs}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libstdc++.so
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libstdc++.so
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libsupc++.a
%endif
-/usr/share/license/gcc-c++
+%{_datadir}/license/gcc-c++
%manifest gcc-c++.manifest
%files -n libstdc++
%{_datadir}/gdb/auto-load/%{_prefix}/%{_lib}/libstdc*gdb.py*
%dir %{_prefix}/share/gcc-%{gcc_version}
%{_prefix}/share/gcc-%{gcc_version}/python
-/usr/share/license/libstdc++
+%{_datadir}/license/libstdc++
%manifest libstdc++.manifest
%files -n libstdc++-devel
%files -n libgomp
%defattr(-,root,root,-)
%{_prefix}/%{_lib}/libgomp.*
-/usr/share/license/libgomp
+%{_datadir}/license/libgomp
%manifest libgomp.manifest
%files -n libmudflap
%defattr(-,root,root,-)
%{_prefix}/%{_lib}/libmudflap.*
%{_prefix}/%{_lib}/libmudflapth.*
-/usr/share/license/libmudflap
+%{_datadir}/license/libmudflap
%manifest libmudflap.manifest
%files -n libmudflap-devel
# cross
# \/\/\/
%files
-/usr/share/license/gcc
%manifest gcc.manifest
%defattr(-,root,root,-)
%{_prefix}
# Combined gcc / cross-armv*-gcc(-accel) specfile
-Name: cross-armv7hl-gcc-accel
+%ifarch x86_64
+%define x64 x64
+%endif
+Name: cross-armv7hl-gcc-accel-%{!?x64:x86}%{?x64}
# crossbuild / accelerator section
# \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/
%define crossextraconfig --with-float=hard --with-fpu=neon --with-arch=armv7-a
%endif
# Fixme: see above
-%if "%{name}" == "cross-armv5tel-gcc-accel"
+%if "%{name}" == "cross-armv5tel-gcc-accel-x86" || "%{name}" == "cross-armv5tel-gcc-accel-x64"
BuildRequires: cross-armv5tel-eglibc cross-armv5tel-eglibc-devel cross-armv5tel-eglibc-headers
BuildRequires: cross-armv5tel-kernel-headers cross-armv5tel-binutils
%define crossextraconfig %{nil}
%endif
-%if "%{name}" == "cross-armv6l-gcc-accel"
+%if "%{name}" == "cross-armv6l-gcc-accel-x86" || "%{name}" == "cross-armv6l-gcc-accel-x64"
BuildRequires: cross-armv6l-eglibc cross-armv6l-eglibc-devel cross-armv6l-eglibc-headers
BuildRequires: cross-armv6l-kernel-headers cross-armv6l-binutils
%define crossextraconfig %{nil}
%endif
-%if "%{name}" == "cross-armv7l-gcc-accel"
+%if "%{name}" == "cross-armv7l-gcc-accel-x86" || "%{name}" == "cross-armv7l-gcc-accel-x64"
BuildRequires: cross-armv7l-eglibc cross-armv7l-eglibc-devel cross-armv7l-eglibc-headers
BuildRequires: cross-armv7l-kernel-headers cross-armv7l-binutils
%define crossextraconfig --with-float=softfp --with-fpu=vfpv3 --with-arch=armv7-a
%endif
-%if "%{name}" == "cross-armv7hl-gcc-accel"
+%if "%{name}" == "cross-armv7hl-gcc-accel-x86" || "%{name}" == "cross-armv7hl-gcc-accel-x64"
BuildRequires: cross-armv7hl-eglibc cross-armv7hl-eglibc-devel cross-armv7hl-eglibc-headers
BuildRequires: cross-armv7hl-kernel-headers cross-armv7hl-binutils
%define crossextraconfig --with-float=hard --with-fpu=vfpv3-d16 --with-arch=armv7-a
%endif
-%if "%{name}" == "cross-armv7nhl-gcc-accel"
+%if "%{name}" == "cross-armv7nhl-gcc-accel-x86" || "%{name}" == "cross-armv7nhl-gcc-accel-x64"
BuildRequires: cross-armv7nhl-eglibc cross-armv7nhl-eglibc-devel cross-armv7nhl-eglibc-headers
BuildRequires: cross-armv7nhl-kernel-headers cross-armv7nhl-binutils
%define crossextraconfig --with-float=hard --with-fpu=neon --with-arch=armv7-a
%endif
# single target atm.
-ExclusiveArch: %ix86
+ExclusiveArch: %ix86 x86_64
#
# special handling for Tizen ARM build acceleration
# cross-armv*-gcc-accel
-%if "%(echo %{name} | sed -e "s/cross-.*-gcc-\\(.*\\)/\\1/")" == "accel"
+%if "%(echo %{name} | sed -e "s/cross-.*-gcc-\\(.*\\)-.*/\\1/")" == "accel"
# cross architecture
-%define crossarch %(echo %{name} | sed -e "s/cross-\\(.*\\)-gcc-accel/\\1/")
+%define crossarch %(echo %{name} | sed -e "s/cross-\\(.*\\)-gcc-accel-.*/\\1/")
# cross target platform
%define cross_gcc_target_platform %{crossarch}-tizen-linux-gnueabi
# prefix - as it's going to "replace" the original compiler ...
%define crossbuild 1
%define accelerator_crossbuild 1
# where to find the libs at runtime
-%define newrpath /emul/ia32-linux/lib:/emul/ia32-linux/usr/lib
+%define newrpath /emul/ia32-linux/%{_lib}:/emul/ia32-linux/usr/%{_lib}
%define _build_name_fmt %%{ARCH}/%%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.dontuse.rpm
%endif
# end special accel
# /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
# end crossbuild / accelerator section
-%global gcc_version 4.6
+%global gcc_version 4.6.4
%global gcc_release 2013.05
+%global release_prefix %{gcc_release}
%global _unpackaged_files_terminate_build 0
%ifarch %{arm}
%global build_cloog 0
%global build_cloog 1
%endif
%endif
-%global multilib_64_archs x86_64
+#global multilib_64_archs x86_64
%ifarch x86_64
%global multilib_32_arch i686
%endif
Summary: Various compilers (C, C++, Objective-C, Java, ...)
Version: %{gcc_version}
Release: %{gcc_release}
-VCS: toolchains/gcc#submit/master/20131126.022252-0-ga6b8565e99e42d6caee61b5015810d8b78c511bf
License: GPLv3+, GPLv3+ with exceptions and GPLv2+ with exceptions
Group: Development/Languages
URL: http://gcc.gnu.org
-Source0: gcc-linaro-%{version}-%{gcc_release}.tar.xz
+Source0: gcc-linaro-4.6-%{gcc_release}.tar.xz
Source1: libgcc_post_upgrade.c
Source100: gcc-rpmlintrc
Source200: baselibs.conf
%endif
Patch41: libgcc_post_upgrade.c.arm.patch
+Patch1000: gcc_arm_hard_float_dynamic_linker_revert.patch
#We need -gnueabi indicator for ARM
%ifnarch %{arm}
32bit enviroment from compiler side.
%prep
-%setup -q -n gcc-linaro-%{version}-%{gcc_release}
+%setup -q -n gcc-linaro-4.6-%{gcc_release}
+%patch1000 -p1
echo '%{version}' >gcc/BASE-VER
export OPT_FLAGS=`echo "$OPT_FLAGS" | sed -e "s#\-march=.*##g"`
%if %{accelerator_crossbuild}
# adding -rpath to the special crosscompiler
-export OPT_FLAGS="$OPT_FLAGS -Wl,-rpath,/emul/ia32-linux/usr/lib:/emul/ia32-linux/lib:/usr/lib:/lib"
+export OPT_FLAGS="$OPT_FLAGS -Wl,-rpath,/emul/ia32-linux/usr/%{_lib}:/emul/ia32-linux/%{_lib}:/usr/%{_lib}:/%{_lib}:/usr/lib:/lib"
%endif
%endif
CC="$CC" CFLAGS="$OPT_FLAGS" CXXFLAGS="`echo $OPT_FLAGS | sed 's/ -Wall / /g'`" XCFLAGS="$OPT_FLAGS" TCFLAGS="$OPT_FLAGS" \
- ../configure --prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir} \
+ ../configure --prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir} --libexecdir=%{_libexecdir} \
--enable-shared --enable-linker-build-id \
%ifarch %{arm}
--enable-checking=release \
%else
--enable-checking=release \
--enable-multiarch \
+ --disable-multilib \
%endif
%endif
%if %{build_cloog}
%install
rm -fr %{buildroot}
-mkdir -p %{buildroot}/usr/share/license
-cp gcc/COPYING %{buildroot}/usr/share/license/gcc
-cp gcc/COPYING %{buildroot}/usr/share/license/cpp
-cp gcc/COPYING %{buildroot}/usr/share/license/libgcc
-cp gcc/COPYING %{buildroot}/usr/share/license/gcc-c++
-cp gcc/COPYING %{buildroot}/usr/share/license/libstdc++
-cp gcc/COPYING %{buildroot}/usr/share/license/libgomp
-cp gcc/COPYING %{buildroot}/usr/share/license/libmudflap
-
cd obj-%{gcc_target_platform}
%if !%{crossbuild}
# \/\/\/
FULLPATH=%{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
-FULLEPATH=%{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+FULLEPATH=%{buildroot}%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}
ln -sf gcc %{buildroot}%{_prefix}/bin/cc
mkdir -p %{buildroot}/lib
mv -f %{buildroot}%{_prefix}/%{_lib}/libgomp.spec $FULLPATH/
-mkdir -p %{buildroot}%{_prefix}/libexec/getconf
+mkdir -p %{buildroot}%{_libexecdir}/getconf
if gcc/xgcc -B gcc/ -E -dD -xc /dev/null | grep __LONG_MAX__.*2147483647; then
- ln -sf POSIX_V6_ILP32_OFF32 %{buildroot}%{_prefix}/libexec/getconf/default
+ ln -sf POSIX_V6_ILP32_OFF32 %{buildroot}%{_libexecdir}/getconf/default
else
- ln -sf POSIX_V6_LP64_OFF64 %{buildroot}%{_prefix}/libexec/getconf/default
+ ln -sf POSIX_V6_LP64_OFF64 %{buildroot}%{_libexecdir}/getconf/default
fi
gcc -static -Os %{SOURCE1} -o %{buildroot}%{_prefix}/sbin/libgcc_post_upgrade
strip %{buildroot}%{_prefix}/sbin/libgcc_post_upgrade
-cd ..
-
# Remove binaries we will not be including, so that they don't end up in
# gcc-debuginfo
rm -f %{buildroot}%{_prefix}/%{_lib}/{libffi*,libiberty.a}
rm -rRf %buildroot/%{_prefix}/lib/libiberty.a
rm -rRf %buildroot/%{_prefix}/share
#set +x
+%else
+# Fixed x86 dependencies
+sed "s/@X86@/%{!?x64:x86}%{?x64}/g" -i %{_sourcedir}/baselibs.conf
%endif
# /\/\/\
# cross
%endif
+cd ..
+
+mkdir -p %{buildroot}%{_datadir}/license
+cp gcc/COPYING %{buildroot}%{_datadir}/license/gcc
+cp gcc/COPYING %{buildroot}%{_datadir}/license/cpp
+cp gcc/COPYING %{buildroot}%{_datadir}/license/libgcc
+cp gcc/COPYING %{buildroot}%{_datadir}/license/gcc-c++
+cp gcc/COPYING %{buildroot}%{_datadir}/license/libstdc++
+cp gcc/COPYING %{buildroot}%{_datadir}/license/libgomp
+cp gcc/COPYING %{buildroot}%{_datadir}/license/libmudflap
+
%if !%{crossbuild}
# checking and split packaging for native ...
# native
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
-%dir %{_prefix}/libexec/gcc
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_libexecdir}/gcc
+%dir %{_libexecdir}/gcc/%{gcc_target_platform}
+%dir %{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include
# Shouldn't include all files under this fold, split to diff pkgs
-#%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/*
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/lto1
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/lto-wrapper
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/collect2
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/liblto_plugin.*
+#%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/*
+%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/lto1
+%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/lto-wrapper
+%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/collect2
+%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/liblto_plugin.*
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/plugin
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/plugin/include
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include-fixed
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include-fixed/README
+%ifnarch %{arm}
+#kernel 3.4 upstream removed a.out.h for arm arch
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include-fixed/linux/a.out.h
+%endif
# For ARM port
%ifarch %{arm}
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/arm_neon.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libmudflap.so
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libmudflapth.so
%endif
-%dir %{_prefix}/libexec/getconf
-%{_prefix}/libexec/getconf/default
+%dir %{_libexecdir}/getconf
+%{_libexecdir}/getconf/default
%doc gcc/README* gcc/COPYING*
-/usr/share/license/gcc
+%{_datadir}/license/gcc
%manifest gcc.manifest
%files -n cpp
/lib/cpp
%{_prefix}/bin/cpp
%{_mandir}/man1/cpp.1*
-%dir %{_prefix}/libexec/gcc
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/cc1
-/usr/share/license/cpp
+%dir %{_libexecdir}/gcc
+%dir %{_libexecdir}/gcc/%{gcc_target_platform}
+%dir %{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}
+%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/cc1
+%{_datadir}/license/cpp
%manifest cpp.manifest
%files -n libgcc
/%{_libdir}/libgcc_s.*
%{_prefix}/sbin/libgcc_post_upgrade
%doc gcc/COPYING.LIB
-/usr/share/license/libgcc
+%{_datadir}/license/libgcc
%manifest libgcc.manifest
# For ARM port
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
-%dir %{_prefix}/libexec/gcc
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/cc1plus
+%dir %{_libexecdir}/gcc
+%dir %{_libexecdir}/gcc/%{gcc_target_platform}
+%dir %{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}
+%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/cc1plus
%ifarch %{multilib_64_archs}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libstdc++.so
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libstdc++.so
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libsupc++.a
%endif
-/usr/share/license/gcc-c++
+%{_datadir}/license/gcc-c++
%manifest gcc-c++.manifest
%files -n libstdc++
%{_datadir}/gdb/auto-load/%{_prefix}/%{_lib}/libstdc*gdb.py*
%dir %{_prefix}/share/gcc-%{gcc_version}
%{_prefix}/share/gcc-%{gcc_version}/python
-/usr/share/license/libstdc++
+%{_datadir}/license/libstdc++
%manifest libstdc++.manifest
%files -n libstdc++-devel
%files -n libgomp
%defattr(-,root,root,-)
%{_prefix}/%{_lib}/libgomp.*
-/usr/share/license/libgomp
+%{_datadir}/license/libgomp
%manifest libgomp.manifest
%files -n libmudflap
%defattr(-,root,root,-)
%{_prefix}/%{_lib}/libmudflap.*
%{_prefix}/%{_lib}/libmudflapth.*
-/usr/share/license/libmudflap
+%{_datadir}/license/libmudflap
%manifest libmudflap.manifest
%files -n libmudflap-devel
# cross
# \/\/\/
%files
-/usr/share/license/gcc
%manifest gcc.manifest
%defattr(-,root,root,-)
%{_prefix}
# Combined gcc / cross-armv*-gcc(-accel) specfile
+%ifarch x86_64
+%define x64 x64
+%endif
Name: cross-armv7hl-gcc
# crossbuild / accelerator section
%define crossextraconfig --with-float=hard --with-fpu=neon --with-arch=armv7-a
%endif
# Fixme: see above
-%if "%{name}" == "cross-armv5tel-gcc-accel"
+%if "%{name}" == "cross-armv5tel-gcc-accel-x86" || "%{name}" == "cross-armv5tel-gcc-accel-x64"
BuildRequires: cross-armv5tel-eglibc cross-armv5tel-eglibc-devel cross-armv5tel-eglibc-headers
BuildRequires: cross-armv5tel-kernel-headers cross-armv5tel-binutils
%define crossextraconfig %{nil}
%endif
-%if "%{name}" == "cross-armv6l-gcc-accel"
+%if "%{name}" == "cross-armv6l-gcc-accel-x86" || "%{name}" == "cross-armv6l-gcc-accel-x64"
BuildRequires: cross-armv6l-eglibc cross-armv6l-eglibc-devel cross-armv6l-eglibc-headers
BuildRequires: cross-armv6l-kernel-headers cross-armv6l-binutils
%define crossextraconfig %{nil}
%endif
-%if "%{name}" == "cross-armv7l-gcc-accel"
+%if "%{name}" == "cross-armv7l-gcc-accel-x86" || "%{name}" == "cross-armv7l-gcc-accel-x64"
BuildRequires: cross-armv7l-eglibc cross-armv7l-eglibc-devel cross-armv7l-eglibc-headers
BuildRequires: cross-armv7l-kernel-headers cross-armv7l-binutils
%define crossextraconfig --with-float=softfp --with-fpu=vfpv3 --with-arch=armv7-a
%endif
-%if "%{name}" == "cross-armv7hl-gcc-accel"
+%if "%{name}" == "cross-armv7hl-gcc-accel-x86" || "%{name}" == "cross-armv7hl-gcc-accel-x64"
BuildRequires: cross-armv7hl-eglibc cross-armv7hl-eglibc-devel cross-armv7hl-eglibc-headers
BuildRequires: cross-armv7hl-kernel-headers cross-armv7hl-binutils
%define crossextraconfig --with-float=hard --with-fpu=vfpv3-d16 --with-arch=armv7-a
%endif
-%if "%{name}" == "cross-armv7nhl-gcc-accel"
+%if "%{name}" == "cross-armv7nhl-gcc-accel-x86" || "%{name}" == "cross-armv7nhl-gcc-accel-x64"
BuildRequires: cross-armv7nhl-eglibc cross-armv7nhl-eglibc-devel cross-armv7nhl-eglibc-headers
BuildRequires: cross-armv7nhl-kernel-headers cross-armv7nhl-binutils
%define crossextraconfig --with-float=hard --with-fpu=neon --with-arch=armv7-a
%endif
# single target atm.
-ExclusiveArch: %ix86
+ExclusiveArch: %ix86 x86_64
#
# special handling for Tizen ARM build acceleration
# cross-armv*-gcc-accel
-%if "%(echo %{name} | sed -e "s/cross-.*-gcc-\\(.*\\)/\\1/")" == "accel"
+%if "%(echo %{name} | sed -e "s/cross-.*-gcc-\\(.*\\)-.*/\\1/")" == "accel"
# cross architecture
-%define crossarch %(echo %{name} | sed -e "s/cross-\\(.*\\)-gcc-accel/\\1/")
+%define crossarch %(echo %{name} | sed -e "s/cross-\\(.*\\)-gcc-accel-.*/\\1/")
# cross target platform
%define cross_gcc_target_platform %{crossarch}-tizen-linux-gnueabi
# prefix - as it's going to "replace" the original compiler ...
%define crossbuild 1
%define accelerator_crossbuild 1
# where to find the libs at runtime
-%define newrpath /emul/ia32-linux/lib:/emul/ia32-linux/usr/lib
+%define newrpath /emul/ia32-linux/%{_lib}:/emul/ia32-linux/usr/%{_lib}
%define _build_name_fmt %%{ARCH}/%%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.dontuse.rpm
%endif
# end special accel
# /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
# end crossbuild / accelerator section
-%global gcc_version 4.6
+%global gcc_version 4.6.4
%global gcc_release 2013.05
+%global release_prefix %{gcc_release}
%global _unpackaged_files_terminate_build 0
%ifarch %{arm}
%global build_cloog 0
%global build_cloog 1
%endif
%endif
-%global multilib_64_archs x86_64
+#global multilib_64_archs x86_64
%ifarch x86_64
%global multilib_32_arch i686
%endif
Summary: Various compilers (C, C++, Objective-C, Java, ...)
Version: %{gcc_version}
Release: %{gcc_release}
-VCS: toolchains/gcc#submit/master/20131126.022252-0-ga6b8565e99e42d6caee61b5015810d8b78c511bf
License: GPLv3+, GPLv3+ with exceptions and GPLv2+ with exceptions
Group: Development/Languages
URL: http://gcc.gnu.org
-Source0: gcc-linaro-%{version}-%{gcc_release}.tar.xz
+Source0: gcc-linaro-4.6-%{gcc_release}.tar.xz
Source1: libgcc_post_upgrade.c
Source100: gcc-rpmlintrc
Source200: baselibs.conf
%endif
Patch41: libgcc_post_upgrade.c.arm.patch
+Patch1000: gcc_arm_hard_float_dynamic_linker_revert.patch
#We need -gnueabi indicator for ARM
%ifnarch %{arm}
32bit enviroment from compiler side.
%prep
-%setup -q -n gcc-linaro-%{version}-%{gcc_release}
+%setup -q -n gcc-linaro-4.6-%{gcc_release}
+%patch1000 -p1
echo '%{version}' >gcc/BASE-VER
export OPT_FLAGS=`echo "$OPT_FLAGS" | sed -e "s#\-march=.*##g"`
%if %{accelerator_crossbuild}
# adding -rpath to the special crosscompiler
-export OPT_FLAGS="$OPT_FLAGS -Wl,-rpath,/emul/ia32-linux/usr/lib:/emul/ia32-linux/lib:/usr/lib:/lib"
+export OPT_FLAGS="$OPT_FLAGS -Wl,-rpath,/emul/ia32-linux/usr/%{_lib}:/emul/ia32-linux/%{_lib}:/usr/%{_lib}:/%{_lib}:/usr/lib:/lib"
%endif
%endif
CC="$CC" CFLAGS="$OPT_FLAGS" CXXFLAGS="`echo $OPT_FLAGS | sed 's/ -Wall / /g'`" XCFLAGS="$OPT_FLAGS" TCFLAGS="$OPT_FLAGS" \
- ../configure --prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir} \
+ ../configure --prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir} --libexecdir=%{_libexecdir} \
--enable-shared --enable-linker-build-id \
%ifarch %{arm}
--enable-checking=release \
%else
--enable-checking=release \
--enable-multiarch \
+ --disable-multilib \
%endif
%endif
%if %{build_cloog}
%install
rm -fr %{buildroot}
-mkdir -p %{buildroot}/usr/share/license
-cp gcc/COPYING %{buildroot}/usr/share/license/gcc
-cp gcc/COPYING %{buildroot}/usr/share/license/cpp
-cp gcc/COPYING %{buildroot}/usr/share/license/libgcc
-cp gcc/COPYING %{buildroot}/usr/share/license/gcc-c++
-cp gcc/COPYING %{buildroot}/usr/share/license/libstdc++
-cp gcc/COPYING %{buildroot}/usr/share/license/libgomp
-cp gcc/COPYING %{buildroot}/usr/share/license/libmudflap
-
cd obj-%{gcc_target_platform}
%if !%{crossbuild}
# \/\/\/
FULLPATH=%{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
-FULLEPATH=%{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+FULLEPATH=%{buildroot}%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}
ln -sf gcc %{buildroot}%{_prefix}/bin/cc
mkdir -p %{buildroot}/lib
mv -f %{buildroot}%{_prefix}/%{_lib}/libgomp.spec $FULLPATH/
-mkdir -p %{buildroot}%{_prefix}/libexec/getconf
+mkdir -p %{buildroot}%{_libexecdir}/getconf
if gcc/xgcc -B gcc/ -E -dD -xc /dev/null | grep __LONG_MAX__.*2147483647; then
- ln -sf POSIX_V6_ILP32_OFF32 %{buildroot}%{_prefix}/libexec/getconf/default
+ ln -sf POSIX_V6_ILP32_OFF32 %{buildroot}%{_libexecdir}/getconf/default
else
- ln -sf POSIX_V6_LP64_OFF64 %{buildroot}%{_prefix}/libexec/getconf/default
+ ln -sf POSIX_V6_LP64_OFF64 %{buildroot}%{_libexecdir}/getconf/default
fi
gcc -static -Os %{SOURCE1} -o %{buildroot}%{_prefix}/sbin/libgcc_post_upgrade
strip %{buildroot}%{_prefix}/sbin/libgcc_post_upgrade
-cd ..
-
# Remove binaries we will not be including, so that they don't end up in
# gcc-debuginfo
rm -f %{buildroot}%{_prefix}/%{_lib}/{libffi*,libiberty.a}
rm -rRf %buildroot/%{_prefix}/lib/libiberty.a
rm -rRf %buildroot/%{_prefix}/share
#set +x
+%else
+# Fixed x86 dependencies
+sed "s/@X86@/%{!?x64:x86}%{?x64}/g" -i %{_sourcedir}/baselibs.conf
%endif
# /\/\/\
# cross
%endif
+cd ..
+
+mkdir -p %{buildroot}%{_datadir}/license
+cp gcc/COPYING %{buildroot}%{_datadir}/license/gcc
+cp gcc/COPYING %{buildroot}%{_datadir}/license/cpp
+cp gcc/COPYING %{buildroot}%{_datadir}/license/libgcc
+cp gcc/COPYING %{buildroot}%{_datadir}/license/gcc-c++
+cp gcc/COPYING %{buildroot}%{_datadir}/license/libstdc++
+cp gcc/COPYING %{buildroot}%{_datadir}/license/libgomp
+cp gcc/COPYING %{buildroot}%{_datadir}/license/libmudflap
+
%if !%{crossbuild}
# checking and split packaging for native ...
# native
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
-%dir %{_prefix}/libexec/gcc
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_libexecdir}/gcc
+%dir %{_libexecdir}/gcc/%{gcc_target_platform}
+%dir %{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include
# Shouldn't include all files under this fold, split to diff pkgs
-#%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/*
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/lto1
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/lto-wrapper
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/collect2
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/liblto_plugin.*
+#%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/*
+%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/lto1
+%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/lto-wrapper
+%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/collect2
+%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/liblto_plugin.*
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/plugin
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/plugin/include
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include-fixed
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include-fixed/README
+%ifnarch %{arm}
+#kernel 3.4 upstream removed a.out.h for arm arch
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include-fixed/linux/a.out.h
+%endif
# For ARM port
%ifarch %{arm}
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/arm_neon.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libmudflap.so
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libmudflapth.so
%endif
-%dir %{_prefix}/libexec/getconf
-%{_prefix}/libexec/getconf/default
+%dir %{_libexecdir}/getconf
+%{_libexecdir}/getconf/default
%doc gcc/README* gcc/COPYING*
-/usr/share/license/gcc
+%{_datadir}/license/gcc
%manifest gcc.manifest
%files -n cpp
/lib/cpp
%{_prefix}/bin/cpp
%{_mandir}/man1/cpp.1*
-%dir %{_prefix}/libexec/gcc
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/cc1
-/usr/share/license/cpp
+%dir %{_libexecdir}/gcc
+%dir %{_libexecdir}/gcc/%{gcc_target_platform}
+%dir %{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}
+%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/cc1
+%{_datadir}/license/cpp
%manifest cpp.manifest
%files -n libgcc
/%{_libdir}/libgcc_s.*
%{_prefix}/sbin/libgcc_post_upgrade
%doc gcc/COPYING.LIB
-/usr/share/license/libgcc
+%{_datadir}/license/libgcc
%manifest libgcc.manifest
# For ARM port
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
-%dir %{_prefix}/libexec/gcc
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/cc1plus
+%dir %{_libexecdir}/gcc
+%dir %{_libexecdir}/gcc/%{gcc_target_platform}
+%dir %{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}
+%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/cc1plus
%ifarch %{multilib_64_archs}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libstdc++.so
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libstdc++.so
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libsupc++.a
%endif
-/usr/share/license/gcc-c++
+%{_datadir}/license/gcc-c++
%manifest gcc-c++.manifest
%files -n libstdc++
%{_datadir}/gdb/auto-load/%{_prefix}/%{_lib}/libstdc*gdb.py*
%dir %{_prefix}/share/gcc-%{gcc_version}
%{_prefix}/share/gcc-%{gcc_version}/python
-/usr/share/license/libstdc++
+%{_datadir}/license/libstdc++
%manifest libstdc++.manifest
%files -n libstdc++-devel
%files -n libgomp
%defattr(-,root,root,-)
%{_prefix}/%{_lib}/libgomp.*
-/usr/share/license/libgomp
+%{_datadir}/license/libgomp
%manifest libgomp.manifest
%files -n libmudflap
%defattr(-,root,root,-)
%{_prefix}/%{_lib}/libmudflap.*
%{_prefix}/%{_lib}/libmudflapth.*
-/usr/share/license/libmudflap
+%{_datadir}/license/libmudflap
%manifest libmudflap.manifest
%files -n libmudflap-devel
# cross
# \/\/\/
%files
-/usr/share/license/gcc
%manifest gcc.manifest
%defattr(-,root,root,-)
%{_prefix}
# Combined gcc / cross-armv*-gcc(-accel) specfile
-Name: cross-armv7l-gcc-accel
+%ifarch x86_64
+%define x64 x64
+%endif
+Name: cross-armv7l-gcc-accel-%{!?x64:x86}%{?x64}
# crossbuild / accelerator section
# \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/
%define crossextraconfig --with-float=hard --with-fpu=neon --with-arch=armv7-a
%endif
# Fixme: see above
-%if "%{name}" == "cross-armv5tel-gcc-accel"
+%if "%{name}" == "cross-armv5tel-gcc-accel-x86" || "%{name}" == "cross-armv5tel-gcc-accel-x64"
BuildRequires: cross-armv5tel-eglibc cross-armv5tel-eglibc-devel cross-armv5tel-eglibc-headers
BuildRequires: cross-armv5tel-kernel-headers cross-armv5tel-binutils
%define crossextraconfig %{nil}
%endif
-%if "%{name}" == "cross-armv6l-gcc-accel"
+%if "%{name}" == "cross-armv6l-gcc-accel-x86" || "%{name}" == "cross-armv6l-gcc-accel-x64"
BuildRequires: cross-armv6l-eglibc cross-armv6l-eglibc-devel cross-armv6l-eglibc-headers
BuildRequires: cross-armv6l-kernel-headers cross-armv6l-binutils
%define crossextraconfig %{nil}
%endif
-%if "%{name}" == "cross-armv7l-gcc-accel"
+%if "%{name}" == "cross-armv7l-gcc-accel-x86" || "%{name}" == "cross-armv7l-gcc-accel-x64"
BuildRequires: cross-armv7l-eglibc cross-armv7l-eglibc-devel cross-armv7l-eglibc-headers
BuildRequires: cross-armv7l-kernel-headers cross-armv7l-binutils
%define crossextraconfig --with-float=softfp --with-fpu=vfpv3 --with-arch=armv7-a
%endif
-%if "%{name}" == "cross-armv7hl-gcc-accel"
+%if "%{name}" == "cross-armv7hl-gcc-accel-x86" || "%{name}" == "cross-armv7hl-gcc-accel-x64"
BuildRequires: cross-armv7hl-eglibc cross-armv7hl-eglibc-devel cross-armv7hl-eglibc-headers
BuildRequires: cross-armv7hl-kernel-headers cross-armv7hl-binutils
%define crossextraconfig --with-float=hard --with-fpu=vfpv3-d16 --with-arch=armv7-a
%endif
-%if "%{name}" == "cross-armv7nhl-gcc-accel"
+%if "%{name}" == "cross-armv7nhl-gcc-accel-x86" || "%{name}" == "cross-armv7nhl-gcc-accel-x64"
BuildRequires: cross-armv7nhl-eglibc cross-armv7nhl-eglibc-devel cross-armv7nhl-eglibc-headers
BuildRequires: cross-armv7nhl-kernel-headers cross-armv7nhl-binutils
%define crossextraconfig --with-float=hard --with-fpu=neon --with-arch=armv7-a
%endif
# single target atm.
-ExclusiveArch: %ix86
+ExclusiveArch: %ix86 x86_64
#
# special handling for Tizen ARM build acceleration
# cross-armv*-gcc-accel
-%if "%(echo %{name} | sed -e "s/cross-.*-gcc-\\(.*\\)/\\1/")" == "accel"
+%if "%(echo %{name} | sed -e "s/cross-.*-gcc-\\(.*\\)-.*/\\1/")" == "accel"
# cross architecture
-%define crossarch %(echo %{name} | sed -e "s/cross-\\(.*\\)-gcc-accel/\\1/")
+%define crossarch %(echo %{name} | sed -e "s/cross-\\(.*\\)-gcc-accel-.*/\\1/")
# cross target platform
%define cross_gcc_target_platform %{crossarch}-tizen-linux-gnueabi
# prefix - as it's going to "replace" the original compiler ...
%define crossbuild 1
%define accelerator_crossbuild 1
# where to find the libs at runtime
-%define newrpath /emul/ia32-linux/lib:/emul/ia32-linux/usr/lib
+%define newrpath /emul/ia32-linux/%{_lib}:/emul/ia32-linux/usr/%{_lib}
%define _build_name_fmt %%{ARCH}/%%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.dontuse.rpm
%endif
# end special accel
# /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
# end crossbuild / accelerator section
-%global gcc_version 4.6
+%global gcc_version 4.6.4
%global gcc_release 2013.05
+%global release_prefix %{gcc_release}
%global _unpackaged_files_terminate_build 0
%ifarch %{arm}
%global build_cloog 0
%global build_cloog 1
%endif
%endif
-%global multilib_64_archs x86_64
+#global multilib_64_archs x86_64
%ifarch x86_64
%global multilib_32_arch i686
%endif
Summary: Various compilers (C, C++, Objective-C, Java, ...)
Version: %{gcc_version}
Release: %{gcc_release}
-VCS: toolchains/gcc#submit/master/20131126.022252-0-ga6b8565e99e42d6caee61b5015810d8b78c511bf
License: GPLv3+, GPLv3+ with exceptions and GPLv2+ with exceptions
Group: Development/Languages
URL: http://gcc.gnu.org
-Source0: gcc-linaro-%{version}-%{gcc_release}.tar.xz
+Source0: gcc-linaro-4.6-%{gcc_release}.tar.xz
Source1: libgcc_post_upgrade.c
Source100: gcc-rpmlintrc
Source200: baselibs.conf
%endif
Patch41: libgcc_post_upgrade.c.arm.patch
+Patch1000: gcc_arm_hard_float_dynamic_linker_revert.patch
#We need -gnueabi indicator for ARM
%ifnarch %{arm}
32bit enviroment from compiler side.
%prep
-%setup -q -n gcc-linaro-%{version}-%{gcc_release}
+%setup -q -n gcc-linaro-4.6-%{gcc_release}
+%patch1000 -p1
echo '%{version}' >gcc/BASE-VER
export OPT_FLAGS=`echo "$OPT_FLAGS" | sed -e "s#\-march=.*##g"`
%if %{accelerator_crossbuild}
# adding -rpath to the special crosscompiler
-export OPT_FLAGS="$OPT_FLAGS -Wl,-rpath,/emul/ia32-linux/usr/lib:/emul/ia32-linux/lib:/usr/lib:/lib"
+export OPT_FLAGS="$OPT_FLAGS -Wl,-rpath,/emul/ia32-linux/usr/%{_lib}:/emul/ia32-linux/%{_lib}:/usr/%{_lib}:/%{_lib}:/usr/lib:/lib"
%endif
%endif
CC="$CC" CFLAGS="$OPT_FLAGS" CXXFLAGS="`echo $OPT_FLAGS | sed 's/ -Wall / /g'`" XCFLAGS="$OPT_FLAGS" TCFLAGS="$OPT_FLAGS" \
- ../configure --prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir} \
+ ../configure --prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir} --libexecdir=%{_libexecdir} \
--enable-shared --enable-linker-build-id \
%ifarch %{arm}
--enable-checking=release \
%else
--enable-checking=release \
--enable-multiarch \
+ --disable-multilib \
%endif
%endif
%if %{build_cloog}
%install
rm -fr %{buildroot}
-mkdir -p %{buildroot}/usr/share/license
-cp gcc/COPYING %{buildroot}/usr/share/license/gcc
-cp gcc/COPYING %{buildroot}/usr/share/license/cpp
-cp gcc/COPYING %{buildroot}/usr/share/license/libgcc
-cp gcc/COPYING %{buildroot}/usr/share/license/gcc-c++
-cp gcc/COPYING %{buildroot}/usr/share/license/libstdc++
-cp gcc/COPYING %{buildroot}/usr/share/license/libgomp
-cp gcc/COPYING %{buildroot}/usr/share/license/libmudflap
-
cd obj-%{gcc_target_platform}
%if !%{crossbuild}
# \/\/\/
FULLPATH=%{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
-FULLEPATH=%{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+FULLEPATH=%{buildroot}%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}
ln -sf gcc %{buildroot}%{_prefix}/bin/cc
mkdir -p %{buildroot}/lib
mv -f %{buildroot}%{_prefix}/%{_lib}/libgomp.spec $FULLPATH/
-mkdir -p %{buildroot}%{_prefix}/libexec/getconf
+mkdir -p %{buildroot}%{_libexecdir}/getconf
if gcc/xgcc -B gcc/ -E -dD -xc /dev/null | grep __LONG_MAX__.*2147483647; then
- ln -sf POSIX_V6_ILP32_OFF32 %{buildroot}%{_prefix}/libexec/getconf/default
+ ln -sf POSIX_V6_ILP32_OFF32 %{buildroot}%{_libexecdir}/getconf/default
else
- ln -sf POSIX_V6_LP64_OFF64 %{buildroot}%{_prefix}/libexec/getconf/default
+ ln -sf POSIX_V6_LP64_OFF64 %{buildroot}%{_libexecdir}/getconf/default
fi
gcc -static -Os %{SOURCE1} -o %{buildroot}%{_prefix}/sbin/libgcc_post_upgrade
strip %{buildroot}%{_prefix}/sbin/libgcc_post_upgrade
-cd ..
-
# Remove binaries we will not be including, so that they don't end up in
# gcc-debuginfo
rm -f %{buildroot}%{_prefix}/%{_lib}/{libffi*,libiberty.a}
rm -rRf %buildroot/%{_prefix}/lib/libiberty.a
rm -rRf %buildroot/%{_prefix}/share
#set +x
+%else
+# Fixed x86 dependencies
+sed "s/@X86@/%{!?x64:x86}%{?x64}/g" -i %{_sourcedir}/baselibs.conf
%endif
# /\/\/\
# cross
%endif
+cd ..
+
+mkdir -p %{buildroot}%{_datadir}/license
+cp gcc/COPYING %{buildroot}%{_datadir}/license/gcc
+cp gcc/COPYING %{buildroot}%{_datadir}/license/cpp
+cp gcc/COPYING %{buildroot}%{_datadir}/license/libgcc
+cp gcc/COPYING %{buildroot}%{_datadir}/license/gcc-c++
+cp gcc/COPYING %{buildroot}%{_datadir}/license/libstdc++
+cp gcc/COPYING %{buildroot}%{_datadir}/license/libgomp
+cp gcc/COPYING %{buildroot}%{_datadir}/license/libmudflap
+
%if !%{crossbuild}
# checking and split packaging for native ...
# native
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
-%dir %{_prefix}/libexec/gcc
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_libexecdir}/gcc
+%dir %{_libexecdir}/gcc/%{gcc_target_platform}
+%dir %{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include
# Shouldn't include all files under this fold, split to diff pkgs
-#%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/*
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/lto1
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/lto-wrapper
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/collect2
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/liblto_plugin.*
+#%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/*
+%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/lto1
+%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/lto-wrapper
+%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/collect2
+%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/liblto_plugin.*
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/plugin
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/plugin/include
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include-fixed
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include-fixed/README
+%ifnarch %{arm}
+#kernel 3.4 upstream removed a.out.h for arm arch
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include-fixed/linux/a.out.h
+%endif
# For ARM port
%ifarch %{arm}
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/arm_neon.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libmudflap.so
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libmudflapth.so
%endif
-%dir %{_prefix}/libexec/getconf
-%{_prefix}/libexec/getconf/default
+%dir %{_libexecdir}/getconf
+%{_libexecdir}/getconf/default
%doc gcc/README* gcc/COPYING*
-/usr/share/license/gcc
+%{_datadir}/license/gcc
%manifest gcc.manifest
%files -n cpp
/lib/cpp
%{_prefix}/bin/cpp
%{_mandir}/man1/cpp.1*
-%dir %{_prefix}/libexec/gcc
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/cc1
-/usr/share/license/cpp
+%dir %{_libexecdir}/gcc
+%dir %{_libexecdir}/gcc/%{gcc_target_platform}
+%dir %{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}
+%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/cc1
+%{_datadir}/license/cpp
%manifest cpp.manifest
%files -n libgcc
/%{_libdir}/libgcc_s.*
%{_prefix}/sbin/libgcc_post_upgrade
%doc gcc/COPYING.LIB
-/usr/share/license/libgcc
+%{_datadir}/license/libgcc
%manifest libgcc.manifest
# For ARM port
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
-%dir %{_prefix}/libexec/gcc
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/cc1plus
+%dir %{_libexecdir}/gcc
+%dir %{_libexecdir}/gcc/%{gcc_target_platform}
+%dir %{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}
+%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/cc1plus
%ifarch %{multilib_64_archs}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libstdc++.so
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libstdc++.so
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libsupc++.a
%endif
-/usr/share/license/gcc-c++
+%{_datadir}/license/gcc-c++
%manifest gcc-c++.manifest
%files -n libstdc++
%{_datadir}/gdb/auto-load/%{_prefix}/%{_lib}/libstdc*gdb.py*
%dir %{_prefix}/share/gcc-%{gcc_version}
%{_prefix}/share/gcc-%{gcc_version}/python
-/usr/share/license/libstdc++
+%{_datadir}/license/libstdc++
%manifest libstdc++.manifest
%files -n libstdc++-devel
%files -n libgomp
%defattr(-,root,root,-)
%{_prefix}/%{_lib}/libgomp.*
-/usr/share/license/libgomp
+%{_datadir}/license/libgomp
%manifest libgomp.manifest
%files -n libmudflap
%defattr(-,root,root,-)
%{_prefix}/%{_lib}/libmudflap.*
%{_prefix}/%{_lib}/libmudflapth.*
-/usr/share/license/libmudflap
+%{_datadir}/license/libmudflap
%manifest libmudflap.manifest
%files -n libmudflap-devel
# cross
# \/\/\/
%files
-/usr/share/license/gcc
%manifest gcc.manifest
%defattr(-,root,root,-)
%{_prefix}
# Combined gcc / cross-armv*-gcc(-accel) specfile
+%ifarch x86_64
+%define x64 x64
+%endif
Name: cross-armv7l-gcc
# crossbuild / accelerator section
%define crossextraconfig --with-float=hard --with-fpu=neon --with-arch=armv7-a
%endif
# Fixme: see above
-%if "%{name}" == "cross-armv5tel-gcc-accel"
+%if "%{name}" == "cross-armv5tel-gcc-accel-x86" || "%{name}" == "cross-armv5tel-gcc-accel-x64"
BuildRequires: cross-armv5tel-eglibc cross-armv5tel-eglibc-devel cross-armv5tel-eglibc-headers
BuildRequires: cross-armv5tel-kernel-headers cross-armv5tel-binutils
%define crossextraconfig %{nil}
%endif
-%if "%{name}" == "cross-armv6l-gcc-accel"
+%if "%{name}" == "cross-armv6l-gcc-accel-x86" || "%{name}" == "cross-armv6l-gcc-accel-x64"
BuildRequires: cross-armv6l-eglibc cross-armv6l-eglibc-devel cross-armv6l-eglibc-headers
BuildRequires: cross-armv6l-kernel-headers cross-armv6l-binutils
%define crossextraconfig %{nil}
%endif
-%if "%{name}" == "cross-armv7l-gcc-accel"
+%if "%{name}" == "cross-armv7l-gcc-accel-x86" || "%{name}" == "cross-armv7l-gcc-accel-x64"
BuildRequires: cross-armv7l-eglibc cross-armv7l-eglibc-devel cross-armv7l-eglibc-headers
BuildRequires: cross-armv7l-kernel-headers cross-armv7l-binutils
%define crossextraconfig --with-float=softfp --with-fpu=vfpv3 --with-arch=armv7-a
%endif
-%if "%{name}" == "cross-armv7hl-gcc-accel"
+%if "%{name}" == "cross-armv7hl-gcc-accel-x86" || "%{name}" == "cross-armv7hl-gcc-accel-x64"
BuildRequires: cross-armv7hl-eglibc cross-armv7hl-eglibc-devel cross-armv7hl-eglibc-headers
BuildRequires: cross-armv7hl-kernel-headers cross-armv7hl-binutils
%define crossextraconfig --with-float=hard --with-fpu=vfpv3-d16 --with-arch=armv7-a
%endif
-%if "%{name}" == "cross-armv7nhl-gcc-accel"
+%if "%{name}" == "cross-armv7nhl-gcc-accel-x86" || "%{name}" == "cross-armv7nhl-gcc-accel-x64"
BuildRequires: cross-armv7nhl-eglibc cross-armv7nhl-eglibc-devel cross-armv7nhl-eglibc-headers
BuildRequires: cross-armv7nhl-kernel-headers cross-armv7nhl-binutils
%define crossextraconfig --with-float=hard --with-fpu=neon --with-arch=armv7-a
%endif
# single target atm.
-ExclusiveArch: %ix86
+ExclusiveArch: %ix86 x86_64
#
# special handling for Tizen ARM build acceleration
# cross-armv*-gcc-accel
-%if "%(echo %{name} | sed -e "s/cross-.*-gcc-\\(.*\\)/\\1/")" == "accel"
+%if "%(echo %{name} | sed -e "s/cross-.*-gcc-\\(.*\\)-.*/\\1/")" == "accel"
# cross architecture
-%define crossarch %(echo %{name} | sed -e "s/cross-\\(.*\\)-gcc-accel/\\1/")
+%define crossarch %(echo %{name} | sed -e "s/cross-\\(.*\\)-gcc-accel-.*/\\1/")
# cross target platform
%define cross_gcc_target_platform %{crossarch}-tizen-linux-gnueabi
# prefix - as it's going to "replace" the original compiler ...
%define crossbuild 1
%define accelerator_crossbuild 1
# where to find the libs at runtime
-%define newrpath /emul/ia32-linux/lib:/emul/ia32-linux/usr/lib
+%define newrpath /emul/ia32-linux/%{_lib}:/emul/ia32-linux/usr/%{_lib}
%define _build_name_fmt %%{ARCH}/%%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.dontuse.rpm
%endif
# end special accel
# /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
# end crossbuild / accelerator section
-%global gcc_version 4.6
+%global gcc_version 4.6.4
%global gcc_release 2013.05
+%global release_prefix %{gcc_release}
%global _unpackaged_files_terminate_build 0
%ifarch %{arm}
%global build_cloog 0
%global build_cloog 1
%endif
%endif
-%global multilib_64_archs x86_64
+#global multilib_64_archs x86_64
%ifarch x86_64
%global multilib_32_arch i686
%endif
Summary: Various compilers (C, C++, Objective-C, Java, ...)
Version: %{gcc_version}
Release: %{gcc_release}
-VCS: toolchains/gcc#submit/master/20131126.022252-0-ga6b8565e99e42d6caee61b5015810d8b78c511bf
License: GPLv3+, GPLv3+ with exceptions and GPLv2+ with exceptions
Group: Development/Languages
URL: http://gcc.gnu.org
-Source0: gcc-linaro-%{version}-%{gcc_release}.tar.xz
+Source0: gcc-linaro-4.6-%{gcc_release}.tar.xz
Source1: libgcc_post_upgrade.c
Source100: gcc-rpmlintrc
Source200: baselibs.conf
%endif
Patch41: libgcc_post_upgrade.c.arm.patch
+Patch1000: gcc_arm_hard_float_dynamic_linker_revert.patch
#We need -gnueabi indicator for ARM
%ifnarch %{arm}
32bit enviroment from compiler side.
%prep
-%setup -q -n gcc-linaro-%{version}-%{gcc_release}
+%setup -q -n gcc-linaro-4.6-%{gcc_release}
+%patch1000 -p1
echo '%{version}' >gcc/BASE-VER
export OPT_FLAGS=`echo "$OPT_FLAGS" | sed -e "s#\-march=.*##g"`
%if %{accelerator_crossbuild}
# adding -rpath to the special crosscompiler
-export OPT_FLAGS="$OPT_FLAGS -Wl,-rpath,/emul/ia32-linux/usr/lib:/emul/ia32-linux/lib:/usr/lib:/lib"
+export OPT_FLAGS="$OPT_FLAGS -Wl,-rpath,/emul/ia32-linux/usr/%{_lib}:/emul/ia32-linux/%{_lib}:/usr/%{_lib}:/%{_lib}:/usr/lib:/lib"
%endif
%endif
CC="$CC" CFLAGS="$OPT_FLAGS" CXXFLAGS="`echo $OPT_FLAGS | sed 's/ -Wall / /g'`" XCFLAGS="$OPT_FLAGS" TCFLAGS="$OPT_FLAGS" \
- ../configure --prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir} \
+ ../configure --prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir} --libexecdir=%{_libexecdir} \
--enable-shared --enable-linker-build-id \
%ifarch %{arm}
--enable-checking=release \
%else
--enable-checking=release \
--enable-multiarch \
+ --disable-multilib \
%endif
%endif
%if %{build_cloog}
%install
rm -fr %{buildroot}
-mkdir -p %{buildroot}/usr/share/license
-cp gcc/COPYING %{buildroot}/usr/share/license/gcc
-cp gcc/COPYING %{buildroot}/usr/share/license/cpp
-cp gcc/COPYING %{buildroot}/usr/share/license/libgcc
-cp gcc/COPYING %{buildroot}/usr/share/license/gcc-c++
-cp gcc/COPYING %{buildroot}/usr/share/license/libstdc++
-cp gcc/COPYING %{buildroot}/usr/share/license/libgomp
-cp gcc/COPYING %{buildroot}/usr/share/license/libmudflap
-
cd obj-%{gcc_target_platform}
%if !%{crossbuild}
# \/\/\/
FULLPATH=%{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
-FULLEPATH=%{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+FULLEPATH=%{buildroot}%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}
ln -sf gcc %{buildroot}%{_prefix}/bin/cc
mkdir -p %{buildroot}/lib
mv -f %{buildroot}%{_prefix}/%{_lib}/libgomp.spec $FULLPATH/
-mkdir -p %{buildroot}%{_prefix}/libexec/getconf
+mkdir -p %{buildroot}%{_libexecdir}/getconf
if gcc/xgcc -B gcc/ -E -dD -xc /dev/null | grep __LONG_MAX__.*2147483647; then
- ln -sf POSIX_V6_ILP32_OFF32 %{buildroot}%{_prefix}/libexec/getconf/default
+ ln -sf POSIX_V6_ILP32_OFF32 %{buildroot}%{_libexecdir}/getconf/default
else
- ln -sf POSIX_V6_LP64_OFF64 %{buildroot}%{_prefix}/libexec/getconf/default
+ ln -sf POSIX_V6_LP64_OFF64 %{buildroot}%{_libexecdir}/getconf/default
fi
gcc -static -Os %{SOURCE1} -o %{buildroot}%{_prefix}/sbin/libgcc_post_upgrade
strip %{buildroot}%{_prefix}/sbin/libgcc_post_upgrade
-cd ..
-
# Remove binaries we will not be including, so that they don't end up in
# gcc-debuginfo
rm -f %{buildroot}%{_prefix}/%{_lib}/{libffi*,libiberty.a}
rm -rRf %buildroot/%{_prefix}/lib/libiberty.a
rm -rRf %buildroot/%{_prefix}/share
#set +x
+%else
+# Fixed x86 dependencies
+sed "s/@X86@/%{!?x64:x86}%{?x64}/g" -i %{_sourcedir}/baselibs.conf
%endif
# /\/\/\
# cross
%endif
+cd ..
+
+mkdir -p %{buildroot}%{_datadir}/license
+cp gcc/COPYING %{buildroot}%{_datadir}/license/gcc
+cp gcc/COPYING %{buildroot}%{_datadir}/license/cpp
+cp gcc/COPYING %{buildroot}%{_datadir}/license/libgcc
+cp gcc/COPYING %{buildroot}%{_datadir}/license/gcc-c++
+cp gcc/COPYING %{buildroot}%{_datadir}/license/libstdc++
+cp gcc/COPYING %{buildroot}%{_datadir}/license/libgomp
+cp gcc/COPYING %{buildroot}%{_datadir}/license/libmudflap
+
%if !%{crossbuild}
# checking and split packaging for native ...
# native
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
-%dir %{_prefix}/libexec/gcc
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_libexecdir}/gcc
+%dir %{_libexecdir}/gcc/%{gcc_target_platform}
+%dir %{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include
# Shouldn't include all files under this fold, split to diff pkgs
-#%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/*
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/lto1
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/lto-wrapper
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/collect2
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/liblto_plugin.*
+#%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/*
+%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/lto1
+%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/lto-wrapper
+%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/collect2
+%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/liblto_plugin.*
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/plugin
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/plugin/include
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include-fixed
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include-fixed/README
+%ifnarch %{arm}
+#kernel 3.4 upstream removed a.out.h for arm arch
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include-fixed/linux/a.out.h
+%endif
# For ARM port
%ifarch %{arm}
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/arm_neon.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libmudflap.so
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libmudflapth.so
%endif
-%dir %{_prefix}/libexec/getconf
-%{_prefix}/libexec/getconf/default
+%dir %{_libexecdir}/getconf
+%{_libexecdir}/getconf/default
%doc gcc/README* gcc/COPYING*
-/usr/share/license/gcc
+%{_datadir}/license/gcc
%manifest gcc.manifest
%files -n cpp
/lib/cpp
%{_prefix}/bin/cpp
%{_mandir}/man1/cpp.1*
-%dir %{_prefix}/libexec/gcc
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/cc1
-/usr/share/license/cpp
+%dir %{_libexecdir}/gcc
+%dir %{_libexecdir}/gcc/%{gcc_target_platform}
+%dir %{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}
+%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/cc1
+%{_datadir}/license/cpp
%manifest cpp.manifest
%files -n libgcc
/%{_libdir}/libgcc_s.*
%{_prefix}/sbin/libgcc_post_upgrade
%doc gcc/COPYING.LIB
-/usr/share/license/libgcc
+%{_datadir}/license/libgcc
%manifest libgcc.manifest
# For ARM port
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
-%dir %{_prefix}/libexec/gcc
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/cc1plus
+%dir %{_libexecdir}/gcc
+%dir %{_libexecdir}/gcc/%{gcc_target_platform}
+%dir %{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}
+%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/cc1plus
%ifarch %{multilib_64_archs}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libstdc++.so
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libstdc++.so
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libsupc++.a
%endif
-/usr/share/license/gcc-c++
+%{_datadir}/license/gcc-c++
%manifest gcc-c++.manifest
%files -n libstdc++
%{_datadir}/gdb/auto-load/%{_prefix}/%{_lib}/libstdc*gdb.py*
%dir %{_prefix}/share/gcc-%{gcc_version}
%{_prefix}/share/gcc-%{gcc_version}/python
-/usr/share/license/libstdc++
+%{_datadir}/license/libstdc++
%manifest libstdc++.manifest
%files -n libstdc++-devel
%files -n libgomp
%defattr(-,root,root,-)
%{_prefix}/%{_lib}/libgomp.*
-/usr/share/license/libgomp
+%{_datadir}/license/libgomp
%manifest libgomp.manifest
%files -n libmudflap
%defattr(-,root,root,-)
%{_prefix}/%{_lib}/libmudflap.*
%{_prefix}/%{_lib}/libmudflapth.*
-/usr/share/license/libmudflap
+%{_datadir}/license/libmudflap
%manifest libmudflap.manifest
%files -n libmudflap-devel
# cross
# \/\/\/
%files
-/usr/share/license/gcc
%manifest gcc.manifest
%defattr(-,root,root,-)
%{_prefix}
# Combined gcc / cross-armv*-gcc(-accel) specfile
-Name: cross-armv7nhl-gcc-accel
+%ifarch x86_64
+%define x64 x64
+%endif
+Name: cross-armv7nhl-gcc-accel-%{!?x64:x86}%{?x64}
# crossbuild / accelerator section
# \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/
%define crossextraconfig --with-float=hard --with-fpu=neon --with-arch=armv7-a
%endif
# Fixme: see above
-%if "%{name}" == "cross-armv5tel-gcc-accel"
+%if "%{name}" == "cross-armv5tel-gcc-accel-x86" || "%{name}" == "cross-armv5tel-gcc-accel-x64"
BuildRequires: cross-armv5tel-eglibc cross-armv5tel-eglibc-devel cross-armv5tel-eglibc-headers
BuildRequires: cross-armv5tel-kernel-headers cross-armv5tel-binutils
%define crossextraconfig %{nil}
%endif
-%if "%{name}" == "cross-armv6l-gcc-accel"
+%if "%{name}" == "cross-armv6l-gcc-accel-x86" || "%{name}" == "cross-armv6l-gcc-accel-x64"
BuildRequires: cross-armv6l-eglibc cross-armv6l-eglibc-devel cross-armv6l-eglibc-headers
BuildRequires: cross-armv6l-kernel-headers cross-armv6l-binutils
%define crossextraconfig %{nil}
%endif
-%if "%{name}" == "cross-armv7l-gcc-accel"
+%if "%{name}" == "cross-armv7l-gcc-accel-x86" || "%{name}" == "cross-armv7l-gcc-accel-x64"
BuildRequires: cross-armv7l-eglibc cross-armv7l-eglibc-devel cross-armv7l-eglibc-headers
BuildRequires: cross-armv7l-kernel-headers cross-armv7l-binutils
%define crossextraconfig --with-float=softfp --with-fpu=vfpv3 --with-arch=armv7-a
%endif
-%if "%{name}" == "cross-armv7hl-gcc-accel"
+%if "%{name}" == "cross-armv7hl-gcc-accel-x86" || "%{name}" == "cross-armv7hl-gcc-accel-x64"
BuildRequires: cross-armv7hl-eglibc cross-armv7hl-eglibc-devel cross-armv7hl-eglibc-headers
BuildRequires: cross-armv7hl-kernel-headers cross-armv7hl-binutils
%define crossextraconfig --with-float=hard --with-fpu=vfpv3-d16 --with-arch=armv7-a
%endif
-%if "%{name}" == "cross-armv7nhl-gcc-accel"
+%if "%{name}" == "cross-armv7nhl-gcc-accel-x86" || "%{name}" == "cross-armv7nhl-gcc-accel-x64"
BuildRequires: cross-armv7nhl-eglibc cross-armv7nhl-eglibc-devel cross-armv7nhl-eglibc-headers
BuildRequires: cross-armv7nhl-kernel-headers cross-armv7nhl-binutils
%define crossextraconfig --with-float=hard --with-fpu=neon --with-arch=armv7-a
%endif
# single target atm.
-ExclusiveArch: %ix86
+ExclusiveArch: %ix86 x86_64
#
# special handling for Tizen ARM build acceleration
# cross-armv*-gcc-accel
-%if "%(echo %{name} | sed -e "s/cross-.*-gcc-\\(.*\\)/\\1/")" == "accel"
+%if "%(echo %{name} | sed -e "s/cross-.*-gcc-\\(.*\\)-.*/\\1/")" == "accel"
# cross architecture
-%define crossarch %(echo %{name} | sed -e "s/cross-\\(.*\\)-gcc-accel/\\1/")
+%define crossarch %(echo %{name} | sed -e "s/cross-\\(.*\\)-gcc-accel-.*/\\1/")
# cross target platform
%define cross_gcc_target_platform %{crossarch}-tizen-linux-gnueabi
# prefix - as it's going to "replace" the original compiler ...
%define crossbuild 1
%define accelerator_crossbuild 1
# where to find the libs at runtime
-%define newrpath /emul/ia32-linux/lib:/emul/ia32-linux/usr/lib
+%define newrpath /emul/ia32-linux/%{_lib}:/emul/ia32-linux/usr/%{_lib}
%define _build_name_fmt %%{ARCH}/%%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.dontuse.rpm
%endif
# end special accel
# /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
# end crossbuild / accelerator section
-%global gcc_version 4.6
+%global gcc_version 4.6.4
%global gcc_release 2013.05
+%global release_prefix %{gcc_release}
%global _unpackaged_files_terminate_build 0
%ifarch %{arm}
%global build_cloog 0
%global build_cloog 1
%endif
%endif
-%global multilib_64_archs x86_64
+#global multilib_64_archs x86_64
%ifarch x86_64
%global multilib_32_arch i686
%endif
Summary: Various compilers (C, C++, Objective-C, Java, ...)
Version: %{gcc_version}
Release: %{gcc_release}
-VCS: toolchains/gcc#submit/master/20131126.022252-0-ga6b8565e99e42d6caee61b5015810d8b78c511bf
License: GPLv3+, GPLv3+ with exceptions and GPLv2+ with exceptions
Group: Development/Languages
URL: http://gcc.gnu.org
-Source0: gcc-linaro-%{version}-%{gcc_release}.tar.xz
+Source0: gcc-linaro-4.6-%{gcc_release}.tar.xz
Source1: libgcc_post_upgrade.c
Source100: gcc-rpmlintrc
Source200: baselibs.conf
%endif
Patch41: libgcc_post_upgrade.c.arm.patch
+Patch1000: gcc_arm_hard_float_dynamic_linker_revert.patch
#We need -gnueabi indicator for ARM
%ifnarch %{arm}
32bit enviroment from compiler side.
%prep
-%setup -q -n gcc-linaro-%{version}-%{gcc_release}
+%setup -q -n gcc-linaro-4.6-%{gcc_release}
+%patch1000 -p1
echo '%{version}' >gcc/BASE-VER
export OPT_FLAGS=`echo "$OPT_FLAGS" | sed -e "s#\-march=.*##g"`
%if %{accelerator_crossbuild}
# adding -rpath to the special crosscompiler
-export OPT_FLAGS="$OPT_FLAGS -Wl,-rpath,/emul/ia32-linux/usr/lib:/emul/ia32-linux/lib:/usr/lib:/lib"
+export OPT_FLAGS="$OPT_FLAGS -Wl,-rpath,/emul/ia32-linux/usr/%{_lib}:/emul/ia32-linux/%{_lib}:/usr/%{_lib}:/%{_lib}:/usr/lib:/lib"
%endif
%endif
CC="$CC" CFLAGS="$OPT_FLAGS" CXXFLAGS="`echo $OPT_FLAGS | sed 's/ -Wall / /g'`" XCFLAGS="$OPT_FLAGS" TCFLAGS="$OPT_FLAGS" \
- ../configure --prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir} \
+ ../configure --prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir} --libexecdir=%{_libexecdir} \
--enable-shared --enable-linker-build-id \
%ifarch %{arm}
--enable-checking=release \
%else
--enable-checking=release \
--enable-multiarch \
+ --disable-multilib \
%endif
%endif
%if %{build_cloog}
%install
rm -fr %{buildroot}
-mkdir -p %{buildroot}/usr/share/license
-cp gcc/COPYING %{buildroot}/usr/share/license/gcc
-cp gcc/COPYING %{buildroot}/usr/share/license/cpp
-cp gcc/COPYING %{buildroot}/usr/share/license/libgcc
-cp gcc/COPYING %{buildroot}/usr/share/license/gcc-c++
-cp gcc/COPYING %{buildroot}/usr/share/license/libstdc++
-cp gcc/COPYING %{buildroot}/usr/share/license/libgomp
-cp gcc/COPYING %{buildroot}/usr/share/license/libmudflap
-
cd obj-%{gcc_target_platform}
%if !%{crossbuild}
# \/\/\/
FULLPATH=%{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
-FULLEPATH=%{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+FULLEPATH=%{buildroot}%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}
ln -sf gcc %{buildroot}%{_prefix}/bin/cc
mkdir -p %{buildroot}/lib
mv -f %{buildroot}%{_prefix}/%{_lib}/libgomp.spec $FULLPATH/
-mkdir -p %{buildroot}%{_prefix}/libexec/getconf
+mkdir -p %{buildroot}%{_libexecdir}/getconf
if gcc/xgcc -B gcc/ -E -dD -xc /dev/null | grep __LONG_MAX__.*2147483647; then
- ln -sf POSIX_V6_ILP32_OFF32 %{buildroot}%{_prefix}/libexec/getconf/default
+ ln -sf POSIX_V6_ILP32_OFF32 %{buildroot}%{_libexecdir}/getconf/default
else
- ln -sf POSIX_V6_LP64_OFF64 %{buildroot}%{_prefix}/libexec/getconf/default
+ ln -sf POSIX_V6_LP64_OFF64 %{buildroot}%{_libexecdir}/getconf/default
fi
gcc -static -Os %{SOURCE1} -o %{buildroot}%{_prefix}/sbin/libgcc_post_upgrade
strip %{buildroot}%{_prefix}/sbin/libgcc_post_upgrade
-cd ..
-
# Remove binaries we will not be including, so that they don't end up in
# gcc-debuginfo
rm -f %{buildroot}%{_prefix}/%{_lib}/{libffi*,libiberty.a}
rm -rRf %buildroot/%{_prefix}/lib/libiberty.a
rm -rRf %buildroot/%{_prefix}/share
#set +x
+%else
+# Fixed x86 dependencies
+sed "s/@X86@/%{!?x64:x86}%{?x64}/g" -i %{_sourcedir}/baselibs.conf
%endif
# /\/\/\
# cross
%endif
+cd ..
+
+mkdir -p %{buildroot}%{_datadir}/license
+cp gcc/COPYING %{buildroot}%{_datadir}/license/gcc
+cp gcc/COPYING %{buildroot}%{_datadir}/license/cpp
+cp gcc/COPYING %{buildroot}%{_datadir}/license/libgcc
+cp gcc/COPYING %{buildroot}%{_datadir}/license/gcc-c++
+cp gcc/COPYING %{buildroot}%{_datadir}/license/libstdc++
+cp gcc/COPYING %{buildroot}%{_datadir}/license/libgomp
+cp gcc/COPYING %{buildroot}%{_datadir}/license/libmudflap
+
%if !%{crossbuild}
# checking and split packaging for native ...
# native
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
-%dir %{_prefix}/libexec/gcc
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_libexecdir}/gcc
+%dir %{_libexecdir}/gcc/%{gcc_target_platform}
+%dir %{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include
# Shouldn't include all files under this fold, split to diff pkgs
-#%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/*
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/lto1
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/lto-wrapper
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/collect2
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/liblto_plugin.*
+#%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/*
+%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/lto1
+%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/lto-wrapper
+%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/collect2
+%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/liblto_plugin.*
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/plugin
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/plugin/include
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include-fixed
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include-fixed/README
+%ifnarch %{arm}
+#kernel 3.4 upstream removed a.out.h for arm arch
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include-fixed/linux/a.out.h
+%endif
# For ARM port
%ifarch %{arm}
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/arm_neon.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libmudflap.so
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libmudflapth.so
%endif
-%dir %{_prefix}/libexec/getconf
-%{_prefix}/libexec/getconf/default
+%dir %{_libexecdir}/getconf
+%{_libexecdir}/getconf/default
%doc gcc/README* gcc/COPYING*
-/usr/share/license/gcc
+%{_datadir}/license/gcc
%manifest gcc.manifest
%files -n cpp
/lib/cpp
%{_prefix}/bin/cpp
%{_mandir}/man1/cpp.1*
-%dir %{_prefix}/libexec/gcc
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/cc1
-/usr/share/license/cpp
+%dir %{_libexecdir}/gcc
+%dir %{_libexecdir}/gcc/%{gcc_target_platform}
+%dir %{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}
+%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/cc1
+%{_datadir}/license/cpp
%manifest cpp.manifest
%files -n libgcc
/%{_libdir}/libgcc_s.*
%{_prefix}/sbin/libgcc_post_upgrade
%doc gcc/COPYING.LIB
-/usr/share/license/libgcc
+%{_datadir}/license/libgcc
%manifest libgcc.manifest
# For ARM port
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
-%dir %{_prefix}/libexec/gcc
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/cc1plus
+%dir %{_libexecdir}/gcc
+%dir %{_libexecdir}/gcc/%{gcc_target_platform}
+%dir %{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}
+%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/cc1plus
%ifarch %{multilib_64_archs}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libstdc++.so
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libstdc++.so
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libsupc++.a
%endif
-/usr/share/license/gcc-c++
+%{_datadir}/license/gcc-c++
%manifest gcc-c++.manifest
%files -n libstdc++
%{_datadir}/gdb/auto-load/%{_prefix}/%{_lib}/libstdc*gdb.py*
%dir %{_prefix}/share/gcc-%{gcc_version}
%{_prefix}/share/gcc-%{gcc_version}/python
-/usr/share/license/libstdc++
+%{_datadir}/license/libstdc++
%manifest libstdc++.manifest
%files -n libstdc++-devel
%files -n libgomp
%defattr(-,root,root,-)
%{_prefix}/%{_lib}/libgomp.*
-/usr/share/license/libgomp
+%{_datadir}/license/libgomp
%manifest libgomp.manifest
%files -n libmudflap
%defattr(-,root,root,-)
%{_prefix}/%{_lib}/libmudflap.*
%{_prefix}/%{_lib}/libmudflapth.*
-/usr/share/license/libmudflap
+%{_datadir}/license/libmudflap
%manifest libmudflap.manifest
%files -n libmudflap-devel
# cross
# \/\/\/
%files
-/usr/share/license/gcc
%manifest gcc.manifest
%defattr(-,root,root,-)
%{_prefix}
# Combined gcc / cross-armv*-gcc(-accel) specfile
+%ifarch x86_64
+%define x64 x64
+%endif
Name: cross-armv7nhl-gcc
# crossbuild / accelerator section
%define crossextraconfig --with-float=hard --with-fpu=neon --with-arch=armv7-a
%endif
# Fixme: see above
-%if "%{name}" == "cross-armv5tel-gcc-accel"
+%if "%{name}" == "cross-armv5tel-gcc-accel-x86" || "%{name}" == "cross-armv5tel-gcc-accel-x64"
BuildRequires: cross-armv5tel-eglibc cross-armv5tel-eglibc-devel cross-armv5tel-eglibc-headers
BuildRequires: cross-armv5tel-kernel-headers cross-armv5tel-binutils
%define crossextraconfig %{nil}
%endif
-%if "%{name}" == "cross-armv6l-gcc-accel"
+%if "%{name}" == "cross-armv6l-gcc-accel-x86" || "%{name}" == "cross-armv6l-gcc-accel-x64"
BuildRequires: cross-armv6l-eglibc cross-armv6l-eglibc-devel cross-armv6l-eglibc-headers
BuildRequires: cross-armv6l-kernel-headers cross-armv6l-binutils
%define crossextraconfig %{nil}
%endif
-%if "%{name}" == "cross-armv7l-gcc-accel"
+%if "%{name}" == "cross-armv7l-gcc-accel-x86" || "%{name}" == "cross-armv7l-gcc-accel-x64"
BuildRequires: cross-armv7l-eglibc cross-armv7l-eglibc-devel cross-armv7l-eglibc-headers
BuildRequires: cross-armv7l-kernel-headers cross-armv7l-binutils
%define crossextraconfig --with-float=softfp --with-fpu=vfpv3 --with-arch=armv7-a
%endif
-%if "%{name}" == "cross-armv7hl-gcc-accel"
+%if "%{name}" == "cross-armv7hl-gcc-accel-x86" || "%{name}" == "cross-armv7hl-gcc-accel-x64"
BuildRequires: cross-armv7hl-eglibc cross-armv7hl-eglibc-devel cross-armv7hl-eglibc-headers
BuildRequires: cross-armv7hl-kernel-headers cross-armv7hl-binutils
%define crossextraconfig --with-float=hard --with-fpu=vfpv3-d16 --with-arch=armv7-a
%endif
-%if "%{name}" == "cross-armv7nhl-gcc-accel"
+%if "%{name}" == "cross-armv7nhl-gcc-accel-x86" || "%{name}" == "cross-armv7nhl-gcc-accel-x64"
BuildRequires: cross-armv7nhl-eglibc cross-armv7nhl-eglibc-devel cross-armv7nhl-eglibc-headers
BuildRequires: cross-armv7nhl-kernel-headers cross-armv7nhl-binutils
%define crossextraconfig --with-float=hard --with-fpu=neon --with-arch=armv7-a
%endif
# single target atm.
-ExclusiveArch: %ix86
+ExclusiveArch: %ix86 x86_64
#
# special handling for Tizen ARM build acceleration
# cross-armv*-gcc-accel
-%if "%(echo %{name} | sed -e "s/cross-.*-gcc-\\(.*\\)/\\1/")" == "accel"
+%if "%(echo %{name} | sed -e "s/cross-.*-gcc-\\(.*\\)-.*/\\1/")" == "accel"
# cross architecture
-%define crossarch %(echo %{name} | sed -e "s/cross-\\(.*\\)-gcc-accel/\\1/")
+%define crossarch %(echo %{name} | sed -e "s/cross-\\(.*\\)-gcc-accel-.*/\\1/")
# cross target platform
%define cross_gcc_target_platform %{crossarch}-tizen-linux-gnueabi
# prefix - as it's going to "replace" the original compiler ...
%define crossbuild 1
%define accelerator_crossbuild 1
# where to find the libs at runtime
-%define newrpath /emul/ia32-linux/lib:/emul/ia32-linux/usr/lib
+%define newrpath /emul/ia32-linux/%{_lib}:/emul/ia32-linux/usr/%{_lib}
%define _build_name_fmt %%{ARCH}/%%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.dontuse.rpm
%endif
# end special accel
# /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
# end crossbuild / accelerator section
-%global gcc_version 4.6
+%global gcc_version 4.6.4
%global gcc_release 2013.05
+%global release_prefix %{gcc_release}
%global _unpackaged_files_terminate_build 0
%ifarch %{arm}
%global build_cloog 0
%global build_cloog 1
%endif
%endif
-%global multilib_64_archs x86_64
+#global multilib_64_archs x86_64
%ifarch x86_64
%global multilib_32_arch i686
%endif
Summary: Various compilers (C, C++, Objective-C, Java, ...)
Version: %{gcc_version}
Release: %{gcc_release}
-VCS: toolchains/gcc#submit/master/20131126.022252-0-ga6b8565e99e42d6caee61b5015810d8b78c511bf
License: GPLv3+, GPLv3+ with exceptions and GPLv2+ with exceptions
Group: Development/Languages
URL: http://gcc.gnu.org
-Source0: gcc-linaro-%{version}-%{gcc_release}.tar.xz
+Source0: gcc-linaro-4.6-%{gcc_release}.tar.xz
Source1: libgcc_post_upgrade.c
Source100: gcc-rpmlintrc
Source200: baselibs.conf
%endif
Patch41: libgcc_post_upgrade.c.arm.patch
+Patch1000: gcc_arm_hard_float_dynamic_linker_revert.patch
#We need -gnueabi indicator for ARM
%ifnarch %{arm}
32bit enviroment from compiler side.
%prep
-%setup -q -n gcc-linaro-%{version}-%{gcc_release}
+%setup -q -n gcc-linaro-4.6-%{gcc_release}
+%patch1000 -p1
echo '%{version}' >gcc/BASE-VER
export OPT_FLAGS=`echo "$OPT_FLAGS" | sed -e "s#\-march=.*##g"`
%if %{accelerator_crossbuild}
# adding -rpath to the special crosscompiler
-export OPT_FLAGS="$OPT_FLAGS -Wl,-rpath,/emul/ia32-linux/usr/lib:/emul/ia32-linux/lib:/usr/lib:/lib"
+export OPT_FLAGS="$OPT_FLAGS -Wl,-rpath,/emul/ia32-linux/usr/%{_lib}:/emul/ia32-linux/%{_lib}:/usr/%{_lib}:/%{_lib}:/usr/lib:/lib"
%endif
%endif
CC="$CC" CFLAGS="$OPT_FLAGS" CXXFLAGS="`echo $OPT_FLAGS | sed 's/ -Wall / /g'`" XCFLAGS="$OPT_FLAGS" TCFLAGS="$OPT_FLAGS" \
- ../configure --prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir} \
+ ../configure --prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir} --libexecdir=%{_libexecdir} \
--enable-shared --enable-linker-build-id \
%ifarch %{arm}
--enable-checking=release \
%else
--enable-checking=release \
--enable-multiarch \
+ --disable-multilib \
%endif
%endif
%if %{build_cloog}
%install
rm -fr %{buildroot}
-mkdir -p %{buildroot}/usr/share/license
-cp gcc/COPYING %{buildroot}/usr/share/license/gcc
-cp gcc/COPYING %{buildroot}/usr/share/license/cpp
-cp gcc/COPYING %{buildroot}/usr/share/license/libgcc
-cp gcc/COPYING %{buildroot}/usr/share/license/gcc-c++
-cp gcc/COPYING %{buildroot}/usr/share/license/libstdc++
-cp gcc/COPYING %{buildroot}/usr/share/license/libgomp
-cp gcc/COPYING %{buildroot}/usr/share/license/libmudflap
-
cd obj-%{gcc_target_platform}
%if !%{crossbuild}
# \/\/\/
FULLPATH=%{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
-FULLEPATH=%{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+FULLEPATH=%{buildroot}%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}
ln -sf gcc %{buildroot}%{_prefix}/bin/cc
mkdir -p %{buildroot}/lib
mv -f %{buildroot}%{_prefix}/%{_lib}/libgomp.spec $FULLPATH/
-mkdir -p %{buildroot}%{_prefix}/libexec/getconf
+mkdir -p %{buildroot}%{_libexecdir}/getconf
if gcc/xgcc -B gcc/ -E -dD -xc /dev/null | grep __LONG_MAX__.*2147483647; then
- ln -sf POSIX_V6_ILP32_OFF32 %{buildroot}%{_prefix}/libexec/getconf/default
+ ln -sf POSIX_V6_ILP32_OFF32 %{buildroot}%{_libexecdir}/getconf/default
else
- ln -sf POSIX_V6_LP64_OFF64 %{buildroot}%{_prefix}/libexec/getconf/default
+ ln -sf POSIX_V6_LP64_OFF64 %{buildroot}%{_libexecdir}/getconf/default
fi
gcc -static -Os %{SOURCE1} -o %{buildroot}%{_prefix}/sbin/libgcc_post_upgrade
strip %{buildroot}%{_prefix}/sbin/libgcc_post_upgrade
-cd ..
-
# Remove binaries we will not be including, so that they don't end up in
# gcc-debuginfo
rm -f %{buildroot}%{_prefix}/%{_lib}/{libffi*,libiberty.a}
rm -rRf %buildroot/%{_prefix}/lib/libiberty.a
rm -rRf %buildroot/%{_prefix}/share
#set +x
+%else
+# Fixed x86 dependencies
+sed "s/@X86@/%{!?x64:x86}%{?x64}/g" -i %{_sourcedir}/baselibs.conf
%endif
# /\/\/\
# cross
%endif
+cd ..
+
+mkdir -p %{buildroot}%{_datadir}/license
+cp gcc/COPYING %{buildroot}%{_datadir}/license/gcc
+cp gcc/COPYING %{buildroot}%{_datadir}/license/cpp
+cp gcc/COPYING %{buildroot}%{_datadir}/license/libgcc
+cp gcc/COPYING %{buildroot}%{_datadir}/license/gcc-c++
+cp gcc/COPYING %{buildroot}%{_datadir}/license/libstdc++
+cp gcc/COPYING %{buildroot}%{_datadir}/license/libgomp
+cp gcc/COPYING %{buildroot}%{_datadir}/license/libmudflap
+
%if !%{crossbuild}
# checking and split packaging for native ...
# native
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
-%dir %{_prefix}/libexec/gcc
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_libexecdir}/gcc
+%dir %{_libexecdir}/gcc/%{gcc_target_platform}
+%dir %{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include
# Shouldn't include all files under this fold, split to diff pkgs
-#%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/*
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/lto1
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/lto-wrapper
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/collect2
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/liblto_plugin.*
+#%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/*
+%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/lto1
+%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/lto-wrapper
+%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/collect2
+%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/liblto_plugin.*
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/plugin
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/plugin/include
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include-fixed
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include-fixed/README
+%ifnarch %{arm}
+#kernel 3.4 upstream removed a.out.h for arm arch
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include-fixed/linux/a.out.h
+%endif
# For ARM port
%ifarch %{arm}
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/arm_neon.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libmudflap.so
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libmudflapth.so
%endif
-%dir %{_prefix}/libexec/getconf
-%{_prefix}/libexec/getconf/default
+%dir %{_libexecdir}/getconf
+%{_libexecdir}/getconf/default
%doc gcc/README* gcc/COPYING*
-/usr/share/license/gcc
+%{_datadir}/license/gcc
%manifest gcc.manifest
%files -n cpp
/lib/cpp
%{_prefix}/bin/cpp
%{_mandir}/man1/cpp.1*
-%dir %{_prefix}/libexec/gcc
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/cc1
-/usr/share/license/cpp
+%dir %{_libexecdir}/gcc
+%dir %{_libexecdir}/gcc/%{gcc_target_platform}
+%dir %{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}
+%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/cc1
+%{_datadir}/license/cpp
%manifest cpp.manifest
%files -n libgcc
/%{_libdir}/libgcc_s.*
%{_prefix}/sbin/libgcc_post_upgrade
%doc gcc/COPYING.LIB
-/usr/share/license/libgcc
+%{_datadir}/license/libgcc
%manifest libgcc.manifest
# For ARM port
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
-%dir %{_prefix}/libexec/gcc
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/cc1plus
+%dir %{_libexecdir}/gcc
+%dir %{_libexecdir}/gcc/%{gcc_target_platform}
+%dir %{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}
+%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/cc1plus
%ifarch %{multilib_64_archs}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libstdc++.so
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libstdc++.so
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libsupc++.a
%endif
-/usr/share/license/gcc-c++
+%{_datadir}/license/gcc-c++
%manifest gcc-c++.manifest
%files -n libstdc++
%{_datadir}/gdb/auto-load/%{_prefix}/%{_lib}/libstdc*gdb.py*
%dir %{_prefix}/share/gcc-%{gcc_version}
%{_prefix}/share/gcc-%{gcc_version}/python
-/usr/share/license/libstdc++
+%{_datadir}/license/libstdc++
%manifest libstdc++.manifest
%files -n libstdc++-devel
%files -n libgomp
%defattr(-,root,root,-)
%{_prefix}/%{_lib}/libgomp.*
-/usr/share/license/libgomp
+%{_datadir}/license/libgomp
%manifest libgomp.manifest
%files -n libmudflap
%defattr(-,root,root,-)
%{_prefix}/%{_lib}/libmudflap.*
%{_prefix}/%{_lib}/libmudflapth.*
-/usr/share/license/libmudflap
+%{_datadir}/license/libmudflap
%manifest libmudflap.manifest
%files -n libmudflap-devel
# cross
# \/\/\/
%files
-/usr/share/license/gcc
%manifest gcc.manifest
%defattr(-,root,root,-)
%{_prefix}
+++ /dev/null
-* Mon Feb 3 2014 Inkyo Jung <inkyo.jung@samsung.com> -4.6.4
-- Import 4.6.4 (gcc-linaro-4.6-2013.05) from upstream
-
-* Tue Aug 2 2011 Junfeng Dong <junfeng.dong@iintel.com> -4.5.3
-- Import 4.5.3 from SLP.
-
-* Sun Apr 24 08:02:35 UTC 2011 - Jan-Simon Möller <jsmoeller@linuxfoundation.org> - 1.0
-- Add baselibs.conf to src.rpm
-
-* Mon Jan 17 2011 Austin Zhang <austin.zhang@intel.com> - 4.5.1
-- Bugfixing: BMC#11667:C++ routine does not compile with arm tool chain
-
-* Mon Jan 10 2011 Carsten Munk <carsten@maemo.org> - 4.5.1
-* BMC#12147: Linaro patches fail to build udev
-
-* Sun Jan 9 2011 Carsten Munk <carsten@maemo.org> - 4.5.1
-- Untar patch and re-gzip Linaro patch, solves BMC#11498
-
-* Tue Jan 4 2011 Carsten Munk <carsten@maemo.org> - 4.5.1
-- Change from blank macro to %{nil} in crossextraconfig
-
-* Mon Jan 3 2011 Carsten Munk <carsten@maemo.org> - 4.5.1
-- Add armv7hl and armv7nhl cross support
-
-* Fri Dec 31 2010 Carsten Munk - 4.5.1
-- Disable Linaro patchset to allow for bootstrap.
-
-* Fri Dec 10 2010 Jan-Simon Möller <jsmoeller@linuxfoudnation.org> - 4.5.1
- Fri Dec 10 2010 Austin Zhang <austin.zhang@intel.com> - 4.5.1
-- Added Linaro patchset based on GCC4.5.1 (BMC#10510)
-
-* Tue Dec 09 2010 Austin Zhang <austin.zhang@intel.com> - 4.5.1
-- Update to 4.5.1 (BMC#FEA10510):Need to update gcc to 4.5.1 with
- linaro patchset for hardfp support
-- Change format to tar.gz for SDK convenience
-- Fix BMC#9053:libssp.so.0 should be in libgcc
-- Fix BMC#9601:support for __ARM_PCS predefined symbol in gcc 4.5.x is needed
-- Fix BMC#10337,10339:Error when installing gdb with --excludedocs in .ks
-- Clean-up obsoleted content
-
-* Fri Oct 15 11:26:37 UTC 2010 - jsmoeller@linuxfoundation.org - 4.5.1
-- Merged/fixed devel:toolchain with devel:base
-
-* Tue Oct 14 2010 Austin Zhang <austin.zhang@intel.com> - 4.5.0
-- Applied 4.5.0 branch patch for fixing PR#45112 (BMC#8034)
-
-* Sat Sep 25 2010 Roger Wang <roger.wang@intel.com> - 4.5.0
-- Applied 4.5.0 branch patch for fixing PR#43972 (BMC#7281)
-
-* Wed Sep 15 2010 Jan-Simon Möller <jsmoeller@linuxfoudnation.org> - 4.5.1
-- Harden cross-gcc migration.
-
-* Tue Aug 31 2010 Austin Zhang <austin.zhang@intel.com> - 4.5.1
-- 4.5.1 master
-
-* Mon Aug 09 2010 Austin Zhang <austin.zhang@intel.com> - 4.5.0
-- Changed some files packing to correct sub-packages.
-- Added ssp support for ARM port.
-
-* Mon Aug 09 2010 Jan-Simon Möller <jsmoeller@linuxfoundation.org> - 4.5.0
-- Fix dependency issue gcc vs. cross-gcc
-
-* Thu Aug 05 2010 Jan-Simon Möller <jsmoeller@linuxfoundation.org> - 4.5.0
-- Fix build on ARM with workaround for ggc+qemu oom issue and
-- disable generation of precompiled headers for now on ARM.
- Follow-up on BMC#3936.
-
-* Tue Jul 20 2010 Austin Zhang <austin.zhang@intel.com> - 4.5.0
-- Applied ARM hotfix for fixing byteswap issue from REV in ARMv5+
- PR#43698 (BMC#3936)
-- Add missing dependency to fix BMC#4046
-
-* Tue Jul 08 2010 Austin Zhang <austin.zhang@intel.com> - 4.5.0
-- Applied 4.5.0 mainline branch patch for fixing PR#43572(PR#43904)
-- Added missing symbolic link
-
-* Tue Jun 29 2010 Austin Zhang <austin.zhang@intel.com> - 4.5.0
-- Fixed packing issue of symbolic link of libgcc_s.so
-- Fixed gcc45-use-atom arch string
-
-* Mon Jun 28 2010 Jan-Simon Möller <jsmoeller@łinuxfoundation.org> - 4.5.0
-- Added aaa_README.PACKAGER
-- Added precheckin.sh
-- Added cross-* conditionals to main gcc.spec
-- Added cross-* files
-- Added gcc44-ARM-boehm-gc-stack-qemu.patch (make qemu-arm happy)
-
-* Mon May 24 2010 Austin Zhang <austin.zhang@intel.com> - 4.5.0
-- Added rpmlintrc to suppress wanring/error.
-- Added multilib support explicitly
-
-* Mon Apr 19 2010 Austin Zhang <austin.zhang@intel.com> - 4.5.0
-- Gcc-4.5.0, the first official version with atom support inside
-- Added MPC support
-- Enable LTO
-- Remove protoize feature
-- Removed obsoleted stuffs
-
-* Thu Mar 25 2010 Anas Nashif <anas.nashif@intel.com> - 4.4.2
-- Spec cleanup
-- Do not provide .so files
-
-* Fri Mar 05 2010 Austin Zhang <austin.zhang@intel.com> - 4.4.2
-- Enable arm build
-- Add MeeGo bugzilla
-
-* Mon Feb 22 2010 Austin Zhang <austin.zhang@intel.com> - 4.4.2
-- Enable ppl/cloog support
-- Use release name : MeeGo.
-
-* Mon Jan 11 2010 Austin Zhang <austin.zhang@intel.com> - 4.4.2
-- Use release name : Moblin.
-
-* Fri Nov 27 2009 Austin Zhang <austin.zhang@intel.com> - 4.4.2
-- Updated to 4.4.2.
-- Removed obseleted stuffs and non IA related patches.
-
-* Thu Nov 26 2009 Arjan van de Ven <arjan@linux.intel.com> - 4.4.1
-- default to atom tuning
-
-* Thu Oct 16 2009 Austin Zhang <austin.zhang@intel.com> - 4.4.1
-- Add 'provides: gcc-fortran' for compatibility (MB#6798)
-
-* Thu Sep 16 2009 Austin Zhang <austin.zhang@intel.com> - 4.4.1
-- Updated to 20090911 snapshot
-- Added patches from fedora:
- gcc44-powerpc-libgcc_s_so.patch
- gcc44-pr41175*
- gcc44-rh5*
- gcc44-vta-cfgexpand-ptr-mode-pr41248.patch
-- Removed obsoleted patches
-
-* Thu Aug 26 2009 Austin Zhang <austin.zhang@intel.com> - 4.4.1
-- Fix bug 5649 (libstdc++ conflication with 'gcc update')
-
-* Sat Aug 22 2009 Anas Nashif <anas.nashif@intel.com> - 4.4.1
-- Update to 4.4.1
-
-* Tue Dec 23 2008 Anas Nashif <anas.nashif@intel.com> 4.3
-- Initial import into Moblin
# Combined gcc / cross-armv*-gcc(-accel) specfile
+%ifarch x86_64
+%define x64 x64
+%endif
Name: gcc
# crossbuild / accelerator section
%define crossextraconfig --with-float=hard --with-fpu=neon --with-arch=armv7-a
%endif
# Fixme: see above
-%if "%{name}" == "cross-armv5tel-gcc-accel"
+%if "%{name}" == "cross-armv5tel-gcc-accel-x86" || "%{name}" == "cross-armv5tel-gcc-accel-x64"
BuildRequires: cross-armv5tel-eglibc cross-armv5tel-eglibc-devel cross-armv5tel-eglibc-headers
BuildRequires: cross-armv5tel-kernel-headers cross-armv5tel-binutils
%define crossextraconfig %{nil}
%endif
-%if "%{name}" == "cross-armv6l-gcc-accel"
+%if "%{name}" == "cross-armv6l-gcc-accel-x86" || "%{name}" == "cross-armv6l-gcc-accel-x64"
BuildRequires: cross-armv6l-eglibc cross-armv6l-eglibc-devel cross-armv6l-eglibc-headers
BuildRequires: cross-armv6l-kernel-headers cross-armv6l-binutils
%define crossextraconfig %{nil}
%endif
-%if "%{name}" == "cross-armv7l-gcc-accel"
+%if "%{name}" == "cross-armv7l-gcc-accel-x86" || "%{name}" == "cross-armv7l-gcc-accel-x64"
BuildRequires: cross-armv7l-eglibc cross-armv7l-eglibc-devel cross-armv7l-eglibc-headers
BuildRequires: cross-armv7l-kernel-headers cross-armv7l-binutils
%define crossextraconfig --with-float=softfp --with-fpu=vfpv3 --with-arch=armv7-a
%endif
-%if "%{name}" == "cross-armv7hl-gcc-accel"
+%if "%{name}" == "cross-armv7hl-gcc-accel-x86" || "%{name}" == "cross-armv7hl-gcc-accel-x64"
BuildRequires: cross-armv7hl-eglibc cross-armv7hl-eglibc-devel cross-armv7hl-eglibc-headers
BuildRequires: cross-armv7hl-kernel-headers cross-armv7hl-binutils
%define crossextraconfig --with-float=hard --with-fpu=vfpv3-d16 --with-arch=armv7-a
%endif
-%if "%{name}" == "cross-armv7nhl-gcc-accel"
+%if "%{name}" == "cross-armv7nhl-gcc-accel-x86" || "%{name}" == "cross-armv7nhl-gcc-accel-x64"
BuildRequires: cross-armv7nhl-eglibc cross-armv7nhl-eglibc-devel cross-armv7nhl-eglibc-headers
BuildRequires: cross-armv7nhl-kernel-headers cross-armv7nhl-binutils
%define crossextraconfig --with-float=hard --with-fpu=neon --with-arch=armv7-a
%endif
# single target atm.
-ExclusiveArch: %ix86
+ExclusiveArch: %ix86 x86_64
#
# special handling for Tizen ARM build acceleration
# cross-armv*-gcc-accel
-%if "%(echo %{name} | sed -e "s/cross-.*-gcc-\\(.*\\)/\\1/")" == "accel"
+%if "%(echo %{name} | sed -e "s/cross-.*-gcc-\\(.*\\)-.*/\\1/")" == "accel"
# cross architecture
-%define crossarch %(echo %{name} | sed -e "s/cross-\\(.*\\)-gcc-accel/\\1/")
+%define crossarch %(echo %{name} | sed -e "s/cross-\\(.*\\)-gcc-accel-.*/\\1/")
# cross target platform
%define cross_gcc_target_platform %{crossarch}-tizen-linux-gnueabi
# prefix - as it's going to "replace" the original compiler ...
%define crossbuild 1
%define accelerator_crossbuild 1
# where to find the libs at runtime
-%define newrpath /emul/ia32-linux/lib:/emul/ia32-linux/usr/lib
+%define newrpath /emul/ia32-linux/%{_lib}:/emul/ia32-linux/usr/%{_lib}
%define _build_name_fmt %%{ARCH}/%%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.dontuse.rpm
%endif
# end special accel
# /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
# end crossbuild / accelerator section
-%global gcc_version 4.6
+%global gcc_version 4.6.4
%global gcc_release 2013.05
+%global release_prefix %{gcc_release}
%global _unpackaged_files_terminate_build 0
%ifarch %{arm}
%global build_cloog 0
%global build_cloog 1
%endif
%endif
-%global multilib_64_archs x86_64
+#global multilib_64_archs x86_64
%ifarch x86_64
%global multilib_32_arch i686
%endif
Summary: Various compilers (C, C++, Objective-C, Java, ...)
Version: %{gcc_version}
Release: %{gcc_release}
-VCS: toolchains/gcc#submit/master/20131126.022252-0-ga6b8565e99e42d6caee61b5015810d8b78c511bf
License: GPLv3+, GPLv3+ with exceptions and GPLv2+ with exceptions
Group: Development/Languages
URL: http://gcc.gnu.org
-Source0: gcc-linaro-%{version}-%{gcc_release}.tar.xz
+Source0: gcc-linaro-4.6-%{gcc_release}.tar.xz
Source1: libgcc_post_upgrade.c
Source100: gcc-rpmlintrc
Source200: baselibs.conf
%endif
Patch41: libgcc_post_upgrade.c.arm.patch
+Patch1000: gcc_arm_hard_float_dynamic_linker_revert.patch
#We need -gnueabi indicator for ARM
%ifnarch %{arm}
32bit enviroment from compiler side.
%prep
-%setup -q -n gcc-linaro-%{version}-%{gcc_release}
+%setup -q -n gcc-linaro-4.6-%{gcc_release}
+%patch1000 -p1
echo '%{version}' >gcc/BASE-VER
export OPT_FLAGS=`echo "$OPT_FLAGS" | sed -e "s#\-march=.*##g"`
%if %{accelerator_crossbuild}
# adding -rpath to the special crosscompiler
-export OPT_FLAGS="$OPT_FLAGS -Wl,-rpath,/emul/ia32-linux/usr/lib:/emul/ia32-linux/lib:/usr/lib:/lib"
+export OPT_FLAGS="$OPT_FLAGS -Wl,-rpath,/emul/ia32-linux/usr/%{_lib}:/emul/ia32-linux/%{_lib}:/usr/%{_lib}:/%{_lib}:/usr/lib:/lib"
%endif
%endif
CC="$CC" CFLAGS="$OPT_FLAGS" CXXFLAGS="`echo $OPT_FLAGS | sed 's/ -Wall / /g'`" XCFLAGS="$OPT_FLAGS" TCFLAGS="$OPT_FLAGS" \
- ../configure --prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir} \
+ ../configure --prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir} --libexecdir=%{_libexecdir} \
--enable-shared --enable-linker-build-id \
%ifarch %{arm}
--enable-checking=release \
%else
--enable-checking=release \
--enable-multiarch \
+ --disable-multilib \
%endif
%endif
%if %{build_cloog}
%install
rm -fr %{buildroot}
-mkdir -p %{buildroot}/usr/share/license
-cp gcc/COPYING %{buildroot}/usr/share/license/gcc
-cp gcc/COPYING %{buildroot}/usr/share/license/cpp
-cp gcc/COPYING %{buildroot}/usr/share/license/libgcc
-cp gcc/COPYING %{buildroot}/usr/share/license/gcc-c++
-cp gcc/COPYING %{buildroot}/usr/share/license/libstdc++
-cp gcc/COPYING %{buildroot}/usr/share/license/libgomp
-cp gcc/COPYING %{buildroot}/usr/share/license/libmudflap
-
cd obj-%{gcc_target_platform}
%if !%{crossbuild}
# \/\/\/
FULLPATH=%{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
-FULLEPATH=%{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+FULLEPATH=%{buildroot}%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}
ln -sf gcc %{buildroot}%{_prefix}/bin/cc
mkdir -p %{buildroot}/lib
mv -f %{buildroot}%{_prefix}/%{_lib}/libgomp.spec $FULLPATH/
-mkdir -p %{buildroot}%{_prefix}/libexec/getconf
+mkdir -p %{buildroot}%{_libexecdir}/getconf
if gcc/xgcc -B gcc/ -E -dD -xc /dev/null | grep __LONG_MAX__.*2147483647; then
- ln -sf POSIX_V6_ILP32_OFF32 %{buildroot}%{_prefix}/libexec/getconf/default
+ ln -sf POSIX_V6_ILP32_OFF32 %{buildroot}%{_libexecdir}/getconf/default
else
- ln -sf POSIX_V6_LP64_OFF64 %{buildroot}%{_prefix}/libexec/getconf/default
+ ln -sf POSIX_V6_LP64_OFF64 %{buildroot}%{_libexecdir}/getconf/default
fi
gcc -static -Os %{SOURCE1} -o %{buildroot}%{_prefix}/sbin/libgcc_post_upgrade
strip %{buildroot}%{_prefix}/sbin/libgcc_post_upgrade
-cd ..
-
# Remove binaries we will not be including, so that they don't end up in
# gcc-debuginfo
rm -f %{buildroot}%{_prefix}/%{_lib}/{libffi*,libiberty.a}
rm -rRf %buildroot/%{_prefix}/lib/libiberty.a
rm -rRf %buildroot/%{_prefix}/share
#set +x
+%else
+# Fixed x86 dependencies
+sed "s/@X86@/%{!?x64:x86}%{?x64}/g" -i %{_sourcedir}/baselibs.conf
%endif
# /\/\/\
# cross
%endif
+cd ..
+
+mkdir -p %{buildroot}%{_datadir}/license
+cp gcc/COPYING %{buildroot}%{_datadir}/license/gcc
+cp gcc/COPYING %{buildroot}%{_datadir}/license/cpp
+cp gcc/COPYING %{buildroot}%{_datadir}/license/libgcc
+cp gcc/COPYING %{buildroot}%{_datadir}/license/gcc-c++
+cp gcc/COPYING %{buildroot}%{_datadir}/license/libstdc++
+cp gcc/COPYING %{buildroot}%{_datadir}/license/libgomp
+cp gcc/COPYING %{buildroot}%{_datadir}/license/libmudflap
+
%if !%{crossbuild}
# checking and split packaging for native ...
# native
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
-%dir %{_prefix}/libexec/gcc
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_libexecdir}/gcc
+%dir %{_libexecdir}/gcc/%{gcc_target_platform}
+%dir %{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include
# Shouldn't include all files under this fold, split to diff pkgs
-#%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/*
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/lto1
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/lto-wrapper
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/collect2
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/liblto_plugin.*
+#%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/*
+%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/lto1
+%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/lto-wrapper
+%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/collect2
+%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/liblto_plugin.*
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/plugin
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/plugin/include
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include-fixed
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include-fixed/README
+%ifnarch %{arm}
+#kernel 3.4 upstream removed a.out.h for arm arch
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include-fixed/linux/a.out.h
+%endif
# For ARM port
%ifarch %{arm}
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/arm_neon.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libmudflap.so
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libmudflapth.so
%endif
-%dir %{_prefix}/libexec/getconf
-%{_prefix}/libexec/getconf/default
+%dir %{_libexecdir}/getconf
+%{_libexecdir}/getconf/default
%doc gcc/README* gcc/COPYING*
-/usr/share/license/gcc
+%{_datadir}/license/gcc
%manifest gcc.manifest
%files -n cpp
/lib/cpp
%{_prefix}/bin/cpp
%{_mandir}/man1/cpp.1*
-%dir %{_prefix}/libexec/gcc
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/cc1
-/usr/share/license/cpp
+%dir %{_libexecdir}/gcc
+%dir %{_libexecdir}/gcc/%{gcc_target_platform}
+%dir %{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}
+%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/cc1
+%{_datadir}/license/cpp
%manifest cpp.manifest
%files -n libgcc
/%{_libdir}/libgcc_s.*
%{_prefix}/sbin/libgcc_post_upgrade
%doc gcc/COPYING.LIB
-/usr/share/license/libgcc
+%{_datadir}/license/libgcc
%manifest libgcc.manifest
# For ARM port
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
-%dir %{_prefix}/libexec/gcc
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/cc1plus
+%dir %{_libexecdir}/gcc
+%dir %{_libexecdir}/gcc/%{gcc_target_platform}
+%dir %{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}
+%{_libexecdir}/gcc/%{gcc_target_platform}/%{gcc_version}/cc1plus
%ifarch %{multilib_64_archs}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libstdc++.so
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libstdc++.so
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libsupc++.a
%endif
-/usr/share/license/gcc-c++
+%{_datadir}/license/gcc-c++
%manifest gcc-c++.manifest
%files -n libstdc++
%{_datadir}/gdb/auto-load/%{_prefix}/%{_lib}/libstdc*gdb.py*
%dir %{_prefix}/share/gcc-%{gcc_version}
%{_prefix}/share/gcc-%{gcc_version}/python
-/usr/share/license/libstdc++
+%{_datadir}/license/libstdc++
%manifest libstdc++.manifest
%files -n libstdc++-devel
%files -n libgomp
%defattr(-,root,root,-)
%{_prefix}/%{_lib}/libgomp.*
-/usr/share/license/libgomp
+%{_datadir}/license/libgomp
%manifest libgomp.manifest
%files -n libmudflap
%defattr(-,root,root,-)
%{_prefix}/%{_lib}/libmudflap.*
%{_prefix}/%{_lib}/libmudflapth.*
-/usr/share/license/libmudflap
+%{_datadir}/license/libmudflap
%manifest libmudflap.manifest
%files -n libmudflap-devel
# cross
# \/\/\/
%files
-/usr/share/license/gcc
%manifest gcc.manifest
%defattr(-,root,root,-)
%{_prefix}
--- /dev/null
+diff -urNp gcc-linaro-4.6-2013.05.orig/gcc/config/arm/linux-eabi.h gcc-linaro-4.6-2013.05/gcc/config/arm/linux-eabi.h
+--- gcc-linaro-4.6-2013.05.orig/gcc/config/arm/linux-eabi.h 2014-02-07 19:05:59.000000000 +0900
++++ gcc-linaro-4.6-2013.05/gcc/config/arm/linux-eabi.h 2014-05-09 20:07:09.042410813 +0900
+@@ -60,23 +60,10 @@
+ #undef SUBTARGET_EXTRA_LINK_SPEC
+ #define SUBTARGET_EXTRA_LINK_SPEC " -m " TARGET_LINKER_EMULATION
+
+-/* GNU/Linux on ARM currently supports three dynamic linkers:
+- - ld-linux.so.2 - for the legacy ABI
+- - ld-linux.so.3 - for the EABI-derived soft-float ABI
+- - ld-linux-armhf.so.3 - for the EABI-derived hard-float ABI.
+- All the dynamic linkers live in /lib.
+- We default to soft-float, but this can be overridden by changing both
+- GLIBC_DYNAMIC_LINKER_DEFAULT and TARGET_DEFAULT_FLOAT_ABI. */
+-
++/* Use ld-linux.so.3 so that it will be possible to run "classic"
++ GNU/Linux binaries on an EABI system. */
+ #undef GLIBC_DYNAMIC_LINKER
+-#define GLIBC_DYNAMIC_LINKER_SOFT_FLOAT "/lib/ld-linux.so.3"
+-#define GLIBC_DYNAMIC_LINKER_HARD_FLOAT "/lib/ld-linux-armhf.so.3"
+-#define GLIBC_DYNAMIC_LINKER_DEFAULT GLIBC_DYNAMIC_LINKER_SOFT_FLOAT
+-
+-#define GLIBC_DYNAMIC_LINKER \
+- "%{mfloat-abi=hard:" GLIBC_DYNAMIC_LINKER_HARD_FLOAT "} \
+- %{mfloat-abi=soft*:" GLIBC_DYNAMIC_LINKER_SOFT_FLOAT "} \
+- %{!mfloat-abi=*:" GLIBC_DYNAMIC_LINKER_DEFAULT "}"
++#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.3"
+
+ /* At this point, bpabi.h will have clobbered LINK_SPEC. We want to
+ use the GNU/Linux version, not the generic BPABI version. */
for i in ${ARCHES} ; do
# cross spec files
cat ./${SPECNAME} | sed -e "s#Name: .*#Name: cross-${i}-${NAME}#" > ./cross-${i}-${NAME}.spec
- cat ./${SPECNAME} | sed -e "s#Name: .*#Name: cross-${i}-${NAME}-accel#" > ./cross-${i}-${NAME}-accel.spec
+ cat ./${SPECNAME} | sed -e "s#Name: .*#Name: cross-${i}-${NAME}-accel-%{!?x64:x86}%{?x64}#" > ./cross-${i}-${NAME}-accel.spec
# baselibs.conf - part 2
test ! x"$i" = x"" && echo -n "${i}:${i} " >> baselibs.conf
done
+echo "" >> baselibs.conf
+cat baselibs.conf | sed -e "s/i586/x86_64/" >> baselibs.conf
+
# baselibs.conf - part 3
echo "" >> baselibs.conf
for l in ${ARCHES} ; do
echo "" >> baselibs.conf
-echo "cross-${l}-${NAME}-accel
+echo "cross-${l}-${NAME}-accel-@X86@
targettype x86 block!
targettype 32bit block!" >> baselibs.conf
for j in ${ARCHES//${l}} ; do
targettype ${l} autoreqprov off
targettype ${l} provides "cross-arm-gcc-accel"
- targettype ${l} requires "glibc-x86-arm"
- targettype ${l} requires "gmp-x86-arm"
- targettype ${l} requires "libgcc-x86-arm"
- targettype ${l} requires "mpfr-x86-arm"
- targettype ${l} requires "mpc-x86-arm"
+ targettype ${l} provides "cross-${l}-gcc-accel-${l}"
+ targettype ${l} requires "eglibc-@X86@-arm"
+ targettype ${l} requires "gmp-@X86@-arm"
+ targettype ${l} requires "libgcc-@X86@-arm"
+ targettype ${l} requires "mpfr-@X86@-arm"
+ targettype ${l} requires "mpc-@X86@-arm"
targettype ${l} requires "gcc"
targettype ${l} requires "gcc-c++"
targettype ${l} extension -arm
targettype ${l} +/
targettype ${l} -/usr/lib/debug
+ targettype ${l} -/usr/lib64/debug
targettype ${l} -/usr/src/debug
targettype ${l} -/usr/share/man
targettype ${l} -/usr/share/doc
targettype ${l} post " echo \"GCCVER: \$GCCVER GCCVER_NEW: \$GCCVER_NEW \" "
targettype ${l} post " if test "\${GCCVER}" == "\${GCCVER_NEW}"; then"
targettype ${l} post " echo "GCC and GCC-accel versions match. Enabling cross-compiler." "
- targettype ${l} post " for bin in c++ c89 c99 cpp g++ gcc gcov gcc-ar gcc-nm gcc-ranlib; do "
+ targettype ${l} post " for bin in c++ cpp g++ gcc gcov; do "
targettype ${l} post " binary="/usr/bin/\${bin}" "
targettype ${l} post " if test -L \${binary} -a -e \${binary}.orig-arm ; then"
targettype ${l} post " echo "\${binary} not installed or \${binary}.orig-arm already present !" "
targettype ${l} post " done "
targettype ${l} post " for bin in cc1 cc1plus collect2 lto-wrapper lto1 ; do "
- targettype ${l} post " binary="/usr/libexec/gcc/${l}-tizen-linux-gnueabi/\$GCCVER/\$bin" "
+ targettype ${l} post " binary="/usr/lib/gcc/${l}-tizen-linux-gnueabi/\$GCCVER/\$bin" "
targettype ${l} post " if test -L \${binary} -a -e \${binary}.orig-arm ; then"
targettype ${l} post " echo "\${binary} not installed or \${binary}.orig-arm already present !" "
targettype ${l} post " else "
- targettype ${l} post " mv \${binary} \${binary}.orig-arm && cp <prefix>/usr/libexec/gcc/${l}-tizen-linux-gnueabi/\$GCCVER_NEW/\${bin} \${binary}"
+ targettype ${l} post " mv \${binary} \${binary}.orig-arm && cp <prefix>/usr/lib/gcc/${l}-tizen-linux-gnueabi/\$GCCVER_NEW/\${bin} \${binary}"
targettype ${l} post " fi "
targettype ${l} post " done "
targettype ${l} post " else"
targettype ${l} post " echo "GCC and GCC-accel versions don't match. Rollback also binutils..." "
- targettype ${l} post " for bin in addr2line ar as c++filt gprov ld ld.bfd nm objcopy objdump ranlib readelf size strings strip ; do"
+ targettype ${l} post " for bin in addr2line ar as c++filt elfedit gprof ld ld.bfd ld.gold nm objcopy objdump ranlib readelf size strings strip ; do"
targettype ${l} post " binary="/usr/bin/\${bin}" "
targettype ${l} post " if test -e \${binary}.orig-arm ; then"
targettype ${l} post " rm \${binary} && mv \${binary}.orig-arm \${binary}"
targettype ${l} post " echo "\${binary}.orig-arm not present !" "
targettype ${l} post " fi "
targettype ${l} post " done "
- targettype ${l} post " rm -f /usr/libexec/gcc/${l}-tizen-linux-gnueabi/\${GCCVER}/ld"
- targettype ${l} post " rm -f /usr/libexec/gcc/${l}-tizen-linux-gnueabi/\${GCCVER}/ld.bfd"
+ targettype ${l} post " rm -f /usr/lib/gcc/${l}-tizen-linux-gnueabi/\${GCCVER}/ld"
+ targettype ${l} post " rm -f /usr/lib/gcc/${l}-tizen-linux-gnueabi/\${GCCVER}/ld.bfd"
+ targettype ${l} post " rm -f /usr/lib/gcc/${l}-tizen-linux-gnueabi/\${GCCVER}/ld.gold"
targettype ${l} post " fi"
targettype ${l} preun " export GCCVER=\$(LANG=C gcc --version | head -1 | cut -d" " -f5) "
- targettype ${l} preun " for i in c++ c89 c99 cpp g++ gcc gcov gcc-ar gcc-nm gcc-ranlib; do if test -e /usr/bin/\${i}.orig-arm ; then rm /usr/bin/\${i} ; mv /usr/bin/\${i}.orig-arm /usr/bin/\${i}; fi ; done "
- targettype ${l} preun " for i in cc1 cc1plus collect2 lto-wrapper lto1 ; do cd /usr/libexec/gcc/${l}-tizen-linux-gnueabi/\$GCCVER ; if test -e \${i}.orig-arm ; then rm \${i} ; mv \${i}.orig-arm \${i} ; fi ; done "
+ targettype ${l} preun " for i in c++ cpp g++ gcc gcov; do if test -e /usr/bin/\${i}.orig-arm ; then rm /usr/bin/\${i} ; mv /usr/bin/\${i}.orig-arm /usr/bin/\${i}; fi ; done "
+ targettype ${l} preun " for i in cc1 cc1plus collect2 lto-wrapper lto1 ; do cd /usr/lib/gcc/${l}-tizen-linux-gnueabi/\$GCCVER ; if test -e \${i}.orig-arm ; then rm \${i} ; mv \${i}.orig-arm \${i} ; fi ; done "
EOF