diff --git a/configure.in b/configure.in index 5e3eed4..a3309f9 100644 --- a/configure.in +++ b/configure.in @@ -860,15 +860,24 @@ elif echo "$build_os" | grep sunos > /dev/null; then AC_LIBOBJ(myrealloc) fi +RPMCANONGNU='-gnu' +RPMCANONGNUEABI='%nil' # # get rid of the 4-th tuple, if config.guess returned "linux-gnu" for build_os # -if echo "$build_os" | grep '.*-gnulibc1' > /dev/null ; then - build_os=`echo "${build_os}" | sed 's/-gnulibc1$//'` -fi -if echo "$build_os" | grep '.*-gnu' > /dev/null ; then - build_os=`echo "${build_os}" | sed 's/-gnu$//'` -fi +case "$build_os" in + *-gnulibc1) + build_os="${build_os%-gnulibc1}" + ;; + *-gnu) + build_os="${build_os%-gnu}" + ;; + *-gnueabi) + build_os="${build_os%-gnueabi}" + RPMCANONGNU='-gnueabi' + RPMCANONGNUEABI='-gnueabi' + ;; +esac changequote(<, >) build_os_exact="${build_os}" @@ -884,10 +893,9 @@ sparc*) RPMCANONARCH=sparc ;; ia64*) RPMCANONARCH=ia64 ;; s390*) RPMCANONARCH=s390 ;; powerpc*) RPMCANONARCH=ppc ;; -armv3l*) RPMCANONARCH=armv3l ;; -armv4l*) RPMCANONARCH=armv4l ;; -armv4b*) RPMCANONARCH=armv4b ;; -arm*) RPMCANONARCH="${build_cpu}" ;; +armv3l*) RPMCANONARCH=armv3l ;; +arm*b) RPMCANONARCH=armeb ;; +arm*l) RPMCANONARCH=arm ;; mipsel*) RPMCANONARCH=mipsel ;; mips*) RPMCANONARCH=mips ;; m68k*) RPMCANONARCH=m68k ;; @@ -911,6 +919,8 @@ RPMCANONOS="$build_os_noversion" AC_SUBST(RPMCANONARCH) AC_SUBST(RPMCANONVENDOR) AC_SUBST(RPMCANONOS) +AC_SUBST(RPMCANONGNU) +AC_SUBST(RPMCANONGNUEABI) if test X"$prefix" = XNONE ; then usrprefix="$ac_default_prefix" diff --git a/installplatform b/installplatform index 1aa9e78..9dc56b2 100755 --- a/installplatform +++ b/installplatform @@ -36,6 +36,9 @@ case "$arch" in alpha*) SUBSTS='s,alpha,alpha, s,alpha,alphaev5, s,alpha,alphaev56, s,alpha,alphapca56, s,alpha,alphaev6, s,alpha,alphaev67,' ;; + arm*) + SUBSTS='s,arm.*,arm, s,arm.*,armeb, s,arm.*,armv3l, s,arm.*,armv4l, s,arm.*,armv4b, s,arm.*,armv5l, s,arm.*,armv5tejl, s,arm.*,armv5b, s,arm.*,noarch,' + ;; sparc*) SUBSTS='s,sparc\(64\|v9\),sparc, s,sparc64,sparcv9,;s,sparc\([^v]\|$\),sparcv9\1, s,sparcv9,sparc64,;s,sparc\([^6]\|$\),sparc64\1,' ;; diff --git a/macros.in b/macros.in index 9c17727..7b907e4 100644 --- a/macros.in +++ b/macros.in @@ -815,6 +815,11 @@ %amd k6 athlon athlon_xp %ix86 %intel %amd +#------------------------------------------------------------------------------ +# arch macro for all ARM processors +# +%arm arm armeb armv3l armv4l armv4b armv5l armv5l armv5tejl + #------------------------------------------------------------------------ # Use in %install to generate locale specific file lists. For example, # diff --git a/platform.in b/platform.in index 5e562a3..cb8ca00 100644 --- a/platform.in +++ b/platform.in @@ -6,8 +6,9 @@ %_arch @RPMRC_ARCH@ %_vendor @RPMCANONVENDOR@ %_os @RPMCANONOS@ -%_gnu -gnu -%_target_platform %{_target_cpu}-%{_vendor}-%{_target_os} +%_gnu @RPMCANONGNU@ +%_gnueabi @RPMCANONGNUEABI@ +%_target_platform %{_target_cpu}-%{_vendor}-%{_target_os}%{_gnueabi} %optflags @RPMRC_OPTFLAGS@ #============================================================================== diff --git a/rpmrc.in b/rpmrc.in index d4f013b..5ad86d2 100644 --- a/rpmrc.in +++ b/rpmrc.in @@ -57,11 +57,14 @@ optflags: hppa2.0 %optflags_default -mpa-risc-1-0 optflags: mips %optflags_default optflags: mipsel %optflags_default -optflags: armv3l %optflags_default -fsigned-char -fomit-frame-pointer -march=armv3 -optflags: armv4b %optflags_default -fsigned-char -fomit-frame-pointer -march=armv4 -optflags: armv4l %optflags_default -fsigned-char -fomit-frame-pointer -march=armv4 -optflags: armv5b %optflags_default -fsigned-char -mcpu=xscale -mtune=xscale -optflags: armv5l %optflags_default -fsigned-char -mcpu=xscale -mtune=xscale +optflags: armv3l %optflags_default -fomit-frame-pointer -march=armv3 +optflags: arm %optflags_default -march=armv4 -mno-thumb-interwork +optflags: armv4l %optflags_default -fomit-frame-pointer -march=armv4 +optflags: armv5l %optflags_default -fomit-frame-pointer -march=armv5 +optflags: armeb %optflags_default -march=armv4 -mno-thumb-interwork +optflags: armv4l %optflags_default -fomit-frame-pointer -march=armv4 +optflags: armv5l %optflags_default -fomit-frame-pointer -march=armv5 +optflags: armv5tejl %optflags_default -fomit-frame-pointer -march=armv5 optflags: atarist %optflags_default -fomit-frame-pointer optflags: atariste %optflags_default -fomit-frame-pointer @@ -121,11 +124,12 @@ arch_canon: sparc64:sparc64 10 arch_canon: sun4u: sparc64 10 arch_canon: mipsel: mipsel 11 -arch_canon: armv3l: armv3l 12 -arch_canon: armv4b: armv4b 12 -arch_canon: armv4l: armv4l 12 -arch_canon: armv5b: armv5b 12 -arch_canon: armv5l: armv5l 12 +arch_canon: armv5tejl: arm 12 +arch_canon: armv5l: arm 12 +arch_canon: armv4l: arm 12 +arch_canon: armv3l: armv3l 12 +arch_canon: armv5b: armeb 12 +arch_canon: armv4b: armeb 12 arch_canon: m68kmint: m68kmint 13 arch_canon: atarist: m68kmint 13 @@ -286,11 +290,14 @@ arch_compat: hppa1.1: hppa1.0 arch_compat: hppa1.0: parisc arch_compat: parisc: noarch -arch_compat: armv5b: noarch -arch_compat: armv5l: noarch -arch_compat: armv4b: noarch -arch_compat: armv4l: armv3l +arch_compat: armv5tejl: armv5l +arch_compat: armv5l: armv4l +arch_compat: armv4l: arm +arch_compat: arm: armv3l arch_compat: armv3l: noarch +arch_compat: armv5b: armv4b +arch_compat: armv4b: armeb +arch_compat: armeb: noarch arch_compat: atarist: m68kmint noarch arch_compat: atariste: m68kmint noarch @@ -381,11 +388,14 @@ buildarch_compat: ppc64: noarch buildarch_compat: mips: noarch buildarch_compat: mipsel: noarch +buildarch_compat: armv5tejl: armv5l +buildarch_compat: armv5l: armv4l +buildarch_compat: armv4l: arm +buildarch_compat: arm: armv3l buildarch_compat: armv3l: noarch -buildarch_compat: armv4b: noarch -buildarch_compat: armv4l: noarch -buildarch_compat: armv5b: noarch -buildarch_compat: armv5l: noarch +buildarch_compat: armv5b: armv4b +buildarch_compat: armv4b: arrmeb +buildarch_compat: armeb: noarch buildarch_compat: hppa2.0: hppa1.2 buildarch_compat: hppa1.2: hppa1.1 diff --git a/scripts/brp-verify_elf.in b/scripts/brp-verify_elf.in index b6fa6f3..ba889bc 100755 --- a/scripts/brp-verify_elf.in +++ b/scripts/brp-verify_elf.in @@ -102,6 +102,10 @@ for t in `printf %s "$RPM_VERIFY_ELF_METHOD" |tr , ' '`; do esac done +# No stack verification available on arm* +[ -z "$RPM_TARGET_ARCH" -o -n "${RPM_TARGET_ARCH##arm*}" ] || + VERIFY_ELF_STACK=no + [ "$VERIFY_ELF_ARCH" != no ] || VERIFY_ELF_ARCH= [ -z "$RPM_VERIFY_ELF_ARCH" ] || VERIFY_ELF_ARCH="$RPM_VERIFY_ELF_ARCH" [ "$VERIFY_ELF_FHS" != no ] || VERIFY_ELF_FHS=