Index: rpm-4.4.2.2/Makefile.am =================================================================== --- rpm-4.4.2.2.orig/Makefile.am +++ rpm-4.4.2.2/Makefile.am @@ -159,8 +159,11 @@ install-data-local: $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/armv4l ;\ $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/armv4tl ;\ $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/armv5tel ;\ + $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/armv5tevl ;\ $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/armv5tejl ;\ - $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/armv6l ;;\ + $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/armv5tejvl ;\ + $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/armv6l ;\ + $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/armv6vl ;;\ sparc*) $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/sparc ;\ $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/sparcv8 ;\ $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/sparcv9 ;\ Index: rpm-4.4.2.2/Makefile.in =================================================================== --- rpm-4.4.2.2.orig/Makefile.in +++ rpm-4.4.2.2/Makefile.in @@ -1212,8 +1212,11 @@ install-data-local: $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/armv4l ;\ $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/armv4tl ;\ $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/armv5tel ;\ + $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/armv5tevl ;\ $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/armv5tejl ;\ - $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/armv6l ;;\ + $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/armv5tejvl ;\ + $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/armv6l ;\ + $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/armv6vl ;;\ sparc*) $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/sparc ;\ $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/sparcv8 ;\ $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/sparcv9 ;\ Index: rpm-4.4.2.2/installplatform =================================================================== --- rpm-4.4.2.2.orig/installplatform +++ rpm-4.4.2.2/installplatform @@ -32,7 +32,7 @@ target="`$RPM --eval '%{_target}'|sed -e case "$arch" in i[3456]86|pentium[34]|athlon) SUBSTS='s_i386_i386_ s_i386_i486_ s_i386_i586_ s_i386_i686_ s_i386_pentium3_ s_i386_pentium4_ s_i386_athlon_' ;; alpha*) SUBSTS='s_alpha_alpha_ s_alpha_alphaev5_ s_alpha_alphaev56_ s_alpha_alphapca56_ s_alpha_alphaev6_ s_alpha_alphaev67_' ;; - arm*) SUBSTS='s_arm_armv3l_ s_arm_armv4l_ s_arm_armv4tl_ s_arm_armv5tel_ s_arm_armv5tejl_ s_arm_armv6l_' ;; + arm*) SUBSTS='s_arm_armv3l_ s_arm_armv4l_ s_arm_armv4tl_ s_arm_armv5tel_ s_arm_armv5tevl_ s_arm_armv5tejl_ s_arm_armv5tejvl_ s_arm_armv6l_ s_arm_armv6vl_' ;; sparc*) SUBSTS='s_sparc\(64\|64v\|v9v\|v9\)_sparc_ s_sparc64_sparcv9_;s_sparc\([^v]\|$\)_sparcv9\1_ s_sparcv9_sparc64_;s_sparc\([^6]\|$\)_sparc64\1_' ;; powerpc*|ppc*) SUBSTS='s_ppc64_ppc_ s_ppc\([^6ip]\|$\)_ppc64\1_ s_ppc\([^6ip]\|$\)_ppciseries_ s_ppc\([^6ip]\|$\)_ppcpseries_ s_ppc\([^6ip]\|$\)_ppc64iseries_ s_ppc\([^6ip]\|$\)_ppc64pseries_' ;; s390*) SUBSTS='s_s390x_s390_ s_s390\([^x]\|$\)_s390x\1_' ;; Index: rpm-4.4.2.2/lib/rpmrc.c =================================================================== --- rpm-4.4.2.2.orig/lib/rpmrc.c +++ rpm-4.4.2.2/lib/rpmrc.c @@ -1084,6 +1084,42 @@ static int is_pentium4() #endif +#if defined(__linux__) && defined(__arm__) && defined(__ARM_EABI__) +#include + +#define HWCAP_VFP 64 + +unsigned long at_hwcap(void) +{ + unsigned long hwcap = 0; + FILE *fp; + + fp = fopen("/proc/self/auxv", "r"); + if (fp != NULL) { + while (1) { + unsigned long auxv[2]; + + if (fread(auxv, sizeof(auxv[0]), 2, fp) != 2) + break; + + if (auxv[0] == AT_HWCAP) { + hwcap = auxv[1]; + break; + } + } + + fclose(fp); + } + + return hwcap; +} + +static int cpu_has_vfp(void) +{ + return !!(at_hwcap() & HWCAP_VFP); +} +#endif + #if defined(__linux__) && defined(__powerpc__) static jmp_buf mfspr_jmpbuf; @@ -1293,6 +1329,18 @@ static void defaultMachine(/*@out@*/ con } # endif /* sparc*-linux */ +# if defined(__linux__) && defined(__arm__) && defined(__ARM_EABI__) + if (!memcmp(un.machine, "arm", 3)) { + int len = strlen(un.machine); + + if (len < sizeof(un.machine) - 1 && cpu_has_vfp()) { + un.machine[len + 1] = 0; + un.machine[len] = un.machine[len - 1]; + un.machine[len - 1] = 'v'; + } + } +# endif /* arm*-linux */ + # if defined(__GNUC__) && defined(__alpha__) { unsigned long amask, implver; Index: rpm-4.4.2.2/macros.in =================================================================== --- rpm-4.4.2.2.orig/macros.in +++ rpm-4.4.2.2/macros.in @@ -1192,7 +1192,8 @@ done \ #------------------------------------------------------------------------------ # arch macro for all supported ARM processors -%arm armv3l armv4b armv4l armv4tl armv5tel armv5tejl armv6l +%arm armv3l armv4b armv4l armv4tl armv5tel armv5tevl armv5tejl armv5tejvl armv6l armv6vl +%armvfp armv5tevl armv5tejvl armv6vl #------------------------------------------------------------------------------ Index: rpm-4.4.2.2/rpmrc.in =================================================================== --- rpm-4.4.2.2.orig/rpmrc.in +++ rpm-4.4.2.2/rpmrc.in @@ -65,8 +65,11 @@ optflags: armv4b -O2 -g -march=armv4 optflags: armv4l -O2 -g -march=armv4 optflags: armv4tl -O2 -g -march=armv4t optflags: armv5tel -O2 -g -march=armv5te +optflags: armv5tevl -O2 -g -march=armv5te -mfpu=vfp -mfloat-abi=softfp optflags: armv5tejl -O2 -g -march=armv5te +optflags: armv5tejvl -O2 -g -march=armv5te -mfpu=vfp -mfloat-abi=softfp optflags: armv6l -O2 -g -march=armv6 +optflags: armv6vl -O2 -g -march=armv6 -mfpu=vfp -mfloat-abi=softfp optflags: atarist -O2 -g -fomit-frame-pointer optflags: atariste -O2 -g -fomit-frame-pointer @@ -133,8 +136,11 @@ arch_canon: armv3l: armv3l 12 arch_canon: armv4b: armv4b 12 arch_canon: armv4l: armv4l 12 arch_canon: armv5tel: armv5tel 12 +arch_canon: armv5tevl: armv5tevl 12 arch_canon: armv5tejl: armv5tejl 12 +arch_canon: armv5tejvl: armv5tejvl 12 arch_canon: armv6l: armv6l 12 +arch_canon: armv6vl: armv6vl 12 arch_canon: m68kmint: m68kmint 13 arch_canon: atarist: m68kmint 13 @@ -236,8 +242,11 @@ buildarchtranslate: armv4b: armv4b buildarchtranslate: armv4l: armv4l buildarchtranslate: armv4tl: armv4tl buildarchtranslate: armv5tel: armv5tel +buildarchtranslate: armv5tevl: armv5tevl buildarchtranslate: armv5tejl: armv5tejl +buildarchtranslate: armv5tejvl: armv5tejvl buildarchtranslate: armv6l: armv6l +buildarchtranslate: armv6vl: armv6vl buildarchtranslate: atarist: m68kmint buildarchtranslate: atariste: m68kmint @@ -314,8 +323,13 @@ arch_compat: hppa1.0: parisc arch_compat: parisc: noarch arch_compat: armv4b: noarch +arch_compat: armv6vl: armv6l +arch_compat: armv6vl: armv5tejvl arch_compat: armv6l: armv5tejl +arch_compat: armv5tejvl: armv5tejl +arch_compat: armv5tejvl: armv5tevl arch_compat: armv5tejl: armv5tel +arch_compat: armv5tevl: armv5tel arch_compat: armv5tel: armv4tl arch_compat: armv4tl: armv4l arch_compat: armv4l: armv3l @@ -412,8 +426,13 @@ buildarch_compat: mips: noarch buildarch_compat: mipsel: noarch buildarch_compat: armv4b: noarch +buildarch_compat: armv6vl: armv6l +buildarch_compat: armv6vl: armv5tejvl buildarch_compat: armv6l: armv5tejl +buildarch_compat: armv5tejvl: armv5tejl +buildarch_compat: armv5tejvl: armv5tevl buildarch_compat: armv5tejl: armv5tel +buildarch_compat: armv5tevl: armv5tel buildarch_compat: armv5tel: armv4tl buildarch_compat: armv4tl: armv4l buildarch_compat: armv4l: armv3l