[Report] Packages Restricting Arches
by root
List of packages currently excluding arches (2654)
===========================================
- 0ad
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- GtkAda
ExclusiveArch: %{GNAT_arches}
- GtkAda3
ExclusiveArch: %{GPRbuild_arches}
- LuxRender
ExclusiveArch: x86_64
- OpenTK
ExclusiveArch: %mono_arches
- PragmARC
ExclusiveArch: %{GNAT_arches}
- R-DynDoc
ExclusiveArch: armv7, ppc, go_arch
- RdRand
ExclusiveArch: %{ix86} x86_64
- SLOF
ExclusiveArch: ppc64le
- YafaRay
ExclusiveArch: %{ix86} x86_64
- aboot
ExclusiveArch: alpha
- acpid
ExclusiveArch: ia64 x86_64 %{ix86} %{arm} aarch64
- ahven
ExclusiveArch: %{GNAT_arches}
- alleyoop
ExclusiveArch: %{ix86} x86_64 ppc ppc64 ppc64le s390x %{arm} aarch64
- american-fuzzy-lop
ExclusiveArch: %{ix86} x86_64
- anet
ExclusiveArch: %{GNAT_arches}
- apmd
ExclusiveArch: %{ix86}
- apmud
ExclusiveArch: ppc
- appstream-generator
ExclusiveArch: x86_64 %{ix86} %{arm}
- arduino
ExclusiveArch: %{go_arches}
- arduino-builder
ExclusiveArch: %{go_arches}
- arm-boot-config
ExclusiveArch: %{arm}
- arm-trusted-firmware
ExclusiveArch: aarch64
- atomic
ExclusiveArch: i386 i486 i586 i686 pentium3 pentium4 athlon geode x86_64 armv3l armv4b armv4l armv4tl armv5tel armv5tejl armv6l armv6hl armv7l armv7hl armv7hnl aarch64 ppc64le s390x mips mipsel mipsr6 mipsr6el mips64 mips64el mips64r6 mips64r6el
ExclusiveArch: x86_64 ppc64le
- aunit
ExclusiveArch: %GPRbuild_arches
- avgtime
ExclusiveArch: %{ldc_arches}
- aws
ExclusiveArch: %GPRbuild_arches
- banshee
ExclusiveArch: %{mono_arches}
- banshee-community-extensions
ExclusiveArch: %ix86 x86_64 ppc ppc64 ia64 %{arm} sparcv9 alpha s390x
- bareftp
ExclusiveArch: %{mono_arches}
- bcc
ExclusiveArch: x86_64 %{power64}
- bcm283x-firmware
ExclusiveArch: %{arm} aarch64
- beignet
ExclusiveArch: x86_64 %{ix86}
- berusky2
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 %{mips}
- biosdevname
ExclusiveArch: %{ix86} x86_64 ia64
- bless
ExclusiveArch: %mono_arches
- boo
ExclusiveArch: %{mono_arches}
- buildah
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- bwa
ExclusiveArch: x86_64
- caddy
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le
- cadvisor
ExclusiveArch: %{ix86} x86_64 aarch64 ppc64le
- calamares
ExclusiveArch: %{ix86} x86_64
- cargo
ExclusiveArch: %{rust_arches}
- carto
ExclusiveArch: %{nodejs_arches} noarch
- ccdciel
ExclusiveArch: %{fpc_arches}
- cdcollect
ExclusiveArch: %{mono_arches}
- ceph
ExclusiveArch: x86_64 aarch64 ppc64 ppc64le
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- chromium
ExclusiveArch: x86_64 i686
ExclusiveArch: x86_64 i686 aarch64
- cjdns
ExclusiveArch: %{nodejs_arches}
- cmospwd
ExclusiveArch: %{ix86} x86_64
- cmrt
ExclusiveArch: %{ix86} x86_64 ia64
- coffee-script
ExclusiveArch: %{nodejs_arches} noarch
- colorful
ExclusiveArch: %{fpc_arches}
- compat-gcc-296
ExclusiveArch: %{ix86} ia64 ppc
- consul
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- containerd
ExclusiveArch: %{go_arches}
- corosync
ExclusiveArch: i686 x86_64
- cpuid
ExclusiveArch: %{ix86} x86_64
- cqrlog
ExclusiveArch: %{fpc_arches}
- crash
ExclusiveArch: %{ix86} ia64 x86_64 ppc ppc64 s390 s390x %{arm} aarch64 ppc64le
- criu
ExclusiveArch: x86_64 %{arm} ppc64le aarch64
ExclusiveArch: x86_64 %{arm} ppc64le aarch64 s390x
- cryptlib
ExclusiveArch: x86_64 %{ix86} aarch64 ppc64 ppc64le
- cryptobone
ExclusiveArch: x86_64 %{ix86} ppc64 ppc64le aarch64
- daq
ExclusiveArch: x86_64 aarch64
- darktable
ExclusiveArch: x86_64 aarch64
- dbus-sharp
ExclusiveArch: %mono_arches
- dbus-sharp-glib
ExclusiveArch: %mono_arches
- dbxtool
ExclusiveArch: i386 x86_64 aarch64
- deepin-api
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- deepin-daemon
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- deepin-dbus-generator
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- deepin-gir-generator
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- derelict
ExclusiveArch: %{ldc_arches}
- direnv
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- dlm
ExclusiveArch: i686 x86_64
- dmidecode
ExclusiveArch: %{ix86} x86_64 ia64 aarch64
- dmtcp
ExclusiveArch: %ix86 x86_64 aarch64
- docco
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- docker
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x %{mips}
- docker-anaconda-addon
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x %{mips}
- docker-distribution
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- docker-latest
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x %{mips}
- dolphin-emu
ExclusiveArch: x86_64 armv7l aarch64
- douceur
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- dpdk
ExclusiveArch: x86_64 i686 aarch64 ppc64le
- dssi-vst
ExclusiveArch: %{ix86} x86_64
- dustmite
ExclusiveArch: %{ldc_arches}
- dyninst
ExclusiveArch: %{ix86} x86_64 ppc ppc64
- e3
ExclusiveArch: %{ix86} x86_64
- edac-utils
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 %{power64}
- edb
ExclusiveArch: %{ix86} x86_64
- edk2
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
ExclusiveArch: x86_64 aarch64
- efibootmgr
ExclusiveArch: %{ix86} x86_64 aarch64 arm
- efivar
ExclusiveArch: %{ix86} x86_64 aarch64
- elasticdump
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- elk
ExclusiveArch: x86_64 %{ix86}
ExclusiveArch: x86_64 %{ix86} aarch64 %{arm} %{power64}
- embree
ExclusiveArch: x86_64
- envytools
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- etcd
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x
- exciting
ExclusiveArch: x86_64 %{ix86}
ExclusiveArch: x86_64 %{ix86} aarch64 %{arm} %{power64}
- exercism
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- expresso
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- extlinux-bootloader
ExclusiveArch: %{arm} aarch64
- fcitx-libpinyin
ExclusiveArch: %{qt5_qtwebengine_arches}
- fedora-developer-portal
ExclusiveArch: ix86 x86_64
- fedora-dockerfiles
ExclusiveArch: %{go_arches}
- fedora-gnat-project-common
ExclusiveArch: noarch %{GNAT_arches}
- fence-virt
ExclusiveArch: i686 x86_64
- fes
ExclusiveArch: x86_64
- ffcall
ExclusiveArch: %{ffcall_arches}
- firmware-addon-dell
ExclusiveArch: x86_64 ia64 %{ix86}
- flannel
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x
- florist
ExclusiveArch: %GPRbuild_arches
- fluxcapacitor
ExclusiveArch: %{ix86} x86_64 %{arm}
- fpc
ExclusiveArch: %{arm} %{ix86} x86_64 ppc ppc64
- freshmaker
ExclusiveArch: %{ix86} x86_64
- frysk
ExclusiveArch: %{ix86} x86_64 ppc64
- fst
ExclusiveArch: i686
- fwts
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 s390x %{power64}
- fwupdate
ExclusiveArch: x86_64 aarch64
- fzf
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- ga
ExclusiveArch: %{ix86} x86_64
- gbrainy
ExclusiveArch: %mono_arches
- gdata-sharp
ExclusiveArch: %mono_arches
- gdb-exploitable
ExclusiveArch: x86_64 i386
ExclusiveArch: x86_64 noarch
- gela-asis
ExclusiveArch: %{GNAT_arches}
- ghdl
ExclusiveArch: %{GNAT_arches}
- gio-sharp
ExclusiveArch: %mono_arches
- gir-to-d
ExclusiveArch: %{ldc_arches}
- git-lfs
ExclusiveArch: %{go_arches}
- git-octopus
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- giver
ExclusiveArch: %{mono_arches}
- gkeyfile-sharp
ExclusiveArch: %mono_arches
- gl3n
ExclusiveArch: %{ldc_arches}
- glibc32
ExclusiveArch: x86_64 ppc64 s390x
- glide
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- gmqcc
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- gnatcoll
ExclusiveArch: %GPRbuild_arches
- gnome-boxes
ExclusiveArch: x86_64
- gnome-desktop-sharp
ExclusiveArch: %mono_arches
- gnome-do
ExclusiveArch: %mono_arches
- gnome-guitar
ExclusiveArch: %{mono_arches}
- gnome-keyring-sharp
ExclusiveArch: %mono_arches
- gnome-rdp
ExclusiveArch: %{mono_arches}
- gnome-sharp
ExclusiveArch: %mono_arches
- gnome-subtitles
ExclusiveArch: %mono_arches
- gnu-efi
ExclusiveArch: x86_64 aarch64 %{arm} %{ix86}
- gnu-smalltalk
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le
- go-bindata
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- go-compilers
ExclusiveArch: %{go_arches}
- go-i18n
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- gocomplete
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- godep
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- gofed
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x %{mips}
- golang
ExclusiveArch: %{golang_arches}
- golang-bazil-fuse
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-bitbucket-kardianos-osext
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-bitbucket-ww-goautoneg
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-deepin-go-lib
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-10gen-openssl
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x
- golang-github-3rf-mongo-lint
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-AdRoll-goamz
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-AudriusButkevicius-cli
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-AudriusButkevicius-go-nat-pmp
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-AudriusButkevicius-kcp-go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-AudriusButkevicius-pfilter
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-Azure-azure-sdk-for-go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-BurntSushi-freetype-go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-BurntSushi-graphics-go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-BurntSushi-toml
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-BurntSushi-toml-test
ExclusiveArch: %{go_arches}
- golang-github-BurntSushi-xgb
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-BurntSushi-xgbutil
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-DATA-DOG-go-sqlmock
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-DataDog-datadog-go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-Jeffail-gabs
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-MakeNowJust-heredoc
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-Masterminds-semver
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-Masterminds-vcs
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-PuerkitoBio-goquery
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-PuerkitoBio-purell
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-PuerkitoBio-urlesc
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-RangelReale-osin
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-RangelReale-osincli
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-SAP-go-hdb
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-SeanDolphin-bqschema
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-SermoDigital-jose
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-Shopify-sarama
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-Shopify-toxiproxy
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-Sirupsen-logrus
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-ThomsonReutersEikon-go-ntlm
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-Unknwon-goconfig
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-VividCortex-ewma
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-abbot-go-http-auth
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-agl-ed25519
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-akrennmair-gopcap
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-alecthomas-assert
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-alecthomas-chroma
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-alecthomas-colour
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-alecthomas-kingpin
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-alecthomas-repr
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-alecthomas-template
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-alecthomas-units
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-andybalholm-cascadia
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-appc-spec
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-armon-circbuf
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-armon-go-metrics
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-armon-go-proxyproto
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-armon-go-radix
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-armon-gomdb
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-asaskevich-govalidator
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-auth0-go-jwt-middleware
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-aws-aws-sdk-go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-axgle-mahonia
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-beorn7-perks
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-bep-gitmap
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-bep-inflect
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-bgentry-go-netrc
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-bgentry-speakeasy
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-billziss-gh-cgofuse
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-bitly-go-simplejson
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-bkaradzic-go-lz4
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-blang-semver
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-bmizerany-assert
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-bmizerany-pat
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-bmizerany-perks
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-boltdb-bolt
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-boombuler-barcode
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-bradfitz-http2
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-bugsnag-bugsnag-go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-bugsnag-panicwrap
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-calmh-du
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-calmh-luhn
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-calmh-xdr
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-ccding-go-stun
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-cenkalti-backoff
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-chaseadamsio-goorgeous
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-cheggaaa-pb
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-chmduquesne-rollinghash
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-chrismalek-oktasdk-go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-chzyer-logex
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-chzyer-test
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-circonus-labs-circonus-gometrics
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-circonus-labs-circonusllhist
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-cloudfoundry-incubator-candiedyaml
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-cockroachdb-cmux
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-cockroachdb-cockroach-go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-codahale-aesnicheck
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-codegangsta-cli
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-codegangsta-negroni
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-collectd-go-collectd
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-coreos-gexpect
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-coreos-go-etcd
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-coreos-go-iptables
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-coreos-go-log
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-coreos-go-oidc
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-coreos-go-semver
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-coreos-go-systemd
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-coreos-pkg
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-cpuguy83-go-md2man
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-cznic-b
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-cznic-fileutil
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-cznic-golex
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-cznic-internal
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-cznic-lex
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-cznic-lexer
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-cznic-lldb
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-cznic-mathutil
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-cznic-ql
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-cznic-sortutil
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-cznic-strutil
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-cznic-zappy
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-d2g-dhcp4
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-d2g-dhcp4client
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-d4l3k-messagediff
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-danwakefield-fnmatch
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-davecgh-go-spew
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-daviddengcn-go-colortext
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-dchest-cssmin
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-dchest-siphash
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-denisenkom-go-mssqldb
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-denverdino-aliyungo
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-dgnorton-goback
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-dgrijalva-jwt-go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-digitalocean-godo
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-disintegration-imaging
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-dlclark-regexp2
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-docker-go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-docker-go-connections
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-docker-go-units
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-docker-libcontainer
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-docker-libkv
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-docker-libtrust
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-docker-spdystream
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-docopt-docopt-go
ExclusiveArch: %{go_arches}
- golang-github-duosecurity-duo_api_golang
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-dustin-go-humanize
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-dvsekhvalnov-jose2go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-eapache-go-resiliency
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-eapache-queue
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-edsrzf-mmap-go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-eknkc-amber
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-elazarl-go-bindata-assetfs
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-emicklei-go-restful
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-endophage-gotuf
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-evanphx-json-patch
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-fatih-color
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-fatih-pool
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-fatih-structs
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-flynn-go-shlex
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-flynn-json5
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-fortytw2-leaktest
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-fsnotify-fsnotify
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-fsouza-go-dockerclient
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-fullsailor-pkcs7
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-garyburd-redigo
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-gdamore-encoding
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-gdamore-tcell
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-gengo-grpc-gateway
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-getsentry-raven-go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-ghodss-yaml
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-glacjay-goini
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-go-asn1-ber-asn1-ber
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-go-errors-errors
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-go-fsnotify-fsnotify
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-go-ini-ini
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-go-ldap-ldap
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-go-macaron-inject
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-go-mgo-mgo
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-go-sql-driver-mysql
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-go-tomb-tomb
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-gobwas-glob
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-gocql-gocql
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-godbus-dbus
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-golang-appengine
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-golang-glog
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-golang-groupcache
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-golang-image
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-golang-sync
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-golang-sys
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-golang-time
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-gonum-blas
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-gonum-floats
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-gonum-graph
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-gonum-internal
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-gonum-lapack
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-gonum-matrix
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-google-btree
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-google-go-cmp
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-google-go-genproto
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-google-go-github
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-google-go-querystring
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-google-gofuzz
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-goraft-raft
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-gorilla-context
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-gorilla-css
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-gorilla-handlers
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-gorilla-mux
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-gorilla-securecookie
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-gorilla-sessions
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-gorilla-websocket
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-gosexy-gettext
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-grpc-ecosystem-go-grpc-prometheus
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-grpc-ecosystem-grpc-gateway
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-grpc-grpc-go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-hailocab-go-hostpool
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-hashicorp-consul-migrate
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-hashicorp-errwrap
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-hashicorp-go-checkpoint
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-hashicorp-go-cleanhttp
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-hashicorp-go-hclog
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-hashicorp-go-immutable-radix
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-hashicorp-go-memdb
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-hashicorp-go-msgpack
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-hashicorp-go-multierror
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-hashicorp-go-plugin
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-hashicorp-go-retryablehttp
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-hashicorp-go-rootcerts
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-hashicorp-go-sockaddr
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-hashicorp-go-syslog
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-hashicorp-go-uuid
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-hashicorp-golang-lru
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-hashicorp-hcl
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-hashicorp-hil
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-hashicorp-logutils
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-hashicorp-mdns
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-hashicorp-memberlist
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-hashicorp-net-rpc-msgpackrpc
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-hashicorp-raft
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-hashicorp-raft-boltdb
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-hashicorp-raft-mdb
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-hashicorp-scada-client
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-hashicorp-serf
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-hashicorp-yamux
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-hawkular-hawkular-client-go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-howeyc-fsnotify
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-howeyc-gopass
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-imdario-mergo
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-inconshreveable-mousetrap
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-inconshreveable-muxado
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-influxdb-hyperleveldb-go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-influxdb-influxdb
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-influxdb-rocksdb
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-jackpal-gateway
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-jacobsa-oglematchers
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-jdkato-prose
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-jdkato-syllables
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-jefferai-jsonx
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-jessevdk-go-flags
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-jfrazelle-go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-jinzhu-gorm
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-jlaffaye-ftp
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-jmespath-go-jmespath
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-jmhodges-levigo
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-jonboulle-clockwork
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-jtolds-gls
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-juju-ratelimit
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-julienschmidt-httprouter
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-karlseguin-ccache
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-karlseguin-expect
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-kballard-go-shellquote
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-kdar-factorlog
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-keybase-go-crypto
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-kimor79-gollectd
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-klauspost-cpuid
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-klauspost-crc32
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-klauspost-reedsolomon
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-knieriem-markdown
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-kr-fs
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-kr-pretty
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-kr-pty
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-kr-text
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-kylelemons-godebug
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-kyokomi-emoji
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-lib-pq
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-linuxdeepin-go-x11-client
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-lpabon-godbc
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-lsegal-gucumber
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-lucasb-eyer-go-colorful
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-magiconair-properties
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-markbates-inflect
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-mattn-go-colorable
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-mattn-go-isatty
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-mattn-go-runewidth
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-mattn-go-shellwords
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-mattn-go-sqlite3
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-matttproud-golang_protobuf_extensions
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-mesos-mesos-go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-mgutz-ansi
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-mgutz-logxi
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-michaelklishin-rabbit-hole
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-miekg-dns
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-miekg-mmark
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-miekg-pkcs11
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-milochristiansen-axis2
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-milochristiansen-lua
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-minio-sha256-simd
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-mistifyio-go-zfs
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-mitchellh-cli
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-mitchellh-copystructure
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-mitchellh-go-homedir
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-mitchellh-go-testing-interface
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-mitchellh-go-wordwrap
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-mitchellh-goamz
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-mitchellh-mapstructure
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-mitchellh-reflectwalk
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-montanaflynn-stats
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-mreiferson-go-httpclient
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-msteinert-pam
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-mvo5-goconfigparser
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-mvo5-uboot-go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-mxk-go-flowrate
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-ncw-dropbox-sdk-go-unofficial
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-ncw-go-acd
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-ncw-swift
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-neurosnap-sentences
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-nfnt-resize
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-noahdesu-go-ceph
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-nsf-termbox-go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-nwidger-jsoncolor
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-ojii-gettext.go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-olekukonko-tablewriter
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-olekukonko-ts
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-olivere-elastic
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-onsi-ginkgo
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-onsi-gomega
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-opencontainers-runtime-spec
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-opencontainers-specs
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-openshift-go-json-rest
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-openshift-go-systemd
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-openshift-openshift-sdn
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-oschwald-geoip2-golang
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-oschwald-maxminddb-golang
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-patrickmn-go-cache
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-pelletier-go-buffruneio
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-pelletier-go-toml
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-petar-GoLLRB
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-peterh-liner
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-petermattis-goid
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-pkg-errors
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-pkg-profile
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-pkg-sftp
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-pmezard-go-difflib
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-pquerna-otp
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-prometheus-client_golang
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-prometheus-client_model
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-prometheus-common
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-prometheus-procfs
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-prometheus-prometheus
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-racker-perigee
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-rackspace-gophercloud
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-rakyll-globalconf
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-rakyll-pb
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-rakyll-statik
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-rcrowley-go-metrics
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-remyoudompheng-bigfft
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-rfjakob-eme
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-robertkrimen-otto
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-russross-blackfriday
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-ryanuber-columnize
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-ryanuber-go-glob
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-samalba-dockerclient
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-samuel-go-zookeeper
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-sasha-s-go-deadlock
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-seccomp-libseccomp-golang
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-sergi-go-diff
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-sethgrid-pester
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-shiena-ansicolor
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-shogo82148-go-shuffle
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-shurcooL-sanitized_anchor_name
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-skarademir-naturalsort
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-skratchdot-open-golang
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-skynetservices-skydns
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-smartystreets-assertions
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-smartystreets-go-aws-auth
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-smartystreets-goconvey
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-spacejam-loghisto
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-spacemonkeygo-flagfile
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-spacemonkeygo-spacelog
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-spf13-afero
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-spf13-cast
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-spf13-cobra
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-spf13-fsync
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-spf13-jWalterWeatherman
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-spf13-nitro
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-spf13-pflag
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-spf13-viper
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-sstarcher-go-okta
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-stathat-go
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-stevvooe-resumable
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-streadway-amqp
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-stretchr-objx
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-stretchr-testify
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-syndtr-gocapability
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-syndtr-goleveldb
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-syndtr-gosnappy
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-templexxx-cpufeat
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-templexxx-reedsolomon
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-templexxx-xor
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-tent-http-link-go
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-thejerf-suture
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-tjfoc-gmsm
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-tonnerre-golang-pretty
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-ugorji-go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-urfave-cli
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-vaughan0-go-ini
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-vbatts-tar-split
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-vishvananda-netlink
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} aarch64 x86_64 %{arm}}
- golang-github-vishvananda-netns
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-vitrun-qart
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-vjeantet-asn1-ber
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-vmware-govcloudair
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-wsxiaoys-terminal
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-xanzy-ssh-agent
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-xeipuuv-gojsonpointer
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-xeipuuv-gojsonreference
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-xeipuuv-gojsonschema
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-xiang90-probing
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-xtaci-kcp-go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-xtaci-smux
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-yosssi-ace
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-yosssi-gohtml
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-yuin-gopher-lua
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-yvasiyarov-go-metrics
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-yvasiyarov-gorelic
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-yvasiyarov-newrelic_platform_go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-zillode-notify
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-zyedidia-clipboard
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-zyedidia-glob
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-zyedidia-poller
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-zyedidia-tcell
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-google-golangorg-cloud
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-googlecode-gcfg
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-googlecode-go-crypto
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-googlecode-go-decimal-inf
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-googlecode-go-exp
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-googlecode-goauth2
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-googlecode-gogoprotobuf
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-googlecode-gomock
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-googlecode-google-api-client
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-googlecode-goprotobuf
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-googlecode-log4go
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-googlecode-net
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-googlecode-sqlite
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-googlecode-text
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-googlecode-tools
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-googlecode-uuid
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-gopkg-check
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-gopkg-go-check-check
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-gopkg-go-macaroon-macaroon
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-gopkg-readline
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-gopkg-retry-v1
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-gopkg-sourcemap
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-gopkg-yaml
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-layeh-gopher-luar
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-torproject-pluggable-transports-goptlib
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golint
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- gomtree
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- gotags
ExclusiveArch: %{go_arches}
- gotun
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
ExclusiveArch: x86_64
- gprbuild
ExclusiveArch: %{GPRbuild_arches} %{bootstrap_arch}
- gprolog
ExclusiveArch: x86_64 %{ix86} ppc alpha
- gsf-sharp
ExclusiveArch: %mono_arches
- gtk-sharp-beans
ExclusiveArch: %mono_arches
- gtk-sharp2
ExclusiveArch: %mono_arches
- gtk-sharp3
ExclusiveArch: %{mono_arches}
- gtkd
ExclusiveArch: %{ldc_arches}
- gudev-sharp
ExclusiveArch: %mono_arches
- hedgewars
ExclusiveArch: %{fpc_arches}
- heketi
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- hub
ExclusiveArch: %{go_arches}
- hugo
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- hyena
ExclusiveArch: %{mono_arches}
- hyperscan
ExclusiveArch: x86_64
- hyperv-daemons
ExclusiveArch: i686 x86_64
- icaro
ExclusiveArch: %{ix86} %{arm} x86_64 noarch
- ikarus
ExclusiveArch: %{ix86}
- imvirt
ExclusiveArch: %{ix86} x86_64 ia64
- indistarter
ExclusiveArch: %{fpc_arches}
- infinipath-psm
ExclusiveArch: x86_64
- intel-cmt-cat
ExclusiveArch: x86_64 i686 i586
ExclusiveArch: x86_64 i686 i586
- ioport
ExclusiveArch: %{ix86} x86_64
- ipw2100-firmware
ExclusiveArch: noarch i386 x86_64
- ipw2200-firmware
ExclusiveArch: noarch i386 x86_64
- ispc
ExclusiveArch: %{arm} %{ix86} x86_64
- iucode-tool
ExclusiveArch: %{ix86} x86_64
- iwyu
ExclusiveArch: %{ix86} x86_64
- ixpdimm_sw
ExclusiveArch: x86_64
- jake
ExclusiveArch: %{nodejs_arches} noarch
- jasmine-node
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- java-1.8.0-openjdk-aarch32
ExclusiveArch: %{arm}
- julia
ExclusiveArch: %{ix86} x86_64
- keepass
ExclusiveArch: %{mono_arches}
- kernel
ExclusiveArch: %{all_x86} x86_64 ppc64 s390x %{arm} aarch64 ppc64le
- kicad
ExclusiveArch: %{ix86} x86_64 %{arm} ppc64 ppc64le aarch64
- knot-resolver
ExclusiveArch: %{arm} aarch64 %{ix86} x86_64
- kompose
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 s390x
- kosmtik
ExclusiveArch: %{nodejs_arches} noarch
- kubernetes
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- latrace
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 %{power64}
- lazarus
ExclusiveArch: %{fpc_arches}
- ldc
ExclusiveArch: %{ldc_arches}
- libbsr
ExclusiveArch: %{power64}
- libclc
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 %{power64} s390x
- libcxl
ExclusiveArch: %{power64}
- libflatarray
ExclusiveArch: %{ix86} x86_64
- libhfi1
ExclusiveArch: x86_64
- libica
ExclusiveArch: s390 s390x
- libinvm-cim
ExclusiveArch: x86_64
- libinvm-cli
ExclusiveArch: x86_64
- libinvm-i18n
ExclusiveArch: x86_64
- libipt
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{ix86} x86_64
- libjingle
ExclusiveArch: %{ix86} x86_64 %{arm}
- libmfx
ExclusiveArch: %{ix86} x86_64
- libpsm2
ExclusiveArch: x86_64
- librtas
ExclusiveArch: ppc %{power64}
- libseccomp
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 mipsel mips64el ppc64 ppc64le s390 s390x
- libservicelog
ExclusiveArch: ppc %{power64}
- libsmbios
ExclusiveArch: x86_64 ia64 %{ix86}
- libunwind
ExclusiveArch: %{arm} aarch64 hppa ia64 mips ppc %{power64} %{ix86} x86_64
- libva-intel-hybrid-driver
ExclusiveArch: %{ix86} x86_64 ia64
- libvmi
ExclusiveArch: x86_64
- libvpd
ExclusiveArch: ppc %{power64}
- libxsmm
ExclusiveArch: x86_64
- libzfcphbaapi
ExclusiveArch: s390 s390x
- lldb
ExclusiveArch: %{arm} aarch64 %{ix86} x86_64
- lodash
ExclusiveArch: %{nodejs_arches} noarch
- log4net
ExclusiveArch: %mono_arches
- lrmi
ExclusiveArch: %{ix86}
- lsvpd
ExclusiveArch: ppc %{power64}
- luajit
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64
- mactel-boot
ExclusiveArch: x86_64
- manifest-tool
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- marked
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- matreshka
ExclusiveArch: %GPRbuild_arches
- maven-eclipse-plugin
ExclusiveArch: %{ix86} x86_64
- maxima
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc sparcv9
ExclusiveArch: %{ix86} x86_64 ppc sparcv9
- mcelog
ExclusiveArch: i686 x86_64
- mediaconch
ExclusiveArch: %{qt5_qtwebengine_arches}
- mellowplayer
ExclusiveArch: %{qt5_qtwebengine_arches}
- memkind
ExclusiveArch: x86_64
- memtest86+
ExclusiveArch: %{ix86} x86_64
- mesos
ExclusiveArch: x86_64
- micro
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- microcode_ctl
ExclusiveArch: %{ix86} x86_64
- micropython
ExclusiveArch: %{arm} %{ix86} x86_64
- mine_detector
ExclusiveArch: %{GNAT_arches}
- minetest
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64
- mingw-wine-gecko
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- mkbootdisk
ExclusiveArch: %{ix86} sparc sparc64 x86_64
- mnemosyne
ExclusiveArch: noarch %{qt5_qtwebengine_arches}
- mocha
ExclusiveArch: %{nodejs_arches} noarch
- mod_mono
ExclusiveArch: %mono_arches
- module-build-service
ExclusiveArch: %{ix86} x86_64 noarch
- mokutil
ExclusiveArch: %{ix86} x86_64 aarch64
- mongo-tools
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x
- mono
ExclusiveArch: %mono_arches
- mono-addins
ExclusiveArch: %mono_arches
- mono-basic
ExclusiveArch: %{mono_arches}
- mono-bouncycastle
ExclusiveArch: %mono_arches
- mono-cecil
ExclusiveArch: %mono_arches
- mono-cecil-flowanalysis
ExclusiveArch: %mono_arches
- mono-debugger
ExclusiveArch: %ix86 x86_64
- mono-reflection
ExclusiveArch: %mono_arches
- mono-tools
ExclusiveArch: %mono_arches
- mono-zeroconf
ExclusiveArch: %mono_arches
- monobristol
ExclusiveArch: %{mono_arches}
- monodevelop
ExclusiveArch: %mono_arches
- monodevelop-debugger-gdb
ExclusiveArch: %{mono_arches}
- monosim
ExclusiveArch: %mono_arches
- mrrescue
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64 ppc64
- msr-tools
ExclusiveArch: %{ix86} x86_64
- mustache-d
ExclusiveArch: %{ldc_arches}
- mysql-connector-net
ExclusiveArch: %{mono_arches}
- nacl-arm-binutils
ExclusiveArch: x86_64
- nacl-arm-gcc
ExclusiveArch: x86_64
- nacl-arm-newlib
ExclusiveArch: x86_64
- nacl-binutils
ExclusiveArch: x86_64
- nacl-gcc
ExclusiveArch: x86_64
- nacl-newlib
ExclusiveArch: x86_64
- nant
ExclusiveArch: %mono_arches
- nbc
ExclusiveArch: %{fpc_arches}
- nbdkit
ExclusiveArch: x86_64
- ndesk-dbus
ExclusiveArch: %{mono_arches}
- ndesk-dbus-glib
ExclusiveArch: %{mono_arches}
- newtonsoft-json
ExclusiveArch: %{mono_arches}
- nim
ExclusiveArch: %{nim_arches}
- nini
ExclusiveArch: %{mono_arches}
- node-gyp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs
ExclusiveArch: %{nodejs_arches}
- nodejs-Base64
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-abbrev
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-accepts
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-acorn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-acorn-object-spread
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-after
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-agent-base
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-agentkeepalive
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ain2
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-align-text
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-alter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansi
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgblack
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgblue
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgcyan
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bggreen
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgmagenta
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgred
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgwhite
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgyellow
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-black
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-blue
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bold
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-colors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-cyan
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansi-dim
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-font
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-gray
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-green
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansi-grey
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-hidden
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-inverse
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-italic
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-magenta
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansi-red
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-regex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-reset
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-strikethrough
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-styles
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansi-underline
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-white
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-wrap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansi-yellow
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansicolors
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansidiff
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansistyles
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-any-promise
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ap
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-append-field
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-append-transform
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-aproba
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-archiver
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-archiver-utils
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-archy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-are-we-there-yet
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-argparse
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-argsparser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-arr-diff
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-arr-exclude
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-arr-flatten
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-arr-union
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-buffer-from-string
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-differ
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-filter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-find
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-find-index
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-flatten
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-foreach
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-ify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-index
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-map
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-reduce
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-union
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-uniq
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-unique
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-arraybuffer-dot-slice
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-arraybuffer-equal
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-arrify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-as-number
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-asap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ascii-tree
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ascli
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-asn1
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-assert-plus
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-assertion-error
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-assume
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ast-traverse
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ast-types
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-astral
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-astral-angular-annotate
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-astral-pass
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-async
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-async-array-reduce
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-async-cache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-async-each
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-async-limiter
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-async-queue
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-async-some
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-asynckit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-atob
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-auto-bind
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-autoresolve
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ava-init
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-aws-sign
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-aws-sign2
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-aws4
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-babel-messages
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-babel-runtime
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-backbone
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-backoff
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-balanced-match
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-base
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-base-option
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-base-plugins
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-base32-encode
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-base64-arraybuffer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-base64-js
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-base64-url
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-base64id
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bash-match
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-basic-auth
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-basic-auth-connect
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-basic-auth-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-batch
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-bcrypt
ExclusiveArch: %{nodejs_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- nodejs-bcryptjs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-beeper
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-benchmark
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-better-assert
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-better-than-before
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bignumber-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bind-obj-methods
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bindings
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-bl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-blob
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-block-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bluebird
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-body-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-boolbase
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-boom
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-brace-expansion
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-braces
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-breakable
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-browser-request
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-browser-stdout
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bson
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-buble
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-buf-compare
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-buffer-crc32
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-buffer-equal
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-buffer-shims
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-buffer-writer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-buffertools
ExclusiveArch: %{nodejs_arches}
- nodejs-bufferutil
ExclusiveArch: %{nodejs_arches}
- nodejs-builtin-modules
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-builtins
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bundle-dependencies
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-bunker
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-bunyan
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-burrito
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-busboy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-byline
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bytes
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cache-base
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-caching-transform
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-call-delayed
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-call-matcher
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-call-signature
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-callback-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-caller-callsite
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-caller-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-callsite
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-callsites
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-camel-case
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-camelcase
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-camelcase-keys
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-caniuse-db
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-capture-stack-trace
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-carrier
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-caseless
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-center-align
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-connect-middleware
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-oauth2orize-grant
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-passport-strategy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chainer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chainsaw
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chalk
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-change-case
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-char-spinner
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-character-parser
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-charm
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cheerio
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-child-process-close
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chmodr
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chownr
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chroma-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chrono
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-circular-json
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cjson
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-clap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-class-utils
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-clean-css
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-clean-yaml-object
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cli
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cli-color
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cli-spinner
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cli-table
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cliui
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-clone
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-clone-deep
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-clone-stats
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-closure-compiler
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cls
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cmd-shim
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-co
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-co-mocha
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-co-with-promise
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-coa
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-code-point-at
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-codemirror
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-coffee-coverage
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-collection-visit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-collections
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-color-support
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-colors
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-colour
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-columnify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-combined-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-commander
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-common-path-prefix
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-commondir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-commoner
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-commonmark
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-compare-func
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-component-emitter
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-component-indexof
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-component-inherit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-compress-commons
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-compressible
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-compression
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-concat-map
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-concat-stream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-config-chain
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-connect
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-connect-livereload
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-connect-timeout
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-console-browserify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-console-dot-log
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-consolemd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-constant-case
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-constantinople
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-content-disposition
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-content-type
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-angular
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-writer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-commits-filter
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-commits-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-convert-hex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-convert-source-map
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cookie
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cookie-jar
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cookie-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cookie-session
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cookie-signature
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cookiejar
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cookies
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-copy-descriptor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-core-assert
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-core-js
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-core-util-is
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-couch-login
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-coveralls
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-crc
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-crc32-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-create-error-class
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cross-spawn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cross-spawn-async
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cryptiles
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-csrf
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-css
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-css-parse
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-css-select
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-css-stringify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-css-tree
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-css-what
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-csscomb-core
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csslint
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csso
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cssom
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csurf
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csv
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csv-generate
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csv-parse
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csv-spectrum
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csv-stringify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ctype
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-currently-unhandled
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cycle
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cyclist
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-d
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-dargs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dashdash
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-data-uri-to-buffer
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-date-now
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dateformat
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-death
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-debug
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-debug-fabulous
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-debuglog
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-decamelize
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-decompress-response
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dedent
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-deep-eql
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-deep-equal
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-deep-extend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-deep-is
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-deeper
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-default-require-extensions
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-default-resolution
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-defaults
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-defence
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-defence-cli
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-deferred
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-define-properties
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-define-property
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-defined
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-defs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-degenerator
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-del
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-delayed-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-delegates
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-delete
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dep-graph
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-depd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dependency-lister
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-deprecated
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-destroy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-detect-file
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-detect-indent
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-detect-newline
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-detect-node
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-detective
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dezalgo
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dicer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-diff
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-difflet
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-difflib
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-docopt
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-doctrine
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dom-serializer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-domelementtype
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-domhandler
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-domutils
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dot-case
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dot-prop
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dotfile-regex
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-dreamopt
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dryice
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-dtree
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-duplex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-duplexer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-duplexer2
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-duplexer3
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-duplexify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-duration
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-each
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-each-async
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ebnf-parser
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-echomd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ecstatic
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-editor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ee-first
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ejs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-emojione
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-empty-dir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-encodeurl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-encoding
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-end-of-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-engine-dot-io-client
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-engine-dot-io-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-entities
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-error-ex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-error-symbol
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-errorhandler
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-errs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-es-abstract
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-es-to-primitive
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-es5-ext
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es5-shim
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es6-iterator
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es6-map
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es6-promise
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-es6-promisify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-es6-set
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es6-shim
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es6-symbol
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es6-weak-map
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-escallmatch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-escape-html
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-escape-regexp-component
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-escape-string-regexp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-escodegen
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-escope
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-espower
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-espower-location-detector
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-esprima
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-esprima-fb
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-esprima-harmony-jscs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-espurify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-esrecurse
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-estraverse
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-estraverse-fb
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-esutils
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-etag
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-event-emitter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-event-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-eventemitter2
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-eventemitter3
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-events
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-events-to-array
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-everything-dot-js
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-execa
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-exit
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-expand-brackets
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-expand-range
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-expand-tilde
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-expect
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-expect-dot-js
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-express
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-express-session
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-extend
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-extend-shallow
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-extglob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-extsprintf
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-eyes
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fake
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fancy-log
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-far
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fast-levenshtein
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fastfall
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-faucet
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-faye-websocket
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fd-slicer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fg-lodash
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-figures
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-file-entry-cache
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-file-sync-cmp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-file-uri-to-path
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-filed
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-filelist
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-filename-regex
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fileset
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fill-keys
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fill-range
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-finalhandler
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-find-cache-dir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-find-up
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-findup-sync
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-first-chunk-stream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-flagged-respawn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-flat-cache
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-flot
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-flush-write-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fmix
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fn-dot-name
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fn-name
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-follow
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-follow-redirects
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-for-in
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-for-own
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-foreach
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-foreground-child
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-forever-agent
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-form-data
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-formatio
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-formidable
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-forwarded
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fragment-cache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-freetree
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fresh
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-from
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-from2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-dot-notify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-exists-cached
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-exists-sync
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fs-ext
ExclusiveArch: %{nodejs_arches}
- nodejs-fs-extra
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-promise
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-temp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-vacuum
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-write-stream-atomic
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs2
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fstream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fstream-ignore
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fstream-npm
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ftp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-function-bind
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-function-loop
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-gauge
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-gaze
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-gdal
ExclusiveArch: %{nodejs_arches}
- nodejs-generate-function
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-generate-object-property
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-generic-pool
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-get-pkg-repo
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-get-port
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-get-stdin
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-get-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-get-uri
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-get-value
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-getobject
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-gettext-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-git-dummy-commit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-git-remote-origin-url
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-gitconfiglocal
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-github-url-from-git
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-github-url-from-username-repo
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-glob
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-glob-base
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-glob-expand
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-glob-parent
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-global-modules
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-global-prefix
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-globals
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-globby
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-globule
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-glogg
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-gnode
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-gonzales-pe
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-got
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-graceful-fs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-graceful-readlink
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grip
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-growl
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-angular-templates
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-banner
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-cli
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-compare-size
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-clean
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-concat
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-connect
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-copy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-contrib-csslint
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-cssmin
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-htmlmin
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-contrib-internal
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-less
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-nodeunit
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-requirejs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-contrib-uglify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-watch
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-git-authors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-html-validation
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-init
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-known-options
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-legacy-log
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-legacy-log-utils
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-legacy-util
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-lib-contrib
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-saucelabs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-sed
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-simple-mocha
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-svgmin
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-util-args
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-util-options
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-util-process
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-util-property
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-wrap
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-gulp-mocha
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-gulp-util
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-gulplog
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-gzip-size
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-handle-thing
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-handlebars
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-har-validator
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-ansi
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-binary
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-binary2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-color
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-has-cors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-flag
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-glob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-has-gulplog
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-has-unicode
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-value
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-values
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-yarn
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hash_file
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hawk
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-he
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-heap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-hex-to-array-buffer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-highlight-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hock
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hoek
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-homedir-polyfill
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hook-std
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hooker
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-hosted-git-info
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hsluv
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-html-minifier
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-htmlparser2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-http-deceiver
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-http-errors
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-http-proxy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-http-proxy-agent
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-http-server
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-http-signature
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-http2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-https-proxy-agent
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-humanize-ms
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-i
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-i18n-transform
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-i2c
ExclusiveArch: %{nodejs_arches}
- nodejs-iconv
ExclusiveArch: %{nodejs_arches}
- nodejs-iconv-lite
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-iferr
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ignore
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-imul
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-imurmurhash
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-indent-string
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-indexof
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-infinity-agent
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-inflight
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-info-symbol
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-inherit
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-inherits
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-inherits1
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ini
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-init-package-json
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-inline-source-map
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-install
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-int64-buffer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-interpret
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-into-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-invert-kv
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ip
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ipaddr-dot-js
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-irc-colors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-irregular-plurals
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-absolute
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-accessor-descriptor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-arrayish
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-arrow-function
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-boolean-object
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-buffer
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-builtin-module
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-callable
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-data-descriptor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-date-object
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-descriptor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-dir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-dotfile
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-equal
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-equal-shallow
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-error
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-extendable
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-extglob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-finite
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-fullwidth-code-point
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-generator
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-generator-fn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-generator-function
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-glob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-lower-case
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-my-json-valid
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-negated-glob
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-number
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-number-object
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-obj
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-object
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-observable
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-path-cwd
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-path-in-cwd
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-path-inside
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-plain-obj
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-plain-object
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-primitive
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-promise
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-property
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-redirect
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-regex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-regexp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-registered
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-relative
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-retry-allowed
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-string
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-subset
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-symbol
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-text-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-typedarray
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-unc-path
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-upper-case
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-url
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-utf8
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-valid-glob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-valid-instance
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-windows
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-isarray
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-isexe
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-iso8601
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-isobject
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-isodate
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-isstream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-istanbul
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jade
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jasmine-growl-reporter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jasmine-reporters
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jison
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jison-lex
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jju
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-joose
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-joosex-namespace-depended
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-joosex-simplerequest
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-js-base64
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-js-yaml
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jschardet
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jscoverage
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jshint
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-json-diff
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-json-localizer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-json-parse-helpfulerror
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-json-stable-stringify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-json-stringify-safe
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-json3
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jsonfile
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jsonify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jsonm
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jsonparse
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jsonpointer
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jsonselect
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jwt-simple
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-keep-alive-agent
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-keygrip
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-keypress
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-kind-of
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-klaw
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-kuler2gpl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-langdetect
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-latest-version
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-lazy-cache
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-lazystream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-lcid
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-lcov-parse
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-leaflet
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-leaflet-formbuilder
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-leaflet-hash
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-leche
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-left-pad
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-less
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-levn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-lex-parser
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-libxmljs
ExclusiveArch: %{nodejs_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- nodejs-line-numbers
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-line-reader
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-linefix
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-linkify-it
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-load-grunt-tasks
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-load-json-file
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-locate-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-lockfile
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-log-driver
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-log-ok
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-log-symbols
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-log-utils
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-lolex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-longest
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-loud-rejection
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-lower-case
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-lower-case-first
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-lowercase-keys
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-lru-cache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-lru-queue
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ltx
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-magic-string
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-make-arrow-function
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-make-dir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-make-generator-function
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-make-node
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-makedir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-makeerror
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-map-cache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-map-obj
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-map-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-map-visit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mapnik
ExclusiveArch: %{nodejs_arches}
- nodejs-mapnik-pool
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mapnik-vector-tile
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-markdown
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-markdown-it-testgen
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-marked
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-matched
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-max-timeout
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-maxmin
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mbtiles
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-md5-hex
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-md5-o-matic
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-mdn-data
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mdurl
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-media-typer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-memoize-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-memoizee
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-memwatch-next
ExclusiveArch: %{nodejs_arches}
- nodejs-meow
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-merge-descriptors
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-merge-stream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-metascript
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-method-override
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-methods
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-millstone
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mime
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-mime-db
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mime-types
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mimeparse
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-minimalistic-assert
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-minimatch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-minimist
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-minstache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mixin-deep
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mixin-object
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mkdirp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mkfiletree
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mock-bin
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mock-fs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mock-git
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-modify-values
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-module-not-found-error
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-moment
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-moment-timezone
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mongodb
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mongodb-core
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-monocle
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-morgan
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ms
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-muffin
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-multiline
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-multimatch
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-multiparty
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-multipipe
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-murmur-32
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mustache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mute-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mv
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-mysql
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mz
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-nan
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nan0
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-nan1
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nano
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nanoseconds
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-native-or-bluebird
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ncp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-needle
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-negotiator
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-nested-error-stacks
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-net-browserify-alt
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-netmask
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-next
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-next-tick
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-node-expat
ExclusiveArch: %{nodejs_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- nodejs-node-int64
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-node-markdown
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-node-print
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-node-static
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-node-status-codes
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-node-stringprep
ExclusiveArch: %{nodejs_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- nodejs-node-uuid
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-nomnom
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-noncharacters
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nopt
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nopt-usage
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-noptify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-normalize-git-url
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-normalize-package-data
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-normalize-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npm-cache-filename
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npm-install-checks
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npm-license
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-npm-package-arg
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npm-registry-client
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-npm-run-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npm-stats
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npm-user-validate
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npmlog
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nsp-api
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nsp-audit-shrinkwrap
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nth-check
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-number-is-nan
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-numeral
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-oauth
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-oauth-sign
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-oauth2orize
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-assign
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-copy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-dot-entries
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-object-dot-omit
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-object-dot-pick
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-object-inspect
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-is
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-keys
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-visit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-observable-to-promise
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-obuf
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-on-finished
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-on-headers
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-once
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-onetime
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-only-shallow
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-oop
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-open
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-opener
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-opn
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-option-cache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-option-chain
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-optionator
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-options
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-optjs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-opts
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-orchestrator
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ordered-read-streams
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-os-homedir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-os-locale
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-os-shim
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-os-tmpdir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-osenv
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-output-file-sync
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-own-or
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-own-or-env
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-p-finally
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-p-is-promise
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-p-limit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-p-locate
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pac-proxy-agent
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pac-resolver
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-package
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-package-info
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-package-json
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-package-license
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-packaging
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-packet-reader
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pad
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pad-left
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-paperboy
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-param-case
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parse-github-repo-url
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parse-glob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-parse-json
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parse-ms
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parse-passwd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parsejson
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parseqs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parserlib
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-parseuri
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parseurl
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pascal-case
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pascalcase
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-passport-http-bearer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-passport-oauth
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-passport-oauth1
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-passport-oauth2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-passport-oauth2-client-password
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-passport-strategy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-array
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-path-case
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-dirname
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-exists
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-extra
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-is-absolute
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-is-inside
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-key
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-to-regexp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-path-type
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path2
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pathval
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pause
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pause-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pbkdf2-password
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pedding
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pegjs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pem
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pff
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pg-connection-string
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-escape
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-int8
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-types
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pgpass
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pinkie
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pinkie-promise
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pkg-dir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pkg-up
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pkginfo
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-platform
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-plur
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-portfinder
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-portscanner
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-posix-character-classes
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-posix-getopt
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-postgres-array
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-postgres-bytea
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-postgres-date
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-postgres-interval
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-precond
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-prelude-ls
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-prepend-http
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-preserve
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pretty-bytes
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pretty-hrtime
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pretty-ms
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pretty-time
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-private
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-process-nextick-args
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-progress
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-progress-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-promise
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-promises-aplus-tests
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-prompt
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-promzard
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-propagate
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-proto-list
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-proxy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-proxy-addr
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-proxy-agent
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-proxyquire
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pruddy-error
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pseudomap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pubcontrol
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pump
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pumpify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-q
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-q-io
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-qs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-qtdatastream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-queue-async
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-quick-lru
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-qunit-extras
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-qunitjs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rainbowsocks
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-random-bytes
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-random-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-randomatic
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-range-parser
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-raw-body
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rc
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-re-emitter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-read
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-read-all-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-read-cmd-shim
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-read-dir-files
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-read-file
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-read-installed
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-read-json-sync
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-read-package-json
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-read-package-tree
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-read-pkg
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-read-pkg-up
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-readable-stream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-readdir-scoped-modules
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-readdirp
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-realize-package-specifier
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-recast
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-rechoir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-redent
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-reduce-component
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-regenerator
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-regex-cache
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-regex-not
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-registry-url
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-relateurl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-remove-trailing-separator
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-repeat-element
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-repeat-string
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-repeating
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-repl
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-replace
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-replace-ext
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-replace-require-self
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-request
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-requestretry
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-require-cs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-require-directory
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-require-inject
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-require-uncached
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-require-yaml
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-requirejs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-requires-port
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-resolve
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-resolve-cwd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-resolve-dir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-resolve-from
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-resolve-pkg
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-resolve-url
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-response-time
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-resumer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-retry
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-reusify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-revalidator
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-rewire
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rfile
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rhea
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-right-align
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rimraf
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rndm
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-rollup
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ronn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-run-parallel-limit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-runforcover
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-safe-buffer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-safe-json-stringify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-safecb
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-samsam
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sauce-tunnel
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-saucelabs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-sax
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-scmp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-secure-random
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-seedrandom
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-select-hose
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-semver
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-send
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-sentence-case
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sentiment
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-seq
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sequencify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-serialize-error
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-serve-index
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-serve-static
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-server-destroy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-set-blocking
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-set-getter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-set-immediate
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-set-immediate-shim
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-set-value
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-setimmediate
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-setprototypeof
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sha
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-shallow-clone
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-shebang-command
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-shebang-regex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-shelljs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-shelljs-nodecli
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-should
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-should-equal
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-should-format
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-should-http
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-should-type
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-showdown
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sigmund
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-signal-exit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-silent-npm-registry-client
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-simple-assert
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-simple-asyncify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-simple-fmt
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-simple-is
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-simple-markdown
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-single-line-log
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sinon
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sinon-restore
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-slide
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-smart-buffer
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-snake-case
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snapdragon
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snapdragon-capture
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snapdragon-capture-set
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snapdragon-node
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snapdragon-util
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snockets
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-sntp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-socks-client
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-socks-proxy-agent
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-sort-keys
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sorted-object
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-source-map
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-source-map-fixtures
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-source-map-resolve
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-source-map-support
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-source-map-url
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sparkles
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-spawn-sync
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-spawn-wrap
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-spdx-correct
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-spdx-exceptions
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-spdx-expression-parse
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-spdx-license-ids
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-spec
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-speedometer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-split
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-split-string
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-split2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sprintf
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sprintf-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sqlite3
ExclusiveArch: %{nodejs_arches}
- nodejs-srs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ssri
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-st
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stable
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stack-trace
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stack-utils
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-static-extend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-static-favicon
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-statuses
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-std-mocks
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-combiner
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-consume
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stream-counter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stream-each
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-equal
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-pair
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-reduce
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-replace
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stream-shift
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-spigot
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-to-array
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-transform
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-streamsearch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-streamsink
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-streamtest
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-string
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-string-dot-prototype-dot-repeat
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-string-dot-prototype-dot-trim
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-string-width
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-string_decoder
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stringmap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stringscanner
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stringset
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stringstream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-ansi
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-strip-bom
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-bom-stream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-strip-bom-string
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-color
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-eof
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-indent
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-strip-json-comments
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-path
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-strong-log-transformer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strscanner
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stylus
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-success-symbol
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-superagent
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-superagent-proxy
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-supertest
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-supervisor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-supports-color
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-suspend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-svgmin
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-svgo
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-swap-case
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-symbol-observable
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tad
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tap
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tap-mocha-reporter
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tap-out
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tap-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tap-spec
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tape
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tapes
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tar
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tar-pack
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tar-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-temp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-temp-dir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-temp-write
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-temporary
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tern
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tern-cordovajs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tern-liferay
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-terst
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-test
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-testdata-w3c-json-form
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-testjs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-testswarm
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-testutil
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-text-extensions
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-text-table
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-thenify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-thenify-all
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-thread-sleep
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-through
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-through2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-through2-filter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-thunkify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tildify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tilejson
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tilelive
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tilelive-mapnik
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tiletype
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-time-diff
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-time-stamp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-timed-out
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-timekeeper
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-timers-ext
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tiny-lr-fork
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-title-case
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tlds
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tmatch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tmp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tmpl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-to-absolute-glob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-to-object-path
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-to-regex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-to-regex-range
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tough-cookie
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tracejs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-transformers
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-traverse
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-treeify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tressa
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-trim
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-trim-newlines
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-trim-off-newlines
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-trivial-deferred
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-try-open
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-try-thread-sleep
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tryor
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tsame
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tsscmp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ttembed-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tunnel-agent
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-type-check
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-type-detect
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-type-is
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-type-name
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-typeahead.js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-typedarray
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-typescript
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-uc-dot-micro
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-uglify-to-browserify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-uid-number
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-uid-safe
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-uid2
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ultron
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-umask
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-unc-path-regex
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-underscore
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-underscore-dot-logger
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-unicode-7.0.0
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-unicode-length
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-union
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-union-value
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-unique-filename
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-unique-slug
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-unique-stream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-unique-temp-dir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-unpipe
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-unset-value
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-unzip-response
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-upper-case
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-upper-case-first
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-uri-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-urix
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-url-join
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-url-parse-lax
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-url2
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-use
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-user-home
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-utf8
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-utfx
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-util
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-util-deprecate
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-util-extend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-utile
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-utilities
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-utils-merge
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-uuid
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-vali-date
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-validate-npm-package-license
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-validate-npm-package-name
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-vary
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-vasync
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-verror
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-vhost
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-vinyl
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-vlq
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-vow
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-vow-fs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-vow-queue
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-vows
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-w3cjs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-walkdir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-walker
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ware
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-warning-symbol
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-watchit
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-watershed
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-wbuf
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-wcwidth
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-weak-map
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-websocket-driver
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-when
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-whet-dot-extend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-which
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-win-spawn
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-window-size
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-winston
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-with
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-woothee
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-wordwrap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-wrap-ansi
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-wrap-fn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-wrappy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-write
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-write-file-atomic
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-write-json-file
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-write-pkg
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ws
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-xml2js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-xmlbuilder
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-xmldom
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-xmlhttprequest-ssl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-xregexp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-xtend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-y18n
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-yallist
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-yapool
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-yargs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-yargs-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-yauzl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-yeast
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-zap
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-zip-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-zipfile
ExclusiveArch: %{nodejs_arches}
- nodejs-zlib-browserify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-zlibjs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodeunit
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- notify-sharp
ExclusiveArch: %{mono_arches}
- notify-sharp3
ExclusiveArch: %{mono_arches}
- nuget
ExclusiveArch: %{mono_arches}
- numatop
ExclusiveArch: %{ix86} x86_64
- nunit
ExclusiveArch: %{mono_arches}
- nunit2
ExclusiveArch: %{mono_arches}
- nvml
ExclusiveArch: x86_64
- nwchem
ExclusiveArch: x86_64 %{ix86}
- obfs4
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- oci-kvm-hook
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- oci-register-machine
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- oci-umount
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x %{mips}
- ocitools
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- odcs
ExclusiveArch: %{ix86} x86_64
- olpc-kbdshim
ExclusiveArch: %{ix86} %{arm}
- olpc-netutils
ExclusiveArch: %{ix86} %{arm}
- olpc-powerd
ExclusiveArch: %{ix86} %{arm}
- olpc-utils
ExclusiveArch: %{ix86} %{arm}
- onedrive
ExclusiveArch: %{ldc_arches}
- opal-prd
ExclusiveArch: ppc64le
- open-vm-tools
ExclusiveArch: x86_64
ExclusiveArch: %{ix86} x86_64
- openblas
ExclusiveArch: %{openblas_arches}
- openjfx
ExclusiveArch: %{ix86} x86_64
- openlibm
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 %{power64}
- openmx
ExclusiveArch: x86_64 %{ix86}
- openni
ExclusiveArch: %{ix86} x86_64 %{arm}
- openni-primesense
ExclusiveArch: %{ix86} x86_64 %{arm}
- openssl-ibmca
ExclusiveArch: s390 s390x
- origin
ExclusiveArch: %{go_arches}
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- orion
ExclusiveArch: %{qt5_qtwebengine_arches}
- orocos-bfl
ExclusiveArch: %{ix86} x86_64
- orthorobot
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64 ppc64
- paflib
ExclusiveArch: ppc %{power64}
- pcc
ExclusiveArch: %{ix86} x86_64
- pcmciautils
ExclusiveArch: %{ix86} x86_64 ia64 ppc ppc64 %{arm}
- pdfmod
ExclusiveArch: %mono_arches
- perl-Dumbbench
ExclusiveArch: %{ix86} x86_64 noarch
- perl-Parse-DMIDecode
ExclusiveArch: %{ix86} x86_64 ia64 aarch64
- pesign
ExclusiveArch: %{ix86} x86_64 ia64 aarch64 arm
- pesign-test-app
ExclusiveArch: i686 x86_64 ia64 aarch64
- pinta
ExclusiveArch: %mono_arches
- pioneer
ExclusiveArch: %{ix86} x86_64
- playonlinux
ExclusiveArch: %{arm} aarch64 %{ix86} x86_64
- plv8
ExclusiveArch: %v8_arches
- poppler-sharp
ExclusiveArch: %mono_arches
- popub
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- powerline-go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- powerpc-utils
ExclusiveArch: ppc %{power64}
- ppc64-diag
ExclusiveArch: ppc %{power64}
- ppc64-utils
ExclusiveArch: ppc %{power64}
- publican-jboss
ExclusiveArch: i686 x86_64
- pvs-sbcl
ExclusiveArch: %{ix86} x86_64 ppc sparcv9
- python-afl
ExclusiveArch: %{ix86} x86_64
- python-etcd
ExclusiveArch: noarch %{ix86} x86_64 %{arm} aarch64 ppc64le s390x
- python-healpy
ExclusiveArch: aarch64 ppc64 ppc64le x86_64 s390x
- python-openoffice
ExclusiveArch: noarch x86_64
- python-ovirt-register
ExclusiveArch: %{ix86} x86_64
- python-pymoc
ExclusiveArch: aarch64 ppc64 ppc64le x86_64 s390x
- python-rpi-gpio
ExclusiveArch: %{arm} aarch64
- q4wine
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- qcint
ExclusiveArch: x86_64
- qclib
ExclusiveArch: s390 s390x
- qt4pas
ExclusiveArch: %{fpc_arches}
- qt5-qtwebengine
ExclusiveArch: %{qt5_qtwebengine_arches}
- quantum-espresso
ExclusiveArch: x86_64 %{ix86}
ExclusiveArch: %{openblas_arches}
- rclone
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- rear
ExclusiveArch: %ix86 x86_64 ppc ppc64 ppc64le ia64
- redhat-lsb
ExclusiveArch: %{ix86} ia64 x86_64 ppc ppc64 s390 s390x %{arm} aarch64 ppc64le
- reg
ExclusiveArch: x86_64
- renderdoc
ExclusiveArch: %{ix86} x86_64
- reptyr
ExclusiveArch: %{ix86} x86_64 %{arm}
- rescene
ExclusiveArch: %{mono_arches}
- restsharp
ExclusiveArch: %{mono_arches}
- rhythmbox-alternative-toolbar
ExclusiveArch: %{ix86} %{arm} x86_64 ppc64 ppc64le
- rkt
ExclusiveArch: x86_64 aarch64 %{arm} %{ix86}
- rssguard
ExclusiveArch: %{qt5_qtwebengine_arches}
- runc
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le %{mips} s390x
- rust
ExclusiveArch: %{rust_arches}
- rust-addr2line
ExclusiveArch: %{rust_arches}
- rust-adler32
ExclusiveArch: %{rust_arches}
- rust-aho-corasick
ExclusiveArch: %{rust_arches}
- rust-ansi_term
ExclusiveArch: %{rust_arches}
- rust-arrayref
ExclusiveArch: %{rust_arches}
- rust-arrayvec
ExclusiveArch: %{rust_arches}
- rust-atk-sys
ExclusiveArch: %{rust_arches}
- rust-atty
ExclusiveArch: %{rust_arches}
- rust-backtrace
ExclusiveArch: %{rust_arches}
- rust-backtrace-sys
ExclusiveArch: %{rust_arches}
- rust-base100
ExclusiveArch: %{rust_arches}
- rust-base64
ExclusiveArch: %{rust_arches}
- rust-bencher
ExclusiveArch: %{rust_arches}
- rust-bincode
ExclusiveArch: %{rust_arches}
- rust-bincode0.8
ExclusiveArch: %{rust_arches}
- rust-bitflags
ExclusiveArch: %{rust_arches}
- rust-bitflags0.9
ExclusiveArch: %{rust_arches}
- rust-brev
ExclusiveArch: %{rust_arches}
- rust-build_const
ExclusiveArch: %{rust_arches}
- rust-bytecount
ExclusiveArch: %{rust_arches}
- rust-byteorder
ExclusiveArch: %{rust_arches}
- rust-bytes
ExclusiveArch: %{rust_arches}
- rust-bytes0.3
ExclusiveArch: %{rust_arches}
- rust-c_vec
ExclusiveArch: %{rust_arches}
- rust-cairo-rs
ExclusiveArch: %{rust_arches}
- rust-cairo-sys-rs
ExclusiveArch: %{rust_arches}
- rust-cbindgen
ExclusiveArch: %{rust_arches}
- rust-cc
ExclusiveArch: %{rust_arches}
- rust-cfg-if
ExclusiveArch: %{rust_arches}
- rust-chrono
ExclusiveArch: %{rust_arches}
- rust-clap
ExclusiveArch: %{rust_arches}
- rust-cmake
ExclusiveArch: %{rust_arches}
- rust-coco
ExclusiveArch: %{rust_arches}
- rust-cpp_demangle
ExclusiveArch: %{rust_arches}
- rust-crc
ExclusiveArch: %{rust_arches}
- rust-crc-core
ExclusiveArch: %{rust_arches}
- rust-crossbeam
ExclusiveArch: %{rust_arches}
- rust-crypto-hash
ExclusiveArch: %{rust_arches}
- rust-cryptovec
ExclusiveArch: %{rust_arches}
- rust-ctrlc
ExclusiveArch: %{rust_arches}
- rust-curl
ExclusiveArch: %{rust_arches}
- rust-curl-sys
ExclusiveArch: %{rust_arches}
- rust-custom_derive
ExclusiveArch: %{rust_arches}
- rust-data-encoding
ExclusiveArch: %{rust_arches}
- rust-datetime
ExclusiveArch: %{rust_arches}
- rust-dbus
ExclusiveArch: %{rust_arches}
- rust-deque
ExclusiveArch: %{rust_arches}
- rust-devicemapper
ExclusiveArch: %{rust_arches}
- rust-diff
ExclusiveArch: %{rust_arches}
- rust-docopt
ExclusiveArch: %{rust_arches}
- rust-dtoa
ExclusiveArch: %{rust_arches}
- rust-edit-distance
ExclusiveArch: %{rust_arches}
- rust-either
ExclusiveArch: %{rust_arches}
- rust-encoding
ExclusiveArch: %{rust_arches}
- rust-encoding-index-japanese
ExclusiveArch: %{rust_arches}
- rust-encoding-index-korean
ExclusiveArch: %{rust_arches}
- rust-encoding-index-simpchinese
ExclusiveArch: %{rust_arches}
- rust-encoding-index-singlebyte
ExclusiveArch: %{rust_arches}
- rust-encoding-index-tradchinese
ExclusiveArch: %{rust_arches}
- rust-encoding_index_tests
ExclusiveArch: %{rust_arches}
- rust-encoding_rs
ExclusiveArch: %{rust_arches}
- rust-enum_primitive
ExclusiveArch: %{rust_arches}
- rust-env_logger
ExclusiveArch: %{rust_arches}
- rust-env_logger0.4
ExclusiveArch: %{rust_arches}
- rust-errln
ExclusiveArch: %{rust_arches}
- rust-errno
ExclusiveArch: %{rust_arches}
- rust-error-chain
ExclusiveArch: %{rust_arches}
- rust-exa
ExclusiveArch: %{rust_arches}
- rust-extprim
ExclusiveArch: %{rust_arches}
- rust-extprim_literals_macros
ExclusiveArch: %{rust_arches}
- rust-failure
ExclusiveArch: %{rust_arches}
- rust-failure_derive
ExclusiveArch: %{rust_arches}
- rust-fallible-iterator
ExclusiveArch: %{rust_arches}
- rust-fd-find
ExclusiveArch: %{rust_arches}
- rust-filetime
ExclusiveArch: %{rust_arches}
- rust-fixedbitset
ExclusiveArch: %{rust_arches}
- rust-flame
ExclusiveArch: %{rust_arches}
- rust-flate2
ExclusiveArch: %{rust_arches}
- rust-fnv
ExclusiveArch: %{rust_arches}
- rust-foreign-types
ExclusiveArch: %{rust_arches}
- rust-foreign-types-shared
ExclusiveArch: %{rust_arches}
- rust-fs2
ExclusiveArch: %{rust_arches}
- rust-futures
ExclusiveArch: %{rust_arches}
- rust-futures-cpupool
ExclusiveArch: %{rust_arches}
- rust-gdk
ExclusiveArch: %{rust_arches}
- rust-gdk-pixbuf
ExclusiveArch: %{rust_arches}
- rust-gdk-pixbuf-sys
ExclusiveArch: %{rust_arches}
- rust-gdk-sys
ExclusiveArch: %{rust_arches}
- rust-getopts
ExclusiveArch: %{rust_arches}
- rust-gimli
ExclusiveArch: %{rust_arches}
- rust-gio
ExclusiveArch: %{rust_arches}
- rust-gio-sys
ExclusiveArch: %{rust_arches}
- rust-git2
ExclusiveArch: %{rust_arches}
- rust-glib
ExclusiveArch: %{rust_arches}
- rust-glib-sys
ExclusiveArch: %{rust_arches}
- rust-glob
ExclusiveArch: %{rust_arches}
- rust-globset
ExclusiveArch: %{rust_arches}
- rust-gobject-sys
ExclusiveArch: %{rust_arches}
- rust-goblin
ExclusiveArch: %{rust_arches}
- rust-grep
ExclusiveArch: %{rust_arches}
- rust-gtk
ExclusiveArch: %{rust_arches}
- rust-gtk-rs-lgpl-docs
ExclusiveArch: %{rust_arches}
- rust-gtk-source-sys
ExclusiveArch: %{rust_arches}
- rust-gtk-sys
ExclusiveArch: %{rust_arches}
- rust-gzip-header
ExclusiveArch: %{rust_arches}
- rust-hamcrest
ExclusiveArch: %{rust_arches}
- rust-handlebars
ExclusiveArch: %{rust_arches}
- rust-heapsize
ExclusiveArch: %{rust_arches}
- rust-hex
ExclusiveArch: %{rust_arches}
- rust-home
ExclusiveArch: %{rust_arches}
- rust-httparse
ExclusiveArch: %{rust_arches}
- rust-idna
ExclusiveArch: %{rust_arches}
- rust-ignore
ExclusiveArch: %{rust_arches}
- rust-iovec
ExclusiveArch: %{rust_arches}
- rust-iso8601
ExclusiveArch: %{rust_arches}
- rust-itertools
ExclusiveArch: %{rust_arches}
- rust-itoa
ExclusiveArch: %{rust_arches}
- rust-jobserver
ExclusiveArch: %{rust_arches}
- rust-lazy_static
ExclusiveArch: %{rust_arches}
- rust-lazycell
ExclusiveArch: %{rust_arches}
- rust-libc
ExclusiveArch: %{rust_arches}
- rust-libdbus-sys
ExclusiveArch: %{rust_arches}
- rust-libgit2-sys
ExclusiveArch: %{rust_arches}
- rust-libloading
ExclusiveArch: %{rust_arches}
- rust-libssh2-sys
ExclusiveArch: %{rust_arches}
- rust-libudev
ExclusiveArch: %{rust_arches}
- rust-libudev-sys
ExclusiveArch: %{rust_arches}
- rust-libz-sys
ExclusiveArch: %{rust_arches}
- rust-linked-hash-map
ExclusiveArch: %{rust_arches}
- rust-lipsum
ExclusiveArch: %{rust_arches}
- rust-locale
ExclusiveArch: %{rust_arches}
- rust-log
ExclusiveArch: %{rust_arches}
- rust-log0.3
ExclusiveArch: %{rust_arches}
- rust-loopdev
ExclusiveArch: %{rust_arches}
- rust-lzma-sys
ExclusiveArch: %{rust_arches}
- rust-macro-attr
ExclusiveArch: %{rust_arches}
- rust-maplit
ExclusiveArch: %{rust_arches}
- rust-matches
ExclusiveArch: %{rust_arches}
- rust-md5
ExclusiveArch: %{rust_arches}
- rust-memchr
ExclusiveArch: %{rust_arches}
- rust-memmap
ExclusiveArch: %{rust_arches}
- rust-metadeps
ExclusiveArch: %{rust_arches}
- rust-mime
ExclusiveArch: %{rust_arches}
- rust-miniz-sys
ExclusiveArch: %{rust_arches}
- rust-miniz_oxide
ExclusiveArch: %{rust_arches}
- rust-miniz_oxide_c_api
ExclusiveArch: %{rust_arches}
- rust-mio
ExclusiveArch: %{rust_arches}
- rust-mio-uds
ExclusiveArch: %{rust_arches}
- rust-mnt
ExclusiveArch: %{rust_arches}
- rust-modifier
ExclusiveArch: %{rust_arches}
- rust-multimap
ExclusiveArch: %{rust_arches}
- rust-natord
ExclusiveArch: %{rust_arches}
- rust-net2
ExclusiveArch: %{rust_arches}
- rust-newtype_derive
ExclusiveArch: %{rust_arches}
- rust-nix
ExclusiveArch: %{rust_arches}
- rust-nodrop
ExclusiveArch: %{rust_arches}
- rust-nom
ExclusiveArch: %{rust_arches}
- rust-num
ExclusiveArch: %{rust_arches}
- rust-num-bigint
ExclusiveArch: %{rust_arches}
- rust-num-complex
ExclusiveArch: %{rust_arches}
- rust-num-integer
ExclusiveArch: %{rust_arches}
- rust-num-iter
ExclusiveArch: %{rust_arches}
- rust-num-rational
ExclusiveArch: %{rust_arches}
- rust-num-traits
ExclusiveArch: %{rust_arches}
- rust-num_cpus
ExclusiveArch: %{rust_arches}
- rust-number_prefix
ExclusiveArch: %{rust_arches}
- rust-object
ExclusiveArch: %{rust_arches}
- rust-openssl
ExclusiveArch: %{rust_arches}
- rust-openssl-probe
ExclusiveArch: %{rust_arches}
- rust-openssl-sys
ExclusiveArch: %{rust_arches}
- rust-ordermap
ExclusiveArch: %{rust_arches}
- rust-owning_ref
ExclusiveArch: %{rust_arches}
- rust-packaging
ExclusiveArch: %{rust_arches} noarch
- rust-pad
ExclusiveArch: %{rust_arches}
- rust-pager
ExclusiveArch: %{rust_arches}
- rust-pango
ExclusiveArch: %{rust_arches}
- rust-pango-sys
ExclusiveArch: %{rust_arches}
- rust-peeking_take_while
ExclusiveArch: %{rust_arches}
- rust-percent-encoding
ExclusiveArch: %{rust_arches}
- rust-permutate
ExclusiveArch: %{rust_arches}
- rust-permutohedron
ExclusiveArch: %{rust_arches}
- rust-pest
ExclusiveArch: %{rust_arches}
- rust-pest0.3
ExclusiveArch: %{rust_arches}
- rust-pkg-config
ExclusiveArch: %{rust_arches}
- rust-plain
ExclusiveArch: %{rust_arches}
- rust-pretty_env_logger
ExclusiveArch: %{rust_arches}
- rust-proc-macro2
ExclusiveArch: %{rust_arches}
- rust-procedural-masquerade
ExclusiveArch: %{rust_arches}
- rust-pulldown-cmark
ExclusiveArch: %{rust_arches}
- rust-quick-error
ExclusiveArch: %{rust_arches}
- rust-quickcheck
ExclusiveArch: %{rust_arches}
- rust-quickersort
ExclusiveArch: %{rust_arches}
- rust-quote
ExclusiveArch: %{rust_arches}
- rust-rand
ExclusiveArch: %{rust_arches}
- rust-rayon
ExclusiveArch: %{rust_arches}
- rust-rayon-core
ExclusiveArch: %{rust_arches}
- rust-regex
ExclusiveArch: %{rust_arches}
- rust-regex-syntax
ExclusiveArch: %{rust_arches}
- rust-relay
ExclusiveArch: %{rust_arches}
- rust-ripgrep
ExclusiveArch: %{rust_arches}
- rust-rustc-demangle
ExclusiveArch: %{rust_arches}
- rust-rustc-serialize
ExclusiveArch: %{rust_arches}
- rust-rustc-test
ExclusiveArch: %{rust_arches}
- rust-rustc_version
ExclusiveArch: %{rust_arches}
- rust-rustdoc-stripper
ExclusiveArch: %{rust_arches}
- rust-rustfilt
ExclusiveArch: %{rust_arches}
- rust-rustfmt
ExclusiveArch: %{rust_arches}
- rust-safemem
ExclusiveArch: %{rust_arches}
- rust-same-file
ExclusiveArch: %{rust_arches}
- rust-scoped-tls
ExclusiveArch: %{rust_arches}
- rust-scoped_threadpool
ExclusiveArch: %{rust_arches}
- rust-scopeguard
ExclusiveArch: %{rust_arches}
- rust-scroll
ExclusiveArch: %{rust_arches}
- rust-scroll_derive
ExclusiveArch: %{rust_arches}
- rust-seahash
ExclusiveArch: %{rust_arches}
- rust-semver
ExclusiveArch: %{rust_arches}
- rust-semver-parser
ExclusiveArch: %{rust_arches}
- rust-serde
ExclusiveArch: %{rust_arches}
- rust-serde0.8
ExclusiveArch: %{rust_arches}
- rust-serde_bytes
ExclusiveArch: %{rust_arches}
- rust-serde_cbor
ExclusiveArch: %{rust_arches}
- rust-serde_derive
ExclusiveArch: %{rust_arches}
- rust-serde_derive_internals
ExclusiveArch: %{rust_arches}
- rust-serde_ignored
ExclusiveArch: %{rust_arches}
- rust-serde_json
ExclusiveArch: %{rust_arches}
- rust-serde_json0.8
ExclusiveArch: %{rust_arches}
- rust-serde_test
ExclusiveArch: %{rust_arches}
- rust-serde_urlencoded
ExclusiveArch: %{rust_arches}
- rust-serde_yaml
ExclusiveArch: %{rust_arches}
- rust-sha1
ExclusiveArch: %{rust_arches}
- rust-shell-escape
ExclusiveArch: %{rust_arches}
- rust-shlex
ExclusiveArch: %{rust_arches}
- rust-siphasher
ExclusiveArch: %{rust_arches}
- rust-slab
ExclusiveArch: %{rust_arches}
- rust-slab0.3
ExclusiveArch: %{rust_arches}
- rust-smallvec
ExclusiveArch: %{rust_arches}
- rust-socket2
ExclusiveArch: %{rust_arches}
- rust-spin
ExclusiveArch: %{rust_arches}
- rust-spmc
ExclusiveArch: %{rust_arches}
- rust-stable_deref_trait
ExclusiveArch: %{rust_arches}
- rust-strings
ExclusiveArch: %{rust_arches}
- rust-strsim
ExclusiveArch: %{rust_arches}
- rust-syn
ExclusiveArch: %{rust_arches}
- rust-synom
ExclusiveArch: %{rust_arches}
- rust-synstructure
ExclusiveArch: %{rust_arches}
- rust-syntex_errors
ExclusiveArch: %{rust_arches}
- rust-syntex_pos
ExclusiveArch: %{rust_arches}
- rust-syntex_syntax
ExclusiveArch: %{rust_arches}
- rust-sys-info
ExclusiveArch: %{rust_arches}
- rust-tar
ExclusiveArch: %{rust_arches}
- rust-tempdir
ExclusiveArch: %{rust_arches}
- rust-tempfile
ExclusiveArch: %{rust_arches}
- rust-term
ExclusiveArch: %{rust_arches}
- rust-term_grid
ExclusiveArch: %{rust_arches}
- rust-term_size
ExclusiveArch: %{rust_arches}
- rust-termcolor
ExclusiveArch: %{rust_arches}
- rust-termion
ExclusiveArch: %{rust_arches}
- rust-test-assembler
ExclusiveArch: %{rust_arches}
- rust-textwrap
ExclusiveArch: %{rust_arches}
- rust-thread-id
ExclusiveArch: %{rust_arches}
- rust-thread_local
ExclusiveArch: %{rust_arches}
- rust-time
ExclusiveArch: %{rust_arches}
- rust-tokei
ExclusiveArch: %{rust_arches}
- rust-tokio-core
ExclusiveArch: %{rust_arches}
- rust-tokio-io
ExclusiveArch: %{rust_arches}
- rust-tokio-process
ExclusiveArch: %{rust_arches}
- rust-tokio-signal
ExclusiveArch: %{rust_arches}
- rust-toml
ExclusiveArch: %{rust_arches}
- rust-traitobject
ExclusiveArch: %{rust_arches}
- rust-typed-arena
ExclusiveArch: %{rust_arches}
- rust-unicase
ExclusiveArch: %{rust_arches}
- rust-unicode-bidi
ExclusiveArch: %{rust_arches}
- rust-unicode-normalization
ExclusiveArch: %{rust_arches}
- rust-unicode-segmentation
ExclusiveArch: %{rust_arches}
- rust-unicode-width
ExclusiveArch: %{rust_arches}
- rust-unicode-xid
ExclusiveArch: %{rust_arches}
- rust-unindent
ExclusiveArch: %{rust_arches}
- rust-unreachable
ExclusiveArch: %{rust_arches}
- rust-unsafe-any
ExclusiveArch: %{rust_arches}
- rust-untrusted
ExclusiveArch: %{rust_arches}
- rust-url
ExclusiveArch: %{rust_arches}
- rust-users
ExclusiveArch: %{rust_arches}
- rust-utf8-ranges
ExclusiveArch: %{rust_arches}
- rust-uuid
ExclusiveArch: %{rust_arches}
- rust-vec_map
ExclusiveArch: %{rust_arches}
- rust-version-sync
ExclusiveArch: %{rust_arches}
- rust-version_check
ExclusiveArch: %{rust_arches}
- rust-void
ExclusiveArch: %{rust_arches}
- rust-wait-timeout
ExclusiveArch: %{rust_arches}
- rust-walkdir
ExclusiveArch: %{rust_arches}
- rust-which
ExclusiveArch: %{rust_arches}
- rust-xattr
ExclusiveArch: %{rust_arches}
- rust-xz2
ExclusiveArch: %{rust_arches}
- rust-yaml-rust
ExclusiveArch: %{rust_arches}
- rust-yaml-rust0.3
ExclusiveArch: %{rust_arches}
- rust-yes
ExclusiveArch: %{rust_arches}
- rust-yubibomb
ExclusiveArch: %{rust_arches}
- rust-zoneinfo_compiled
ExclusiveArch: %{rust_arches}
- s390utils
ExclusiveArch: s390 s390x
- sagemath
ExclusiveArch: aarch64 %{arm} %{ix86} x86_64 ppc sparcv9
- sbcl
ExclusiveArch: %{arm} %{ix86} x86_64 ppc sparcv9 aarch64
- sbd
ExclusiveArch: i686 x86_64 s390x
- seabios
ExclusiveArch: x86_64
- seamonkey
ExclusiveArch: %{ix86} x86_64
- servicelog
ExclusiveArch: ppc %{power64}
- sgabios
ExclusiveArch: %{ix86} x86_64
- sharpfont
ExclusiveArch: %mono_arches
- sharpziplib
ExclusiveArch: %{mono_arches}
- shim
ExclusiveArch: x86_64
- shim-signed
ExclusiveArch: x86_64 aarch64
- shim-unsigned-aarch64
ExclusiveArch: aarch64
- shim-unsigned-x64
ExclusiveArch: x86_64
- sigul
ExclusiveArch: x86_64
- skychart
ExclusiveArch: %{fpc_arches}
- slapi-nis
ExclusiveArch: x86_64 %{ix86}
- smuxi
ExclusiveArch: %{ix86} x86_64 %{arm} ppc64le
- snapd
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x
- source-to-image
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- sparkleshare
ExclusiveArch: %{mono_arches}
- spicctrl
ExclusiveArch: %{ix86} x86_64
- spice
ExclusiveArch: x86_64
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- spice-xpi
ExclusiveArch: i686 x86_64 armv6l armv7l armv7hl aarch64
- spring
ExclusiveArch: %{ix86} x86_64
- springlobby
ExclusiveArch: %{ix86} x86_64
- startdde
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- statsd
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- stratis-cli
ExclusiveArch: %{rust_arches} noarch
- stratisd
ExclusiveArch: %{rust_arches}
- stripesnoop
ExclusiveArch: %{ix86} x86_64
- supermin
ExclusiveArch: x86_64
- syncthing
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- sysbench
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips}
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64
- syslinux
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{ix86} x86_64
- taglib-sharp
ExclusiveArch: %{mono_arches}
- tarantool
ExclusiveArch: %{ix86} x86_64 armv7hl armv7hnl aarch64
- tboot
ExclusiveArch: %{ix86} x86_64
- templates_parser
ExclusiveArch: %GPRbuild_arches
- ternimal
ExclusiveArch: %{rust_arches}
- themonospot-base
ExclusiveArch: %mono_arches
- themonospot-console
ExclusiveArch: %mono_arches
- themonospot-gui-gtk
ExclusiveArch: %mono_arches
- themonospot-plugin-avi
ExclusiveArch: %mono_arches
- themonospot-plugin-mkv
ExclusiveArch: %mono_arches
- thermald
ExclusiveArch: %{ix86} x86_64
- thunderbird-enigmail
ExclusiveArch: %{ix86} %{arm} ppc64 ppc64le s390x x86_64 noarch
- tilix
ExclusiveArch: %{ldc_arches}
- tmux-top
ExclusiveArch: %{go_arches}
- tomboy
ExclusiveArch: %{mono_arches}
- tpm2-abrmd
ExclusiveArch: %{ix86} x86_64
- tpm2-tools
ExclusiveArch: %{ix86} x86_64
- tpm2-tss
ExclusiveArch: %{ix86} x86_64
- tuned
ExclusiveArch: %{ix86} x86_64
- uClibc
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips}
- ucx
ExclusiveArch: aarch64 ppc64le x86_64
- ugene
ExclusiveArch: %{ix86} x86_64
- uglify-js
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- uglify-js1
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- unetbootin
ExclusiveArch: %{ix86} x86_64
- v8
ExclusiveArch: %{ix86} x86_64 %{arm} ppc mipsel mips64el
- v8-314
ExclusiveArch: %{ix86} x86_64 %{arm} mips mipsel ppc ppc64
- valgrind
ExclusiveArch: %{ix86} x86_64 ppc ppc64 ppc64le s390x armv7hl aarch64
- vboot-utils
ExclusiveArch: %{arm} aarch64 %{ix86} x86_64
- vdsm
ExclusiveArch: x86_64 %{power64} aarch64
- vim-go
ExclusiveArch: %{?golang_arches}%{!?golang_arches:%{ix86} x86_64 %{arm}}
- virtualplanet
ExclusiveArch: %{fpc_arches}
- vrq
ExclusiveArch: %{ix86} x86_64
- warsow
ExclusiveArch: %{ix86} x86_64 %{arm}
- warsow-data
ExclusiveArch: %{ix86} x86_64 %{arm}
- webkit-sharp
ExclusiveArch: %mono_arches
- webkit2-sharp
ExclusiveArch: %mono_arches
- wine
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
ExclusiveArch: %{ix86} %{arm}
- winetricks
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- wiredtiger
ExclusiveArch: x86_64 aarch64 ppc64le
- wraplinux
ExclusiveArch: %{ix86} x86_64
- wxMaxima
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc sparcv9
- x2goclient
ExclusiveArch: x86_64
- x86info
ExclusiveArch: %{ix86} x86_64
- xen
ExclusiveArch: %{ix86} x86_64 armv7hl aarch64
- xmlada
ExclusiveArch: %{GPRbuild_arches}
- xorg-x11-drv-armsoc
ExclusiveArch: %{arm} aarch64
- xorg-x11-drv-geode
ExclusiveArch: %{ix86}
- xorg-x11-drv-intel
ExclusiveArch: %{ix86} x86_64 ia64
- xorg-x11-drv-omap
ExclusiveArch: %{arm}
- xorg-x11-drv-openchrome
ExclusiveArch: %{ix86} x86_64
- xorg-x11-drv-opentegra
ExclusiveArch: %{arm}
- xorg-x11-drv-vesa
ExclusiveArch: %{ix86} x86_64
- xorg-x11-drv-vmware
ExclusiveArch: %{ix86} x86_64 ia64
- xsp
ExclusiveArch: %mono_arches
- xsupplicant
ExclusiveArch: %{ix86} x86_64 ppc %{power64}
- ycssmin
ExclusiveArch: %{nodejs_arches} noarch
- zeromq-ada
ExclusiveArch: %{GNAT_arches}
- zlib-ada
ExclusiveArch: %{GNAT_arches}
6 years, 3 months
Architecture specific change in rpms/gromacs.git
by githook-noreply@fedoraproject.org
The package rpms/gromacs.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/gromacs.git/commit/?id=01913debab....
Change:
-%ifnarch s390 s390x
Thanks.
Full change:
============
commit 4472f9b5ebdcff14367a44c4cde1e532c1751693
Author: Christoph Junghans <junghans(a)votca.org>
Date: Fri Jan 19 14:36:01 2018 -0700
Update to 2018
diff --git a/.gitignore b/.gitignore
index 6051954..35addfe 100644
--- a/.gitignore
+++ b/.gitignore
@@ -51,3 +51,6 @@ manual-4.0.pdf
/gromacs-2018-rc1.tar.gz
/manual-2018-rc1.pdf
/regressiontests-2018-rc1.tar.gz
+/gromacs-2018.tar.gz
+/regressiontests-2018.tar.gz
+/manual-2018.pdf
diff --git a/43a0002.diff b/43a0002.diff
deleted file mode 100644
index 38a816a..0000000
--- a/43a0002.diff
+++ /dev/null
@@ -1,1603 +0,0 @@
-From 43a0002e84ecbf060dc87559891cf9e70b69cb0e Mon Sep 17 00:00:00 2001
-From: Roland Schulz <roland.schulz(a)intel.com>
-Date: Wed, 27 Dec 2017 10:59:04 -0800
-Subject: [PATCH] Replace GMX_ALIGNED with alignas and SIMD alignment define
-
-This allows each platform to define its required or
-preferred SIMD alignment, and we avoid using alignments
-larger than what might be supported on each architecture.
-Also fix overalignment in pairs.
-
-Fixes #2365
-
-Change-Id: I4793adf31d186eade8a1fd8c920ab75c685ad53f
----
-
-diff --git a/src/gromacs/ewald/pme-gather.cpp b/src/gromacs/ewald/pme-gather.cpp
-index 2c9e961..edaf535 100644
---- a/src/gromacs/ewald/pme-gather.cpp
-+++ b/src/gromacs/ewald/pme-gather.cpp
-@@ -197,7 +197,7 @@
- *S0 = load4U(data-offset);
- *S1 = load4U(data-offset+4);
- #else
-- GMX_ALIGNED(real, GMX_SIMD4_WIDTH) buf_aligned[GMX_SIMD4_WIDTH*2];
-+ alignas(GMX_SIMD_ALIGNMENT) real buf_aligned[GMX_SIMD4_WIDTH*2];
- /* Copy data to an aligned buffer */
- for (int i = 0; i < order; i++)
- {
-diff --git a/src/gromacs/ewald/pme-spline-work.cpp b/src/gromacs/ewald/pme-spline-work.cpp
-index 5859a34..cb4a625 100644
---- a/src/gromacs/ewald/pme-spline-work.cpp
-+++ b/src/gromacs/ewald/pme-spline-work.cpp
-@@ -54,7 +54,7 @@
- pme_spline_work *work;
-
- #ifdef PME_SIMD4_SPREAD_GATHER
-- GMX_ALIGNED(real, GMX_SIMD4_WIDTH) tmp[GMX_SIMD4_WIDTH*2];
-+ alignas(GMX_SIMD_ALIGNMENT) real tmp[GMX_SIMD4_WIDTH*2];
- Simd4Real zero_S;
- Simd4Real real_mask_S0, real_mask_S1;
- int of, i;
-diff --git a/src/gromacs/ewald/pme-spread.cpp b/src/gromacs/ewald/pme-spread.cpp
-index b3db6c3..f38efc8 100644
---- a/src/gromacs/ewald/pme-spread.cpp
-+++ b/src/gromacs/ewald/pme-spread.cpp
-@@ -329,7 +329,7 @@
- int offx, offy, offz;
-
- #if defined PME_SIMD4_SPREAD_GATHER && !defined PME_SIMD4_UNALIGNED
-- GMX_ALIGNED(real, GMX_SIMD4_WIDTH) thz_aligned[GMX_SIMD4_WIDTH*2];
-+ alignas(GMX_SIMD_ALIGNMENT) real thz_aligned[GMX_SIMD4_WIDTH*2];
- #endif
-
- pnx = pmegrid->s[XX];
-diff --git a/src/gromacs/listed-forces/bonded.cpp b/src/gromacs/listed-forces/bonded.cpp
-index c9d7b45..425e744 100644
---- a/src/gromacs/listed-forces/bonded.cpp
-+++ b/src/gromacs/listed-forces/bonded.cpp
-@@ -982,10 +982,10 @@
- const int nfa1 = 4;
- int i, iu, s;
- int type;
-- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) ai[GMX_SIMD_REAL_WIDTH];
-- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) aj[GMX_SIMD_REAL_WIDTH];
-- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) ak[GMX_SIMD_REAL_WIDTH];
-- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) coeff[2*GMX_SIMD_REAL_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) std::int32_t ai[GMX_SIMD_REAL_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) std::int32_t aj[GMX_SIMD_REAL_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) std::int32_t ak[GMX_SIMD_REAL_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) real coeff[2*GMX_SIMD_REAL_WIDTH];
- SimdReal deg2rad_S(DEG2RAD);
- SimdReal xi_S, yi_S, zi_S;
- SimdReal xj_S, yj_S, zj_S;
-@@ -1005,7 +1005,7 @@
- SimdReal cik_S, cii_S, ckk_S;
- SimdReal f_ix_S, f_iy_S, f_iz_S;
- SimdReal f_kx_S, f_ky_S, f_kz_S;
-- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) pbc_simd[9*GMX_SIMD_REAL_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) real pbc_simd[9*GMX_SIMD_REAL_WIDTH];
-
- set_pbc_simd(pbc, pbc_simd);
-
-@@ -1309,11 +1309,11 @@
- int gmx_unused *global_atom_index)
- {
- constexpr int nfa1 = 4;
-- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) ai[GMX_SIMD_REAL_WIDTH];
-- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) aj[GMX_SIMD_REAL_WIDTH];
-- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) ak[GMX_SIMD_REAL_WIDTH];
-- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) coeff[4*GMX_SIMD_REAL_WIDTH];
-- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) pbc_simd[9*GMX_SIMD_REAL_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) std::int32_t ai[GMX_SIMD_REAL_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) std::int32_t aj[GMX_SIMD_REAL_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) std::int32_t ak[GMX_SIMD_REAL_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) real coeff[4*GMX_SIMD_REAL_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) real pbc_simd[9*GMX_SIMD_REAL_WIDTH];
-
- set_pbc_simd(pbc, pbc_simd);
-
-@@ -1995,11 +1995,11 @@
- const int nfa1 = 5;
- int i, iu, s;
- int type;
-- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) ai[GMX_SIMD_REAL_WIDTH];
-- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) aj[GMX_SIMD_REAL_WIDTH];
-- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) ak[GMX_SIMD_REAL_WIDTH];
-- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) al[GMX_SIMD_REAL_WIDTH];
-- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) buf[3*GMX_SIMD_REAL_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) std::int32_t ai[GMX_SIMD_REAL_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) std::int32_t aj[GMX_SIMD_REAL_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) std::int32_t ak[GMX_SIMD_REAL_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) std::int32_t al[GMX_SIMD_REAL_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) real buf[3*GMX_SIMD_REAL_WIDTH];
- real *cp, *phi0, *mult;
- SimdReal deg2rad_S(DEG2RAD);
- SimdReal p_S, q_S;
-@@ -2011,7 +2011,7 @@
- SimdReal sin_S, cos_S;
- SimdReal mddphi_S;
- SimdReal sf_i_S, msf_l_S;
-- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) pbc_simd[9*GMX_SIMD_REAL_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) real pbc_simd[9*GMX_SIMD_REAL_WIDTH];
-
- /* Extract aligned pointer for parameters and variables */
- cp = buf + 0*GMX_SIMD_REAL_WIDTH;
-@@ -2110,11 +2110,11 @@
- const int nfa1 = 5;
- int i, iu, s, j;
- int type;
-- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) ai[GMX_SIMD_REAL_WIDTH];
-- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) aj[GMX_SIMD_REAL_WIDTH];
-- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) ak[GMX_SIMD_REAL_WIDTH];
-- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) al[GMX_SIMD_REAL_WIDTH];
-- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) parm[NR_RBDIHS*GMX_SIMD_REAL_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) std::int32_t ai[GMX_SIMD_REAL_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) std::int32_t aj[GMX_SIMD_REAL_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) std::int32_t ak[GMX_SIMD_REAL_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) std::int32_t al[GMX_SIMD_REAL_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) real parm[NR_RBDIHS*GMX_SIMD_REAL_WIDTH];
-
- SimdReal p_S, q_S;
- SimdReal phi_S;
-@@ -2125,7 +2125,7 @@
- SimdReal parm_S, c_S;
- SimdReal sin_S, cos_S;
- SimdReal sf_i_S, msf_l_S;
-- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) pbc_simd[9*GMX_SIMD_REAL_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) real pbc_simd[9*GMX_SIMD_REAL_WIDTH];
-
- SimdReal pi_S(M_PI);
- SimdReal one_S(1.0);
-diff --git a/src/gromacs/listed-forces/pairs.cpp b/src/gromacs/listed-forces/pairs.cpp
-index 6d0d179..dd4b061 100644
---- a/src/gromacs/listed-forces/pairs.cpp
-+++ b/src/gromacs/listed-forces/pairs.cpp
-@@ -550,11 +550,15 @@
- T twelve(12);
- T ef(scale_factor);
-
-- const int align = 16;
-- GMX_ASSERT(pack_size <= align, "align should be increased");
-- GMX_ALIGNED(int, align) ai[pack_size];
-- GMX_ALIGNED(int, align) aj[pack_size];
-- GMX_ALIGNED(real, align) coeff[3*pack_size];
-+#if GMX_SIMD_HAVE_REAL
-+ alignas(GMX_SIMD_ALIGNMENT) std::int32_t ai[pack_size];
-+ alignas(GMX_SIMD_ALIGNMENT) std::int32_t aj[pack_size];
-+ alignas(GMX_SIMD_ALIGNMENT) real coeff[3*pack_size];
-+#else
-+ std::int32_t ai[pack_size];
-+ std::int32_t aj[pack_size];
-+ real coeff[3*pack_size];
-+#endif
-
- /* nbonds is #pairs*nfa1, here we step pack_size pairs */
- for (int i = 0; i < nbonds; i += pack_size*nfa1)
-@@ -658,7 +662,7 @@
- * at once for the angles and dihedrals as well.
- */
- #if GMX_SIMD
-- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) pbc_simd[9*GMX_SIMD_REAL_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) real pbc_simd[9*GMX_SIMD_REAL_WIDTH];
- set_pbc_simd(pbc, pbc_simd);
-
- do_pairs_simple<SimdReal, GMX_SIMD_REAL_WIDTH,
-diff --git a/src/gromacs/mdlib/clincs.cpp b/src/gromacs/mdlib/clincs.cpp
-index 336e75b..6b27251 100644
---- a/src/gromacs/mdlib/clincs.cpp
-+++ b/src/gromacs/mdlib/clincs.cpp
-@@ -441,7 +441,7 @@
- {
- assert(b0 % GMX_SIMD_REAL_WIDTH == 0);
-
-- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) offset2[GMX_SIMD_REAL_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) std::int32_t offset2[GMX_SIMD_REAL_WIDTH];
-
- for (int i = 0; i < GMX_SIMD_REAL_WIDTH; i++)
- {
-@@ -454,8 +454,8 @@
- SimdReal x1_S, y1_S, z1_S;
- SimdReal rx_S, ry_S, rz_S, n2_S, il_S;
- SimdReal fx_S, fy_S, fz_S, ip_S, rhs_S;
-- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) offset0[GMX_SIMD_REAL_WIDTH];
-- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) offset1[GMX_SIMD_REAL_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) std::int32_t offset0[GMX_SIMD_REAL_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) std::int32_t offset1[GMX_SIMD_REAL_WIDTH];
-
- for (int i = 0; i < GMX_SIMD_REAL_WIDTH; i++)
- {
-@@ -537,7 +537,7 @@
- * The only difference is that we always call pbc code, as with SIMD
- * the overhead of pbc computation (when not needed) is small.
- */
-- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) pbc_simd[9*GMX_SIMD_REAL_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) real pbc_simd[9*GMX_SIMD_REAL_WIDTH];
-
- /* Convert the pbc struct for SIMD */
- set_pbc_simd(pbc, pbc_simd);
-@@ -695,7 +695,7 @@
- real * gmx_restrict sol)
- {
- assert(b0 % GMX_SIMD_REAL_WIDTH == 0);
-- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) offset2[GMX_SIMD_REAL_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) std::int32_t offset2[GMX_SIMD_REAL_WIDTH];
-
- for (int i = 0; i < GMX_SIMD_REAL_WIDTH; i++)
- {
-@@ -708,8 +708,8 @@
- SimdReal x1_S, y1_S, z1_S;
- SimdReal rx_S, ry_S, rz_S, n2_S, il_S;
- SimdReal rxp_S, ryp_S, rzp_S, ip_S, rhs_S;
-- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) offset0[GMX_SIMD_REAL_WIDTH];
-- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) offset1[GMX_SIMD_REAL_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) std::int32_t offset0[GMX_SIMD_REAL_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) std::int32_t offset1[GMX_SIMD_REAL_WIDTH];
-
- for (int i = 0; i < GMX_SIMD_REAL_WIDTH; i++)
- {
-@@ -835,8 +835,8 @@
- SimdReal x1_S, y1_S, z1_S;
- SimdReal rx_S, ry_S, rz_S, n2_S;
- SimdReal len_S, len2_S, dlen2_S, lc_S, blc_S;
-- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) offset0[GMX_SIMD_REAL_WIDTH];
-- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) offset1[GMX_SIMD_REAL_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) std::int32_t offset0[GMX_SIMD_REAL_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) std::int32_t offset1[GMX_SIMD_REAL_WIDTH];
-
- for (int i = 0; i < GMX_SIMD_REAL_WIDTH; i++)
- {
-@@ -923,7 +923,7 @@
- * The only difference is that we always call pbc code, as with SIMD
- * the overhead of pbc computation (when not needed) is small.
- */
-- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) pbc_simd[9*GMX_SIMD_REAL_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) real pbc_simd[9*GMX_SIMD_REAL_WIDTH];
-
- /* Convert the pbc struct for SIMD */
- set_pbc_simd(pbc, pbc_simd);
-diff --git a/src/gromacs/mdlib/csettle.cpp b/src/gromacs/mdlib/csettle.cpp
-index 34a011a..d65405c 100644
---- a/src/gromacs/mdlib/csettle.cpp
-+++ b/src/gromacs/mdlib/csettle.cpp
-@@ -850,7 +850,7 @@
- if (settled->bUseSimd)
- {
- /* Convert the pbc struct for SIMD */
-- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) pbcSimd[9*GMX_SIMD_REAL_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) real pbcSimd[9*GMX_SIMD_REAL_WIDTH];
- set_pbc_simd(pbc, pbcSimd);
-
- settleTemplateWrapper<SimdReal, SimdBool, GMX_SIMD_REAL_WIDTH,
-diff --git a/src/gromacs/mdlib/nbnxn_kernels/simd_2xnn/nbnxn_kernel_simd_2xnn_inner.h b/src/gromacs/mdlib/nbnxn_kernels/simd_2xnn/nbnxn_kernel_simd_2xnn_inner.h
-index 3dfc89b..ff96857 100644
---- a/src/gromacs/mdlib/nbnxn_kernels/simd_2xnn/nbnxn_kernel_simd_2xnn_inner.h
-+++ b/src/gromacs/mdlib/nbnxn_kernels/simd_2xnn/nbnxn_kernel_simd_2xnn_inner.h
-@@ -279,7 +279,7 @@
- #ifdef COUNT_PAIRS
- {
- int i, j;
-- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) tmp[GMX_SIMD_REAL_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) real tmp[GMX_SIMD_REAL_WIDTH];
-
- for (i = 0; i < UNROLLI; i += 2)
- {
-diff --git a/src/gromacs/mdlib/nbnxn_kernels/simd_2xnn/nbnxn_kernel_simd_2xnn_outer.h b/src/gromacs/mdlib/nbnxn_kernels/simd_2xnn/nbnxn_kernel_simd_2xnn_outer.h
-index 2aa9944..b2960bc 100644
---- a/src/gromacs/mdlib/nbnxn_kernels/simd_2xnn/nbnxn_kernel_simd_2xnn_outer.h
-+++ b/src/gromacs/mdlib/nbnxn_kernels/simd_2xnn/nbnxn_kernel_simd_2xnn_outer.h
-@@ -138,7 +138,7 @@
- SimdReal hsig_i_S2, seps_i_S2;
- #else
- #ifdef FIX_LJ_C
-- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) pvdw_c6[2*UNROLLI*UNROLLJ];
-+ alignas(GMX_SIMD_ALIGNMENT) real pvdw_c6[2*UNROLLI*UNROLLJ];
- real *pvdw_c12 = pvdw_c6 + UNROLLI*UNROLLJ;
- #endif
-
-diff --git a/src/gromacs/mdlib/nbnxn_kernels/simd_4xn/nbnxn_kernel_simd_4xn_inner.h b/src/gromacs/mdlib/nbnxn_kernels/simd_4xn/nbnxn_kernel_simd_4xn_inner.h
-index f0b0b7a..782a3fb 100644
---- a/src/gromacs/mdlib/nbnxn_kernels/simd_4xn/nbnxn_kernel_simd_4xn_inner.h
-+++ b/src/gromacs/mdlib/nbnxn_kernels/simd_4xn/nbnxn_kernel_simd_4xn_inner.h
-@@ -363,7 +363,7 @@
- #ifdef COUNT_PAIRS
- {
- int i, j;
-- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) tmp[2*GMX_SIMD_REAL_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) real tmp[2*GMX_SIMD_REAL_WIDTH];
-
- for (i = 0; i < UNROLLI; i++)
- {
-diff --git a/src/gromacs/mdlib/nbnxn_kernels/simd_4xn/nbnxn_kernel_simd_4xn_outer.h b/src/gromacs/mdlib/nbnxn_kernels/simd_4xn/nbnxn_kernel_simd_4xn_outer.h
-index 167379c..8ca5126 100644
---- a/src/gromacs/mdlib/nbnxn_kernels/simd_4xn/nbnxn_kernel_simd_4xn_outer.h
-+++ b/src/gromacs/mdlib/nbnxn_kernels/simd_4xn/nbnxn_kernel_simd_4xn_outer.h
-@@ -334,7 +334,7 @@
- x = nbat->x;
-
- #ifdef FIX_LJ_C
-- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) pvdw_c6[2*UNROLLI*UNROLLJ];
-+ alignas(GMX_SIMD_ALIGNMENT) real pvdw_c6[2*UNROLLI*UNROLLJ];
- real *pvdw_c12 = pvdw_c6 + UNROLLI*UNROLLJ;
-
- for (int jp = 0; jp < UNROLLJ; jp++)
-diff --git a/src/gromacs/simd/impl_arm_neon/impl_arm_neon_definitions.h b/src/gromacs/simd/impl_arm_neon/impl_arm_neon_definitions.h
-index 2800f1f..388c446 100644
---- a/src/gromacs/simd/impl_arm_neon/impl_arm_neon_definitions.h
-+++ b/src/gromacs/simd/impl_arm_neon/impl_arm_neon_definitions.h
-@@ -75,6 +75,7 @@
- #define GMX_SIMD_FINT32_WIDTH 4
- #undef GMX_SIMD_DINT32_WIDTH
- #define GMX_SIMD4_WIDTH 4
-+#define GMX_SIMD_ALIGNMENT 16 // Bytes (4*single)
- #define GMX_SIMD_RSQRT_BITS 8
- #define GMX_SIMD_RCP_BITS 8
-
-diff --git a/src/gromacs/simd/impl_arm_neon/impl_arm_neon_util_float.h b/src/gromacs/simd/impl_arm_neon/impl_arm_neon_util_float.h
-index d2919f4..2648fef 100644
---- a/src/gromacs/simd/impl_arm_neon/impl_arm_neon_util_float.h
-+++ b/src/gromacs/simd/impl_arm_neon/impl_arm_neon_util_float.h
-@@ -1,7 +1,7 @@
- /*
- * This file is part of the GROMACS molecular simulation package.
- *
-- * Copyright (c) 2014,2015,2016, by the GROMACS development team, led by
-+ * Copyright (c) 2014,2015,2016,2017, by the GROMACS development team, led by
- * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
- * and including many others, as listed in the AUTHORS file in the
- * top-level source directory and at http://www.gromacs.org.
-@@ -286,7 +286,7 @@
- SimdFloat * v2,
- SimdFloat * v3)
- {
-- GMX_ALIGNED(int, GMX_SIMD_FINT32_WIDTH) ioffset[GMX_SIMD_FINT32_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) std::int32_t ioffset[GMX_SIMD_FINT32_WIDTH];
-
- assert(std::size_t(base) % 16 == 0);
- assert(align % 4 == 0);
-@@ -302,7 +302,7 @@
- SimdFloat * v0,
- SimdFloat * v1)
- {
-- GMX_ALIGNED(int, GMX_SIMD_FINT32_WIDTH) ioffset[GMX_SIMD_FINT32_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) std::int32_t ioffset[GMX_SIMD_FINT32_WIDTH];
-
- store(ioffset, offset);
- gatherLoadTranspose<align>(base, ioffset, v0, v1);
-@@ -317,7 +317,7 @@
- SimdFloat * v0,
- SimdFloat * v1)
- {
-- GMX_ALIGNED(int, GMX_SIMD_FINT32_WIDTH) ioffset[GMX_SIMD_FINT32_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) std::int32_t ioffset[GMX_SIMD_FINT32_WIDTH];
-
- store(ioffset, offset);
- v0->simdInternal_ = vcombine_f32(vld1_f32( base + align * ioffset[0] ),
-diff --git a/src/gromacs/simd/impl_arm_neon_asimd/impl_arm_neon_asimd_definitions.h b/src/gromacs/simd/impl_arm_neon_asimd/impl_arm_neon_asimd_definitions.h
-index ab1a778..c7b807d 100644
---- a/src/gromacs/simd/impl_arm_neon_asimd/impl_arm_neon_asimd_definitions.h
-+++ b/src/gromacs/simd/impl_arm_neon_asimd/impl_arm_neon_asimd_definitions.h
-@@ -1,7 +1,7 @@
- /*
- * This file is part of the GROMACS molecular simulation package.
- *
-- * Copyright (c) 2014,2015, by the GROMACS development team, led by
-+ * Copyright (c) 2014,2015,2017, by the GROMACS development team, led by
- * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
- * and including many others, as listed in the AUTHORS file in the
- * top-level source directory and at http://www.gromacs.org.
-@@ -77,6 +77,7 @@
- #define GMX_SIMD_FINT32_WIDTH 4
- #define GMX_SIMD_DINT32_WIDTH 2
- #define GMX_SIMD4_WIDTH 4
-+#define GMX_SIMD_ALIGNMENT 16 // Bytes (4*single or 2*double)
- #define GMX_SIMD_RSQRT_BITS 8
- #define GMX_SIMD_RCP_BITS 8
-
-diff --git a/src/gromacs/simd/impl_arm_neon_asimd/impl_arm_neon_asimd_util_double.h b/src/gromacs/simd/impl_arm_neon_asimd/impl_arm_neon_asimd_util_double.h
-index 45abcbb..ec54d0e 100644
---- a/src/gromacs/simd/impl_arm_neon_asimd/impl_arm_neon_asimd_util_double.h
-+++ b/src/gromacs/simd/impl_arm_neon_asimd/impl_arm_neon_asimd_util_double.h
-@@ -1,7 +1,7 @@
- /*
- * This file is part of the GROMACS molecular simulation package.
- *
-- * Copyright (c) 2014,2015, by the GROMACS development team, led by
-+ * Copyright (c) 2014,2015,2017, by the GROMACS development team, led by
- * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
- * and including many others, as listed in the AUTHORS file in the
- * top-level source directory and at http://www.gromacs.org.
-@@ -225,7 +225,7 @@
- SimdDouble * v2,
- SimdDouble * v3)
- {
-- GMX_ALIGNED(int, GMX_SIMD_DINT32_WIDTH) ioffset[GMX_SIMD_DINT32_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) std::int32_t ioffset[GMX_SIMD_DINT32_WIDTH];
-
- assert(std::size_t(base) % 16 == 0);
- assert(align % 2 == 0);
-@@ -242,7 +242,7 @@
- SimdDouble * v0,
- SimdDouble * v1)
- {
-- GMX_ALIGNED(int, GMX_SIMD_DINT32_WIDTH) ioffset[GMX_SIMD_DINT32_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) std::int32_t ioffset[GMX_SIMD_DINT32_WIDTH];
-
- assert(std::size_t(base) % 16 == 0);
- assert(align % 2 == 0);
-@@ -258,7 +258,7 @@
- SimdDouble * v0,
- SimdDouble * v1)
- {
-- GMX_ALIGNED(int, GMX_SIMD_DINT32_WIDTH) ioffset[GMX_SIMD_DINT32_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) std::int32_t ioffset[GMX_SIMD_DINT32_WIDTH];
-
- vst1_s32(ioffset, offset.simdInternal_);
-
-diff --git a/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_definitions.h b/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_definitions.h
-index 1da37d2..9912800 100644
---- a/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_definitions.h
-+++ b/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_definitions.h
-@@ -1,7 +1,7 @@
- /*
- * This file is part of the GROMACS molecular simulation package.
- *
-- * Copyright (c) 2014,2015, by the GROMACS development team, led by
-+ * Copyright (c) 2014,2015,2017, by the GROMACS development team, led by
- * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
- * and including many others, as listed in the AUTHORS file in the
- * top-level source directory and at http://www.gromacs.org.
-@@ -75,6 +75,7 @@
- #define GMX_SIMD_FINT32_WIDTH 4
- #define GMX_SIMD_DINT32_WIDTH 4
- #define GMX_SIMD4_WIDTH 4
-+#define GMX_SIMD_ALIGNMENT 32 // Bytes (4*double)
- #define GMX_SIMD_RSQRT_BITS 14
- #define GMX_SIMD_RCP_BITS 14
-
-diff --git a/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_simd_double.h b/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_simd_double.h
-index dc20d78..16a2f8f 100644
---- a/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_simd_double.h
-+++ b/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_simd_double.h
-@@ -75,7 +75,7 @@
-
- SimdDInt32(std::int32_t i)
- {
-- GMX_ALIGNED(int, GMX_SIMD_DINT32_WIDTH) idata[GMX_SIMD_DINT32_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) std::int32_t idata[GMX_SIMD_DINT32_WIDTH];
- idata[0] = i;
- simdInternal_ = vec_splat(vec_ldia(0, idata), 0);
- }
-@@ -332,8 +332,8 @@
- static inline SimdDouble
- frexp(SimdDouble value, SimdDInt32 * exponent)
- {
-- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) rdata[GMX_SIMD_DOUBLE_WIDTH];
-- GMX_ALIGNED(int, GMX_SIMD_DOUBLE_WIDTH) idata[GMX_SIMD_DOUBLE_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) double rdata[GMX_SIMD_DOUBLE_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) std::int32_t idata[GMX_SIMD_DOUBLE_WIDTH];
-
- vec_st(value.simdInternal_, 0, rdata);
-
-@@ -352,8 +352,8 @@
- static inline SimdDouble
- ldexp(SimdDouble value, SimdDInt32 exponent)
- {
-- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) rdata[GMX_SIMD_DOUBLE_WIDTH];
-- GMX_ALIGNED(int, GMX_SIMD_DOUBLE_WIDTH) idata[GMX_SIMD_DOUBLE_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) double rdata[GMX_SIMD_DOUBLE_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) std::int32_t idata[GMX_SIMD_DOUBLE_WIDTH];
-
- vec_st(value.simdInternal_, 0, rdata);
- vec_st(exponent.simdInternal_, 0, idata);
-diff --git a/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_simd_float.h b/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_simd_float.h
-index 12ffdbd..83b74d1 100644
---- a/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_simd_float.h
-+++ b/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_simd_float.h
-@@ -72,7 +72,7 @@
-
- SimdFInt32(std::int32_t i)
- {
-- GMX_ALIGNED(int, GMX_SIMD_FINT32_WIDTH) idata[GMX_SIMD_FINT32_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) std::int32_t idata[GMX_SIMD_FINT32_WIDTH];
- idata[0] = i;
- simdInternal_ = vec_splat(vec_ldia(0, idata), 0);
- }
-@@ -329,8 +329,8 @@
- static inline SimdFloat
- frexp(SimdFloat value, SimdFInt32 * exponent)
- {
-- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) rdata[GMX_SIMD_FLOAT_WIDTH];
-- GMX_ALIGNED(int, GMX_SIMD_FLOAT_WIDTH) idata[GMX_SIMD_FLOAT_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) float rdata[GMX_SIMD_FLOAT_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) std::int32_t idata[GMX_SIMD_FLOAT_WIDTH];
-
- vec_st(value.simdInternal_, 0, rdata);
-
-@@ -349,8 +349,8 @@
- static inline SimdFloat
- ldexp(SimdFloat value, SimdFInt32 exponent)
- {
-- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) rdata[GMX_SIMD_FLOAT_WIDTH];
-- GMX_ALIGNED(int, GMX_SIMD_FLOAT_WIDTH) idata[GMX_SIMD_FLOAT_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) float rdata[GMX_SIMD_FLOAT_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) std::int32_t idata[GMX_SIMD_FLOAT_WIDTH];
-
- vec_st(value.simdInternal_, 0, rdata);
- vec_st(exponent.simdInternal_, 0, idata);
-diff --git a/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_util_double.h b/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_util_double.h
-index 5a220c4..633327a 100644
---- a/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_util_double.h
-+++ b/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_util_double.h
-@@ -1,7 +1,7 @@
- /*
- * This file is part of the GROMACS molecular simulation package.
- *
-- * Copyright (c) 2014,2015,2016, by the GROMACS development team, led by
-+ * Copyright (c) 2014,2015,2016,2017, by the GROMACS development team, led by
- * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
- * and including many others, as listed in the AUTHORS file in the
- * top-level source directory and at http://www.gromacs.org.
-@@ -143,9 +143,9 @@
- SimdDouble v1,
- SimdDouble v2)
- {
-- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) m0[GMX_SIMD_DOUBLE_WIDTH];
-- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) m1[GMX_SIMD_DOUBLE_WIDTH];
-- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) m2[GMX_SIMD_DOUBLE_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) double m0[GMX_SIMD_DOUBLE_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) double m1[GMX_SIMD_DOUBLE_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) double m2[GMX_SIMD_DOUBLE_WIDTH];
-
- store(m0, v0);
- store(m1, v1);
-@@ -193,9 +193,9 @@
- }
- else
- {
-- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) m0[GMX_SIMD_DOUBLE_WIDTH];
-- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) m1[GMX_SIMD_DOUBLE_WIDTH];
-- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) m2[GMX_SIMD_DOUBLE_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) double m0[GMX_SIMD_DOUBLE_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) double m1[GMX_SIMD_DOUBLE_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) double m2[GMX_SIMD_DOUBLE_WIDTH];
-
- store(m0, v0);
- store(m1, v1);
-@@ -244,9 +244,9 @@
- }
- else
- {
-- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) m0[GMX_SIMD_DOUBLE_WIDTH];
-- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) m1[GMX_SIMD_DOUBLE_WIDTH];
-- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) m2[GMX_SIMD_DOUBLE_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) double m0[GMX_SIMD_DOUBLE_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) double m1[GMX_SIMD_DOUBLE_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) double m2[GMX_SIMD_DOUBLE_WIDTH];
-
- store(m0, v0);
- store(m1, v1);
-@@ -287,7 +287,7 @@
- SimdDouble * v2,
- SimdDouble * v3)
- {
-- GMX_ALIGNED(int, GMX_SIMD_DOUBLE_WIDTH) ioffset[GMX_SIMD_DOUBLE_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) std::int32_t ioffset[GMX_SIMD_DOUBLE_WIDTH];
-
- store(ioffset, simdoffset);
- gatherLoadTranspose<align>(base, ioffset, v0, v1, v2, v3);
-@@ -300,7 +300,7 @@
- SimdDouble * v0,
- SimdDouble * v1)
- {
-- GMX_ALIGNED(int, GMX_SIMD_DOUBLE_WIDTH) ioffset[GMX_SIMD_DOUBLE_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) std::int32_t ioffset[GMX_SIMD_DOUBLE_WIDTH];
-
- store(ioffset, simdoffset);
- gatherLoadTranspose<align>(base, ioffset, v0, v1);
-diff --git a/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_util_float.h b/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_util_float.h
-index 2e12fab..c3b3d9c 100644
---- a/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_util_float.h
-+++ b/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_util_float.h
-@@ -1,7 +1,7 @@
- /*
- * This file is part of the GROMACS molecular simulation package.
- *
-- * Copyright (c) 2014,2015,2016, by the GROMACS development team, led by
-+ * Copyright (c) 2014,2015,2016,2017, by the GROMACS development team, led by
- * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
- * and including many others, as listed in the AUTHORS file in the
- * top-level source directory and at http://www.gromacs.org.
-@@ -143,9 +143,9 @@
- SimdFloat v1,
- SimdFloat v2)
- {
-- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) m0[GMX_SIMD_FLOAT_WIDTH];
-- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) m1[GMX_SIMD_FLOAT_WIDTH];
-- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) m2[GMX_SIMD_FLOAT_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) float m0[GMX_SIMD_FLOAT_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) float m1[GMX_SIMD_FLOAT_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) float m2[GMX_SIMD_FLOAT_WIDTH];
-
- store(m0, v0);
- store(m1, v1);
-@@ -193,9 +193,9 @@
- }
- else
- {
-- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) m0[GMX_SIMD_FLOAT_WIDTH];
-- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) m1[GMX_SIMD_FLOAT_WIDTH];
-- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) m2[GMX_SIMD_FLOAT_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) float m0[GMX_SIMD_FLOAT_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) float m1[GMX_SIMD_FLOAT_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) float m2[GMX_SIMD_FLOAT_WIDTH];
-
- store(m0, v0);
- store(m1, v1);
-@@ -244,9 +244,9 @@
- }
- else
- {
-- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) m0[GMX_SIMD_FLOAT_WIDTH];
-- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) m1[GMX_SIMD_FLOAT_WIDTH];
-- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) m2[GMX_SIMD_FLOAT_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) float m0[GMX_SIMD_FLOAT_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) float m1[GMX_SIMD_FLOAT_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) float m2[GMX_SIMD_FLOAT_WIDTH];
-
- store(m0, v0);
- store(m1, v1);
-@@ -287,7 +287,7 @@
- SimdFloat * v2,
- SimdFloat * v3)
- {
-- GMX_ALIGNED(int, GMX_SIMD_FLOAT_WIDTH) ioffset[GMX_SIMD_FLOAT_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) int ioffset[GMX_SIMD_FLOAT_WIDTH];
-
- store(ioffset, simdoffset);
- gatherLoadTranspose<align>(base, ioffset, v0, v1, v2, v3);
-@@ -300,7 +300,7 @@
- SimdFloat * v0,
- SimdFloat * v1)
- {
-- GMX_ALIGNED(int, GMX_SIMD_FLOAT_WIDTH) ioffset[GMX_SIMD_FLOAT_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) int ioffset[GMX_SIMD_FLOAT_WIDTH];
-
- store(ioffset, simdoffset);
- gatherLoadTranspose<align>(base, ioffset, v0, v1);
-diff --git a/src/gromacs/simd/impl_ibm_vmx/impl_ibm_vmx_definitions.h b/src/gromacs/simd/impl_ibm_vmx/impl_ibm_vmx_definitions.h
-index e01f1bb..1878d2a 100644
---- a/src/gromacs/simd/impl_ibm_vmx/impl_ibm_vmx_definitions.h
-+++ b/src/gromacs/simd/impl_ibm_vmx/impl_ibm_vmx_definitions.h
-@@ -1,7 +1,7 @@
- /*
- * This file is part of the GROMACS molecular simulation package.
- *
-- * Copyright (c) 2014,2015, by the GROMACS development team, led by
-+ * Copyright (c) 2014,2015,2017, by the GROMACS development team, led by
- * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
- * and including many others, as listed in the AUTHORS file in the
- * top-level source directory and at http://www.gromacs.org.
-@@ -89,6 +89,7 @@
- #define GMX_SIMD_FINT32_WIDTH 4
- #undef GMX_SIMD_DINT32_WIDTH
- #define GMX_SIMD4_WIDTH 4
-+#define GMX_SIMD_ALIGNMENT 16 // Bytes (4*single)
- #define GMX_SIMD_RSQRT_BITS 14
- #define GMX_SIMD_RCP_BITS 14
-
-diff --git a/src/gromacs/simd/impl_ibm_vmx/impl_ibm_vmx_util_float.h b/src/gromacs/simd/impl_ibm_vmx/impl_ibm_vmx_util_float.h
-index 95690c3..e4edc8d 100644
---- a/src/gromacs/simd/impl_ibm_vmx/impl_ibm_vmx_util_float.h
-+++ b/src/gromacs/simd/impl_ibm_vmx/impl_ibm_vmx_util_float.h
-@@ -1,7 +1,7 @@
- /*
- * This file is part of the GROMACS molecular simulation package.
- *
-- * Copyright (c) 2014,2015,2016, by the GROMACS development team, led by
-+ * Copyright (c) 2014,2015,2016,2017, by the GROMACS development team, led by
- * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
- * and including many others, as listed in the AUTHORS file in the
- * top-level source directory and at http://www.gromacs.org.
-@@ -273,9 +273,9 @@
- }
- else
- {
-- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) rdata0[GMX_SIMD_FLOAT_WIDTH];
-- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) rdata1[GMX_SIMD_FLOAT_WIDTH];
-- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) rdata2[GMX_SIMD_FLOAT_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) float rdata0[GMX_SIMD_FLOAT_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) float rdata1[GMX_SIMD_FLOAT_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) float rdata2[GMX_SIMD_FLOAT_WIDTH];
-
- vec_st(v0.simdInternal_, 0, rdata0);
- vec_st(v1.simdInternal_, 0, rdata1);
-@@ -323,9 +323,9 @@
- }
- else
- {
-- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) rdata0[GMX_SIMD_FLOAT_WIDTH];
-- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) rdata1[GMX_SIMD_FLOAT_WIDTH];
-- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) rdata2[GMX_SIMD_FLOAT_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) float rdata0[GMX_SIMD_FLOAT_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) float rdata1[GMX_SIMD_FLOAT_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) float rdata2[GMX_SIMD_FLOAT_WIDTH];
-
- vec_st(v0.simdInternal_, 0, rdata0);
- vec_st(v1.simdInternal_, 0, rdata1);
-@@ -371,7 +371,7 @@
- SimdFloat * v2,
- SimdFloat * v3)
- {
-- GMX_ALIGNED(int, GMX_SIMD_FINT32_WIDTH) ioffset[GMX_SIMD_FINT32_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) std::int32_t ioffset[GMX_SIMD_FINT32_WIDTH];
-
- vec_st( offset.simdInternal_, 0, ioffset);
- gatherLoadTranspose<align>(base, ioffset, v0, v1, v2, v3);
-@@ -384,7 +384,7 @@
- SimdFloat * v0,
- SimdFloat * v1)
- {
-- GMX_ALIGNED(int, GMX_SIMD_FINT32_WIDTH) ioffset[GMX_SIMD_FINT32_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) std::int32_t ioffset[GMX_SIMD_FINT32_WIDTH];
-
- vec_st( offset.simdInternal_, 0, ioffset);
- gatherLoadTranspose<align>(base, ioffset, v0, v1);
-diff --git a/src/gromacs/simd/impl_ibm_vsx/impl_ibm_vsx_definitions.h b/src/gromacs/simd/impl_ibm_vsx/impl_ibm_vsx_definitions.h
-index 3370727..b55c2a6 100644
---- a/src/gromacs/simd/impl_ibm_vsx/impl_ibm_vsx_definitions.h
-+++ b/src/gromacs/simd/impl_ibm_vsx/impl_ibm_vsx_definitions.h
-@@ -1,7 +1,7 @@
- /*
- * This file is part of the GROMACS molecular simulation package.
- *
-- * Copyright (c) 2014,2015, by the GROMACS development team, led by
-+ * Copyright (c) 2014,2015,2017, by the GROMACS development team, led by
- * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
- * and including many others, as listed in the AUTHORS file in the
- * top-level source directory and at http://www.gromacs.org.
-@@ -112,6 +112,7 @@
- #define GMX_SIMD_FINT32_WIDTH 4
- #define GMX_SIMD_DINT32_WIDTH 2
- #define GMX_SIMD4_WIDTH 4
-+#define GMX_SIMD_ALIGNMENT 16 // Bytes (4*single or 2*sdouble)
- #define GMX_SIMD_RSQRT_BITS 14
- #define GMX_SIMD_RCP_BITS 14
-
-diff --git a/src/gromacs/simd/impl_ibm_vsx/impl_ibm_vsx_util_double.h b/src/gromacs/simd/impl_ibm_vsx/impl_ibm_vsx_util_double.h
-index 868b40f..d5745bf 100644
---- a/src/gromacs/simd/impl_ibm_vsx/impl_ibm_vsx_util_double.h
-+++ b/src/gromacs/simd/impl_ibm_vsx/impl_ibm_vsx_util_double.h
-@@ -1,7 +1,7 @@
- /*
- * This file is part of the GROMACS molecular simulation package.
- *
-- * Copyright (c) 2014,2015,2016, by the GROMACS development team, led by
-+ * Copyright (c) 2014,2015,2016,2017, by the GROMACS development team, led by
- * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
- * and including many others, as listed in the AUTHORS file in the
- * top-level source directory and at http://www.gromacs.org.
-@@ -249,7 +249,7 @@
- SimdDouble * v2,
- SimdDouble * v3)
- {
-- GMX_ALIGNED(std::int32_t, GMX_SIMD_DINT32_WIDTH) ioffset[GMX_SIMD_DINT32_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) std::int32_t ioffset[GMX_SIMD_DINT32_WIDTH];
-
- store(ioffset, offset );
- gatherLoadTranspose<align>(base, ioffset, v0, v1, v2, v3);
-@@ -262,7 +262,7 @@
- SimdDouble * v0,
- SimdDouble * v1)
- {
-- GMX_ALIGNED(std::int32_t, GMX_SIMD_DINT32_WIDTH) ioffset[GMX_SIMD_DINT32_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) std::int32_t ioffset[GMX_SIMD_DINT32_WIDTH];
-
- store(ioffset, offset );
- gatherLoadTranspose<align>(base, ioffset, v0, v1);
-@@ -276,7 +276,7 @@
- SimdDouble * v0,
- SimdDouble * v1)
- {
-- GMX_ALIGNED(std::int32_t, GMX_SIMD_DINT32_WIDTH) ioffset[GMX_SIMD_DINT32_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) std::int32_t ioffset[GMX_SIMD_DINT32_WIDTH];
-
- store(ioffset, offset );
- gatherLoadTranspose<align>(base, ioffset, v0, v1);
-diff --git a/src/gromacs/simd/impl_ibm_vsx/impl_ibm_vsx_util_float.h b/src/gromacs/simd/impl_ibm_vsx/impl_ibm_vsx_util_float.h
-index 8863765..d85b0ca 100644
---- a/src/gromacs/simd/impl_ibm_vsx/impl_ibm_vsx_util_float.h
-+++ b/src/gromacs/simd/impl_ibm_vsx/impl_ibm_vsx_util_float.h
-@@ -330,7 +330,7 @@
- SimdFloat * v2,
- SimdFloat * v3)
- {
-- GMX_ALIGNED(std::int32_t, GMX_SIMD_FINT32_WIDTH) ioffset[GMX_SIMD_FINT32_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) std::int32_t ioffset[GMX_SIMD_FINT32_WIDTH];
-
- store(ioffset, offset );
- gatherLoadTranspose<align>(base, ioffset, v0, v1, v2, v3);
-@@ -343,7 +343,7 @@
- SimdFloat * v0,
- SimdFloat * v1)
- {
-- GMX_ALIGNED(std::int32_t, GMX_SIMD_FINT32_WIDTH) ioffset[GMX_SIMD_FINT32_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) std::int32_t ioffset[GMX_SIMD_FINT32_WIDTH];
-
- store(ioffset, offset );
- gatherLoadTranspose<align>(base, ioffset, v0, v1);
-@@ -356,7 +356,7 @@
- SimdFloat * v0,
- SimdFloat * v1)
- {
-- GMX_ALIGNED(std::int32_t, GMX_SIMD_FINT32_WIDTH) ioffset[GMX_SIMD_FINT32_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) std::int32_t ioffset[GMX_SIMD_FINT32_WIDTH];
-
- store(ioffset, offset );
- gatherLoadTranspose<align>(base, ioffset, v0, v1);
-diff --git a/src/gromacs/simd/impl_none/impl_none.h b/src/gromacs/simd/impl_none/impl_none.h
-index ceef6b4..7688e57 100644
---- a/src/gromacs/simd/impl_none/impl_none.h
-+++ b/src/gromacs/simd/impl_none/impl_none.h
-@@ -1,7 +1,7 @@
- /*
- * This file is part of the GROMACS molecular simulation package.
- *
-- * Copyright (c) 2015, by the GROMACS development team, led by
-+ * Copyright (c) 2015,2017, by the GROMACS development team, led by
- * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
- * and including many others, as listed in the AUTHORS file in the
- * top-level source directory and at http://www.gromacs.org.
-@@ -61,6 +61,7 @@
- #undef GMX_SIMD_FINT32_WIDTH
- #undef GMX_SIMD_DINT32_WIDTH
- #undef GMX_SIMD4_WIDTH
-+#define GMX_SIMD_ALIGNMENT 8 // 1*double
- #undef GMX_SIMD_RSQRT_BITS
- #undef GMX_SIMD_RCP_BITS
-
-diff --git a/src/gromacs/simd/impl_reference/impl_reference_definitions.h b/src/gromacs/simd/impl_reference/impl_reference_definitions.h
-index 1f9709f..ac6f912 100644
---- a/src/gromacs/simd/impl_reference/impl_reference_definitions.h
-+++ b/src/gromacs/simd/impl_reference/impl_reference_definitions.h
-@@ -232,6 +232,9 @@
- //! \brief The SIMD4 type is always four units wide, but this makes code more explicit
- #define GMX_SIMD4_WIDTH 4
-
-+//! \brief Required alignment in bytes for aligned load/store (always defined, even without SIMD)
-+#define GMX_SIMD_ALIGNMENT 8 // 8 (1*double)
-+
- //! \brief Accuracy of SIMD 1/sqrt(x) lookup. Used to determine number of iterations.
- #define GMX_SIMD_RSQRT_BITS 23
-
-diff --git a/src/gromacs/simd/impl_x86_avx2_128/impl_x86_avx2_128_definitions.h b/src/gromacs/simd/impl_x86_avx2_128/impl_x86_avx2_128_definitions.h
-index 49182e2..86f30da 100644
---- a/src/gromacs/simd/impl_x86_avx2_128/impl_x86_avx2_128_definitions.h
-+++ b/src/gromacs/simd/impl_x86_avx2_128/impl_x86_avx2_128_definitions.h
-@@ -76,6 +76,7 @@
- #define GMX_SIMD_FINT32_WIDTH 4
- #define GMX_SIMD_DINT32_WIDTH 2
- #define GMX_SIMD4_WIDTH 4
-+#define GMX_SIMD_ALIGNMENT 32 // Bytes (4*double for SIMD4)
- #define GMX_SIMD_RSQRT_BITS 11
- #define GMX_SIMD_RCP_BITS 11
-
-diff --git a/src/gromacs/simd/impl_x86_avx2_256/impl_x86_avx2_256_definitions.h b/src/gromacs/simd/impl_x86_avx2_256/impl_x86_avx2_256_definitions.h
-index d80cccc..a8ab2b4 100644
---- a/src/gromacs/simd/impl_x86_avx2_256/impl_x86_avx2_256_definitions.h
-+++ b/src/gromacs/simd/impl_x86_avx2_256/impl_x86_avx2_256_definitions.h
-@@ -77,6 +77,7 @@
- #define GMX_SIMD_FINT32_WIDTH 8
- #define GMX_SIMD_DINT32_WIDTH 4
- #define GMX_SIMD4_WIDTH 4
-+#define GMX_SIMD_ALIGNMENT 32 // Bytes (8*single or 4*double)
- #define GMX_SIMD_RSQRT_BITS 11
- #define GMX_SIMD_RCP_BITS 11
-
-diff --git a/src/gromacs/simd/impl_x86_avx_128_fma/impl_x86_avx_128_fma_definitions.h b/src/gromacs/simd/impl_x86_avx_128_fma/impl_x86_avx_128_fma_definitions.h
-index f2b5a20..ab8f533 100644
---- a/src/gromacs/simd/impl_x86_avx_128_fma/impl_x86_avx_128_fma_definitions.h
-+++ b/src/gromacs/simd/impl_x86_avx_128_fma/impl_x86_avx_128_fma_definitions.h
-@@ -1,7 +1,7 @@
- /*
- * This file is part of the GROMACS molecular simulation package.
- *
-- * Copyright (c) 2014,2015,2016, by the GROMACS development team, led by
-+ * Copyright (c) 2014,2015,2016,2017, by the GROMACS development team, led by
- * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
- * and including many others, as listed in the AUTHORS file in the
- * top-level source directory and at http://www.gromacs.org.
-@@ -77,6 +77,7 @@
- #define GMX_SIMD_FINT32_WIDTH 4
- #define GMX_SIMD_DINT32_WIDTH 2
- #define GMX_SIMD4_WIDTH 4
-+#define GMX_SIMD_ALIGNMENT 32 // Bytes (4*double for SIMD4)
- #define GMX_SIMD_RSQRT_BITS 11
- #define GMX_SIMD_RCP_BITS 11
-
-diff --git a/src/gromacs/simd/impl_x86_avx_256/impl_x86_avx_256_definitions.h b/src/gromacs/simd/impl_x86_avx_256/impl_x86_avx_256_definitions.h
-index 4b2474c..72e7ce9 100644
---- a/src/gromacs/simd/impl_x86_avx_256/impl_x86_avx_256_definitions.h
-+++ b/src/gromacs/simd/impl_x86_avx_256/impl_x86_avx_256_definitions.h
-@@ -77,6 +77,7 @@
- #define GMX_SIMD_FINT32_WIDTH 8
- #define GMX_SIMD_DINT32_WIDTH 4
- #define GMX_SIMD4_WIDTH 4
-+#define GMX_SIMD_ALIGNMENT 32 // Bytes (8*single or 4*double)
- #define GMX_SIMD_RSQRT_BITS 11
- #define GMX_SIMD_RCP_BITS 11
-
-diff --git a/src/gromacs/simd/impl_x86_avx_256/impl_x86_avx_256_util_double.h b/src/gromacs/simd/impl_x86_avx_256/impl_x86_avx_256_util_double.h
-index a3cefcb..23f43c9 100644
---- a/src/gromacs/simd/impl_x86_avx_256/impl_x86_avx_256_util_double.h
-+++ b/src/gromacs/simd/impl_x86_avx_256/impl_x86_avx_256_util_double.h
-@@ -1,7 +1,7 @@
- /*
- * This file is part of the GROMACS molecular simulation package.
- *
-- * Copyright (c) 2014,2015, by the GROMACS development team, led by
-+ * Copyright (c) 2014,2015,2017, by the GROMACS development team, led by
- * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
- * and including many others, as listed in the AUTHORS file in the
- * top-level source directory and at http://www.gromacs.org.
-@@ -331,7 +331,7 @@
- assert(std::size_t(base) % 32 == 0);
- assert(align % 4 == 0);
-
-- GMX_ALIGNED(int, GMX_SIMD_DINT32_WIDTH) ioffset[GMX_SIMD_DINT32_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) std::int32_t ioffset[GMX_SIMD_DINT32_WIDTH];
- _mm_store_si128( reinterpret_cast<__m128i *>(ioffset), offset.simdInternal_);
-
- v0->simdInternal_ = _mm256_load_pd(base + align * ioffset[0]);
-@@ -355,7 +355,7 @@
- assert(std::size_t(base) % 16 == 0);
- assert(align % 2 == 0);
-
-- GMX_ALIGNED(int, GMX_SIMD_DINT32_WIDTH) ioffset[GMX_SIMD_DINT32_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) std::int32_t ioffset[GMX_SIMD_DINT32_WIDTH];
- _mm_store_si128( reinterpret_cast<__m128i *>(ioffset), offset.simdInternal_);
-
- t1 = _mm_load_pd(base + align * ioffset[0]);
-@@ -379,7 +379,7 @@
- __m128d t1, t2, t3, t4;
- __m256d tA, tB;
-
-- GMX_ALIGNED(int, GMX_SIMD_DINT32_WIDTH) ioffset[GMX_SIMD_DINT32_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) std::int32_t ioffset[GMX_SIMD_DINT32_WIDTH];
- _mm_store_si128( reinterpret_cast<__m128i *>(ioffset), offset.simdInternal_);
-
- t1 = _mm_loadu_pd(base + align * ioffset[0]);
-diff --git a/src/gromacs/simd/impl_x86_avx_256/impl_x86_avx_256_util_float.h b/src/gromacs/simd/impl_x86_avx_256/impl_x86_avx_256_util_float.h
-index 2eebda9..2d19218 100644
---- a/src/gromacs/simd/impl_x86_avx_256/impl_x86_avx_256_util_float.h
-+++ b/src/gromacs/simd/impl_x86_avx_256/impl_x86_avx_256_util_float.h
-@@ -484,7 +484,7 @@
- SimdFloat * v2,
- SimdFloat * v3)
- {
-- GMX_ALIGNED(int, GMX_SIMD_FLOAT_WIDTH) offset[GMX_SIMD_FLOAT_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) std::int32_t offset[GMX_SIMD_FLOAT_WIDTH];
- _mm256_store_si256( reinterpret_cast<__m256i *>(offset), simdoffset.simdInternal_);
- gatherLoadTranspose<align>(base, offset, v0, v1, v2, v3);
- }
-@@ -496,7 +496,7 @@
- SimdFloat * v0,
- SimdFloat * v1)
- {
-- GMX_ALIGNED(int, GMX_SIMD_FLOAT_WIDTH) offset[GMX_SIMD_FLOAT_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) std::int32_t offset[GMX_SIMD_FLOAT_WIDTH];
- _mm256_store_si256( reinterpret_cast<__m256i *>(offset), simdoffset.simdInternal_);
- gatherLoadTranspose<align>(base, offset, v0, v1);
- }
-@@ -512,7 +512,7 @@
- __m128 t1, t2, t3, t4, t5, t6, t7, t8;
- __m256 tA, tB, tC, tD;
-
-- GMX_ALIGNED(int, GMX_SIMD_FLOAT_WIDTH) offset[GMX_SIMD_FLOAT_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) std::int32_t offset[GMX_SIMD_FLOAT_WIDTH];
- _mm256_store_si256( reinterpret_cast<__m256i *>(offset), simdoffset.simdInternal_);
-
- t1 = _mm_loadl_pi(_mm_setzero_ps(), reinterpret_cast<const __m64 *>( base + align * offset[0] ) );
-diff --git a/src/gromacs/simd/impl_x86_avx_512/impl_x86_avx_512_definitions.h b/src/gromacs/simd/impl_x86_avx_512/impl_x86_avx_512_definitions.h
-index 45acf12..a27ea2c 100644
---- a/src/gromacs/simd/impl_x86_avx_512/impl_x86_avx_512_definitions.h
-+++ b/src/gromacs/simd/impl_x86_avx_512/impl_x86_avx_512_definitions.h
-@@ -96,6 +96,7 @@
- #define GMX_SIMD_FINT32_WIDTH 16
- #define GMX_SIMD_DINT32_WIDTH 8
- #define GMX_SIMD4_WIDTH 4
-+#define GMX_SIMD_ALIGNMENT 64 // Bytes (16*single or 8*double)
- #define GMX_SIMD_RSQRT_BITS 14
- #define GMX_SIMD_RCP_BITS 14
-
-diff --git a/src/gromacs/simd/impl_x86_avx_512/impl_x86_avx_512_util_double.h b/src/gromacs/simd/impl_x86_avx_512/impl_x86_avx_512_util_double.h
-index 3ff77c6..22b4ffa 100644
---- a/src/gromacs/simd/impl_x86_avx_512/impl_x86_avx_512_util_double.h
-+++ b/src/gromacs/simd/impl_x86_avx_512/impl_x86_avx_512_util_double.h
-@@ -151,7 +151,7 @@
- SimdDouble v2)
- {
- __m512d t[4], t5, t6, t7, t8;
-- GMX_ALIGNED(std::int64_t, 8) o[8];
-+ alignas(GMX_SIMD_ALIGNMENT) std::int64_t o[8];
- //TODO: should use fastMultiply
- _mm512_store_epi64(o, _mm512_cvtepi32_epi64(_mm256_mullo_epi32(_mm256_load_si256((const __m256i*)(offset )), _mm256_set1_epi32(align))));
- t5 = _mm512_unpacklo_pd(v0.simdInternal_, v1.simdInternal_);
-@@ -206,7 +206,7 @@
- SimdDouble v2)
- {
- __m512d t[4], t5, t6, t7, t8;
-- GMX_ALIGNED(std::int64_t, 8) o[8];
-+ alignas(GMX_SIMD_ALIGNMENT) std::int64_t o[8];
- //TODO: should use fastMultiply
- _mm512_store_epi64(o, _mm512_cvtepi32_epi64(_mm256_mullo_epi32(_mm256_load_si256((const __m256i*)(offset )), _mm256_set1_epi32(align))));
- t5 = _mm512_unpacklo_pd(v0.simdInternal_, v1.simdInternal_);
-diff --git a/src/gromacs/simd/impl_x86_avx_512/impl_x86_avx_512_util_float.h b/src/gromacs/simd/impl_x86_avx_512/impl_x86_avx_512_util_float.h
-index 61548bb..6f94b98 100644
---- a/src/gromacs/simd/impl_x86_avx_512/impl_x86_avx_512_util_float.h
-+++ b/src/gromacs/simd/impl_x86_avx_512/impl_x86_avx_512_util_float.h
-@@ -154,7 +154,7 @@
- {
- __m512 t[4], t5, t6, t7, t8;
- int i;
-- GMX_ALIGNED(std::int32_t, 16) o[16];
-+ alignas(GMX_SIMD_ALIGNMENT) std::int32_t o[16];
- store(o, fastMultiply<align>(simdLoad(offset, SimdFInt32Tag())));
- if (align < 4)
- {
-@@ -226,7 +226,7 @@
- {
- __m512 t[4], t5, t6, t7, t8;
- int i;
-- GMX_ALIGNED(std::int32_t, 16) o[16];
-+ alignas(GMX_SIMD_ALIGNMENT) std::int32_t o[16];
- store(o, fastMultiply<align>(simdLoad(offset, SimdFInt32Tag())));
- if (align < 4)
- {
-diff --git a/src/gromacs/simd/impl_x86_avx_512_knl/impl_x86_avx_512_knl_definitions.h b/src/gromacs/simd/impl_x86_avx_512_knl/impl_x86_avx_512_knl_definitions.h
-index d0698fa..ada37e2 100644
---- a/src/gromacs/simd/impl_x86_avx_512_knl/impl_x86_avx_512_knl_definitions.h
-+++ b/src/gromacs/simd/impl_x86_avx_512_knl/impl_x86_avx_512_knl_definitions.h
-@@ -85,6 +85,7 @@
- #define GMX_SIMD_FINT32_WIDTH 16
- #define GMX_SIMD_DINT32_WIDTH 8
- #define GMX_SIMD4_WIDTH 4
-+#define GMX_SIMD_ALIGNMENT 64 // Bytes (16*single or 8*double)
- #define GMX_SIMD_RSQRT_BITS 28
- #define GMX_SIMD_RCP_BITS 28
-
-diff --git a/src/gromacs/simd/impl_x86_mic/impl_x86_mic_definitions.h b/src/gromacs/simd/impl_x86_mic/impl_x86_mic_definitions.h
-index 61123eb..c6135c6 100644
---- a/src/gromacs/simd/impl_x86_mic/impl_x86_mic_definitions.h
-+++ b/src/gromacs/simd/impl_x86_mic/impl_x86_mic_definitions.h
-@@ -1,7 +1,7 @@
- /*
- * This file is part of the GROMACS molecular simulation package.
- *
-- * Copyright (c) 2014,2015, by the GROMACS development team, led by
-+ * Copyright (c) 2014,2015,2017, by the GROMACS development team, led by
- * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
- * and including many others, as listed in the AUTHORS file in the
- * top-level source directory and at http://www.gromacs.org.
-@@ -78,6 +78,7 @@
- #define GMX_SIMD_FINT32_WIDTH 16
- #define GMX_SIMD_DINT32_WIDTH 8
- #define GMX_SIMD4_WIDTH 4
-+#define GMX_SIMD_ALIGNMENT 64 // Bytes (16*single or 8*double)
- #define GMX_SIMD_RSQRT_BITS 23
- #define GMX_SIMD_RCP_BITS 23
-
-diff --git a/src/gromacs/simd/impl_x86_mic/impl_x86_mic_util_double.h b/src/gromacs/simd/impl_x86_mic/impl_x86_mic_util_double.h
-index 62e0720..9904fc5 100644
---- a/src/gromacs/simd/impl_x86_mic/impl_x86_mic_util_double.h
-+++ b/src/gromacs/simd/impl_x86_mic/impl_x86_mic_util_double.h
-@@ -235,9 +235,9 @@
- SimdDouble v1,
- SimdDouble v2)
- {
-- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) rdata0[GMX_SIMD_DOUBLE_WIDTH];
-- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) rdata1[GMX_SIMD_DOUBLE_WIDTH];
-- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) rdata2[GMX_SIMD_DOUBLE_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) double rdata0[GMX_SIMD_DOUBLE_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) double rdata1[GMX_SIMD_DOUBLE_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) double rdata2[GMX_SIMD_DOUBLE_WIDTH];
-
- store(rdata0, v0);
- store(rdata1, v1);
-@@ -259,9 +259,9 @@
- SimdDouble v1,
- SimdDouble v2)
- {
-- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) rdata0[GMX_SIMD_DOUBLE_WIDTH];
-- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) rdata1[GMX_SIMD_DOUBLE_WIDTH];
-- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) rdata2[GMX_SIMD_DOUBLE_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) double rdata0[GMX_SIMD_DOUBLE_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) double rdata1[GMX_SIMD_DOUBLE_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) double rdata2[GMX_SIMD_DOUBLE_WIDTH];
-
- store(rdata0, v0);
- store(rdata1, v1);
-diff --git a/src/gromacs/simd/impl_x86_mic/impl_x86_mic_util_float.h b/src/gromacs/simd/impl_x86_mic/impl_x86_mic_util_float.h
-index 48b2a9f..036ff2f 100644
---- a/src/gromacs/simd/impl_x86_mic/impl_x86_mic_util_float.h
-+++ b/src/gromacs/simd/impl_x86_mic/impl_x86_mic_util_float.h
-@@ -239,9 +239,9 @@
- SimdFloat v1,
- SimdFloat v2)
- {
-- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) rdata0[GMX_SIMD_FLOAT_WIDTH];
-- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) rdata1[GMX_SIMD_FLOAT_WIDTH];
-- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) rdata2[GMX_SIMD_FLOAT_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) float rdata0[GMX_SIMD_FLOAT_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) float rdata1[GMX_SIMD_FLOAT_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) float rdata2[GMX_SIMD_FLOAT_WIDTH];
-
- store(rdata0, v0);
- store(rdata1, v1);
-@@ -263,9 +263,9 @@
- SimdFloat v1,
- SimdFloat v2)
- {
-- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) rdata0[GMX_SIMD_FLOAT_WIDTH];
-- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) rdata1[GMX_SIMD_FLOAT_WIDTH];
-- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) rdata2[GMX_SIMD_FLOAT_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) float rdata0[GMX_SIMD_FLOAT_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) float rdata1[GMX_SIMD_FLOAT_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) float rdata2[GMX_SIMD_FLOAT_WIDTH];
-
- store(rdata0, v0);
- store(rdata1, v1);
-diff --git a/src/gromacs/simd/impl_x86_sse2/impl_x86_sse2_definitions.h b/src/gromacs/simd/impl_x86_sse2/impl_x86_sse2_definitions.h
-index 7b585d4..0cc62e9 100644
---- a/src/gromacs/simd/impl_x86_sse2/impl_x86_sse2_definitions.h
-+++ b/src/gromacs/simd/impl_x86_sse2/impl_x86_sse2_definitions.h
-@@ -1,7 +1,7 @@
- /*
- * This file is part of the GROMACS molecular simulation package.
- *
-- * Copyright (c) 2014,2015, by the GROMACS development team, led by
-+ * Copyright (c) 2014,2015,2017, by the GROMACS development team, led by
- * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
- * and including many others, as listed in the AUTHORS file in the
- * top-level source directory and at http://www.gromacs.org.
-@@ -76,6 +76,7 @@
- #define GMX_SIMD_FINT32_WIDTH 4
- #define GMX_SIMD_DINT32_WIDTH 2
- #define GMX_SIMD4_WIDTH 4
-+#define GMX_SIMD_ALIGNMENT 16 // Bytes (4*single or 2*double)
- #define GMX_SIMD_RSQRT_BITS 11
- #define GMX_SIMD_RCP_BITS 11
-
-diff --git a/src/gromacs/simd/impl_x86_sse2/impl_x86_sse2_util_float.h b/src/gromacs/simd/impl_x86_sse2/impl_x86_sse2_util_float.h
-index 67e3047..4acf483 100644
---- a/src/gromacs/simd/impl_x86_sse2/impl_x86_sse2_util_float.h
-+++ b/src/gromacs/simd/impl_x86_sse2/impl_x86_sse2_util_float.h
-@@ -1,7 +1,7 @@
- /*
- * This file is part of the GROMACS molecular simulation package.
- *
-- * Copyright (c) 2014,2015, by the GROMACS development team, led by
-+ * Copyright (c) 2014,2015,2017, by the GROMACS development team, led by
- * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
- * and including many others, as listed in the AUTHORS file in the
- * top-level source directory and at http://www.gromacs.org.
-@@ -334,7 +334,7 @@
- // This is likely because (a) the extract function is expensive, and (b)
- // the alignment scaling can often be done as part of the load instruction
- // (which is even cheaper than doing it in SIMD registers).
-- GMX_ALIGNED(std::int32_t, GMX_SIMD_FINT32_WIDTH) ioffset[GMX_SIMD_FINT32_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) std::int32_t ioffset[GMX_SIMD_FINT32_WIDTH];
- _mm_store_si128( (__m128i *)ioffset, offset.simdInternal_);
- gatherLoadTranspose<align>(base, ioffset, v0, v1, v2, v3);
- }
-@@ -351,7 +351,7 @@
- // This is likely because (a) the extract function is expensive, and (b)
- // the alignment scaling can often be done as part of the load instruction
- // (which is even cheaper than doing it in SIMD registers).
-- GMX_ALIGNED(std::int32_t, GMX_SIMD_FINT32_WIDTH) ioffset[GMX_SIMD_FINT32_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) std::int32_t ioffset[GMX_SIMD_FINT32_WIDTH];
- _mm_store_si128( (__m128i *)ioffset, offset.simdInternal_);
- gatherLoadTranspose<align>(base, ioffset, v0, v1);
- }
-@@ -370,7 +370,7 @@
- // This is likely because (a) the extract function is expensive, and (b)
- // the alignment scaling can often be done as part of the load instruction
- // (which is even cheaper than doing it in SIMD registers).
-- GMX_ALIGNED(std::int32_t, GMX_SIMD_FINT32_WIDTH) ioffset[GMX_SIMD_FINT32_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) std::int32_t ioffset[GMX_SIMD_FINT32_WIDTH];
- _mm_store_si128( (__m128i *)ioffset, offset.simdInternal_);
- gatherLoadTranspose<align>(base, ioffset, v0, v1);
- }
-diff --git a/src/gromacs/simd/impl_x86_sse4_1/impl_x86_sse4_1_definitions.h b/src/gromacs/simd/impl_x86_sse4_1/impl_x86_sse4_1_definitions.h
-index 4d17227..e9282ac 100644
---- a/src/gromacs/simd/impl_x86_sse4_1/impl_x86_sse4_1_definitions.h
-+++ b/src/gromacs/simd/impl_x86_sse4_1/impl_x86_sse4_1_definitions.h
-@@ -1,7 +1,7 @@
- /*
- * This file is part of the GROMACS molecular simulation package.
- *
-- * Copyright (c) 2014,2015, by the GROMACS development team, led by
-+ * Copyright (c) 2014,2015,2017, by the GROMACS development team, led by
- * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
- * and including many others, as listed in the AUTHORS file in the
- * top-level source directory and at http://www.gromacs.org.
-@@ -76,6 +76,7 @@
- #define GMX_SIMD_FINT32_WIDTH 4
- #define GMX_SIMD_DINT32_WIDTH 2
- #define GMX_SIMD4_WIDTH 4
-+#define GMX_SIMD_ALIGNMENT 16 // Bytes (4*single or 2*double)
- #define GMX_SIMD_RSQRT_BITS 11
- #define GMX_SIMD_RCP_BITS 11
-
-diff --git a/src/gromacs/simd/simd_math.h b/src/gromacs/simd/simd_math.h
-index ad51957..207b1b7 100644
---- a/src/gromacs/simd/simd_math.h
-+++ b/src/gromacs/simd/simd_math.h
-@@ -742,7 +742,7 @@
- const SimdFloat sieve(SimdFloat(-5.965323564e+29f) | SimdFloat(7.05044434e-30f));
- #else
- const int isieve = 0xFFFFF000;
-- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) mem[GMX_SIMD_FLOAT_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) float mem[GMX_SIMD_FLOAT_WIDTH];
-
- union {
- float f; int i;
-diff --git a/src/gromacs/simd/tests/bootstrap_loadstore.cpp b/src/gromacs/simd/tests/bootstrap_loadstore.cpp
-index 5bbdb1d..1ffe38a 100644
---- a/src/gromacs/simd/tests/bootstrap_loadstore.cpp
-+++ b/src/gromacs/simd/tests/bootstrap_loadstore.cpp
-@@ -91,13 +91,8 @@
- * simdWidth elements at the beginning and end
- * to test we are not polluting memory there either. Sum=4*simdWidth.
- */
--#if GMX_SIMD4_WIDTH > GMX_SIMD_REAL_WIDTH
-- GMX_ALIGNED(T, GMX_SIMD4_WIDTH) src[simdWidth*4];
-- GMX_ALIGNED(T, GMX_SIMD4_WIDTH) dst[simdWidth*4];
--#else
-- GMX_ALIGNED(T, GMX_SIMD_REAL_WIDTH) src[simdWidth*4];
-- GMX_ALIGNED(T, GMX_SIMD_REAL_WIDTH) dst[simdWidth*4];
--#endif
-+ alignas(GMX_SIMD_ALIGNMENT) T src[simdWidth*4];
-+ alignas(GMX_SIMD_ALIGNMENT) T dst[simdWidth*4];
-
- // Make sure we have memory to check both before and after the test pointers
- T * pCopySrc = src + simdWidth + loadOffset;
-diff --git a/src/gromacs/simd/tests/simd.cpp b/src/gromacs/simd/tests/simd.cpp
-index d07621b..3de3c0e 100644
---- a/src/gromacs/simd/tests/simd.cpp
-+++ b/src/gromacs/simd/tests/simd.cpp
-@@ -121,10 +121,42 @@
- #endif
-
- #if GMX_SIMD_HAVE_REAL
-+TEST(SimdTest, GmxAligned)
-+{
-+ // Test alignment with two variables that must be aligned, and one that
-+ // doesn't have to be. The order of variables is up to the compiler, but
-+ // if it ignores alignment it is highly unlikely that both r1/r3 still end
-+ // up being aligned by mistake.
-+ alignas(GMX_SIMD_ALIGNMENT) real r1;
-+ real r2;
-+ alignas(GMX_SIMD_ALIGNMENT) real r3;
-+
-+ std::uint64_t addr1 = reinterpret_cast<std::uint64_t>(&r1);
-+ std::uint64_t addr2 = reinterpret_cast<std::uint64_t>(&r2);
-+ std::uint64_t addr3 = reinterpret_cast<std::uint64_t>(&r3);
-+
-+ EXPECT_EQ(0, addr1 % GMX_SIMD_ALIGNMENT);
-+ EXPECT_NE(0, addr2); // Just so r2 is not optimized away
-+ EXPECT_EQ(0, addr3 % GMX_SIMD_ALIGNMENT);
-+
-+ alignas(GMX_SIMD_ALIGNMENT) std::int32_t i1;
-+ std::int32_t i2;
-+ alignas(GMX_SIMD_ALIGNMENT) std::int32_t i3;
-+
-+ addr1 = reinterpret_cast<std::uint64_t>(&i1);
-+ addr2 = reinterpret_cast<std::uint64_t>(&i2);
-+ addr3 = reinterpret_cast<std::uint64_t>(&i3);
-+
-+ EXPECT_EQ(0, addr1 % GMX_SIMD_ALIGNMENT);
-+ EXPECT_NE(0, addr2); // Just so i2 is not optimized away
-+ EXPECT_EQ(0, addr3 % GMX_SIMD_ALIGNMENT);
-+}
-+
-+
- ::std::vector<real>
- simdReal2Vector(const SimdReal simd)
- {
-- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) mem[GMX_SIMD_REAL_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) real mem[GMX_SIMD_REAL_WIDTH];
-
- store(mem, simd);
- std::vector<real> v(mem, mem+GMX_SIMD_REAL_WIDTH);
-@@ -135,7 +167,7 @@
- SimdReal
- vector2SimdReal(const std::vector<real> &v)
- {
-- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) mem[GMX_SIMD_REAL_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) real mem[GMX_SIMD_REAL_WIDTH];
-
- for (int i = 0; i < GMX_SIMD_REAL_WIDTH; i++)
- {
-@@ -179,21 +211,21 @@
- return compareVectorEq(refExpr, tstExpr, simdReal2Vector(ref), simdReal2Vector(tst));
- }
-
--std::vector<int>
-+std::vector<std::int32_t>
- simdInt2Vector(const SimdInt32 simd)
- {
-- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) mem[GMX_SIMD_REAL_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) std::int32_t mem[GMX_SIMD_REAL_WIDTH];
-
- store(mem, simd);
-- std::vector<int> v(mem, mem+GMX_SIMD_REAL_WIDTH);
-+ std::vector<std::int32_t> v(mem, mem+GMX_SIMD_REAL_WIDTH);
-
- return v;
- }
-
- SimdInt32
--vector2SimdInt(const std::vector<int> &v)
-+vector2SimdInt(const std::vector<std::int32_t> &v)
- {
-- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) mem[GMX_SIMD_REAL_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) std::int32_t mem[GMX_SIMD_REAL_WIDTH];
-
- for (int i = 0; i < GMX_SIMD_REAL_WIDTH; i++)
- {
-diff --git a/src/gromacs/simd/tests/simd.h b/src/gromacs/simd/tests/simd.h
-index a32676b..efa57f3 100644
---- a/src/gromacs/simd/tests/simd.h
-+++ b/src/gromacs/simd/tests/simd.h
-@@ -268,14 +268,14 @@
- *
- * The returned vector will have the same length as the SIMD width.
- */
--std::vector<int> simdInt2Vector(const SimdInt32 simd);
-+std::vector<std::int32_t> simdInt2Vector(const SimdInt32 simd);
-
- /*! \brief Return 32-bit integer SIMD value from std::vector<int>.
- *
- * If the vector is longer than SIMD width, only the first elements will be used.
- * If it is shorter, the contents will be repeated to fill the SIMD register.
- */
--SimdInt32 vector2SimdInt(const std::vector<int> &v);
-+SimdInt32 vector2SimdInt(const std::vector<std::int32_t> &v);
-
- /*! \brief Set SIMD register contents from three int values.
- *
-diff --git a/src/gromacs/simd/tests/simd4.cpp b/src/gromacs/simd/tests/simd4.cpp
-index edb66ba..ba91594 100644
---- a/src/gromacs/simd/tests/simd4.cpp
-+++ b/src/gromacs/simd/tests/simd4.cpp
-@@ -86,7 +86,7 @@
- ::std::vector<real>
- simd4Real2Vector(const Simd4Real simd4)
- {
-- GMX_ALIGNED(real, GMX_SIMD4_WIDTH) mem[GMX_SIMD4_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) real mem[GMX_SIMD4_WIDTH];
-
- store4(mem, simd4);
- std::vector<real> v(mem, mem+GMX_SIMD4_WIDTH);
-@@ -97,7 +97,7 @@
- Simd4Real
- vector2Simd4Real(const std::vector<real> &v)
- {
-- GMX_ALIGNED(real, GMX_SIMD4_WIDTH) mem[GMX_SIMD4_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) real mem[GMX_SIMD4_WIDTH];
-
- for (int i = 0; i < GMX_SIMD4_WIDTH; i++)
- {
-diff --git a/src/gromacs/simd/tests/simd4_floatingpoint.cpp b/src/gromacs/simd/tests/simd4_floatingpoint.cpp
-index b2300ec8..50e8687 100644
---- a/src/gromacs/simd/tests/simd4_floatingpoint.cpp
-+++ b/src/gromacs/simd/tests/simd4_floatingpoint.cpp
-@@ -312,7 +312,7 @@
- Simd4Real v0, v1, v2, v3;
- int i;
- // aligned pointers
-- GMX_ALIGNED(real, GMX_SIMD4_WIDTH) p0[4*GMX_SIMD4_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) real p0[4*GMX_SIMD4_WIDTH];
- real * p1 = p0 + GMX_SIMD4_WIDTH;
- real * p2 = p0 + 2*GMX_SIMD4_WIDTH;
- real * p3 = p0 + 3*GMX_SIMD4_WIDTH;
-diff --git a/src/gromacs/simd/tests/simd_floatingpoint.cpp b/src/gromacs/simd/tests/simd_floatingpoint.cpp
-index 14fbe0d..2c57354 100644
---- a/src/gromacs/simd/tests/simd_floatingpoint.cpp
-+++ b/src/gromacs/simd/tests/simd_floatingpoint.cpp
-@@ -453,8 +453,8 @@
- #if GMX_SIMD_HAVE_FLOAT && GMX_SIMD_HAVE_DOUBLE
- TEST_F(SimdFloatingpointTest, cvtFloat2Double)
- {
-- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) f[GMX_SIMD_FLOAT_WIDTH];
-- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) d[GMX_SIMD_FLOAT_WIDTH]; // Yes, double array length should be same as float
-+ alignas(GMX_SIMD_ALIGNMENT) float f[GMX_SIMD_FLOAT_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) double d[GMX_SIMD_FLOAT_WIDTH]; // Yes, double array length should be same as float
-
- int i;
- SimdFloat vf;
-@@ -488,8 +488,8 @@
-
- TEST_F(SimdFloatingpointTest, cvtDouble2Float)
- {
-- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) f[GMX_SIMD_FLOAT_WIDTH];
-- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) d[GMX_SIMD_FLOAT_WIDTH]; // Yes, double array length should be same as float
-+ alignas(GMX_SIMD_ALIGNMENT) float f[GMX_SIMD_FLOAT_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) double d[GMX_SIMD_FLOAT_WIDTH]; // Yes, double array length should be same as float
- int i;
- SimdFloat vf;
- SimdDouble vd0;
-diff --git a/src/gromacs/simd/tests/simd_integer.cpp b/src/gromacs/simd/tests/simd_integer.cpp
-index c675f8b..594827d 100644
---- a/src/gromacs/simd/tests/simd_integer.cpp
-+++ b/src/gromacs/simd/tests/simd_integer.cpp
-@@ -131,7 +131,7 @@
- #if GMX_SIMD_HAVE_INT32_EXTRACT
- TEST_F(SimdIntegerTest, extract)
- {
-- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) idata[GMX_SIMD_REAL_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) std::int32_t idata[GMX_SIMD_REAL_WIDTH];
- SimdInt32 simd;
-
- for (int i = 0; i < GMX_SIMD_REAL_WIDTH; i++)
-diff --git a/src/gromacs/tables/tests/splinetable.cpp b/src/gromacs/tables/tests/splinetable.cpp
-index ee15b45..203a383 100644
---- a/src/gromacs/tables/tests/splinetable.cpp
-+++ b/src/gromacs/tables/tests/splinetable.cpp
-@@ -679,7 +679,7 @@
- real refDer = lj12Derivative(x);
- SimdReal tstFunc, tstDer;
- real funcErr, derErr;
-- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) alignedMem[GMX_SIMD_REAL_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) real alignedMem[GMX_SIMD_REAL_WIDTH];
-
- table.evaluateFunctionAndDerivative(SimdReal(x), &tstFunc, &tstDer);
-
-@@ -712,7 +712,7 @@
- SimdReal tstFunc1, tstDer1;
- real funcErr0, derErr0;
- real funcErr1, derErr1;
-- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) alignedMem[GMX_SIMD_REAL_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) real alignedMem[GMX_SIMD_REAL_WIDTH];
-
- table.evaluateFunctionAndDerivative(SimdReal(x), &tstFunc0, &tstDer0, &tstFunc1, &tstDer1);
-
-@@ -765,7 +765,7 @@
- TypeParam table( {{"LJ12", lj12Function, lj12Derivative}}, range);
- SimdReal x, func, der;
-
-- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) alignedMem[GMX_SIMD_REAL_WIDTH];
-+ alignas(GMX_SIMD_ALIGNMENT) real alignedMem[GMX_SIMD_REAL_WIDTH];
-
- // Test all values between 0 and range.second
- for (std::size_t i = 0; i < GMX_SIMD_REAL_WIDTH; i++)
-diff --git a/src/gromacs/utility/basedefinitions.h b/src/gromacs/utility/basedefinitions.h
-index 1c3e36c..a1638ef 100644
---- a/src/gromacs/utility/basedefinitions.h
-+++ b/src/gromacs/utility/basedefinitions.h
-@@ -226,24 +226,6 @@
- #endif
- #endif
-
--/*! \def GMX_ALIGNED(type, alignment)
-- * \brief
-- * Declare variable with data alignment
-- *
-- * \param[in] type Type of variable
-- * \param[in] alignment Alignment in multiples of type
-- *
-- * Typical usage:
-- * \code
-- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) buf[...];
-- \endcode
-- */
--
--// We rely on C++11. This will for instance work for MSVC2015 and later.
--// If you get an error here, find out what attribute to use to get your compiler to align
--// data properly and add it as a case.
--#define GMX_ALIGNED(type, alignment) alignas(alignment*sizeof(type)) type
--
- /*! \brief
- * Macro to explicitly ignore an unused value.
- *
-diff --git a/src/gromacs/utility/tests/CMakeLists.txt b/src/gromacs/utility/tests/CMakeLists.txt
-index 57cf2a1..74ed8f4 100644
---- a/src/gromacs/utility/tests/CMakeLists.txt
-+++ b/src/gromacs/utility/tests/CMakeLists.txt
-@@ -35,7 +35,6 @@
- gmx_add_unit_test(UtilityUnitTests utility-test
- alignedallocator.cpp
- arrayref.cpp
-- basedefinitions.cpp
- bitmask32.cpp bitmask64.cpp bitmask128.cpp
- keyvaluetreeserializer.cpp
- keyvaluetreetransform.cpp
-diff --git a/src/gromacs/utility/tests/basedefinitions.cpp b/src/gromacs/utility/tests/basedefinitions.cpp
-deleted file mode 100644
-index a0223e1..0000000
---- a/src/gromacs/utility/tests/basedefinitions.cpp
-+++ /dev/null
-@@ -1,82 +0,0 @@
--/*
-- * This file is part of the GROMACS molecular simulation package.
-- *
-- * Copyright (c) 2015, by the GROMACS development team, led by
-- * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
-- * and including many others, as listed in the AUTHORS file in the
-- * top-level source directory and at http://www.gromacs.org.
-- *
-- * GROMACS is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU Lesser General Public License
-- * as published by the Free Software Foundation; either version 2.1
-- * of the License, or (at your option) any later version.
-- *
-- * GROMACS is distributed in the hope that it will be useful,
-- * but WITHOUT ANY WARRANTY; without even the implied warranty of
-- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-- * Lesser General Public License for more details.
-- *
-- * You should have received a copy of the GNU Lesser General Public
-- * License along with GROMACS; if not, see
-- * http://www.gnu.org/licenses, or write to the Free Software Foundation,
-- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-- *
-- * If you want to redistribute modifications to GROMACS, please
-- * consider that scientific software is very special. Version
-- * control is crucial - bugs must be traceable. We will be happy to
-- * consider code for inclusion in the official distribution, but
-- * derived work must not be called official GROMACS. Details are found
-- * in the README & COPYING files - if they are missing, get the
-- * official version at http://www.gromacs.org.
-- *
-- * To help us fund GROMACS development, we humbly ask that you cite
-- * the research papers on the package. Check out http://www.gromacs.org.
-- */
--/*! \internal \file
-- * \brief Tests for base definitions (only alignment attributes for now)
-- *
-- * \author Erik Lindahl <erik.lindahl(a)gmail.com>
-- * \ingroup module_utility
-- */
--
--#include "gmxpre.h"
--
--#include "gromacs/utility/basedefinitions.h"
--
--#include <cstdint>
--
--#include <gtest/gtest.h>
--
--#include "gromacs/utility/real.h"
--
--namespace gmx
--{
--
--TEST(BasedefinitionsTest, GmxAlignedDeclaresAlignedVariable)
--{
-- GMX_ALIGNED(real, 2) r1;
-- GMX_ALIGNED(real, 4) r2;
-- GMX_ALIGNED(real, 8) r3;
--
-- std::uint64_t addr1 = reinterpret_cast<std::uint64_t>(&r1);
-- std::uint64_t addr2 = reinterpret_cast<std::uint64_t>(&r2);
-- std::uint64_t addr3 = reinterpret_cast<std::uint64_t>(&r3);
--
-- EXPECT_EQ(0, addr1 % 2);
-- EXPECT_EQ(0, addr2 % 4);
-- EXPECT_EQ(0, addr3 % 8);
--
-- GMX_ALIGNED(int, 2) i1;
-- GMX_ALIGNED(int, 4) i2;
-- GMX_ALIGNED(int, 8) i3;
--
-- addr1 = reinterpret_cast<std::uint64_t>(&i1);
-- addr2 = reinterpret_cast<std::uint64_t>(&i2);
-- addr3 = reinterpret_cast<std::uint64_t>(&i3);
--
-- EXPECT_EQ(0, addr1 % 2);
-- EXPECT_EQ(0, addr2 % 4);
-- EXPECT_EQ(0, addr3 % 8);
--}
--
--}
diff --git a/gromacs.spec b/gromacs.spec
index f388836..f6e78ab 100644
--- a/gromacs.spec
+++ b/gromacs.spec
@@ -1,8 +1,8 @@
%global git 0
%global commit d44d7d6bebdb7fa52090b744854d49f34099e044
%global shortcommit %(c=%{commit}; echo ${c:0:7})
-%global _rcname rc1
-%global _rc -%%_rcname
+#global _rcname rc1
+#global _rc -%%_rcname
%global with_opencl 1
# compilation of OpenCL support is failing only on ppc64le
@@ -36,7 +36,7 @@
Name: gromacs
Version: 2018
-Release: 0.2%{?_rcname}%{?dist}
+Release: 1%{?_rcname}%{?dist}
Summary: Fast, Free and Flexible Molecular Dynamics
License: GPLv2+
URL: http://www.gromacs.org
@@ -60,8 +60,6 @@ Source6: gromacs-README.fedora
# fix path to packaged dssp
# https://bugzilla.redhat.com/show_bug.cgi?id=1203754
Patch0: gromacs-dssp-path.patch
-# https://redmine.gromacs.org/issues/2365
-Patch1: 43a0002.diff
# enable some test on aarch64 - https://redmine.gromacs.org/issues/2366
Patch2: gromacs-issue-2366.patch
# fix building documentation
@@ -242,7 +240,6 @@ This package single and double precision binaries and libraries.
%patch3 -p1 -b .sphinx-no-man
%else
%setup -q -a 2 -n gromacs-%{version}%{?_rc}
-%patch1 -p1
%patch2 -p1
install -Dpm644 %{SOURCE1} ./serial/docs/manual/gromacs.pdf
%endif
@@ -446,6 +443,10 @@ done
%{_libdir}/mpich/bin/mdrun_mpich*
%changelog
+* Fri Jan 19 2018 Christoph Junghans <junghans(a)votca.org> - 2018-1
+- Update to 2018
+- Drop 43a0002.diff, merged upstream
+
* Sat Dec 30 2017 Christoph Junghans <junghans(a)votca.org> - 2018-0.2rc1
- Update to 2018-rc1 for testing
- Update b7713bf.diff to 43a0002.diff
diff --git a/sources b/sources
index 1de6dec..494d67a 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
-SHA512 (gromacs-2018-rc1.tar.gz) = f2a56a2d3ce6efd170f22d66dbb9418ae59257aff27853037570d0939582df947c7558aa652626dd911ee22c037ab0cb1b340b5008bc8f40d27d90883100d375
-SHA512 (manual-2018-rc1.pdf) = 8c736b7efe6555adeca44708d8b4e1fdd36692fbba53128e491feec5a4c663d7ff68a71061f537a883bddc7f22920030c70f78fb1486b86735081362944f5811
-SHA512 (regressiontests-2018-rc1.tar.gz) = feccf48d6af84abf350e5ad829c600f86b8e8e4f4f3378c34b209daa30965e3f68751058f12bdbb228da6b4ccd0a72c8191956ec5bd184f190000a9c97e581a9
+SHA512 (gromacs-2018.tar.gz) = 95c464ec4a0c95b5e7b30571e9693f6be1bce4cd3d6f7d7eeee0f0cd9b8ad43dda4dbb8568e9502706a01d1621f288711227a935060ce524871e6521d53eb902
+SHA512 (regressiontests-2018.tar.gz) = 95d4085bd7d60cd1a40dde25d7a770e549f17f69771a63eb55e95e5735b29ebe76dbfebd5452542fede984e9b3ce0339c166aeb9a42754d36be87b43b6d6b1ec
+SHA512 (manual-2018.pdf) = 253b497655b17be3c98368df5d25727296623ff58b77201e94fdb9f9a0158b0eca7c92d6216f540ae10c70ad25370ac7f088e2fd391573b959b25cdd97310255
commit af90804d074c5dce16984e198de9a534f63d2f28
Author: Christoph Junghans <junghans(a)votca.org>
Date: Sat Dec 30 15:51:11 2017 -0700
added forgotten 43a0002.diff
diff --git a/43a0002.diff b/43a0002.diff
new file mode 100644
index 0000000..38a816a
--- /dev/null
+++ b/43a0002.diff
@@ -0,0 +1,1603 @@
+From 43a0002e84ecbf060dc87559891cf9e70b69cb0e Mon Sep 17 00:00:00 2001
+From: Roland Schulz <roland.schulz(a)intel.com>
+Date: Wed, 27 Dec 2017 10:59:04 -0800
+Subject: [PATCH] Replace GMX_ALIGNED with alignas and SIMD alignment define
+
+This allows each platform to define its required or
+preferred SIMD alignment, and we avoid using alignments
+larger than what might be supported on each architecture.
+Also fix overalignment in pairs.
+
+Fixes #2365
+
+Change-Id: I4793adf31d186eade8a1fd8c920ab75c685ad53f
+---
+
+diff --git a/src/gromacs/ewald/pme-gather.cpp b/src/gromacs/ewald/pme-gather.cpp
+index 2c9e961..edaf535 100644
+--- a/src/gromacs/ewald/pme-gather.cpp
++++ b/src/gromacs/ewald/pme-gather.cpp
+@@ -197,7 +197,7 @@
+ *S0 = load4U(data-offset);
+ *S1 = load4U(data-offset+4);
+ #else
+- GMX_ALIGNED(real, GMX_SIMD4_WIDTH) buf_aligned[GMX_SIMD4_WIDTH*2];
++ alignas(GMX_SIMD_ALIGNMENT) real buf_aligned[GMX_SIMD4_WIDTH*2];
+ /* Copy data to an aligned buffer */
+ for (int i = 0; i < order; i++)
+ {
+diff --git a/src/gromacs/ewald/pme-spline-work.cpp b/src/gromacs/ewald/pme-spline-work.cpp
+index 5859a34..cb4a625 100644
+--- a/src/gromacs/ewald/pme-spline-work.cpp
++++ b/src/gromacs/ewald/pme-spline-work.cpp
+@@ -54,7 +54,7 @@
+ pme_spline_work *work;
+
+ #ifdef PME_SIMD4_SPREAD_GATHER
+- GMX_ALIGNED(real, GMX_SIMD4_WIDTH) tmp[GMX_SIMD4_WIDTH*2];
++ alignas(GMX_SIMD_ALIGNMENT) real tmp[GMX_SIMD4_WIDTH*2];
+ Simd4Real zero_S;
+ Simd4Real real_mask_S0, real_mask_S1;
+ int of, i;
+diff --git a/src/gromacs/ewald/pme-spread.cpp b/src/gromacs/ewald/pme-spread.cpp
+index b3db6c3..f38efc8 100644
+--- a/src/gromacs/ewald/pme-spread.cpp
++++ b/src/gromacs/ewald/pme-spread.cpp
+@@ -329,7 +329,7 @@
+ int offx, offy, offz;
+
+ #if defined PME_SIMD4_SPREAD_GATHER && !defined PME_SIMD4_UNALIGNED
+- GMX_ALIGNED(real, GMX_SIMD4_WIDTH) thz_aligned[GMX_SIMD4_WIDTH*2];
++ alignas(GMX_SIMD_ALIGNMENT) real thz_aligned[GMX_SIMD4_WIDTH*2];
+ #endif
+
+ pnx = pmegrid->s[XX];
+diff --git a/src/gromacs/listed-forces/bonded.cpp b/src/gromacs/listed-forces/bonded.cpp
+index c9d7b45..425e744 100644
+--- a/src/gromacs/listed-forces/bonded.cpp
++++ b/src/gromacs/listed-forces/bonded.cpp
+@@ -982,10 +982,10 @@
+ const int nfa1 = 4;
+ int i, iu, s;
+ int type;
+- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) ai[GMX_SIMD_REAL_WIDTH];
+- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) aj[GMX_SIMD_REAL_WIDTH];
+- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) ak[GMX_SIMD_REAL_WIDTH];
+- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) coeff[2*GMX_SIMD_REAL_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) std::int32_t ai[GMX_SIMD_REAL_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) std::int32_t aj[GMX_SIMD_REAL_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) std::int32_t ak[GMX_SIMD_REAL_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) real coeff[2*GMX_SIMD_REAL_WIDTH];
+ SimdReal deg2rad_S(DEG2RAD);
+ SimdReal xi_S, yi_S, zi_S;
+ SimdReal xj_S, yj_S, zj_S;
+@@ -1005,7 +1005,7 @@
+ SimdReal cik_S, cii_S, ckk_S;
+ SimdReal f_ix_S, f_iy_S, f_iz_S;
+ SimdReal f_kx_S, f_ky_S, f_kz_S;
+- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) pbc_simd[9*GMX_SIMD_REAL_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) real pbc_simd[9*GMX_SIMD_REAL_WIDTH];
+
+ set_pbc_simd(pbc, pbc_simd);
+
+@@ -1309,11 +1309,11 @@
+ int gmx_unused *global_atom_index)
+ {
+ constexpr int nfa1 = 4;
+- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) ai[GMX_SIMD_REAL_WIDTH];
+- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) aj[GMX_SIMD_REAL_WIDTH];
+- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) ak[GMX_SIMD_REAL_WIDTH];
+- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) coeff[4*GMX_SIMD_REAL_WIDTH];
+- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) pbc_simd[9*GMX_SIMD_REAL_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) std::int32_t ai[GMX_SIMD_REAL_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) std::int32_t aj[GMX_SIMD_REAL_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) std::int32_t ak[GMX_SIMD_REAL_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) real coeff[4*GMX_SIMD_REAL_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) real pbc_simd[9*GMX_SIMD_REAL_WIDTH];
+
+ set_pbc_simd(pbc, pbc_simd);
+
+@@ -1995,11 +1995,11 @@
+ const int nfa1 = 5;
+ int i, iu, s;
+ int type;
+- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) ai[GMX_SIMD_REAL_WIDTH];
+- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) aj[GMX_SIMD_REAL_WIDTH];
+- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) ak[GMX_SIMD_REAL_WIDTH];
+- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) al[GMX_SIMD_REAL_WIDTH];
+- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) buf[3*GMX_SIMD_REAL_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) std::int32_t ai[GMX_SIMD_REAL_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) std::int32_t aj[GMX_SIMD_REAL_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) std::int32_t ak[GMX_SIMD_REAL_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) std::int32_t al[GMX_SIMD_REAL_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) real buf[3*GMX_SIMD_REAL_WIDTH];
+ real *cp, *phi0, *mult;
+ SimdReal deg2rad_S(DEG2RAD);
+ SimdReal p_S, q_S;
+@@ -2011,7 +2011,7 @@
+ SimdReal sin_S, cos_S;
+ SimdReal mddphi_S;
+ SimdReal sf_i_S, msf_l_S;
+- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) pbc_simd[9*GMX_SIMD_REAL_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) real pbc_simd[9*GMX_SIMD_REAL_WIDTH];
+
+ /* Extract aligned pointer for parameters and variables */
+ cp = buf + 0*GMX_SIMD_REAL_WIDTH;
+@@ -2110,11 +2110,11 @@
+ const int nfa1 = 5;
+ int i, iu, s, j;
+ int type;
+- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) ai[GMX_SIMD_REAL_WIDTH];
+- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) aj[GMX_SIMD_REAL_WIDTH];
+- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) ak[GMX_SIMD_REAL_WIDTH];
+- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) al[GMX_SIMD_REAL_WIDTH];
+- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) parm[NR_RBDIHS*GMX_SIMD_REAL_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) std::int32_t ai[GMX_SIMD_REAL_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) std::int32_t aj[GMX_SIMD_REAL_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) std::int32_t ak[GMX_SIMD_REAL_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) std::int32_t al[GMX_SIMD_REAL_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) real parm[NR_RBDIHS*GMX_SIMD_REAL_WIDTH];
+
+ SimdReal p_S, q_S;
+ SimdReal phi_S;
+@@ -2125,7 +2125,7 @@
+ SimdReal parm_S, c_S;
+ SimdReal sin_S, cos_S;
+ SimdReal sf_i_S, msf_l_S;
+- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) pbc_simd[9*GMX_SIMD_REAL_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) real pbc_simd[9*GMX_SIMD_REAL_WIDTH];
+
+ SimdReal pi_S(M_PI);
+ SimdReal one_S(1.0);
+diff --git a/src/gromacs/listed-forces/pairs.cpp b/src/gromacs/listed-forces/pairs.cpp
+index 6d0d179..dd4b061 100644
+--- a/src/gromacs/listed-forces/pairs.cpp
++++ b/src/gromacs/listed-forces/pairs.cpp
+@@ -550,11 +550,15 @@
+ T twelve(12);
+ T ef(scale_factor);
+
+- const int align = 16;
+- GMX_ASSERT(pack_size <= align, "align should be increased");
+- GMX_ALIGNED(int, align) ai[pack_size];
+- GMX_ALIGNED(int, align) aj[pack_size];
+- GMX_ALIGNED(real, align) coeff[3*pack_size];
++#if GMX_SIMD_HAVE_REAL
++ alignas(GMX_SIMD_ALIGNMENT) std::int32_t ai[pack_size];
++ alignas(GMX_SIMD_ALIGNMENT) std::int32_t aj[pack_size];
++ alignas(GMX_SIMD_ALIGNMENT) real coeff[3*pack_size];
++#else
++ std::int32_t ai[pack_size];
++ std::int32_t aj[pack_size];
++ real coeff[3*pack_size];
++#endif
+
+ /* nbonds is #pairs*nfa1, here we step pack_size pairs */
+ for (int i = 0; i < nbonds; i += pack_size*nfa1)
+@@ -658,7 +662,7 @@
+ * at once for the angles and dihedrals as well.
+ */
+ #if GMX_SIMD
+- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) pbc_simd[9*GMX_SIMD_REAL_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) real pbc_simd[9*GMX_SIMD_REAL_WIDTH];
+ set_pbc_simd(pbc, pbc_simd);
+
+ do_pairs_simple<SimdReal, GMX_SIMD_REAL_WIDTH,
+diff --git a/src/gromacs/mdlib/clincs.cpp b/src/gromacs/mdlib/clincs.cpp
+index 336e75b..6b27251 100644
+--- a/src/gromacs/mdlib/clincs.cpp
++++ b/src/gromacs/mdlib/clincs.cpp
+@@ -441,7 +441,7 @@
+ {
+ assert(b0 % GMX_SIMD_REAL_WIDTH == 0);
+
+- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) offset2[GMX_SIMD_REAL_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) std::int32_t offset2[GMX_SIMD_REAL_WIDTH];
+
+ for (int i = 0; i < GMX_SIMD_REAL_WIDTH; i++)
+ {
+@@ -454,8 +454,8 @@
+ SimdReal x1_S, y1_S, z1_S;
+ SimdReal rx_S, ry_S, rz_S, n2_S, il_S;
+ SimdReal fx_S, fy_S, fz_S, ip_S, rhs_S;
+- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) offset0[GMX_SIMD_REAL_WIDTH];
+- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) offset1[GMX_SIMD_REAL_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) std::int32_t offset0[GMX_SIMD_REAL_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) std::int32_t offset1[GMX_SIMD_REAL_WIDTH];
+
+ for (int i = 0; i < GMX_SIMD_REAL_WIDTH; i++)
+ {
+@@ -537,7 +537,7 @@
+ * The only difference is that we always call pbc code, as with SIMD
+ * the overhead of pbc computation (when not needed) is small.
+ */
+- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) pbc_simd[9*GMX_SIMD_REAL_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) real pbc_simd[9*GMX_SIMD_REAL_WIDTH];
+
+ /* Convert the pbc struct for SIMD */
+ set_pbc_simd(pbc, pbc_simd);
+@@ -695,7 +695,7 @@
+ real * gmx_restrict sol)
+ {
+ assert(b0 % GMX_SIMD_REAL_WIDTH == 0);
+- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) offset2[GMX_SIMD_REAL_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) std::int32_t offset2[GMX_SIMD_REAL_WIDTH];
+
+ for (int i = 0; i < GMX_SIMD_REAL_WIDTH; i++)
+ {
+@@ -708,8 +708,8 @@
+ SimdReal x1_S, y1_S, z1_S;
+ SimdReal rx_S, ry_S, rz_S, n2_S, il_S;
+ SimdReal rxp_S, ryp_S, rzp_S, ip_S, rhs_S;
+- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) offset0[GMX_SIMD_REAL_WIDTH];
+- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) offset1[GMX_SIMD_REAL_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) std::int32_t offset0[GMX_SIMD_REAL_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) std::int32_t offset1[GMX_SIMD_REAL_WIDTH];
+
+ for (int i = 0; i < GMX_SIMD_REAL_WIDTH; i++)
+ {
+@@ -835,8 +835,8 @@
+ SimdReal x1_S, y1_S, z1_S;
+ SimdReal rx_S, ry_S, rz_S, n2_S;
+ SimdReal len_S, len2_S, dlen2_S, lc_S, blc_S;
+- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) offset0[GMX_SIMD_REAL_WIDTH];
+- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) offset1[GMX_SIMD_REAL_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) std::int32_t offset0[GMX_SIMD_REAL_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) std::int32_t offset1[GMX_SIMD_REAL_WIDTH];
+
+ for (int i = 0; i < GMX_SIMD_REAL_WIDTH; i++)
+ {
+@@ -923,7 +923,7 @@
+ * The only difference is that we always call pbc code, as with SIMD
+ * the overhead of pbc computation (when not needed) is small.
+ */
+- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) pbc_simd[9*GMX_SIMD_REAL_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) real pbc_simd[9*GMX_SIMD_REAL_WIDTH];
+
+ /* Convert the pbc struct for SIMD */
+ set_pbc_simd(pbc, pbc_simd);
+diff --git a/src/gromacs/mdlib/csettle.cpp b/src/gromacs/mdlib/csettle.cpp
+index 34a011a..d65405c 100644
+--- a/src/gromacs/mdlib/csettle.cpp
++++ b/src/gromacs/mdlib/csettle.cpp
+@@ -850,7 +850,7 @@
+ if (settled->bUseSimd)
+ {
+ /* Convert the pbc struct for SIMD */
+- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) pbcSimd[9*GMX_SIMD_REAL_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) real pbcSimd[9*GMX_SIMD_REAL_WIDTH];
+ set_pbc_simd(pbc, pbcSimd);
+
+ settleTemplateWrapper<SimdReal, SimdBool, GMX_SIMD_REAL_WIDTH,
+diff --git a/src/gromacs/mdlib/nbnxn_kernels/simd_2xnn/nbnxn_kernel_simd_2xnn_inner.h b/src/gromacs/mdlib/nbnxn_kernels/simd_2xnn/nbnxn_kernel_simd_2xnn_inner.h
+index 3dfc89b..ff96857 100644
+--- a/src/gromacs/mdlib/nbnxn_kernels/simd_2xnn/nbnxn_kernel_simd_2xnn_inner.h
++++ b/src/gromacs/mdlib/nbnxn_kernels/simd_2xnn/nbnxn_kernel_simd_2xnn_inner.h
+@@ -279,7 +279,7 @@
+ #ifdef COUNT_PAIRS
+ {
+ int i, j;
+- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) tmp[GMX_SIMD_REAL_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) real tmp[GMX_SIMD_REAL_WIDTH];
+
+ for (i = 0; i < UNROLLI; i += 2)
+ {
+diff --git a/src/gromacs/mdlib/nbnxn_kernels/simd_2xnn/nbnxn_kernel_simd_2xnn_outer.h b/src/gromacs/mdlib/nbnxn_kernels/simd_2xnn/nbnxn_kernel_simd_2xnn_outer.h
+index 2aa9944..b2960bc 100644
+--- a/src/gromacs/mdlib/nbnxn_kernels/simd_2xnn/nbnxn_kernel_simd_2xnn_outer.h
++++ b/src/gromacs/mdlib/nbnxn_kernels/simd_2xnn/nbnxn_kernel_simd_2xnn_outer.h
+@@ -138,7 +138,7 @@
+ SimdReal hsig_i_S2, seps_i_S2;
+ #else
+ #ifdef FIX_LJ_C
+- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) pvdw_c6[2*UNROLLI*UNROLLJ];
++ alignas(GMX_SIMD_ALIGNMENT) real pvdw_c6[2*UNROLLI*UNROLLJ];
+ real *pvdw_c12 = pvdw_c6 + UNROLLI*UNROLLJ;
+ #endif
+
+diff --git a/src/gromacs/mdlib/nbnxn_kernels/simd_4xn/nbnxn_kernel_simd_4xn_inner.h b/src/gromacs/mdlib/nbnxn_kernels/simd_4xn/nbnxn_kernel_simd_4xn_inner.h
+index f0b0b7a..782a3fb 100644
+--- a/src/gromacs/mdlib/nbnxn_kernels/simd_4xn/nbnxn_kernel_simd_4xn_inner.h
++++ b/src/gromacs/mdlib/nbnxn_kernels/simd_4xn/nbnxn_kernel_simd_4xn_inner.h
+@@ -363,7 +363,7 @@
+ #ifdef COUNT_PAIRS
+ {
+ int i, j;
+- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) tmp[2*GMX_SIMD_REAL_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) real tmp[2*GMX_SIMD_REAL_WIDTH];
+
+ for (i = 0; i < UNROLLI; i++)
+ {
+diff --git a/src/gromacs/mdlib/nbnxn_kernels/simd_4xn/nbnxn_kernel_simd_4xn_outer.h b/src/gromacs/mdlib/nbnxn_kernels/simd_4xn/nbnxn_kernel_simd_4xn_outer.h
+index 167379c..8ca5126 100644
+--- a/src/gromacs/mdlib/nbnxn_kernels/simd_4xn/nbnxn_kernel_simd_4xn_outer.h
++++ b/src/gromacs/mdlib/nbnxn_kernels/simd_4xn/nbnxn_kernel_simd_4xn_outer.h
+@@ -334,7 +334,7 @@
+ x = nbat->x;
+
+ #ifdef FIX_LJ_C
+- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) pvdw_c6[2*UNROLLI*UNROLLJ];
++ alignas(GMX_SIMD_ALIGNMENT) real pvdw_c6[2*UNROLLI*UNROLLJ];
+ real *pvdw_c12 = pvdw_c6 + UNROLLI*UNROLLJ;
+
+ for (int jp = 0; jp < UNROLLJ; jp++)
+diff --git a/src/gromacs/simd/impl_arm_neon/impl_arm_neon_definitions.h b/src/gromacs/simd/impl_arm_neon/impl_arm_neon_definitions.h
+index 2800f1f..388c446 100644
+--- a/src/gromacs/simd/impl_arm_neon/impl_arm_neon_definitions.h
++++ b/src/gromacs/simd/impl_arm_neon/impl_arm_neon_definitions.h
+@@ -75,6 +75,7 @@
+ #define GMX_SIMD_FINT32_WIDTH 4
+ #undef GMX_SIMD_DINT32_WIDTH
+ #define GMX_SIMD4_WIDTH 4
++#define GMX_SIMD_ALIGNMENT 16 // Bytes (4*single)
+ #define GMX_SIMD_RSQRT_BITS 8
+ #define GMX_SIMD_RCP_BITS 8
+
+diff --git a/src/gromacs/simd/impl_arm_neon/impl_arm_neon_util_float.h b/src/gromacs/simd/impl_arm_neon/impl_arm_neon_util_float.h
+index d2919f4..2648fef 100644
+--- a/src/gromacs/simd/impl_arm_neon/impl_arm_neon_util_float.h
++++ b/src/gromacs/simd/impl_arm_neon/impl_arm_neon_util_float.h
+@@ -1,7 +1,7 @@
+ /*
+ * This file is part of the GROMACS molecular simulation package.
+ *
+- * Copyright (c) 2014,2015,2016, by the GROMACS development team, led by
++ * Copyright (c) 2014,2015,2016,2017, by the GROMACS development team, led by
+ * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
+ * and including many others, as listed in the AUTHORS file in the
+ * top-level source directory and at http://www.gromacs.org.
+@@ -286,7 +286,7 @@
+ SimdFloat * v2,
+ SimdFloat * v3)
+ {
+- GMX_ALIGNED(int, GMX_SIMD_FINT32_WIDTH) ioffset[GMX_SIMD_FINT32_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) std::int32_t ioffset[GMX_SIMD_FINT32_WIDTH];
+
+ assert(std::size_t(base) % 16 == 0);
+ assert(align % 4 == 0);
+@@ -302,7 +302,7 @@
+ SimdFloat * v0,
+ SimdFloat * v1)
+ {
+- GMX_ALIGNED(int, GMX_SIMD_FINT32_WIDTH) ioffset[GMX_SIMD_FINT32_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) std::int32_t ioffset[GMX_SIMD_FINT32_WIDTH];
+
+ store(ioffset, offset);
+ gatherLoadTranspose<align>(base, ioffset, v0, v1);
+@@ -317,7 +317,7 @@
+ SimdFloat * v0,
+ SimdFloat * v1)
+ {
+- GMX_ALIGNED(int, GMX_SIMD_FINT32_WIDTH) ioffset[GMX_SIMD_FINT32_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) std::int32_t ioffset[GMX_SIMD_FINT32_WIDTH];
+
+ store(ioffset, offset);
+ v0->simdInternal_ = vcombine_f32(vld1_f32( base + align * ioffset[0] ),
+diff --git a/src/gromacs/simd/impl_arm_neon_asimd/impl_arm_neon_asimd_definitions.h b/src/gromacs/simd/impl_arm_neon_asimd/impl_arm_neon_asimd_definitions.h
+index ab1a778..c7b807d 100644
+--- a/src/gromacs/simd/impl_arm_neon_asimd/impl_arm_neon_asimd_definitions.h
++++ b/src/gromacs/simd/impl_arm_neon_asimd/impl_arm_neon_asimd_definitions.h
+@@ -1,7 +1,7 @@
+ /*
+ * This file is part of the GROMACS molecular simulation package.
+ *
+- * Copyright (c) 2014,2015, by the GROMACS development team, led by
++ * Copyright (c) 2014,2015,2017, by the GROMACS development team, led by
+ * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
+ * and including many others, as listed in the AUTHORS file in the
+ * top-level source directory and at http://www.gromacs.org.
+@@ -77,6 +77,7 @@
+ #define GMX_SIMD_FINT32_WIDTH 4
+ #define GMX_SIMD_DINT32_WIDTH 2
+ #define GMX_SIMD4_WIDTH 4
++#define GMX_SIMD_ALIGNMENT 16 // Bytes (4*single or 2*double)
+ #define GMX_SIMD_RSQRT_BITS 8
+ #define GMX_SIMD_RCP_BITS 8
+
+diff --git a/src/gromacs/simd/impl_arm_neon_asimd/impl_arm_neon_asimd_util_double.h b/src/gromacs/simd/impl_arm_neon_asimd/impl_arm_neon_asimd_util_double.h
+index 45abcbb..ec54d0e 100644
+--- a/src/gromacs/simd/impl_arm_neon_asimd/impl_arm_neon_asimd_util_double.h
++++ b/src/gromacs/simd/impl_arm_neon_asimd/impl_arm_neon_asimd_util_double.h
+@@ -1,7 +1,7 @@
+ /*
+ * This file is part of the GROMACS molecular simulation package.
+ *
+- * Copyright (c) 2014,2015, by the GROMACS development team, led by
++ * Copyright (c) 2014,2015,2017, by the GROMACS development team, led by
+ * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
+ * and including many others, as listed in the AUTHORS file in the
+ * top-level source directory and at http://www.gromacs.org.
+@@ -225,7 +225,7 @@
+ SimdDouble * v2,
+ SimdDouble * v3)
+ {
+- GMX_ALIGNED(int, GMX_SIMD_DINT32_WIDTH) ioffset[GMX_SIMD_DINT32_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) std::int32_t ioffset[GMX_SIMD_DINT32_WIDTH];
+
+ assert(std::size_t(base) % 16 == 0);
+ assert(align % 2 == 0);
+@@ -242,7 +242,7 @@
+ SimdDouble * v0,
+ SimdDouble * v1)
+ {
+- GMX_ALIGNED(int, GMX_SIMD_DINT32_WIDTH) ioffset[GMX_SIMD_DINT32_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) std::int32_t ioffset[GMX_SIMD_DINT32_WIDTH];
+
+ assert(std::size_t(base) % 16 == 0);
+ assert(align % 2 == 0);
+@@ -258,7 +258,7 @@
+ SimdDouble * v0,
+ SimdDouble * v1)
+ {
+- GMX_ALIGNED(int, GMX_SIMD_DINT32_WIDTH) ioffset[GMX_SIMD_DINT32_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) std::int32_t ioffset[GMX_SIMD_DINT32_WIDTH];
+
+ vst1_s32(ioffset, offset.simdInternal_);
+
+diff --git a/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_definitions.h b/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_definitions.h
+index 1da37d2..9912800 100644
+--- a/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_definitions.h
++++ b/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_definitions.h
+@@ -1,7 +1,7 @@
+ /*
+ * This file is part of the GROMACS molecular simulation package.
+ *
+- * Copyright (c) 2014,2015, by the GROMACS development team, led by
++ * Copyright (c) 2014,2015,2017, by the GROMACS development team, led by
+ * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
+ * and including many others, as listed in the AUTHORS file in the
+ * top-level source directory and at http://www.gromacs.org.
+@@ -75,6 +75,7 @@
+ #define GMX_SIMD_FINT32_WIDTH 4
+ #define GMX_SIMD_DINT32_WIDTH 4
+ #define GMX_SIMD4_WIDTH 4
++#define GMX_SIMD_ALIGNMENT 32 // Bytes (4*double)
+ #define GMX_SIMD_RSQRT_BITS 14
+ #define GMX_SIMD_RCP_BITS 14
+
+diff --git a/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_simd_double.h b/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_simd_double.h
+index dc20d78..16a2f8f 100644
+--- a/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_simd_double.h
++++ b/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_simd_double.h
+@@ -75,7 +75,7 @@
+
+ SimdDInt32(std::int32_t i)
+ {
+- GMX_ALIGNED(int, GMX_SIMD_DINT32_WIDTH) idata[GMX_SIMD_DINT32_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) std::int32_t idata[GMX_SIMD_DINT32_WIDTH];
+ idata[0] = i;
+ simdInternal_ = vec_splat(vec_ldia(0, idata), 0);
+ }
+@@ -332,8 +332,8 @@
+ static inline SimdDouble
+ frexp(SimdDouble value, SimdDInt32 * exponent)
+ {
+- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) rdata[GMX_SIMD_DOUBLE_WIDTH];
+- GMX_ALIGNED(int, GMX_SIMD_DOUBLE_WIDTH) idata[GMX_SIMD_DOUBLE_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) double rdata[GMX_SIMD_DOUBLE_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) std::int32_t idata[GMX_SIMD_DOUBLE_WIDTH];
+
+ vec_st(value.simdInternal_, 0, rdata);
+
+@@ -352,8 +352,8 @@
+ static inline SimdDouble
+ ldexp(SimdDouble value, SimdDInt32 exponent)
+ {
+- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) rdata[GMX_SIMD_DOUBLE_WIDTH];
+- GMX_ALIGNED(int, GMX_SIMD_DOUBLE_WIDTH) idata[GMX_SIMD_DOUBLE_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) double rdata[GMX_SIMD_DOUBLE_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) std::int32_t idata[GMX_SIMD_DOUBLE_WIDTH];
+
+ vec_st(value.simdInternal_, 0, rdata);
+ vec_st(exponent.simdInternal_, 0, idata);
+diff --git a/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_simd_float.h b/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_simd_float.h
+index 12ffdbd..83b74d1 100644
+--- a/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_simd_float.h
++++ b/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_simd_float.h
+@@ -72,7 +72,7 @@
+
+ SimdFInt32(std::int32_t i)
+ {
+- GMX_ALIGNED(int, GMX_SIMD_FINT32_WIDTH) idata[GMX_SIMD_FINT32_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) std::int32_t idata[GMX_SIMD_FINT32_WIDTH];
+ idata[0] = i;
+ simdInternal_ = vec_splat(vec_ldia(0, idata), 0);
+ }
+@@ -329,8 +329,8 @@
+ static inline SimdFloat
+ frexp(SimdFloat value, SimdFInt32 * exponent)
+ {
+- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) rdata[GMX_SIMD_FLOAT_WIDTH];
+- GMX_ALIGNED(int, GMX_SIMD_FLOAT_WIDTH) idata[GMX_SIMD_FLOAT_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) float rdata[GMX_SIMD_FLOAT_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) std::int32_t idata[GMX_SIMD_FLOAT_WIDTH];
+
+ vec_st(value.simdInternal_, 0, rdata);
+
+@@ -349,8 +349,8 @@
+ static inline SimdFloat
+ ldexp(SimdFloat value, SimdFInt32 exponent)
+ {
+- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) rdata[GMX_SIMD_FLOAT_WIDTH];
+- GMX_ALIGNED(int, GMX_SIMD_FLOAT_WIDTH) idata[GMX_SIMD_FLOAT_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) float rdata[GMX_SIMD_FLOAT_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) std::int32_t idata[GMX_SIMD_FLOAT_WIDTH];
+
+ vec_st(value.simdInternal_, 0, rdata);
+ vec_st(exponent.simdInternal_, 0, idata);
+diff --git a/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_util_double.h b/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_util_double.h
+index 5a220c4..633327a 100644
+--- a/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_util_double.h
++++ b/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_util_double.h
+@@ -1,7 +1,7 @@
+ /*
+ * This file is part of the GROMACS molecular simulation package.
+ *
+- * Copyright (c) 2014,2015,2016, by the GROMACS development team, led by
++ * Copyright (c) 2014,2015,2016,2017, by the GROMACS development team, led by
+ * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
+ * and including many others, as listed in the AUTHORS file in the
+ * top-level source directory and at http://www.gromacs.org.
+@@ -143,9 +143,9 @@
+ SimdDouble v1,
+ SimdDouble v2)
+ {
+- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) m0[GMX_SIMD_DOUBLE_WIDTH];
+- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) m1[GMX_SIMD_DOUBLE_WIDTH];
+- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) m2[GMX_SIMD_DOUBLE_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) double m0[GMX_SIMD_DOUBLE_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) double m1[GMX_SIMD_DOUBLE_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) double m2[GMX_SIMD_DOUBLE_WIDTH];
+
+ store(m0, v0);
+ store(m1, v1);
+@@ -193,9 +193,9 @@
+ }
+ else
+ {
+- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) m0[GMX_SIMD_DOUBLE_WIDTH];
+- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) m1[GMX_SIMD_DOUBLE_WIDTH];
+- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) m2[GMX_SIMD_DOUBLE_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) double m0[GMX_SIMD_DOUBLE_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) double m1[GMX_SIMD_DOUBLE_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) double m2[GMX_SIMD_DOUBLE_WIDTH];
+
+ store(m0, v0);
+ store(m1, v1);
+@@ -244,9 +244,9 @@
+ }
+ else
+ {
+- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) m0[GMX_SIMD_DOUBLE_WIDTH];
+- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) m1[GMX_SIMD_DOUBLE_WIDTH];
+- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) m2[GMX_SIMD_DOUBLE_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) double m0[GMX_SIMD_DOUBLE_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) double m1[GMX_SIMD_DOUBLE_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) double m2[GMX_SIMD_DOUBLE_WIDTH];
+
+ store(m0, v0);
+ store(m1, v1);
+@@ -287,7 +287,7 @@
+ SimdDouble * v2,
+ SimdDouble * v3)
+ {
+- GMX_ALIGNED(int, GMX_SIMD_DOUBLE_WIDTH) ioffset[GMX_SIMD_DOUBLE_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) std::int32_t ioffset[GMX_SIMD_DOUBLE_WIDTH];
+
+ store(ioffset, simdoffset);
+ gatherLoadTranspose<align>(base, ioffset, v0, v1, v2, v3);
+@@ -300,7 +300,7 @@
+ SimdDouble * v0,
+ SimdDouble * v1)
+ {
+- GMX_ALIGNED(int, GMX_SIMD_DOUBLE_WIDTH) ioffset[GMX_SIMD_DOUBLE_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) std::int32_t ioffset[GMX_SIMD_DOUBLE_WIDTH];
+
+ store(ioffset, simdoffset);
+ gatherLoadTranspose<align>(base, ioffset, v0, v1);
+diff --git a/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_util_float.h b/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_util_float.h
+index 2e12fab..c3b3d9c 100644
+--- a/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_util_float.h
++++ b/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_util_float.h
+@@ -1,7 +1,7 @@
+ /*
+ * This file is part of the GROMACS molecular simulation package.
+ *
+- * Copyright (c) 2014,2015,2016, by the GROMACS development team, led by
++ * Copyright (c) 2014,2015,2016,2017, by the GROMACS development team, led by
+ * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
+ * and including many others, as listed in the AUTHORS file in the
+ * top-level source directory and at http://www.gromacs.org.
+@@ -143,9 +143,9 @@
+ SimdFloat v1,
+ SimdFloat v2)
+ {
+- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) m0[GMX_SIMD_FLOAT_WIDTH];
+- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) m1[GMX_SIMD_FLOAT_WIDTH];
+- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) m2[GMX_SIMD_FLOAT_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) float m0[GMX_SIMD_FLOAT_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) float m1[GMX_SIMD_FLOAT_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) float m2[GMX_SIMD_FLOAT_WIDTH];
+
+ store(m0, v0);
+ store(m1, v1);
+@@ -193,9 +193,9 @@
+ }
+ else
+ {
+- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) m0[GMX_SIMD_FLOAT_WIDTH];
+- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) m1[GMX_SIMD_FLOAT_WIDTH];
+- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) m2[GMX_SIMD_FLOAT_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) float m0[GMX_SIMD_FLOAT_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) float m1[GMX_SIMD_FLOAT_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) float m2[GMX_SIMD_FLOAT_WIDTH];
+
+ store(m0, v0);
+ store(m1, v1);
+@@ -244,9 +244,9 @@
+ }
+ else
+ {
+- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) m0[GMX_SIMD_FLOAT_WIDTH];
+- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) m1[GMX_SIMD_FLOAT_WIDTH];
+- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) m2[GMX_SIMD_FLOAT_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) float m0[GMX_SIMD_FLOAT_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) float m1[GMX_SIMD_FLOAT_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) float m2[GMX_SIMD_FLOAT_WIDTH];
+
+ store(m0, v0);
+ store(m1, v1);
+@@ -287,7 +287,7 @@
+ SimdFloat * v2,
+ SimdFloat * v3)
+ {
+- GMX_ALIGNED(int, GMX_SIMD_FLOAT_WIDTH) ioffset[GMX_SIMD_FLOAT_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) int ioffset[GMX_SIMD_FLOAT_WIDTH];
+
+ store(ioffset, simdoffset);
+ gatherLoadTranspose<align>(base, ioffset, v0, v1, v2, v3);
+@@ -300,7 +300,7 @@
+ SimdFloat * v0,
+ SimdFloat * v1)
+ {
+- GMX_ALIGNED(int, GMX_SIMD_FLOAT_WIDTH) ioffset[GMX_SIMD_FLOAT_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) int ioffset[GMX_SIMD_FLOAT_WIDTH];
+
+ store(ioffset, simdoffset);
+ gatherLoadTranspose<align>(base, ioffset, v0, v1);
+diff --git a/src/gromacs/simd/impl_ibm_vmx/impl_ibm_vmx_definitions.h b/src/gromacs/simd/impl_ibm_vmx/impl_ibm_vmx_definitions.h
+index e01f1bb..1878d2a 100644
+--- a/src/gromacs/simd/impl_ibm_vmx/impl_ibm_vmx_definitions.h
++++ b/src/gromacs/simd/impl_ibm_vmx/impl_ibm_vmx_definitions.h
+@@ -1,7 +1,7 @@
+ /*
+ * This file is part of the GROMACS molecular simulation package.
+ *
+- * Copyright (c) 2014,2015, by the GROMACS development team, led by
++ * Copyright (c) 2014,2015,2017, by the GROMACS development team, led by
+ * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
+ * and including many others, as listed in the AUTHORS file in the
+ * top-level source directory and at http://www.gromacs.org.
+@@ -89,6 +89,7 @@
+ #define GMX_SIMD_FINT32_WIDTH 4
+ #undef GMX_SIMD_DINT32_WIDTH
+ #define GMX_SIMD4_WIDTH 4
++#define GMX_SIMD_ALIGNMENT 16 // Bytes (4*single)
+ #define GMX_SIMD_RSQRT_BITS 14
+ #define GMX_SIMD_RCP_BITS 14
+
+diff --git a/src/gromacs/simd/impl_ibm_vmx/impl_ibm_vmx_util_float.h b/src/gromacs/simd/impl_ibm_vmx/impl_ibm_vmx_util_float.h
+index 95690c3..e4edc8d 100644
+--- a/src/gromacs/simd/impl_ibm_vmx/impl_ibm_vmx_util_float.h
++++ b/src/gromacs/simd/impl_ibm_vmx/impl_ibm_vmx_util_float.h
+@@ -1,7 +1,7 @@
+ /*
+ * This file is part of the GROMACS molecular simulation package.
+ *
+- * Copyright (c) 2014,2015,2016, by the GROMACS development team, led by
++ * Copyright (c) 2014,2015,2016,2017, by the GROMACS development team, led by
+ * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
+ * and including many others, as listed in the AUTHORS file in the
+ * top-level source directory and at http://www.gromacs.org.
+@@ -273,9 +273,9 @@
+ }
+ else
+ {
+- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) rdata0[GMX_SIMD_FLOAT_WIDTH];
+- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) rdata1[GMX_SIMD_FLOAT_WIDTH];
+- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) rdata2[GMX_SIMD_FLOAT_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) float rdata0[GMX_SIMD_FLOAT_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) float rdata1[GMX_SIMD_FLOAT_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) float rdata2[GMX_SIMD_FLOAT_WIDTH];
+
+ vec_st(v0.simdInternal_, 0, rdata0);
+ vec_st(v1.simdInternal_, 0, rdata1);
+@@ -323,9 +323,9 @@
+ }
+ else
+ {
+- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) rdata0[GMX_SIMD_FLOAT_WIDTH];
+- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) rdata1[GMX_SIMD_FLOAT_WIDTH];
+- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) rdata2[GMX_SIMD_FLOAT_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) float rdata0[GMX_SIMD_FLOAT_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) float rdata1[GMX_SIMD_FLOAT_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) float rdata2[GMX_SIMD_FLOAT_WIDTH];
+
+ vec_st(v0.simdInternal_, 0, rdata0);
+ vec_st(v1.simdInternal_, 0, rdata1);
+@@ -371,7 +371,7 @@
+ SimdFloat * v2,
+ SimdFloat * v3)
+ {
+- GMX_ALIGNED(int, GMX_SIMD_FINT32_WIDTH) ioffset[GMX_SIMD_FINT32_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) std::int32_t ioffset[GMX_SIMD_FINT32_WIDTH];
+
+ vec_st( offset.simdInternal_, 0, ioffset);
+ gatherLoadTranspose<align>(base, ioffset, v0, v1, v2, v3);
+@@ -384,7 +384,7 @@
+ SimdFloat * v0,
+ SimdFloat * v1)
+ {
+- GMX_ALIGNED(int, GMX_SIMD_FINT32_WIDTH) ioffset[GMX_SIMD_FINT32_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) std::int32_t ioffset[GMX_SIMD_FINT32_WIDTH];
+
+ vec_st( offset.simdInternal_, 0, ioffset);
+ gatherLoadTranspose<align>(base, ioffset, v0, v1);
+diff --git a/src/gromacs/simd/impl_ibm_vsx/impl_ibm_vsx_definitions.h b/src/gromacs/simd/impl_ibm_vsx/impl_ibm_vsx_definitions.h
+index 3370727..b55c2a6 100644
+--- a/src/gromacs/simd/impl_ibm_vsx/impl_ibm_vsx_definitions.h
++++ b/src/gromacs/simd/impl_ibm_vsx/impl_ibm_vsx_definitions.h
+@@ -1,7 +1,7 @@
+ /*
+ * This file is part of the GROMACS molecular simulation package.
+ *
+- * Copyright (c) 2014,2015, by the GROMACS development team, led by
++ * Copyright (c) 2014,2015,2017, by the GROMACS development team, led by
+ * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
+ * and including many others, as listed in the AUTHORS file in the
+ * top-level source directory and at http://www.gromacs.org.
+@@ -112,6 +112,7 @@
+ #define GMX_SIMD_FINT32_WIDTH 4
+ #define GMX_SIMD_DINT32_WIDTH 2
+ #define GMX_SIMD4_WIDTH 4
++#define GMX_SIMD_ALIGNMENT 16 // Bytes (4*single or 2*sdouble)
+ #define GMX_SIMD_RSQRT_BITS 14
+ #define GMX_SIMD_RCP_BITS 14
+
+diff --git a/src/gromacs/simd/impl_ibm_vsx/impl_ibm_vsx_util_double.h b/src/gromacs/simd/impl_ibm_vsx/impl_ibm_vsx_util_double.h
+index 868b40f..d5745bf 100644
+--- a/src/gromacs/simd/impl_ibm_vsx/impl_ibm_vsx_util_double.h
++++ b/src/gromacs/simd/impl_ibm_vsx/impl_ibm_vsx_util_double.h
+@@ -1,7 +1,7 @@
+ /*
+ * This file is part of the GROMACS molecular simulation package.
+ *
+- * Copyright (c) 2014,2015,2016, by the GROMACS development team, led by
++ * Copyright (c) 2014,2015,2016,2017, by the GROMACS development team, led by
+ * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
+ * and including many others, as listed in the AUTHORS file in the
+ * top-level source directory and at http://www.gromacs.org.
+@@ -249,7 +249,7 @@
+ SimdDouble * v2,
+ SimdDouble * v3)
+ {
+- GMX_ALIGNED(std::int32_t, GMX_SIMD_DINT32_WIDTH) ioffset[GMX_SIMD_DINT32_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) std::int32_t ioffset[GMX_SIMD_DINT32_WIDTH];
+
+ store(ioffset, offset );
+ gatherLoadTranspose<align>(base, ioffset, v0, v1, v2, v3);
+@@ -262,7 +262,7 @@
+ SimdDouble * v0,
+ SimdDouble * v1)
+ {
+- GMX_ALIGNED(std::int32_t, GMX_SIMD_DINT32_WIDTH) ioffset[GMX_SIMD_DINT32_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) std::int32_t ioffset[GMX_SIMD_DINT32_WIDTH];
+
+ store(ioffset, offset );
+ gatherLoadTranspose<align>(base, ioffset, v0, v1);
+@@ -276,7 +276,7 @@
+ SimdDouble * v0,
+ SimdDouble * v1)
+ {
+- GMX_ALIGNED(std::int32_t, GMX_SIMD_DINT32_WIDTH) ioffset[GMX_SIMD_DINT32_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) std::int32_t ioffset[GMX_SIMD_DINT32_WIDTH];
+
+ store(ioffset, offset );
+ gatherLoadTranspose<align>(base, ioffset, v0, v1);
+diff --git a/src/gromacs/simd/impl_ibm_vsx/impl_ibm_vsx_util_float.h b/src/gromacs/simd/impl_ibm_vsx/impl_ibm_vsx_util_float.h
+index 8863765..d85b0ca 100644
+--- a/src/gromacs/simd/impl_ibm_vsx/impl_ibm_vsx_util_float.h
++++ b/src/gromacs/simd/impl_ibm_vsx/impl_ibm_vsx_util_float.h
+@@ -330,7 +330,7 @@
+ SimdFloat * v2,
+ SimdFloat * v3)
+ {
+- GMX_ALIGNED(std::int32_t, GMX_SIMD_FINT32_WIDTH) ioffset[GMX_SIMD_FINT32_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) std::int32_t ioffset[GMX_SIMD_FINT32_WIDTH];
+
+ store(ioffset, offset );
+ gatherLoadTranspose<align>(base, ioffset, v0, v1, v2, v3);
+@@ -343,7 +343,7 @@
+ SimdFloat * v0,
+ SimdFloat * v1)
+ {
+- GMX_ALIGNED(std::int32_t, GMX_SIMD_FINT32_WIDTH) ioffset[GMX_SIMD_FINT32_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) std::int32_t ioffset[GMX_SIMD_FINT32_WIDTH];
+
+ store(ioffset, offset );
+ gatherLoadTranspose<align>(base, ioffset, v0, v1);
+@@ -356,7 +356,7 @@
+ SimdFloat * v0,
+ SimdFloat * v1)
+ {
+- GMX_ALIGNED(std::int32_t, GMX_SIMD_FINT32_WIDTH) ioffset[GMX_SIMD_FINT32_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) std::int32_t ioffset[GMX_SIMD_FINT32_WIDTH];
+
+ store(ioffset, offset );
+ gatherLoadTranspose<align>(base, ioffset, v0, v1);
+diff --git a/src/gromacs/simd/impl_none/impl_none.h b/src/gromacs/simd/impl_none/impl_none.h
+index ceef6b4..7688e57 100644
+--- a/src/gromacs/simd/impl_none/impl_none.h
++++ b/src/gromacs/simd/impl_none/impl_none.h
+@@ -1,7 +1,7 @@
+ /*
+ * This file is part of the GROMACS molecular simulation package.
+ *
+- * Copyright (c) 2015, by the GROMACS development team, led by
++ * Copyright (c) 2015,2017, by the GROMACS development team, led by
+ * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
+ * and including many others, as listed in the AUTHORS file in the
+ * top-level source directory and at http://www.gromacs.org.
+@@ -61,6 +61,7 @@
+ #undef GMX_SIMD_FINT32_WIDTH
+ #undef GMX_SIMD_DINT32_WIDTH
+ #undef GMX_SIMD4_WIDTH
++#define GMX_SIMD_ALIGNMENT 8 // 1*double
+ #undef GMX_SIMD_RSQRT_BITS
+ #undef GMX_SIMD_RCP_BITS
+
+diff --git a/src/gromacs/simd/impl_reference/impl_reference_definitions.h b/src/gromacs/simd/impl_reference/impl_reference_definitions.h
+index 1f9709f..ac6f912 100644
+--- a/src/gromacs/simd/impl_reference/impl_reference_definitions.h
++++ b/src/gromacs/simd/impl_reference/impl_reference_definitions.h
+@@ -232,6 +232,9 @@
+ //! \brief The SIMD4 type is always four units wide, but this makes code more explicit
+ #define GMX_SIMD4_WIDTH 4
+
++//! \brief Required alignment in bytes for aligned load/store (always defined, even without SIMD)
++#define GMX_SIMD_ALIGNMENT 8 // 8 (1*double)
++
+ //! \brief Accuracy of SIMD 1/sqrt(x) lookup. Used to determine number of iterations.
+ #define GMX_SIMD_RSQRT_BITS 23
+
+diff --git a/src/gromacs/simd/impl_x86_avx2_128/impl_x86_avx2_128_definitions.h b/src/gromacs/simd/impl_x86_avx2_128/impl_x86_avx2_128_definitions.h
+index 49182e2..86f30da 100644
+--- a/src/gromacs/simd/impl_x86_avx2_128/impl_x86_avx2_128_definitions.h
++++ b/src/gromacs/simd/impl_x86_avx2_128/impl_x86_avx2_128_definitions.h
+@@ -76,6 +76,7 @@
+ #define GMX_SIMD_FINT32_WIDTH 4
+ #define GMX_SIMD_DINT32_WIDTH 2
+ #define GMX_SIMD4_WIDTH 4
++#define GMX_SIMD_ALIGNMENT 32 // Bytes (4*double for SIMD4)
+ #define GMX_SIMD_RSQRT_BITS 11
+ #define GMX_SIMD_RCP_BITS 11
+
+diff --git a/src/gromacs/simd/impl_x86_avx2_256/impl_x86_avx2_256_definitions.h b/src/gromacs/simd/impl_x86_avx2_256/impl_x86_avx2_256_definitions.h
+index d80cccc..a8ab2b4 100644
+--- a/src/gromacs/simd/impl_x86_avx2_256/impl_x86_avx2_256_definitions.h
++++ b/src/gromacs/simd/impl_x86_avx2_256/impl_x86_avx2_256_definitions.h
+@@ -77,6 +77,7 @@
+ #define GMX_SIMD_FINT32_WIDTH 8
+ #define GMX_SIMD_DINT32_WIDTH 4
+ #define GMX_SIMD4_WIDTH 4
++#define GMX_SIMD_ALIGNMENT 32 // Bytes (8*single or 4*double)
+ #define GMX_SIMD_RSQRT_BITS 11
+ #define GMX_SIMD_RCP_BITS 11
+
+diff --git a/src/gromacs/simd/impl_x86_avx_128_fma/impl_x86_avx_128_fma_definitions.h b/src/gromacs/simd/impl_x86_avx_128_fma/impl_x86_avx_128_fma_definitions.h
+index f2b5a20..ab8f533 100644
+--- a/src/gromacs/simd/impl_x86_avx_128_fma/impl_x86_avx_128_fma_definitions.h
++++ b/src/gromacs/simd/impl_x86_avx_128_fma/impl_x86_avx_128_fma_definitions.h
+@@ -1,7 +1,7 @@
+ /*
+ * This file is part of the GROMACS molecular simulation package.
+ *
+- * Copyright (c) 2014,2015,2016, by the GROMACS development team, led by
++ * Copyright (c) 2014,2015,2016,2017, by the GROMACS development team, led by
+ * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
+ * and including many others, as listed in the AUTHORS file in the
+ * top-level source directory and at http://www.gromacs.org.
+@@ -77,6 +77,7 @@
+ #define GMX_SIMD_FINT32_WIDTH 4
+ #define GMX_SIMD_DINT32_WIDTH 2
+ #define GMX_SIMD4_WIDTH 4
++#define GMX_SIMD_ALIGNMENT 32 // Bytes (4*double for SIMD4)
+ #define GMX_SIMD_RSQRT_BITS 11
+ #define GMX_SIMD_RCP_BITS 11
+
+diff --git a/src/gromacs/simd/impl_x86_avx_256/impl_x86_avx_256_definitions.h b/src/gromacs/simd/impl_x86_avx_256/impl_x86_avx_256_definitions.h
+index 4b2474c..72e7ce9 100644
+--- a/src/gromacs/simd/impl_x86_avx_256/impl_x86_avx_256_definitions.h
++++ b/src/gromacs/simd/impl_x86_avx_256/impl_x86_avx_256_definitions.h
+@@ -77,6 +77,7 @@
+ #define GMX_SIMD_FINT32_WIDTH 8
+ #define GMX_SIMD_DINT32_WIDTH 4
+ #define GMX_SIMD4_WIDTH 4
++#define GMX_SIMD_ALIGNMENT 32 // Bytes (8*single or 4*double)
+ #define GMX_SIMD_RSQRT_BITS 11
+ #define GMX_SIMD_RCP_BITS 11
+
+diff --git a/src/gromacs/simd/impl_x86_avx_256/impl_x86_avx_256_util_double.h b/src/gromacs/simd/impl_x86_avx_256/impl_x86_avx_256_util_double.h
+index a3cefcb..23f43c9 100644
+--- a/src/gromacs/simd/impl_x86_avx_256/impl_x86_avx_256_util_double.h
++++ b/src/gromacs/simd/impl_x86_avx_256/impl_x86_avx_256_util_double.h
+@@ -1,7 +1,7 @@
+ /*
+ * This file is part of the GROMACS molecular simulation package.
+ *
+- * Copyright (c) 2014,2015, by the GROMACS development team, led by
++ * Copyright (c) 2014,2015,2017, by the GROMACS development team, led by
+ * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
+ * and including many others, as listed in the AUTHORS file in the
+ * top-level source directory and at http://www.gromacs.org.
+@@ -331,7 +331,7 @@
+ assert(std::size_t(base) % 32 == 0);
+ assert(align % 4 == 0);
+
+- GMX_ALIGNED(int, GMX_SIMD_DINT32_WIDTH) ioffset[GMX_SIMD_DINT32_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) std::int32_t ioffset[GMX_SIMD_DINT32_WIDTH];
+ _mm_store_si128( reinterpret_cast<__m128i *>(ioffset), offset.simdInternal_);
+
+ v0->simdInternal_ = _mm256_load_pd(base + align * ioffset[0]);
+@@ -355,7 +355,7 @@
+ assert(std::size_t(base) % 16 == 0);
+ assert(align % 2 == 0);
+
+- GMX_ALIGNED(int, GMX_SIMD_DINT32_WIDTH) ioffset[GMX_SIMD_DINT32_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) std::int32_t ioffset[GMX_SIMD_DINT32_WIDTH];
+ _mm_store_si128( reinterpret_cast<__m128i *>(ioffset), offset.simdInternal_);
+
+ t1 = _mm_load_pd(base + align * ioffset[0]);
+@@ -379,7 +379,7 @@
+ __m128d t1, t2, t3, t4;
+ __m256d tA, tB;
+
+- GMX_ALIGNED(int, GMX_SIMD_DINT32_WIDTH) ioffset[GMX_SIMD_DINT32_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) std::int32_t ioffset[GMX_SIMD_DINT32_WIDTH];
+ _mm_store_si128( reinterpret_cast<__m128i *>(ioffset), offset.simdInternal_);
+
+ t1 = _mm_loadu_pd(base + align * ioffset[0]);
+diff --git a/src/gromacs/simd/impl_x86_avx_256/impl_x86_avx_256_util_float.h b/src/gromacs/simd/impl_x86_avx_256/impl_x86_avx_256_util_float.h
+index 2eebda9..2d19218 100644
+--- a/src/gromacs/simd/impl_x86_avx_256/impl_x86_avx_256_util_float.h
++++ b/src/gromacs/simd/impl_x86_avx_256/impl_x86_avx_256_util_float.h
+@@ -484,7 +484,7 @@
+ SimdFloat * v2,
+ SimdFloat * v3)
+ {
+- GMX_ALIGNED(int, GMX_SIMD_FLOAT_WIDTH) offset[GMX_SIMD_FLOAT_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) std::int32_t offset[GMX_SIMD_FLOAT_WIDTH];
+ _mm256_store_si256( reinterpret_cast<__m256i *>(offset), simdoffset.simdInternal_);
+ gatherLoadTranspose<align>(base, offset, v0, v1, v2, v3);
+ }
+@@ -496,7 +496,7 @@
+ SimdFloat * v0,
+ SimdFloat * v1)
+ {
+- GMX_ALIGNED(int, GMX_SIMD_FLOAT_WIDTH) offset[GMX_SIMD_FLOAT_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) std::int32_t offset[GMX_SIMD_FLOAT_WIDTH];
+ _mm256_store_si256( reinterpret_cast<__m256i *>(offset), simdoffset.simdInternal_);
+ gatherLoadTranspose<align>(base, offset, v0, v1);
+ }
+@@ -512,7 +512,7 @@
+ __m128 t1, t2, t3, t4, t5, t6, t7, t8;
+ __m256 tA, tB, tC, tD;
+
+- GMX_ALIGNED(int, GMX_SIMD_FLOAT_WIDTH) offset[GMX_SIMD_FLOAT_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) std::int32_t offset[GMX_SIMD_FLOAT_WIDTH];
+ _mm256_store_si256( reinterpret_cast<__m256i *>(offset), simdoffset.simdInternal_);
+
+ t1 = _mm_loadl_pi(_mm_setzero_ps(), reinterpret_cast<const __m64 *>( base + align * offset[0] ) );
+diff --git a/src/gromacs/simd/impl_x86_avx_512/impl_x86_avx_512_definitions.h b/src/gromacs/simd/impl_x86_avx_512/impl_x86_avx_512_definitions.h
+index 45acf12..a27ea2c 100644
+--- a/src/gromacs/simd/impl_x86_avx_512/impl_x86_avx_512_definitions.h
++++ b/src/gromacs/simd/impl_x86_avx_512/impl_x86_avx_512_definitions.h
+@@ -96,6 +96,7 @@
+ #define GMX_SIMD_FINT32_WIDTH 16
+ #define GMX_SIMD_DINT32_WIDTH 8
+ #define GMX_SIMD4_WIDTH 4
++#define GMX_SIMD_ALIGNMENT 64 // Bytes (16*single or 8*double)
+ #define GMX_SIMD_RSQRT_BITS 14
+ #define GMX_SIMD_RCP_BITS 14
+
+diff --git a/src/gromacs/simd/impl_x86_avx_512/impl_x86_avx_512_util_double.h b/src/gromacs/simd/impl_x86_avx_512/impl_x86_avx_512_util_double.h
+index 3ff77c6..22b4ffa 100644
+--- a/src/gromacs/simd/impl_x86_avx_512/impl_x86_avx_512_util_double.h
++++ b/src/gromacs/simd/impl_x86_avx_512/impl_x86_avx_512_util_double.h
+@@ -151,7 +151,7 @@
+ SimdDouble v2)
+ {
+ __m512d t[4], t5, t6, t7, t8;
+- GMX_ALIGNED(std::int64_t, 8) o[8];
++ alignas(GMX_SIMD_ALIGNMENT) std::int64_t o[8];
+ //TODO: should use fastMultiply
+ _mm512_store_epi64(o, _mm512_cvtepi32_epi64(_mm256_mullo_epi32(_mm256_load_si256((const __m256i*)(offset )), _mm256_set1_epi32(align))));
+ t5 = _mm512_unpacklo_pd(v0.simdInternal_, v1.simdInternal_);
+@@ -206,7 +206,7 @@
+ SimdDouble v2)
+ {
+ __m512d t[4], t5, t6, t7, t8;
+- GMX_ALIGNED(std::int64_t, 8) o[8];
++ alignas(GMX_SIMD_ALIGNMENT) std::int64_t o[8];
+ //TODO: should use fastMultiply
+ _mm512_store_epi64(o, _mm512_cvtepi32_epi64(_mm256_mullo_epi32(_mm256_load_si256((const __m256i*)(offset )), _mm256_set1_epi32(align))));
+ t5 = _mm512_unpacklo_pd(v0.simdInternal_, v1.simdInternal_);
+diff --git a/src/gromacs/simd/impl_x86_avx_512/impl_x86_avx_512_util_float.h b/src/gromacs/simd/impl_x86_avx_512/impl_x86_avx_512_util_float.h
+index 61548bb..6f94b98 100644
+--- a/src/gromacs/simd/impl_x86_avx_512/impl_x86_avx_512_util_float.h
++++ b/src/gromacs/simd/impl_x86_avx_512/impl_x86_avx_512_util_float.h
+@@ -154,7 +154,7 @@
+ {
+ __m512 t[4], t5, t6, t7, t8;
+ int i;
+- GMX_ALIGNED(std::int32_t, 16) o[16];
++ alignas(GMX_SIMD_ALIGNMENT) std::int32_t o[16];
+ store(o, fastMultiply<align>(simdLoad(offset, SimdFInt32Tag())));
+ if (align < 4)
+ {
+@@ -226,7 +226,7 @@
+ {
+ __m512 t[4], t5, t6, t7, t8;
+ int i;
+- GMX_ALIGNED(std::int32_t, 16) o[16];
++ alignas(GMX_SIMD_ALIGNMENT) std::int32_t o[16];
+ store(o, fastMultiply<align>(simdLoad(offset, SimdFInt32Tag())));
+ if (align < 4)
+ {
+diff --git a/src/gromacs/simd/impl_x86_avx_512_knl/impl_x86_avx_512_knl_definitions.h b/src/gromacs/simd/impl_x86_avx_512_knl/impl_x86_avx_512_knl_definitions.h
+index d0698fa..ada37e2 100644
+--- a/src/gromacs/simd/impl_x86_avx_512_knl/impl_x86_avx_512_knl_definitions.h
++++ b/src/gromacs/simd/impl_x86_avx_512_knl/impl_x86_avx_512_knl_definitions.h
+@@ -85,6 +85,7 @@
+ #define GMX_SIMD_FINT32_WIDTH 16
+ #define GMX_SIMD_DINT32_WIDTH 8
+ #define GMX_SIMD4_WIDTH 4
++#define GMX_SIMD_ALIGNMENT 64 // Bytes (16*single or 8*double)
+ #define GMX_SIMD_RSQRT_BITS 28
+ #define GMX_SIMD_RCP_BITS 28
+
+diff --git a/src/gromacs/simd/impl_x86_mic/impl_x86_mic_definitions.h b/src/gromacs/simd/impl_x86_mic/impl_x86_mic_definitions.h
+index 61123eb..c6135c6 100644
+--- a/src/gromacs/simd/impl_x86_mic/impl_x86_mic_definitions.h
++++ b/src/gromacs/simd/impl_x86_mic/impl_x86_mic_definitions.h
+@@ -1,7 +1,7 @@
+ /*
+ * This file is part of the GROMACS molecular simulation package.
+ *
+- * Copyright (c) 2014,2015, by the GROMACS development team, led by
++ * Copyright (c) 2014,2015,2017, by the GROMACS development team, led by
+ * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
+ * and including many others, as listed in the AUTHORS file in the
+ * top-level source directory and at http://www.gromacs.org.
+@@ -78,6 +78,7 @@
+ #define GMX_SIMD_FINT32_WIDTH 16
+ #define GMX_SIMD_DINT32_WIDTH 8
+ #define GMX_SIMD4_WIDTH 4
++#define GMX_SIMD_ALIGNMENT 64 // Bytes (16*single or 8*double)
+ #define GMX_SIMD_RSQRT_BITS 23
+ #define GMX_SIMD_RCP_BITS 23
+
+diff --git a/src/gromacs/simd/impl_x86_mic/impl_x86_mic_util_double.h b/src/gromacs/simd/impl_x86_mic/impl_x86_mic_util_double.h
+index 62e0720..9904fc5 100644
+--- a/src/gromacs/simd/impl_x86_mic/impl_x86_mic_util_double.h
++++ b/src/gromacs/simd/impl_x86_mic/impl_x86_mic_util_double.h
+@@ -235,9 +235,9 @@
+ SimdDouble v1,
+ SimdDouble v2)
+ {
+- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) rdata0[GMX_SIMD_DOUBLE_WIDTH];
+- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) rdata1[GMX_SIMD_DOUBLE_WIDTH];
+- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) rdata2[GMX_SIMD_DOUBLE_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) double rdata0[GMX_SIMD_DOUBLE_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) double rdata1[GMX_SIMD_DOUBLE_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) double rdata2[GMX_SIMD_DOUBLE_WIDTH];
+
+ store(rdata0, v0);
+ store(rdata1, v1);
+@@ -259,9 +259,9 @@
+ SimdDouble v1,
+ SimdDouble v2)
+ {
+- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) rdata0[GMX_SIMD_DOUBLE_WIDTH];
+- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) rdata1[GMX_SIMD_DOUBLE_WIDTH];
+- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) rdata2[GMX_SIMD_DOUBLE_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) double rdata0[GMX_SIMD_DOUBLE_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) double rdata1[GMX_SIMD_DOUBLE_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) double rdata2[GMX_SIMD_DOUBLE_WIDTH];
+
+ store(rdata0, v0);
+ store(rdata1, v1);
+diff --git a/src/gromacs/simd/impl_x86_mic/impl_x86_mic_util_float.h b/src/gromacs/simd/impl_x86_mic/impl_x86_mic_util_float.h
+index 48b2a9f..036ff2f 100644
+--- a/src/gromacs/simd/impl_x86_mic/impl_x86_mic_util_float.h
++++ b/src/gromacs/simd/impl_x86_mic/impl_x86_mic_util_float.h
+@@ -239,9 +239,9 @@
+ SimdFloat v1,
+ SimdFloat v2)
+ {
+- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) rdata0[GMX_SIMD_FLOAT_WIDTH];
+- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) rdata1[GMX_SIMD_FLOAT_WIDTH];
+- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) rdata2[GMX_SIMD_FLOAT_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) float rdata0[GMX_SIMD_FLOAT_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) float rdata1[GMX_SIMD_FLOAT_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) float rdata2[GMX_SIMD_FLOAT_WIDTH];
+
+ store(rdata0, v0);
+ store(rdata1, v1);
+@@ -263,9 +263,9 @@
+ SimdFloat v1,
+ SimdFloat v2)
+ {
+- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) rdata0[GMX_SIMD_FLOAT_WIDTH];
+- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) rdata1[GMX_SIMD_FLOAT_WIDTH];
+- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) rdata2[GMX_SIMD_FLOAT_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) float rdata0[GMX_SIMD_FLOAT_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) float rdata1[GMX_SIMD_FLOAT_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) float rdata2[GMX_SIMD_FLOAT_WIDTH];
+
+ store(rdata0, v0);
+ store(rdata1, v1);
+diff --git a/src/gromacs/simd/impl_x86_sse2/impl_x86_sse2_definitions.h b/src/gromacs/simd/impl_x86_sse2/impl_x86_sse2_definitions.h
+index 7b585d4..0cc62e9 100644
+--- a/src/gromacs/simd/impl_x86_sse2/impl_x86_sse2_definitions.h
++++ b/src/gromacs/simd/impl_x86_sse2/impl_x86_sse2_definitions.h
+@@ -1,7 +1,7 @@
+ /*
+ * This file is part of the GROMACS molecular simulation package.
+ *
+- * Copyright (c) 2014,2015, by the GROMACS development team, led by
++ * Copyright (c) 2014,2015,2017, by the GROMACS development team, led by
+ * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
+ * and including many others, as listed in the AUTHORS file in the
+ * top-level source directory and at http://www.gromacs.org.
+@@ -76,6 +76,7 @@
+ #define GMX_SIMD_FINT32_WIDTH 4
+ #define GMX_SIMD_DINT32_WIDTH 2
+ #define GMX_SIMD4_WIDTH 4
++#define GMX_SIMD_ALIGNMENT 16 // Bytes (4*single or 2*double)
+ #define GMX_SIMD_RSQRT_BITS 11
+ #define GMX_SIMD_RCP_BITS 11
+
+diff --git a/src/gromacs/simd/impl_x86_sse2/impl_x86_sse2_util_float.h b/src/gromacs/simd/impl_x86_sse2/impl_x86_sse2_util_float.h
+index 67e3047..4acf483 100644
+--- a/src/gromacs/simd/impl_x86_sse2/impl_x86_sse2_util_float.h
++++ b/src/gromacs/simd/impl_x86_sse2/impl_x86_sse2_util_float.h
+@@ -1,7 +1,7 @@
+ /*
+ * This file is part of the GROMACS molecular simulation package.
+ *
+- * Copyright (c) 2014,2015, by the GROMACS development team, led by
++ * Copyright (c) 2014,2015,2017, by the GROMACS development team, led by
+ * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
+ * and including many others, as listed in the AUTHORS file in the
+ * top-level source directory and at http://www.gromacs.org.
+@@ -334,7 +334,7 @@
+ // This is likely because (a) the extract function is expensive, and (b)
+ // the alignment scaling can often be done as part of the load instruction
+ // (which is even cheaper than doing it in SIMD registers).
+- GMX_ALIGNED(std::int32_t, GMX_SIMD_FINT32_WIDTH) ioffset[GMX_SIMD_FINT32_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) std::int32_t ioffset[GMX_SIMD_FINT32_WIDTH];
+ _mm_store_si128( (__m128i *)ioffset, offset.simdInternal_);
+ gatherLoadTranspose<align>(base, ioffset, v0, v1, v2, v3);
+ }
+@@ -351,7 +351,7 @@
+ // This is likely because (a) the extract function is expensive, and (b)
+ // the alignment scaling can often be done as part of the load instruction
+ // (which is even cheaper than doing it in SIMD registers).
+- GMX_ALIGNED(std::int32_t, GMX_SIMD_FINT32_WIDTH) ioffset[GMX_SIMD_FINT32_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) std::int32_t ioffset[GMX_SIMD_FINT32_WIDTH];
+ _mm_store_si128( (__m128i *)ioffset, offset.simdInternal_);
+ gatherLoadTranspose<align>(base, ioffset, v0, v1);
+ }
+@@ -370,7 +370,7 @@
+ // This is likely because (a) the extract function is expensive, and (b)
+ // the alignment scaling can often be done as part of the load instruction
+ // (which is even cheaper than doing it in SIMD registers).
+- GMX_ALIGNED(std::int32_t, GMX_SIMD_FINT32_WIDTH) ioffset[GMX_SIMD_FINT32_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) std::int32_t ioffset[GMX_SIMD_FINT32_WIDTH];
+ _mm_store_si128( (__m128i *)ioffset, offset.simdInternal_);
+ gatherLoadTranspose<align>(base, ioffset, v0, v1);
+ }
+diff --git a/src/gromacs/simd/impl_x86_sse4_1/impl_x86_sse4_1_definitions.h b/src/gromacs/simd/impl_x86_sse4_1/impl_x86_sse4_1_definitions.h
+index 4d17227..e9282ac 100644
+--- a/src/gromacs/simd/impl_x86_sse4_1/impl_x86_sse4_1_definitions.h
++++ b/src/gromacs/simd/impl_x86_sse4_1/impl_x86_sse4_1_definitions.h
+@@ -1,7 +1,7 @@
+ /*
+ * This file is part of the GROMACS molecular simulation package.
+ *
+- * Copyright (c) 2014,2015, by the GROMACS development team, led by
++ * Copyright (c) 2014,2015,2017, by the GROMACS development team, led by
+ * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
+ * and including many others, as listed in the AUTHORS file in the
+ * top-level source directory and at http://www.gromacs.org.
+@@ -76,6 +76,7 @@
+ #define GMX_SIMD_FINT32_WIDTH 4
+ #define GMX_SIMD_DINT32_WIDTH 2
+ #define GMX_SIMD4_WIDTH 4
++#define GMX_SIMD_ALIGNMENT 16 // Bytes (4*single or 2*double)
+ #define GMX_SIMD_RSQRT_BITS 11
+ #define GMX_SIMD_RCP_BITS 11
+
+diff --git a/src/gromacs/simd/simd_math.h b/src/gromacs/simd/simd_math.h
+index ad51957..207b1b7 100644
+--- a/src/gromacs/simd/simd_math.h
++++ b/src/gromacs/simd/simd_math.h
+@@ -742,7 +742,7 @@
+ const SimdFloat sieve(SimdFloat(-5.965323564e+29f) | SimdFloat(7.05044434e-30f));
+ #else
+ const int isieve = 0xFFFFF000;
+- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) mem[GMX_SIMD_FLOAT_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) float mem[GMX_SIMD_FLOAT_WIDTH];
+
+ union {
+ float f; int i;
+diff --git a/src/gromacs/simd/tests/bootstrap_loadstore.cpp b/src/gromacs/simd/tests/bootstrap_loadstore.cpp
+index 5bbdb1d..1ffe38a 100644
+--- a/src/gromacs/simd/tests/bootstrap_loadstore.cpp
++++ b/src/gromacs/simd/tests/bootstrap_loadstore.cpp
+@@ -91,13 +91,8 @@
+ * simdWidth elements at the beginning and end
+ * to test we are not polluting memory there either. Sum=4*simdWidth.
+ */
+-#if GMX_SIMD4_WIDTH > GMX_SIMD_REAL_WIDTH
+- GMX_ALIGNED(T, GMX_SIMD4_WIDTH) src[simdWidth*4];
+- GMX_ALIGNED(T, GMX_SIMD4_WIDTH) dst[simdWidth*4];
+-#else
+- GMX_ALIGNED(T, GMX_SIMD_REAL_WIDTH) src[simdWidth*4];
+- GMX_ALIGNED(T, GMX_SIMD_REAL_WIDTH) dst[simdWidth*4];
+-#endif
++ alignas(GMX_SIMD_ALIGNMENT) T src[simdWidth*4];
++ alignas(GMX_SIMD_ALIGNMENT) T dst[simdWidth*4];
+
+ // Make sure we have memory to check both before and after the test pointers
+ T * pCopySrc = src + simdWidth + loadOffset;
+diff --git a/src/gromacs/simd/tests/simd.cpp b/src/gromacs/simd/tests/simd.cpp
+index d07621b..3de3c0e 100644
+--- a/src/gromacs/simd/tests/simd.cpp
++++ b/src/gromacs/simd/tests/simd.cpp
+@@ -121,10 +121,42 @@
+ #endif
+
+ #if GMX_SIMD_HAVE_REAL
++TEST(SimdTest, GmxAligned)
++{
++ // Test alignment with two variables that must be aligned, and one that
++ // doesn't have to be. The order of variables is up to the compiler, but
++ // if it ignores alignment it is highly unlikely that both r1/r3 still end
++ // up being aligned by mistake.
++ alignas(GMX_SIMD_ALIGNMENT) real r1;
++ real r2;
++ alignas(GMX_SIMD_ALIGNMENT) real r3;
++
++ std::uint64_t addr1 = reinterpret_cast<std::uint64_t>(&r1);
++ std::uint64_t addr2 = reinterpret_cast<std::uint64_t>(&r2);
++ std::uint64_t addr3 = reinterpret_cast<std::uint64_t>(&r3);
++
++ EXPECT_EQ(0, addr1 % GMX_SIMD_ALIGNMENT);
++ EXPECT_NE(0, addr2); // Just so r2 is not optimized away
++ EXPECT_EQ(0, addr3 % GMX_SIMD_ALIGNMENT);
++
++ alignas(GMX_SIMD_ALIGNMENT) std::int32_t i1;
++ std::int32_t i2;
++ alignas(GMX_SIMD_ALIGNMENT) std::int32_t i3;
++
++ addr1 = reinterpret_cast<std::uint64_t>(&i1);
++ addr2 = reinterpret_cast<std::uint64_t>(&i2);
++ addr3 = reinterpret_cast<std::uint64_t>(&i3);
++
++ EXPECT_EQ(0, addr1 % GMX_SIMD_ALIGNMENT);
++ EXPECT_NE(0, addr2); // Just so i2 is not optimized away
++ EXPECT_EQ(0, addr3 % GMX_SIMD_ALIGNMENT);
++}
++
++
+ ::std::vector<real>
+ simdReal2Vector(const SimdReal simd)
+ {
+- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) mem[GMX_SIMD_REAL_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) real mem[GMX_SIMD_REAL_WIDTH];
+
+ store(mem, simd);
+ std::vector<real> v(mem, mem+GMX_SIMD_REAL_WIDTH);
+@@ -135,7 +167,7 @@
+ SimdReal
+ vector2SimdReal(const std::vector<real> &v)
+ {
+- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) mem[GMX_SIMD_REAL_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) real mem[GMX_SIMD_REAL_WIDTH];
+
+ for (int i = 0; i < GMX_SIMD_REAL_WIDTH; i++)
+ {
+@@ -179,21 +211,21 @@
+ return compareVectorEq(refExpr, tstExpr, simdReal2Vector(ref), simdReal2Vector(tst));
+ }
+
+-std::vector<int>
++std::vector<std::int32_t>
+ simdInt2Vector(const SimdInt32 simd)
+ {
+- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) mem[GMX_SIMD_REAL_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) std::int32_t mem[GMX_SIMD_REAL_WIDTH];
+
+ store(mem, simd);
+- std::vector<int> v(mem, mem+GMX_SIMD_REAL_WIDTH);
++ std::vector<std::int32_t> v(mem, mem+GMX_SIMD_REAL_WIDTH);
+
+ return v;
+ }
+
+ SimdInt32
+-vector2SimdInt(const std::vector<int> &v)
++vector2SimdInt(const std::vector<std::int32_t> &v)
+ {
+- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) mem[GMX_SIMD_REAL_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) std::int32_t mem[GMX_SIMD_REAL_WIDTH];
+
+ for (int i = 0; i < GMX_SIMD_REAL_WIDTH; i++)
+ {
+diff --git a/src/gromacs/simd/tests/simd.h b/src/gromacs/simd/tests/simd.h
+index a32676b..efa57f3 100644
+--- a/src/gromacs/simd/tests/simd.h
++++ b/src/gromacs/simd/tests/simd.h
+@@ -268,14 +268,14 @@
+ *
+ * The returned vector will have the same length as the SIMD width.
+ */
+-std::vector<int> simdInt2Vector(const SimdInt32 simd);
++std::vector<std::int32_t> simdInt2Vector(const SimdInt32 simd);
+
+ /*! \brief Return 32-bit integer SIMD value from std::vector<int>.
+ *
+ * If the vector is longer than SIMD width, only the first elements will be used.
+ * If it is shorter, the contents will be repeated to fill the SIMD register.
+ */
+-SimdInt32 vector2SimdInt(const std::vector<int> &v);
++SimdInt32 vector2SimdInt(const std::vector<std::int32_t> &v);
+
+ /*! \brief Set SIMD register contents from three int values.
+ *
+diff --git a/src/gromacs/simd/tests/simd4.cpp b/src/gromacs/simd/tests/simd4.cpp
+index edb66ba..ba91594 100644
+--- a/src/gromacs/simd/tests/simd4.cpp
++++ b/src/gromacs/simd/tests/simd4.cpp
+@@ -86,7 +86,7 @@
+ ::std::vector<real>
+ simd4Real2Vector(const Simd4Real simd4)
+ {
+- GMX_ALIGNED(real, GMX_SIMD4_WIDTH) mem[GMX_SIMD4_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) real mem[GMX_SIMD4_WIDTH];
+
+ store4(mem, simd4);
+ std::vector<real> v(mem, mem+GMX_SIMD4_WIDTH);
+@@ -97,7 +97,7 @@
+ Simd4Real
+ vector2Simd4Real(const std::vector<real> &v)
+ {
+- GMX_ALIGNED(real, GMX_SIMD4_WIDTH) mem[GMX_SIMD4_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) real mem[GMX_SIMD4_WIDTH];
+
+ for (int i = 0; i < GMX_SIMD4_WIDTH; i++)
+ {
+diff --git a/src/gromacs/simd/tests/simd4_floatingpoint.cpp b/src/gromacs/simd/tests/simd4_floatingpoint.cpp
+index b2300ec8..50e8687 100644
+--- a/src/gromacs/simd/tests/simd4_floatingpoint.cpp
++++ b/src/gromacs/simd/tests/simd4_floatingpoint.cpp
+@@ -312,7 +312,7 @@
+ Simd4Real v0, v1, v2, v3;
+ int i;
+ // aligned pointers
+- GMX_ALIGNED(real, GMX_SIMD4_WIDTH) p0[4*GMX_SIMD4_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) real p0[4*GMX_SIMD4_WIDTH];
+ real * p1 = p0 + GMX_SIMD4_WIDTH;
+ real * p2 = p0 + 2*GMX_SIMD4_WIDTH;
+ real * p3 = p0 + 3*GMX_SIMD4_WIDTH;
+diff --git a/src/gromacs/simd/tests/simd_floatingpoint.cpp b/src/gromacs/simd/tests/simd_floatingpoint.cpp
+index 14fbe0d..2c57354 100644
+--- a/src/gromacs/simd/tests/simd_floatingpoint.cpp
++++ b/src/gromacs/simd/tests/simd_floatingpoint.cpp
+@@ -453,8 +453,8 @@
+ #if GMX_SIMD_HAVE_FLOAT && GMX_SIMD_HAVE_DOUBLE
+ TEST_F(SimdFloatingpointTest, cvtFloat2Double)
+ {
+- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) f[GMX_SIMD_FLOAT_WIDTH];
+- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) d[GMX_SIMD_FLOAT_WIDTH]; // Yes, double array length should be same as float
++ alignas(GMX_SIMD_ALIGNMENT) float f[GMX_SIMD_FLOAT_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) double d[GMX_SIMD_FLOAT_WIDTH]; // Yes, double array length should be same as float
+
+ int i;
+ SimdFloat vf;
+@@ -488,8 +488,8 @@
+
+ TEST_F(SimdFloatingpointTest, cvtDouble2Float)
+ {
+- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) f[GMX_SIMD_FLOAT_WIDTH];
+- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) d[GMX_SIMD_FLOAT_WIDTH]; // Yes, double array length should be same as float
++ alignas(GMX_SIMD_ALIGNMENT) float f[GMX_SIMD_FLOAT_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) double d[GMX_SIMD_FLOAT_WIDTH]; // Yes, double array length should be same as float
+ int i;
+ SimdFloat vf;
+ SimdDouble vd0;
+diff --git a/src/gromacs/simd/tests/simd_integer.cpp b/src/gromacs/simd/tests/simd_integer.cpp
+index c675f8b..594827d 100644
+--- a/src/gromacs/simd/tests/simd_integer.cpp
++++ b/src/gromacs/simd/tests/simd_integer.cpp
+@@ -131,7 +131,7 @@
+ #if GMX_SIMD_HAVE_INT32_EXTRACT
+ TEST_F(SimdIntegerTest, extract)
+ {
+- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) idata[GMX_SIMD_REAL_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) std::int32_t idata[GMX_SIMD_REAL_WIDTH];
+ SimdInt32 simd;
+
+ for (int i = 0; i < GMX_SIMD_REAL_WIDTH; i++)
+diff --git a/src/gromacs/tables/tests/splinetable.cpp b/src/gromacs/tables/tests/splinetable.cpp
+index ee15b45..203a383 100644
+--- a/src/gromacs/tables/tests/splinetable.cpp
++++ b/src/gromacs/tables/tests/splinetable.cpp
+@@ -679,7 +679,7 @@
+ real refDer = lj12Derivative(x);
+ SimdReal tstFunc, tstDer;
+ real funcErr, derErr;
+- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) alignedMem[GMX_SIMD_REAL_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) real alignedMem[GMX_SIMD_REAL_WIDTH];
+
+ table.evaluateFunctionAndDerivative(SimdReal(x), &tstFunc, &tstDer);
+
+@@ -712,7 +712,7 @@
+ SimdReal tstFunc1, tstDer1;
+ real funcErr0, derErr0;
+ real funcErr1, derErr1;
+- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) alignedMem[GMX_SIMD_REAL_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) real alignedMem[GMX_SIMD_REAL_WIDTH];
+
+ table.evaluateFunctionAndDerivative(SimdReal(x), &tstFunc0, &tstDer0, &tstFunc1, &tstDer1);
+
+@@ -765,7 +765,7 @@
+ TypeParam table( {{"LJ12", lj12Function, lj12Derivative}}, range);
+ SimdReal x, func, der;
+
+- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) alignedMem[GMX_SIMD_REAL_WIDTH];
++ alignas(GMX_SIMD_ALIGNMENT) real alignedMem[GMX_SIMD_REAL_WIDTH];
+
+ // Test all values between 0 and range.second
+ for (std::size_t i = 0; i < GMX_SIMD_REAL_WIDTH; i++)
+diff --git a/src/gromacs/utility/basedefinitions.h b/src/gromacs/utility/basedefinitions.h
+index 1c3e36c..a1638ef 100644
+--- a/src/gromacs/utility/basedefinitions.h
++++ b/src/gromacs/utility/basedefinitions.h
+@@ -226,24 +226,6 @@
+ #endif
+ #endif
+
+-/*! \def GMX_ALIGNED(type, alignment)
+- * \brief
+- * Declare variable with data alignment
+- *
+- * \param[in] type Type of variable
+- * \param[in] alignment Alignment in multiples of type
+- *
+- * Typical usage:
+- * \code
+- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) buf[...];
+- \endcode
+- */
+-
+-// We rely on C++11. This will for instance work for MSVC2015 and later.
+-// If you get an error here, find out what attribute to use to get your compiler to align
+-// data properly and add it as a case.
+-#define GMX_ALIGNED(type, alignment) alignas(alignment*sizeof(type)) type
+-
+ /*! \brief
+ * Macro to explicitly ignore an unused value.
+ *
+diff --git a/src/gromacs/utility/tests/CMakeLists.txt b/src/gromacs/utility/tests/CMakeLists.txt
+index 57cf2a1..74ed8f4 100644
+--- a/src/gromacs/utility/tests/CMakeLists.txt
++++ b/src/gromacs/utility/tests/CMakeLists.txt
+@@ -35,7 +35,6 @@
+ gmx_add_unit_test(UtilityUnitTests utility-test
+ alignedallocator.cpp
+ arrayref.cpp
+- basedefinitions.cpp
+ bitmask32.cpp bitmask64.cpp bitmask128.cpp
+ keyvaluetreeserializer.cpp
+ keyvaluetreetransform.cpp
+diff --git a/src/gromacs/utility/tests/basedefinitions.cpp b/src/gromacs/utility/tests/basedefinitions.cpp
+deleted file mode 100644
+index a0223e1..0000000
+--- a/src/gromacs/utility/tests/basedefinitions.cpp
++++ /dev/null
+@@ -1,82 +0,0 @@
+-/*
+- * This file is part of the GROMACS molecular simulation package.
+- *
+- * Copyright (c) 2015, by the GROMACS development team, led by
+- * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
+- * and including many others, as listed in the AUTHORS file in the
+- * top-level source directory and at http://www.gromacs.org.
+- *
+- * GROMACS is free software; you can redistribute it and/or
+- * modify it under the terms of the GNU Lesser General Public License
+- * as published by the Free Software Foundation; either version 2.1
+- * of the License, or (at your option) any later version.
+- *
+- * GROMACS is distributed in the hope that it will be useful,
+- * but WITHOUT ANY WARRANTY; without even the implied warranty of
+- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+- * Lesser General Public License for more details.
+- *
+- * You should have received a copy of the GNU Lesser General Public
+- * License along with GROMACS; if not, see
+- * http://www.gnu.org/licenses, or write to the Free Software Foundation,
+- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+- *
+- * If you want to redistribute modifications to GROMACS, please
+- * consider that scientific software is very special. Version
+- * control is crucial - bugs must be traceable. We will be happy to
+- * consider code for inclusion in the official distribution, but
+- * derived work must not be called official GROMACS. Details are found
+- * in the README & COPYING files - if they are missing, get the
+- * official version at http://www.gromacs.org.
+- *
+- * To help us fund GROMACS development, we humbly ask that you cite
+- * the research papers on the package. Check out http://www.gromacs.org.
+- */
+-/*! \internal \file
+- * \brief Tests for base definitions (only alignment attributes for now)
+- *
+- * \author Erik Lindahl <erik.lindahl(a)gmail.com>
+- * \ingroup module_utility
+- */
+-
+-#include "gmxpre.h"
+-
+-#include "gromacs/utility/basedefinitions.h"
+-
+-#include <cstdint>
+-
+-#include <gtest/gtest.h>
+-
+-#include "gromacs/utility/real.h"
+-
+-namespace gmx
+-{
+-
+-TEST(BasedefinitionsTest, GmxAlignedDeclaresAlignedVariable)
+-{
+- GMX_ALIGNED(real, 2) r1;
+- GMX_ALIGNED(real, 4) r2;
+- GMX_ALIGNED(real, 8) r3;
+-
+- std::uint64_t addr1 = reinterpret_cast<std::uint64_t>(&r1);
+- std::uint64_t addr2 = reinterpret_cast<std::uint64_t>(&r2);
+- std::uint64_t addr3 = reinterpret_cast<std::uint64_t>(&r3);
+-
+- EXPECT_EQ(0, addr1 % 2);
+- EXPECT_EQ(0, addr2 % 4);
+- EXPECT_EQ(0, addr3 % 8);
+-
+- GMX_ALIGNED(int, 2) i1;
+- GMX_ALIGNED(int, 4) i2;
+- GMX_ALIGNED(int, 8) i3;
+-
+- addr1 = reinterpret_cast<std::uint64_t>(&i1);
+- addr2 = reinterpret_cast<std::uint64_t>(&i2);
+- addr3 = reinterpret_cast<std::uint64_t>(&i3);
+-
+- EXPECT_EQ(0, addr1 % 2);
+- EXPECT_EQ(0, addr2 % 4);
+- EXPECT_EQ(0, addr3 % 8);
+-}
+-
+-}
commit 6978073cd6e10d1ffafabac539e8a8cc08c3e1e8
Author: Christoph Junghans <junghans(a)votca.org>
Date: Sat Dec 30 15:37:20 2017 -0700
Update to 2018-rc1 for testing
diff --git a/.gitignore b/.gitignore
index e1e782a..6051954 100644
--- a/.gitignore
+++ b/.gitignore
@@ -48,3 +48,6 @@ manual-4.0.pdf
/manual-2018-beta3.pdf
/regressiontests-2018-beta3.tar.gz
/gromacs-2018-beta3.tar.gz
+/gromacs-2018-rc1.tar.gz
+/manual-2018-rc1.pdf
+/regressiontests-2018-rc1.tar.gz
diff --git a/b7713bf.diff b/b7713bf.diff
deleted file mode 100644
index 91b19b3..0000000
--- a/b7713bf.diff
+++ /dev/null
@@ -1,1761 +0,0 @@
-From b7713bfb76c0bd25ee77c359a2b00d4115c29910 Mon Sep 17 00:00:00 2001
-From: Erik Lindahl <erik(a)kth.se>
-Date: Mon, 25 Dec 2017 20:20:11 +0100
-Subject: [PATCH] Remove non-portable usage of GMX_ALIGN()
-
-According to the C++ standard, the behavior of alignas()
-is implementation-dependent for all alignments wider than
-the width of native types. At least on Fedora, this
-results in broken aligments both on s390, ARMv7, ARMv8,
-and Power8. Since there does not seem to be any portable
-way to achieve general alignments, this change reverts
-the behavior to use explicit pointer alighments instead.
-
-Fixes #2365.
-
-Change-Id: I9bc7000da44ca905f90783ea9963bf9808d0f99e
----
-
-diff --git a/src/gromacs/ewald/pme-gather.cpp b/src/gromacs/ewald/pme-gather.cpp
-index 2c9e961..d5b6a50 100644
---- a/src/gromacs/ewald/pme-gather.cpp
-+++ b/src/gromacs/ewald/pme-gather.cpp
-@@ -195,9 +195,11 @@
- {
- #ifdef PME_SIMD4_UNALIGNED
- *S0 = load4U(data-offset);
-- *S1 = load4U(data-offset+4);
-+ *S1 = load4U(data-offset+4);
- #else
-- GMX_ALIGNED(real, GMX_SIMD4_WIDTH) buf_aligned[GMX_SIMD4_WIDTH*2];
-+ real unalignedMem[GMX_SIMD4_WIDTH*3]; // GMX_SIMD4_WIDTH*2 and padding
-+ real * buf_aligned = simd4Align(unalignedMem); // size is GMX_SIMD4_WIDTH*2
-+
- /* Copy data to an aligned buffer */
- for (int i = 0; i < order; i++)
- {
-diff --git a/src/gromacs/ewald/pme-spline-work.cpp b/src/gromacs/ewald/pme-spline-work.cpp
-index 5859a34..7921d20 100644
---- a/src/gromacs/ewald/pme-spline-work.cpp
-+++ b/src/gromacs/ewald/pme-spline-work.cpp
-@@ -54,7 +54,9 @@
- pme_spline_work *work;
-
- #ifdef PME_SIMD4_SPREAD_GATHER
-- GMX_ALIGNED(real, GMX_SIMD4_WIDTH) tmp[GMX_SIMD4_WIDTH*2];
-+ real unalignedMem[GMX_SIMD4_WIDTH*3]; // GMX_SIMD4_WIDTH*2 and padding
-+ real * tmp = simd4Align(unalignedMem); // size is GMX_SIMD4_WIDTH*2
-+
- Simd4Real zero_S;
- Simd4Real real_mask_S0, real_mask_S1;
- int of, i;
-diff --git a/src/gromacs/ewald/pme-spread.cpp b/src/gromacs/ewald/pme-spread.cpp
-index b3db6c3..0bed8cb 100644
---- a/src/gromacs/ewald/pme-spread.cpp
-+++ b/src/gromacs/ewald/pme-spread.cpp
-@@ -329,7 +329,8 @@
- int offx, offy, offz;
-
- #if defined PME_SIMD4_SPREAD_GATHER && !defined PME_SIMD4_UNALIGNED
-- GMX_ALIGNED(real, GMX_SIMD4_WIDTH) thz_aligned[GMX_SIMD4_WIDTH*2];
-+ real unalignedMem[GMX_SIMD4_WIDTH*3]; // GMX_SIMD4_WIDTH*2 and padding
-+ real * thz_aligned = simd4Align(unalignedMem); // size is GMX_SIMD4_WIDTH*2
- #endif
-
- pnx = pmegrid->s[XX];
-diff --git a/src/gromacs/listed-forces/bonded.cpp b/src/gromacs/listed-forces/bonded.cpp
-index c9d7b45..fd120ac 100644
---- a/src/gromacs/listed-forces/bonded.cpp
-+++ b/src/gromacs/listed-forces/bonded.cpp
-@@ -982,10 +982,13 @@
- const int nfa1 = 4;
- int i, iu, s;
- int type;
-- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) ai[GMX_SIMD_REAL_WIDTH];
-- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) aj[GMX_SIMD_REAL_WIDTH];
-- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) ak[GMX_SIMD_REAL_WIDTH];
-- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) coeff[2*GMX_SIMD_REAL_WIDTH];
-+ std::int32_t unalignedMemI[GMX_SIMD_REAL_WIDTH*4]; // GMX_SIMD_REAL_WIDTH*3 + padding
-+ std::int32_t * ai = simdAlign(unalignedMemI); // size GMX_SIMD_REAL_WIDTH
-+ std::int32_t * aj = ai + GMX_SIMD_REAL_WIDTH; // size GMX_SIMD_REAL_WIDTH
-+ std::int32_t * ak = ai + GMX_SIMD_REAL_WIDTH*2; // size GMX_SIMD_REAL_WIDTH
-+ real unalignedMemR[GMX_SIMD_REAL_WIDTH*12]; // GMX_SIMD_REAL_WIDTH*(2+9) + padding
-+ real * coeff = simdAlign(unalignedMemR); // size GMX_SIMD_REAL_WIDTH*2
-+ real * pbc_simd = coeff + GMX_SIMD_REAL_WIDTH*2; // size GMX_SIMD_REAL_WIDTH*9
- SimdReal deg2rad_S(DEG2RAD);
- SimdReal xi_S, yi_S, zi_S;
- SimdReal xj_S, yj_S, zj_S;
-@@ -1005,7 +1008,6 @@
- SimdReal cik_S, cii_S, ckk_S;
- SimdReal f_ix_S, f_iy_S, f_iz_S;
- SimdReal f_kx_S, f_ky_S, f_kz_S;
-- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) pbc_simd[9*GMX_SIMD_REAL_WIDTH];
-
- set_pbc_simd(pbc, pbc_simd);
-
-@@ -1309,11 +1311,13 @@
- int gmx_unused *global_atom_index)
- {
- constexpr int nfa1 = 4;
-- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) ai[GMX_SIMD_REAL_WIDTH];
-- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) aj[GMX_SIMD_REAL_WIDTH];
-- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) ak[GMX_SIMD_REAL_WIDTH];
-- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) coeff[4*GMX_SIMD_REAL_WIDTH];
-- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) pbc_simd[9*GMX_SIMD_REAL_WIDTH];
-+ std::int32_t unalignedMemI[GMX_SIMD_REAL_WIDTH*4]; // GMX_SIMD_REAL_WIDTH*3 + padding
-+ std::int32_t * ai = simdAlign(unalignedMemI); // size GMX_SIMD_REAL_WIDTH
-+ std::int32_t * aj = ai + GMX_SIMD_REAL_WIDTH; // size GMX_SIMD_REAL_WIDTH
-+ std::int32_t * ak = ai + GMX_SIMD_REAL_WIDTH*2; // size GMX_SIMD_REAL_WIDTH
-+ real unalignedMemR[GMX_SIMD_REAL_WIDTH*14]; // GMX_SIMD_REAL_WIDTH*(4+9) + padding
-+ real * coeff = simdAlign(unalignedMemR); // size GMX_SIMD_REAL_WIDTH*4
-+ real * pbc_simd = coeff + GMX_SIMD_REAL_WIDTH*4; // size GMX_SIMD_REAL_WIDTH*9
-
- set_pbc_simd(pbc, pbc_simd);
-
-@@ -1995,11 +1999,14 @@
- const int nfa1 = 5;
- int i, iu, s;
- int type;
-- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) ai[GMX_SIMD_REAL_WIDTH];
-- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) aj[GMX_SIMD_REAL_WIDTH];
-- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) ak[GMX_SIMD_REAL_WIDTH];
-- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) al[GMX_SIMD_REAL_WIDTH];
-- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) buf[3*GMX_SIMD_REAL_WIDTH];
-+ std::int32_t unalignedMemI[GMX_SIMD_REAL_WIDTH*5]; // GMX_SIMD_REAL_WIDTH*4 + padding
-+ std::int32_t * ai = simdAlign(unalignedMemI); // size GMX_SIMD_REAL_WIDTH
-+ std::int32_t * aj = ai + GMX_SIMD_REAL_WIDTH; // size GMX_SIMD_REAL_WIDTH
-+ std::int32_t * ak = ai + GMX_SIMD_REAL_WIDTH*2; // size GMX_SIMD_REAL_WIDTH
-+ std::int32_t * al = ai + GMX_SIMD_REAL_WIDTH*3; // size GMX_SIMD_REAL_WIDTH
-+ real unalignedMemR[GMX_SIMD_REAL_WIDTH*13]; // GMX_SIMD_REAL_WIDTH*(9+3) + padding
-+ real * buf = simdAlign(unalignedMemR); // size GMX_SIMD_REAL_WIDTH*3
-+ real * pbc_simd = buf + GMX_SIMD_REAL_WIDTH*3; // size GMX_SIMD_REAL_WIDTH*9
- real *cp, *phi0, *mult;
- SimdReal deg2rad_S(DEG2RAD);
- SimdReal p_S, q_S;
-@@ -2011,7 +2018,6 @@
- SimdReal sin_S, cos_S;
- SimdReal mddphi_S;
- SimdReal sf_i_S, msf_l_S;
-- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) pbc_simd[9*GMX_SIMD_REAL_WIDTH];
-
- /* Extract aligned pointer for parameters and variables */
- cp = buf + 0*GMX_SIMD_REAL_WIDTH;
-@@ -2110,12 +2116,14 @@
- const int nfa1 = 5;
- int i, iu, s, j;
- int type;
-- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) ai[GMX_SIMD_REAL_WIDTH];
-- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) aj[GMX_SIMD_REAL_WIDTH];
-- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) ak[GMX_SIMD_REAL_WIDTH];
-- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) al[GMX_SIMD_REAL_WIDTH];
-- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) parm[NR_RBDIHS*GMX_SIMD_REAL_WIDTH];
--
-+ std::int32_t unalignedMemI[GMX_SIMD_REAL_WIDTH*5]; // GMX_SIMD_REAL_WIDTH*4 + padding
-+ std::int32_t * ai = simdAlign(unalignedMemI); // size GMX_SIMD_REAL_WIDTH
-+ std::int32_t * aj = ai + GMX_SIMD_REAL_WIDTH; // size GMX_SIMD_REAL_WIDTH
-+ std::int32_t * ak = ai + GMX_SIMD_REAL_WIDTH*2; // size GMX_SIMD_REAL_WIDTH
-+ std::int32_t * al = ai + GMX_SIMD_REAL_WIDTH*3; // size GMX_SIMD_REAL_WIDTH
-+ real unalignedMemR[GMX_SIMD_REAL_WIDTH*(NR_RBDIHS+9+1)]; // GMX_SIMD_REAL_WIDTH*(NRRBDIHS+9) + padding
-+ real * parm = simdAlign(unalignedMemR); // size GMX_SIMD_REAL_WIDTH*NR_RBDIHS
-+ real * pbc_simd = parm + GMX_SIMD_REAL_WIDTH*NR_RBDIHS; // size GMX_SIMD_REAL_WIDTH*9
- SimdReal p_S, q_S;
- SimdReal phi_S;
- SimdReal ddphi_S, cosfac_S;
-@@ -2125,7 +2133,6 @@
- SimdReal parm_S, c_S;
- SimdReal sin_S, cos_S;
- SimdReal sf_i_S, msf_l_S;
-- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) pbc_simd[9*GMX_SIMD_REAL_WIDTH];
-
- SimdReal pi_S(M_PI);
- SimdReal one_S(1.0);
-diff --git a/src/gromacs/listed-forces/pairs.cpp b/src/gromacs/listed-forces/pairs.cpp
-index 6d0d179..ea2e421 100644
---- a/src/gromacs/listed-forces/pairs.cpp
-+++ b/src/gromacs/listed-forces/pairs.cpp
-@@ -550,11 +550,19 @@
- T twelve(12);
- T ef(scale_factor);
-
-- const int align = 16;
-- GMX_ASSERT(pack_size <= align, "align should be increased");
-- GMX_ALIGNED(int, align) ai[pack_size];
-- GMX_ALIGNED(int, align) aj[pack_size];
-- GMX_ALIGNED(real, align) coeff[3*pack_size];
-+#if GMX_SIMD_HAVE_REAL
-+ // No matter what the pack_size is, we only need temporary storage to be
-+ // aligned to match the SIMD load/store requirements.
-+ std::int32_t unalignedMemI[pack_size*2 + GMX_SIMD_REAL_WIDTH];
-+ std::int32_t * ai = simdAlign(unalignedMemI);
-+ std::int32_t * aj = ai + pack_size;
-+ real unalignedMemR[3*pack_size + GMX_SIMD_REAL_WIDTH];
-+ real * coeff = simdAlign(unalignedMemR); // size 3*pack_size
-+#else
-+ std::int32_t ai[pack_size];
-+ std::int32_t aj[pack_size];
-+ real coeff[3*pack_size];
-+#endif
-
- /* nbonds is #pairs*nfa1, here we step pack_size pairs */
- for (int i = 0; i < nbonds; i += pack_size*nfa1)
-@@ -658,7 +666,8 @@
- * at once for the angles and dihedrals as well.
- */
- #if GMX_SIMD
-- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) pbc_simd[9*GMX_SIMD_REAL_WIDTH];
-+ real unalignedMem[GMX_SIMD_REAL_WIDTH*10];
-+ real * pbc_simd = simdAlign(unalignedMem);
- set_pbc_simd(pbc, pbc_simd);
-
- do_pairs_simple<SimdReal, GMX_SIMD_REAL_WIDTH,
-diff --git a/src/gromacs/mdlib/clincs.cpp b/src/gromacs/mdlib/clincs.cpp
-index 336e75b..b8686f2 100644
---- a/src/gromacs/mdlib/clincs.cpp
-+++ b/src/gromacs/mdlib/clincs.cpp
-@@ -441,7 +441,10 @@
- {
- assert(b0 % GMX_SIMD_REAL_WIDTH == 0);
-
-- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) offset2[GMX_SIMD_REAL_WIDTH];
-+ std::int32_t unalignedMem[GMX_SIMD_REAL_WIDTH*4];
-+ std::int32_t * offset0 = simdAlign(unalignedMem);
-+ std::int32_t * offset1 = offset0 + GMX_SIMD_REAL_WIDTH;
-+ std::int32_t * offset2 = offset0 + GMX_SIMD_REAL_WIDTH*2;
-
- for (int i = 0; i < GMX_SIMD_REAL_WIDTH; i++)
- {
-@@ -454,8 +457,6 @@
- SimdReal x1_S, y1_S, z1_S;
- SimdReal rx_S, ry_S, rz_S, n2_S, il_S;
- SimdReal fx_S, fy_S, fz_S, ip_S, rhs_S;
-- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) offset0[GMX_SIMD_REAL_WIDTH];
-- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) offset1[GMX_SIMD_REAL_WIDTH];
-
- for (int i = 0; i < GMX_SIMD_REAL_WIDTH; i++)
- {
-@@ -537,7 +538,8 @@
- * The only difference is that we always call pbc code, as with SIMD
- * the overhead of pbc computation (when not needed) is small.
- */
-- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) pbc_simd[9*GMX_SIMD_REAL_WIDTH];
-+ real unalignedMem[GMX_SIMD_REAL_WIDTH*10];
-+ real * pbc_simd = simdAlign(unalignedMem);
-
- /* Convert the pbc struct for SIMD */
- set_pbc_simd(pbc, pbc_simd);
-@@ -695,7 +697,10 @@
- real * gmx_restrict sol)
- {
- assert(b0 % GMX_SIMD_REAL_WIDTH == 0);
-- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) offset2[GMX_SIMD_REAL_WIDTH];
-+ std::int32_t unalignedMem[GMX_SIMD_REAL_WIDTH*4];
-+ std::int32_t * offset0 = simdAlign(unalignedMem);
-+ std::int32_t * offset1 = offset0 + GMX_SIMD_REAL_WIDTH;
-+ std::int32_t * offset2 = offset0 + GMX_SIMD_REAL_WIDTH*2;
-
- for (int i = 0; i < GMX_SIMD_REAL_WIDTH; i++)
- {
-@@ -708,8 +713,6 @@
- SimdReal x1_S, y1_S, z1_S;
- SimdReal rx_S, ry_S, rz_S, n2_S, il_S;
- SimdReal rxp_S, ryp_S, rzp_S, ip_S, rhs_S;
-- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) offset0[GMX_SIMD_REAL_WIDTH];
-- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) offset1[GMX_SIMD_REAL_WIDTH];
-
- for (int i = 0; i < GMX_SIMD_REAL_WIDTH; i++)
- {
-@@ -824,6 +827,10 @@
-
- int bs;
-
-+ std::int32_t unalignedMem[GMX_SIMD_REAL_WIDTH*3];
-+ std::int32_t * offset0 = simdAlign(unalignedMem);
-+ std::int32_t * offset1 = offset0 + GMX_SIMD_REAL_WIDTH;
-+
- assert(b0 % GMX_SIMD_REAL_WIDTH == 0);
-
- /* Initialize all to FALSE */
-@@ -835,8 +842,6 @@
- SimdReal x1_S, y1_S, z1_S;
- SimdReal rx_S, ry_S, rz_S, n2_S;
- SimdReal len_S, len2_S, dlen2_S, lc_S, blc_S;
-- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) offset0[GMX_SIMD_REAL_WIDTH];
-- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) offset1[GMX_SIMD_REAL_WIDTH];
-
- for (int i = 0; i < GMX_SIMD_REAL_WIDTH; i++)
- {
-@@ -923,7 +928,8 @@
- * The only difference is that we always call pbc code, as with SIMD
- * the overhead of pbc computation (when not needed) is small.
- */
-- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) pbc_simd[9*GMX_SIMD_REAL_WIDTH];
-+ real unalignedMem[GMX_SIMD_REAL_WIDTH*10];
-+ real * pbc_simd = simdAlign(unalignedMem);
-
- /* Convert the pbc struct for SIMD */
- set_pbc_simd(pbc, pbc_simd);
-diff --git a/src/gromacs/mdlib/csettle.cpp b/src/gromacs/mdlib/csettle.cpp
-index 34a011a..fb71292 100644
---- a/src/gromacs/mdlib/csettle.cpp
-+++ b/src/gromacs/mdlib/csettle.cpp
-@@ -850,7 +850,9 @@
- if (settled->bUseSimd)
- {
- /* Convert the pbc struct for SIMD */
-- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) pbcSimd[9*GMX_SIMD_REAL_WIDTH];
-+ real unalignedMem[GMX_SIMD_REAL_WIDTH*10];
-+ real * pbcSimd = simdAlign(unalignedMem);
-+
- set_pbc_simd(pbc, pbcSimd);
-
- settleTemplateWrapper<SimdReal, SimdBool, GMX_SIMD_REAL_WIDTH,
-diff --git a/src/gromacs/mdlib/nbnxn_kernels/simd_2xnn/nbnxn_kernel_simd_2xnn_inner.h b/src/gromacs/mdlib/nbnxn_kernels/simd_2xnn/nbnxn_kernel_simd_2xnn_inner.h
-index 3dfc89b..1671e30 100644
---- a/src/gromacs/mdlib/nbnxn_kernels/simd_2xnn/nbnxn_kernel_simd_2xnn_inner.h
-+++ b/src/gromacs/mdlib/nbnxn_kernels/simd_2xnn/nbnxn_kernel_simd_2xnn_inner.h
-@@ -278,8 +278,9 @@
-
- #ifdef COUNT_PAIRS
- {
-- int i, j;
-- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) tmp[GMX_SIMD_REAL_WIDTH];
-+ int i, j;
-+ real unalignedMem[GMX_SIMD_REAL_WIDTH*2];
-+ real * tmp = simdAlign(unalignedMem);
-
- for (i = 0; i < UNROLLI; i += 2)
- {
-diff --git a/src/gromacs/mdlib/nbnxn_kernels/simd_2xnn/nbnxn_kernel_simd_2xnn_outer.h b/src/gromacs/mdlib/nbnxn_kernels/simd_2xnn/nbnxn_kernel_simd_2xnn_outer.h
-index 2aa9944..d401715 100644
---- a/src/gromacs/mdlib/nbnxn_kernels/simd_2xnn/nbnxn_kernel_simd_2xnn_outer.h
-+++ b/src/gromacs/mdlib/nbnxn_kernels/simd_2xnn/nbnxn_kernel_simd_2xnn_outer.h
-@@ -138,8 +138,9 @@
- SimdReal hsig_i_S2, seps_i_S2;
- #else
- #ifdef FIX_LJ_C
-- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) pvdw_c6[2*UNROLLI*UNROLLJ];
-- real *pvdw_c12 = pvdw_c6 + UNROLLI*UNROLLJ;
-+ real unalignedMem[2*UNROLLI*UNROLLJ + GMX_SIMD_REAL_WIDTH];
-+ real * pvdw_c6 = simdAlign(unalignedMem);
-+ real * pvdw_c12 = pvdw_c6 + UNROLLI*UNROLLJ;
- #endif
-
- #if defined LJ_COMB_GEOM || defined LJ_EWALD_GEOM
-diff --git a/src/gromacs/mdlib/nbnxn_kernels/simd_4xn/nbnxn_kernel_simd_4xn_inner.h b/src/gromacs/mdlib/nbnxn_kernels/simd_4xn/nbnxn_kernel_simd_4xn_inner.h
-index f0b0b7a..bcf2675 100644
---- a/src/gromacs/mdlib/nbnxn_kernels/simd_4xn/nbnxn_kernel_simd_4xn_inner.h
-+++ b/src/gromacs/mdlib/nbnxn_kernels/simd_4xn/nbnxn_kernel_simd_4xn_inner.h
-@@ -362,8 +362,9 @@
-
- #ifdef COUNT_PAIRS
- {
-- int i, j;
-- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) tmp[2*GMX_SIMD_REAL_WIDTH];
-+ int i, j;
-+ real unalignedMem[GMX_SIMD_REAL_WIDTH*3];
-+ real * tmp = simdAlign(unalignedMem);
-
- for (i = 0; i < UNROLLI; i++)
- {
-diff --git a/src/gromacs/mdlib/nbnxn_kernels/simd_4xn/nbnxn_kernel_simd_4xn_outer.h b/src/gromacs/mdlib/nbnxn_kernels/simd_4xn/nbnxn_kernel_simd_4xn_outer.h
-index 167379c..ae627b6 100644
---- a/src/gromacs/mdlib/nbnxn_kernels/simd_4xn/nbnxn_kernel_simd_4xn_outer.h
-+++ b/src/gromacs/mdlib/nbnxn_kernels/simd_4xn/nbnxn_kernel_simd_4xn_outer.h
-@@ -334,8 +334,9 @@
- x = nbat->x;
-
- #ifdef FIX_LJ_C
-- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) pvdw_c6[2*UNROLLI*UNROLLJ];
-- real *pvdw_c12 = pvdw_c6 + UNROLLI*UNROLLJ;
-+ real unalignedMem[2*UNROLLI*UNROLLJ + GMX_SIMD_REAL_WIDTH];
-+ real * pvdw_c6 = simdAlign(unalignedMem);
-+ real * pvdw_c12 = pvdw_c6 + UNROLLI*UNROLLJ;
-
- for (int jp = 0; jp < UNROLLJ; jp++)
- {
-diff --git a/src/gromacs/simd/impl_arm_neon/impl_arm_neon_util_float.h b/src/gromacs/simd/impl_arm_neon/impl_arm_neon_util_float.h
-index d2919f4..9239529 100644
---- a/src/gromacs/simd/impl_arm_neon/impl_arm_neon_util_float.h
-+++ b/src/gromacs/simd/impl_arm_neon/impl_arm_neon_util_float.h
-@@ -1,7 +1,7 @@
- /*
- * This file is part of the GROMACS molecular simulation package.
- *
-- * Copyright (c) 2014,2015,2016, by the GROMACS development team, led by
-+ * Copyright (c) 2014,2015,2016,2017, by the GROMACS development team, led by
- * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
- * and including many others, as listed in the AUTHORS file in the
- * top-level source directory and at http://www.gromacs.org.
-@@ -286,7 +286,8 @@
- SimdFloat * v2,
- SimdFloat * v3)
- {
-- GMX_ALIGNED(int, GMX_SIMD_FINT32_WIDTH) ioffset[GMX_SIMD_FINT32_WIDTH];
-+ // Arm does not mind unaligned memory
-+ std::int32_t ioffset[GMX_SIMD_FLOAT_WIDTH];
-
- assert(std::size_t(base) % 16 == 0);
- assert(align % 4 == 0);
-@@ -302,7 +303,8 @@
- SimdFloat * v0,
- SimdFloat * v1)
- {
-- GMX_ALIGNED(int, GMX_SIMD_FINT32_WIDTH) ioffset[GMX_SIMD_FINT32_WIDTH];
-+ // Arm does not mind unaligned memory
-+ std::int32_t ioffset[GMX_SIMD_FLOAT_WIDTH];
-
- store(ioffset, offset);
- gatherLoadTranspose<align>(base, ioffset, v0, v1);
-@@ -317,7 +319,8 @@
- SimdFloat * v0,
- SimdFloat * v1)
- {
-- GMX_ALIGNED(int, GMX_SIMD_FINT32_WIDTH) ioffset[GMX_SIMD_FINT32_WIDTH];
-+ // Arm does not mind unaligned memory
-+ std::int32_t ioffset[GMX_SIMD_FLOAT_WIDTH];
-
- store(ioffset, offset);
- v0->simdInternal_ = vcombine_f32(vld1_f32( base + align * ioffset[0] ),
-diff --git a/src/gromacs/simd/impl_arm_neon_asimd/impl_arm_neon_asimd_util_double.h b/src/gromacs/simd/impl_arm_neon_asimd/impl_arm_neon_asimd_util_double.h
-index 45abcbb..2a5bf7e 100644
---- a/src/gromacs/simd/impl_arm_neon_asimd/impl_arm_neon_asimd_util_double.h
-+++ b/src/gromacs/simd/impl_arm_neon_asimd/impl_arm_neon_asimd_util_double.h
-@@ -1,7 +1,7 @@
- /*
- * This file is part of the GROMACS molecular simulation package.
- *
-- * Copyright (c) 2014,2015, by the GROMACS development team, led by
-+ * Copyright (c) 2014,2015,2017, by the GROMACS development team, led by
- * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
- * and including many others, as listed in the AUTHORS file in the
- * top-level source directory and at http://www.gromacs.org.
-@@ -225,7 +225,8 @@
- SimdDouble * v2,
- SimdDouble * v3)
- {
-- GMX_ALIGNED(int, GMX_SIMD_DINT32_WIDTH) ioffset[GMX_SIMD_DINT32_WIDTH];
-+ // Arm does not mind unaligned memory
-+ std::int32_t ioffset[GMX_SIMD_DOUBLE_WIDTH];
-
- assert(std::size_t(base) % 16 == 0);
- assert(align % 2 == 0);
-@@ -242,7 +243,8 @@
- SimdDouble * v0,
- SimdDouble * v1)
- {
-- GMX_ALIGNED(int, GMX_SIMD_DINT32_WIDTH) ioffset[GMX_SIMD_DINT32_WIDTH];
-+ // Arm does not mind unaligned memory
-+ std::int32_t ioffset[GMX_SIMD_DOUBLE_WIDTH];
-
- assert(std::size_t(base) % 16 == 0);
- assert(align % 2 == 0);
-@@ -258,7 +260,8 @@
- SimdDouble * v0,
- SimdDouble * v1)
- {
-- GMX_ALIGNED(int, GMX_SIMD_DINT32_WIDTH) ioffset[GMX_SIMD_DINT32_WIDTH];
-+ // Arm does not mind unaligned memory
-+ std::int32_t ioffset[GMX_SIMD_DOUBLE_WIDTH];
-
- vst1_s32(ioffset, offset.simdInternal_);
-
-diff --git a/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_simd_double.h b/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_simd_double.h
-index dc20d78..cdaef23 100644
---- a/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_simd_double.h
-+++ b/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_simd_double.h
-@@ -75,7 +75,11 @@
-
- SimdDInt32(std::int32_t i)
- {
-- GMX_ALIGNED(int, GMX_SIMD_DINT32_WIDTH) idata[GMX_SIMD_DINT32_WIDTH];
-+ std::int32_t unalignedMem[GMX_SIMD_DINT32_WIDTH*2];
-+ // Float and double are the same width for QPX, so simdAlign() will
-+ // work with integers no matter what the current precision is
-+ std::int32_t * idata = simdAlign(unalignedMem);
-+
- idata[0] = i;
- simdInternal_ = vec_splat(vec_ldia(0, idata), 0);
- }
-@@ -332,8 +336,13 @@
- static inline SimdDouble
- frexp(SimdDouble value, SimdDInt32 * exponent)
- {
-- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) rdata[GMX_SIMD_DOUBLE_WIDTH];
-- GMX_ALIGNED(int, GMX_SIMD_DOUBLE_WIDTH) idata[GMX_SIMD_DOUBLE_WIDTH];
-+ double unalignedMem[GMX_SIMD_DOUBLE_WIDTH*2];
-+ double * rdata = simdAlign(unalignedMem);
-+
-+ std::int32_t unalignedMemI[GMX_SIMD_DOUBLE_WIDTH*2];
-+ // Float and double are the same width for QPX, so simdAlign() will
-+ // work with integers no matter what the current precision is
-+ std::int32_t * idata = simdAlign(unalignedMemI);
-
- vec_st(value.simdInternal_, 0, rdata);
-
-@@ -352,8 +361,13 @@
- static inline SimdDouble
- ldexp(SimdDouble value, SimdDInt32 exponent)
- {
-- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) rdata[GMX_SIMD_DOUBLE_WIDTH];
-- GMX_ALIGNED(int, GMX_SIMD_DOUBLE_WIDTH) idata[GMX_SIMD_DOUBLE_WIDTH];
-+ double unalignedMem[GMX_SIMD_DOUBLE_WIDTH*2];
-+ double * rdata = simdAlign(unalignedMem);
-+
-+ std::int32_t unalignedMemI[GMX_SIMD_DOUBLE_WIDTH*2];
-+ // Float and double are the same width for QPX, so simdAlign() will
-+ // work with integers no matter what the current precision is
-+ std::int32_t * idata = simdAlign(unalignedMemI);
-
- vec_st(value.simdInternal_, 0, rdata);
- vec_st(exponent.simdInternal_, 0, idata);
-diff --git a/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_simd_float.h b/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_simd_float.h
-index 12ffdbd..0977a64 100644
---- a/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_simd_float.h
-+++ b/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_simd_float.h
-@@ -72,7 +72,11 @@
-
- SimdFInt32(std::int32_t i)
- {
-- GMX_ALIGNED(int, GMX_SIMD_FINT32_WIDTH) idata[GMX_SIMD_FINT32_WIDTH];
-+ std::int32_t unalignedMem[GMX_SIMD_FINT32_WIDTH*2];
-+ // Float and double are the same width for QPX, so simdAlign() will
-+ // work with integers no matter what the current precision is
-+ std::int32_t * idata = simdAlign(unalignedMem);
-+
- idata[0] = i;
- simdInternal_ = vec_splat(vec_ldia(0, idata), 0);
- }
-@@ -329,8 +333,12 @@
- static inline SimdFloat
- frexp(SimdFloat value, SimdFInt32 * exponent)
- {
-- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) rdata[GMX_SIMD_FLOAT_WIDTH];
-- GMX_ALIGNED(int, GMX_SIMD_FLOAT_WIDTH) idata[GMX_SIMD_FLOAT_WIDTH];
-+ float unalignedMem[GMX_SIMD_FLOAT_WIDTH*2];
-+ float * rdata = simdAlign(unalignedMem);
-+ std::int32_t unalignedMemI[GMX_SIMD_FLOAT_WIDTH*2];
-+ // Float and double are the same width for QPX, so simdAlign() will
-+ // work with integers no matter what the current precision is
-+ std::int32_t * idata = simdAlign(unalignedMemI);
-
- vec_st(value.simdInternal_, 0, rdata);
-
-@@ -349,8 +357,13 @@
- static inline SimdFloat
- ldexp(SimdFloat value, SimdFInt32 exponent)
- {
-- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) rdata[GMX_SIMD_FLOAT_WIDTH];
-- GMX_ALIGNED(int, GMX_SIMD_FLOAT_WIDTH) idata[GMX_SIMD_FLOAT_WIDTH];
-+ float unalignedMem[GMX_SIMD_FLOAT_WIDTH*2];
-+ float * rdata = simdAlign(unalignedMem);
-+
-+ std::int32_t unalignedMemI[GMX_SIMD_FLOAT_WIDTH*2];
-+ // Float and double are the same width for QPX, so simdAlign() will
-+ // work with integers no matter what the current precision is
-+ std::int32_t * idata = simdAlign(unalignedMemI);
-
- vec_st(value.simdInternal_, 0, rdata);
- vec_st(exponent.simdInternal_, 0, idata);
-diff --git a/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_util_double.h b/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_util_double.h
-index 5a220c4..5446fdc 100644
---- a/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_util_double.h
-+++ b/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_util_double.h
-@@ -1,7 +1,7 @@
- /*
- * This file is part of the GROMACS molecular simulation package.
- *
-- * Copyright (c) 2014,2015,2016, by the GROMACS development team, led by
-+ * Copyright (c) 2014,2015,2016,2017, by the GROMACS development team, led by
- * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
- * and including many others, as listed in the AUTHORS file in the
- * top-level source directory and at http://www.gromacs.org.
-@@ -143,9 +143,10 @@
- SimdDouble v1,
- SimdDouble v2)
- {
-- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) m0[GMX_SIMD_DOUBLE_WIDTH];
-- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) m1[GMX_SIMD_DOUBLE_WIDTH];
-- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) m2[GMX_SIMD_DOUBLE_WIDTH];
-+ double unalignedMem[GMX_SIMD_DOUBLE_WIDTH*4];
-+ double * m0 = simdAlign(unalignedMem);
-+ double * m1 = m0 + GMX_SIMD_DOUBLE_WIDTH;
-+ double * m2 = m0 + GMX_SIMD_DOUBLE_WIDTH*2;
-
- store(m0, v0);
- store(m1, v1);
-@@ -193,9 +194,10 @@
- }
- else
- {
-- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) m0[GMX_SIMD_DOUBLE_WIDTH];
-- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) m1[GMX_SIMD_DOUBLE_WIDTH];
-- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) m2[GMX_SIMD_DOUBLE_WIDTH];
-+ double unalignedMem[GMX_SIMD_DOUBLE_WIDTH*4];
-+ double * m0 = simdAlign(unalignedMem);
-+ double * m1 = m0 + GMX_SIMD_DOUBLE_WIDTH;
-+ double * m2 = m0 + GMX_SIMD_DOUBLE_WIDTH*2;
-
- store(m0, v0);
- store(m1, v1);
-@@ -244,9 +246,10 @@
- }
- else
- {
-- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) m0[GMX_SIMD_DOUBLE_WIDTH];
-- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) m1[GMX_SIMD_DOUBLE_WIDTH];
-- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) m2[GMX_SIMD_DOUBLE_WIDTH];
-+ double unalignedMem[GMX_SIMD_DOUBLE_WIDTH*4];
-+ double * m0 = simdAlign(unalignedMem);
-+ double * m1 = m0 + GMX_SIMD_DOUBLE_WIDTH;
-+ double * m2 = m0 + GMX_SIMD_DOUBLE_WIDTH*2;
-
- store(m0, v0);
- store(m1, v1);
-@@ -287,7 +290,10 @@
- SimdDouble * v2,
- SimdDouble * v3)
- {
-- GMX_ALIGNED(int, GMX_SIMD_DOUBLE_WIDTH) ioffset[GMX_SIMD_DOUBLE_WIDTH];
-+ std::int32_t unalignedMem[GMX_SIMD_DOUBLE_WIDTH*2];
-+ // Float and double are the same width for QPX, so simdAlign() will
-+ // work with integers no matter what the current precision is
-+ std::int32_t * ioffset = simdAlign(unalignedMem);
-
- store(ioffset, simdoffset);
- gatherLoadTranspose<align>(base, ioffset, v0, v1, v2, v3);
-@@ -300,7 +306,10 @@
- SimdDouble * v0,
- SimdDouble * v1)
- {
-- GMX_ALIGNED(int, GMX_SIMD_DOUBLE_WIDTH) ioffset[GMX_SIMD_DOUBLE_WIDTH];
-+ std::int32_t unalignedMem[GMX_SIMD_DOUBLE_WIDTH*2];
-+ // Float and double are the same width for QPX, so simdAlign() will
-+ // work with integers no matter what the current precision is
-+ std::int32_t * ioffset = simdAlign(unalignedMem);
-
- store(ioffset, simdoffset);
- gatherLoadTranspose<align>(base, ioffset, v0, v1);
-diff --git a/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_util_float.h b/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_util_float.h
-index 2e12fab..39644eb 100644
---- a/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_util_float.h
-+++ b/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_util_float.h
-@@ -1,7 +1,7 @@
- /*
- * This file is part of the GROMACS molecular simulation package.
- *
-- * Copyright (c) 2014,2015,2016, by the GROMACS development team, led by
-+ * Copyright (c) 2014,2015,2016,2017, by the GROMACS development team, led by
- * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
- * and including many others, as listed in the AUTHORS file in the
- * top-level source directory and at http://www.gromacs.org.
-@@ -143,9 +143,10 @@
- SimdFloat v1,
- SimdFloat v2)
- {
-- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) m0[GMX_SIMD_FLOAT_WIDTH];
-- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) m1[GMX_SIMD_FLOAT_WIDTH];
-- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) m2[GMX_SIMD_FLOAT_WIDTH];
-+ float unalignedMem[GMX_SIMD_FLOAT_WIDTH*4];
-+ float * m0 = simdAlign(unalignedMem);
-+ float * m1 = m0 + GMX_SIMD_FLOAT_WIDTH;
-+ float * m2 = m0 + GMX_SIMD_FLOAT_WIDTH*2;
-
- store(m0, v0);
- store(m1, v1);
-@@ -193,9 +194,10 @@
- }
- else
- {
-- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) m0[GMX_SIMD_FLOAT_WIDTH];
-- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) m1[GMX_SIMD_FLOAT_WIDTH];
-- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) m2[GMX_SIMD_FLOAT_WIDTH];
-+ float unalignedMem[GMX_SIMD_FLOAT_WIDTH*4];
-+ float * m0 = simdAlign(unalignedMem);
-+ float * m1 = m0 + GMX_SIMD_FLOAT_WIDTH;
-+ float * m2 = m0 + GMX_SIMD_FLOAT_WIDTH*2;
-
- store(m0, v0);
- store(m1, v1);
-@@ -244,9 +246,10 @@
- }
- else
- {
-- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) m0[GMX_SIMD_FLOAT_WIDTH];
-- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) m1[GMX_SIMD_FLOAT_WIDTH];
-- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) m2[GMX_SIMD_FLOAT_WIDTH];
-+ float unalignedMem[GMX_SIMD_FLOAT_WIDTH*4];
-+ float * m0 = simdAlign(unalignedMem);
-+ float * m1 = m0 + GMX_SIMD_FLOAT_WIDTH;
-+ float * m2 = m0 + GMX_SIMD_FLOAT_WIDTH*2;
-
- store(m0, v0);
- store(m1, v1);
-@@ -287,7 +290,10 @@
- SimdFloat * v2,
- SimdFloat * v3)
- {
-- GMX_ALIGNED(int, GMX_SIMD_FLOAT_WIDTH) ioffset[GMX_SIMD_FLOAT_WIDTH];
-+ std::int32_t unalignedMem[GMX_SIMD_FLOAT_WIDTH*2];
-+ // Float and double are the same width for QPX, so simdAlign() will
-+ // work with integers no matter what the current precision is
-+ std::int32_t * ioffset = simdAlign(unalignedMem);
-
- store(ioffset, simdoffset);
- gatherLoadTranspose<align>(base, ioffset, v0, v1, v2, v3);
-@@ -300,7 +306,10 @@
- SimdFloat * v0,
- SimdFloat * v1)
- {
-- GMX_ALIGNED(int, GMX_SIMD_FLOAT_WIDTH) ioffset[GMX_SIMD_FLOAT_WIDTH];
-+ std::int32_t unalignedMem[GMX_SIMD_FLOAT_WIDTH*2];
-+ // Float and double are the same width for QPX, so simdAlign() will
-+ // work with integers no matter what the current precision is
-+ std::int32_t * ioffset = simdAlign(unalignedMem);
-
- store(ioffset, simdoffset);
- gatherLoadTranspose<align>(base, ioffset, v0, v1);
-diff --git a/src/gromacs/simd/impl_ibm_vmx/impl_ibm_vmx_util_float.h b/src/gromacs/simd/impl_ibm_vmx/impl_ibm_vmx_util_float.h
-index 95690c3..1e1642a 100644
---- a/src/gromacs/simd/impl_ibm_vmx/impl_ibm_vmx_util_float.h
-+++ b/src/gromacs/simd/impl_ibm_vmx/impl_ibm_vmx_util_float.h
-@@ -1,7 +1,7 @@
- /*
- * This file is part of the GROMACS molecular simulation package.
- *
-- * Copyright (c) 2014,2015,2016, by the GROMACS development team, led by
-+ * Copyright (c) 2014,2015,2016,2017, by the GROMACS development team, led by
- * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
- * and including many others, as listed in the AUTHORS file in the
- * top-level source directory and at http://www.gromacs.org.
-@@ -273,9 +273,10 @@
- }
- else
- {
-- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) rdata0[GMX_SIMD_FLOAT_WIDTH];
-- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) rdata1[GMX_SIMD_FLOAT_WIDTH];
-- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) rdata2[GMX_SIMD_FLOAT_WIDTH];
-+ float unalignedMem[GMX_SIMD_FLOAT_WIDTH*4];
-+ float * rdata0 = simdAlign(unalignedMem);
-+ float * rdata1 = rdata0 + GMX_SIMD_FLOAT_WIDTH;
-+ float * rdata2 = rdata0 + GMX_SIMD_FLOAT_WIDTH*2;
-
- vec_st(v0.simdInternal_, 0, rdata0);
- vec_st(v1.simdInternal_, 0, rdata1);
-@@ -323,9 +324,10 @@
- }
- else
- {
-- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) rdata0[GMX_SIMD_FLOAT_WIDTH];
-- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) rdata1[GMX_SIMD_FLOAT_WIDTH];
-- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) rdata2[GMX_SIMD_FLOAT_WIDTH];
-+ float unalignedMem[GMX_SIMD_FLOAT_WIDTH*4];
-+ float * rdata0 = simdAlign(unalignedMem);
-+ float * rdata1 = rdata0 + GMX_SIMD_FLOAT_WIDTH;
-+ float * rdata2 = rdata0 + GMX_SIMD_FLOAT_WIDTH*2;
-
- vec_st(v0.simdInternal_, 0, rdata0);
- vec_st(v1.simdInternal_, 0, rdata1);
-@@ -371,7 +373,9 @@
- SimdFloat * v2,
- SimdFloat * v3)
- {
-- GMX_ALIGNED(int, GMX_SIMD_FINT32_WIDTH) ioffset[GMX_SIMD_FINT32_WIDTH];
-+ std::int32_t unalignedMem[GMX_SIMD_FLOAT_WIDTH*2];
-+ // VMX only provides single precision, so it's safe to use simdAlign() here
-+ std::int32_t * ioffset = simdAlign(unalignedMem);
-
- vec_st( offset.simdInternal_, 0, ioffset);
- gatherLoadTranspose<align>(base, ioffset, v0, v1, v2, v3);
-@@ -384,7 +388,9 @@
- SimdFloat * v0,
- SimdFloat * v1)
- {
-- GMX_ALIGNED(int, GMX_SIMD_FINT32_WIDTH) ioffset[GMX_SIMD_FINT32_WIDTH];
-+ std::int32_t unalignedMem[GMX_SIMD_FLOAT_WIDTH*2];
-+ // VMX only provides single precision, so it's safe to use simdAlign() here
-+ std::int32_t * ioffset = simdAlign(unalignedMem);
-
- vec_st( offset.simdInternal_, 0, ioffset);
- gatherLoadTranspose<align>(base, ioffset, v0, v1);
-diff --git a/src/gromacs/simd/impl_ibm_vsx/impl_ibm_vsx_util_double.h b/src/gromacs/simd/impl_ibm_vsx/impl_ibm_vsx_util_double.h
-index 868b40f..0a1f4b3 100644
---- a/src/gromacs/simd/impl_ibm_vsx/impl_ibm_vsx_util_double.h
-+++ b/src/gromacs/simd/impl_ibm_vsx/impl_ibm_vsx_util_double.h
-@@ -1,7 +1,7 @@
- /*
- * This file is part of the GROMACS molecular simulation package.
- *
-- * Copyright (c) 2014,2015,2016, by the GROMACS development team, led by
-+ * Copyright (c) 2014,2015,2016,2017, by the GROMACS development team, led by
- * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
- * and including many others, as listed in the AUTHORS file in the
- * top-level source directory and at http://www.gromacs.org.
-@@ -249,7 +249,8 @@
- SimdDouble * v2,
- SimdDouble * v3)
- {
-- GMX_ALIGNED(std::int32_t, GMX_SIMD_DINT32_WIDTH) ioffset[GMX_SIMD_DINT32_WIDTH];
-+ // Our VSX SimdDInt32 load/store routines do not require aligned memory
-+ std::int32_t ioffset[GMX_SIMD_DOUBLE_WIDTH];
-
- store(ioffset, offset );
- gatherLoadTranspose<align>(base, ioffset, v0, v1, v2, v3);
-@@ -262,7 +263,8 @@
- SimdDouble * v0,
- SimdDouble * v1)
- {
-- GMX_ALIGNED(std::int32_t, GMX_SIMD_DINT32_WIDTH) ioffset[GMX_SIMD_DINT32_WIDTH];
-+ // Our VSX SimdDInt32 load/store routines do not require aligned memory
-+ std::int32_t ioffset[GMX_SIMD_DOUBLE_WIDTH];
-
- store(ioffset, offset );
- gatherLoadTranspose<align>(base, ioffset, v0, v1);
-@@ -276,7 +278,8 @@
- SimdDouble * v0,
- SimdDouble * v1)
- {
-- GMX_ALIGNED(std::int32_t, GMX_SIMD_DINT32_WIDTH) ioffset[GMX_SIMD_DINT32_WIDTH];
-+ // Our VSX SimdDInt32 load/store routines do not require aligned memory
-+ std::int32_t ioffset[GMX_SIMD_DOUBLE_WIDTH];
-
- store(ioffset, offset );
- gatherLoadTranspose<align>(base, ioffset, v0, v1);
-diff --git a/src/gromacs/simd/impl_ibm_vsx/impl_ibm_vsx_util_float.h b/src/gromacs/simd/impl_ibm_vsx/impl_ibm_vsx_util_float.h
-index 8863765..e992219 100644
---- a/src/gromacs/simd/impl_ibm_vsx/impl_ibm_vsx_util_float.h
-+++ b/src/gromacs/simd/impl_ibm_vsx/impl_ibm_vsx_util_float.h
-@@ -330,7 +330,8 @@
- SimdFloat * v2,
- SimdFloat * v3)
- {
-- GMX_ALIGNED(std::int32_t, GMX_SIMD_FINT32_WIDTH) ioffset[GMX_SIMD_FINT32_WIDTH];
-+ // Our VSX SimdFInt32 load/store routines do not require aligned memory
-+ std::int32_t ioffset[GMX_SIMD_FLOAT_WIDTH];
-
- store(ioffset, offset );
- gatherLoadTranspose<align>(base, ioffset, v0, v1, v2, v3);
-@@ -343,7 +344,8 @@
- SimdFloat * v0,
- SimdFloat * v1)
- {
-- GMX_ALIGNED(std::int32_t, GMX_SIMD_FINT32_WIDTH) ioffset[GMX_SIMD_FINT32_WIDTH];
-+ // Our VSX SimdFInt32 load/store routines do not require aligned memory
-+ std::int32_t ioffset[GMX_SIMD_FLOAT_WIDTH];
-
- store(ioffset, offset );
- gatherLoadTranspose<align>(base, ioffset, v0, v1);
-@@ -356,7 +358,8 @@
- SimdFloat * v0,
- SimdFloat * v1)
- {
-- GMX_ALIGNED(std::int32_t, GMX_SIMD_FINT32_WIDTH) ioffset[GMX_SIMD_FINT32_WIDTH];
-+ // Our VSX SimdFInt32 load/store routines do not require aligned memory
-+ std::int32_t ioffset[GMX_SIMD_FLOAT_WIDTH];
-
- store(ioffset, offset );
- gatherLoadTranspose<align>(base, ioffset, v0, v1);
-diff --git a/src/gromacs/simd/impl_x86_avx_256/impl_x86_avx_256_util_double.h b/src/gromacs/simd/impl_x86_avx_256/impl_x86_avx_256_util_double.h
-index a3cefcb..1c0a505 100644
---- a/src/gromacs/simd/impl_x86_avx_256/impl_x86_avx_256_util_double.h
-+++ b/src/gromacs/simd/impl_x86_avx_256/impl_x86_avx_256_util_double.h
-@@ -1,7 +1,7 @@
- /*
- * This file is part of the GROMACS molecular simulation package.
- *
-- * Copyright (c) 2014,2015, by the GROMACS development team, led by
-+ * Copyright (c) 2014,2015,2017, by the GROMACS development team, led by
- * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
- * and including many others, as listed in the AUTHORS file in the
- * top-level source directory and at http://www.gromacs.org.
-@@ -331,7 +331,11 @@
- assert(std::size_t(base) % 32 == 0);
- assert(align % 4 == 0);
-
-- GMX_ALIGNED(int, GMX_SIMD_DINT32_WIDTH) ioffset[GMX_SIMD_DINT32_WIDTH];
-+ std::int32_t unalignedMem[GMX_SIMD_DOUBLE_WIDTH*2];
-+ // We cannot use simdAlign(), since SimdDInt32 might not be identical to SimdInt32
-+ std::int32_t * ioffset = reinterpret_cast<std::int32_t *>(reinterpret_cast<std::size_t>(unalignedMem+GMX_SIMD_DOUBLE_WIDTH-1) &
-+ ~(reinterpret_cast<std::size_t>(GMX_SIMD_DOUBLE_WIDTH*sizeof(std::int32_t)-1)));
-+
- _mm_store_si128( reinterpret_cast<__m128i *>(ioffset), offset.simdInternal_);
-
- v0->simdInternal_ = _mm256_load_pd(base + align * ioffset[0]);
-@@ -355,7 +359,11 @@
- assert(std::size_t(base) % 16 == 0);
- assert(align % 2 == 0);
-
-- GMX_ALIGNED(int, GMX_SIMD_DINT32_WIDTH) ioffset[GMX_SIMD_DINT32_WIDTH];
-+ std::int32_t unalignedMem[GMX_SIMD_DOUBLE_WIDTH*2];
-+ // We cannot use simdAlign(), since SimdDInt32 might not be identical to SimdInt32
-+ std::int32_t * ioffset = reinterpret_cast<std::int32_t *>(reinterpret_cast<std::size_t>(unalignedMem+GMX_SIMD_DOUBLE_WIDTH-1) &
-+ ~(reinterpret_cast<std::size_t>(GMX_SIMD_DOUBLE_WIDTH*sizeof(std::int32_t)-1)));
-+
- _mm_store_si128( reinterpret_cast<__m128i *>(ioffset), offset.simdInternal_);
-
- t1 = _mm_load_pd(base + align * ioffset[0]);
-@@ -376,10 +384,14 @@
- SimdDouble * v0,
- SimdDouble * v1)
- {
-- __m128d t1, t2, t3, t4;
-- __m256d tA, tB;
-+ __m128d t1, t2, t3, t4;
-+ __m256d tA, tB;
-
-- GMX_ALIGNED(int, GMX_SIMD_DINT32_WIDTH) ioffset[GMX_SIMD_DINT32_WIDTH];
-+ std::int32_t unalignedMem[GMX_SIMD_DOUBLE_WIDTH*2];
-+ // We cannot use simdAlign(), since SimdDInt32 might not be identical to SimdInt32
-+ std::int32_t * ioffset = reinterpret_cast<std::int32_t *>(reinterpret_cast<std::size_t>(unalignedMem+GMX_SIMD_DOUBLE_WIDTH-1) &
-+ ~(reinterpret_cast<std::size_t>(GMX_SIMD_DOUBLE_WIDTH*sizeof(std::int32_t)-1)));
-+
- _mm_store_si128( reinterpret_cast<__m128i *>(ioffset), offset.simdInternal_);
-
- t1 = _mm_loadu_pd(base + align * ioffset[0]);
-diff --git a/src/gromacs/simd/impl_x86_avx_256/impl_x86_avx_256_util_float.h b/src/gromacs/simd/impl_x86_avx_256/impl_x86_avx_256_util_float.h
-index 2eebda9..3641cad 100644
---- a/src/gromacs/simd/impl_x86_avx_256/impl_x86_avx_256_util_float.h
-+++ b/src/gromacs/simd/impl_x86_avx_256/impl_x86_avx_256_util_float.h
-@@ -484,7 +484,11 @@
- SimdFloat * v2,
- SimdFloat * v3)
- {
-- GMX_ALIGNED(int, GMX_SIMD_FLOAT_WIDTH) offset[GMX_SIMD_FLOAT_WIDTH];
-+ std::int32_t unalignedMem[GMX_SIMD_FLOAT_WIDTH*2];
-+ // We cannot use simdAlign(), since SimdFInt32 might not be identical to SimdInt32
-+ std::int32_t * offset = reinterpret_cast<std::int32_t *>(reinterpret_cast<std::size_t>(unalignedMem+GMX_SIMD_FLOAT_WIDTH-1) &
-+ ~(reinterpret_cast<std::size_t>(GMX_SIMD_FLOAT_WIDTH*sizeof(std::int32_t)-1)));
-+
- _mm256_store_si256( reinterpret_cast<__m256i *>(offset), simdoffset.simdInternal_);
- gatherLoadTranspose<align>(base, offset, v0, v1, v2, v3);
- }
-@@ -496,7 +500,11 @@
- SimdFloat * v0,
- SimdFloat * v1)
- {
-- GMX_ALIGNED(int, GMX_SIMD_FLOAT_WIDTH) offset[GMX_SIMD_FLOAT_WIDTH];
-+ std::int32_t unalignedMem[GMX_SIMD_FLOAT_WIDTH*2];
-+ // We cannot use simdAlign(), since SimdFInt32 might not be identical to SimdInt32
-+ std::int32_t * offset = reinterpret_cast<std::int32_t *>(reinterpret_cast<std::size_t>(unalignedMem+GMX_SIMD_FLOAT_WIDTH-1) &
-+ ~(reinterpret_cast<std::size_t>(GMX_SIMD_FLOAT_WIDTH*sizeof(std::int32_t)-1)));
-+
- _mm256_store_si256( reinterpret_cast<__m256i *>(offset), simdoffset.simdInternal_);
- gatherLoadTranspose<align>(base, offset, v0, v1);
- }
-@@ -509,10 +517,14 @@
- SimdFloat * v0,
- SimdFloat * v1)
- {
-- __m128 t1, t2, t3, t4, t5, t6, t7, t8;
-- __m256 tA, tB, tC, tD;
-+ __m128 t1, t2, t3, t4, t5, t6, t7, t8;
-+ __m256 tA, tB, tC, tD;
-
-- GMX_ALIGNED(int, GMX_SIMD_FLOAT_WIDTH) offset[GMX_SIMD_FLOAT_WIDTH];
-+ std::int32_t unalignedMem[GMX_SIMD_FLOAT_WIDTH*2];
-+ // We cannot use simdAlign(), since SimdFInt32 might not be identical to SimdInt32
-+ std::int32_t * offset = reinterpret_cast<std::int32_t *>(reinterpret_cast<std::size_t>(unalignedMem+GMX_SIMD_FLOAT_WIDTH-1) &
-+ ~(reinterpret_cast<std::size_t>(GMX_SIMD_FLOAT_WIDTH*sizeof(std::int32_t)-1)));
-+
- _mm256_store_si256( reinterpret_cast<__m256i *>(offset), simdoffset.simdInternal_);
-
- t1 = _mm_loadl_pi(_mm_setzero_ps(), reinterpret_cast<const __m64 *>( base + align * offset[0] ) );
-diff --git a/src/gromacs/simd/impl_x86_avx_512/impl_x86_avx_512_util_double.h b/src/gromacs/simd/impl_x86_avx_512/impl_x86_avx_512_util_double.h
-index 3ff77c6..59b65b1 100644
---- a/src/gromacs/simd/impl_x86_avx_512/impl_x86_avx_512_util_double.h
-+++ b/src/gromacs/simd/impl_x86_avx_512/impl_x86_avx_512_util_double.h
-@@ -150,8 +150,11 @@
- SimdDouble v1,
- SimdDouble v2)
- {
-- __m512d t[4], t5, t6, t7, t8;
-- GMX_ALIGNED(std::int64_t, 8) o[8];
-+ __m512d t[4], t5, t6, t7, t8;
-+ std::int64_t unalignedMem[8*2]; // 8*64-bit integers in AVX-512 SIMD register + padding
-+ std::int64_t * o = reinterpret_cast<std::int64_t *>(reinterpret_cast<std::size_t>(unalignedMem+8-1) &
-+ ~(reinterpret_cast<std::size_t>(8*sizeof(std::int64_t)-1)));
-+
- //TODO: should use fastMultiply
- _mm512_store_epi64(o, _mm512_cvtepi32_epi64(_mm256_mullo_epi32(_mm256_load_si256((const __m256i*)(offset )), _mm256_set1_epi32(align))));
- t5 = _mm512_unpacklo_pd(v0.simdInternal_, v1.simdInternal_);
-@@ -205,8 +208,11 @@
- SimdDouble v1,
- SimdDouble v2)
- {
-- __m512d t[4], t5, t6, t7, t8;
-- GMX_ALIGNED(std::int64_t, 8) o[8];
-+ __m512d t[4], t5, t6, t7, t8;
-+ std::int64_t unalignedMem[8*2]; // 8*64-bit integers in AVX-512 SIMD register + padding
-+ std::int64_t * o = reinterpret_cast<std::int64_t *>(reinterpret_cast<std::size_t>(unalignedMem+8-1) &
-+ ~(reinterpret_cast<std::size_t>(8*sizeof(std::int64_t)-1)));
-+
- //TODO: should use fastMultiply
- _mm512_store_epi64(o, _mm512_cvtepi32_epi64(_mm256_mullo_epi32(_mm256_load_si256((const __m256i*)(offset )), _mm256_set1_epi32(align))));
- t5 = _mm512_unpacklo_pd(v0.simdInternal_, v1.simdInternal_);
-diff --git a/src/gromacs/simd/impl_x86_avx_512/impl_x86_avx_512_util_float.h b/src/gromacs/simd/impl_x86_avx_512/impl_x86_avx_512_util_float.h
-index 61548bb..6ab7d3a 100644
---- a/src/gromacs/simd/impl_x86_avx_512/impl_x86_avx_512_util_float.h
-+++ b/src/gromacs/simd/impl_x86_avx_512/impl_x86_avx_512_util_float.h
-@@ -152,9 +152,13 @@
- SimdFloat v1,
- SimdFloat v2)
- {
-- __m512 t[4], t5, t6, t7, t8;
-- int i;
-- GMX_ALIGNED(std::int32_t, 16) o[16];
-+ __m512 t[4], t5, t6, t7, t8;
-+ int i;
-+ std::int32_t unalignedMem[GMX_SIMD_FLOAT_WIDTH*2];
-+ // We cannot use simdAlign(), since SimdFInt32 might not be identical to SimdInt32
-+ std::int32_t * o = reinterpret_cast<std::int32_t *>(reinterpret_cast<std::size_t>(unalignedMem+GMX_SIMD_FLOAT_WIDTH-1) &
-+ ~(reinterpret_cast<std::size_t>(GMX_SIMD_FLOAT_WIDTH*sizeof(std::int32_t)-1)));
-+
- store(o, fastMultiply<align>(simdLoad(offset, SimdFInt32Tag())));
- if (align < 4)
- {
-@@ -224,9 +228,13 @@
- SimdFloat v1,
- SimdFloat v2)
- {
-- __m512 t[4], t5, t6, t7, t8;
-- int i;
-- GMX_ALIGNED(std::int32_t, 16) o[16];
-+ __m512 t[4], t5, t6, t7, t8;
-+ int i;
-+ std::int32_t unalignedMem[GMX_SIMD_FLOAT_WIDTH*2];
-+ // We cannot use simdAlign(), since SimdFInt32 might not be identical to SimdInt32
-+ std::int32_t * o = reinterpret_cast<std::int32_t *>(reinterpret_cast<std::size_t>(unalignedMem+GMX_SIMD_FLOAT_WIDTH-1) &
-+ ~(reinterpret_cast<std::size_t>(GMX_SIMD_FLOAT_WIDTH*sizeof(std::int32_t)-1)));
-+
- store(o, fastMultiply<align>(simdLoad(offset, SimdFInt32Tag())));
- if (align < 4)
- {
-diff --git a/src/gromacs/simd/impl_x86_mic/impl_x86_mic_util_double.h b/src/gromacs/simd/impl_x86_mic/impl_x86_mic_util_double.h
-index 62e0720..ddf6d96 100644
---- a/src/gromacs/simd/impl_x86_mic/impl_x86_mic_util_double.h
-+++ b/src/gromacs/simd/impl_x86_mic/impl_x86_mic_util_double.h
-@@ -235,9 +235,10 @@
- SimdDouble v1,
- SimdDouble v2)
- {
-- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) rdata0[GMX_SIMD_DOUBLE_WIDTH];
-- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) rdata1[GMX_SIMD_DOUBLE_WIDTH];
-- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) rdata2[GMX_SIMD_DOUBLE_WIDTH];
-+ double unalignedMem[GMX_SIMD_DOUBLE_WIDTH*4];
-+ double * rdata0 = simdAlign(unalignedMem);
-+ double * rdata1 = rdata0 + GMX_SIMD_DOUBLE_WIDTH;
-+ double * rdata2 = rdata0 + GMX_SIMD_DOUBLE_WIDTH*2;
-
- store(rdata0, v0);
- store(rdata1, v1);
-@@ -259,9 +260,10 @@
- SimdDouble v1,
- SimdDouble v2)
- {
-- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) rdata0[GMX_SIMD_DOUBLE_WIDTH];
-- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) rdata1[GMX_SIMD_DOUBLE_WIDTH];
-- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) rdata2[GMX_SIMD_DOUBLE_WIDTH];
-+ double unalignedMem[GMX_SIMD_DOUBLE_WIDTH*4];
-+ double * rdata0 = simdAlign(unalignedMem);
-+ double * rdata1 = rdata0 + GMX_SIMD_DOUBLE_WIDTH;
-+ double * rdata2 = rdata0 + GMX_SIMD_DOUBLE_WIDTH*2;
-
- store(rdata0, v0);
- store(rdata1, v1);
-diff --git a/src/gromacs/simd/impl_x86_mic/impl_x86_mic_util_float.h b/src/gromacs/simd/impl_x86_mic/impl_x86_mic_util_float.h
-index 48b2a9f..bd69f04 100644
---- a/src/gromacs/simd/impl_x86_mic/impl_x86_mic_util_float.h
-+++ b/src/gromacs/simd/impl_x86_mic/impl_x86_mic_util_float.h
-@@ -239,9 +239,10 @@
- SimdFloat v1,
- SimdFloat v2)
- {
-- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) rdata0[GMX_SIMD_FLOAT_WIDTH];
-- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) rdata1[GMX_SIMD_FLOAT_WIDTH];
-- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) rdata2[GMX_SIMD_FLOAT_WIDTH];
-+ float unalignedMem[GMX_SIMD_FLOAT_WIDTH*4];
-+ float * rdata0 = simdAlign(unalignedMem);
-+ float * rdata1 = rdata0 + GMX_SIMD_FLOAT_WIDTH;
-+ float * rdata2 = rdata0 + GMX_SIMD_FLOAT_WIDTH*2;
-
- store(rdata0, v0);
- store(rdata1, v1);
-@@ -263,9 +264,10 @@
- SimdFloat v1,
- SimdFloat v2)
- {
-- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) rdata0[GMX_SIMD_FLOAT_WIDTH];
-- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) rdata1[GMX_SIMD_FLOAT_WIDTH];
-- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) rdata2[GMX_SIMD_FLOAT_WIDTH];
-+ float unalignedMem[GMX_SIMD_FLOAT_WIDTH*4];
-+ float * rdata0 = simdAlign(unalignedMem);
-+ float * rdata1 = rdata0 + GMX_SIMD_FLOAT_WIDTH;
-+ float * rdata2 = rdata0 + GMX_SIMD_FLOAT_WIDTH*2;
-
- store(rdata0, v0);
- store(rdata1, v1);
-diff --git a/src/gromacs/simd/impl_x86_sse2/impl_x86_sse2_util_float.h b/src/gromacs/simd/impl_x86_sse2/impl_x86_sse2_util_float.h
-index 67e3047..27a06ec 100644
---- a/src/gromacs/simd/impl_x86_sse2/impl_x86_sse2_util_float.h
-+++ b/src/gromacs/simd/impl_x86_sse2/impl_x86_sse2_util_float.h
-@@ -1,7 +1,7 @@
- /*
- * This file is part of the GROMACS molecular simulation package.
- *
-- * Copyright (c) 2014,2015, by the GROMACS development team, led by
-+ * Copyright (c) 2014,2015,2017, by the GROMACS development team, led by
- * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
- * and including many others, as listed in the AUTHORS file in the
- * top-level source directory and at http://www.gromacs.org.
-@@ -334,8 +334,12 @@
- // This is likely because (a) the extract function is expensive, and (b)
- // the alignment scaling can often be done as part of the load instruction
- // (which is even cheaper than doing it in SIMD registers).
-- GMX_ALIGNED(std::int32_t, GMX_SIMD_FINT32_WIDTH) ioffset[GMX_SIMD_FINT32_WIDTH];
-- _mm_store_si128( (__m128i *)ioffset, offset.simdInternal_);
-+ std::int32_t unalignedMem[GMX_SIMD_FLOAT_WIDTH*2];
-+ // We cannot use simdAlign(), since SimdFInt32 might not be identical to SimdInt32
-+ std::int32_t * ioffset = reinterpret_cast<std::int32_t *>(reinterpret_cast<std::size_t>(unalignedMem+GMX_SIMD_FLOAT_WIDTH-1) &
-+ ~(reinterpret_cast<std::size_t>(GMX_SIMD_FLOAT_WIDTH*sizeof(std::int32_t)-1)));
-+
-+ _mm_store_si128(reinterpret_cast<__m128i *>(ioffset), offset.simdInternal_);
- gatherLoadTranspose<align>(base, ioffset, v0, v1, v2, v3);
- }
-
-@@ -351,8 +355,12 @@
- // This is likely because (a) the extract function is expensive, and (b)
- // the alignment scaling can often be done as part of the load instruction
- // (which is even cheaper than doing it in SIMD registers).
-- GMX_ALIGNED(std::int32_t, GMX_SIMD_FINT32_WIDTH) ioffset[GMX_SIMD_FINT32_WIDTH];
-- _mm_store_si128( (__m128i *)ioffset, offset.simdInternal_);
-+ std::int32_t unalignedMem[GMX_SIMD_FLOAT_WIDTH*2];
-+ // We cannot use simdAlign(), since SimdFInt32 might not be identical to SimdInt32
-+ std::int32_t * ioffset = reinterpret_cast<std::int32_t *>(reinterpret_cast<std::size_t>(unalignedMem+GMX_SIMD_FLOAT_WIDTH-1) &
-+ ~(reinterpret_cast<std::size_t>(GMX_SIMD_FLOAT_WIDTH*sizeof(std::int32_t)-1)));
-+
-+ _mm_store_si128(reinterpret_cast<__m128i *>(ioffset), offset.simdInternal_);
- gatherLoadTranspose<align>(base, ioffset, v0, v1);
- }
-
-@@ -370,8 +378,12 @@
- // This is likely because (a) the extract function is expensive, and (b)
- // the alignment scaling can often be done as part of the load instruction
- // (which is even cheaper than doing it in SIMD registers).
-- GMX_ALIGNED(std::int32_t, GMX_SIMD_FINT32_WIDTH) ioffset[GMX_SIMD_FINT32_WIDTH];
-- _mm_store_si128( (__m128i *)ioffset, offset.simdInternal_);
-+ std::int32_t unalignedMem[GMX_SIMD_FLOAT_WIDTH*2];
-+ // We cannot use simdAlign(), since SimdFInt32 might not be identical to SimdInt32
-+ std::int32_t * ioffset = reinterpret_cast<std::int32_t *>(reinterpret_cast<std::size_t>(unalignedMem+GMX_SIMD_FLOAT_WIDTH-1) &
-+ ~(reinterpret_cast<std::size_t>(GMX_SIMD_FLOAT_WIDTH*sizeof(std::int32_t)-1)));
-+
-+ _mm_store_si128(reinterpret_cast<__m128i *>(ioffset), offset.simdInternal_);
- gatherLoadTranspose<align>(base, ioffset, v0, v1);
- }
-
-diff --git a/src/gromacs/simd/simd.h b/src/gromacs/simd/simd.h
-index 673cfa3..d40ac87 100644
---- a/src/gromacs/simd/simd.h
-+++ b/src/gromacs/simd/simd.h
-@@ -220,29 +220,6 @@
- namespace gmx
- {
-
--template<class T, size_t N>
--struct AlignedArray;
--
--#if GMX_SIMD_HAVE_FLOAT
--/*! \libinternal \brief Identical to std::array with GMX_SIMD_FLOAT_WIDTH alignment.
-- * Should not be deleted through base pointer (destructor is non-virtual).
-- */
--template<size_t N>
--struct alignas(GMX_SIMD_FLOAT_WIDTH*sizeof(float))AlignedArray<float, N> : public std::array<float, N>
--{
--};
--#endif
--
--#if GMX_SIMD_HAVE_DOUBLE
--/*! \libinternal \brief Identical to std::array with GMX_SIMD_DOUBLE_WIDTH alignment.
-- * Should not be deleted through base pointer (destructor is non-virtual).
-- */
--template<size_t N>
--struct alignas(GMX_SIMD_DOUBLE_WIDTH*sizeof(double))AlignedArray<double, N> : public std::array<double, N>
--{
--};
--#endif
--
- #if GMX_SIMD_HAVE_REAL
-
- /*! \name SIMD data types
-@@ -398,6 +375,100 @@
-
- //! \} end of name-group describing SIMD data types
-
-+/*! \name SIMD memory alignment operations
-+ * \{
-+ */
-+
-+/*! \brief
-+ * Align a pointer for usage with SIMD instructions.
-+ *
-+ * The C++ standard does not require compilers to support alignas() with
-+ * over-alignments larger than the size of native data types.
-+ * Thus, there is no portable way of directly defining variables on the
-+ * stack with alignment large enough to guarantee it will work with SIMD
-+ * aligned load/store instructions.
-+ *
-+ * Instead, you should declare an array with enough extra space so we can create
-+ * an aligned pointer inside the array. For instance, if you use real and
-+ * need an array corresponding to the SIMD width, you should make the size of
-+ * the array GMX_SIMD_REAL_WIDTH*2, and then use this routine to derive an
-+ * aligned pointer to at least GMX_SIMD_REAL_WIDTH elements inside that array.
-+ *
-+ * \param p Pointer to memory, allocate with at least enough extra elements
-+ * to correspond to the SIMD data type size.
-+ *
-+ * \return Aligned pointer (>=p) suitable for loading/storing aligned SIMD data.
-+ * If no SIMD data type is available we do not know the register width,
-+ * and will return the original (unaligned) pointer instead.
-+ *
-+ * \note For std::int32_t pointers we always assume the storage is for the
-+ * SimdInt32 type rather than the specific float/double types, since
-+ * we cannot determine it automatically from the argument type.
-+ */
-+template <class T>
-+static gmx_inline T *
-+simdAlign(T *p)
-+{
-+ static_assert(std::is_same<T, float>::value || std::is_same<T, double>::value || std::is_same<T, std::int32_t>::value, "Illegal type for simdAlign");
-+
-+ if (std::is_same<T, float>::value)
-+ {
-+#if GMX_SIMD_HAVE_FLOAT
-+ return reinterpret_cast<T *>(reinterpret_cast<std::size_t>(p+GMX_SIMD_FLOAT_WIDTH-1) &
-+ ~(reinterpret_cast<std::size_t>(GMX_SIMD_FLOAT_WIDTH*sizeof(float)-1)));
-+#else
-+ return p;
-+#endif
-+ }
-+ else if (std::is_same<T, double>::value)
-+ {
-+#if GMX_SIMD_HAVE_DOUBLE
-+ return reinterpret_cast<T *>(reinterpret_cast<std::size_t>(p+GMX_SIMD_DOUBLE_WIDTH-1) &
-+ ~(reinterpret_cast<std::size_t>(GMX_SIMD_DOUBLE_WIDTH*sizeof(double)-1)));
-+#else
-+ return p;
-+#endif
-+ }
-+ else
-+ {
-+ // If we get here, the only possible remaining type allowed by the static_assert is std::int_32
-+#if GMX_SIMD_HAVE_REAL
-+ return reinterpret_cast<T *>(reinterpret_cast<std::size_t>(p+GMX_SIMD_REAL_WIDTH-1) &
-+ ~(reinterpret_cast<std::size_t>(GMX_SIMD_REAL_WIDTH*sizeof(std::int32_t)-1)));
-+#else
-+ return p;
-+#endif
-+ }
-+}
-+
-+/*! \brief
-+ * Align a pointer for usage with SIMD4 instructions.
-+ *
-+ * This is similar to simdAlign, but for the SIMD4 data typ.e
-+ *
-+ * \param p Pointer to memory, allocate with at least enough extra elements
-+ * to correspond to the SIMD4 data type size.
-+ *
-+ * \return Aligned pointer (>=p) suitable for loading/storing aligned SIMD4 data.
-+ */
-+template <class T>
-+static gmx_inline T *
-+simd4Align(T *p)
-+{
-+ static_assert(std::is_same<T, float>::value || std::is_same<T, double>::value, "Illegal type for simd4Align");
-+
-+#if GMX_SIMD4_HAVE_FLOAT || GMX_SIMD4_HAVE_DOUBLE
-+ return reinterpret_cast<T *>(reinterpret_cast<std::size_t>(p+GMX_SIMD4_WIDTH-1) &
-+ ~(reinterpret_cast<std::size_t>(GMX_SIMD4_WIDTH*sizeof(T)-1)));
-+#else
-+ return p;
-+#endif
-+}
-+
-+
-+//! \} end of name-group describing SIMD memory alignment operations
-+
-+
- /*! \name High-level SIMD proxy objects to disambiguate load/set operations
- * \{
- */
-@@ -487,13 +558,6 @@
- return *m;
- }
-
--template <typename T, size_t N>
--static inline T gmx_simdcall
--load(const AlignedArray<typename internal::SimdTraits<T>::type, N> &m)
--{
-- return simdLoad(m.data(), typename internal::SimdTraits<T>::tag());
--}
--
- /*! \brief Load function that returns SIMD or scalar based on template argument
- *
- * \tparam T Type to load (type is always mandatory)
-@@ -512,13 +576,6 @@
- loadU(const typename std::enable_if<std::is_arithmetic<T>::value, T>::type *m)
- {
- return *m;
--}
--
--template <typename T, size_t N>
--static inline T gmx_simdcall
--loadU(const AlignedArray<typename internal::SimdTraits<T>::type, N> &m)
--{
-- return simdLoadU(m.data(), typename internal::SimdTraits<T>::tag());
- }
-
- class SimdSetZeroProxyInternal;
-diff --git a/src/gromacs/simd/simd_math.h b/src/gromacs/simd/simd_math.h
-index ad51957..feda8b8 100644
---- a/src/gromacs/simd/simd_math.h
-+++ b/src/gromacs/simd/simd_math.h
-@@ -742,7 +742,9 @@
- const SimdFloat sieve(SimdFloat(-5.965323564e+29f) | SimdFloat(7.05044434e-30f));
- #else
- const int isieve = 0xFFFFF000;
-- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) mem[GMX_SIMD_FLOAT_WIDTH];
-+
-+ float unalignedMem[GMX_SIMD_FLOAT_WIDTH*2];
-+ float * mem = simdAlign(unalignedMem);
-
- union {
- float f; int i;
-diff --git a/src/gromacs/simd/tests/bootstrap_loadstore.cpp b/src/gromacs/simd/tests/bootstrap_loadstore.cpp
-index 5bbdb1d..166a7c7 100644
---- a/src/gromacs/simd/tests/bootstrap_loadstore.cpp
-+++ b/src/gromacs/simd/tests/bootstrap_loadstore.cpp
-@@ -92,11 +92,14 @@
- * to test we are not polluting memory there either. Sum=4*simdWidth.
- */
- #if GMX_SIMD4_WIDTH > GMX_SIMD_REAL_WIDTH
-- GMX_ALIGNED(T, GMX_SIMD4_WIDTH) src[simdWidth*4];
-- GMX_ALIGNED(T, GMX_SIMD4_WIDTH) dst[simdWidth*4];
-+ T unalignedMem[GMX_SIMD4_WIDTH*9];
-+ T * src = reinterpret_cast<T *>(reinterpret_cast<std::size_t>(unalignedMem+GMX_SIMD4_WIDTH-1) &
-+ ~(reinterpret_cast<std::size_t>(GMX_SIMD4_WIDTH*sizeof(T)-1)));
-+ T * dst = src + GMX_SIMD4_WIDTH*4;
- #else
-- GMX_ALIGNED(T, GMX_SIMD_REAL_WIDTH) src[simdWidth*4];
-- GMX_ALIGNED(T, GMX_SIMD_REAL_WIDTH) dst[simdWidth*4];
-+ T unalignedMem[GMX_SIMD_REAL_WIDTH*9];
-+ T * src = simdAlign(unalignedMem);
-+ T * dst = src + GMX_SIMD_REAL_WIDTH*4;
- #endif
-
- // Make sure we have memory to check both before and after the test pointers
-diff --git a/src/gromacs/simd/tests/simd.cpp b/src/gromacs/simd/tests/simd.cpp
-index d07621b..e292946 100644
---- a/src/gromacs/simd/tests/simd.cpp
-+++ b/src/gromacs/simd/tests/simd.cpp
-@@ -124,7 +124,8 @@
- ::std::vector<real>
- simdReal2Vector(const SimdReal simd)
- {
-- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) mem[GMX_SIMD_REAL_WIDTH];
-+ real unalignedMem[GMX_SIMD_REAL_WIDTH*2];
-+ real * mem = simdAlign(unalignedMem);
-
- store(mem, simd);
- std::vector<real> v(mem, mem+GMX_SIMD_REAL_WIDTH);
-@@ -135,7 +136,8 @@
- SimdReal
- vector2SimdReal(const std::vector<real> &v)
- {
-- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) mem[GMX_SIMD_REAL_WIDTH];
-+ real unalignedMem[GMX_SIMD_REAL_WIDTH*2];
-+ real * mem = simdAlign(unalignedMem);
-
- for (int i = 0; i < GMX_SIMD_REAL_WIDTH; i++)
- {
-@@ -182,7 +184,8 @@
- std::vector<int>
- simdInt2Vector(const SimdInt32 simd)
- {
-- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) mem[GMX_SIMD_REAL_WIDTH];
-+ std::int32_t unalignedMem[GMX_SIMD_REAL_WIDTH*2];
-+ std::int32_t * mem = simdAlign(unalignedMem);
-
- store(mem, simd);
- std::vector<int> v(mem, mem+GMX_SIMD_REAL_WIDTH);
-@@ -193,7 +196,8 @@
- SimdInt32
- vector2SimdInt(const std::vector<int> &v)
- {
-- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) mem[GMX_SIMD_REAL_WIDTH];
-+ std::int32_t unalignedMem[GMX_SIMD_REAL_WIDTH*2];
-+ std::int32_t * mem = simdAlign(unalignedMem);
-
- for (int i = 0; i < GMX_SIMD_REAL_WIDTH; i++)
- {
-@@ -230,6 +234,59 @@
- return compareVectorEq(refExpr, tstExpr, simdInt2Vector(ref), simdInt2Vector(tst));
- }
-
-+TEST(SimdTest, Align)
-+{
-+ // real is always available
-+ real mem1[GMX_SIMD_REAL_WIDTH*2];
-+ real * r1 = simdAlign(mem1);
-+
-+ std::uint64_t addr1 = reinterpret_cast<std::uint64_t>(r1);
-+ EXPECT_EQ(0, addr1 % (GMX_SIMD_REAL_WIDTH*sizeof(real)));
-+
-+ // Try another offset (either mem1 or mem1+1 must be unaligned)
-+ r1 = simdAlign(mem1+1);
-+ addr1 = reinterpret_cast<std::uint64_t>(r1);
-+ EXPECT_EQ(0, addr1 % (GMX_SIMD_REAL_WIDTH*sizeof(real)));
-+
-+ // int is always available
-+ std::int32_t mem2[GMX_SIMD_REAL_WIDTH*2];
-+ std::int32_t * r2 = simdAlign(mem2);
-+
-+ std::uint64_t addr2 = reinterpret_cast<std::uint64_t>(r2);
-+ EXPECT_EQ(0, addr2 % (GMX_SIMD_REAL_WIDTH*sizeof(std::int32_t)));
-+
-+ // another offset
-+ r2 = simdAlign(mem2+1);
-+ addr2 = reinterpret_cast<std::uint64_t>(r2);
-+ EXPECT_EQ(0, addr2 % (GMX_SIMD_REAL_WIDTH*sizeof(std::int32_t)));
-+
-+#if GMX_SIMD_HAVE_FLOAT
-+ float mem3[GMX_SIMD_FLOAT_WIDTH*2];
-+ float * r3 = simdAlign(mem3);
-+
-+ std::uint64_t addr3 = reinterpret_cast<std::uint64_t>(r3);
-+ EXPECT_EQ(0, addr3 % (GMX_SIMD_FLOAT_WIDTH*sizeof(float)));
-+
-+ // another offset
-+ r3 = simdAlign(mem3+1);
-+ addr3 = reinterpret_cast<std::uint64_t>(r3);
-+ EXPECT_EQ(0, addr3 % (GMX_SIMD_FLOAT_WIDTH*sizeof(float)));
-+#endif
-+
-+#if GMX_SIMD_HAVE_DOUBLE
-+ double mem4[GMX_SIMD_DOUBLE_WIDTH*2];
-+ double * r4 = simdAlign(mem4);
-+
-+ std::uint64_t addr4 = reinterpret_cast<std::uint64_t>(r4);
-+ EXPECT_EQ(0, addr4 % (GMX_SIMD_DOUBLE_WIDTH*sizeof(double)));
-+
-+ // another offset
-+ r4 = simdAlign(mem4+1);
-+ addr4 = reinterpret_cast<std::uint64_t>(r4);
-+ EXPECT_EQ(0, addr4 % (GMX_SIMD_DOUBLE_WIDTH*sizeof(double)));
-+#endif
-+}
-+
- #endif // GMX_SIMD_HAVE_REAL
-
- /*! \} */
-diff --git a/src/gromacs/simd/tests/simd4.cpp b/src/gromacs/simd/tests/simd4.cpp
-index edb66ba..46c7951 100644
---- a/src/gromacs/simd/tests/simd4.cpp
-+++ b/src/gromacs/simd/tests/simd4.cpp
-@@ -86,7 +86,9 @@
- ::std::vector<real>
- simd4Real2Vector(const Simd4Real simd4)
- {
-- GMX_ALIGNED(real, GMX_SIMD4_WIDTH) mem[GMX_SIMD4_WIDTH];
-+ real unalignedMem[GMX_SIMD4_WIDTH*2];
-+ real * mem = reinterpret_cast<real *>(reinterpret_cast<std::size_t>(unalignedMem+GMX_SIMD4_WIDTH-1) &
-+ ~(reinterpret_cast<std::size_t>(GMX_SIMD4_WIDTH*sizeof(real)-1)));
-
- store4(mem, simd4);
- std::vector<real> v(mem, mem+GMX_SIMD4_WIDTH);
-@@ -97,7 +99,9 @@
- Simd4Real
- vector2Simd4Real(const std::vector<real> &v)
- {
-- GMX_ALIGNED(real, GMX_SIMD4_WIDTH) mem[GMX_SIMD4_WIDTH];
-+ real unalignedMem[GMX_SIMD4_WIDTH*2];
-+ real * mem = reinterpret_cast<real *>(reinterpret_cast<std::size_t>(unalignedMem+GMX_SIMD4_WIDTH-1) &
-+ ~(reinterpret_cast<std::size_t>(GMX_SIMD4_WIDTH*sizeof(real)-1)));
-
- for (int i = 0; i < GMX_SIMD4_WIDTH; i++)
- {
-@@ -141,6 +145,35 @@
- return compareVectorEq(refExpr, tstExpr, simd4Real2Vector(ref), simd4Real2Vector(tst));
- }
-
-+TEST(Simd4Test, Align)
-+{
-+ #if GMX_SIMD4_HAVE_FLOAT
-+ float mem1[GMX_SIMD4_WIDTH*2];
-+ float * r1 = simd4Align(mem1);
-+
-+ std::uint64_t addr1 = reinterpret_cast<std::uint64_t>(r1);
-+ EXPECT_EQ(0, addr1 % (GMX_SIMD4_WIDTH*sizeof(float)));
-+
-+ // another offset
-+ r1 = simd4Align(mem1+1);
-+ addr1 = reinterpret_cast<std::uint64_t>(r1);
-+ EXPECT_EQ(0, addr1 % (GMX_SIMD4_WIDTH*sizeof(float)));
-+#endif
-+
-+#if GMX_SIMD4_HAVE_DOUBLE
-+ double mem2[GMX_SIMD4_WIDTH*2];
-+ double * r2 = simd4Align(mem2);
-+
-+ std::uint64_t addr2 = reinterpret_cast<std::uint64_t>(r2);
-+ EXPECT_EQ(0, addr2 % (GMX_SIMD4_WIDTH*sizeof(double)));
-+
-+ // another offset
-+ r2 = simd4Align(mem2+1);
-+ addr2 = reinterpret_cast<std::uint64_t>(r2);
-+ EXPECT_EQ(0, addr2 % (GMX_SIMD4_WIDTH*sizeof(double)));
-+#endif
-+}
-+
- #endif // GMX_SIMD4_HAVE_REAL
-
- /*! \} */
-diff --git a/src/gromacs/simd/tests/simd4_floatingpoint.cpp b/src/gromacs/simd/tests/simd4_floatingpoint.cpp
-index b2300ec8..2e1951d 100644
---- a/src/gromacs/simd/tests/simd4_floatingpoint.cpp
-+++ b/src/gromacs/simd/tests/simd4_floatingpoint.cpp
-@@ -312,7 +312,9 @@
- Simd4Real v0, v1, v2, v3;
- int i;
- // aligned pointers
-- GMX_ALIGNED(real, GMX_SIMD4_WIDTH) p0[4*GMX_SIMD4_WIDTH];
-+ real unalignedMem[GMX_SIMD4_WIDTH*5];
-+ real * p0 = reinterpret_cast<real *>(reinterpret_cast<std::size_t>(unalignedMem+GMX_SIMD4_WIDTH-1) &
-+ ~(reinterpret_cast<std::size_t>(GMX_SIMD4_WIDTH*sizeof(real)-1)));
- real * p1 = p0 + GMX_SIMD4_WIDTH;
- real * p2 = p0 + 2*GMX_SIMD4_WIDTH;
- real * p3 = p0 + 3*GMX_SIMD4_WIDTH;
-diff --git a/src/gromacs/simd/tests/simd_floatingpoint.cpp b/src/gromacs/simd/tests/simd_floatingpoint.cpp
-index 14fbe0d..90a042b 100644
---- a/src/gromacs/simd/tests/simd_floatingpoint.cpp
-+++ b/src/gromacs/simd/tests/simd_floatingpoint.cpp
-@@ -453,8 +453,13 @@
- #if GMX_SIMD_HAVE_FLOAT && GMX_SIMD_HAVE_DOUBLE
- TEST_F(SimdFloatingpointTest, cvtFloat2Double)
- {
-- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) f[GMX_SIMD_FLOAT_WIDTH];
-- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) d[GMX_SIMD_FLOAT_WIDTH]; // Yes, double array length should be same as float
-+ float unalignedMemF[GMX_SIMD_FLOAT_WIDTH*2];
-+ float * f = simdAlign(unalignedMemF);
-+ // Create an aligned double array with the same length as the float SIMD
-+ // Thus, all constants on the next two lines correctly refer to GMX_SIMD_FLOAT_WIDTH.
-+ double unalignedMemD[GMX_SIMD_FLOAT_WIDTH*2];
-+ double * d = reinterpret_cast<double *>(reinterpret_cast<std::size_t>(unalignedMemD+GMX_SIMD_DOUBLE_WIDTH-1) &
-+ ~(reinterpret_cast<std::size_t>(GMX_SIMD_DOUBLE_WIDTH*sizeof(double)-1)));
-
- int i;
- SimdFloat vf;
-@@ -488,8 +493,13 @@
-
- TEST_F(SimdFloatingpointTest, cvtDouble2Float)
- {
-- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) f[GMX_SIMD_FLOAT_WIDTH];
-- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) d[GMX_SIMD_FLOAT_WIDTH]; // Yes, double array length should be same as float
-+ float unalignedMemF[GMX_SIMD_FLOAT_WIDTH*2];
-+ float * f = simdAlign(unalignedMemF);
-+ // Create an aligned double array with the same length as the float SIMD
-+ double unalignedMemD[GMX_SIMD_FLOAT_WIDTH*2];
-+ double * d = reinterpret_cast<double *>(reinterpret_cast<std::size_t>(unalignedMemD+GMX_SIMD_DOUBLE_WIDTH-1) &
-+ ~(reinterpret_cast<std::size_t>(GMX_SIMD_DOUBLE_WIDTH*sizeof(double)-1)));
-+
- int i;
- SimdFloat vf;
- SimdDouble vd0;
-diff --git a/src/gromacs/simd/tests/simd_integer.cpp b/src/gromacs/simd/tests/simd_integer.cpp
-index c675f8b..086f30f 100644
---- a/src/gromacs/simd/tests/simd_integer.cpp
-+++ b/src/gromacs/simd/tests/simd_integer.cpp
-@@ -131,8 +131,10 @@
- #if GMX_SIMD_HAVE_INT32_EXTRACT
- TEST_F(SimdIntegerTest, extract)
- {
-- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) idata[GMX_SIMD_REAL_WIDTH];
-- SimdInt32 simd;
-+ std::int32_t unalignedMem[GMX_SIMD_REAL_WIDTH*2];
-+ std::int32_t * idata = simdAlign(unalignedMem);
-+
-+ SimdInt32 simd;
-
- for (int i = 0; i < GMX_SIMD_REAL_WIDTH; i++)
- {
-diff --git a/src/gromacs/tables/tests/splinetable.cpp b/src/gromacs/tables/tests/splinetable.cpp
-index ee15b45..3c8f05f 100644
---- a/src/gromacs/tables/tests/splinetable.cpp
-+++ b/src/gromacs/tables/tests/splinetable.cpp
-@@ -679,7 +679,8 @@
- real refDer = lj12Derivative(x);
- SimdReal tstFunc, tstDer;
- real funcErr, derErr;
-- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) alignedMem[GMX_SIMD_REAL_WIDTH];
-+ real unalignedMem[GMX_SIMD_REAL_WIDTH*2];
-+ real * alignedMem = simdAlign(unalignedMem);
-
- table.evaluateFunctionAndDerivative(SimdReal(x), &tstFunc, &tstDer);
-
-@@ -712,7 +713,8 @@
- SimdReal tstFunc1, tstDer1;
- real funcErr0, derErr0;
- real funcErr1, derErr1;
-- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) alignedMem[GMX_SIMD_REAL_WIDTH];
-+ real unalignedMem[GMX_SIMD_REAL_WIDTH*2];
-+ real * alignedMem = simdAlign(unalignedMem);
-
- table.evaluateFunctionAndDerivative(SimdReal(x), &tstFunc0, &tstDer0, &tstFunc1, &tstDer1);
-
-@@ -742,7 +744,8 @@
- TypeParam table( {{"LJ12", lj12Function, lj12Derivative}}, range);
- SimdReal x, func, der;
-
-- AlignedArray<real, GMX_SIMD_REAL_WIDTH> alignedMem;
-+ real unalignedMem[GMX_SIMD_REAL_WIDTH*2];
-+ real * alignedMem = simdAlign(unalignedMem);
-
- alignedMem.fill(range.first);
- // Make position 1 incorrect if width>=2, otherwise position 0
-@@ -765,7 +768,8 @@
- TypeParam table( {{"LJ12", lj12Function, lj12Derivative}}, range);
- SimdReal x, func, der;
-
-- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) alignedMem[GMX_SIMD_REAL_WIDTH];
-+ real unalignedMem[GMX_SIMD_REAL_WIDTH*2];
-+ real * alignedMem = simdAlign(unalignedMem);
-
- // Test all values between 0 and range.second
- for (std::size_t i = 0; i < GMX_SIMD_REAL_WIDTH; i++)
-diff --git a/src/gromacs/utility/basedefinitions.h b/src/gromacs/utility/basedefinitions.h
-index 1c3e36c..a1638ef 100644
---- a/src/gromacs/utility/basedefinitions.h
-+++ b/src/gromacs/utility/basedefinitions.h
-@@ -226,24 +226,6 @@
- #endif
- #endif
-
--/*! \def GMX_ALIGNED(type, alignment)
-- * \brief
-- * Declare variable with data alignment
-- *
-- * \param[in] type Type of variable
-- * \param[in] alignment Alignment in multiples of type
-- *
-- * Typical usage:
-- * \code
-- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) buf[...];
-- \endcode
-- */
--
--// We rely on C++11. This will for instance work for MSVC2015 and later.
--// If you get an error here, find out what attribute to use to get your compiler to align
--// data properly and add it as a case.
--#define GMX_ALIGNED(type, alignment) alignas(alignment*sizeof(type)) type
--
- /*! \brief
- * Macro to explicitly ignore an unused value.
- *
-diff --git a/src/gromacs/utility/tests/CMakeLists.txt b/src/gromacs/utility/tests/CMakeLists.txt
-index 57cf2a1..74ed8f4 100644
---- a/src/gromacs/utility/tests/CMakeLists.txt
-+++ b/src/gromacs/utility/tests/CMakeLists.txt
-@@ -35,7 +35,6 @@
- gmx_add_unit_test(UtilityUnitTests utility-test
- alignedallocator.cpp
- arrayref.cpp
-- basedefinitions.cpp
- bitmask32.cpp bitmask64.cpp bitmask128.cpp
- keyvaluetreeserializer.cpp
- keyvaluetreetransform.cpp
-diff --git a/src/gromacs/utility/tests/basedefinitions.cpp b/src/gromacs/utility/tests/basedefinitions.cpp
-deleted file mode 100644
-index a0223e1..0000000
---- a/src/gromacs/utility/tests/basedefinitions.cpp
-+++ /dev/null
-@@ -1,82 +0,0 @@
--/*
-- * This file is part of the GROMACS molecular simulation package.
-- *
-- * Copyright (c) 2015, by the GROMACS development team, led by
-- * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
-- * and including many others, as listed in the AUTHORS file in the
-- * top-level source directory and at http://www.gromacs.org.
-- *
-- * GROMACS is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU Lesser General Public License
-- * as published by the Free Software Foundation; either version 2.1
-- * of the License, or (at your option) any later version.
-- *
-- * GROMACS is distributed in the hope that it will be useful,
-- * but WITHOUT ANY WARRANTY; without even the implied warranty of
-- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-- * Lesser General Public License for more details.
-- *
-- * You should have received a copy of the GNU Lesser General Public
-- * License along with GROMACS; if not, see
-- * http://www.gnu.org/licenses, or write to the Free Software Foundation,
-- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-- *
-- * If you want to redistribute modifications to GROMACS, please
-- * consider that scientific software is very special. Version
-- * control is crucial - bugs must be traceable. We will be happy to
-- * consider code for inclusion in the official distribution, but
-- * derived work must not be called official GROMACS. Details are found
-- * in the README & COPYING files - if they are missing, get the
-- * official version at http://www.gromacs.org.
-- *
-- * To help us fund GROMACS development, we humbly ask that you cite
-- * the research papers on the package. Check out http://www.gromacs.org.
-- */
--/*! \internal \file
-- * \brief Tests for base definitions (only alignment attributes for now)
-- *
-- * \author Erik Lindahl <erik.lindahl(a)gmail.com>
-- * \ingroup module_utility
-- */
--
--#include "gmxpre.h"
--
--#include "gromacs/utility/basedefinitions.h"
--
--#include <cstdint>
--
--#include <gtest/gtest.h>
--
--#include "gromacs/utility/real.h"
--
--namespace gmx
--{
--
--TEST(BasedefinitionsTest, GmxAlignedDeclaresAlignedVariable)
--{
-- GMX_ALIGNED(real, 2) r1;
-- GMX_ALIGNED(real, 4) r2;
-- GMX_ALIGNED(real, 8) r3;
--
-- std::uint64_t addr1 = reinterpret_cast<std::uint64_t>(&r1);
-- std::uint64_t addr2 = reinterpret_cast<std::uint64_t>(&r2);
-- std::uint64_t addr3 = reinterpret_cast<std::uint64_t>(&r3);
--
-- EXPECT_EQ(0, addr1 % 2);
-- EXPECT_EQ(0, addr2 % 4);
-- EXPECT_EQ(0, addr3 % 8);
--
-- GMX_ALIGNED(int, 2) i1;
-- GMX_ALIGNED(int, 4) i2;
-- GMX_ALIGNED(int, 8) i3;
--
-- addr1 = reinterpret_cast<std::uint64_t>(&i1);
-- addr2 = reinterpret_cast<std::uint64_t>(&i2);
-- addr3 = reinterpret_cast<std::uint64_t>(&i3);
--
-- EXPECT_EQ(0, addr1 % 2);
-- EXPECT_EQ(0, addr2 % 4);
-- EXPECT_EQ(0, addr3 % 8);
--}
--
--}
diff --git a/gromacs.spec b/gromacs.spec
index c9a4a28..f388836 100644
--- a/gromacs.spec
+++ b/gromacs.spec
@@ -1,7 +1,7 @@
%global git 0
%global commit d44d7d6bebdb7fa52090b744854d49f34099e044
%global shortcommit %(c=%{commit}; echo ${c:0:7})
-%global _rcname beta3
+%global _rcname rc1
%global _rc -%%_rcname
%global with_opencl 1
@@ -36,7 +36,7 @@
Name: gromacs
Version: 2018
-Release: 0.1%{?_rcname}%{?dist}
+Release: 0.2%{?_rcname}%{?dist}
Summary: Fast, Free and Flexible Molecular Dynamics
License: GPLv2+
URL: http://www.gromacs.org
@@ -61,7 +61,7 @@ Source6: gromacs-README.fedora
# https://bugzilla.redhat.com/show_bug.cgi?id=1203754
Patch0: gromacs-dssp-path.patch
# https://redmine.gromacs.org/issues/2365
-Patch1: b7713bf.diff
+Patch1: 43a0002.diff
# enable some test on aarch64 - https://redmine.gromacs.org/issues/2366
Patch2: gromacs-issue-2366.patch
# fix building documentation
@@ -446,6 +446,10 @@ done
%{_libdir}/mpich/bin/mdrun_mpich*
%changelog
+* Sat Dec 30 2017 Christoph Junghans <junghans(a)votca.org> - 2018-0.2rc1
+- Update to 2018-rc1 for testing
+- Update b7713bf.diff to 43a0002.diff
+
* Mon Dec 25 2017 Christoph Junghans <junghans(a)votca.org> - 2018-0.1beta3
- Update to 2018-beta3 for testing
- Disable HardwareTopologyTest.NumaCacheSelfconsistency test on aarch64
diff --git a/sources b/sources
index 6836c61..1de6dec 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
-SHA512 (manual-2018-beta3.pdf) = 0fc64b99bca1e329c863bb18b62ab4e4ab842470992d518481abfecfbafde4ea9339d788b9ffd33c28c32331019466b6f1e7864a27b8d7120659453b99f550d9
-SHA512 (regressiontests-2018-beta3.tar.gz) = d3d584a21b4207de343a4f3905e84d43bf566844fd3ffaebfd755509d1cc2869308465c403acdeece97c5845fdfab06c3ba0bf0863bd62069ba680249b0c3ee3
-SHA512 (gromacs-2018-beta3.tar.gz) = 384b4c400dfbf4d2903c09175665e1d70c04f2d0101c06fe9c8896731e9a7824826fd1640cbc7aaf9e69bf17037528539f359e400036a31204bd554b2faf0c2d
+SHA512 (gromacs-2018-rc1.tar.gz) = f2a56a2d3ce6efd170f22d66dbb9418ae59257aff27853037570d0939582df947c7558aa652626dd911ee22c037ab0cb1b340b5008bc8f40d27d90883100d375
+SHA512 (manual-2018-rc1.pdf) = 8c736b7efe6555adeca44708d8b4e1fdd36692fbba53128e491feec5a4c663d7ff68a71061f537a883bddc7f22920030c70f78fb1486b86735081362944f5811
+SHA512 (regressiontests-2018-rc1.tar.gz) = feccf48d6af84abf350e5ad829c600f86b8e8e4f4f3378c34b209daa30965e3f68751058f12bdbb228da6b4ccd0a72c8191956ec5bd184f190000a9c97e581a9
commit 01913debab7a34b5d544a58c6a091eec0576c217
Author: Christoph Junghans <junghans(a)votca.org>
Date: Mon Dec 25 20:47:58 2017 -0700
Update to 2018-beta3 for testing
diff --git a/.gitignore b/.gitignore
index 275a240..e1e782a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -45,3 +45,6 @@ manual-4.0.pdf
/regressiontests-2016.3.tar.gz
/gromacs-2016.4.tar.gz
/manual-2016.4.pdf
+/manual-2018-beta3.pdf
+/regressiontests-2018-beta3.tar.gz
+/gromacs-2018-beta3.tar.gz
diff --git a/b7713bf.diff b/b7713bf.diff
new file mode 100644
index 0000000..91b19b3
--- /dev/null
+++ b/b7713bf.diff
@@ -0,0 +1,1761 @@
+From b7713bfb76c0bd25ee77c359a2b00d4115c29910 Mon Sep 17 00:00:00 2001
+From: Erik Lindahl <erik(a)kth.se>
+Date: Mon, 25 Dec 2017 20:20:11 +0100
+Subject: [PATCH] Remove non-portable usage of GMX_ALIGN()
+
+According to the C++ standard, the behavior of alignas()
+is implementation-dependent for all alignments wider than
+the width of native types. At least on Fedora, this
+results in broken aligments both on s390, ARMv7, ARMv8,
+and Power8. Since there does not seem to be any portable
+way to achieve general alignments, this change reverts
+the behavior to use explicit pointer alighments instead.
+
+Fixes #2365.
+
+Change-Id: I9bc7000da44ca905f90783ea9963bf9808d0f99e
+---
+
+diff --git a/src/gromacs/ewald/pme-gather.cpp b/src/gromacs/ewald/pme-gather.cpp
+index 2c9e961..d5b6a50 100644
+--- a/src/gromacs/ewald/pme-gather.cpp
++++ b/src/gromacs/ewald/pme-gather.cpp
+@@ -195,9 +195,11 @@
+ {
+ #ifdef PME_SIMD4_UNALIGNED
+ *S0 = load4U(data-offset);
+- *S1 = load4U(data-offset+4);
++ *S1 = load4U(data-offset+4);
+ #else
+- GMX_ALIGNED(real, GMX_SIMD4_WIDTH) buf_aligned[GMX_SIMD4_WIDTH*2];
++ real unalignedMem[GMX_SIMD4_WIDTH*3]; // GMX_SIMD4_WIDTH*2 and padding
++ real * buf_aligned = simd4Align(unalignedMem); // size is GMX_SIMD4_WIDTH*2
++
+ /* Copy data to an aligned buffer */
+ for (int i = 0; i < order; i++)
+ {
+diff --git a/src/gromacs/ewald/pme-spline-work.cpp b/src/gromacs/ewald/pme-spline-work.cpp
+index 5859a34..7921d20 100644
+--- a/src/gromacs/ewald/pme-spline-work.cpp
++++ b/src/gromacs/ewald/pme-spline-work.cpp
+@@ -54,7 +54,9 @@
+ pme_spline_work *work;
+
+ #ifdef PME_SIMD4_SPREAD_GATHER
+- GMX_ALIGNED(real, GMX_SIMD4_WIDTH) tmp[GMX_SIMD4_WIDTH*2];
++ real unalignedMem[GMX_SIMD4_WIDTH*3]; // GMX_SIMD4_WIDTH*2 and padding
++ real * tmp = simd4Align(unalignedMem); // size is GMX_SIMD4_WIDTH*2
++
+ Simd4Real zero_S;
+ Simd4Real real_mask_S0, real_mask_S1;
+ int of, i;
+diff --git a/src/gromacs/ewald/pme-spread.cpp b/src/gromacs/ewald/pme-spread.cpp
+index b3db6c3..0bed8cb 100644
+--- a/src/gromacs/ewald/pme-spread.cpp
++++ b/src/gromacs/ewald/pme-spread.cpp
+@@ -329,7 +329,8 @@
+ int offx, offy, offz;
+
+ #if defined PME_SIMD4_SPREAD_GATHER && !defined PME_SIMD4_UNALIGNED
+- GMX_ALIGNED(real, GMX_SIMD4_WIDTH) thz_aligned[GMX_SIMD4_WIDTH*2];
++ real unalignedMem[GMX_SIMD4_WIDTH*3]; // GMX_SIMD4_WIDTH*2 and padding
++ real * thz_aligned = simd4Align(unalignedMem); // size is GMX_SIMD4_WIDTH*2
+ #endif
+
+ pnx = pmegrid->s[XX];
+diff --git a/src/gromacs/listed-forces/bonded.cpp b/src/gromacs/listed-forces/bonded.cpp
+index c9d7b45..fd120ac 100644
+--- a/src/gromacs/listed-forces/bonded.cpp
++++ b/src/gromacs/listed-forces/bonded.cpp
+@@ -982,10 +982,13 @@
+ const int nfa1 = 4;
+ int i, iu, s;
+ int type;
+- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) ai[GMX_SIMD_REAL_WIDTH];
+- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) aj[GMX_SIMD_REAL_WIDTH];
+- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) ak[GMX_SIMD_REAL_WIDTH];
+- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) coeff[2*GMX_SIMD_REAL_WIDTH];
++ std::int32_t unalignedMemI[GMX_SIMD_REAL_WIDTH*4]; // GMX_SIMD_REAL_WIDTH*3 + padding
++ std::int32_t * ai = simdAlign(unalignedMemI); // size GMX_SIMD_REAL_WIDTH
++ std::int32_t * aj = ai + GMX_SIMD_REAL_WIDTH; // size GMX_SIMD_REAL_WIDTH
++ std::int32_t * ak = ai + GMX_SIMD_REAL_WIDTH*2; // size GMX_SIMD_REAL_WIDTH
++ real unalignedMemR[GMX_SIMD_REAL_WIDTH*12]; // GMX_SIMD_REAL_WIDTH*(2+9) + padding
++ real * coeff = simdAlign(unalignedMemR); // size GMX_SIMD_REAL_WIDTH*2
++ real * pbc_simd = coeff + GMX_SIMD_REAL_WIDTH*2; // size GMX_SIMD_REAL_WIDTH*9
+ SimdReal deg2rad_S(DEG2RAD);
+ SimdReal xi_S, yi_S, zi_S;
+ SimdReal xj_S, yj_S, zj_S;
+@@ -1005,7 +1008,6 @@
+ SimdReal cik_S, cii_S, ckk_S;
+ SimdReal f_ix_S, f_iy_S, f_iz_S;
+ SimdReal f_kx_S, f_ky_S, f_kz_S;
+- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) pbc_simd[9*GMX_SIMD_REAL_WIDTH];
+
+ set_pbc_simd(pbc, pbc_simd);
+
+@@ -1309,11 +1311,13 @@
+ int gmx_unused *global_atom_index)
+ {
+ constexpr int nfa1 = 4;
+- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) ai[GMX_SIMD_REAL_WIDTH];
+- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) aj[GMX_SIMD_REAL_WIDTH];
+- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) ak[GMX_SIMD_REAL_WIDTH];
+- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) coeff[4*GMX_SIMD_REAL_WIDTH];
+- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) pbc_simd[9*GMX_SIMD_REAL_WIDTH];
++ std::int32_t unalignedMemI[GMX_SIMD_REAL_WIDTH*4]; // GMX_SIMD_REAL_WIDTH*3 + padding
++ std::int32_t * ai = simdAlign(unalignedMemI); // size GMX_SIMD_REAL_WIDTH
++ std::int32_t * aj = ai + GMX_SIMD_REAL_WIDTH; // size GMX_SIMD_REAL_WIDTH
++ std::int32_t * ak = ai + GMX_SIMD_REAL_WIDTH*2; // size GMX_SIMD_REAL_WIDTH
++ real unalignedMemR[GMX_SIMD_REAL_WIDTH*14]; // GMX_SIMD_REAL_WIDTH*(4+9) + padding
++ real * coeff = simdAlign(unalignedMemR); // size GMX_SIMD_REAL_WIDTH*4
++ real * pbc_simd = coeff + GMX_SIMD_REAL_WIDTH*4; // size GMX_SIMD_REAL_WIDTH*9
+
+ set_pbc_simd(pbc, pbc_simd);
+
+@@ -1995,11 +1999,14 @@
+ const int nfa1 = 5;
+ int i, iu, s;
+ int type;
+- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) ai[GMX_SIMD_REAL_WIDTH];
+- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) aj[GMX_SIMD_REAL_WIDTH];
+- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) ak[GMX_SIMD_REAL_WIDTH];
+- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) al[GMX_SIMD_REAL_WIDTH];
+- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) buf[3*GMX_SIMD_REAL_WIDTH];
++ std::int32_t unalignedMemI[GMX_SIMD_REAL_WIDTH*5]; // GMX_SIMD_REAL_WIDTH*4 + padding
++ std::int32_t * ai = simdAlign(unalignedMemI); // size GMX_SIMD_REAL_WIDTH
++ std::int32_t * aj = ai + GMX_SIMD_REAL_WIDTH; // size GMX_SIMD_REAL_WIDTH
++ std::int32_t * ak = ai + GMX_SIMD_REAL_WIDTH*2; // size GMX_SIMD_REAL_WIDTH
++ std::int32_t * al = ai + GMX_SIMD_REAL_WIDTH*3; // size GMX_SIMD_REAL_WIDTH
++ real unalignedMemR[GMX_SIMD_REAL_WIDTH*13]; // GMX_SIMD_REAL_WIDTH*(9+3) + padding
++ real * buf = simdAlign(unalignedMemR); // size GMX_SIMD_REAL_WIDTH*3
++ real * pbc_simd = buf + GMX_SIMD_REAL_WIDTH*3; // size GMX_SIMD_REAL_WIDTH*9
+ real *cp, *phi0, *mult;
+ SimdReal deg2rad_S(DEG2RAD);
+ SimdReal p_S, q_S;
+@@ -2011,7 +2018,6 @@
+ SimdReal sin_S, cos_S;
+ SimdReal mddphi_S;
+ SimdReal sf_i_S, msf_l_S;
+- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) pbc_simd[9*GMX_SIMD_REAL_WIDTH];
+
+ /* Extract aligned pointer for parameters and variables */
+ cp = buf + 0*GMX_SIMD_REAL_WIDTH;
+@@ -2110,12 +2116,14 @@
+ const int nfa1 = 5;
+ int i, iu, s, j;
+ int type;
+- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) ai[GMX_SIMD_REAL_WIDTH];
+- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) aj[GMX_SIMD_REAL_WIDTH];
+- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) ak[GMX_SIMD_REAL_WIDTH];
+- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) al[GMX_SIMD_REAL_WIDTH];
+- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) parm[NR_RBDIHS*GMX_SIMD_REAL_WIDTH];
+-
++ std::int32_t unalignedMemI[GMX_SIMD_REAL_WIDTH*5]; // GMX_SIMD_REAL_WIDTH*4 + padding
++ std::int32_t * ai = simdAlign(unalignedMemI); // size GMX_SIMD_REAL_WIDTH
++ std::int32_t * aj = ai + GMX_SIMD_REAL_WIDTH; // size GMX_SIMD_REAL_WIDTH
++ std::int32_t * ak = ai + GMX_SIMD_REAL_WIDTH*2; // size GMX_SIMD_REAL_WIDTH
++ std::int32_t * al = ai + GMX_SIMD_REAL_WIDTH*3; // size GMX_SIMD_REAL_WIDTH
++ real unalignedMemR[GMX_SIMD_REAL_WIDTH*(NR_RBDIHS+9+1)]; // GMX_SIMD_REAL_WIDTH*(NRRBDIHS+9) + padding
++ real * parm = simdAlign(unalignedMemR); // size GMX_SIMD_REAL_WIDTH*NR_RBDIHS
++ real * pbc_simd = parm + GMX_SIMD_REAL_WIDTH*NR_RBDIHS; // size GMX_SIMD_REAL_WIDTH*9
+ SimdReal p_S, q_S;
+ SimdReal phi_S;
+ SimdReal ddphi_S, cosfac_S;
+@@ -2125,7 +2133,6 @@
+ SimdReal parm_S, c_S;
+ SimdReal sin_S, cos_S;
+ SimdReal sf_i_S, msf_l_S;
+- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) pbc_simd[9*GMX_SIMD_REAL_WIDTH];
+
+ SimdReal pi_S(M_PI);
+ SimdReal one_S(1.0);
+diff --git a/src/gromacs/listed-forces/pairs.cpp b/src/gromacs/listed-forces/pairs.cpp
+index 6d0d179..ea2e421 100644
+--- a/src/gromacs/listed-forces/pairs.cpp
++++ b/src/gromacs/listed-forces/pairs.cpp
+@@ -550,11 +550,19 @@
+ T twelve(12);
+ T ef(scale_factor);
+
+- const int align = 16;
+- GMX_ASSERT(pack_size <= align, "align should be increased");
+- GMX_ALIGNED(int, align) ai[pack_size];
+- GMX_ALIGNED(int, align) aj[pack_size];
+- GMX_ALIGNED(real, align) coeff[3*pack_size];
++#if GMX_SIMD_HAVE_REAL
++ // No matter what the pack_size is, we only need temporary storage to be
++ // aligned to match the SIMD load/store requirements.
++ std::int32_t unalignedMemI[pack_size*2 + GMX_SIMD_REAL_WIDTH];
++ std::int32_t * ai = simdAlign(unalignedMemI);
++ std::int32_t * aj = ai + pack_size;
++ real unalignedMemR[3*pack_size + GMX_SIMD_REAL_WIDTH];
++ real * coeff = simdAlign(unalignedMemR); // size 3*pack_size
++#else
++ std::int32_t ai[pack_size];
++ std::int32_t aj[pack_size];
++ real coeff[3*pack_size];
++#endif
+
+ /* nbonds is #pairs*nfa1, here we step pack_size pairs */
+ for (int i = 0; i < nbonds; i += pack_size*nfa1)
+@@ -658,7 +666,8 @@
+ * at once for the angles and dihedrals as well.
+ */
+ #if GMX_SIMD
+- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) pbc_simd[9*GMX_SIMD_REAL_WIDTH];
++ real unalignedMem[GMX_SIMD_REAL_WIDTH*10];
++ real * pbc_simd = simdAlign(unalignedMem);
+ set_pbc_simd(pbc, pbc_simd);
+
+ do_pairs_simple<SimdReal, GMX_SIMD_REAL_WIDTH,
+diff --git a/src/gromacs/mdlib/clincs.cpp b/src/gromacs/mdlib/clincs.cpp
+index 336e75b..b8686f2 100644
+--- a/src/gromacs/mdlib/clincs.cpp
++++ b/src/gromacs/mdlib/clincs.cpp
+@@ -441,7 +441,10 @@
+ {
+ assert(b0 % GMX_SIMD_REAL_WIDTH == 0);
+
+- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) offset2[GMX_SIMD_REAL_WIDTH];
++ std::int32_t unalignedMem[GMX_SIMD_REAL_WIDTH*4];
++ std::int32_t * offset0 = simdAlign(unalignedMem);
++ std::int32_t * offset1 = offset0 + GMX_SIMD_REAL_WIDTH;
++ std::int32_t * offset2 = offset0 + GMX_SIMD_REAL_WIDTH*2;
+
+ for (int i = 0; i < GMX_SIMD_REAL_WIDTH; i++)
+ {
+@@ -454,8 +457,6 @@
+ SimdReal x1_S, y1_S, z1_S;
+ SimdReal rx_S, ry_S, rz_S, n2_S, il_S;
+ SimdReal fx_S, fy_S, fz_S, ip_S, rhs_S;
+- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) offset0[GMX_SIMD_REAL_WIDTH];
+- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) offset1[GMX_SIMD_REAL_WIDTH];
+
+ for (int i = 0; i < GMX_SIMD_REAL_WIDTH; i++)
+ {
+@@ -537,7 +538,8 @@
+ * The only difference is that we always call pbc code, as with SIMD
+ * the overhead of pbc computation (when not needed) is small.
+ */
+- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) pbc_simd[9*GMX_SIMD_REAL_WIDTH];
++ real unalignedMem[GMX_SIMD_REAL_WIDTH*10];
++ real * pbc_simd = simdAlign(unalignedMem);
+
+ /* Convert the pbc struct for SIMD */
+ set_pbc_simd(pbc, pbc_simd);
+@@ -695,7 +697,10 @@
+ real * gmx_restrict sol)
+ {
+ assert(b0 % GMX_SIMD_REAL_WIDTH == 0);
+- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) offset2[GMX_SIMD_REAL_WIDTH];
++ std::int32_t unalignedMem[GMX_SIMD_REAL_WIDTH*4];
++ std::int32_t * offset0 = simdAlign(unalignedMem);
++ std::int32_t * offset1 = offset0 + GMX_SIMD_REAL_WIDTH;
++ std::int32_t * offset2 = offset0 + GMX_SIMD_REAL_WIDTH*2;
+
+ for (int i = 0; i < GMX_SIMD_REAL_WIDTH; i++)
+ {
+@@ -708,8 +713,6 @@
+ SimdReal x1_S, y1_S, z1_S;
+ SimdReal rx_S, ry_S, rz_S, n2_S, il_S;
+ SimdReal rxp_S, ryp_S, rzp_S, ip_S, rhs_S;
+- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) offset0[GMX_SIMD_REAL_WIDTH];
+- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) offset1[GMX_SIMD_REAL_WIDTH];
+
+ for (int i = 0; i < GMX_SIMD_REAL_WIDTH; i++)
+ {
+@@ -824,6 +827,10 @@
+
+ int bs;
+
++ std::int32_t unalignedMem[GMX_SIMD_REAL_WIDTH*3];
++ std::int32_t * offset0 = simdAlign(unalignedMem);
++ std::int32_t * offset1 = offset0 + GMX_SIMD_REAL_WIDTH;
++
+ assert(b0 % GMX_SIMD_REAL_WIDTH == 0);
+
+ /* Initialize all to FALSE */
+@@ -835,8 +842,6 @@
+ SimdReal x1_S, y1_S, z1_S;
+ SimdReal rx_S, ry_S, rz_S, n2_S;
+ SimdReal len_S, len2_S, dlen2_S, lc_S, blc_S;
+- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) offset0[GMX_SIMD_REAL_WIDTH];
+- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) offset1[GMX_SIMD_REAL_WIDTH];
+
+ for (int i = 0; i < GMX_SIMD_REAL_WIDTH; i++)
+ {
+@@ -923,7 +928,8 @@
+ * The only difference is that we always call pbc code, as with SIMD
+ * the overhead of pbc computation (when not needed) is small.
+ */
+- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) pbc_simd[9*GMX_SIMD_REAL_WIDTH];
++ real unalignedMem[GMX_SIMD_REAL_WIDTH*10];
++ real * pbc_simd = simdAlign(unalignedMem);
+
+ /* Convert the pbc struct for SIMD */
+ set_pbc_simd(pbc, pbc_simd);
+diff --git a/src/gromacs/mdlib/csettle.cpp b/src/gromacs/mdlib/csettle.cpp
+index 34a011a..fb71292 100644
+--- a/src/gromacs/mdlib/csettle.cpp
++++ b/src/gromacs/mdlib/csettle.cpp
+@@ -850,7 +850,9 @@
+ if (settled->bUseSimd)
+ {
+ /* Convert the pbc struct for SIMD */
+- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) pbcSimd[9*GMX_SIMD_REAL_WIDTH];
++ real unalignedMem[GMX_SIMD_REAL_WIDTH*10];
++ real * pbcSimd = simdAlign(unalignedMem);
++
+ set_pbc_simd(pbc, pbcSimd);
+
+ settleTemplateWrapper<SimdReal, SimdBool, GMX_SIMD_REAL_WIDTH,
+diff --git a/src/gromacs/mdlib/nbnxn_kernels/simd_2xnn/nbnxn_kernel_simd_2xnn_inner.h b/src/gromacs/mdlib/nbnxn_kernels/simd_2xnn/nbnxn_kernel_simd_2xnn_inner.h
+index 3dfc89b..1671e30 100644
+--- a/src/gromacs/mdlib/nbnxn_kernels/simd_2xnn/nbnxn_kernel_simd_2xnn_inner.h
++++ b/src/gromacs/mdlib/nbnxn_kernels/simd_2xnn/nbnxn_kernel_simd_2xnn_inner.h
+@@ -278,8 +278,9 @@
+
+ #ifdef COUNT_PAIRS
+ {
+- int i, j;
+- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) tmp[GMX_SIMD_REAL_WIDTH];
++ int i, j;
++ real unalignedMem[GMX_SIMD_REAL_WIDTH*2];
++ real * tmp = simdAlign(unalignedMem);
+
+ for (i = 0; i < UNROLLI; i += 2)
+ {
+diff --git a/src/gromacs/mdlib/nbnxn_kernels/simd_2xnn/nbnxn_kernel_simd_2xnn_outer.h b/src/gromacs/mdlib/nbnxn_kernels/simd_2xnn/nbnxn_kernel_simd_2xnn_outer.h
+index 2aa9944..d401715 100644
+--- a/src/gromacs/mdlib/nbnxn_kernels/simd_2xnn/nbnxn_kernel_simd_2xnn_outer.h
++++ b/src/gromacs/mdlib/nbnxn_kernels/simd_2xnn/nbnxn_kernel_simd_2xnn_outer.h
+@@ -138,8 +138,9 @@
+ SimdReal hsig_i_S2, seps_i_S2;
+ #else
+ #ifdef FIX_LJ_C
+- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) pvdw_c6[2*UNROLLI*UNROLLJ];
+- real *pvdw_c12 = pvdw_c6 + UNROLLI*UNROLLJ;
++ real unalignedMem[2*UNROLLI*UNROLLJ + GMX_SIMD_REAL_WIDTH];
++ real * pvdw_c6 = simdAlign(unalignedMem);
++ real * pvdw_c12 = pvdw_c6 + UNROLLI*UNROLLJ;
+ #endif
+
+ #if defined LJ_COMB_GEOM || defined LJ_EWALD_GEOM
+diff --git a/src/gromacs/mdlib/nbnxn_kernels/simd_4xn/nbnxn_kernel_simd_4xn_inner.h b/src/gromacs/mdlib/nbnxn_kernels/simd_4xn/nbnxn_kernel_simd_4xn_inner.h
+index f0b0b7a..bcf2675 100644
+--- a/src/gromacs/mdlib/nbnxn_kernels/simd_4xn/nbnxn_kernel_simd_4xn_inner.h
++++ b/src/gromacs/mdlib/nbnxn_kernels/simd_4xn/nbnxn_kernel_simd_4xn_inner.h
+@@ -362,8 +362,9 @@
+
+ #ifdef COUNT_PAIRS
+ {
+- int i, j;
+- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) tmp[2*GMX_SIMD_REAL_WIDTH];
++ int i, j;
++ real unalignedMem[GMX_SIMD_REAL_WIDTH*3];
++ real * tmp = simdAlign(unalignedMem);
+
+ for (i = 0; i < UNROLLI; i++)
+ {
+diff --git a/src/gromacs/mdlib/nbnxn_kernels/simd_4xn/nbnxn_kernel_simd_4xn_outer.h b/src/gromacs/mdlib/nbnxn_kernels/simd_4xn/nbnxn_kernel_simd_4xn_outer.h
+index 167379c..ae627b6 100644
+--- a/src/gromacs/mdlib/nbnxn_kernels/simd_4xn/nbnxn_kernel_simd_4xn_outer.h
++++ b/src/gromacs/mdlib/nbnxn_kernels/simd_4xn/nbnxn_kernel_simd_4xn_outer.h
+@@ -334,8 +334,9 @@
+ x = nbat->x;
+
+ #ifdef FIX_LJ_C
+- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) pvdw_c6[2*UNROLLI*UNROLLJ];
+- real *pvdw_c12 = pvdw_c6 + UNROLLI*UNROLLJ;
++ real unalignedMem[2*UNROLLI*UNROLLJ + GMX_SIMD_REAL_WIDTH];
++ real * pvdw_c6 = simdAlign(unalignedMem);
++ real * pvdw_c12 = pvdw_c6 + UNROLLI*UNROLLJ;
+
+ for (int jp = 0; jp < UNROLLJ; jp++)
+ {
+diff --git a/src/gromacs/simd/impl_arm_neon/impl_arm_neon_util_float.h b/src/gromacs/simd/impl_arm_neon/impl_arm_neon_util_float.h
+index d2919f4..9239529 100644
+--- a/src/gromacs/simd/impl_arm_neon/impl_arm_neon_util_float.h
++++ b/src/gromacs/simd/impl_arm_neon/impl_arm_neon_util_float.h
+@@ -1,7 +1,7 @@
+ /*
+ * This file is part of the GROMACS molecular simulation package.
+ *
+- * Copyright (c) 2014,2015,2016, by the GROMACS development team, led by
++ * Copyright (c) 2014,2015,2016,2017, by the GROMACS development team, led by
+ * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
+ * and including many others, as listed in the AUTHORS file in the
+ * top-level source directory and at http://www.gromacs.org.
+@@ -286,7 +286,8 @@
+ SimdFloat * v2,
+ SimdFloat * v3)
+ {
+- GMX_ALIGNED(int, GMX_SIMD_FINT32_WIDTH) ioffset[GMX_SIMD_FINT32_WIDTH];
++ // Arm does not mind unaligned memory
++ std::int32_t ioffset[GMX_SIMD_FLOAT_WIDTH];
+
+ assert(std::size_t(base) % 16 == 0);
+ assert(align % 4 == 0);
+@@ -302,7 +303,8 @@
+ SimdFloat * v0,
+ SimdFloat * v1)
+ {
+- GMX_ALIGNED(int, GMX_SIMD_FINT32_WIDTH) ioffset[GMX_SIMD_FINT32_WIDTH];
++ // Arm does not mind unaligned memory
++ std::int32_t ioffset[GMX_SIMD_FLOAT_WIDTH];
+
+ store(ioffset, offset);
+ gatherLoadTranspose<align>(base, ioffset, v0, v1);
+@@ -317,7 +319,8 @@
+ SimdFloat * v0,
+ SimdFloat * v1)
+ {
+- GMX_ALIGNED(int, GMX_SIMD_FINT32_WIDTH) ioffset[GMX_SIMD_FINT32_WIDTH];
++ // Arm does not mind unaligned memory
++ std::int32_t ioffset[GMX_SIMD_FLOAT_WIDTH];
+
+ store(ioffset, offset);
+ v0->simdInternal_ = vcombine_f32(vld1_f32( base + align * ioffset[0] ),
+diff --git a/src/gromacs/simd/impl_arm_neon_asimd/impl_arm_neon_asimd_util_double.h b/src/gromacs/simd/impl_arm_neon_asimd/impl_arm_neon_asimd_util_double.h
+index 45abcbb..2a5bf7e 100644
+--- a/src/gromacs/simd/impl_arm_neon_asimd/impl_arm_neon_asimd_util_double.h
++++ b/src/gromacs/simd/impl_arm_neon_asimd/impl_arm_neon_asimd_util_double.h
+@@ -1,7 +1,7 @@
+ /*
+ * This file is part of the GROMACS molecular simulation package.
+ *
+- * Copyright (c) 2014,2015, by the GROMACS development team, led by
++ * Copyright (c) 2014,2015,2017, by the GROMACS development team, led by
+ * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
+ * and including many others, as listed in the AUTHORS file in the
+ * top-level source directory and at http://www.gromacs.org.
+@@ -225,7 +225,8 @@
+ SimdDouble * v2,
+ SimdDouble * v3)
+ {
+- GMX_ALIGNED(int, GMX_SIMD_DINT32_WIDTH) ioffset[GMX_SIMD_DINT32_WIDTH];
++ // Arm does not mind unaligned memory
++ std::int32_t ioffset[GMX_SIMD_DOUBLE_WIDTH];
+
+ assert(std::size_t(base) % 16 == 0);
+ assert(align % 2 == 0);
+@@ -242,7 +243,8 @@
+ SimdDouble * v0,
+ SimdDouble * v1)
+ {
+- GMX_ALIGNED(int, GMX_SIMD_DINT32_WIDTH) ioffset[GMX_SIMD_DINT32_WIDTH];
++ // Arm does not mind unaligned memory
++ std::int32_t ioffset[GMX_SIMD_DOUBLE_WIDTH];
+
+ assert(std::size_t(base) % 16 == 0);
+ assert(align % 2 == 0);
+@@ -258,7 +260,8 @@
+ SimdDouble * v0,
+ SimdDouble * v1)
+ {
+- GMX_ALIGNED(int, GMX_SIMD_DINT32_WIDTH) ioffset[GMX_SIMD_DINT32_WIDTH];
++ // Arm does not mind unaligned memory
++ std::int32_t ioffset[GMX_SIMD_DOUBLE_WIDTH];
+
+ vst1_s32(ioffset, offset.simdInternal_);
+
+diff --git a/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_simd_double.h b/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_simd_double.h
+index dc20d78..cdaef23 100644
+--- a/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_simd_double.h
++++ b/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_simd_double.h
+@@ -75,7 +75,11 @@
+
+ SimdDInt32(std::int32_t i)
+ {
+- GMX_ALIGNED(int, GMX_SIMD_DINT32_WIDTH) idata[GMX_SIMD_DINT32_WIDTH];
++ std::int32_t unalignedMem[GMX_SIMD_DINT32_WIDTH*2];
++ // Float and double are the same width for QPX, so simdAlign() will
++ // work with integers no matter what the current precision is
++ std::int32_t * idata = simdAlign(unalignedMem);
++
+ idata[0] = i;
+ simdInternal_ = vec_splat(vec_ldia(0, idata), 0);
+ }
+@@ -332,8 +336,13 @@
+ static inline SimdDouble
+ frexp(SimdDouble value, SimdDInt32 * exponent)
+ {
+- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) rdata[GMX_SIMD_DOUBLE_WIDTH];
+- GMX_ALIGNED(int, GMX_SIMD_DOUBLE_WIDTH) idata[GMX_SIMD_DOUBLE_WIDTH];
++ double unalignedMem[GMX_SIMD_DOUBLE_WIDTH*2];
++ double * rdata = simdAlign(unalignedMem);
++
++ std::int32_t unalignedMemI[GMX_SIMD_DOUBLE_WIDTH*2];
++ // Float and double are the same width for QPX, so simdAlign() will
++ // work with integers no matter what the current precision is
++ std::int32_t * idata = simdAlign(unalignedMemI);
+
+ vec_st(value.simdInternal_, 0, rdata);
+
+@@ -352,8 +361,13 @@
+ static inline SimdDouble
+ ldexp(SimdDouble value, SimdDInt32 exponent)
+ {
+- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) rdata[GMX_SIMD_DOUBLE_WIDTH];
+- GMX_ALIGNED(int, GMX_SIMD_DOUBLE_WIDTH) idata[GMX_SIMD_DOUBLE_WIDTH];
++ double unalignedMem[GMX_SIMD_DOUBLE_WIDTH*2];
++ double * rdata = simdAlign(unalignedMem);
++
++ std::int32_t unalignedMemI[GMX_SIMD_DOUBLE_WIDTH*2];
++ // Float and double are the same width for QPX, so simdAlign() will
++ // work with integers no matter what the current precision is
++ std::int32_t * idata = simdAlign(unalignedMemI);
+
+ vec_st(value.simdInternal_, 0, rdata);
+ vec_st(exponent.simdInternal_, 0, idata);
+diff --git a/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_simd_float.h b/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_simd_float.h
+index 12ffdbd..0977a64 100644
+--- a/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_simd_float.h
++++ b/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_simd_float.h
+@@ -72,7 +72,11 @@
+
+ SimdFInt32(std::int32_t i)
+ {
+- GMX_ALIGNED(int, GMX_SIMD_FINT32_WIDTH) idata[GMX_SIMD_FINT32_WIDTH];
++ std::int32_t unalignedMem[GMX_SIMD_FINT32_WIDTH*2];
++ // Float and double are the same width for QPX, so simdAlign() will
++ // work with integers no matter what the current precision is
++ std::int32_t * idata = simdAlign(unalignedMem);
++
+ idata[0] = i;
+ simdInternal_ = vec_splat(vec_ldia(0, idata), 0);
+ }
+@@ -329,8 +333,12 @@
+ static inline SimdFloat
+ frexp(SimdFloat value, SimdFInt32 * exponent)
+ {
+- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) rdata[GMX_SIMD_FLOAT_WIDTH];
+- GMX_ALIGNED(int, GMX_SIMD_FLOAT_WIDTH) idata[GMX_SIMD_FLOAT_WIDTH];
++ float unalignedMem[GMX_SIMD_FLOAT_WIDTH*2];
++ float * rdata = simdAlign(unalignedMem);
++ std::int32_t unalignedMemI[GMX_SIMD_FLOAT_WIDTH*2];
++ // Float and double are the same width for QPX, so simdAlign() will
++ // work with integers no matter what the current precision is
++ std::int32_t * idata = simdAlign(unalignedMemI);
+
+ vec_st(value.simdInternal_, 0, rdata);
+
+@@ -349,8 +357,13 @@
+ static inline SimdFloat
+ ldexp(SimdFloat value, SimdFInt32 exponent)
+ {
+- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) rdata[GMX_SIMD_FLOAT_WIDTH];
+- GMX_ALIGNED(int, GMX_SIMD_FLOAT_WIDTH) idata[GMX_SIMD_FLOAT_WIDTH];
++ float unalignedMem[GMX_SIMD_FLOAT_WIDTH*2];
++ float * rdata = simdAlign(unalignedMem);
++
++ std::int32_t unalignedMemI[GMX_SIMD_FLOAT_WIDTH*2];
++ // Float and double are the same width for QPX, so simdAlign() will
++ // work with integers no matter what the current precision is
++ std::int32_t * idata = simdAlign(unalignedMemI);
+
+ vec_st(value.simdInternal_, 0, rdata);
+ vec_st(exponent.simdInternal_, 0, idata);
+diff --git a/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_util_double.h b/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_util_double.h
+index 5a220c4..5446fdc 100644
+--- a/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_util_double.h
++++ b/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_util_double.h
+@@ -1,7 +1,7 @@
+ /*
+ * This file is part of the GROMACS molecular simulation package.
+ *
+- * Copyright (c) 2014,2015,2016, by the GROMACS development team, led by
++ * Copyright (c) 2014,2015,2016,2017, by the GROMACS development team, led by
+ * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
+ * and including many others, as listed in the AUTHORS file in the
+ * top-level source directory and at http://www.gromacs.org.
+@@ -143,9 +143,10 @@
+ SimdDouble v1,
+ SimdDouble v2)
+ {
+- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) m0[GMX_SIMD_DOUBLE_WIDTH];
+- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) m1[GMX_SIMD_DOUBLE_WIDTH];
+- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) m2[GMX_SIMD_DOUBLE_WIDTH];
++ double unalignedMem[GMX_SIMD_DOUBLE_WIDTH*4];
++ double * m0 = simdAlign(unalignedMem);
++ double * m1 = m0 + GMX_SIMD_DOUBLE_WIDTH;
++ double * m2 = m0 + GMX_SIMD_DOUBLE_WIDTH*2;
+
+ store(m0, v0);
+ store(m1, v1);
+@@ -193,9 +194,10 @@
+ }
+ else
+ {
+- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) m0[GMX_SIMD_DOUBLE_WIDTH];
+- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) m1[GMX_SIMD_DOUBLE_WIDTH];
+- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) m2[GMX_SIMD_DOUBLE_WIDTH];
++ double unalignedMem[GMX_SIMD_DOUBLE_WIDTH*4];
++ double * m0 = simdAlign(unalignedMem);
++ double * m1 = m0 + GMX_SIMD_DOUBLE_WIDTH;
++ double * m2 = m0 + GMX_SIMD_DOUBLE_WIDTH*2;
+
+ store(m0, v0);
+ store(m1, v1);
+@@ -244,9 +246,10 @@
+ }
+ else
+ {
+- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) m0[GMX_SIMD_DOUBLE_WIDTH];
+- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) m1[GMX_SIMD_DOUBLE_WIDTH];
+- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) m2[GMX_SIMD_DOUBLE_WIDTH];
++ double unalignedMem[GMX_SIMD_DOUBLE_WIDTH*4];
++ double * m0 = simdAlign(unalignedMem);
++ double * m1 = m0 + GMX_SIMD_DOUBLE_WIDTH;
++ double * m2 = m0 + GMX_SIMD_DOUBLE_WIDTH*2;
+
+ store(m0, v0);
+ store(m1, v1);
+@@ -287,7 +290,10 @@
+ SimdDouble * v2,
+ SimdDouble * v3)
+ {
+- GMX_ALIGNED(int, GMX_SIMD_DOUBLE_WIDTH) ioffset[GMX_SIMD_DOUBLE_WIDTH];
++ std::int32_t unalignedMem[GMX_SIMD_DOUBLE_WIDTH*2];
++ // Float and double are the same width for QPX, so simdAlign() will
++ // work with integers no matter what the current precision is
++ std::int32_t * ioffset = simdAlign(unalignedMem);
+
+ store(ioffset, simdoffset);
+ gatherLoadTranspose<align>(base, ioffset, v0, v1, v2, v3);
+@@ -300,7 +306,10 @@
+ SimdDouble * v0,
+ SimdDouble * v1)
+ {
+- GMX_ALIGNED(int, GMX_SIMD_DOUBLE_WIDTH) ioffset[GMX_SIMD_DOUBLE_WIDTH];
++ std::int32_t unalignedMem[GMX_SIMD_DOUBLE_WIDTH*2];
++ // Float and double are the same width for QPX, so simdAlign() will
++ // work with integers no matter what the current precision is
++ std::int32_t * ioffset = simdAlign(unalignedMem);
+
+ store(ioffset, simdoffset);
+ gatherLoadTranspose<align>(base, ioffset, v0, v1);
+diff --git a/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_util_float.h b/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_util_float.h
+index 2e12fab..39644eb 100644
+--- a/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_util_float.h
++++ b/src/gromacs/simd/impl_ibm_qpx/impl_ibm_qpx_util_float.h
+@@ -1,7 +1,7 @@
+ /*
+ * This file is part of the GROMACS molecular simulation package.
+ *
+- * Copyright (c) 2014,2015,2016, by the GROMACS development team, led by
++ * Copyright (c) 2014,2015,2016,2017, by the GROMACS development team, led by
+ * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
+ * and including many others, as listed in the AUTHORS file in the
+ * top-level source directory and at http://www.gromacs.org.
+@@ -143,9 +143,10 @@
+ SimdFloat v1,
+ SimdFloat v2)
+ {
+- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) m0[GMX_SIMD_FLOAT_WIDTH];
+- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) m1[GMX_SIMD_FLOAT_WIDTH];
+- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) m2[GMX_SIMD_FLOAT_WIDTH];
++ float unalignedMem[GMX_SIMD_FLOAT_WIDTH*4];
++ float * m0 = simdAlign(unalignedMem);
++ float * m1 = m0 + GMX_SIMD_FLOAT_WIDTH;
++ float * m2 = m0 + GMX_SIMD_FLOAT_WIDTH*2;
+
+ store(m0, v0);
+ store(m1, v1);
+@@ -193,9 +194,10 @@
+ }
+ else
+ {
+- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) m0[GMX_SIMD_FLOAT_WIDTH];
+- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) m1[GMX_SIMD_FLOAT_WIDTH];
+- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) m2[GMX_SIMD_FLOAT_WIDTH];
++ float unalignedMem[GMX_SIMD_FLOAT_WIDTH*4];
++ float * m0 = simdAlign(unalignedMem);
++ float * m1 = m0 + GMX_SIMD_FLOAT_WIDTH;
++ float * m2 = m0 + GMX_SIMD_FLOAT_WIDTH*2;
+
+ store(m0, v0);
+ store(m1, v1);
+@@ -244,9 +246,10 @@
+ }
+ else
+ {
+- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) m0[GMX_SIMD_FLOAT_WIDTH];
+- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) m1[GMX_SIMD_FLOAT_WIDTH];
+- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) m2[GMX_SIMD_FLOAT_WIDTH];
++ float unalignedMem[GMX_SIMD_FLOAT_WIDTH*4];
++ float * m0 = simdAlign(unalignedMem);
++ float * m1 = m0 + GMX_SIMD_FLOAT_WIDTH;
++ float * m2 = m0 + GMX_SIMD_FLOAT_WIDTH*2;
+
+ store(m0, v0);
+ store(m1, v1);
+@@ -287,7 +290,10 @@
+ SimdFloat * v2,
+ SimdFloat * v3)
+ {
+- GMX_ALIGNED(int, GMX_SIMD_FLOAT_WIDTH) ioffset[GMX_SIMD_FLOAT_WIDTH];
++ std::int32_t unalignedMem[GMX_SIMD_FLOAT_WIDTH*2];
++ // Float and double are the same width for QPX, so simdAlign() will
++ // work with integers no matter what the current precision is
++ std::int32_t * ioffset = simdAlign(unalignedMem);
+
+ store(ioffset, simdoffset);
+ gatherLoadTranspose<align>(base, ioffset, v0, v1, v2, v3);
+@@ -300,7 +306,10 @@
+ SimdFloat * v0,
+ SimdFloat * v1)
+ {
+- GMX_ALIGNED(int, GMX_SIMD_FLOAT_WIDTH) ioffset[GMX_SIMD_FLOAT_WIDTH];
++ std::int32_t unalignedMem[GMX_SIMD_FLOAT_WIDTH*2];
++ // Float and double are the same width for QPX, so simdAlign() will
++ // work with integers no matter what the current precision is
++ std::int32_t * ioffset = simdAlign(unalignedMem);
+
+ store(ioffset, simdoffset);
+ gatherLoadTranspose<align>(base, ioffset, v0, v1);
+diff --git a/src/gromacs/simd/impl_ibm_vmx/impl_ibm_vmx_util_float.h b/src/gromacs/simd/impl_ibm_vmx/impl_ibm_vmx_util_float.h
+index 95690c3..1e1642a 100644
+--- a/src/gromacs/simd/impl_ibm_vmx/impl_ibm_vmx_util_float.h
++++ b/src/gromacs/simd/impl_ibm_vmx/impl_ibm_vmx_util_float.h
+@@ -1,7 +1,7 @@
+ /*
+ * This file is part of the GROMACS molecular simulation package.
+ *
+- * Copyright (c) 2014,2015,2016, by the GROMACS development team, led by
++ * Copyright (c) 2014,2015,2016,2017, by the GROMACS development team, led by
+ * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
+ * and including many others, as listed in the AUTHORS file in the
+ * top-level source directory and at http://www.gromacs.org.
+@@ -273,9 +273,10 @@
+ }
+ else
+ {
+- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) rdata0[GMX_SIMD_FLOAT_WIDTH];
+- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) rdata1[GMX_SIMD_FLOAT_WIDTH];
+- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) rdata2[GMX_SIMD_FLOAT_WIDTH];
++ float unalignedMem[GMX_SIMD_FLOAT_WIDTH*4];
++ float * rdata0 = simdAlign(unalignedMem);
++ float * rdata1 = rdata0 + GMX_SIMD_FLOAT_WIDTH;
++ float * rdata2 = rdata0 + GMX_SIMD_FLOAT_WIDTH*2;
+
+ vec_st(v0.simdInternal_, 0, rdata0);
+ vec_st(v1.simdInternal_, 0, rdata1);
+@@ -323,9 +324,10 @@
+ }
+ else
+ {
+- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) rdata0[GMX_SIMD_FLOAT_WIDTH];
+- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) rdata1[GMX_SIMD_FLOAT_WIDTH];
+- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) rdata2[GMX_SIMD_FLOAT_WIDTH];
++ float unalignedMem[GMX_SIMD_FLOAT_WIDTH*4];
++ float * rdata0 = simdAlign(unalignedMem);
++ float * rdata1 = rdata0 + GMX_SIMD_FLOAT_WIDTH;
++ float * rdata2 = rdata0 + GMX_SIMD_FLOAT_WIDTH*2;
+
+ vec_st(v0.simdInternal_, 0, rdata0);
+ vec_st(v1.simdInternal_, 0, rdata1);
+@@ -371,7 +373,9 @@
+ SimdFloat * v2,
+ SimdFloat * v3)
+ {
+- GMX_ALIGNED(int, GMX_SIMD_FINT32_WIDTH) ioffset[GMX_SIMD_FINT32_WIDTH];
++ std::int32_t unalignedMem[GMX_SIMD_FLOAT_WIDTH*2];
++ // VMX only provides single precision, so it's safe to use simdAlign() here
++ std::int32_t * ioffset = simdAlign(unalignedMem);
+
+ vec_st( offset.simdInternal_, 0, ioffset);
+ gatherLoadTranspose<align>(base, ioffset, v0, v1, v2, v3);
+@@ -384,7 +388,9 @@
+ SimdFloat * v0,
+ SimdFloat * v1)
+ {
+- GMX_ALIGNED(int, GMX_SIMD_FINT32_WIDTH) ioffset[GMX_SIMD_FINT32_WIDTH];
++ std::int32_t unalignedMem[GMX_SIMD_FLOAT_WIDTH*2];
++ // VMX only provides single precision, so it's safe to use simdAlign() here
++ std::int32_t * ioffset = simdAlign(unalignedMem);
+
+ vec_st( offset.simdInternal_, 0, ioffset);
+ gatherLoadTranspose<align>(base, ioffset, v0, v1);
+diff --git a/src/gromacs/simd/impl_ibm_vsx/impl_ibm_vsx_util_double.h b/src/gromacs/simd/impl_ibm_vsx/impl_ibm_vsx_util_double.h
+index 868b40f..0a1f4b3 100644
+--- a/src/gromacs/simd/impl_ibm_vsx/impl_ibm_vsx_util_double.h
++++ b/src/gromacs/simd/impl_ibm_vsx/impl_ibm_vsx_util_double.h
+@@ -1,7 +1,7 @@
+ /*
+ * This file is part of the GROMACS molecular simulation package.
+ *
+- * Copyright (c) 2014,2015,2016, by the GROMACS development team, led by
++ * Copyright (c) 2014,2015,2016,2017, by the GROMACS development team, led by
+ * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
+ * and including many others, as listed in the AUTHORS file in the
+ * top-level source directory and at http://www.gromacs.org.
+@@ -249,7 +249,8 @@
+ SimdDouble * v2,
+ SimdDouble * v3)
+ {
+- GMX_ALIGNED(std::int32_t, GMX_SIMD_DINT32_WIDTH) ioffset[GMX_SIMD_DINT32_WIDTH];
++ // Our VSX SimdDInt32 load/store routines do not require aligned memory
++ std::int32_t ioffset[GMX_SIMD_DOUBLE_WIDTH];
+
+ store(ioffset, offset );
+ gatherLoadTranspose<align>(base, ioffset, v0, v1, v2, v3);
+@@ -262,7 +263,8 @@
+ SimdDouble * v0,
+ SimdDouble * v1)
+ {
+- GMX_ALIGNED(std::int32_t, GMX_SIMD_DINT32_WIDTH) ioffset[GMX_SIMD_DINT32_WIDTH];
++ // Our VSX SimdDInt32 load/store routines do not require aligned memory
++ std::int32_t ioffset[GMX_SIMD_DOUBLE_WIDTH];
+
+ store(ioffset, offset );
+ gatherLoadTranspose<align>(base, ioffset, v0, v1);
+@@ -276,7 +278,8 @@
+ SimdDouble * v0,
+ SimdDouble * v1)
+ {
+- GMX_ALIGNED(std::int32_t, GMX_SIMD_DINT32_WIDTH) ioffset[GMX_SIMD_DINT32_WIDTH];
++ // Our VSX SimdDInt32 load/store routines do not require aligned memory
++ std::int32_t ioffset[GMX_SIMD_DOUBLE_WIDTH];
+
+ store(ioffset, offset );
+ gatherLoadTranspose<align>(base, ioffset, v0, v1);
+diff --git a/src/gromacs/simd/impl_ibm_vsx/impl_ibm_vsx_util_float.h b/src/gromacs/simd/impl_ibm_vsx/impl_ibm_vsx_util_float.h
+index 8863765..e992219 100644
+--- a/src/gromacs/simd/impl_ibm_vsx/impl_ibm_vsx_util_float.h
++++ b/src/gromacs/simd/impl_ibm_vsx/impl_ibm_vsx_util_float.h
+@@ -330,7 +330,8 @@
+ SimdFloat * v2,
+ SimdFloat * v3)
+ {
+- GMX_ALIGNED(std::int32_t, GMX_SIMD_FINT32_WIDTH) ioffset[GMX_SIMD_FINT32_WIDTH];
++ // Our VSX SimdFInt32 load/store routines do not require aligned memory
++ std::int32_t ioffset[GMX_SIMD_FLOAT_WIDTH];
+
+ store(ioffset, offset );
+ gatherLoadTranspose<align>(base, ioffset, v0, v1, v2, v3);
+@@ -343,7 +344,8 @@
+ SimdFloat * v0,
+ SimdFloat * v1)
+ {
+- GMX_ALIGNED(std::int32_t, GMX_SIMD_FINT32_WIDTH) ioffset[GMX_SIMD_FINT32_WIDTH];
++ // Our VSX SimdFInt32 load/store routines do not require aligned memory
++ std::int32_t ioffset[GMX_SIMD_FLOAT_WIDTH];
+
+ store(ioffset, offset );
+ gatherLoadTranspose<align>(base, ioffset, v0, v1);
+@@ -356,7 +358,8 @@
+ SimdFloat * v0,
+ SimdFloat * v1)
+ {
+- GMX_ALIGNED(std::int32_t, GMX_SIMD_FINT32_WIDTH) ioffset[GMX_SIMD_FINT32_WIDTH];
++ // Our VSX SimdFInt32 load/store routines do not require aligned memory
++ std::int32_t ioffset[GMX_SIMD_FLOAT_WIDTH];
+
+ store(ioffset, offset );
+ gatherLoadTranspose<align>(base, ioffset, v0, v1);
+diff --git a/src/gromacs/simd/impl_x86_avx_256/impl_x86_avx_256_util_double.h b/src/gromacs/simd/impl_x86_avx_256/impl_x86_avx_256_util_double.h
+index a3cefcb..1c0a505 100644
+--- a/src/gromacs/simd/impl_x86_avx_256/impl_x86_avx_256_util_double.h
++++ b/src/gromacs/simd/impl_x86_avx_256/impl_x86_avx_256_util_double.h
+@@ -1,7 +1,7 @@
+ /*
+ * This file is part of the GROMACS molecular simulation package.
+ *
+- * Copyright (c) 2014,2015, by the GROMACS development team, led by
++ * Copyright (c) 2014,2015,2017, by the GROMACS development team, led by
+ * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
+ * and including many others, as listed in the AUTHORS file in the
+ * top-level source directory and at http://www.gromacs.org.
+@@ -331,7 +331,11 @@
+ assert(std::size_t(base) % 32 == 0);
+ assert(align % 4 == 0);
+
+- GMX_ALIGNED(int, GMX_SIMD_DINT32_WIDTH) ioffset[GMX_SIMD_DINT32_WIDTH];
++ std::int32_t unalignedMem[GMX_SIMD_DOUBLE_WIDTH*2];
++ // We cannot use simdAlign(), since SimdDInt32 might not be identical to SimdInt32
++ std::int32_t * ioffset = reinterpret_cast<std::int32_t *>(reinterpret_cast<std::size_t>(unalignedMem+GMX_SIMD_DOUBLE_WIDTH-1) &
++ ~(reinterpret_cast<std::size_t>(GMX_SIMD_DOUBLE_WIDTH*sizeof(std::int32_t)-1)));
++
+ _mm_store_si128( reinterpret_cast<__m128i *>(ioffset), offset.simdInternal_);
+
+ v0->simdInternal_ = _mm256_load_pd(base + align * ioffset[0]);
+@@ -355,7 +359,11 @@
+ assert(std::size_t(base) % 16 == 0);
+ assert(align % 2 == 0);
+
+- GMX_ALIGNED(int, GMX_SIMD_DINT32_WIDTH) ioffset[GMX_SIMD_DINT32_WIDTH];
++ std::int32_t unalignedMem[GMX_SIMD_DOUBLE_WIDTH*2];
++ // We cannot use simdAlign(), since SimdDInt32 might not be identical to SimdInt32
++ std::int32_t * ioffset = reinterpret_cast<std::int32_t *>(reinterpret_cast<std::size_t>(unalignedMem+GMX_SIMD_DOUBLE_WIDTH-1) &
++ ~(reinterpret_cast<std::size_t>(GMX_SIMD_DOUBLE_WIDTH*sizeof(std::int32_t)-1)));
++
+ _mm_store_si128( reinterpret_cast<__m128i *>(ioffset), offset.simdInternal_);
+
+ t1 = _mm_load_pd(base + align * ioffset[0]);
+@@ -376,10 +384,14 @@
+ SimdDouble * v0,
+ SimdDouble * v1)
+ {
+- __m128d t1, t2, t3, t4;
+- __m256d tA, tB;
++ __m128d t1, t2, t3, t4;
++ __m256d tA, tB;
+
+- GMX_ALIGNED(int, GMX_SIMD_DINT32_WIDTH) ioffset[GMX_SIMD_DINT32_WIDTH];
++ std::int32_t unalignedMem[GMX_SIMD_DOUBLE_WIDTH*2];
++ // We cannot use simdAlign(), since SimdDInt32 might not be identical to SimdInt32
++ std::int32_t * ioffset = reinterpret_cast<std::int32_t *>(reinterpret_cast<std::size_t>(unalignedMem+GMX_SIMD_DOUBLE_WIDTH-1) &
++ ~(reinterpret_cast<std::size_t>(GMX_SIMD_DOUBLE_WIDTH*sizeof(std::int32_t)-1)));
++
+ _mm_store_si128( reinterpret_cast<__m128i *>(ioffset), offset.simdInternal_);
+
+ t1 = _mm_loadu_pd(base + align * ioffset[0]);
+diff --git a/src/gromacs/simd/impl_x86_avx_256/impl_x86_avx_256_util_float.h b/src/gromacs/simd/impl_x86_avx_256/impl_x86_avx_256_util_float.h
+index 2eebda9..3641cad 100644
+--- a/src/gromacs/simd/impl_x86_avx_256/impl_x86_avx_256_util_float.h
++++ b/src/gromacs/simd/impl_x86_avx_256/impl_x86_avx_256_util_float.h
+@@ -484,7 +484,11 @@
+ SimdFloat * v2,
+ SimdFloat * v3)
+ {
+- GMX_ALIGNED(int, GMX_SIMD_FLOAT_WIDTH) offset[GMX_SIMD_FLOAT_WIDTH];
++ std::int32_t unalignedMem[GMX_SIMD_FLOAT_WIDTH*2];
++ // We cannot use simdAlign(), since SimdFInt32 might not be identical to SimdInt32
++ std::int32_t * offset = reinterpret_cast<std::int32_t *>(reinterpret_cast<std::size_t>(unalignedMem+GMX_SIMD_FLOAT_WIDTH-1) &
++ ~(reinterpret_cast<std::size_t>(GMX_SIMD_FLOAT_WIDTH*sizeof(std::int32_t)-1)));
++
+ _mm256_store_si256( reinterpret_cast<__m256i *>(offset), simdoffset.simdInternal_);
+ gatherLoadTranspose<align>(base, offset, v0, v1, v2, v3);
+ }
+@@ -496,7 +500,11 @@
+ SimdFloat * v0,
+ SimdFloat * v1)
+ {
+- GMX_ALIGNED(int, GMX_SIMD_FLOAT_WIDTH) offset[GMX_SIMD_FLOAT_WIDTH];
++ std::int32_t unalignedMem[GMX_SIMD_FLOAT_WIDTH*2];
++ // We cannot use simdAlign(), since SimdFInt32 might not be identical to SimdInt32
++ std::int32_t * offset = reinterpret_cast<std::int32_t *>(reinterpret_cast<std::size_t>(unalignedMem+GMX_SIMD_FLOAT_WIDTH-1) &
++ ~(reinterpret_cast<std::size_t>(GMX_SIMD_FLOAT_WIDTH*sizeof(std::int32_t)-1)));
++
+ _mm256_store_si256( reinterpret_cast<__m256i *>(offset), simdoffset.simdInternal_);
+ gatherLoadTranspose<align>(base, offset, v0, v1);
+ }
+@@ -509,10 +517,14 @@
+ SimdFloat * v0,
+ SimdFloat * v1)
+ {
+- __m128 t1, t2, t3, t4, t5, t6, t7, t8;
+- __m256 tA, tB, tC, tD;
++ __m128 t1, t2, t3, t4, t5, t6, t7, t8;
++ __m256 tA, tB, tC, tD;
+
+- GMX_ALIGNED(int, GMX_SIMD_FLOAT_WIDTH) offset[GMX_SIMD_FLOAT_WIDTH];
++ std::int32_t unalignedMem[GMX_SIMD_FLOAT_WIDTH*2];
++ // We cannot use simdAlign(), since SimdFInt32 might not be identical to SimdInt32
++ std::int32_t * offset = reinterpret_cast<std::int32_t *>(reinterpret_cast<std::size_t>(unalignedMem+GMX_SIMD_FLOAT_WIDTH-1) &
++ ~(reinterpret_cast<std::size_t>(GMX_SIMD_FLOAT_WIDTH*sizeof(std::int32_t)-1)));
++
+ _mm256_store_si256( reinterpret_cast<__m256i *>(offset), simdoffset.simdInternal_);
+
+ t1 = _mm_loadl_pi(_mm_setzero_ps(), reinterpret_cast<const __m64 *>( base + align * offset[0] ) );
+diff --git a/src/gromacs/simd/impl_x86_avx_512/impl_x86_avx_512_util_double.h b/src/gromacs/simd/impl_x86_avx_512/impl_x86_avx_512_util_double.h
+index 3ff77c6..59b65b1 100644
+--- a/src/gromacs/simd/impl_x86_avx_512/impl_x86_avx_512_util_double.h
++++ b/src/gromacs/simd/impl_x86_avx_512/impl_x86_avx_512_util_double.h
+@@ -150,8 +150,11 @@
+ SimdDouble v1,
+ SimdDouble v2)
+ {
+- __m512d t[4], t5, t6, t7, t8;
+- GMX_ALIGNED(std::int64_t, 8) o[8];
++ __m512d t[4], t5, t6, t7, t8;
++ std::int64_t unalignedMem[8*2]; // 8*64-bit integers in AVX-512 SIMD register + padding
++ std::int64_t * o = reinterpret_cast<std::int64_t *>(reinterpret_cast<std::size_t>(unalignedMem+8-1) &
++ ~(reinterpret_cast<std::size_t>(8*sizeof(std::int64_t)-1)));
++
+ //TODO: should use fastMultiply
+ _mm512_store_epi64(o, _mm512_cvtepi32_epi64(_mm256_mullo_epi32(_mm256_load_si256((const __m256i*)(offset )), _mm256_set1_epi32(align))));
+ t5 = _mm512_unpacklo_pd(v0.simdInternal_, v1.simdInternal_);
+@@ -205,8 +208,11 @@
+ SimdDouble v1,
+ SimdDouble v2)
+ {
+- __m512d t[4], t5, t6, t7, t8;
+- GMX_ALIGNED(std::int64_t, 8) o[8];
++ __m512d t[4], t5, t6, t7, t8;
++ std::int64_t unalignedMem[8*2]; // 8*64-bit integers in AVX-512 SIMD register + padding
++ std::int64_t * o = reinterpret_cast<std::int64_t *>(reinterpret_cast<std::size_t>(unalignedMem+8-1) &
++ ~(reinterpret_cast<std::size_t>(8*sizeof(std::int64_t)-1)));
++
+ //TODO: should use fastMultiply
+ _mm512_store_epi64(o, _mm512_cvtepi32_epi64(_mm256_mullo_epi32(_mm256_load_si256((const __m256i*)(offset )), _mm256_set1_epi32(align))));
+ t5 = _mm512_unpacklo_pd(v0.simdInternal_, v1.simdInternal_);
+diff --git a/src/gromacs/simd/impl_x86_avx_512/impl_x86_avx_512_util_float.h b/src/gromacs/simd/impl_x86_avx_512/impl_x86_avx_512_util_float.h
+index 61548bb..6ab7d3a 100644
+--- a/src/gromacs/simd/impl_x86_avx_512/impl_x86_avx_512_util_float.h
++++ b/src/gromacs/simd/impl_x86_avx_512/impl_x86_avx_512_util_float.h
+@@ -152,9 +152,13 @@
+ SimdFloat v1,
+ SimdFloat v2)
+ {
+- __m512 t[4], t5, t6, t7, t8;
+- int i;
+- GMX_ALIGNED(std::int32_t, 16) o[16];
++ __m512 t[4], t5, t6, t7, t8;
++ int i;
++ std::int32_t unalignedMem[GMX_SIMD_FLOAT_WIDTH*2];
++ // We cannot use simdAlign(), since SimdFInt32 might not be identical to SimdInt32
++ std::int32_t * o = reinterpret_cast<std::int32_t *>(reinterpret_cast<std::size_t>(unalignedMem+GMX_SIMD_FLOAT_WIDTH-1) &
++ ~(reinterpret_cast<std::size_t>(GMX_SIMD_FLOAT_WIDTH*sizeof(std::int32_t)-1)));
++
+ store(o, fastMultiply<align>(simdLoad(offset, SimdFInt32Tag())));
+ if (align < 4)
+ {
+@@ -224,9 +228,13 @@
+ SimdFloat v1,
+ SimdFloat v2)
+ {
+- __m512 t[4], t5, t6, t7, t8;
+- int i;
+- GMX_ALIGNED(std::int32_t, 16) o[16];
++ __m512 t[4], t5, t6, t7, t8;
++ int i;
++ std::int32_t unalignedMem[GMX_SIMD_FLOAT_WIDTH*2];
++ // We cannot use simdAlign(), since SimdFInt32 might not be identical to SimdInt32
++ std::int32_t * o = reinterpret_cast<std::int32_t *>(reinterpret_cast<std::size_t>(unalignedMem+GMX_SIMD_FLOAT_WIDTH-1) &
++ ~(reinterpret_cast<std::size_t>(GMX_SIMD_FLOAT_WIDTH*sizeof(std::int32_t)-1)));
++
+ store(o, fastMultiply<align>(simdLoad(offset, SimdFInt32Tag())));
+ if (align < 4)
+ {
+diff --git a/src/gromacs/simd/impl_x86_mic/impl_x86_mic_util_double.h b/src/gromacs/simd/impl_x86_mic/impl_x86_mic_util_double.h
+index 62e0720..ddf6d96 100644
+--- a/src/gromacs/simd/impl_x86_mic/impl_x86_mic_util_double.h
++++ b/src/gromacs/simd/impl_x86_mic/impl_x86_mic_util_double.h
+@@ -235,9 +235,10 @@
+ SimdDouble v1,
+ SimdDouble v2)
+ {
+- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) rdata0[GMX_SIMD_DOUBLE_WIDTH];
+- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) rdata1[GMX_SIMD_DOUBLE_WIDTH];
+- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) rdata2[GMX_SIMD_DOUBLE_WIDTH];
++ double unalignedMem[GMX_SIMD_DOUBLE_WIDTH*4];
++ double * rdata0 = simdAlign(unalignedMem);
++ double * rdata1 = rdata0 + GMX_SIMD_DOUBLE_WIDTH;
++ double * rdata2 = rdata0 + GMX_SIMD_DOUBLE_WIDTH*2;
+
+ store(rdata0, v0);
+ store(rdata1, v1);
+@@ -259,9 +260,10 @@
+ SimdDouble v1,
+ SimdDouble v2)
+ {
+- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) rdata0[GMX_SIMD_DOUBLE_WIDTH];
+- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) rdata1[GMX_SIMD_DOUBLE_WIDTH];
+- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) rdata2[GMX_SIMD_DOUBLE_WIDTH];
++ double unalignedMem[GMX_SIMD_DOUBLE_WIDTH*4];
++ double * rdata0 = simdAlign(unalignedMem);
++ double * rdata1 = rdata0 + GMX_SIMD_DOUBLE_WIDTH;
++ double * rdata2 = rdata0 + GMX_SIMD_DOUBLE_WIDTH*2;
+
+ store(rdata0, v0);
+ store(rdata1, v1);
+diff --git a/src/gromacs/simd/impl_x86_mic/impl_x86_mic_util_float.h b/src/gromacs/simd/impl_x86_mic/impl_x86_mic_util_float.h
+index 48b2a9f..bd69f04 100644
+--- a/src/gromacs/simd/impl_x86_mic/impl_x86_mic_util_float.h
++++ b/src/gromacs/simd/impl_x86_mic/impl_x86_mic_util_float.h
+@@ -239,9 +239,10 @@
+ SimdFloat v1,
+ SimdFloat v2)
+ {
+- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) rdata0[GMX_SIMD_FLOAT_WIDTH];
+- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) rdata1[GMX_SIMD_FLOAT_WIDTH];
+- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) rdata2[GMX_SIMD_FLOAT_WIDTH];
++ float unalignedMem[GMX_SIMD_FLOAT_WIDTH*4];
++ float * rdata0 = simdAlign(unalignedMem);
++ float * rdata1 = rdata0 + GMX_SIMD_FLOAT_WIDTH;
++ float * rdata2 = rdata0 + GMX_SIMD_FLOAT_WIDTH*2;
+
+ store(rdata0, v0);
+ store(rdata1, v1);
+@@ -263,9 +264,10 @@
+ SimdFloat v1,
+ SimdFloat v2)
+ {
+- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) rdata0[GMX_SIMD_FLOAT_WIDTH];
+- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) rdata1[GMX_SIMD_FLOAT_WIDTH];
+- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) rdata2[GMX_SIMD_FLOAT_WIDTH];
++ float unalignedMem[GMX_SIMD_FLOAT_WIDTH*4];
++ float * rdata0 = simdAlign(unalignedMem);
++ float * rdata1 = rdata0 + GMX_SIMD_FLOAT_WIDTH;
++ float * rdata2 = rdata0 + GMX_SIMD_FLOAT_WIDTH*2;
+
+ store(rdata0, v0);
+ store(rdata1, v1);
+diff --git a/src/gromacs/simd/impl_x86_sse2/impl_x86_sse2_util_float.h b/src/gromacs/simd/impl_x86_sse2/impl_x86_sse2_util_float.h
+index 67e3047..27a06ec 100644
+--- a/src/gromacs/simd/impl_x86_sse2/impl_x86_sse2_util_float.h
++++ b/src/gromacs/simd/impl_x86_sse2/impl_x86_sse2_util_float.h
+@@ -1,7 +1,7 @@
+ /*
+ * This file is part of the GROMACS molecular simulation package.
+ *
+- * Copyright (c) 2014,2015, by the GROMACS development team, led by
++ * Copyright (c) 2014,2015,2017, by the GROMACS development team, led by
+ * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
+ * and including many others, as listed in the AUTHORS file in the
+ * top-level source directory and at http://www.gromacs.org.
+@@ -334,8 +334,12 @@
+ // This is likely because (a) the extract function is expensive, and (b)
+ // the alignment scaling can often be done as part of the load instruction
+ // (which is even cheaper than doing it in SIMD registers).
+- GMX_ALIGNED(std::int32_t, GMX_SIMD_FINT32_WIDTH) ioffset[GMX_SIMD_FINT32_WIDTH];
+- _mm_store_si128( (__m128i *)ioffset, offset.simdInternal_);
++ std::int32_t unalignedMem[GMX_SIMD_FLOAT_WIDTH*2];
++ // We cannot use simdAlign(), since SimdFInt32 might not be identical to SimdInt32
++ std::int32_t * ioffset = reinterpret_cast<std::int32_t *>(reinterpret_cast<std::size_t>(unalignedMem+GMX_SIMD_FLOAT_WIDTH-1) &
++ ~(reinterpret_cast<std::size_t>(GMX_SIMD_FLOAT_WIDTH*sizeof(std::int32_t)-1)));
++
++ _mm_store_si128(reinterpret_cast<__m128i *>(ioffset), offset.simdInternal_);
+ gatherLoadTranspose<align>(base, ioffset, v0, v1, v2, v3);
+ }
+
+@@ -351,8 +355,12 @@
+ // This is likely because (a) the extract function is expensive, and (b)
+ // the alignment scaling can often be done as part of the load instruction
+ // (which is even cheaper than doing it in SIMD registers).
+- GMX_ALIGNED(std::int32_t, GMX_SIMD_FINT32_WIDTH) ioffset[GMX_SIMD_FINT32_WIDTH];
+- _mm_store_si128( (__m128i *)ioffset, offset.simdInternal_);
++ std::int32_t unalignedMem[GMX_SIMD_FLOAT_WIDTH*2];
++ // We cannot use simdAlign(), since SimdFInt32 might not be identical to SimdInt32
++ std::int32_t * ioffset = reinterpret_cast<std::int32_t *>(reinterpret_cast<std::size_t>(unalignedMem+GMX_SIMD_FLOAT_WIDTH-1) &
++ ~(reinterpret_cast<std::size_t>(GMX_SIMD_FLOAT_WIDTH*sizeof(std::int32_t)-1)));
++
++ _mm_store_si128(reinterpret_cast<__m128i *>(ioffset), offset.simdInternal_);
+ gatherLoadTranspose<align>(base, ioffset, v0, v1);
+ }
+
+@@ -370,8 +378,12 @@
+ // This is likely because (a) the extract function is expensive, and (b)
+ // the alignment scaling can often be done as part of the load instruction
+ // (which is even cheaper than doing it in SIMD registers).
+- GMX_ALIGNED(std::int32_t, GMX_SIMD_FINT32_WIDTH) ioffset[GMX_SIMD_FINT32_WIDTH];
+- _mm_store_si128( (__m128i *)ioffset, offset.simdInternal_);
++ std::int32_t unalignedMem[GMX_SIMD_FLOAT_WIDTH*2];
++ // We cannot use simdAlign(), since SimdFInt32 might not be identical to SimdInt32
++ std::int32_t * ioffset = reinterpret_cast<std::int32_t *>(reinterpret_cast<std::size_t>(unalignedMem+GMX_SIMD_FLOAT_WIDTH-1) &
++ ~(reinterpret_cast<std::size_t>(GMX_SIMD_FLOAT_WIDTH*sizeof(std::int32_t)-1)));
++
++ _mm_store_si128(reinterpret_cast<__m128i *>(ioffset), offset.simdInternal_);
+ gatherLoadTranspose<align>(base, ioffset, v0, v1);
+ }
+
+diff --git a/src/gromacs/simd/simd.h b/src/gromacs/simd/simd.h
+index 673cfa3..d40ac87 100644
+--- a/src/gromacs/simd/simd.h
++++ b/src/gromacs/simd/simd.h
+@@ -220,29 +220,6 @@
+ namespace gmx
+ {
+
+-template<class T, size_t N>
+-struct AlignedArray;
+-
+-#if GMX_SIMD_HAVE_FLOAT
+-/*! \libinternal \brief Identical to std::array with GMX_SIMD_FLOAT_WIDTH alignment.
+- * Should not be deleted through base pointer (destructor is non-virtual).
+- */
+-template<size_t N>
+-struct alignas(GMX_SIMD_FLOAT_WIDTH*sizeof(float))AlignedArray<float, N> : public std::array<float, N>
+-{
+-};
+-#endif
+-
+-#if GMX_SIMD_HAVE_DOUBLE
+-/*! \libinternal \brief Identical to std::array with GMX_SIMD_DOUBLE_WIDTH alignment.
+- * Should not be deleted through base pointer (destructor is non-virtual).
+- */
+-template<size_t N>
+-struct alignas(GMX_SIMD_DOUBLE_WIDTH*sizeof(double))AlignedArray<double, N> : public std::array<double, N>
+-{
+-};
+-#endif
+-
+ #if GMX_SIMD_HAVE_REAL
+
+ /*! \name SIMD data types
+@@ -398,6 +375,100 @@
+
+ //! \} end of name-group describing SIMD data types
+
++/*! \name SIMD memory alignment operations
++ * \{
++ */
++
++/*! \brief
++ * Align a pointer for usage with SIMD instructions.
++ *
++ * The C++ standard does not require compilers to support alignas() with
++ * over-alignments larger than the size of native data types.
++ * Thus, there is no portable way of directly defining variables on the
++ * stack with alignment large enough to guarantee it will work with SIMD
++ * aligned load/store instructions.
++ *
++ * Instead, you should declare an array with enough extra space so we can create
++ * an aligned pointer inside the array. For instance, if you use real and
++ * need an array corresponding to the SIMD width, you should make the size of
++ * the array GMX_SIMD_REAL_WIDTH*2, and then use this routine to derive an
++ * aligned pointer to at least GMX_SIMD_REAL_WIDTH elements inside that array.
++ *
++ * \param p Pointer to memory, allocate with at least enough extra elements
++ * to correspond to the SIMD data type size.
++ *
++ * \return Aligned pointer (>=p) suitable for loading/storing aligned SIMD data.
++ * If no SIMD data type is available we do not know the register width,
++ * and will return the original (unaligned) pointer instead.
++ *
++ * \note For std::int32_t pointers we always assume the storage is for the
++ * SimdInt32 type rather than the specific float/double types, since
++ * we cannot determine it automatically from the argument type.
++ */
++template <class T>
++static gmx_inline T *
++simdAlign(T *p)
++{
++ static_assert(std::is_same<T, float>::value || std::is_same<T, double>::value || std::is_same<T, std::int32_t>::value, "Illegal type for simdAlign");
++
++ if (std::is_same<T, float>::value)
++ {
++#if GMX_SIMD_HAVE_FLOAT
++ return reinterpret_cast<T *>(reinterpret_cast<std::size_t>(p+GMX_SIMD_FLOAT_WIDTH-1) &
++ ~(reinterpret_cast<std::size_t>(GMX_SIMD_FLOAT_WIDTH*sizeof(float)-1)));
++#else
++ return p;
++#endif
++ }
++ else if (std::is_same<T, double>::value)
++ {
++#if GMX_SIMD_HAVE_DOUBLE
++ return reinterpret_cast<T *>(reinterpret_cast<std::size_t>(p+GMX_SIMD_DOUBLE_WIDTH-1) &
++ ~(reinterpret_cast<std::size_t>(GMX_SIMD_DOUBLE_WIDTH*sizeof(double)-1)));
++#else
++ return p;
++#endif
++ }
++ else
++ {
++ // If we get here, the only possible remaining type allowed by the static_assert is std::int_32
++#if GMX_SIMD_HAVE_REAL
++ return reinterpret_cast<T *>(reinterpret_cast<std::size_t>(p+GMX_SIMD_REAL_WIDTH-1) &
++ ~(reinterpret_cast<std::size_t>(GMX_SIMD_REAL_WIDTH*sizeof(std::int32_t)-1)));
++#else
++ return p;
++#endif
++ }
++}
++
++/*! \brief
++ * Align a pointer for usage with SIMD4 instructions.
++ *
++ * This is similar to simdAlign, but for the SIMD4 data typ.e
++ *
++ * \param p Pointer to memory, allocate with at least enough extra elements
++ * to correspond to the SIMD4 data type size.
++ *
++ * \return Aligned pointer (>=p) suitable for loading/storing aligned SIMD4 data.
++ */
++template <class T>
++static gmx_inline T *
++simd4Align(T *p)
++{
++ static_assert(std::is_same<T, float>::value || std::is_same<T, double>::value, "Illegal type for simd4Align");
++
++#if GMX_SIMD4_HAVE_FLOAT || GMX_SIMD4_HAVE_DOUBLE
++ return reinterpret_cast<T *>(reinterpret_cast<std::size_t>(p+GMX_SIMD4_WIDTH-1) &
++ ~(reinterpret_cast<std::size_t>(GMX_SIMD4_WIDTH*sizeof(T)-1)));
++#else
++ return p;
++#endif
++}
++
++
++//! \} end of name-group describing SIMD memory alignment operations
++
++
+ /*! \name High-level SIMD proxy objects to disambiguate load/set operations
+ * \{
+ */
+@@ -487,13 +558,6 @@
+ return *m;
+ }
+
+-template <typename T, size_t N>
+-static inline T gmx_simdcall
+-load(const AlignedArray<typename internal::SimdTraits<T>::type, N> &m)
+-{
+- return simdLoad(m.data(), typename internal::SimdTraits<T>::tag());
+-}
+-
+ /*! \brief Load function that returns SIMD or scalar based on template argument
+ *
+ * \tparam T Type to load (type is always mandatory)
+@@ -512,13 +576,6 @@
+ loadU(const typename std::enable_if<std::is_arithmetic<T>::value, T>::type *m)
+ {
+ return *m;
+-}
+-
+-template <typename T, size_t N>
+-static inline T gmx_simdcall
+-loadU(const AlignedArray<typename internal::SimdTraits<T>::type, N> &m)
+-{
+- return simdLoadU(m.data(), typename internal::SimdTraits<T>::tag());
+ }
+
+ class SimdSetZeroProxyInternal;
+diff --git a/src/gromacs/simd/simd_math.h b/src/gromacs/simd/simd_math.h
+index ad51957..feda8b8 100644
+--- a/src/gromacs/simd/simd_math.h
++++ b/src/gromacs/simd/simd_math.h
+@@ -742,7 +742,9 @@
+ const SimdFloat sieve(SimdFloat(-5.965323564e+29f) | SimdFloat(7.05044434e-30f));
+ #else
+ const int isieve = 0xFFFFF000;
+- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) mem[GMX_SIMD_FLOAT_WIDTH];
++
++ float unalignedMem[GMX_SIMD_FLOAT_WIDTH*2];
++ float * mem = simdAlign(unalignedMem);
+
+ union {
+ float f; int i;
+diff --git a/src/gromacs/simd/tests/bootstrap_loadstore.cpp b/src/gromacs/simd/tests/bootstrap_loadstore.cpp
+index 5bbdb1d..166a7c7 100644
+--- a/src/gromacs/simd/tests/bootstrap_loadstore.cpp
++++ b/src/gromacs/simd/tests/bootstrap_loadstore.cpp
+@@ -92,11 +92,14 @@
+ * to test we are not polluting memory there either. Sum=4*simdWidth.
+ */
+ #if GMX_SIMD4_WIDTH > GMX_SIMD_REAL_WIDTH
+- GMX_ALIGNED(T, GMX_SIMD4_WIDTH) src[simdWidth*4];
+- GMX_ALIGNED(T, GMX_SIMD4_WIDTH) dst[simdWidth*4];
++ T unalignedMem[GMX_SIMD4_WIDTH*9];
++ T * src = reinterpret_cast<T *>(reinterpret_cast<std::size_t>(unalignedMem+GMX_SIMD4_WIDTH-1) &
++ ~(reinterpret_cast<std::size_t>(GMX_SIMD4_WIDTH*sizeof(T)-1)));
++ T * dst = src + GMX_SIMD4_WIDTH*4;
+ #else
+- GMX_ALIGNED(T, GMX_SIMD_REAL_WIDTH) src[simdWidth*4];
+- GMX_ALIGNED(T, GMX_SIMD_REAL_WIDTH) dst[simdWidth*4];
++ T unalignedMem[GMX_SIMD_REAL_WIDTH*9];
++ T * src = simdAlign(unalignedMem);
++ T * dst = src + GMX_SIMD_REAL_WIDTH*4;
+ #endif
+
+ // Make sure we have memory to check both before and after the test pointers
+diff --git a/src/gromacs/simd/tests/simd.cpp b/src/gromacs/simd/tests/simd.cpp
+index d07621b..e292946 100644
+--- a/src/gromacs/simd/tests/simd.cpp
++++ b/src/gromacs/simd/tests/simd.cpp
+@@ -124,7 +124,8 @@
+ ::std::vector<real>
+ simdReal2Vector(const SimdReal simd)
+ {
+- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) mem[GMX_SIMD_REAL_WIDTH];
++ real unalignedMem[GMX_SIMD_REAL_WIDTH*2];
++ real * mem = simdAlign(unalignedMem);
+
+ store(mem, simd);
+ std::vector<real> v(mem, mem+GMX_SIMD_REAL_WIDTH);
+@@ -135,7 +136,8 @@
+ SimdReal
+ vector2SimdReal(const std::vector<real> &v)
+ {
+- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) mem[GMX_SIMD_REAL_WIDTH];
++ real unalignedMem[GMX_SIMD_REAL_WIDTH*2];
++ real * mem = simdAlign(unalignedMem);
+
+ for (int i = 0; i < GMX_SIMD_REAL_WIDTH; i++)
+ {
+@@ -182,7 +184,8 @@
+ std::vector<int>
+ simdInt2Vector(const SimdInt32 simd)
+ {
+- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) mem[GMX_SIMD_REAL_WIDTH];
++ std::int32_t unalignedMem[GMX_SIMD_REAL_WIDTH*2];
++ std::int32_t * mem = simdAlign(unalignedMem);
+
+ store(mem, simd);
+ std::vector<int> v(mem, mem+GMX_SIMD_REAL_WIDTH);
+@@ -193,7 +196,8 @@
+ SimdInt32
+ vector2SimdInt(const std::vector<int> &v)
+ {
+- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) mem[GMX_SIMD_REAL_WIDTH];
++ std::int32_t unalignedMem[GMX_SIMD_REAL_WIDTH*2];
++ std::int32_t * mem = simdAlign(unalignedMem);
+
+ for (int i = 0; i < GMX_SIMD_REAL_WIDTH; i++)
+ {
+@@ -230,6 +234,59 @@
+ return compareVectorEq(refExpr, tstExpr, simdInt2Vector(ref), simdInt2Vector(tst));
+ }
+
++TEST(SimdTest, Align)
++{
++ // real is always available
++ real mem1[GMX_SIMD_REAL_WIDTH*2];
++ real * r1 = simdAlign(mem1);
++
++ std::uint64_t addr1 = reinterpret_cast<std::uint64_t>(r1);
++ EXPECT_EQ(0, addr1 % (GMX_SIMD_REAL_WIDTH*sizeof(real)));
++
++ // Try another offset (either mem1 or mem1+1 must be unaligned)
++ r1 = simdAlign(mem1+1);
++ addr1 = reinterpret_cast<std::uint64_t>(r1);
++ EXPECT_EQ(0, addr1 % (GMX_SIMD_REAL_WIDTH*sizeof(real)));
++
++ // int is always available
++ std::int32_t mem2[GMX_SIMD_REAL_WIDTH*2];
++ std::int32_t * r2 = simdAlign(mem2);
++
++ std::uint64_t addr2 = reinterpret_cast<std::uint64_t>(r2);
++ EXPECT_EQ(0, addr2 % (GMX_SIMD_REAL_WIDTH*sizeof(std::int32_t)));
++
++ // another offset
++ r2 = simdAlign(mem2+1);
++ addr2 = reinterpret_cast<std::uint64_t>(r2);
++ EXPECT_EQ(0, addr2 % (GMX_SIMD_REAL_WIDTH*sizeof(std::int32_t)));
++
++#if GMX_SIMD_HAVE_FLOAT
++ float mem3[GMX_SIMD_FLOAT_WIDTH*2];
++ float * r3 = simdAlign(mem3);
++
++ std::uint64_t addr3 = reinterpret_cast<std::uint64_t>(r3);
++ EXPECT_EQ(0, addr3 % (GMX_SIMD_FLOAT_WIDTH*sizeof(float)));
++
++ // another offset
++ r3 = simdAlign(mem3+1);
++ addr3 = reinterpret_cast<std::uint64_t>(r3);
++ EXPECT_EQ(0, addr3 % (GMX_SIMD_FLOAT_WIDTH*sizeof(float)));
++#endif
++
++#if GMX_SIMD_HAVE_DOUBLE
++ double mem4[GMX_SIMD_DOUBLE_WIDTH*2];
++ double * r4 = simdAlign(mem4);
++
++ std::uint64_t addr4 = reinterpret_cast<std::uint64_t>(r4);
++ EXPECT_EQ(0, addr4 % (GMX_SIMD_DOUBLE_WIDTH*sizeof(double)));
++
++ // another offset
++ r4 = simdAlign(mem4+1);
++ addr4 = reinterpret_cast<std::uint64_t>(r4);
++ EXPECT_EQ(0, addr4 % (GMX_SIMD_DOUBLE_WIDTH*sizeof(double)));
++#endif
++}
++
+ #endif // GMX_SIMD_HAVE_REAL
+
+ /*! \} */
+diff --git a/src/gromacs/simd/tests/simd4.cpp b/src/gromacs/simd/tests/simd4.cpp
+index edb66ba..46c7951 100644
+--- a/src/gromacs/simd/tests/simd4.cpp
++++ b/src/gromacs/simd/tests/simd4.cpp
+@@ -86,7 +86,9 @@
+ ::std::vector<real>
+ simd4Real2Vector(const Simd4Real simd4)
+ {
+- GMX_ALIGNED(real, GMX_SIMD4_WIDTH) mem[GMX_SIMD4_WIDTH];
++ real unalignedMem[GMX_SIMD4_WIDTH*2];
++ real * mem = reinterpret_cast<real *>(reinterpret_cast<std::size_t>(unalignedMem+GMX_SIMD4_WIDTH-1) &
++ ~(reinterpret_cast<std::size_t>(GMX_SIMD4_WIDTH*sizeof(real)-1)));
+
+ store4(mem, simd4);
+ std::vector<real> v(mem, mem+GMX_SIMD4_WIDTH);
+@@ -97,7 +99,9 @@
+ Simd4Real
+ vector2Simd4Real(const std::vector<real> &v)
+ {
+- GMX_ALIGNED(real, GMX_SIMD4_WIDTH) mem[GMX_SIMD4_WIDTH];
++ real unalignedMem[GMX_SIMD4_WIDTH*2];
++ real * mem = reinterpret_cast<real *>(reinterpret_cast<std::size_t>(unalignedMem+GMX_SIMD4_WIDTH-1) &
++ ~(reinterpret_cast<std::size_t>(GMX_SIMD4_WIDTH*sizeof(real)-1)));
+
+ for (int i = 0; i < GMX_SIMD4_WIDTH; i++)
+ {
+@@ -141,6 +145,35 @@
+ return compareVectorEq(refExpr, tstExpr, simd4Real2Vector(ref), simd4Real2Vector(tst));
+ }
+
++TEST(Simd4Test, Align)
++{
++ #if GMX_SIMD4_HAVE_FLOAT
++ float mem1[GMX_SIMD4_WIDTH*2];
++ float * r1 = simd4Align(mem1);
++
++ std::uint64_t addr1 = reinterpret_cast<std::uint64_t>(r1);
++ EXPECT_EQ(0, addr1 % (GMX_SIMD4_WIDTH*sizeof(float)));
++
++ // another offset
++ r1 = simd4Align(mem1+1);
++ addr1 = reinterpret_cast<std::uint64_t>(r1);
++ EXPECT_EQ(0, addr1 % (GMX_SIMD4_WIDTH*sizeof(float)));
++#endif
++
++#if GMX_SIMD4_HAVE_DOUBLE
++ double mem2[GMX_SIMD4_WIDTH*2];
++ double * r2 = simd4Align(mem2);
++
++ std::uint64_t addr2 = reinterpret_cast<std::uint64_t>(r2);
++ EXPECT_EQ(0, addr2 % (GMX_SIMD4_WIDTH*sizeof(double)));
++
++ // another offset
++ r2 = simd4Align(mem2+1);
++ addr2 = reinterpret_cast<std::uint64_t>(r2);
++ EXPECT_EQ(0, addr2 % (GMX_SIMD4_WIDTH*sizeof(double)));
++#endif
++}
++
+ #endif // GMX_SIMD4_HAVE_REAL
+
+ /*! \} */
+diff --git a/src/gromacs/simd/tests/simd4_floatingpoint.cpp b/src/gromacs/simd/tests/simd4_floatingpoint.cpp
+index b2300ec8..2e1951d 100644
+--- a/src/gromacs/simd/tests/simd4_floatingpoint.cpp
++++ b/src/gromacs/simd/tests/simd4_floatingpoint.cpp
+@@ -312,7 +312,9 @@
+ Simd4Real v0, v1, v2, v3;
+ int i;
+ // aligned pointers
+- GMX_ALIGNED(real, GMX_SIMD4_WIDTH) p0[4*GMX_SIMD4_WIDTH];
++ real unalignedMem[GMX_SIMD4_WIDTH*5];
++ real * p0 = reinterpret_cast<real *>(reinterpret_cast<std::size_t>(unalignedMem+GMX_SIMD4_WIDTH-1) &
++ ~(reinterpret_cast<std::size_t>(GMX_SIMD4_WIDTH*sizeof(real)-1)));
+ real * p1 = p0 + GMX_SIMD4_WIDTH;
+ real * p2 = p0 + 2*GMX_SIMD4_WIDTH;
+ real * p3 = p0 + 3*GMX_SIMD4_WIDTH;
+diff --git a/src/gromacs/simd/tests/simd_floatingpoint.cpp b/src/gromacs/simd/tests/simd_floatingpoint.cpp
+index 14fbe0d..90a042b 100644
+--- a/src/gromacs/simd/tests/simd_floatingpoint.cpp
++++ b/src/gromacs/simd/tests/simd_floatingpoint.cpp
+@@ -453,8 +453,13 @@
+ #if GMX_SIMD_HAVE_FLOAT && GMX_SIMD_HAVE_DOUBLE
+ TEST_F(SimdFloatingpointTest, cvtFloat2Double)
+ {
+- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) f[GMX_SIMD_FLOAT_WIDTH];
+- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) d[GMX_SIMD_FLOAT_WIDTH]; // Yes, double array length should be same as float
++ float unalignedMemF[GMX_SIMD_FLOAT_WIDTH*2];
++ float * f = simdAlign(unalignedMemF);
++ // Create an aligned double array with the same length as the float SIMD
++ // Thus, all constants on the next two lines correctly refer to GMX_SIMD_FLOAT_WIDTH.
++ double unalignedMemD[GMX_SIMD_FLOAT_WIDTH*2];
++ double * d = reinterpret_cast<double *>(reinterpret_cast<std::size_t>(unalignedMemD+GMX_SIMD_DOUBLE_WIDTH-1) &
++ ~(reinterpret_cast<std::size_t>(GMX_SIMD_DOUBLE_WIDTH*sizeof(double)-1)));
+
+ int i;
+ SimdFloat vf;
+@@ -488,8 +493,13 @@
+
+ TEST_F(SimdFloatingpointTest, cvtDouble2Float)
+ {
+- GMX_ALIGNED(float, GMX_SIMD_FLOAT_WIDTH) f[GMX_SIMD_FLOAT_WIDTH];
+- GMX_ALIGNED(double, GMX_SIMD_DOUBLE_WIDTH) d[GMX_SIMD_FLOAT_WIDTH]; // Yes, double array length should be same as float
++ float unalignedMemF[GMX_SIMD_FLOAT_WIDTH*2];
++ float * f = simdAlign(unalignedMemF);
++ // Create an aligned double array with the same length as the float SIMD
++ double unalignedMemD[GMX_SIMD_FLOAT_WIDTH*2];
++ double * d = reinterpret_cast<double *>(reinterpret_cast<std::size_t>(unalignedMemD+GMX_SIMD_DOUBLE_WIDTH-1) &
++ ~(reinterpret_cast<std::size_t>(GMX_SIMD_DOUBLE_WIDTH*sizeof(double)-1)));
++
+ int i;
+ SimdFloat vf;
+ SimdDouble vd0;
+diff --git a/src/gromacs/simd/tests/simd_integer.cpp b/src/gromacs/simd/tests/simd_integer.cpp
+index c675f8b..086f30f 100644
+--- a/src/gromacs/simd/tests/simd_integer.cpp
++++ b/src/gromacs/simd/tests/simd_integer.cpp
+@@ -131,8 +131,10 @@
+ #if GMX_SIMD_HAVE_INT32_EXTRACT
+ TEST_F(SimdIntegerTest, extract)
+ {
+- GMX_ALIGNED(int, GMX_SIMD_REAL_WIDTH) idata[GMX_SIMD_REAL_WIDTH];
+- SimdInt32 simd;
++ std::int32_t unalignedMem[GMX_SIMD_REAL_WIDTH*2];
++ std::int32_t * idata = simdAlign(unalignedMem);
++
++ SimdInt32 simd;
+
+ for (int i = 0; i < GMX_SIMD_REAL_WIDTH; i++)
+ {
+diff --git a/src/gromacs/tables/tests/splinetable.cpp b/src/gromacs/tables/tests/splinetable.cpp
+index ee15b45..3c8f05f 100644
+--- a/src/gromacs/tables/tests/splinetable.cpp
++++ b/src/gromacs/tables/tests/splinetable.cpp
+@@ -679,7 +679,8 @@
+ real refDer = lj12Derivative(x);
+ SimdReal tstFunc, tstDer;
+ real funcErr, derErr;
+- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) alignedMem[GMX_SIMD_REAL_WIDTH];
++ real unalignedMem[GMX_SIMD_REAL_WIDTH*2];
++ real * alignedMem = simdAlign(unalignedMem);
+
+ table.evaluateFunctionAndDerivative(SimdReal(x), &tstFunc, &tstDer);
+
+@@ -712,7 +713,8 @@
+ SimdReal tstFunc1, tstDer1;
+ real funcErr0, derErr0;
+ real funcErr1, derErr1;
+- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) alignedMem[GMX_SIMD_REAL_WIDTH];
++ real unalignedMem[GMX_SIMD_REAL_WIDTH*2];
++ real * alignedMem = simdAlign(unalignedMem);
+
+ table.evaluateFunctionAndDerivative(SimdReal(x), &tstFunc0, &tstDer0, &tstFunc1, &tstDer1);
+
+@@ -742,7 +744,8 @@
+ TypeParam table( {{"LJ12", lj12Function, lj12Derivative}}, range);
+ SimdReal x, func, der;
+
+- AlignedArray<real, GMX_SIMD_REAL_WIDTH> alignedMem;
++ real unalignedMem[GMX_SIMD_REAL_WIDTH*2];
++ real * alignedMem = simdAlign(unalignedMem);
+
+ alignedMem.fill(range.first);
+ // Make position 1 incorrect if width>=2, otherwise position 0
+@@ -765,7 +768,8 @@
+ TypeParam table( {{"LJ12", lj12Function, lj12Derivative}}, range);
+ SimdReal x, func, der;
+
+- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) alignedMem[GMX_SIMD_REAL_WIDTH];
++ real unalignedMem[GMX_SIMD_REAL_WIDTH*2];
++ real * alignedMem = simdAlign(unalignedMem);
+
+ // Test all values between 0 and range.second
+ for (std::size_t i = 0; i < GMX_SIMD_REAL_WIDTH; i++)
+diff --git a/src/gromacs/utility/basedefinitions.h b/src/gromacs/utility/basedefinitions.h
+index 1c3e36c..a1638ef 100644
+--- a/src/gromacs/utility/basedefinitions.h
++++ b/src/gromacs/utility/basedefinitions.h
+@@ -226,24 +226,6 @@
+ #endif
+ #endif
+
+-/*! \def GMX_ALIGNED(type, alignment)
+- * \brief
+- * Declare variable with data alignment
+- *
+- * \param[in] type Type of variable
+- * \param[in] alignment Alignment in multiples of type
+- *
+- * Typical usage:
+- * \code
+- GMX_ALIGNED(real, GMX_SIMD_REAL_WIDTH) buf[...];
+- \endcode
+- */
+-
+-// We rely on C++11. This will for instance work for MSVC2015 and later.
+-// If you get an error here, find out what attribute to use to get your compiler to align
+-// data properly and add it as a case.
+-#define GMX_ALIGNED(type, alignment) alignas(alignment*sizeof(type)) type
+-
+ /*! \brief
+ * Macro to explicitly ignore an unused value.
+ *
+diff --git a/src/gromacs/utility/tests/CMakeLists.txt b/src/gromacs/utility/tests/CMakeLists.txt
+index 57cf2a1..74ed8f4 100644
+--- a/src/gromacs/utility/tests/CMakeLists.txt
++++ b/src/gromacs/utility/tests/CMakeLists.txt
+@@ -35,7 +35,6 @@
+ gmx_add_unit_test(UtilityUnitTests utility-test
+ alignedallocator.cpp
+ arrayref.cpp
+- basedefinitions.cpp
+ bitmask32.cpp bitmask64.cpp bitmask128.cpp
+ keyvaluetreeserializer.cpp
+ keyvaluetreetransform.cpp
+diff --git a/src/gromacs/utility/tests/basedefinitions.cpp b/src/gromacs/utility/tests/basedefinitions.cpp
+deleted file mode 100644
+index a0223e1..0000000
+--- a/src/gromacs/utility/tests/basedefinitions.cpp
++++ /dev/null
+@@ -1,82 +0,0 @@
+-/*
+- * This file is part of the GROMACS molecular simulation package.
+- *
+- * Copyright (c) 2015, by the GROMACS development team, led by
+- * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
+- * and including many others, as listed in the AUTHORS file in the
+- * top-level source directory and at http://www.gromacs.org.
+- *
+- * GROMACS is free software; you can redistribute it and/or
+- * modify it under the terms of the GNU Lesser General Public License
+- * as published by the Free Software Foundation; either version 2.1
+- * of the License, or (at your option) any later version.
+- *
+- * GROMACS is distributed in the hope that it will be useful,
+- * but WITHOUT ANY WARRANTY; without even the implied warranty of
+- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+- * Lesser General Public License for more details.
+- *
+- * You should have received a copy of the GNU Lesser General Public
+- * License along with GROMACS; if not, see
+- * http://www.gnu.org/licenses, or write to the Free Software Foundation,
+- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+- *
+- * If you want to redistribute modifications to GROMACS, please
+- * consider that scientific software is very special. Version
+- * control is crucial - bugs must be traceable. We will be happy to
+- * consider code for inclusion in the official distribution, but
+- * derived work must not be called official GROMACS. Details are found
+- * in the README & COPYING files - if they are missing, get the
+- * official version at http://www.gromacs.org.
+- *
+- * To help us fund GROMACS development, we humbly ask that you cite
+- * the research papers on the package. Check out http://www.gromacs.org.
+- */
+-/*! \internal \file
+- * \brief Tests for base definitions (only alignment attributes for now)
+- *
+- * \author Erik Lindahl <erik.lindahl(a)gmail.com>
+- * \ingroup module_utility
+- */
+-
+-#include "gmxpre.h"
+-
+-#include "gromacs/utility/basedefinitions.h"
+-
+-#include <cstdint>
+-
+-#include <gtest/gtest.h>
+-
+-#include "gromacs/utility/real.h"
+-
+-namespace gmx
+-{
+-
+-TEST(BasedefinitionsTest, GmxAlignedDeclaresAlignedVariable)
+-{
+- GMX_ALIGNED(real, 2) r1;
+- GMX_ALIGNED(real, 4) r2;
+- GMX_ALIGNED(real, 8) r3;
+-
+- std::uint64_t addr1 = reinterpret_cast<std::uint64_t>(&r1);
+- std::uint64_t addr2 = reinterpret_cast<std::uint64_t>(&r2);
+- std::uint64_t addr3 = reinterpret_cast<std::uint64_t>(&r3);
+-
+- EXPECT_EQ(0, addr1 % 2);
+- EXPECT_EQ(0, addr2 % 4);
+- EXPECT_EQ(0, addr3 % 8);
+-
+- GMX_ALIGNED(int, 2) i1;
+- GMX_ALIGNED(int, 4) i2;
+- GMX_ALIGNED(int, 8) i3;
+-
+- addr1 = reinterpret_cast<std::uint64_t>(&i1);
+- addr2 = reinterpret_cast<std::uint64_t>(&i2);
+- addr3 = reinterpret_cast<std::uint64_t>(&i3);
+-
+- EXPECT_EQ(0, addr1 % 2);
+- EXPECT_EQ(0, addr2 % 4);
+- EXPECT_EQ(0, addr3 % 8);
+-}
+-
+-}
diff --git a/gromacs-dssp-path.patch b/gromacs-dssp-path.patch
index a9b2d1c..d3abfca 100644
--- a/gromacs-dssp-path.patch
+++ b/gromacs-dssp-path.patch
@@ -1,6 +1,7 @@
-diff -up gromacs-a7093a73959458a1f4aa4e384104a5515a4f2863/src/gromacs/gmxana/gmx_do_dssp.cpp.dssp gromacs-a7093a73959458a1f4aa4e384104a5515a4f2863/src/gromacs/gmxana/gmx_do_dssp.cpp
---- gromacs-a7093a73959458a1f4aa4e384104a5515a4f2863/src/gromacs/gmxana/gmx_do_dssp.cpp.dssp 2016-02-23 22:23:54.000000000 +0100
-+++ gromacs-a7093a73959458a1f4aa4e384104a5515a4f2863/src/gromacs/gmxana/gmx_do_dssp.cpp 2016-02-24 11:06:12.982692034 +0100
+diff --git a/src/gromacs/gmxana/gmx_do_dssp.cpp b/src/gromacs/gmxana/gmx_do_dssp.cpp
+index a8aab1bc2..184592b7e 100644
+--- a/src/gromacs/gmxana/gmx_do_dssp.cpp
++++ b/src/gromacs/gmxana/gmx_do_dssp.cpp
@@ -445,7 +445,7 @@ int gmx_do_dssp(int argc, char *argv[])
"calling the dssp program. If you do not have the dssp program,",
"get it from http://swift.cmbi.ru.nl/gv/dssp. [THISMODULE] assumes ",
@@ -12,7 +13,7 @@ diff -up gromacs-a7093a73959458a1f4aa4e384104a5515a4f2863/src/gromacs/gmxana/gmx
"[TT]setenv DSSP /opt/dssp/bin/dssp[tt][PAR]",
@@ -590,7 +590,7 @@ int gmx_do_dssp(int argc, char *argv[])
- if ((dptr = getenv("DSSP")) == NULL)
+ if ((dptr = getenv("DSSP")) == nullptr)
{
- dptr = "/usr/local/bin/dssp";
+ dptr = "/usr/bin/mkdssp";
diff --git a/gromacs-issue-2366.patch b/gromacs-issue-2366.patch
new file mode 100644
index 0000000..7c08010
--- /dev/null
+++ b/gromacs-issue-2366.patch
@@ -0,0 +1,19 @@
+diff --git a/src/gromacs/hardware/tests/hardwaretopology.cpp b/src/gromacs/hardware/tests/hardwaretopology.cpp
+index ed7897b01..c31d4b9cd 100644
+--- a/src/gromacs/hardware/tests/hardwaretopology.cpp
++++ b/src/gromacs/hardware/tests/hardwaretopology.cpp
+@@ -185,12 +185,14 @@ TEST(HardwareTopologyTest, NumaCacheSelfconsistency)
+ }
+ }
+
++#ifndef __aarch64__
+ // Check cache. The hwloc cache detection is fragile and can report
+ // 0 for line size or associativity (=unknown), so we just check the size.
+ for (auto &c : hwTop.machine().caches)
+ {
+ EXPECT_GT(c.size, 0);
+ }
++#endif
+ }
+ }
+
diff --git a/gromacs.spec b/gromacs.spec
index 14ef91d..c9a4a28 100644
--- a/gromacs.spec
+++ b/gromacs.spec
@@ -1,12 +1,8 @@
%global git 0
%global commit d44d7d6bebdb7fa52090b744854d49f34099e044
%global shortcommit %(c=%{commit}; echo ${c:0:7})
-
-%ifnarch s390 s390x
-%global with_openmpi 1
-%else
-%global with_openmpi 0
-%endif
+%global _rcname beta3
+%global _rc -%%_rcname
%global with_opencl 1
# compilation of OpenCL support is failing only on ppc64le
@@ -39,8 +35,8 @@
%endif
Name: gromacs
-Version: 2016.4
-Release: 1%{?dist}
+Version: 2018
+Release: 0.1%{?_rcname}%{?dist}
Summary: Fast, Free and Flexible Molecular Dynamics
License: GPLv2+
URL: http://www.gromacs.org
@@ -56,13 +52,18 @@ BuildRequires: %{_bindir}/makeindex
BuildRequires: %{_bindir}/pdflatex
BuildRequires: python2-sphinx
%else
-Source0: ftp://ftp.gromacs.org/pub/gromacs/gromacs-%{version}.tar.gz
-Source1: ftp://ftp.gromacs.org/pub/manual/manual-%{version}.pdf
+Source0: ftp://ftp.gromacs.org/pub/gromacs/gromacs-%{version}%{?_rc}.tar.gz
+Source1: ftp://ftp.gromacs.org/pub/manual/manual-%{version}%{?_rc}.pdf
+Source2: http://gerrit.gromacs.org/download/regressiontests-%{version}%{?_rc}.tar.gz
%endif
Source6: gromacs-README.fedora
# fix path to packaged dssp
# https://bugzilla.redhat.com/show_bug.cgi?id=1203754
Patch0: gromacs-dssp-path.patch
+# https://redmine.gromacs.org/issues/2365
+Patch1: b7713bf.diff
+# enable some test on aarch64 - https://redmine.gromacs.org/issues/2366
+Patch2: gromacs-issue-2366.patch
# fix building documentation
Patch3: gromacs-sphinx-no-man.patch
BuildRequires: cmake
@@ -81,10 +82,6 @@ Recommends: gromacs-opencl = %{version}-%{release}
%endif
BuildRequires: tinyxml2-devel >= 2.1.0
BuildRequires: tng-devel
-%if 0%{?fedora}
-# To get rid of executable stacks
-BuildRequires: /usr/bin/execstack
-%endif
BuildRequires: bash-completion
%define compdir %(pkg-config --variable=completionsdir bash-completion)
%if "%{compdir}" == ""
@@ -197,7 +194,6 @@ and solid state physics.
This package contains libraries needed for operation of GROMACS.
-%if %{with_openmpi}
%package openmpi
Summary: GROMACS Open MPI binaries and libraries
Requires: gromacs-common = %{version}-%{release}
@@ -217,7 +213,6 @@ and solid state physics.
mdrun has been compiled with thread parallellization (for running on
a single node) and with Open MPI (for running on multiple nodes).
This package single and double precision binaries and libraries.
-%endif
%package mpich
@@ -246,7 +241,9 @@ This package single and double precision binaries and libraries.
%setup -q -n gromacs-%{commit}
%patch3 -p1 -b .sphinx-no-man
%else
-%setup -q
+%setup -q -a 2 -n gromacs-%{version}%{?_rc}
+%patch1 -p1
+%patch2 -p1
install -Dpm644 %{SOURCE1} ./serial/docs/manual/gromacs.pdf
%endif
%patch0 -p1 -b .dssp
@@ -256,11 +253,6 @@ rm -r src/external/{fftpack,tinyxml2,tng_io,lmfit}
mkdir -p {serial,mpich,openmpi}{,_d}
%build
-# Assembly kernels haven't got .note.GNU-stack sections
-# because of incompatibilies with Microsoft Assembler.
-# Add noexecstack to compiler flags
-
-export CFLAGS="%optflags -Wa,--noexecstack -fPIC"
export LDFLAGS="-L%{_libdir}/atlas"
# Default options, used for all compilations
@@ -284,7 +276,6 @@ export LDFLAGS="-L%{_libdir}/atlas"
%global double -DGMX_DOUBLE:BOOL=ON
%global mpi -DGMX_BUILD_MDRUN_ONLY:BOOL=ON -DGMX_MPI:BOOL=ON -DGMX_THREAD_MPI:BOOL=OFF -DGMX_DEFAULT_SUFFIX:BOOL=OFF -DBUILD_SHARED_LIBS:BOOL=OFF
-%if %{with_openmpi}
%{_openmpi_load}
for p in '' _d ; do
cd openmpi${p}
@@ -298,7 +289,6 @@ make VERBOSE=1 %{?_smp_mflags}
cd ..
done
%{_openmpi_unload}
-%endif
%{_mpich_load}
for p in '' _d ; do
@@ -316,8 +306,10 @@ done
for p in '' _d ; do
cd serial${p}
+cp -al ../regressiontests* tests/
%cmake \
%{defopts} \
+ -DREGRESSIONTEST_PATH=${PWD}/tests \
-DGMX_X11=ON \
$(test -n "$p" && echo %{double} || echo %{?single}) \
..
@@ -338,14 +330,12 @@ cd ..
%endif
%install
-%if %{with_openmpi}
%{_openmpi_load}
# Make install-mdrun target is broken, do install manually
for p in '' _d ; do
install -Dpm755 openmpi${p}/bin/mdrun${MPI_SUFFIX}${p} %{buildroot}$MPI_BIN/mdrun${MPI_SUFFIX}${p}
done
%{_openmpi_unload}
-%endif
%{_mpich_load}
# Make install-mdrun target is broken, do install manually
@@ -382,15 +372,6 @@ rm ./%{_bindir}/gmx-completion-${bin}.bash
done
rm ./%{_bindir}/gmx-completion.bash
-# Remove .la files
-find ./ -name *.la -delete
-
-%if 0%{?fedora}
-# Get rid of executable stacks
-find ./ -name *.so.* -exec execstack -c {} \;
-popd
-%endif
-
# Post install for libs. MPI packages don't need this.
%post libs -p /sbin/ldconfig
@@ -399,7 +380,6 @@ popd
%if 1
%check
-%if %{with_openmpi}
%{_openmpi_load}
for p in '' _d ; do
cd openmpi${p}
@@ -407,7 +387,6 @@ for p in '' _d ; do
cd ..
done
%{_openmpi_unload}
-%endif
%{_mpich_load}
for p in '' _d ; do
cd mpich${p}
@@ -460,15 +439,22 @@ done
%{_datadir}/%{name}/template
%{_datadir}/cmake/gromacs*
-%if %{with_openmpi}
%files openmpi
%{_libdir}/openmpi/bin/mdrun_openmpi*
-%endif
%files mpich
%{_libdir}/mpich/bin/mdrun_mpich*
%changelog
+* Mon Dec 25 2017 Christoph Junghans <junghans(a)votca.org> - 2018-0.1beta3
+- Update to 2018-beta3 for testing
+- Disable HardwareTopologyTest.NumaCacheSelfconsistency test on aarch64
+- Run regressiontests for serial build (don't work for mpi build)
+- Clean up
+ - Drop execstack as everything is intristic now
+ - No la .files anymore, so drop find -delete
+ - OpenMPI was ported to s390, so enable it everywhere
+
* Fri Sep 15 2017 Christoph Junghans <junghans(a)votca.org> - 2016.4-1
- Update to 2016.4
diff --git a/sources b/sources
index cb70e6f..6836c61 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,3 @@
-SHA512 (gromacs-2016.4.tar.gz) = 69661d2a7a8a5259be277de35e2baa4b688d1f7bef225fc7d733a9b00c6ee135dcbad517c7c9f751121647c2fbd085f2c9cdf22dbd941c7ebc5d3b09e7e08f1f
-SHA512 (manual-2016.4.pdf) = f2a8902aad0f8b8fc402cfbc0efe1a9968096c456630c338ab0f10520c35de0064690d7b2049efc945cf6a15e1eb073253565fad40a83e1bf82b273bce182c36
+SHA512 (manual-2018-beta3.pdf) = 0fc64b99bca1e329c863bb18b62ab4e4ab842470992d518481abfecfbafde4ea9339d788b9ffd33c28c32331019466b6f1e7864a27b8d7120659453b99f550d9
+SHA512 (regressiontests-2018-beta3.tar.gz) = d3d584a21b4207de343a4f3905e84d43bf566844fd3ffaebfd755509d1cc2869308465c403acdeece97c5845fdfab06c3ba0bf0863bd62069ba680249b0c3ee3
+SHA512 (gromacs-2018-beta3.tar.gz) = 384b4c400dfbf4d2903c09175665e1d70c04f2d0101c06fe9c8896731e9a7824826fd1640cbc7aaf9e69bf17037528539f359e400036a31204bd554b2faf0c2d
6 years, 3 months
Architecture specific change in rpms/glibc.git
by githook-noreply@fedoraproject.org
The package rpms/glibc.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/glibc.git/commit/?id=cc5db6cdfde3....
Change:
+%ifarch %{pie_arches}
Thanks.
Full change:
============
commit fac98a7443549ba70c22ce04773d9f075706a731
Author: Florian Weimer <fweimer(a)redhat.com>
Date: Fri Jan 19 16:56:41 2018 +0100
Auto-sync with upstream branch master
Upstream commit: 4612268a0ad8e3409d8ce2314dd2dd8ee0af5269
- Correct the list of static PIE architectures
- glibc_post_upgrade: Remove process restart logic
- glibc_post_upgrade: Integrate into the build process
- glibc_post_upgrade: Do not clean up tls subdirectories
- glibc_post_upgrade: Drop ia64 support
- Remove architecture-specific symbolic link for iconvconfig
- powerpc: Fix syscalls during early process initialization (swbz#22685)
diff --git a/glibc.spec b/glibc.spec
index 9b34848..f98656b 100644
--- a/glibc.spec
+++ b/glibc.spec
@@ -1,6 +1,6 @@
-%define glibcsrcdir glibc-2.26.9000-1139-g64f63cb458
+%define glibcsrcdir glibc-2.26.9000-1140-g4612268a0a
%define glibcversion 2.26.9000
-%define glibcrelease 43%{?dist}
+%define glibcrelease 44%{?dist}
# Pre-release tarballs are pulled in from git using a command that is
# effectively:
#
@@ -2035,6 +2035,17 @@ fi
%endif
%changelog
+* Fri Jan 19 2018 Florian Weimer <fweimer(a)redhat.com> - 2.26.9000-44
+- Correct the list of static PIE architectures
+- glibc_post_upgrade: Remove process restart logic
+- glibc_post_upgrade: Integrate into the build process
+- glibc_post_upgrade: Do not clean up tls subdirectories
+- glibc_post_upgrade: Drop ia64 support
+- Remove architecture-specific symbolic link for iconvconfig
+- Auto-sync with upstream branch master,
+ commit 4612268a0ad8e3409d8ce2314dd2dd8ee0af5269:
+- powerpc: Fix syscalls during early process initialization (swbz#22685)
+
* Fri Jan 19 2018 Florian Weimer <fweimer(a)redhat.com> - 2.26.9000-43
- Enable static PIE support
- Remove add-on support (already gone upstream)
diff --git a/sources b/sources
index 79e4030..7c1c2df 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (glibc-2.26.9000-1125-g860b0240a5.tar.gz) = 9508cbf8a7ce5f54f2fd847213de093b8b788a15d0092d1857742dd8109ba54d7b52d7cdc65ba5500c80de493e92b0e059f7daaec2870cb1fbc6ea9de3cf5808
+SHA512 (glibc-2.26.9000-1140-g4612268a0a.tar.gz) = b35f937e3f20b4b934e7106bad92a7ec80ce8daeb7e9a037d46e0443d64f8bfe0525126b47e4904533a179a2a20d495602e0c6085c83fac85537c4033086a41a
commit a071c6801cce4ea0c2d16b4b139f33171c57ca0f
Author: Florian Weimer <fweimer(a)redhat.com>
Date: Fri Jan 19 16:49:19 2018 +0100
glibc_post_upgrade: Remove process restart logic
The sshd restart looks potentially useful, but it has not run for a
long time because the file /etc/rc.d/init.d/sshd does not exit
anymore, so it appears unnecessary after all.
diff --git a/glibc-post_upgrade.patch b/glibc-post_upgrade.patch
index 075660c..60baa49 100644
--- a/glibc-post_upgrade.patch
+++ b/glibc-post_upgrade.patch
@@ -32,10 +32,10 @@ index 2a432d8beebcd207..368dcae477fff2ae 100644
-D'SLIBDIR="$(slibdir)"'
diff --git a/elf/glibc_post_upgrade.c b/elf/glibc_post_upgrade.c
new file mode 100644
-index 0000000000000000..3c9839ae523d2cc7
+index 0000000000000000..19b59f70e2308032
--- /dev/null
+++ b/elf/glibc_post_upgrade.c
-@@ -0,0 +1,322 @@
+@@ -0,0 +1,229 @@
+#include <sys/types.h>
+#include <sys/wait.h>
+#include <stdio.h>
@@ -46,8 +46,6 @@ index 0000000000000000..3c9839ae523d2cc7
+#include <stddef.h>
+#include <fcntl.h>
+#include <string.h>
-+#include <sys/stat.h>
-+#include <elf.h>
+
+#define LD_SO_CONF "/etc/ld.so.conf"
+#define ICONVCONFIG "/usr/sbin/iconvconfig"
@@ -63,12 +61,10 @@ index 0000000000000000..3c9839ae523d2cc7
+__attribute__((noinline)) static void says (const char *str);
+__attribute__((noinline)) static void sayn (long num);
+__attribute__((noinline)) static void message (char *const path[]);
-+__attribute__((noinline)) static int check_elf (const char *name);
+
+int
+main (void)
+{
-+ struct stat statbuf;
+ char initpath[256];
+
+ char buffer[4096];
@@ -180,50 +176,6 @@ index 0000000000000000..3c9839ae523d2cc7
+ (char *) iconv_dir);
+ }
+
-+ /* Check if telinit is available and either SysVInit fifo,
-+ or upstart telinit. */
-+ if (access ("/sbin/telinit", X_OK)
-+ || ((!!access ("/dev/initctl", F_OK))
-+ ^ !access ("/sbin/initctl", X_OK)))
-+ _exit (0);
-+
-+ /* Check if we are not inside of some chroot, because we'd just
-+ timeout and leave /etc/initrunlvl.
-+
-+ On more modern systems this test is not sufficient to detect
-+ if we're in a chroot. */
-+ if (readlink ("/proc/1/exe", initpath, 256) <= 0 ||
-+ readlink ("/proc/1/root", initpath, 256) <= 0)
-+ _exit (0);
-+
-+ /* Here's another well known way to detect chroot, at least on an
-+ ext and xfs filesystems and assuming nothing mounted on the chroot's
-+ root. */
-+ if (stat ("/", &statbuf) != 0
-+ || (statbuf.st_ino != 2
-+ && statbuf.st_ino != 128))
-+ _exit (0);
-+
-+ if (check_elf ("/proc/1/exe"))
-+ verbose_exec (116,
-+ (char *) "/sbin/telinit",
-+ (char *) "/sbin/telinit",
-+ (char *) "u");
-+
-+ /* Check if we can safely condrestart sshd. */
-+ if (access ("/sbin/service", X_OK) == 0
-+ && access ("/usr/sbin/sshd", X_OK) == 0
-+ && access ("/etc/rc.d/init.d/sshd", X_OK) == 0
-+ && access ("/bin/bash", X_OK) == 0)
-+ {
-+ if (check_elf ("/usr/sbin/sshd"))
-+ verbose_exec (-121,
-+ (char *) "/sbin/service",
-+ (char *) "/sbin/service",
-+ (char *) "sshd",
-+ (char *) "condrestart");
-+ }
-+
+ _exit(0);
+}
+
@@ -313,48 +265,3 @@ index 0000000000000000..3c9839ae523d2cc7
+ says ("/usr/sbin/glibc_post_upgrade: While trying to execute ");
+ says (path[0]);
+}
-+
-+static int
-+check_elf (const char *name)
-+{
-+ /* Play safe, if we can't open or read, assume it might be
-+ ELF for the current arch. */
-+ int ret = 1;
-+ int fd = open (name, O_RDONLY);
-+ if (fd >= 0)
-+ {
-+ Elf32_Ehdr ehdr;
-+ if (read (fd, &ehdr, offsetof (Elf32_Ehdr, e_version))
-+ == offsetof (Elf32_Ehdr, e_version))
-+ {
-+ ret = 0;
-+ if (ehdr.e_ident[EI_CLASS]
-+ == (sizeof (long) == 8 ? ELFCLASS64 : ELFCLASS32))
-+ {
-+#if defined __i386__
-+ ret = ehdr.e_machine == EM_386;
-+#elif defined __x86_64__
-+ ret = ehdr.e_machine == EM_X86_64;
-+#elif defined __powerpc64__
-+ ret = ehdr.e_machine == EM_PPC64;
-+#elif defined __powerpc__
-+ ret = ehdr.e_machine == EM_PPC;
-+#elif defined __s390__ || defined __s390x__
-+ ret = ehdr.e_machine == EM_S390;
-+#elif defined __x86_64__
-+ ret = ehdr.e_machine == EM_X86_64;
-+#elif defined __sparc__
-+ if (sizeof (long) == 8)
-+ ret = ehdr.e_machine == EM_SPARCV9;
-+ else
-+ ret = (ehdr.e_machine == EM_SPARC
-+ || ehdr.e_machine == EM_SPARC32PLUS);
-+#else
-+ ret = 1;
-+#endif
-+ }
-+ }
-+ close (fd);
-+ }
-+ return ret;
-+}
commit cc5db6cdfde3f93137f88e598de1333865c8ad08
Author: Florian Weimer <fweimer(a)redhat.com>
Date: Fri Jan 19 16:32:44 2018 +0100
Correct the list of static PIE architectures
x86_64 was missing before.
diff --git a/glibc.spec b/glibc.spec
index 2610242..9b34848 100644
--- a/glibc.spec
+++ b/glibc.spec
@@ -92,6 +92,9 @@
%define buildpower8 0
%endif
+# Only some architectures have static PIE support.
+%define pie_arches aarch64 %{ix86} x86_64
+
##############################################################################
# Any architecture/kernel combination that supports running 32-bit and 64-bit
# code in userspace is considered a biarch arch.
@@ -930,7 +933,7 @@ build()
--enable-bind-now \
--build=%{target} \
--enable-stack-protector=strong \
-%ifarch %{ix86} aarch64
+%ifarch %{pie_arches}
--enable-static-pie \
%endif
--enable-tunables \
commit 737f7e8513f66db4247e2f5f301b2503633a809e
Author: Florian Weimer <fweimer(a)redhat.com>
Date: Fri Jan 19 16:32:18 2018 +0100
glibc_post_upgrade: Integrate into the build process
This gives us access to the relevant definitions and also enables
us to perform a static PIE build without replicate the entire
compiler invocation.
Due to the move into the glibc build process, the program had to
be cleaned up to compile without warnings.
diff --git a/glibc-post_upgrade.patch b/glibc-post_upgrade.patch
new file mode 100644
index 0000000..075660c
--- /dev/null
+++ b/glibc-post_upgrade.patch
@@ -0,0 +1,360 @@
+A helper program is needed to clean up the system configuration
+early during RPM package installation, so that other scriptlets
+can run successfully.
+
+diff --git a/elf/Makefile b/elf/Makefile
+index 2a432d8beebcd207..368dcae477fff2ae 100644
+--- a/elf/Makefile
++++ b/elf/Makefile
+@@ -117,6 +117,14 @@ others-extras = $(ldconfig-modules)
+ endif
+ endif
+
++# This needs to be statically linked because it is executed at a time
++# when there might be incompatible shared objects on disk, and the
++# purpose of this program is to remove them (among other things).
++others-static += glibc_post_upgrade
++others += glibc_post_upgrade
++glibc_post_upgrade-modules := static-stubs
++CFLAGS-glibc_post_upgrade.c += -DGCONV_MODULES_DIR='"$(gconvdir)"'
++
+ # To find xmalloc.c and xstrdup.c
+ vpath %.c ../locale/programs
+
+@@ -559,6 +567,8 @@ $(objpfx)sln: $(sln-modules:%=$(objpfx)%.o)
+
+ $(objpfx)ldconfig: $(ldconfig-modules:%=$(objpfx)%.o)
+
++$(objpfx)glibc_post_upgrade: $(glibc_post_upgrade-modules:%=$(objpfx)%.o)
++
+ SYSCONF-FLAGS := -D'SYSCONFDIR="$(sysconfdir)"'
+ CFLAGS-ldconfig.c += $(SYSCONF-FLAGS) -D'LIBDIR="$(libdir)"' \
+ -D'SLIBDIR="$(slibdir)"'
+diff --git a/elf/glibc_post_upgrade.c b/elf/glibc_post_upgrade.c
+new file mode 100644
+index 0000000000000000..3c9839ae523d2cc7
+--- /dev/null
++++ b/elf/glibc_post_upgrade.c
+@@ -0,0 +1,322 @@
++#include <sys/types.h>
++#include <sys/wait.h>
++#include <stdio.h>
++#include <errno.h>
++#include <unistd.h>
++#include <sys/time.h>
++#include <dirent.h>
++#include <stddef.h>
++#include <fcntl.h>
++#include <string.h>
++#include <sys/stat.h>
++#include <elf.h>
++
++#define LD_SO_CONF "/etc/ld.so.conf"
++#define ICONVCONFIG "/usr/sbin/iconvconfig"
++
++#define verbose_exec(failcode, path...) \
++ do \
++ { \
++ char *const arr[] = { path, NULL }; \
++ vexec (failcode, arr); \
++ } while (0)
++
++__attribute__((noinline)) static void vexec (int failcode, char *const path[]);
++__attribute__((noinline)) static void says (const char *str);
++__attribute__((noinline)) static void sayn (long num);
++__attribute__((noinline)) static void message (char *const path[]);
++__attribute__((noinline)) static int check_elf (const char *name);
++
++int
++main (void)
++{
++ struct stat statbuf;
++ char initpath[256];
++
++ char buffer[4096];
++ struct pref {
++ const char *p;
++ int len;
++ } prefix[] = { { "libc-", 5 }, { "libm-", 5 },
++ { "librt-", 6 }, { "libpthread-", 11 },
++ { "librtkaio-", 10 }, { "libthread_db-", 13 } };
++ int i, j, fd;
++ off_t base;
++ ssize_t ret;
++
++ /* In order to support in-place upgrades, we must immediately remove
++ obsolete platform directories after installing a new glibc
++ version. RPM only deletes files removed by updates near the end
++ of the transaction. If we did not remove the obsolete platform
++ directories here, they would be preferred by the dynamic linker
++ during the execution of subsequent RPM scriptlets, likely
++ resulting in process startup failures. */
++ const char *remove_dirs[] =
++ {
++#if defined (__i386__)
++ "/lib/i686",
++ "/lib/i686/nosegneg",
++#elif defined (__powerpc64__) && _CALL_ELF != 2
++ "/lib64/power6",
++#endif
++ };
++ for (j = 0; j < sizeof (remove_dirs) / sizeof (remove_dirs[0]); ++j)
++ {
++ size_t rmlen = strlen (remove_dirs[j]);
++ fd = open (remove_dirs[j], O_RDONLY);
++ if (fd >= 0
++ && (ret = getdirentries (fd, buffer, sizeof (buffer), &base))
++ >= (ssize_t) offsetof (struct dirent, d_name))
++ {
++ for (base = 0; base + offsetof (struct dirent, d_name) < ret; )
++ {
++ struct dirent *d = (struct dirent *) (buffer + base);
++
++ for (i = 0; i < sizeof (prefix) / sizeof (prefix[0]); i++)
++ if (! strncmp (d->d_name, prefix[i].p, prefix[i].len))
++ {
++ char *p = d->d_name + prefix[i].len;
++
++ while (*p == '.' || (*p >= '0' && *p <= '9')) p++;
++ if (p[0] == 's' && p[1] == 'o' && p[2] == '\0'
++ && p + 3 - d->d_name
++ < sizeof (initpath) - rmlen - 1)
++ {
++ memcpy (initpath, remove_dirs[j], rmlen);
++ initpath[rmlen] = '/';
++ strcpy (initpath + rmlen + 1, d->d_name);
++ unlink (initpath);
++ break;
++ }
++ }
++ base += d->d_reclen;
++ }
++ close (fd);
++ }
++ }
++
++ int ldsocfd = open (LD_SO_CONF, O_RDONLY);
++ struct stat ldsocst;
++ if (ldsocfd >= 0 && fstat (ldsocfd, &ldsocst) >= 0)
++ {
++ char p[ldsocst.st_size + 1];
++ if (read (ldsocfd, p, ldsocst.st_size) == ldsocst.st_size)
++ {
++ p[ldsocst.st_size] = '\0';
++ if (strstr (p, "include ld.so.conf.d/*.conf") == NULL)
++ {
++ close (ldsocfd);
++ ldsocfd = open (LD_SO_CONF, O_WRONLY | O_TRUNC);
++ if (ldsocfd >= 0)
++ {
++ size_t slen = strlen ("include ld.so.conf.d/*.conf\n");
++ if (write (ldsocfd, "include ld.so.conf.d/*.conf\n", slen)
++ != slen
++ || write (ldsocfd, p, ldsocst.st_size) != ldsocst.st_size)
++ _exit (109);
++ }
++ }
++ }
++ if (ldsocfd >= 0)
++ close (ldsocfd);
++ }
++
++ /* If installing bi-arch glibc, rpm sometimes doesn't unpack all files
++ before running one of the lib's %post scriptlet. /sbin/ldconfig will
++ then be run by the other arch's %post. */
++ if (! access ("/sbin/ldconfig", X_OK))
++ verbose_exec (110,
++ (char *) "/sbin/ldconfig",
++ (char *) "/sbin/ldconfig");
++
++ if (! utimes (GCONV_MODULES_DIR "/gconv-modules.cache", NULL))
++ {
++ const char *iconv_cache = GCONV_MODULES_DIR "/gconv-modules.cache";
++ const char *iconv_dir = GCONV_MODULES_DIR;
++ verbose_exec (113,
++ (char *) ICONVCONFIG,
++ (char *) "/usr/sbin/iconvconfig",
++ (char *) "-o",
++ (char *) iconv_cache,
++ (char *) "--nostdlib",
++ (char *) iconv_dir);
++ }
++
++ /* Check if telinit is available and either SysVInit fifo,
++ or upstart telinit. */
++ if (access ("/sbin/telinit", X_OK)
++ || ((!!access ("/dev/initctl", F_OK))
++ ^ !access ("/sbin/initctl", X_OK)))
++ _exit (0);
++
++ /* Check if we are not inside of some chroot, because we'd just
++ timeout and leave /etc/initrunlvl.
++
++ On more modern systems this test is not sufficient to detect
++ if we're in a chroot. */
++ if (readlink ("/proc/1/exe", initpath, 256) <= 0 ||
++ readlink ("/proc/1/root", initpath, 256) <= 0)
++ _exit (0);
++
++ /* Here's another well known way to detect chroot, at least on an
++ ext and xfs filesystems and assuming nothing mounted on the chroot's
++ root. */
++ if (stat ("/", &statbuf) != 0
++ || (statbuf.st_ino != 2
++ && statbuf.st_ino != 128))
++ _exit (0);
++
++ if (check_elf ("/proc/1/exe"))
++ verbose_exec (116,
++ (char *) "/sbin/telinit",
++ (char *) "/sbin/telinit",
++ (char *) "u");
++
++ /* Check if we can safely condrestart sshd. */
++ if (access ("/sbin/service", X_OK) == 0
++ && access ("/usr/sbin/sshd", X_OK) == 0
++ && access ("/etc/rc.d/init.d/sshd", X_OK) == 0
++ && access ("/bin/bash", X_OK) == 0)
++ {
++ if (check_elf ("/usr/sbin/sshd"))
++ verbose_exec (-121,
++ (char *) "/sbin/service",
++ (char *) "/sbin/service",
++ (char *) "sshd",
++ (char *) "condrestart");
++ }
++
++ _exit(0);
++}
++
++void
++vexec (int failcode, char *const path[])
++{
++ pid_t pid;
++ int status, save_errno;
++ int devnull = 0;
++
++ if (failcode < 0)
++ {
++ devnull = 1;
++ failcode = -failcode;
++ }
++ pid = vfork ();
++ if (pid == 0)
++ {
++ int fd;
++ if (devnull && (fd = open ("/dev/null", O_WRONLY)) >= 0)
++ {
++ dup2 (fd, 1);
++ dup2 (fd, 2);
++ close (fd);
++ }
++ execv (path[0], path + 1);
++ save_errno = errno;
++ message (path);
++ says (" exec failed with errno ");
++ sayn (save_errno);
++ says ("\n");
++ _exit (failcode);
++ }
++ else if (pid < 0)
++ {
++ save_errno = errno;
++ message (path);
++ says (" fork failed with errno ");
++ sayn (save_errno);
++ says ("\n");
++ _exit (failcode + 1);
++ }
++ if (waitpid (0, &status, 0) != pid || !WIFEXITED (status))
++ {
++ message (path);
++ says (" child terminated abnormally\n");
++ _exit (failcode + 2);
++ }
++ if (WEXITSTATUS (status))
++ {
++ message (path);
++ says (" child exited with exit code ");
++ sayn (WEXITSTATUS (status));
++ says ("\n");
++ _exit (WEXITSTATUS (status));
++ }
++}
++
++static void
++says (const char *str)
++{
++ write (1, str, strlen (str));
++}
++
++static void
++sayn (long num)
++{
++ char string[sizeof (long) * 3 + 1];
++ char *p = string + sizeof (string) - 1;
++
++ *p = '\0';
++ if (num == 0)
++ *--p = '0';
++ else
++ while (num)
++ {
++ *--p = '0' + num % 10;
++ num = num / 10;
++ }
++
++ says (p);
++}
++
++static void
++message (char *const path[])
++{
++ says ("/usr/sbin/glibc_post_upgrade: While trying to execute ");
++ says (path[0]);
++}
++
++static int
++check_elf (const char *name)
++{
++ /* Play safe, if we can't open or read, assume it might be
++ ELF for the current arch. */
++ int ret = 1;
++ int fd = open (name, O_RDONLY);
++ if (fd >= 0)
++ {
++ Elf32_Ehdr ehdr;
++ if (read (fd, &ehdr, offsetof (Elf32_Ehdr, e_version))
++ == offsetof (Elf32_Ehdr, e_version))
++ {
++ ret = 0;
++ if (ehdr.e_ident[EI_CLASS]
++ == (sizeof (long) == 8 ? ELFCLASS64 : ELFCLASS32))
++ {
++#if defined __i386__
++ ret = ehdr.e_machine == EM_386;
++#elif defined __x86_64__
++ ret = ehdr.e_machine == EM_X86_64;
++#elif defined __powerpc64__
++ ret = ehdr.e_machine == EM_PPC64;
++#elif defined __powerpc__
++ ret = ehdr.e_machine == EM_PPC;
++#elif defined __s390__ || defined __s390x__
++ ret = ehdr.e_machine == EM_S390;
++#elif defined __x86_64__
++ ret = ehdr.e_machine == EM_X86_64;
++#elif defined __sparc__
++ if (sizeof (long) == 8)
++ ret = ehdr.e_machine == EM_SPARCV9;
++ else
++ ret = (ehdr.e_machine == EM_SPARC
++ || ehdr.e_machine == EM_SPARC32PLUS);
++#else
++ ret = 1;
++#endif
++ }
++ }
++ close (fd);
++ }
++ return ret;
++}
diff --git a/glibc.spec b/glibc.spec
index 6a75446..2610242 100644
--- a/glibc.spec
+++ b/glibc.spec
@@ -118,7 +118,6 @@ License: LGPLv2+ and LGPLv2+ with exceptions and GPLv2+
URL: http://www.gnu.org/software/glibc/
Source0: %{?glibc_release_url}%{glibcsrcdir}.tar.gz
Source1: build-locale-archive.c
-Source2: glibc_post_upgrade.c
Source4: nscd.conf
Source7: nsswitch.conf
Source8: power6emul.c
@@ -154,7 +153,8 @@ Source11: SUPPORTED
#
##############################################################################
-Patch0001: glibc-fedora-nscd.patch
+Patch1: glibc-post_upgrade.patch
+Patch2: glibc-fedora-nscd.patch
# All these were from the glibc-fedora.patch mega-patch and need another
# round of reviewing. Ideally they'll either be submitted upstream or
@@ -734,7 +734,8 @@ microbenchmark tests on the system.
%setup -q -n %{glibcsrcdir}
# Patch order matters.
-%patch0001 -p1
+%patch1 -p1
+%patch2 -p1
%patch2007 -p1
%patch0012 -p1
%patch2013 -p1
@@ -1000,18 +1001,6 @@ build
%endif
##############################################################################
-# Build the glibc post-upgrade program:
-# We only build one of these with the default set of options. This program
-# must be able to run on all hardware for the lowest common denomintor since
-# we only build it once.
-##############################################################################
-pushd build-%{target}
-$GCC -static -L. -Os -g %{SOURCE2} \
- -o glibc_post_upgrade.%{_target_cpu} \
- '-DGCONV_MODULES_DIR="%{_libdir}/gconv"'
-popd
-
-##############################################################################
# Install glibc...
##############################################################################
%install
@@ -1245,7 +1234,7 @@ chmod 644 $RPM_BUILD_ROOT%{_libdir}/gconv/gconv-modules.cache
##############################################################################
# Install the upgrade program
-install -m 700 build-%{target}/glibc_post_upgrade.%{_target_cpu} \
+install -m 700 build-%{target}/elf/glibc_post_upgrade \
$RPM_BUILD_ROOT%{_prefix}/sbin/glibc_post_upgrade.%{_target_cpu}
# Strip all of the installed object files.
@@ -1494,7 +1483,7 @@ rm -rf $RPM_BUILD_ROOT%{_prefix}/share/zoneinfo
# doesn't seem to be any macro to give us that. So we do the next best thing,
# which is to at least keep the timestamp consistent. The choice of using
# glibc_post_upgrade.c is arbitrary.
-touch -r %{SOURCE2} $RPM_BUILD_ROOT/etc/ld.so.conf
+touch -r %{SOURCE0} $RPM_BUILD_ROOT/etc/ld.so.conf
touch -r sunrpc/etc.rpc $RPM_BUILD_ROOT/etc/rpc
pushd build-%{target}
commit 34f077631c047ffa6a99a7fa501ba95d4ec6ab5c
Author: Florian Weimer <fweimer(a)redhat.com>
Date: Fri Jan 19 16:05:04 2018 +0100
Move glibc-fedora-nscd.patch comment into file
diff --git a/glibc-fedora-nscd.patch b/glibc-fedora-nscd.patch
index a26b928..c0c464d 100644
--- a/glibc-fedora-nscd.patch
+++ b/glibc-fedora-nscd.patch
@@ -1,3 +1,6 @@
+Fedora-specific configuration adjustment to introduce the nscd user.
+(Upstream does not assume this user exists.)
+
diff -Nrup a/nscd/nscd.conf b/nscd/nscd.conf
--- a/nscd/nscd.conf 2012-06-05 07:42:49.000000000 -0600
+++ b/nscd/nscd.conf 2012-06-07 12:15:21.818318670 -0600
diff --git a/glibc.spec b/glibc.spec
index e0019ca..6a75446 100644
--- a/glibc.spec
+++ b/glibc.spec
@@ -154,8 +154,6 @@ Source11: SUPPORTED
#
##############################################################################
-# Configuration twiddle, not sure there's a good case to get upstream to
-# change this.
Patch0001: glibc-fedora-nscd.patch
# All these were from the glibc-fedora.patch mega-patch and need another
commit 707a1e8f871cf22cb856a283480077c6efcae00e
Author: Florian Weimer <fweimer(a)redhat.com>
Date: Fri Jan 19 15:30:50 2018 +0100
Remove architecture-specific symbolic link for iconvconfig
Its purpose is not entirely clear. glibc_post_upgrade invokes
iconvconfig with explicit paths, so it does not matter for which
multilib variant the binary was built.
diff --git a/glibc.spec b/glibc.spec
index 267bad7..e0019ca 100644
--- a/glibc.spec
+++ b/glibc.spec
@@ -1010,8 +1010,7 @@ build
pushd build-%{target}
$GCC -static -L. -Os -g %{SOURCE2} \
-o glibc_post_upgrade.%{_target_cpu} \
- '-DGCONV_MODULES_DIR="%{_libdir}/gconv"' \
- '-DICONVCONFIG="%{_sbindir}/iconvconfig.%{_target_cpu}"'
+ '-DGCONV_MODULES_DIR="%{_libdir}/gconv"'
popd
##############################################################################
@@ -1254,9 +1253,6 @@ install -m 700 build-%{target}/glibc_post_upgrade.%{_target_cpu} \
# Strip all of the installed object files.
strip -g $RPM_BUILD_ROOT%{_libdir}/*.o
-# XXX: Ugly hack for buggy rpm. What bug? BZ? Is this fixed?
-ln -f ${RPM_BUILD_ROOT}%{_sbindir}/iconvconfig{,.%{_target_cpu}}
-
##############################################################################
# Install debug copies of unstripped static libraries
# - This step must be last in order to capture any additional static
diff --git a/glibc_post_upgrade.c b/glibc_post_upgrade.c
index a49f23d..c74d440 100644
--- a/glibc_post_upgrade.c
+++ b/glibc_post_upgrade.c
@@ -12,6 +12,7 @@
#include <elf.h>
#define LD_SO_CONF "/etc/ld.so.conf"
+#define ICONVCONFIG "/usr/sbin/iconvconfig"
#define verbose_exec(failcode, path...) \
do \
@@ -128,9 +129,6 @@ main (void)
if (! utimes (GCONV_MODULES_DIR "/gconv-modules.cache", NULL))
{
-#ifndef ICONVCONFIG
-#define ICONVCONFIG "/usr/sbin/iconvconfig"
-#endif
char *iconv_cache = GCONV_MODULES_DIR"/gconv-modules.cache";
char *iconv_dir = GCONV_MODULES_DIR;
verbose_exec (113, ICONVCONFIG, "/usr/sbin/iconvconfig",
commit e33b0e319728b8910e784de0be29ea56dea26892
Author: Florian Weimer <fweimer(a)redhat.com>
Date: Fri Jan 19 15:11:38 2018 +0100
glibc_post_upgrade: Move LD_SO_CONF definition into source file
diff --git a/glibc.spec b/glibc.spec
index 258dbf9..267bad7 100644
--- a/glibc.spec
+++ b/glibc.spec
@@ -1011,7 +1011,6 @@ pushd build-%{target}
$GCC -static -L. -Os -g %{SOURCE2} \
-o glibc_post_upgrade.%{_target_cpu} \
'-DGCONV_MODULES_DIR="%{_libdir}/gconv"' \
- '-DLD_SO_CONF="/etc/ld.so.conf"' \
'-DICONVCONFIG="%{_sbindir}/iconvconfig.%{_target_cpu}"'
popd
diff --git a/glibc_post_upgrade.c b/glibc_post_upgrade.c
index 1658507..a49f23d 100644
--- a/glibc_post_upgrade.c
+++ b/glibc_post_upgrade.c
@@ -11,6 +11,8 @@
#include <sys/stat.h>
#include <elf.h>
+#define LD_SO_CONF "/etc/ld.so.conf"
+
#define verbose_exec(failcode, path...) \
do \
{ \
commit 365663e72b5aebe2b428cddf928865c48350fd38
Author: Florian Weimer <fweimer(a)redhat.com>
Date: Fri Jan 19 15:07:33 2018 +0100
glibc_post_upgrade: Do not clean up tls subdirectories
These were removed a long time ago.
diff --git a/glibc.spec b/glibc.spec
index af08df2..258dbf9 100644
--- a/glibc.spec
+++ b/glibc.spec
@@ -1010,7 +1010,6 @@ build
pushd build-%{target}
$GCC -static -L. -Os -g %{SOURCE2} \
-o glibc_post_upgrade.%{_target_cpu} \
- '-DLIBTLS="/%{_lib}/tls/"' \
'-DGCONV_MODULES_DIR="%{_libdir}/gconv"' \
'-DLD_SO_CONF="/etc/ld.so.conf"' \
'-DICONVCONFIG="%{_sbindir}/iconvconfig.%{_target_cpu}"'
diff --git a/glibc_post_upgrade.c b/glibc_post_upgrade.c
index 134607b..1658507 100644
--- a/glibc_post_upgrade.c
+++ b/glibc_post_upgrade.c
@@ -51,18 +51,10 @@ main (void)
const char *remove_dirs[] =
{
#if defined (__i386__)
- "/lib/tls",
"/lib/i686",
- "/lib/tls/i486",
- "/lib/tls/i586",
- "/lib/tls/i686",
"/lib/i686/nosegneg",
#elif defined (__powerpc64__) && _CALL_ELF != 2
"/lib64/power6",
-#elif defined (LIBTLS)
- LIBTLS,
-#else
- "/lib/tls",
#endif
};
for (j = 0; j < sizeof (remove_dirs) / sizeof (remove_dirs[0]); ++j)
commit 91ed2dbf627116ca8edd2038ab6084f22dcefb94
Author: Florian Weimer <fweimer(a)redhat.com>
Date: Fri Jan 19 15:02:09 2018 +0100
glibc_post_upgrade: Drop ia64 support
diff --git a/glibc_post_upgrade.c b/glibc_post_upgrade.c
index ad3215c..134607b 100644
--- a/glibc_post_upgrade.c
+++ b/glibc_post_upgrade.c
@@ -24,39 +24,6 @@ __attribute__((noinline)) void sayn (long num);
__attribute__((noinline)) void message (char *const path[]);
__attribute__((noinline)) int check_elf (const char *name);
-#ifdef __i386__
-static int
-is_ia64 (void)
-{
- unsigned int fl1, fl2;
-
- /* See if we can use cpuid. */
- __asm__ ("pushfl; pushfl; popl %0; movl %0,%1; xorl %2,%0;"
- "pushl %0; popfl; pushfl; popl %0; popfl"
- : "=&r" (fl1), "=&r" (fl2)
- : "i" (0x00200000));
- if (((fl1 ^ fl2) & 0x00200000) == 0)
- return 0;
-
- /* Host supports cpuid. See if cpuid gives capabilities, try
- CPUID(0). Preserve %ebx and %ecx; cpuid insn clobbers these, we
- don't need their CPUID values here, and %ebx may be the PIC
- register. */
- __asm__ ("pushl %%ecx; pushl %%ebx; cpuid; popl %%ebx; popl %%ecx"
- : "=a" (fl1) : "0" (0) : "edx", "cc");
- if (fl1 == 0)
- return 0;
-
- /* Invoke CPUID(1), return %edx; caller can examine bits to
- determine what's supported. */
- __asm__ ("pushl %%ecx; pushl %%ebx; cpuid; popl %%ebx; popl %%ecx"
- : "=d" (fl2), "=a" (fl1) : "1" (1) : "cc");
- return (fl2 & (1 << 30)) != 0;
-}
-#else
-#define is_ia64() 0
-#endif
-
int
main (void)
{
@@ -172,11 +139,6 @@ main (void)
#endif
char *iconv_cache = GCONV_MODULES_DIR"/gconv-modules.cache";
char *iconv_dir = GCONV_MODULES_DIR;
- if (is_ia64 ())
- {
- iconv_cache = "/emul/ia32-linux"GCONV_MODULES_DIR"/gconv-modules.cache";
- iconv_dir = "/emul/ia32-linux"GCONV_MODULES_DIR;
- }
verbose_exec (113, ICONVCONFIG, "/usr/sbin/iconvconfig",
"-o", iconv_cache,
"--nostdlib", iconv_dir);
@@ -330,8 +292,6 @@ check_elf (const char *name)
ret = ehdr.e_machine == EM_386;
#elif defined __x86_64__
ret = ehdr.e_machine == EM_X86_64;
-#elif defined __ia64__
- ret = ehdr.e_machine == EM_IA_64;
#elif defined __powerpc64__
ret = ehdr.e_machine == EM_PPC64;
#elif defined __powerpc__
6 years, 3 months
Architecture specific change in rpms/glibc.git
by githook-noreply@fedoraproject.org
The package rpms/glibc.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/glibc.git/commit/?id=5163dbee4558....
Change:
+%ifarch %{ix86} aarch64
Thanks.
Full change:
============
commit 0f4d3ed14dc9efb1dfb9528f31d9e630c0ab4679
Author: Florian Weimer <fweimer(a)redhat.com>
Date: Fri Jan 19 12:58:39 2018 +0100
Auto-sync with upstream branch master
Upstream commit: 64f63cb4583ecc1ba16c7253aacc192b6d088511
- Enable static PIE support
- Remove add-on support (already gone upstream)
- Rework test suite status reporting
- malloc: Fix integer overflows in memalign and malloc functions (swbz#22343)
- x86-64: Properly align La_x86_64_retval to VEC_SIZE (swbz#22715)
- aarch64: Update bits/hwcap.h for Linux 4.15
- Add NT_ARM_SVE to elf.h
diff --git a/glibc.spec b/glibc.spec
index 1831bc0..af08df2 100644
--- a/glibc.spec
+++ b/glibc.spec
@@ -1,6 +1,6 @@
-%define glibcsrcdir glibc-2.26.9000-1125-g860b0240a5
+%define glibcsrcdir glibc-2.26.9000-1139-g64f63cb458
%define glibcversion 2.26.9000
-%define glibcrelease 42%{?dist}
+%define glibcrelease 43%{?dist}
# Pre-release tarballs are pulled in from git using a command that is
# effectively:
#
@@ -2051,6 +2051,17 @@ fi
%endif
%changelog
+* Fri Jan 19 2018 Florian Weimer <fweimer(a)redhat.com> - 2.26.9000-43
+- Enable static PIE support
+- Remove add-on support (already gone upstream)
+- Rework test suite status reporting
+- Auto-sync with upstream branch master,
+ commit 64f63cb4583ecc1ba16c7253aacc192b6d088511:
+- malloc: Fix integer overflows in memalign and malloc functions (swbz#22343)
+- x86-64: Properly align La_x86_64_retval to VEC_SIZE (swbz#22715)
+- aarch64: Update bits/hwcap.h for Linux 4.15
+- Add NT_ARM_SVE to elf.h
+
* Wed Jan 17 2018 Florian Weimer <fweimer(a)redhat.com> - 2.26.9000-42
- CVE-2017-14062, CVE-2016-6261, CVE-2016-6263:
Use libidn2 for IDNA support (#1452750)
commit 5c2fe5cfb3798d359719b9b7da5e1324ef100709
Author: Florian Weimer <fweimer(a)redhat.com>
Date: Fri Jan 19 12:02:32 2018 +0100
Rework test suite status reporting
Remove the timeout and the parallel tail call. Always output to
standard error, for synchronization with the rest of the reporting.
diff --git a/glibc.spec b/glibc.spec
index 38c334a..1831bc0 100644
--- a/glibc.spec
+++ b/glibc.spec
@@ -1742,54 +1742,43 @@ truncate -s 0 $RPM_BUILD_ROOT/var/cache/ldconfig/aux-cache
%check
%if %{with testsuite}
-# Run the glibc tests. If any tests fail to build we exit %check with an error
-# of 1, otherwise we print the test failure list and the failed test output
-# and exit with 0. In the future we want to compare against a baseline and
-# exit with 1 if the results deviate from the baseline.
+# Run the glibc tests. If any tests fail to build we exit %check with
+# an error, otherwise we print the test failure list and the failed
+# test output and continue. Write to standard error to avoid
+# synchronization issues with make and shell tracing output if
+# standard output and standard error are different pipes.
run_tests () {
- truncate -s 0 check.log
- tail -f check.log &
- tailpid=$!
- # Run the make a sub-shell (to avoid %check failing if make fails)
- # but capture the status for use later. We use the normal sub-shell
- # trick of printing the status. The actual result of the sub-shell
- # is the successful execution of the echo.
- status=$(set +e
- make %{?_smp_mflags} -O check > check.log 2>&1
- status=$?
- echo $status)
- # Wait for the tail to catch up with the output and then kill it.
- sleep 10
- kill $tailpid
- # Print the header, so we can find it, but skip the error printing
- # if there aren't any failrues.
- echo ===================FAILED TESTS=====================
- if [ $status -ne 0 ]; then
- # We are not running with `-k`, therefore a test build failure
- # terminates the test run and that terminates %check with an
- # error which terminates the build. We want this behaviour to
- # ensure that all tests build, and all tests run.
- # If the test result summary is not present it means one of
- # tests failed to build.
- if ! grep 'Summary of test results:' check.log; then
- echo "FAIL: Some glibc tests failed to build."
- exit 1
- fi
-
- # Print out information about all of the failed tests.
- grep -e ^FAIL -e ^ERROR tests.sum \
- | awk '{print $2}' \
- | while read testcase;
- do
- echo "$testcase"
- cat $testcase.out
- echo -------------------------
- done
- fi
-
- # Unconditonally dump differences in the system call list.
- echo "* System call consistency checks:"
- cat misc/tst-syscall-list.out
+ # This hides a test suite build failure, which should be fatal. We
+ # check "Summary of test results:" below to verify that all tests
+ # were built and run.
+ make %{?_smp_mflags} -O check |& tee rpmbuild.check.log >&2
+ test -n tests.sum
+ if ! grep -q '^Summary of test results:$' rpmbuild.check.log ; then
+ echo "FAIL: test suite build of target: $(basename "$(pwd)")" >& 2
+ exit 1
+ fi
+ set +x
+ grep -v ^PASS: tests.sum > rpmbuild.tests.sum.not-passing || true
+ if test -n rpmbuild.tests.sum.not-passing ; then
+ echo ===================FAILED TESTS===================== >&2
+ echo "Target: $(basename "$(pwd)")" >& 2
+ cat rpmbuild.tests.sum.not-passing >&2
+ while read failed_code failed_test ; do
+ for suffix in out test-result ; do
+ if test -e "$failed_test.$suffix"; then
+ echo >&2
+ echo "=====$failed_code $failed_test.$suffix=====" >&2
+ cat -- "$failed_test.$suffix" >&2
+ echo >&2
+ fi
+ done
+ done <rpmbuild.tests.sum.not-passing
+ fi
+
+ # Unconditonally dump differences in the system call list.
+ echo "* System call consistency checks:" >&2
+ cat misc/tst-syscall-list.out >&2
+ set -x
}
# Increase timeouts
@@ -1798,7 +1787,7 @@ parent=$$
echo ====================TESTING=========================
##############################################################################
# - Test the default runtime.
-# - Power 620 / 970 ISA for 64-bit POWER BE.
+# - Power 620 / 970 ISA for 64-bit POWER BE.
# - POWER8 for 64-bit POWER LE.
# - ??? for 64-bit x86_64
# - ??? for 32-bit x86
@@ -1844,12 +1833,6 @@ run_tests
popd
%endif
-echo ====================TESTING DETAILS=================
-for i in `sed -n 's|^.*\*\*\* \[\([^]]*\.out\)\].*$|\1|p' build-*-linux*/check.log`; do
- echo =====$i=====
- cat $i || :
- echo ============
-done
echo ====================TESTING END=====================
PLTCMD='/^Relocation section .*\(\.rela\?\.plt\|\.rela\.IA_64\.pltoff\)/,/^$/p'
echo ====================PLT RELOCS LD.SO================
commit 5163dbee45584c74025497b8f760c3ee94049f1f
Author: Florian Weimer <fweimer(a)redhat.com>
Date: Fri Jan 19 08:36:02 2018 +0100
Enable static PIE on aarch64, i686, x86-64
diff --git a/glibc.spec b/glibc.spec
index 9b534ea..38c334a 100644
--- a/glibc.spec
+++ b/glibc.spec
@@ -931,6 +931,9 @@ build()
--enable-bind-now \
--build=%{target} \
--enable-stack-protector=strong \
+%ifarch %{ix86} aarch64
+ --enable-static-pie \
+%endif
--enable-tunables \
--enable-systemtap \
${core_with_options} \
commit dc905411d5b45d40e511063a5a1624b4cc5ac2a5
Author: Florian Weimer <fweimer(a)redhat.com>
Date: Fri Jan 19 08:35:09 2018 +0100
Remove add-on support (already gone upstream)
diff --git a/glibc.spec b/glibc.spec
index 4e5ba15..9b534ea 100644
--- a/glibc.spec
+++ b/glibc.spec
@@ -903,14 +903,13 @@ EnableKernel="--enable-kernel=%{enablekernel}"
# Save the used compiler and options into the file "Gcc" for use later
# by %%install.
echo "$GCC" > Gcc
-AddOns=`echo */configure | sed -e 's!/configure!!g;s!\(nptl\|powerpc-cpu\)\( \|$\)!!g;s! \+$!!;s! !,!g;s!^!,!;/^,\*$/d'`
##############################################################################
# build()
# Build glibc in `build-%{target}$1', passing the rest of the arguments
# as CFLAGS to the build (not the same as configure CFLAGS). Several
-# global values are used to determine build flags, add-ons, kernel
-# version, system tap support, etc.
+# global values are used to determine build flags, kernel version,
+# system tap support, etc.
##############################################################################
build()
{
@@ -928,7 +927,6 @@ build()
configure_CFLAGS="$build_CFLAGS -fno-asynchronous-unwind-tables"
../configure CC="$GCC" CXX="$GXX" CFLAGS="$configure_CFLAGS" \
--prefix=%{_prefix} \
- --enable-add-ons=$AddOns \
--with-headers=%{_prefix}/include $EnableKernel \
--enable-bind-now \
--build=%{target} \
6 years, 3 months
[Report] Packages Restricting Arches
by root
Package no longer excluding arches (1)
==================================
- syncthing-inotify
List of packages currently excluding arches (2654)
===========================================
- 0ad
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- GtkAda
ExclusiveArch: %{GNAT_arches}
- GtkAda3
ExclusiveArch: %{GPRbuild_arches}
- LuxRender
ExclusiveArch: x86_64
- OpenTK
ExclusiveArch: %mono_arches
- PragmARC
ExclusiveArch: %{GNAT_arches}
- R-DynDoc
ExclusiveArch: armv7, ppc, go_arch
- RdRand
ExclusiveArch: %{ix86} x86_64
- SLOF
ExclusiveArch: ppc64le
- YafaRay
ExclusiveArch: %{ix86} x86_64
- aboot
ExclusiveArch: alpha
- acpid
ExclusiveArch: ia64 x86_64 %{ix86} %{arm} aarch64
- ahven
ExclusiveArch: %{GNAT_arches}
- alleyoop
ExclusiveArch: %{ix86} x86_64 ppc ppc64 ppc64le s390x %{arm} aarch64
- american-fuzzy-lop
ExclusiveArch: %{ix86} x86_64
- anet
ExclusiveArch: %{GNAT_arches}
- apmd
ExclusiveArch: %{ix86}
- apmud
ExclusiveArch: ppc
- appstream-generator
ExclusiveArch: x86_64 %{ix86} %{arm}
- arduino
ExclusiveArch: %{go_arches}
- arduino-builder
ExclusiveArch: %{go_arches}
- arm-boot-config
ExclusiveArch: %{arm}
- arm-trusted-firmware
ExclusiveArch: aarch64
- atomic
ExclusiveArch: i386 i486 i586 i686 pentium3 pentium4 athlon geode x86_64 armv3l armv4b armv4l armv4tl armv5tel armv5tejl armv6l armv6hl armv7l armv7hl armv7hnl aarch64 ppc64le s390x mips mipsel mipsr6 mipsr6el mips64 mips64el mips64r6 mips64r6el
ExclusiveArch: x86_64 ppc64le
- aunit
ExclusiveArch: %GPRbuild_arches
- avgtime
ExclusiveArch: %{ldc_arches}
- aws
ExclusiveArch: %GPRbuild_arches
- banshee
ExclusiveArch: %{mono_arches}
- banshee-community-extensions
ExclusiveArch: %ix86 x86_64 ppc ppc64 ia64 %{arm} sparcv9 alpha s390x
- bareftp
ExclusiveArch: %{mono_arches}
- bcc
ExclusiveArch: x86_64 %{power64}
- bcm283x-firmware
ExclusiveArch: %{arm} aarch64
- beignet
ExclusiveArch: x86_64 %{ix86}
- berusky2
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 %{mips}
- biosdevname
ExclusiveArch: %{ix86} x86_64 ia64
- bless
ExclusiveArch: %mono_arches
- boo
ExclusiveArch: %{mono_arches}
- buildah
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- bwa
ExclusiveArch: x86_64
- caddy
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le
- cadvisor
ExclusiveArch: %{ix86} x86_64 aarch64 ppc64le
- calamares
ExclusiveArch: %{ix86} x86_64
- cargo
ExclusiveArch: %{rust_arches}
- carto
ExclusiveArch: %{nodejs_arches} noarch
- ccdciel
ExclusiveArch: %{fpc_arches}
- cdcollect
ExclusiveArch: %{mono_arches}
- ceph
ExclusiveArch: x86_64 aarch64 ppc64 ppc64le
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- chromium
ExclusiveArch: x86_64 i686
ExclusiveArch: x86_64 i686 aarch64
- cjdns
ExclusiveArch: %{nodejs_arches}
- cmospwd
ExclusiveArch: %{ix86} x86_64
- cmrt
ExclusiveArch: %{ix86} x86_64 ia64
- coffee-script
ExclusiveArch: %{nodejs_arches} noarch
- colorful
ExclusiveArch: %{fpc_arches}
- compat-gcc-296
ExclusiveArch: %{ix86} ia64 ppc
- consul
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- containerd
ExclusiveArch: %{go_arches}
- corosync
ExclusiveArch: i686 x86_64
- cpuid
ExclusiveArch: %{ix86} x86_64
- cqrlog
ExclusiveArch: %{fpc_arches}
- crash
ExclusiveArch: %{ix86} ia64 x86_64 ppc ppc64 s390 s390x %{arm} aarch64 ppc64le
- criu
ExclusiveArch: x86_64 %{arm} ppc64le aarch64
ExclusiveArch: x86_64 %{arm} ppc64le aarch64 s390x
- cryptlib
ExclusiveArch: x86_64 %{ix86} aarch64 ppc64 ppc64le
- cryptobone
ExclusiveArch: x86_64 %{ix86} ppc64 ppc64le aarch64
- daq
ExclusiveArch: x86_64 aarch64
- darktable
ExclusiveArch: x86_64 aarch64
- dbus-sharp
ExclusiveArch: %mono_arches
- dbus-sharp-glib
ExclusiveArch: %mono_arches
- dbxtool
ExclusiveArch: i386 x86_64 aarch64
- deepin-api
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- deepin-daemon
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- deepin-dbus-generator
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- deepin-gir-generator
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- derelict
ExclusiveArch: %{ldc_arches}
- direnv
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- dlm
ExclusiveArch: i686 x86_64
- dmidecode
ExclusiveArch: %{ix86} x86_64 ia64 aarch64
- dmtcp
ExclusiveArch: %ix86 x86_64 aarch64
- docco
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- docker
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x %{mips}
- docker-anaconda-addon
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x %{mips}
- docker-distribution
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- docker-latest
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x %{mips}
- dolphin-emu
ExclusiveArch: x86_64 armv7l aarch64
- douceur
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- dpdk
ExclusiveArch: x86_64 i686 aarch64 ppc64le
- dssi-vst
ExclusiveArch: %{ix86} x86_64
- dustmite
ExclusiveArch: %{ldc_arches}
- dyninst
ExclusiveArch: %{ix86} x86_64 ppc ppc64
- e3
ExclusiveArch: %{ix86} x86_64
- edac-utils
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 %{power64}
- edb
ExclusiveArch: %{ix86} x86_64
- edk2
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
ExclusiveArch: x86_64 aarch64
- efibootmgr
ExclusiveArch: %{ix86} x86_64 aarch64 arm
- efivar
ExclusiveArch: %{ix86} x86_64 aarch64
- elasticdump
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- elk
ExclusiveArch: x86_64 %{ix86}
ExclusiveArch: x86_64 %{ix86} aarch64 %{arm} %{power64}
- embree
ExclusiveArch: x86_64
- envytools
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- etcd
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x
- exciting
ExclusiveArch: x86_64 %{ix86}
ExclusiveArch: x86_64 %{ix86} aarch64 %{arm} %{power64}
- exercism
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- expresso
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- extlinux-bootloader
ExclusiveArch: %{arm} aarch64
- fcitx-libpinyin
ExclusiveArch: %{qt5_qtwebengine_arches}
- fedora-developer-portal
ExclusiveArch: ix86 x86_64
- fedora-dockerfiles
ExclusiveArch: %{go_arches}
- fedora-gnat-project-common
ExclusiveArch: noarch %{GNAT_arches}
- fence-virt
ExclusiveArch: i686 x86_64
- fes
ExclusiveArch: x86_64
- ffcall
ExclusiveArch: %{ffcall_arches}
- firmware-addon-dell
ExclusiveArch: x86_64 ia64 %{ix86}
- flannel
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x
- florist
ExclusiveArch: %GPRbuild_arches
- fluxcapacitor
ExclusiveArch: %{ix86} x86_64 %{arm}
- fpc
ExclusiveArch: %{arm} %{ix86} x86_64 ppc ppc64
- freshmaker
ExclusiveArch: %{ix86} x86_64
- frysk
ExclusiveArch: %{ix86} x86_64 ppc64
- fst
ExclusiveArch: i686
- fwts
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 s390x %{power64}
- fwupdate
ExclusiveArch: x86_64 aarch64
- fzf
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- ga
ExclusiveArch: %{ix86} x86_64
- gbrainy
ExclusiveArch: %mono_arches
- gdata-sharp
ExclusiveArch: %mono_arches
- gdb-exploitable
ExclusiveArch: x86_64 i386
ExclusiveArch: x86_64 noarch
- gela-asis
ExclusiveArch: %{GNAT_arches}
- ghdl
ExclusiveArch: %{GNAT_arches}
- gio-sharp
ExclusiveArch: %mono_arches
- gir-to-d
ExclusiveArch: %{ldc_arches}
- git-lfs
ExclusiveArch: %{go_arches}
- git-octopus
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- giver
ExclusiveArch: %{mono_arches}
- gkeyfile-sharp
ExclusiveArch: %mono_arches
- gl3n
ExclusiveArch: %{ldc_arches}
- glibc32
ExclusiveArch: x86_64 ppc64 s390x
- glide
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- gmqcc
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- gnatcoll
ExclusiveArch: %GPRbuild_arches
- gnome-boxes
ExclusiveArch: x86_64
- gnome-desktop-sharp
ExclusiveArch: %mono_arches
- gnome-do
ExclusiveArch: %mono_arches
- gnome-guitar
ExclusiveArch: %{mono_arches}
- gnome-keyring-sharp
ExclusiveArch: %mono_arches
- gnome-rdp
ExclusiveArch: %{mono_arches}
- gnome-sharp
ExclusiveArch: %mono_arches
- gnome-subtitles
ExclusiveArch: %mono_arches
- gnu-efi
ExclusiveArch: x86_64 aarch64 %{arm} %{ix86}
- gnu-smalltalk
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le
- go-bindata
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- go-compilers
ExclusiveArch: %{go_arches}
- go-i18n
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- gocomplete
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- godep
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- gofed
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x %{mips}
- golang
ExclusiveArch: %{golang_arches}
- golang-bazil-fuse
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-bitbucket-kardianos-osext
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-bitbucket-ww-goautoneg
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-deepin-go-lib
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-10gen-openssl
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x
- golang-github-3rf-mongo-lint
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-AdRoll-goamz
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-AudriusButkevicius-cli
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-AudriusButkevicius-go-nat-pmp
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-AudriusButkevicius-kcp-go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-AudriusButkevicius-pfilter
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-Azure-azure-sdk-for-go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-BurntSushi-freetype-go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-BurntSushi-graphics-go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-BurntSushi-toml
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-BurntSushi-toml-test
ExclusiveArch: %{go_arches}
- golang-github-BurntSushi-xgb
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-BurntSushi-xgbutil
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-DATA-DOG-go-sqlmock
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-DataDog-datadog-go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-Jeffail-gabs
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-MakeNowJust-heredoc
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-Masterminds-semver
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-Masterminds-vcs
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-PuerkitoBio-goquery
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-PuerkitoBio-purell
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-PuerkitoBio-urlesc
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-RangelReale-osin
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-RangelReale-osincli
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-SAP-go-hdb
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-SeanDolphin-bqschema
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-SermoDigital-jose
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-Shopify-sarama
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-Shopify-toxiproxy
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-Sirupsen-logrus
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-ThomsonReutersEikon-go-ntlm
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-Unknwon-goconfig
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-VividCortex-ewma
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-abbot-go-http-auth
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-agl-ed25519
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-akrennmair-gopcap
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-alecthomas-assert
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-alecthomas-chroma
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-alecthomas-colour
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-alecthomas-kingpin
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-alecthomas-repr
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-alecthomas-template
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-alecthomas-units
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-andybalholm-cascadia
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-appc-spec
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-armon-circbuf
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-armon-go-metrics
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-armon-go-proxyproto
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-armon-go-radix
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-armon-gomdb
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-asaskevich-govalidator
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-auth0-go-jwt-middleware
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-aws-aws-sdk-go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-axgle-mahonia
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-beorn7-perks
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-bep-gitmap
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-bep-inflect
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-bgentry-go-netrc
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-bgentry-speakeasy
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-billziss-gh-cgofuse
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-bitly-go-simplejson
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-bkaradzic-go-lz4
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-blang-semver
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-bmizerany-assert
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-bmizerany-pat
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-bmizerany-perks
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-boltdb-bolt
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-boombuler-barcode
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-bradfitz-http2
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-bugsnag-bugsnag-go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-bugsnag-panicwrap
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-calmh-du
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-calmh-luhn
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-calmh-xdr
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-ccding-go-stun
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-cenkalti-backoff
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-chaseadamsio-goorgeous
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-cheggaaa-pb
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-chmduquesne-rollinghash
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-chrismalek-oktasdk-go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-chzyer-logex
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-chzyer-test
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-circonus-labs-circonus-gometrics
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-circonus-labs-circonusllhist
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-cloudfoundry-incubator-candiedyaml
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-cockroachdb-cmux
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-cockroachdb-cockroach-go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-codahale-aesnicheck
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-codegangsta-cli
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-codegangsta-negroni
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-collectd-go-collectd
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-coreos-gexpect
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-coreos-go-etcd
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-coreos-go-iptables
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-coreos-go-log
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-coreos-go-oidc
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-coreos-go-semver
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-coreos-go-systemd
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-coreos-pkg
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-cpuguy83-go-md2man
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-cznic-b
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-cznic-fileutil
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-cznic-golex
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-cznic-internal
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-cznic-lex
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-cznic-lexer
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-cznic-lldb
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-cznic-mathutil
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-cznic-ql
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-cznic-sortutil
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-cznic-strutil
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-cznic-zappy
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-d2g-dhcp4
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-d2g-dhcp4client
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-d4l3k-messagediff
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-danwakefield-fnmatch
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-davecgh-go-spew
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-daviddengcn-go-colortext
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-dchest-cssmin
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-dchest-siphash
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-denisenkom-go-mssqldb
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-denverdino-aliyungo
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-dgnorton-goback
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-dgrijalva-jwt-go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-digitalocean-godo
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-disintegration-imaging
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-dlclark-regexp2
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-docker-go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-docker-go-connections
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-docker-go-units
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-docker-libcontainer
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-docker-libkv
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-docker-libtrust
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-docker-spdystream
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-docopt-docopt-go
ExclusiveArch: %{go_arches}
- golang-github-duosecurity-duo_api_golang
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-dustin-go-humanize
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-dvsekhvalnov-jose2go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-eapache-go-resiliency
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-eapache-queue
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-edsrzf-mmap-go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-eknkc-amber
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-elazarl-go-bindata-assetfs
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-emicklei-go-restful
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-endophage-gotuf
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-evanphx-json-patch
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-fatih-color
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-fatih-pool
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-fatih-structs
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-flynn-go-shlex
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-flynn-json5
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-fortytw2-leaktest
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-fsnotify-fsnotify
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-fsouza-go-dockerclient
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-fullsailor-pkcs7
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-garyburd-redigo
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-gdamore-encoding
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-gdamore-tcell
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-gengo-grpc-gateway
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-getsentry-raven-go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-ghodss-yaml
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-glacjay-goini
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-go-asn1-ber-asn1-ber
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-go-errors-errors
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-go-fsnotify-fsnotify
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-go-ini-ini
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-go-ldap-ldap
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-go-macaron-inject
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-go-mgo-mgo
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-go-sql-driver-mysql
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-go-tomb-tomb
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-gobwas-glob
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-gocql-gocql
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-godbus-dbus
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-golang-appengine
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-golang-glog
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-golang-groupcache
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-golang-image
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-golang-sync
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-golang-sys
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-golang-time
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-gonum-blas
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-gonum-floats
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-gonum-graph
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-gonum-internal
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-gonum-lapack
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-gonum-matrix
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-google-btree
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-google-go-cmp
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-google-go-genproto
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-google-go-github
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-google-go-querystring
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-google-gofuzz
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-goraft-raft
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-gorilla-context
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-gorilla-css
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-gorilla-handlers
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-gorilla-mux
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-gorilla-securecookie
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-gorilla-sessions
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-gorilla-websocket
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-gosexy-gettext
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-grpc-ecosystem-go-grpc-prometheus
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-grpc-ecosystem-grpc-gateway
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-grpc-grpc-go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-hailocab-go-hostpool
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-hashicorp-consul-migrate
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-hashicorp-errwrap
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-hashicorp-go-checkpoint
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-hashicorp-go-cleanhttp
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-hashicorp-go-hclog
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-hashicorp-go-immutable-radix
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-hashicorp-go-memdb
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-hashicorp-go-msgpack
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-hashicorp-go-multierror
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-hashicorp-go-plugin
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-hashicorp-go-retryablehttp
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-hashicorp-go-rootcerts
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-hashicorp-go-sockaddr
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-hashicorp-go-syslog
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-hashicorp-go-uuid
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-hashicorp-golang-lru
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-hashicorp-hcl
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-hashicorp-hil
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-hashicorp-logutils
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-hashicorp-mdns
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-hashicorp-memberlist
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-hashicorp-net-rpc-msgpackrpc
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-hashicorp-raft
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-hashicorp-raft-boltdb
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-hashicorp-raft-mdb
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-hashicorp-scada-client
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-hashicorp-serf
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-hashicorp-yamux
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-hawkular-hawkular-client-go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-howeyc-fsnotify
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-howeyc-gopass
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-imdario-mergo
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-inconshreveable-mousetrap
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-inconshreveable-muxado
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-influxdb-hyperleveldb-go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-influxdb-influxdb
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-influxdb-rocksdb
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-jackpal-gateway
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-jacobsa-oglematchers
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-jdkato-prose
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-jdkato-syllables
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-jefferai-jsonx
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-jessevdk-go-flags
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-jfrazelle-go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-jinzhu-gorm
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-jlaffaye-ftp
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-jmespath-go-jmespath
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-jmhodges-levigo
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-jonboulle-clockwork
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-jtolds-gls
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-juju-ratelimit
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-julienschmidt-httprouter
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-karlseguin-ccache
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-karlseguin-expect
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-kballard-go-shellquote
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-kdar-factorlog
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-keybase-go-crypto
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-kimor79-gollectd
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-klauspost-cpuid
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-klauspost-crc32
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-klauspost-reedsolomon
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-knieriem-markdown
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-kr-fs
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-kr-pretty
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-kr-pty
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-kr-text
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-kylelemons-godebug
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-kyokomi-emoji
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-lib-pq
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-linuxdeepin-go-x11-client
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-lpabon-godbc
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-lsegal-gucumber
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-lucasb-eyer-go-colorful
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-magiconair-properties
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-markbates-inflect
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-mattn-go-colorable
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-mattn-go-isatty
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-mattn-go-runewidth
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-mattn-go-shellwords
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-mattn-go-sqlite3
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-matttproud-golang_protobuf_extensions
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-mesos-mesos-go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-mgutz-ansi
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-mgutz-logxi
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-michaelklishin-rabbit-hole
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-miekg-dns
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-miekg-mmark
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-miekg-pkcs11
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-milochristiansen-axis2
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-milochristiansen-lua
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-minio-sha256-simd
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-mistifyio-go-zfs
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-mitchellh-cli
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-mitchellh-copystructure
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-mitchellh-go-homedir
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-mitchellh-go-testing-interface
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-mitchellh-go-wordwrap
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-mitchellh-goamz
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-mitchellh-mapstructure
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-mitchellh-reflectwalk
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-montanaflynn-stats
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-mreiferson-go-httpclient
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-msteinert-pam
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-mvo5-goconfigparser
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-mvo5-uboot-go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-mxk-go-flowrate
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-ncw-dropbox-sdk-go-unofficial
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-ncw-go-acd
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-ncw-swift
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-neurosnap-sentences
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-nfnt-resize
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-noahdesu-go-ceph
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-nsf-termbox-go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-nwidger-jsoncolor
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-ojii-gettext.go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-olekukonko-tablewriter
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-olekukonko-ts
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-olivere-elastic
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-onsi-ginkgo
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-onsi-gomega
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-opencontainers-runtime-spec
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-opencontainers-specs
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-openshift-go-json-rest
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-openshift-go-systemd
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-openshift-openshift-sdn
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-oschwald-geoip2-golang
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-oschwald-maxminddb-golang
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-patrickmn-go-cache
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-pelletier-go-buffruneio
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-pelletier-go-toml
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-petar-GoLLRB
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-peterh-liner
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-petermattis-goid
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-pkg-errors
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-pkg-profile
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-pkg-sftp
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-pmezard-go-difflib
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-pquerna-otp
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-prometheus-client_golang
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-prometheus-client_model
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-prometheus-common
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-prometheus-procfs
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-prometheus-prometheus
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-racker-perigee
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-rackspace-gophercloud
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-rakyll-globalconf
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-rakyll-pb
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-rakyll-statik
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-rcrowley-go-metrics
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-remyoudompheng-bigfft
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-rfjakob-eme
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-robertkrimen-otto
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-russross-blackfriday
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-ryanuber-columnize
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-ryanuber-go-glob
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-samalba-dockerclient
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-samuel-go-zookeeper
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-sasha-s-go-deadlock
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-seccomp-libseccomp-golang
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-sergi-go-diff
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-sethgrid-pester
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-shiena-ansicolor
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-shogo82148-go-shuffle
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-shurcooL-sanitized_anchor_name
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-skarademir-naturalsort
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-skratchdot-open-golang
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-skynetservices-skydns
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-smartystreets-assertions
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-smartystreets-go-aws-auth
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-smartystreets-goconvey
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-spacejam-loghisto
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-spacemonkeygo-flagfile
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-spacemonkeygo-spacelog
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-spf13-afero
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-spf13-cast
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-spf13-cobra
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-spf13-fsync
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-spf13-jWalterWeatherman
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-spf13-nitro
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-spf13-pflag
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-spf13-viper
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-sstarcher-go-okta
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-stathat-go
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-stevvooe-resumable
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-streadway-amqp
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-stretchr-objx
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-stretchr-testify
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-syndtr-gocapability
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-syndtr-goleveldb
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-syndtr-gosnappy
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-templexxx-cpufeat
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-templexxx-reedsolomon
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-templexxx-xor
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-tent-http-link-go
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-thejerf-suture
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-tjfoc-gmsm
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-tonnerre-golang-pretty
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-ugorji-go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-urfave-cli
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-vaughan0-go-ini
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-vbatts-tar-split
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-vishvananda-netlink
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} aarch64 x86_64 %{arm}}
- golang-github-vishvananda-netns
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-vitrun-qart
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-vjeantet-asn1-ber
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-vmware-govcloudair
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-wsxiaoys-terminal
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-xanzy-ssh-agent
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-xeipuuv-gojsonpointer
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-xeipuuv-gojsonreference
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-xeipuuv-gojsonschema
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-xiang90-probing
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-xtaci-kcp-go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-xtaci-smux
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-yosssi-ace
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-yosssi-gohtml
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-yuin-gopher-lua
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-yvasiyarov-go-metrics
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-yvasiyarov-gorelic
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-yvasiyarov-newrelic_platform_go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-zillode-notify
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-zyedidia-clipboard
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-zyedidia-glob
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-zyedidia-poller
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-zyedidia-tcell
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-google-golangorg-cloud
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-googlecode-gcfg
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-googlecode-go-crypto
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-googlecode-go-decimal-inf
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-googlecode-go-exp
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-googlecode-goauth2
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-googlecode-gogoprotobuf
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-googlecode-gomock
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-googlecode-google-api-client
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-googlecode-goprotobuf
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-googlecode-log4go
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-googlecode-net
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-googlecode-sqlite
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-googlecode-text
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-googlecode-tools
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-googlecode-uuid
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-gopkg-check
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-gopkg-go-check-check
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-gopkg-go-macaroon-macaroon
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-gopkg-readline
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-gopkg-retry-v1
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-gopkg-sourcemap
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-gopkg-yaml
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-layeh-gopher-luar
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-torproject-pluggable-transports-goptlib
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golint
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- gomtree
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- gotags
ExclusiveArch: %{go_arches}
- gotun
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
ExclusiveArch: x86_64
- gprbuild
ExclusiveArch: %{GPRbuild_arches} %{bootstrap_arch}
- gprolog
ExclusiveArch: x86_64 %{ix86} ppc alpha
- gsf-sharp
ExclusiveArch: %mono_arches
- gtk-sharp-beans
ExclusiveArch: %mono_arches
- gtk-sharp2
ExclusiveArch: %mono_arches
- gtk-sharp3
ExclusiveArch: %{mono_arches}
- gtkd
ExclusiveArch: %{ldc_arches}
- gudev-sharp
ExclusiveArch: %mono_arches
- hedgewars
ExclusiveArch: %{fpc_arches}
- heketi
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- hub
ExclusiveArch: %{go_arches}
- hugo
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- hyena
ExclusiveArch: %{mono_arches}
- hyperscan
ExclusiveArch: x86_64
- hyperv-daemons
ExclusiveArch: i686 x86_64
- icaro
ExclusiveArch: %{ix86} %{arm} x86_64 noarch
- ikarus
ExclusiveArch: %{ix86}
- imvirt
ExclusiveArch: %{ix86} x86_64 ia64
- indistarter
ExclusiveArch: %{fpc_arches}
- infinipath-psm
ExclusiveArch: x86_64
- intel-cmt-cat
ExclusiveArch: x86_64 i686 i586
ExclusiveArch: x86_64 i686 i586
- ioport
ExclusiveArch: %{ix86} x86_64
- ipw2100-firmware
ExclusiveArch: noarch i386 x86_64
- ipw2200-firmware
ExclusiveArch: noarch i386 x86_64
- ispc
ExclusiveArch: %{arm} %{ix86} x86_64
- iucode-tool
ExclusiveArch: %{ix86} x86_64
- iwyu
ExclusiveArch: %{ix86} x86_64
- ixpdimm_sw
ExclusiveArch: x86_64
- jake
ExclusiveArch: %{nodejs_arches} noarch
- jasmine-node
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- java-1.8.0-openjdk-aarch32
ExclusiveArch: %{arm}
- julia
ExclusiveArch: %{ix86} x86_64
- keepass
ExclusiveArch: %{mono_arches}
- kernel
ExclusiveArch: %{all_x86} x86_64 ppc64 s390x %{arm} aarch64 ppc64le
- kicad
ExclusiveArch: %{ix86} x86_64 %{arm} ppc64 ppc64le aarch64
- knot-resolver
ExclusiveArch: %{arm} aarch64 %{ix86} x86_64
- kompose
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 s390x
- kosmtik
ExclusiveArch: %{nodejs_arches} noarch
- kubernetes
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- latrace
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 %{power64}
- lazarus
ExclusiveArch: %{fpc_arches}
- ldc
ExclusiveArch: %{ldc_arches}
- libbsr
ExclusiveArch: %{power64}
- libclc
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 %{power64} s390x
- libcxl
ExclusiveArch: %{power64}
- libflatarray
ExclusiveArch: %{ix86} x86_64
- libhfi1
ExclusiveArch: x86_64
- libica
ExclusiveArch: s390 s390x
- libinvm-cim
ExclusiveArch: x86_64
- libinvm-cli
ExclusiveArch: x86_64
- libinvm-i18n
ExclusiveArch: x86_64
- libipt
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{ix86} x86_64
- libjingle
ExclusiveArch: %{ix86} x86_64 %{arm}
- libmfx
ExclusiveArch: %{ix86} x86_64
- libpsm2
ExclusiveArch: x86_64
- librtas
ExclusiveArch: ppc %{power64}
- libseccomp
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 mipsel mips64el ppc64 ppc64le s390 s390x
- libservicelog
ExclusiveArch: ppc %{power64}
- libsmbios
ExclusiveArch: x86_64 ia64 %{ix86}
- libunwind
ExclusiveArch: %{arm} aarch64 hppa ia64 mips ppc %{power64} %{ix86} x86_64
- libva-intel-hybrid-driver
ExclusiveArch: %{ix86} x86_64 ia64
- libvmi
ExclusiveArch: x86_64
- libvpd
ExclusiveArch: ppc %{power64}
- libxsmm
ExclusiveArch: x86_64
- libzfcphbaapi
ExclusiveArch: s390 s390x
- lldb
ExclusiveArch: %{arm} aarch64 %{ix86} x86_64
- lodash
ExclusiveArch: %{nodejs_arches} noarch
- log4net
ExclusiveArch: %mono_arches
- lrmi
ExclusiveArch: %{ix86}
- lsvpd
ExclusiveArch: ppc %{power64}
- luajit
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64
- mactel-boot
ExclusiveArch: x86_64
- manifest-tool
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- marked
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- matreshka
ExclusiveArch: %GPRbuild_arches
- maven-eclipse-plugin
ExclusiveArch: %{ix86} x86_64
- maxima
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc sparcv9
ExclusiveArch: %{ix86} x86_64 ppc sparcv9
- mcelog
ExclusiveArch: i686 x86_64
- mediaconch
ExclusiveArch: %{qt5_qtwebengine_arches}
- mellowplayer
ExclusiveArch: %{qt5_qtwebengine_arches}
- memkind
ExclusiveArch: x86_64
- memtest86+
ExclusiveArch: %{ix86} x86_64
- mesos
ExclusiveArch: x86_64
- micro
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- microcode_ctl
ExclusiveArch: %{ix86} x86_64
- micropython
ExclusiveArch: %{arm} %{ix86} x86_64
- mine_detector
ExclusiveArch: %{GNAT_arches}
- minetest
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64
- mingw-wine-gecko
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- mkbootdisk
ExclusiveArch: %{ix86} sparc sparc64 x86_64
- mnemosyne
ExclusiveArch: noarch %{qt5_qtwebengine_arches}
- mocha
ExclusiveArch: %{nodejs_arches} noarch
- mod_mono
ExclusiveArch: %mono_arches
- module-build-service
ExclusiveArch: %{ix86} x86_64 noarch
- mokutil
ExclusiveArch: %{ix86} x86_64 aarch64
- mongo-tools
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x
- mono
ExclusiveArch: %mono_arches
- mono-addins
ExclusiveArch: %mono_arches
- mono-basic
ExclusiveArch: %{mono_arches}
- mono-bouncycastle
ExclusiveArch: %mono_arches
- mono-cecil
ExclusiveArch: %mono_arches
- mono-cecil-flowanalysis
ExclusiveArch: %mono_arches
- mono-debugger
ExclusiveArch: %ix86 x86_64
- mono-reflection
ExclusiveArch: %mono_arches
- mono-tools
ExclusiveArch: %mono_arches
- mono-zeroconf
ExclusiveArch: %mono_arches
- monobristol
ExclusiveArch: %{mono_arches}
- monodevelop
ExclusiveArch: %mono_arches
- monodevelop-debugger-gdb
ExclusiveArch: %{mono_arches}
- monosim
ExclusiveArch: %mono_arches
- mrrescue
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64 ppc64
- msr-tools
ExclusiveArch: %{ix86} x86_64
- mustache-d
ExclusiveArch: %{ldc_arches}
- mysql-connector-net
ExclusiveArch: %{mono_arches}
- nacl-arm-binutils
ExclusiveArch: x86_64
- nacl-arm-gcc
ExclusiveArch: x86_64
- nacl-arm-newlib
ExclusiveArch: x86_64
- nacl-binutils
ExclusiveArch: x86_64
- nacl-gcc
ExclusiveArch: x86_64
- nacl-newlib
ExclusiveArch: x86_64
- nant
ExclusiveArch: %mono_arches
- nbc
ExclusiveArch: %{fpc_arches}
- nbdkit
ExclusiveArch: x86_64
- ndesk-dbus
ExclusiveArch: %{mono_arches}
- ndesk-dbus-glib
ExclusiveArch: %{mono_arches}
- newtonsoft-json
ExclusiveArch: %{mono_arches}
- nim
ExclusiveArch: %{nim_arches}
- nini
ExclusiveArch: %{mono_arches}
- node-gyp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs
ExclusiveArch: %{nodejs_arches}
- nodejs-Base64
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-abbrev
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-accepts
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-acorn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-acorn-object-spread
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-after
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-agent-base
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-agentkeepalive
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ain2
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-align-text
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-alter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansi
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgblack
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgblue
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgcyan
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bggreen
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgmagenta
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgred
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgwhite
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgyellow
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-black
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-blue
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bold
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-colors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-cyan
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansi-dim
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-font
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-gray
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-green
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansi-grey
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-hidden
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-inverse
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-italic
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-magenta
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansi-red
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-regex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-reset
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-strikethrough
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-styles
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansi-underline
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-white
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-wrap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansi-yellow
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansicolors
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansidiff
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansistyles
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-any-promise
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ap
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-append-field
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-append-transform
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-aproba
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-archiver
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-archiver-utils
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-archy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-are-we-there-yet
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-argparse
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-argsparser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-arr-diff
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-arr-exclude
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-arr-flatten
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-arr-union
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-buffer-from-string
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-differ
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-filter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-find
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-find-index
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-flatten
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-foreach
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-ify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-index
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-map
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-reduce
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-union
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-uniq
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-unique
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-arraybuffer-dot-slice
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-arraybuffer-equal
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-arrify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-as-number
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-asap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ascii-tree
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ascli
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-asn1
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-assert-plus
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-assertion-error
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-assume
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ast-traverse
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ast-types
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-astral
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-astral-angular-annotate
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-astral-pass
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-async
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-async-array-reduce
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-async-cache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-async-each
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-async-limiter
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-async-queue
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-async-some
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-asynckit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-atob
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-auto-bind
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-autoresolve
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ava-init
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-aws-sign
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-aws-sign2
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-aws4
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-babel-messages
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-babel-runtime
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-backbone
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-backoff
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-balanced-match
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-base
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-base-option
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-base-plugins
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-base32-encode
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-base64-arraybuffer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-base64-js
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-base64-url
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-base64id
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bash-match
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-basic-auth
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-basic-auth-connect
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-basic-auth-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-batch
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-bcrypt
ExclusiveArch: %{nodejs_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- nodejs-bcryptjs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-beeper
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-benchmark
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-better-assert
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-better-than-before
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bignumber-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bind-obj-methods
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bindings
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-bl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-blob
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-block-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bluebird
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-body-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-boolbase
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-boom
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-brace-expansion
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-braces
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-breakable
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-browser-request
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-browser-stdout
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bson
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-buble
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-buf-compare
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-buffer-crc32
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-buffer-equal
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-buffer-shims
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-buffer-writer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-buffertools
ExclusiveArch: %{nodejs_arches}
- nodejs-bufferutil
ExclusiveArch: %{nodejs_arches}
- nodejs-builtin-modules
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-builtins
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bundle-dependencies
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-bunker
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-bunyan
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-burrito
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-busboy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-byline
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bytes
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cache-base
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-caching-transform
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-call-delayed
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-call-matcher
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-call-signature
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-callback-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-caller-callsite
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-caller-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-callsite
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-callsites
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-camel-case
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-camelcase
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-camelcase-keys
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-caniuse-db
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-capture-stack-trace
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-carrier
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-caseless
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-center-align
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-connect-middleware
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-oauth2orize-grant
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-passport-strategy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chainer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chainsaw
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chalk
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-change-case
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-char-spinner
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-character-parser
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-charm
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cheerio
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-child-process-close
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chmodr
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chownr
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chroma-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chrono
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-circular-json
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cjson
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-clap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-class-utils
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-clean-css
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-clean-yaml-object
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cli
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cli-color
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cli-spinner
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cli-table
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cliui
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-clone
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-clone-deep
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-clone-stats
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-closure-compiler
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cls
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cmd-shim
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-co
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-co-mocha
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-co-with-promise
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-coa
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-code-point-at
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-codemirror
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-coffee-coverage
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-collection-visit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-collections
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-color-support
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-colors
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-colour
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-columnify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-combined-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-commander
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-common-path-prefix
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-commondir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-commoner
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-commonmark
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-compare-func
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-component-emitter
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-component-indexof
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-component-inherit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-compress-commons
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-compressible
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-compression
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-concat-map
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-concat-stream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-config-chain
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-connect
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-connect-livereload
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-connect-timeout
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-console-browserify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-console-dot-log
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-consolemd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-constant-case
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-constantinople
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-content-disposition
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-content-type
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-angular
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-writer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-commits-filter
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-commits-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-convert-hex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-convert-source-map
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cookie
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cookie-jar
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cookie-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cookie-session
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cookie-signature
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cookiejar
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cookies
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-copy-descriptor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-core-assert
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-core-js
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-core-util-is
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-couch-login
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-coveralls
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-crc
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-crc32-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-create-error-class
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cross-spawn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cross-spawn-async
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cryptiles
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-csrf
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-css
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-css-parse
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-css-select
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-css-stringify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-css-tree
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-css-what
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-csscomb-core
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csslint
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csso
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cssom
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csurf
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csv
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csv-generate
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csv-parse
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csv-spectrum
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csv-stringify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ctype
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-currently-unhandled
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cycle
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cyclist
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-d
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-dargs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dashdash
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-data-uri-to-buffer
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-date-now
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dateformat
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-death
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-debug
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-debug-fabulous
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-debuglog
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-decamelize
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-decompress-response
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dedent
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-deep-eql
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-deep-equal
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-deep-extend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-deep-is
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-deeper
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-default-require-extensions
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-default-resolution
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-defaults
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-defence
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-defence-cli
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-deferred
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-define-properties
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-define-property
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-defined
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-defs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-degenerator
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-del
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-delayed-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-delegates
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-delete
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dep-graph
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-depd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dependency-lister
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-deprecated
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-destroy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-detect-file
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-detect-indent
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-detect-newline
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-detect-node
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-detective
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dezalgo
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dicer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-diff
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-difflet
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-difflib
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-docopt
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-doctrine
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dom-serializer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-domelementtype
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-domhandler
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-domutils
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dot-case
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dot-prop
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dotfile-regex
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-dreamopt
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dryice
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-dtree
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-duplex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-duplexer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-duplexer2
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-duplexer3
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-duplexify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-duration
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-each
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-each-async
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ebnf-parser
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-echomd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ecstatic
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-editor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ee-first
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ejs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-emojione
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-empty-dir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-encodeurl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-encoding
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-end-of-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-engine-dot-io-client
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-engine-dot-io-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-entities
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-error-ex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-error-symbol
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-errorhandler
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-errs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-es-abstract
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-es-to-primitive
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-es5-ext
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es5-shim
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es6-iterator
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es6-map
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es6-promise
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-es6-promisify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-es6-set
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es6-shim
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es6-symbol
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es6-weak-map
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-escallmatch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-escape-html
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-escape-regexp-component
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-escape-string-regexp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-escodegen
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-escope
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-espower
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-espower-location-detector
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-esprima
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-esprima-fb
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-esprima-harmony-jscs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-espurify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-esrecurse
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-estraverse
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-estraverse-fb
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-esutils
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-etag
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-event-emitter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-event-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-eventemitter2
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-eventemitter3
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-events
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-events-to-array
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-everything-dot-js
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-execa
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-exit
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-expand-brackets
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-expand-range
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-expand-tilde
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-expect
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-expect-dot-js
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-express
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-express-session
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-extend
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-extend-shallow
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-extglob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-extsprintf
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-eyes
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fake
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fancy-log
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-far
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fast-levenshtein
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fastfall
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-faucet
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-faye-websocket
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fd-slicer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fg-lodash
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-figures
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-file-entry-cache
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-file-sync-cmp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-file-uri-to-path
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-filed
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-filelist
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-filename-regex
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fileset
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fill-keys
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fill-range
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-finalhandler
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-find-cache-dir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-find-up
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-findup-sync
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-first-chunk-stream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-flagged-respawn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-flat-cache
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-flot
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-flush-write-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fmix
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fn-dot-name
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fn-name
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-follow
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-follow-redirects
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-for-in
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-for-own
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-foreach
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-foreground-child
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-forever-agent
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-form-data
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-formatio
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-formidable
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-forwarded
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fragment-cache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-freetree
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fresh
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-from
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-from2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-dot-notify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-exists-cached
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-exists-sync
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fs-ext
ExclusiveArch: %{nodejs_arches}
- nodejs-fs-extra
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-promise
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-temp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-vacuum
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-write-stream-atomic
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs2
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fstream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fstream-ignore
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fstream-npm
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ftp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-function-bind
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-function-loop
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-gauge
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-gaze
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-gdal
ExclusiveArch: %{nodejs_arches}
- nodejs-generate-function
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-generate-object-property
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-generic-pool
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-get-pkg-repo
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-get-port
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-get-stdin
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-get-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-get-uri
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-get-value
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-getobject
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-gettext-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-git-dummy-commit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-git-remote-origin-url
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-gitconfiglocal
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-github-url-from-git
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-github-url-from-username-repo
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-glob
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-glob-base
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-glob-expand
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-glob-parent
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-global-modules
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-global-prefix
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-globals
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-globby
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-globule
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-glogg
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-gnode
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-gonzales-pe
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-got
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-graceful-fs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-graceful-readlink
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grip
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-growl
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-angular-templates
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-banner
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-cli
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-compare-size
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-clean
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-concat
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-connect
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-copy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-contrib-csslint
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-cssmin
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-htmlmin
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-contrib-internal
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-less
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-nodeunit
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-requirejs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-contrib-uglify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-watch
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-git-authors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-html-validation
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-init
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-known-options
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-legacy-log
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-legacy-log-utils
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-legacy-util
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-lib-contrib
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-saucelabs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-sed
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-simple-mocha
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-svgmin
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-util-args
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-util-options
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-util-process
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-util-property
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-wrap
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-gulp-mocha
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-gulp-util
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-gulplog
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-gzip-size
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-handle-thing
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-handlebars
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-har-validator
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-ansi
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-binary
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-binary2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-color
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-has-cors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-flag
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-glob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-has-gulplog
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-has-unicode
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-value
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-values
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-yarn
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hash_file
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hawk
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-he
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-heap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-hex-to-array-buffer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-highlight-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hock
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hoek
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-homedir-polyfill
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hook-std
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hooker
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-hosted-git-info
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hsluv
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-html-minifier
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-htmlparser2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-http-deceiver
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-http-errors
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-http-proxy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-http-proxy-agent
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-http-server
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-http-signature
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-http2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-https-proxy-agent
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-humanize-ms
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-i
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-i18n-transform
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-i2c
ExclusiveArch: %{nodejs_arches}
- nodejs-iconv
ExclusiveArch: %{nodejs_arches}
- nodejs-iconv-lite
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-iferr
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ignore
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-imul
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-imurmurhash
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-indent-string
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-indexof
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-infinity-agent
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-inflight
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-info-symbol
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-inherit
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-inherits
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-inherits1
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ini
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-init-package-json
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-inline-source-map
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-install
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-int64-buffer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-interpret
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-into-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-invert-kv
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ip
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ipaddr-dot-js
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-irc-colors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-irregular-plurals
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-absolute
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-accessor-descriptor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-arrayish
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-arrow-function
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-boolean-object
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-buffer
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-builtin-module
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-callable
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-data-descriptor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-date-object
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-descriptor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-dir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-dotfile
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-equal
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-equal-shallow
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-error
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-extendable
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-extglob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-finite
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-fullwidth-code-point
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-generator
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-generator-fn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-generator-function
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-glob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-lower-case
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-my-json-valid
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-negated-glob
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-number
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-number-object
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-obj
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-object
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-observable
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-path-cwd
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-path-in-cwd
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-path-inside
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-plain-obj
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-plain-object
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-primitive
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-promise
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-property
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-redirect
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-regex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-regexp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-registered
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-relative
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-retry-allowed
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-string
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-subset
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-symbol
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-text-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-typedarray
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-unc-path
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-upper-case
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-url
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-utf8
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-valid-glob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-valid-instance
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-windows
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-isarray
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-isexe
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-iso8601
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-isobject
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-isodate
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-isstream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-istanbul
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jade
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jasmine-growl-reporter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jasmine-reporters
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jison
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jison-lex
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jju
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-joose
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-joosex-namespace-depended
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-joosex-simplerequest
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-js-base64
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-js-yaml
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jschardet
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jscoverage
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jshint
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-json-diff
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-json-localizer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-json-parse-helpfulerror
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-json-stable-stringify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-json-stringify-safe
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-json3
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jsonfile
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jsonify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jsonm
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jsonparse
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jsonpointer
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jsonselect
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jwt-simple
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-keep-alive-agent
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-keygrip
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-keypress
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-kind-of
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-klaw
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-kuler2gpl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-langdetect
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-latest-version
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-lazy-cache
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-lazystream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-lcid
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-lcov-parse
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-leaflet
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-leaflet-formbuilder
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-leaflet-hash
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-leche
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-left-pad
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-less
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-levn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-lex-parser
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-libxmljs
ExclusiveArch: %{nodejs_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- nodejs-line-numbers
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-line-reader
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-linefix
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-linkify-it
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-load-grunt-tasks
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-load-json-file
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-locate-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-lockfile
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-log-driver
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-log-ok
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-log-symbols
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-log-utils
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-lolex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-longest
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-loud-rejection
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-lower-case
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-lower-case-first
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-lowercase-keys
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-lru-cache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-lru-queue
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ltx
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-magic-string
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-make-arrow-function
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-make-dir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-make-generator-function
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-make-node
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-makedir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-makeerror
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-map-cache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-map-obj
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-map-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-map-visit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mapnik
ExclusiveArch: %{nodejs_arches}
- nodejs-mapnik-pool
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mapnik-vector-tile
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-markdown
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-markdown-it-testgen
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-marked
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-matched
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-max-timeout
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-maxmin
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mbtiles
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-md5-hex
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-md5-o-matic
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-mdn-data
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mdurl
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-media-typer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-memoize-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-memoizee
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-memwatch-next
ExclusiveArch: %{nodejs_arches}
- nodejs-meow
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-merge-descriptors
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-merge-stream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-metascript
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-method-override
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-methods
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-millstone
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mime
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-mime-db
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mime-types
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mimeparse
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-minimalistic-assert
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-minimatch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-minimist
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-minstache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mixin-deep
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mixin-object
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mkdirp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mkfiletree
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mock-bin
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mock-fs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mock-git
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-modify-values
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-module-not-found-error
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-moment
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-moment-timezone
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mongodb
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mongodb-core
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-monocle
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-morgan
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ms
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-muffin
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-multiline
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-multimatch
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-multiparty
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-multipipe
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-murmur-32
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mustache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mute-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mv
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-mysql
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mz
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-nan
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nan0
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-nan1
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nano
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nanoseconds
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-native-or-bluebird
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ncp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-needle
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-negotiator
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-nested-error-stacks
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-net-browserify-alt
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-netmask
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-next
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-next-tick
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-node-expat
ExclusiveArch: %{nodejs_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- nodejs-node-int64
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-node-markdown
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-node-print
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-node-static
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-node-status-codes
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-node-stringprep
ExclusiveArch: %{nodejs_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- nodejs-node-uuid
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-nomnom
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-noncharacters
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nopt
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nopt-usage
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-noptify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-normalize-git-url
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-normalize-package-data
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-normalize-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npm-cache-filename
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npm-install-checks
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npm-license
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-npm-package-arg
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npm-registry-client
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-npm-run-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npm-stats
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npm-user-validate
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npmlog
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nsp-api
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nsp-audit-shrinkwrap
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nth-check
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-number-is-nan
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-numeral
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-oauth
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-oauth-sign
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-oauth2orize
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-assign
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-copy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-dot-entries
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-object-dot-omit
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-object-dot-pick
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-object-inspect
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-is
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-keys
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-visit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-observable-to-promise
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-obuf
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-on-finished
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-on-headers
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-once
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-onetime
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-only-shallow
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-oop
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-open
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-opener
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-opn
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-option-cache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-option-chain
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-optionator
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-options
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-optjs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-opts
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-orchestrator
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ordered-read-streams
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-os-homedir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-os-locale
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-os-shim
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-os-tmpdir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-osenv
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-output-file-sync
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-own-or
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-own-or-env
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-p-finally
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-p-is-promise
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-p-limit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-p-locate
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pac-proxy-agent
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pac-resolver
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-package
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-package-info
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-package-json
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-package-license
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-packaging
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-packet-reader
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pad
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pad-left
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-paperboy
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-param-case
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parse-github-repo-url
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parse-glob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-parse-json
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parse-ms
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parse-passwd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parsejson
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parseqs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parserlib
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-parseuri
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parseurl
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pascal-case
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pascalcase
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-passport-http-bearer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-passport-oauth
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-passport-oauth1
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-passport-oauth2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-passport-oauth2-client-password
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-passport-strategy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-array
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-path-case
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-dirname
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-exists
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-extra
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-is-absolute
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-is-inside
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-key
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-to-regexp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-path-type
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path2
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pathval
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pause
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pause-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pbkdf2-password
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pedding
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pegjs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pem
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pff
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pg-connection-string
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-escape
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-int8
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-types
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pgpass
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pinkie
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pinkie-promise
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pkg-dir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pkg-up
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pkginfo
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-platform
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-plur
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-portfinder
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-portscanner
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-posix-character-classes
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-posix-getopt
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-postgres-array
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-postgres-bytea
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-postgres-date
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-postgres-interval
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-precond
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-prelude-ls
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-prepend-http
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-preserve
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pretty-bytes
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pretty-hrtime
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pretty-ms
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pretty-time
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-private
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-process-nextick-args
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-progress
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-progress-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-promise
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-promises-aplus-tests
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-prompt
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-promzard
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-propagate
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-proto-list
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-proxy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-proxy-addr
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-proxy-agent
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-proxyquire
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pruddy-error
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pseudomap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pubcontrol
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pump
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pumpify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-q
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-q-io
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-qs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-qtdatastream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-queue-async
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-quick-lru
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-qunit-extras
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-qunitjs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rainbowsocks
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-random-bytes
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-random-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-randomatic
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-range-parser
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-raw-body
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rc
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-re-emitter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-read
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-read-all-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-read-cmd-shim
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-read-dir-files
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-read-file
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-read-installed
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-read-json-sync
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-read-package-json
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-read-package-tree
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-read-pkg
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-read-pkg-up
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-readable-stream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-readdir-scoped-modules
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-readdirp
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-realize-package-specifier
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-recast
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-rechoir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-redent
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-reduce-component
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-regenerator
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-regex-cache
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-regex-not
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-registry-url
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-relateurl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-remove-trailing-separator
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-repeat-element
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-repeat-string
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-repeating
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-repl
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-replace
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-replace-ext
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-replace-require-self
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-request
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-requestretry
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-require-cs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-require-directory
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-require-inject
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-require-uncached
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-require-yaml
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-requirejs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-requires-port
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-resolve
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-resolve-cwd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-resolve-dir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-resolve-from
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-resolve-pkg
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-resolve-url
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-response-time
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-resumer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-retry
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-reusify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-revalidator
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-rewire
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rfile
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rhea
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-right-align
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rimraf
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rndm
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-rollup
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ronn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-run-parallel-limit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-runforcover
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-safe-buffer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-safe-json-stringify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-safecb
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-samsam
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sauce-tunnel
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-saucelabs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-sax
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-scmp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-secure-random
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-seedrandom
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-select-hose
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-semver
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-send
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-sentence-case
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sentiment
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-seq
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sequencify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-serialize-error
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-serve-index
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-serve-static
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-server-destroy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-set-blocking
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-set-getter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-set-immediate
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-set-immediate-shim
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-set-value
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-setimmediate
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-setprototypeof
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sha
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-shallow-clone
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-shebang-command
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-shebang-regex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-shelljs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-shelljs-nodecli
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-should
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-should-equal
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-should-format
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-should-http
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-should-type
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-showdown
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sigmund
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-signal-exit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-silent-npm-registry-client
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-simple-assert
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-simple-asyncify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-simple-fmt
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-simple-is
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-simple-markdown
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-single-line-log
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sinon
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sinon-restore
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-slide
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-smart-buffer
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-snake-case
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snapdragon
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snapdragon-capture
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snapdragon-capture-set
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snapdragon-node
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snapdragon-util
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snockets
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-sntp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-socks-client
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-socks-proxy-agent
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-sort-keys
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sorted-object
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-source-map
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-source-map-fixtures
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-source-map-resolve
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-source-map-support
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-source-map-url
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sparkles
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-spawn-sync
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-spawn-wrap
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-spdx-correct
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-spdx-exceptions
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-spdx-expression-parse
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-spdx-license-ids
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-spec
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-speedometer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-split
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-split-string
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-split2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sprintf
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sprintf-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sqlite3
ExclusiveArch: %{nodejs_arches}
- nodejs-srs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ssri
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-st
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stable
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stack-trace
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stack-utils
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-static-extend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-static-favicon
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-statuses
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-std-mocks
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-combiner
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-consume
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stream-counter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stream-each
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-equal
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-pair
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-reduce
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-replace
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stream-shift
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-spigot
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-to-array
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-transform
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-streamsearch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-streamsink
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-streamtest
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-string
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-string-dot-prototype-dot-repeat
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-string-dot-prototype-dot-trim
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-string-width
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-string_decoder
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stringmap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stringscanner
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stringset
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stringstream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-ansi
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-strip-bom
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-bom-stream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-strip-bom-string
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-color
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-eof
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-indent
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-strip-json-comments
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-path
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-strong-log-transformer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strscanner
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stylus
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-success-symbol
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-superagent
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-superagent-proxy
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-supertest
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-supervisor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-supports-color
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-suspend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-svgmin
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-svgo
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-swap-case
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-symbol-observable
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tad
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tap
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tap-mocha-reporter
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tap-out
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tap-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tap-spec
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tape
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tapes
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tar
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tar-pack
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tar-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-temp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-temp-dir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-temp-write
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-temporary
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tern
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tern-cordovajs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tern-liferay
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-terst
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-test
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-testdata-w3c-json-form
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-testjs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-testswarm
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-testutil
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-text-extensions
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-text-table
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-thenify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-thenify-all
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-thread-sleep
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-through
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-through2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-through2-filter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-thunkify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tildify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tilejson
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tilelive
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tilelive-mapnik
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tiletype
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-time-diff
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-time-stamp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-timed-out
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-timekeeper
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-timers-ext
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tiny-lr-fork
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-title-case
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tlds
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tmatch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tmp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tmpl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-to-absolute-glob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-to-object-path
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-to-regex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-to-regex-range
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tough-cookie
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tracejs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-transformers
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-traverse
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-treeify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tressa
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-trim
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-trim-newlines
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-trim-off-newlines
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-trivial-deferred
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-try-open
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-try-thread-sleep
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tryor
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tsame
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tsscmp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ttembed-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tunnel-agent
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-type-check
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-type-detect
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-type-is
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-type-name
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-typeahead.js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-typedarray
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-typescript
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-uc-dot-micro
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-uglify-to-browserify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-uid-number
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-uid-safe
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-uid2
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ultron
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-umask
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-unc-path-regex
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-underscore
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-underscore-dot-logger
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-unicode-7.0.0
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-unicode-length
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-union
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-union-value
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-unique-filename
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-unique-slug
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-unique-stream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-unique-temp-dir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-unpipe
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-unset-value
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-unzip-response
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-upper-case
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-upper-case-first
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-uri-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-urix
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-url-join
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-url-parse-lax
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-url2
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-use
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-user-home
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-utf8
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-utfx
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-util
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-util-deprecate
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-util-extend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-utile
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-utilities
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-utils-merge
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-uuid
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-vali-date
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-validate-npm-package-license
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-validate-npm-package-name
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-vary
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-vasync
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-verror
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-vhost
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-vinyl
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-vlq
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-vow
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-vow-fs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-vow-queue
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-vows
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-w3cjs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-walkdir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-walker
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ware
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-warning-symbol
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-watchit
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-watershed
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-wbuf
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-wcwidth
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-weak-map
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-websocket-driver
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-when
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-whet-dot-extend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-which
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-win-spawn
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-window-size
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-winston
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-with
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-woothee
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-wordwrap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-wrap-ansi
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-wrap-fn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-wrappy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-write
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-write-file-atomic
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-write-json-file
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-write-pkg
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ws
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-xml2js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-xmlbuilder
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-xmldom
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-xmlhttprequest-ssl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-xregexp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-xtend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-y18n
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-yallist
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-yapool
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-yargs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-yargs-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-yauzl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-yeast
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-zap
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-zip-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-zipfile
ExclusiveArch: %{nodejs_arches}
- nodejs-zlib-browserify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-zlibjs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodeunit
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- notify-sharp
ExclusiveArch: %{mono_arches}
- notify-sharp3
ExclusiveArch: %{mono_arches}
- nuget
ExclusiveArch: %{mono_arches}
- numatop
ExclusiveArch: %{ix86} x86_64
- nunit
ExclusiveArch: %{mono_arches}
- nunit2
ExclusiveArch: %{mono_arches}
- nvml
ExclusiveArch: x86_64
- nwchem
ExclusiveArch: x86_64 %{ix86}
- obfs4
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- oci-kvm-hook
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- oci-register-machine
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- oci-umount
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x %{mips}
- ocitools
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- odcs
ExclusiveArch: %{ix86} x86_64
- olpc-kbdshim
ExclusiveArch: %{ix86} %{arm}
- olpc-netutils
ExclusiveArch: %{ix86} %{arm}
- olpc-powerd
ExclusiveArch: %{ix86} %{arm}
- olpc-utils
ExclusiveArch: %{ix86} %{arm}
- onedrive
ExclusiveArch: %{ldc_arches}
- opal-prd
ExclusiveArch: ppc64le
- open-vm-tools
ExclusiveArch: x86_64
ExclusiveArch: %{ix86} x86_64
- openblas
ExclusiveArch: %{openblas_arches}
- openjfx
ExclusiveArch: %{ix86} x86_64
- openlibm
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 %{power64}
- openmx
ExclusiveArch: x86_64 %{ix86}
- openni
ExclusiveArch: %{ix86} x86_64 %{arm}
- openni-primesense
ExclusiveArch: %{ix86} x86_64 %{arm}
- openssl-ibmca
ExclusiveArch: s390 s390x
- origin
ExclusiveArch: %{go_arches}
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- orion
ExclusiveArch: %{qt5_qtwebengine_arches}
- orocos-bfl
ExclusiveArch: %{ix86} x86_64
- orthorobot
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64 ppc64
- paflib
ExclusiveArch: ppc %{power64}
- pcc
ExclusiveArch: %{ix86} x86_64
- pcmciautils
ExclusiveArch: %{ix86} x86_64 ia64 ppc ppc64 %{arm}
- pdfmod
ExclusiveArch: %mono_arches
- perl-Dumbbench
ExclusiveArch: %{ix86} x86_64 noarch
- perl-Parse-DMIDecode
ExclusiveArch: %{ix86} x86_64 ia64 aarch64
- pesign
ExclusiveArch: %{ix86} x86_64 ia64 aarch64 arm
- pesign-test-app
ExclusiveArch: i686 x86_64 ia64 aarch64
- pinta
ExclusiveArch: %mono_arches
- pioneer
ExclusiveArch: %{ix86} x86_64
- playonlinux
ExclusiveArch: %{arm} aarch64 %{ix86} x86_64
- plv8
ExclusiveArch: %v8_arches
- poppler-sharp
ExclusiveArch: %mono_arches
- popub
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- powerline-go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- powerpc-utils
ExclusiveArch: ppc %{power64}
- ppc64-diag
ExclusiveArch: ppc %{power64}
- ppc64-utils
ExclusiveArch: ppc %{power64}
- publican-jboss
ExclusiveArch: i686 x86_64
- pvs-sbcl
ExclusiveArch: %{ix86} x86_64 ppc sparcv9
- python-afl
ExclusiveArch: %{ix86} x86_64
- python-etcd
ExclusiveArch: noarch %{ix86} x86_64 %{arm} aarch64 ppc64le s390x
- python-healpy
ExclusiveArch: aarch64 ppc64 ppc64le x86_64 s390x
- python-openoffice
ExclusiveArch: noarch x86_64
- python-ovirt-register
ExclusiveArch: %{ix86} x86_64
- python-pymoc
ExclusiveArch: aarch64 ppc64 ppc64le x86_64 s390x
- python-rpi-gpio
ExclusiveArch: %{arm} aarch64
- q4wine
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- qcint
ExclusiveArch: x86_64
- qclib
ExclusiveArch: s390 s390x
- qt4pas
ExclusiveArch: %{fpc_arches}
- qt5-qtwebengine
ExclusiveArch: %{qt5_qtwebengine_arches}
- quantum-espresso
ExclusiveArch: x86_64 %{ix86}
ExclusiveArch: %{openblas_arches}
- rclone
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- rear
ExclusiveArch: %ix86 x86_64 ppc ppc64 ppc64le ia64
- redhat-lsb
ExclusiveArch: %{ix86} ia64 x86_64 ppc ppc64 s390 s390x %{arm} aarch64 ppc64le
- reg
ExclusiveArch: x86_64
- renderdoc
ExclusiveArch: %{ix86} x86_64
- reptyr
ExclusiveArch: %{ix86} x86_64 %{arm}
- rescene
ExclusiveArch: %{mono_arches}
- restsharp
ExclusiveArch: %{mono_arches}
- rhythmbox-alternative-toolbar
ExclusiveArch: %{ix86} %{arm} x86_64 ppc64 ppc64le
- rkt
ExclusiveArch: x86_64 aarch64 %{arm} %{ix86}
- rssguard
ExclusiveArch: %{qt5_qtwebengine_arches}
- runc
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le %{mips} s390x
- rust
ExclusiveArch: %{rust_arches}
- rust-addr2line
ExclusiveArch: %{rust_arches}
- rust-adler32
ExclusiveArch: %{rust_arches}
- rust-aho-corasick
ExclusiveArch: %{rust_arches}
- rust-ansi_term
ExclusiveArch: %{rust_arches}
- rust-arrayref
ExclusiveArch: %{rust_arches}
- rust-arrayvec
ExclusiveArch: %{rust_arches}
- rust-atk-sys
ExclusiveArch: %{rust_arches}
- rust-atty
ExclusiveArch: %{rust_arches}
- rust-backtrace
ExclusiveArch: %{rust_arches}
- rust-backtrace-sys
ExclusiveArch: %{rust_arches}
- rust-base100
ExclusiveArch: %{rust_arches}
- rust-base64
ExclusiveArch: %{rust_arches}
- rust-bencher
ExclusiveArch: %{rust_arches}
- rust-bincode
ExclusiveArch: %{rust_arches}
- rust-bincode0.8
ExclusiveArch: %{rust_arches}
- rust-bitflags
ExclusiveArch: %{rust_arches}
- rust-bitflags0.9
ExclusiveArch: %{rust_arches}
- rust-brev
ExclusiveArch: %{rust_arches}
- rust-build_const
ExclusiveArch: %{rust_arches}
- rust-bytecount
ExclusiveArch: %{rust_arches}
- rust-byteorder
ExclusiveArch: %{rust_arches}
- rust-bytes
ExclusiveArch: %{rust_arches}
- rust-bytes0.3
ExclusiveArch: %{rust_arches}
- rust-c_vec
ExclusiveArch: %{rust_arches}
- rust-cairo-rs
ExclusiveArch: %{rust_arches}
- rust-cairo-sys-rs
ExclusiveArch: %{rust_arches}
- rust-cbindgen
ExclusiveArch: %{rust_arches}
- rust-cc
ExclusiveArch: %{rust_arches}
- rust-cfg-if
ExclusiveArch: %{rust_arches}
- rust-chrono
ExclusiveArch: %{rust_arches}
- rust-clap
ExclusiveArch: %{rust_arches}
- rust-cmake
ExclusiveArch: %{rust_arches}
- rust-coco
ExclusiveArch: %{rust_arches}
- rust-cpp_demangle
ExclusiveArch: %{rust_arches}
- rust-crc
ExclusiveArch: %{rust_arches}
- rust-crc-core
ExclusiveArch: %{rust_arches}
- rust-crossbeam
ExclusiveArch: %{rust_arches}
- rust-crypto-hash
ExclusiveArch: %{rust_arches}
- rust-cryptovec
ExclusiveArch: %{rust_arches}
- rust-ctrlc
ExclusiveArch: %{rust_arches}
- rust-curl
ExclusiveArch: %{rust_arches}
- rust-curl-sys
ExclusiveArch: %{rust_arches}
- rust-custom_derive
ExclusiveArch: %{rust_arches}
- rust-data-encoding
ExclusiveArch: %{rust_arches}
- rust-datetime
ExclusiveArch: %{rust_arches}
- rust-dbus
ExclusiveArch: %{rust_arches}
- rust-deque
ExclusiveArch: %{rust_arches}
- rust-devicemapper
ExclusiveArch: %{rust_arches}
- rust-diff
ExclusiveArch: %{rust_arches}
- rust-docopt
ExclusiveArch: %{rust_arches}
- rust-dtoa
ExclusiveArch: %{rust_arches}
- rust-edit-distance
ExclusiveArch: %{rust_arches}
- rust-either
ExclusiveArch: %{rust_arches}
- rust-encoding
ExclusiveArch: %{rust_arches}
- rust-encoding-index-japanese
ExclusiveArch: %{rust_arches}
- rust-encoding-index-korean
ExclusiveArch: %{rust_arches}
- rust-encoding-index-simpchinese
ExclusiveArch: %{rust_arches}
- rust-encoding-index-singlebyte
ExclusiveArch: %{rust_arches}
- rust-encoding-index-tradchinese
ExclusiveArch: %{rust_arches}
- rust-encoding_index_tests
ExclusiveArch: %{rust_arches}
- rust-encoding_rs
ExclusiveArch: %{rust_arches}
- rust-enum_primitive
ExclusiveArch: %{rust_arches}
- rust-env_logger
ExclusiveArch: %{rust_arches}
- rust-env_logger0.4
ExclusiveArch: %{rust_arches}
- rust-errln
ExclusiveArch: %{rust_arches}
- rust-errno
ExclusiveArch: %{rust_arches}
- rust-error-chain
ExclusiveArch: %{rust_arches}
- rust-exa
ExclusiveArch: %{rust_arches}
- rust-extprim
ExclusiveArch: %{rust_arches}
- rust-extprim_literals_macros
ExclusiveArch: %{rust_arches}
- rust-failure
ExclusiveArch: %{rust_arches}
- rust-failure_derive
ExclusiveArch: %{rust_arches}
- rust-fallible-iterator
ExclusiveArch: %{rust_arches}
- rust-fd-find
ExclusiveArch: %{rust_arches}
- rust-filetime
ExclusiveArch: %{rust_arches}
- rust-fixedbitset
ExclusiveArch: %{rust_arches}
- rust-flame
ExclusiveArch: %{rust_arches}
- rust-flate2
ExclusiveArch: %{rust_arches}
- rust-fnv
ExclusiveArch: %{rust_arches}
- rust-foreign-types
ExclusiveArch: %{rust_arches}
- rust-foreign-types-shared
ExclusiveArch: %{rust_arches}
- rust-fs2
ExclusiveArch: %{rust_arches}
- rust-futures
ExclusiveArch: %{rust_arches}
- rust-futures-cpupool
ExclusiveArch: %{rust_arches}
- rust-gdk
ExclusiveArch: %{rust_arches}
- rust-gdk-pixbuf
ExclusiveArch: %{rust_arches}
- rust-gdk-pixbuf-sys
ExclusiveArch: %{rust_arches}
- rust-gdk-sys
ExclusiveArch: %{rust_arches}
- rust-getopts
ExclusiveArch: %{rust_arches}
- rust-gimli
ExclusiveArch: %{rust_arches}
- rust-gio
ExclusiveArch: %{rust_arches}
- rust-gio-sys
ExclusiveArch: %{rust_arches}
- rust-git2
ExclusiveArch: %{rust_arches}
- rust-glib
ExclusiveArch: %{rust_arches}
- rust-glib-sys
ExclusiveArch: %{rust_arches}
- rust-glob
ExclusiveArch: %{rust_arches}
- rust-globset
ExclusiveArch: %{rust_arches}
- rust-gobject-sys
ExclusiveArch: %{rust_arches}
- rust-goblin
ExclusiveArch: %{rust_arches}
- rust-grep
ExclusiveArch: %{rust_arches}
- rust-gtk
ExclusiveArch: %{rust_arches}
- rust-gtk-rs-lgpl-docs
ExclusiveArch: %{rust_arches}
- rust-gtk-source-sys
ExclusiveArch: %{rust_arches}
- rust-gtk-sys
ExclusiveArch: %{rust_arches}
- rust-gzip-header
ExclusiveArch: %{rust_arches}
- rust-hamcrest
ExclusiveArch: %{rust_arches}
- rust-handlebars
ExclusiveArch: %{rust_arches}
- rust-heapsize
ExclusiveArch: %{rust_arches}
- rust-hex
ExclusiveArch: %{rust_arches}
- rust-home
ExclusiveArch: %{rust_arches}
- rust-httparse
ExclusiveArch: %{rust_arches}
- rust-idna
ExclusiveArch: %{rust_arches}
- rust-ignore
ExclusiveArch: %{rust_arches}
- rust-iovec
ExclusiveArch: %{rust_arches}
- rust-iso8601
ExclusiveArch: %{rust_arches}
- rust-itertools
ExclusiveArch: %{rust_arches}
- rust-itoa
ExclusiveArch: %{rust_arches}
- rust-jobserver
ExclusiveArch: %{rust_arches}
- rust-lazy_static
ExclusiveArch: %{rust_arches}
- rust-lazycell
ExclusiveArch: %{rust_arches}
- rust-libc
ExclusiveArch: %{rust_arches}
- rust-libdbus-sys
ExclusiveArch: %{rust_arches}
- rust-libgit2-sys
ExclusiveArch: %{rust_arches}
- rust-libloading
ExclusiveArch: %{rust_arches}
- rust-libssh2-sys
ExclusiveArch: %{rust_arches}
- rust-libudev
ExclusiveArch: %{rust_arches}
- rust-libudev-sys
ExclusiveArch: %{rust_arches}
- rust-libz-sys
ExclusiveArch: %{rust_arches}
- rust-linked-hash-map
ExclusiveArch: %{rust_arches}
- rust-lipsum
ExclusiveArch: %{rust_arches}
- rust-locale
ExclusiveArch: %{rust_arches}
- rust-log
ExclusiveArch: %{rust_arches}
- rust-log0.3
ExclusiveArch: %{rust_arches}
- rust-loopdev
ExclusiveArch: %{rust_arches}
- rust-lzma-sys
ExclusiveArch: %{rust_arches}
- rust-macro-attr
ExclusiveArch: %{rust_arches}
- rust-maplit
ExclusiveArch: %{rust_arches}
- rust-matches
ExclusiveArch: %{rust_arches}
- rust-md5
ExclusiveArch: %{rust_arches}
- rust-memchr
ExclusiveArch: %{rust_arches}
- rust-memmap
ExclusiveArch: %{rust_arches}
- rust-metadeps
ExclusiveArch: %{rust_arches}
- rust-mime
ExclusiveArch: %{rust_arches}
- rust-miniz-sys
ExclusiveArch: %{rust_arches}
- rust-miniz_oxide
ExclusiveArch: %{rust_arches}
- rust-miniz_oxide_c_api
ExclusiveArch: %{rust_arches}
- rust-mio
ExclusiveArch: %{rust_arches}
- rust-mio-uds
ExclusiveArch: %{rust_arches}
- rust-mnt
ExclusiveArch: %{rust_arches}
- rust-modifier
ExclusiveArch: %{rust_arches}
- rust-multimap
ExclusiveArch: %{rust_arches}
- rust-natord
ExclusiveArch: %{rust_arches}
- rust-net2
ExclusiveArch: %{rust_arches}
- rust-newtype_derive
ExclusiveArch: %{rust_arches}
- rust-nix
ExclusiveArch: %{rust_arches}
- rust-nodrop
ExclusiveArch: %{rust_arches}
- rust-nom
ExclusiveArch: %{rust_arches}
- rust-num
ExclusiveArch: %{rust_arches}
- rust-num-bigint
ExclusiveArch: %{rust_arches}
- rust-num-complex
ExclusiveArch: %{rust_arches}
- rust-num-integer
ExclusiveArch: %{rust_arches}
- rust-num-iter
ExclusiveArch: %{rust_arches}
- rust-num-rational
ExclusiveArch: %{rust_arches}
- rust-num-traits
ExclusiveArch: %{rust_arches}
- rust-num_cpus
ExclusiveArch: %{rust_arches}
- rust-number_prefix
ExclusiveArch: %{rust_arches}
- rust-object
ExclusiveArch: %{rust_arches}
- rust-openssl
ExclusiveArch: %{rust_arches}
- rust-openssl-probe
ExclusiveArch: %{rust_arches}
- rust-openssl-sys
ExclusiveArch: %{rust_arches}
- rust-ordermap
ExclusiveArch: %{rust_arches}
- rust-owning_ref
ExclusiveArch: %{rust_arches}
- rust-packaging
ExclusiveArch: %{rust_arches} noarch
- rust-pad
ExclusiveArch: %{rust_arches}
- rust-pager
ExclusiveArch: %{rust_arches}
- rust-pango
ExclusiveArch: %{rust_arches}
- rust-pango-sys
ExclusiveArch: %{rust_arches}
- rust-peeking_take_while
ExclusiveArch: %{rust_arches}
- rust-percent-encoding
ExclusiveArch: %{rust_arches}
- rust-permutate
ExclusiveArch: %{rust_arches}
- rust-permutohedron
ExclusiveArch: %{rust_arches}
- rust-pest
ExclusiveArch: %{rust_arches}
- rust-pest0.3
ExclusiveArch: %{rust_arches}
- rust-pkg-config
ExclusiveArch: %{rust_arches}
- rust-plain
ExclusiveArch: %{rust_arches}
- rust-pretty_env_logger
ExclusiveArch: %{rust_arches}
- rust-proc-macro2
ExclusiveArch: %{rust_arches}
- rust-procedural-masquerade
ExclusiveArch: %{rust_arches}
- rust-pulldown-cmark
ExclusiveArch: %{rust_arches}
- rust-quick-error
ExclusiveArch: %{rust_arches}
- rust-quickcheck
ExclusiveArch: %{rust_arches}
- rust-quickersort
ExclusiveArch: %{rust_arches}
- rust-quote
ExclusiveArch: %{rust_arches}
- rust-rand
ExclusiveArch: %{rust_arches}
- rust-rayon
ExclusiveArch: %{rust_arches}
- rust-rayon-core
ExclusiveArch: %{rust_arches}
- rust-regex
ExclusiveArch: %{rust_arches}
- rust-regex-syntax
ExclusiveArch: %{rust_arches}
- rust-relay
ExclusiveArch: %{rust_arches}
- rust-ripgrep
ExclusiveArch: %{rust_arches}
- rust-rustc-demangle
ExclusiveArch: %{rust_arches}
- rust-rustc-serialize
ExclusiveArch: %{rust_arches}
- rust-rustc-test
ExclusiveArch: %{rust_arches}
- rust-rustc_version
ExclusiveArch: %{rust_arches}
- rust-rustdoc-stripper
ExclusiveArch: %{rust_arches}
- rust-rustfilt
ExclusiveArch: %{rust_arches}
- rust-rustfmt
ExclusiveArch: %{rust_arches}
- rust-safemem
ExclusiveArch: %{rust_arches}
- rust-same-file
ExclusiveArch: %{rust_arches}
- rust-scoped-tls
ExclusiveArch: %{rust_arches}
- rust-scoped_threadpool
ExclusiveArch: %{rust_arches}
- rust-scopeguard
ExclusiveArch: %{rust_arches}
- rust-scroll
ExclusiveArch: %{rust_arches}
- rust-scroll_derive
ExclusiveArch: %{rust_arches}
- rust-seahash
ExclusiveArch: %{rust_arches}
- rust-semver
ExclusiveArch: %{rust_arches}
- rust-semver-parser
ExclusiveArch: %{rust_arches}
- rust-serde
ExclusiveArch: %{rust_arches}
- rust-serde0.8
ExclusiveArch: %{rust_arches}
- rust-serde_bytes
ExclusiveArch: %{rust_arches}
- rust-serde_cbor
ExclusiveArch: %{rust_arches}
- rust-serde_derive
ExclusiveArch: %{rust_arches}
- rust-serde_derive_internals
ExclusiveArch: %{rust_arches}
- rust-serde_ignored
ExclusiveArch: %{rust_arches}
- rust-serde_json
ExclusiveArch: %{rust_arches}
- rust-serde_json0.8
ExclusiveArch: %{rust_arches}
- rust-serde_test
ExclusiveArch: %{rust_arches}
- rust-serde_urlencoded
ExclusiveArch: %{rust_arches}
- rust-serde_yaml
ExclusiveArch: %{rust_arches}
- rust-sha1
ExclusiveArch: %{rust_arches}
- rust-shell-escape
ExclusiveArch: %{rust_arches}
- rust-shlex
ExclusiveArch: %{rust_arches}
- rust-siphasher
ExclusiveArch: %{rust_arches}
- rust-slab
ExclusiveArch: %{rust_arches}
- rust-slab0.3
ExclusiveArch: %{rust_arches}
- rust-smallvec
ExclusiveArch: %{rust_arches}
- rust-socket2
ExclusiveArch: %{rust_arches}
- rust-spin
ExclusiveArch: %{rust_arches}
- rust-spmc
ExclusiveArch: %{rust_arches}
- rust-stable_deref_trait
ExclusiveArch: %{rust_arches}
- rust-strings
ExclusiveArch: %{rust_arches}
- rust-strsim
ExclusiveArch: %{rust_arches}
- rust-syn
ExclusiveArch: %{rust_arches}
- rust-synom
ExclusiveArch: %{rust_arches}
- rust-synstructure
ExclusiveArch: %{rust_arches}
- rust-syntex_errors
ExclusiveArch: %{rust_arches}
- rust-syntex_pos
ExclusiveArch: %{rust_arches}
- rust-syntex_syntax
ExclusiveArch: %{rust_arches}
- rust-sys-info
ExclusiveArch: %{rust_arches}
- rust-tar
ExclusiveArch: %{rust_arches}
- rust-tempdir
ExclusiveArch: %{rust_arches}
- rust-tempfile
ExclusiveArch: %{rust_arches}
- rust-term
ExclusiveArch: %{rust_arches}
- rust-term_grid
ExclusiveArch: %{rust_arches}
- rust-term_size
ExclusiveArch: %{rust_arches}
- rust-termcolor
ExclusiveArch: %{rust_arches}
- rust-termion
ExclusiveArch: %{rust_arches}
- rust-test-assembler
ExclusiveArch: %{rust_arches}
- rust-textwrap
ExclusiveArch: %{rust_arches}
- rust-thread-id
ExclusiveArch: %{rust_arches}
- rust-thread_local
ExclusiveArch: %{rust_arches}
- rust-time
ExclusiveArch: %{rust_arches}
- rust-tokei
ExclusiveArch: %{rust_arches}
- rust-tokio-core
ExclusiveArch: %{rust_arches}
- rust-tokio-io
ExclusiveArch: %{rust_arches}
- rust-tokio-process
ExclusiveArch: %{rust_arches}
- rust-tokio-signal
ExclusiveArch: %{rust_arches}
- rust-toml
ExclusiveArch: %{rust_arches}
- rust-traitobject
ExclusiveArch: %{rust_arches}
- rust-typed-arena
ExclusiveArch: %{rust_arches}
- rust-unicase
ExclusiveArch: %{rust_arches}
- rust-unicode-bidi
ExclusiveArch: %{rust_arches}
- rust-unicode-normalization
ExclusiveArch: %{rust_arches}
- rust-unicode-segmentation
ExclusiveArch: %{rust_arches}
- rust-unicode-width
ExclusiveArch: %{rust_arches}
- rust-unicode-xid
ExclusiveArch: %{rust_arches}
- rust-unindent
ExclusiveArch: %{rust_arches}
- rust-unreachable
ExclusiveArch: %{rust_arches}
- rust-unsafe-any
ExclusiveArch: %{rust_arches}
- rust-untrusted
ExclusiveArch: %{rust_arches}
- rust-url
ExclusiveArch: %{rust_arches}
- rust-users
ExclusiveArch: %{rust_arches}
- rust-utf8-ranges
ExclusiveArch: %{rust_arches}
- rust-uuid
ExclusiveArch: %{rust_arches}
- rust-vec_map
ExclusiveArch: %{rust_arches}
- rust-version-sync
ExclusiveArch: %{rust_arches}
- rust-version_check
ExclusiveArch: %{rust_arches}
- rust-void
ExclusiveArch: %{rust_arches}
- rust-wait-timeout
ExclusiveArch: %{rust_arches}
- rust-walkdir
ExclusiveArch: %{rust_arches}
- rust-which
ExclusiveArch: %{rust_arches}
- rust-xattr
ExclusiveArch: %{rust_arches}
- rust-xz2
ExclusiveArch: %{rust_arches}
- rust-yaml-rust
ExclusiveArch: %{rust_arches}
- rust-yaml-rust0.3
ExclusiveArch: %{rust_arches}
- rust-yes
ExclusiveArch: %{rust_arches}
- rust-yubibomb
ExclusiveArch: %{rust_arches}
- rust-zoneinfo_compiled
ExclusiveArch: %{rust_arches}
- s390utils
ExclusiveArch: s390 s390x
- sagemath
ExclusiveArch: aarch64 %{arm} %{ix86} x86_64 ppc sparcv9
- sbcl
ExclusiveArch: %{arm} %{ix86} x86_64 ppc sparcv9 aarch64
- sbd
ExclusiveArch: i686 x86_64 s390x
- seabios
ExclusiveArch: x86_64
- seamonkey
ExclusiveArch: %{ix86} x86_64
- servicelog
ExclusiveArch: ppc %{power64}
- sgabios
ExclusiveArch: %{ix86} x86_64
- sharpfont
ExclusiveArch: %mono_arches
- sharpziplib
ExclusiveArch: %{mono_arches}
- shim
ExclusiveArch: x86_64
- shim-signed
ExclusiveArch: x86_64 aarch64
- shim-unsigned-aarch64
ExclusiveArch: aarch64
- shim-unsigned-x64
ExclusiveArch: x86_64
- sigul
ExclusiveArch: x86_64
- skychart
ExclusiveArch: %{fpc_arches}
- slapi-nis
ExclusiveArch: x86_64 %{ix86}
- smuxi
ExclusiveArch: %{ix86} x86_64 %{arm} ppc64le
- snapd
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x
- source-to-image
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- sparkleshare
ExclusiveArch: %{mono_arches}
- spicctrl
ExclusiveArch: %{ix86} x86_64
- spice
ExclusiveArch: x86_64
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- spice-xpi
ExclusiveArch: i686 x86_64 armv6l armv7l armv7hl aarch64
- spring
ExclusiveArch: %{ix86} x86_64
- springlobby
ExclusiveArch: %{ix86} x86_64
- startdde
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- statsd
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- stratis-cli
ExclusiveArch: %{rust_arches} noarch
- stratisd
ExclusiveArch: %{rust_arches}
- stripesnoop
ExclusiveArch: %{ix86} x86_64
- supermin
ExclusiveArch: x86_64
- syncthing
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- sysbench
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips}
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64
- syslinux
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{ix86} x86_64
- taglib-sharp
ExclusiveArch: %{mono_arches}
- tarantool
ExclusiveArch: %{ix86} x86_64 armv7hl armv7hnl aarch64
- tboot
ExclusiveArch: %{ix86} x86_64
- templates_parser
ExclusiveArch: %GPRbuild_arches
- ternimal
ExclusiveArch: %{rust_arches}
- themonospot-base
ExclusiveArch: %mono_arches
- themonospot-console
ExclusiveArch: %mono_arches
- themonospot-gui-gtk
ExclusiveArch: %mono_arches
- themonospot-plugin-avi
ExclusiveArch: %mono_arches
- themonospot-plugin-mkv
ExclusiveArch: %mono_arches
- thermald
ExclusiveArch: %{ix86} x86_64
- thunderbird-enigmail
ExclusiveArch: %{ix86} %{arm} ppc64 ppc64le s390x x86_64 noarch
- tilix
ExclusiveArch: %{ldc_arches}
- tmux-top
ExclusiveArch: %{go_arches}
- tomboy
ExclusiveArch: %{mono_arches}
- tpm2-abrmd
ExclusiveArch: %{ix86} x86_64
- tpm2-tools
ExclusiveArch: %{ix86} x86_64
- tpm2-tss
ExclusiveArch: %{ix86} x86_64
- tuned
ExclusiveArch: %{ix86} x86_64
- uClibc
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips}
- ucx
ExclusiveArch: aarch64 ppc64le x86_64
- ugene
ExclusiveArch: %{ix86} x86_64
- uglify-js
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- uglify-js1
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- unetbootin
ExclusiveArch: %{ix86} x86_64
- v8
ExclusiveArch: %{ix86} x86_64 %{arm} ppc mipsel mips64el
- v8-314
ExclusiveArch: %{ix86} x86_64 %{arm} mips mipsel ppc ppc64
- valgrind
ExclusiveArch: %{ix86} x86_64 ppc ppc64 ppc64le s390x armv7hl aarch64
- vboot-utils
ExclusiveArch: %{arm} aarch64 %{ix86} x86_64
- vdsm
ExclusiveArch: x86_64 %{power64} aarch64
- vim-go
ExclusiveArch: %{?golang_arches}%{!?golang_arches:%{ix86} x86_64 %{arm}}
- virtualplanet
ExclusiveArch: %{fpc_arches}
- vrq
ExclusiveArch: %{ix86} x86_64
- warsow
ExclusiveArch: %{ix86} x86_64 %{arm}
- warsow-data
ExclusiveArch: %{ix86} x86_64 %{arm}
- webkit-sharp
ExclusiveArch: %mono_arches
- webkit2-sharp
ExclusiveArch: %mono_arches
- wine
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
ExclusiveArch: %{ix86} %{arm}
- winetricks
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- wiredtiger
ExclusiveArch: x86_64 aarch64 ppc64le
- wraplinux
ExclusiveArch: %{ix86} x86_64
- wxMaxima
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc sparcv9
- x2goclient
ExclusiveArch: x86_64
- x86info
ExclusiveArch: %{ix86} x86_64
- xen
ExclusiveArch: %{ix86} x86_64 armv7hl aarch64
- xmlada
ExclusiveArch: %{GPRbuild_arches}
- xorg-x11-drv-armsoc
ExclusiveArch: %{arm} aarch64
- xorg-x11-drv-geode
ExclusiveArch: %{ix86}
- xorg-x11-drv-intel
ExclusiveArch: %{ix86} x86_64 ia64
- xorg-x11-drv-omap
ExclusiveArch: %{arm}
- xorg-x11-drv-openchrome
ExclusiveArch: %{ix86} x86_64
- xorg-x11-drv-opentegra
ExclusiveArch: %{arm}
- xorg-x11-drv-vesa
ExclusiveArch: %{ix86} x86_64
- xorg-x11-drv-vmware
ExclusiveArch: %{ix86} x86_64 ia64
- xsp
ExclusiveArch: %mono_arches
- xsupplicant
ExclusiveArch: %{ix86} x86_64 ppc %{power64}
- ycssmin
ExclusiveArch: %{nodejs_arches} noarch
- zeromq-ada
ExclusiveArch: %{GNAT_arches}
- zlib-ada
ExclusiveArch: %{GNAT_arches}
6 years, 3 months
Architecture specific change in rpms/grub2.git
by githook-noreply@fedoraproject.org
The package rpms/grub2.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/grub2.git/commit/?id=a91fed7f6681....
Change:
+%ifarch %{ix86}
Thanks.
Full change:
============
commit a91fed7f66811839cd0aaed13ed86e67f8f46220
Author: Peter Jones <pjones(a)redhat.com>
Date: Thu Jan 18 14:03:23 2018 -0500
Fix some efi modules bugs
- Fix grub2-efi-modules provides/obsoletes generation
Resolves: rhbz#1506704
- *Also* build grub-efi-ia32{,-*,!-modules} packages for i686 builds
Resolves: rhbz#1502312
Signed-off-by: Peter Jones <pjones(a)redhat.com>
diff --git a/grub.macros b/grub.macros
index 69110db..972bfbb 100644
--- a/grub.macros
+++ b/grub.macros
@@ -61,15 +61,9 @@
%global platform ieee1275
%endif
-%ifarch %{ix86}
-%global target_cpu_name %{_arch}
-%global legacy_target_cpu_name i386
-%global legacy_package_arch pc
-%global platform pc
-%endif
%global efi_only aarch64 %{arm}
-%global efi_arch x86_64 ia64 %{efi_only}
+%global efi_arch x86_64 %{ix86} ia64 %{efi_only}
%ifarch %{efi_arch}
%global with_efi_arch 1
%else
@@ -96,6 +90,17 @@
%global legacy_provides -l
%endif
+%ifarch %{ix86}
+%global efiarch ia32
+%global target_cpu_name i386
+%global grub_target_name i386-efi
+%global package_arch efi-ia32
+
+%global legacy_target_cpu_name i386
+%global legacy_package_arch pc
+%global platform pc
+%endif
+
%ifarch x86_64
%global efiarch x64
%global target_cpu_name %{_arch}
@@ -140,6 +145,13 @@
%global grubefiname grub%{efiarch}.efi
%global grubeficdname gcd%{efiarch}.efi
%global grubefiarch %{target_cpu_name}-efi
+%ifarch %{ix86}
+%global with_efi_modules 0
+%global without_efi_modules 1
+%else
+%global with_efi_modules 1
+%global without_efi_modules 0
+%endif
%endif
%if 0%{?alt_efi_arch:1}
@@ -233,16 +245,18 @@ Provides: %{name}-efi = %{evr} \
This subpackage provides support for %{1} systems. \
\
%{expand:%%{?!buildsubdir:%%define buildsubdir grub-%{1}-%{tarversion}}}\
+%{expand:%if 0%{?with_efi_modules} \
%{expand:%%package %{1}-modules} \
Summary: Modules used to build custom grub.efi images \
Group: System Environment/Base \
BuildArch: noarch \
Requires: %{name}-common = %{evr} \
-%{-p:Provides: %{name}-efi-modules = %{evr}} \
-%{-p:Obsoletes: %{name}-efi-modules < %{evr}} \
+Provides: %{name}-efi-modules = %{evr} \
+Obsoletes: %{name}-efi-modules < %{evr} \
%{expand:%%description %{1}-modules} \
%{desc} \
This subpackage provides support for rebuilding your own grub.efi. \
+%endif} \
\
%{expand:%%package %{1}-cdboot} \
Summary: Files used to boot removeable media with EFI \
@@ -480,12 +494,18 @@ touch ${RPM_BUILD_ROOT}/boot/%{name}/grub.cfg \
%ghost %config(noreplace) %attr(0700,root,root)/boot/efi/EFI/%{efidir}/grub.cfg \
/boot/grub2/grubenv \
%ghost %config(noreplace) %attr(0700,root,root)/boot/efi/EFI/%{efidir}/grubenv \
+%{expand:%if 0%{?without_efi_modules} \
+%exclude %{_libdir}/grub/%{6} \
+%exclude %{_libdir}/grub/%{6}/* \
+%endif} \
\
+%{expand:%if 0%{?with_efi_modules} \
%{expand:%%files %{1}-modules} \
%defattr(-,root,root,-) \
%dir %{_libdir}/grub/%{6}/ \
%{_libdir}/grub/%{6}/* \
%exclude %{_libdir}/grub/%{6}/*.module \
+%endif} \
\
%{expand:%%files %{1}-cdboot} \
%defattr(-,root,root,-) \
diff --git a/grub2.spec b/grub2.spec
index 0232729..9417f0b 100644
--- a/grub2.spec
+++ b/grub2.spec
@@ -7,7 +7,7 @@
Name: grub2
Epoch: 1
Version: 2.02
-Release: 20%{?dist}
+Release: 21%{?dist}
Summary: Bootloader with support for Linux, Multiboot and more
Group: System Environment/Base
License: GPLv3+
@@ -454,7 +454,11 @@ fi
%endif
%changelog
-* Thu Jan 18 2018 Peter Jones <pjones(a)redhat.com> - 2.02-20
+* Thu Jan 18 2018 Peter Jones <pjones(a)redhat.com> - 2.02-21
+- Fix grub2-efi-modules provides/obsoletes generation
+ Resolves: rhbz#1506704
+- *Also* build grub-efi-ia32{,-*,!-modules} packages for i686 builds
+ Resolves: rhbz#1502312
- Make everything under /boot/efi be mode 0700, since that's what FAT will
show anyway.
commit 8cceee7ebee92ec01ba738c0bd88bbf5864a321d
Author: Peter Jones <pjones(a)redhat.com>
Date: Thu Jan 18 14:12:52 2018 -0500
Make everything under /boot/efi be mode 0700, since that's what FAT will
show anyway.
Signed-off-by: Peter Jones <pjones(a)redhat.com>
diff --git a/grub.macros b/grub.macros
index 44c6886..69110db 100644
--- a/grub.macros
+++ b/grub.macros
@@ -474,10 +474,10 @@ touch ${RPM_BUILD_ROOT}/boot/%{name}/grub.cfg \
%{expand:%%files %{1}} \
%defattr(-,root,root,-) \
%config(noreplace) %{_sysconfdir}/%{name}-efi.cfg \
-%dir %attr(0755,root,root)/boot/efi/EFI/%{efidir} \
-/boot/efi/EFI/%{efidir}/%{2} \
+%dir %attr(0700,root,root)/boot/efi/EFI/%{efidir} \
+%attr(0700,root,root)/boot/efi/EFI/%{efidir}/%{2} \
%attr(0755,root,root)/boot/efi/EFI/%{efidir}/fonts \
-%ghost %config(noreplace) /boot/efi/EFI/%{efidir}/grub.cfg \
+%ghost %config(noreplace) %attr(0700,root,root)/boot/efi/EFI/%{efidir}/grub.cfg \
/boot/grub2/grubenv \
%ghost %config(noreplace) %attr(0700,root,root)/boot/efi/EFI/%{efidir}/grubenv \
\
@@ -489,6 +489,6 @@ touch ${RPM_BUILD_ROOT}/boot/%{name}/grub.cfg \
\
%{expand:%%files %{1}-cdboot} \
%defattr(-,root,root,-) \
-%attr(0755,root,root)/boot/efi/EFI/%{efidir}/%{3} \
-%attr(0755,root,root)/boot/efi/EFI/%{efidir}/fonts \
+%attr(0700,root,root)/boot/efi/EFI/%{efidir}/%{3} \
+%attr(0700,root,root)/boot/efi/EFI/%{efidir}/fonts \
%{nil}
diff --git a/grub2.spec b/grub2.spec
index 35d34da..0232729 100644
--- a/grub2.spec
+++ b/grub2.spec
@@ -314,7 +314,7 @@ fi
%exclude /boot/%{name}/themes/system/*
%attr(0700,root,root) %dir /boot/grub2
%exclude /boot/grub2/*
-%dir %attr(0755,root,root) /boot/efi/EFI/%{efidir}
+%dir %attr(0700,root,root) /boot/efi/EFI/%{efidir}
%exclude /boot/efi/EFI/%{efidir}/*
%license COPYING
%ghost %config(noreplace) /boot/grub2/grubenv
@@ -454,6 +454,10 @@ fi
%endif
%changelog
+* Thu Jan 18 2018 Peter Jones <pjones(a)redhat.com> - 2.02-20
+- Make everything under /boot/efi be mode 0700, since that's what FAT will
+ show anyway.
+
* Wed Jan 17 2018 Peter Jones <pjones(a)redhat.com> - 2.02-20
- Update to newer upstream for F28
- Pull in patches for Apollo Lake hardware
6 years, 3 months
Architecture specific change in rpms/grub2.git
by githook-noreply@fedoraproject.org
The package rpms/grub2.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/grub2.git/commit/?id=dc3a93bf0e9b....
Change:
+%ifarch %{ix86}
Thanks.
Full change:
============
commit dc3a93bf0e9b1c1f82af95477fd4537579652567
Author: Peter Jones <pjones(a)redhat.com>
Date: Thu Jan 18 14:03:23 2018 -0500
Fix some efi modules bugs
- Fix grub2-efi-modules provides/obsoletes generation
Resolves: rhbz#1506704
- *Also* build grub-efi-ia32{,-*,!-modules} packages for i686 builds
Resolves: rhbz#1502312
Signed-off-by: Peter Jones <pjones(a)redhat.com>
diff --git a/grub.macros b/grub.macros
index 44c6886..df825b9 100644
--- a/grub.macros
+++ b/grub.macros
@@ -61,15 +61,9 @@
%global platform ieee1275
%endif
-%ifarch %{ix86}
-%global target_cpu_name %{_arch}
-%global legacy_target_cpu_name i386
-%global legacy_package_arch pc
-%global platform pc
-%endif
%global efi_only aarch64 %{arm}
-%global efi_arch x86_64 ia64 %{efi_only}
+%global efi_arch x86_64 %{ix86} ia64 %{efi_only}
%ifarch %{efi_arch}
%global with_efi_arch 1
%else
@@ -96,6 +90,17 @@
%global legacy_provides -l
%endif
+%ifarch %{ix86}
+%global efiarch ia32
+%global target_cpu_name i386
+%global grub_target_name i386-efi
+%global package_arch efi-ia32
+
+%global legacy_target_cpu_name i386
+%global legacy_package_arch pc
+%global platform pc
+%endif
+
%ifarch x86_64
%global efiarch x64
%global target_cpu_name %{_arch}
@@ -140,6 +145,13 @@
%global grubefiname grub%{efiarch}.efi
%global grubeficdname gcd%{efiarch}.efi
%global grubefiarch %{target_cpu_name}-efi
+%ifarch %{ix86}
+%global with_efi_modules 0
+%global without_efi_modules 1
+%else
+%global with_efi_modules 1
+%global without_efi_modules 0
+%endif
%endif
%if 0%{?alt_efi_arch:1}
@@ -233,16 +245,18 @@ Provides: %{name}-efi = %{evr} \
This subpackage provides support for %{1} systems. \
\
%{expand:%%{?!buildsubdir:%%define buildsubdir grub-%{1}-%{tarversion}}}\
+%{expand:%if 0%{?with_efi_modules} \
%{expand:%%package %{1}-modules} \
Summary: Modules used to build custom grub.efi images \
Group: System Environment/Base \
BuildArch: noarch \
Requires: %{name}-common = %{evr} \
-%{-p:Provides: %{name}-efi-modules = %{evr}} \
-%{-p:Obsoletes: %{name}-efi-modules < %{evr}} \
+Provides: %{name}-efi-modules = %{evr} \
+Obsoletes: %{name}-efi-modules < %{evr} \
%{expand:%%description %{1}-modules} \
%{desc} \
This subpackage provides support for rebuilding your own grub.efi. \
+%endif} \
\
%{expand:%%package %{1}-cdboot} \
Summary: Files used to boot removeable media with EFI \
@@ -480,12 +494,18 @@ touch ${RPM_BUILD_ROOT}/boot/%{name}/grub.cfg \
%ghost %config(noreplace) /boot/efi/EFI/%{efidir}/grub.cfg \
/boot/grub2/grubenv \
%ghost %config(noreplace) %attr(0700,root,root)/boot/efi/EFI/%{efidir}/grubenv \
+%{expand:%if 0%{?without_efi_modules} \
+%exclude %{_libdir}/grub/%{6} \
+%exclude %{_libdir}/grub/%{6}/* \
+%endif} \
\
+%{expand:%if 0%{?with_efi_modules} \
%{expand:%%files %{1}-modules} \
%defattr(-,root,root,-) \
%dir %{_libdir}/grub/%{6}/ \
%{_libdir}/grub/%{6}/* \
%exclude %{_libdir}/grub/%{6}/*.module \
+%endif} \
\
%{expand:%%files %{1}-cdboot} \
%defattr(-,root,root,-) \
diff --git a/grub2.spec b/grub2.spec
index 8bdef5a..242cd99 100644
--- a/grub2.spec
+++ b/grub2.spec
@@ -7,7 +7,7 @@
Name: grub2
Epoch: 1
Version: 2.02
-Release: 20%{?dist}
+Release: 21%{?dist}
Summary: Bootloader with support for Linux, Multiboot and more
Group: System Environment/Base
License: GPLv3+
@@ -454,6 +454,12 @@ fi
%endif
%changelog
+* Thu Jan 18 2018 Peter Jones <pjones(a)redhat.com> - 2.02-21
+- Fix grub2-efi-modules provides/obsoletes generation
+ Resolves: rhbz#1506704
+- *Also* build grub-efi-ia32{,-*,!-modules} packages for i686 builds
+ Resolves: rhbz#1502312
+
* Wed Jan 17 2018 Peter Jones <pjones(a)redhat.com> - 2.02-20
- Pull in patches for Apollo Lake hardware
Resolves: rhbz#1519311
6 years, 3 months
Architecture specific change in rpms/OpenImageIO.git
by githook-noreply@fedoraproject.org
The package rpms/OpenImageIO.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/OpenImageIO.git/commit/?id=b74dc2....
Change:
-%ifnarch i686 armv7hl
Thanks.
Full change:
============
commit b74dc292350bb93c3397e3d7eea184681dff0469
Author: Richard Shaw <hobbes1069(a)gmail.com>
Date: Thu Jan 18 12:39:55 2018 -0600
Add openjpeg2 to build dependencies.
Re-enable dcmtk for 32bit arches.
diff --git a/OpenImageIO-dcmtk.patch b/OpenImageIO-dcmtk.patch
index ab22bd7..17a37dd 100644
--- a/OpenImageIO-dcmtk.patch
+++ b/OpenImageIO-dcmtk.patch
@@ -1,3 +1,143 @@
+From 9e1b3f343d9cc7c217d55a1630aab15e1956b17c Mon Sep 17 00:00:00 2001
+From: Larry Gritz <lg(a)larrygritz.com>
+Date: Tue, 16 Jan 2018 22:24:04 -0800
+Subject: [PATCH 1/3] Fix dcmtk build errors on some platforms
+
+Fixes #1841
+---
+ src/dicom.imageio/dicominput.cpp | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/src/dicom.imageio/dicominput.cpp b/src/dicom.imageio/dicominput.cpp
+index aebbc0859..d5a9613e3 100644
+--- a/src/dicom.imageio/dicominput.cpp
++++ b/src/dicom.imageio/dicominput.cpp
+@@ -297,13 +297,13 @@ DICOMInput::read_metadata ()
+ m_spec.attribute (name, (float)val);
+ // N.B. we cast to float. Will anybody care?
+ } else if (evr == EVR_SL || evr == EVR_IS) {
+- int val;
++ Sint32 val;
+ if (dataset->findAndGetSint32 (tag, val).good())
+- m_spec.attribute (name, val);
++ m_spec.attribute (name, static_cast<int>(val));
+ } else if (evr == EVR_UL) {
+- unsigned int val;
++ Uint32 val;
+ if (dataset->findAndGetUint32 (tag, val).good())
+- m_spec.attribute (name, TypeDesc::UINT32, &val);
++ m_spec.attribute (name, static_cast<unsigned int>(val));
+ } else if (evr == EVR_US) {
+ unsigned short val;
+ if (dataset->findAndGetUint16 (tag, val).good())
+
+From 533c1e71a7b3a984ddcca84a5c49f706027b6929 Mon Sep 17 00:00:00 2001
+From: Larry Gritz <lg(a)larrygritz.com>
+Date: Tue, 16 Jan 2018 23:22:40 -0800
+Subject: [PATCH 2/3] DCMTK version enforcement
+
+Have CMake figure out the version of DCMTK found.
+Reject anything older than 3.6.1.
+Older versions botched some preprocessor symbols in ways that are painful
+to deal with, so since the ones that work (>= 3.6.1) date from 2011 (!),
+I don't think it's too stringent a requirement.
+---
+ src/cmake/externalpackages.cmake | 2 +-
+ src/cmake/modules/FindDCMTK.cmake | 31 +++++++++++++++++++++++++------
+ 2 files changed, 26 insertions(+), 7 deletions(-)
+
+diff --git a/src/cmake/externalpackages.cmake b/src/cmake/externalpackages.cmake
+index 4c8a1f9d3..a41d7fa1c 100644
+--- a/src/cmake/externalpackages.cmake
++++ b/src/cmake/externalpackages.cmake
+@@ -478,7 +478,7 @@ endif()
+ ###########################################################################
+ # DCMTK
+ if (USE_DICOM)
+- find_package (DCMTK)
++ find_package (DCMTK 3.6.1)
+ if (NOT DCMTK_FOUND)
+ set (DCMTK_INCLUDE_DIR "")
+ set (DCMTK_LIBRARIES "")
+diff --git a/src/cmake/modules/FindDCMTK.cmake b/src/cmake/modules/FindDCMTK.cmake
+index 9b2edca1b..83f395614 100644
+--- a/src/cmake/modules/FindDCMTK.cmake
++++ b/src/cmake/modules/FindDCMTK.cmake
+@@ -1,6 +1,3 @@
+-# FIXME: CMake >= 3.5 has its own FindDCMTK.cmake, so when our minimum
+-# cmake is at least that, we can remove this file.
+-
+ # Module to find DCMTK
+ #
+ # This module will first look into the directories defined by the variables:
+@@ -8,9 +5,11 @@
+ #
+ # This module defines the following variables:
+ #
+-# DCMTK_FOUND - True if DCMTK was found.
+-# DCMTK_INCLUDES - where to find DCMTK headers
+-# DCMTK_LIBRARIES - list of libraries to link against when using DCMTK
++# DCMTK_FOUND True if DCMTK was found.
++# DCMTK_INCLUDES Where to find DCMTK headers
++# DCMTK_LIBRARIES List of libraries to link against when using DCMTK
++# DCMTK_VERSION Version of DCMTK (e.g., 3.6.2)
++# DCMTK_VERSION_NUMBER Int version of DCMTK (e.g., 362 for 3.6.2)
+
+ include (FindPackageHandleStandardArgs)
+ include (FindPackageMessage)
+@@ -53,6 +52,13 @@ foreach (COMPONENT dcmimage dcmimgle dcmdata oflog ofstd iconv)
+ endif ()
+ endforeach()
+
++message (STATUS "DCMTK_INCLUDE_DIR = ${DCMTK_INCLUDE_DIR}")
++if (DCMTK_INCLUDE_DIR AND EXISTS "${DCMTK_INCLUDE_DIR}/dcmtk/config/osconfig.h")
++ file(STRINGS "${DCMTK_INCLUDE_DIR}/dcmtk/config/osconfig.h" TMP REGEX "^#define PACKAGE_VERSION[ \t].*$")
++ string(REGEX MATCHALL "[0-9.]+" DCMTK_VERSION ${TMP})
++ file(STRINGS "${DCMTK_INCLUDE_DIR}/dcmtk/config/osconfig.h" TMP REGEX "^#define PACKAGE_VERSION_NUMBER[ \t].*$")
++ string(REGEX MATCHALL "[0-9.]+" DCMTK_VERSION_NUMBER ${TMP})
++endif ()
+
+ if (DCMTK_INCLUDE_DIR AND DCMTK_LIBRARIES)
+ set(DCMTK_FOUND TRUE)
+@@ -60,9 +66,22 @@ if (DCMTK_INCLUDE_DIR AND DCMTK_LIBRARIES)
+ if (NOT DCMTK_FIND_QUIETLY)
+ message(STATUS "Found DCMTK library ${DCMTK_LIBRARIES}")
+ message(STATUS "Found DCMTK includes ${DCMTK_INCLUDES}")
++ message(STATUS "Found DCMTK short version number ${DCMTK_VERSION_NUMBER}")
+ endif ()
+ else()
+ set(DCMTK_FOUND FALSE)
+ message(STATUS "DCMTK not found. Specify DCMTK_PATH to locate it")
+ endif()
+
++include (FindPackageHandleStandardArgs)
++find_package_handle_standard_args (DCMTK
++ REQUIRED_VARS DCMTK_INCLUDE_DIR DCMTK_LIBRARIES
++ VERSION_VAR DCMTK_VERSION
++ )
++
++mark_as_advanced (
++ DCMTK_INCLUDE_DIR
++ DCMTK_LIBRARIES
++ DCMTK_VERSION
++ DCMTK_VERSION_NUMBER
++ )
+
+From b1eb9c97eaa11b423b5bb279e1a60e0a30490ea2 Mon Sep 17 00:00:00 2001
+From: Larry Gritz <lg(a)larrygritz.com>
+Date: Tue, 16 Jan 2018 23:26:27 -0800
+Subject: [PATCH 3/3] dcmtk: More conservative goards on certain symbols.
+
+EVR_OD, EVR_UC, EVR_UR were added part way through 3.6.1 releases.
+So test for them with 3.6.2 minimum not 3.6.1.
+
+(Thanks, Richard Shaw, for the tip on this one.)
+---
+ src/dicom.imageio/dicominput.cpp | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/dicom.imageio/dicominput.cpp b/src/dicom.imageio/dicominput.cpp
+index d5a9613e3..23294d346 100644
--- a/src/dicom.imageio/dicominput.cpp
+++ b/src/dicom.imageio/dicominput.cpp
@@ -288,7 +288,7 @@ DICOMInput::read_metadata ()
diff --git a/OpenImageIO.spec b/OpenImageIO.spec
index 377da02..b504b29 100644
--- a/OpenImageIO.spec
+++ b/OpenImageIO.spec
@@ -1,21 +1,18 @@
-%global subname oiio
-#global beta beta1
-
Name: OpenImageIO
Version: 1.8.7
-Release: 2%{?dist}
+Release: 3%{?dist}
Summary: Library for reading and writing images
Group: Development/Libraries
License: BSD
URL: https://sites.google.com/site/openimageio/home
-Source0: https://github.com/%{name}/%{subname}/archive/Release-%{version}.tar.gz#/...
+Source0: https://github.com/%{name}/oiio/archive/Release-%{version}.tar.gz#/%{name...
# Images for test suite
#Source1: oiio-images.tar.gz
Patch0: OpenImageIO-man.patch
-#Patch1: OpenImageIO-dcmtk.patch
+Patch1: OpenImageIO-dcmtk.patch
Patch2: OpenImageIO-as_needed.patch
Patch3: OpenImageIO-GLES.patch
@@ -30,16 +27,14 @@ BuildRequires: boost-devel
BuildRequires: glew-devel
BuildRequires: OpenEXR-devel ilmbase-devel
BuildRequires: python2-devel
-BuildRequires: libpng-devel libtiff-devel libjpeg-turbo-devel giflib-devel
+BuildRequires: libpng-devel libtiff-devel libjpeg-turbo-devel openjpeg2-devel
+BuildRequires: giflib-devel
%if ! 0%{?rhel}
BuildRequires: libwebp-devel
BuildRequires: Field3D-devel
%endif
BuildRequires: hdf5-devel
-# Builds fail for 32bit systems.
-%ifnarch i686 armv7hl
BuildRequires: dcmtk-devel
-%endif
BuildRequires: zlib-devel
BuildRequires: jasper-devel
BuildRequires: pugixml-devel
@@ -54,7 +49,7 @@ BuildRequires: OpenColorIO-devel
# We don't want to provide private python extension libs
%{?filter_setup:
-%filter_provides_in %{python_sitearch}/.*\.so$
+%filter_provides_in %{python2_sitearch}/.*\.so$
%filter_setup
}
@@ -151,6 +146,8 @@ rm -rf build/linux && mkdir -p build/linux && pushd build/linux
-DBOOST_INCLUDEDIR=%{_includedir}/boost148 \
-DBOOST_LIBRARYDIR=%{_libdir}/boost148 \
%endif
+ -DJPEG_INCLUDE_DIR=%{_includedir} \
+ -DOPENJPEG_INCLUDE_DIR=$(pkgconf --variable=includedir libopenjp2) \
-DVERBOSE=TRUE \
../../
@@ -182,7 +179,7 @@ cp -a src/doc/*.1 %{buildroot}%{_mandir}/man1
%{_libdir}/libOpenImageIO_Util.so.*
%files -n python2-openimageio
-%{python_sitearch}/OpenImageIO.so
+%{python2_sitearch}/OpenImageIO.so
%files utils
%exclude %{_bindir}/iv
@@ -202,6 +199,10 @@ cp -a src/doc/*.1 %{buildroot}%{_mandir}/man1
%changelog
+* Thu Jan 18 2018 Richard Shaw <hobbes1069(a)gmail.com> - 1.8.7-3
+- Add openjpeg2 to build dependencies.
+- Re-enable dcmtk for 32bit arches.
+
* Sat Jan 13 2018 Richard Shaw <hobbes1069(a)gmail.com> - 1.8.7-2
- Rebuild for OpenColorIO 1.1.0.
6 years, 3 months
Architecture specific change in rpms/syncthing.git
by githook-noreply@fedoraproject.org
The package rpms/syncthing.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/syncthing.git/commit/?id=637592cd....
Change:
-%ifnarch ppc64
Thanks.
Full change:
============
commit 637592cdd14e7f6ebf3ae6b9764c3f1c26a442d8
Author: Fabio Valentini <decathorpe(a)gmail.com>
Date: Thu Jan 18 16:43:37 2018 +0100
update to version 0.14.43
This commit also removes conditionals for building with bundled sources, and
introduces Provides and Obsoletes for the (in rawhide) retired
syncthing-inotify package.
diff --git a/.gitignore b/.gitignore
index 00b047a..5ea46a1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,3 +6,4 @@
/syncthing-source-v0.14.40.tar.gz
/syncthing-source-v0.14.41.tar.gz
/syncthing-source-v0.14.42.tar.gz
+/syncthing-source-v0.14.43.tar.gz
diff --git a/sources b/sources
index 3bf8d66..e283a64 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (syncthing-source-v0.14.42.tar.gz) = 83d5eec2458a99c4a2c2051ef85e6ad4370a0a54bfff4399977c5f0d7a0ea69222e8bb5dd970c1fbfbd09cdb9fcfc2ba31d75fcfdd86b0a0bc875ee5abe224a4
+SHA512 (syncthing-source-v0.14.43.tar.gz) = f2c8b0ca5971cd2fbbcba193917ba73c0d7932937a8c18821348a6bfe6a4df854284336694591dba4aba0b8eeb16452dc5887535035c81a8c66c85bd711f16db
diff --git a/syncthing.spec b/syncthing.spec
index a39f1d9..529fb9d 100644
--- a/syncthing.spec
+++ b/syncthing.spec
@@ -1,43 +1,24 @@
# Generate devel rpm
%global with_devel 1
-
# Build project from bundled dependencies
-%if 0%{?rhel}
-%global with_bundled 1
-%else
%global with_bundled 0
-%endif
-
# Build with debug info rpm
%global with_debug 1
-
# Run tests in check section
%global with_check 1
-
# Generate unit-test rpm
%global with_unit_test 1
-
# Build server tools
%global with_tools 1
-
# Build CLI program
%global with_cli 1
-
%if 0%{?with_debug}
%global _dwz_low_mem_die_limit 0
%else
%global debug_package %{nil}
%endif
-%if ! 0%{?gobuild:1}
-%ifnarch ppc64
-%global gobuild(o:) go build -buildmode pie -compiler gc -tags=rpm_crashtraceback -ldflags "${LDFLAGS:-} -B 0x$(head -c20 /dev/urandom|od -An -tx1|tr -d ' \\n') -extldflags '-Wl,-z,relro -specs=/usr/lib/rpm/redhat/redhat-hardened-ld '" -a -v -x %{?**};
-%else
-%global gobuild(o:) go build -compiler gc -tags=rpm_crashtraceback -ldflags "${LDFLAGS:-} -B 0x$(head -c20 /dev/urandom|od -An -tx1|tr -d ' \\n') -extldflags '-Wl,-z,relro -specs=/usr/lib/rpm/redhat/redhat-hardened-ld '" -a -v -x %{?**};
-%endif
-%endif
-
%global provider github
%global provider_tld com
%global project syncthing
@@ -46,15 +27,15 @@
# https://github.com/syncthing/syncthing
%global provider_prefix %{provider}.%{provider_tld}/%{project}/%{repo}
%global import_path %{provider_prefix}
-%global commit 8fd2937a583edc39f4a65eb47063b2ddcb407728
+%global commit a9f0659f2f4bf910f82b652fd27a864074ec7ab8
%global shortcommit %(c=%{commit}; echo ${c:0:7})
-# commit 8fd2937a583edc39f4a65eb47063b2ddcb407728 == version 0.14.41
+# commit a9f0659f2f4bf910f82b652fd27a864074ec7ab8 == version 0.14.43
Name: syncthing
Summary: Continuous File Synchronization
-Version: 0.14.42
+Version: 0.14.43
Release: 1%{?dist}
# syncthing (MPLv2.0) bundles angular (MIT), bootstrap (MIT), and font-awesome (MIT/OFL)
@@ -78,7 +59,6 @@ BuildRequires: systemd
%if 0%{?with_check} && ! 0%{?with_bundled}
BuildRequires: golang(github.com/AudriusButkevicius/go-nat-pmp)
-BuildRequires: golang(github.com/AudriusButkevicius/kcp-go)
BuildRequires: golang(github.com/AudriusButkevicius/pfilter)
BuildRequires: golang(github.com/bkaradzic/go-lz4)
BuildRequires: golang(github.com/calmh/du)
@@ -102,6 +82,7 @@ BuildRequires: golang(github.com/syndtr/goleveldb/leveldb/storage)
BuildRequires: golang(github.com/syndtr/goleveldb/leveldb/util)
BuildRequires: golang(github.com/thejerf/suture)
BuildRequires: golang(github.com/vitrun/qart)
+BuildRequires: golang(github.com/xtaci/kcp-go)
BuildRequires: golang(github.com/xtaci/smux)
BuildRequires: golang(github.com/zillode/notify)
BuildRequires: golang(golang.org/x/net/context)
@@ -122,6 +103,10 @@ Provides: bundled(bootstrap) = 3.3.6
Provides: bundled(font-awesome) = 4.5.0
Provides: bundled(jquery) = 2.2.2
+# an inotify filesystem watcher is integrated with syncthing now
+Provides: syncthing-inotify = 0.8.7-5
+Obsoletes: syncthing-inotify < 0.8.7-5
+
%description
Syncthing replaces other file synchronization services with something
@@ -140,7 +125,6 @@ Provides: %{long_name}-devel = %{version}-%{release}
BuildArch: noarch
Requires: golang(github.com/AudriusButkevicius/go-nat-pmp)
-Requires: golang(github.com/AudriusButkevicius/kcp-go)
Requires: golang(github.com/AudriusButkevicius/pfilter)
Requires: golang(github.com/bkaradzic/go-lz4)
Requires: golang(github.com/calmh/du)
@@ -164,6 +148,7 @@ Requires: golang(github.com/syndtr/goleveldb/leveldb/storage)
Requires: golang(github.com/syndtr/goleveldb/leveldb/util)
Requires: golang(github.com/thejerf/suture)
Requires: golang(github.com/vitrun/qart)
+Requires: golang(github.com/xtaci/kcp-go)
Requires: golang(github.com/xtaci/smux)
Requires: golang(github.com/zillode/notify)
Requires: golang(golang.org/x/net/context)
@@ -206,89 +191,6 @@ Provides: golang(%{import_path}/lib/versioner) = %{version}-%{release}
Provides: golang(%{import_path}/lib/watchaggregator) = %{version}-%{release}
Provides: golang(%{import_path}/lib/weakhash) = %{version}-%{release}
-%if 0%{?with_bundled}
-Provides: bundled(golang(github.com/AudriusButkevicius/cli)) = 7f561c78b5a4aad858d9fd550c92b5da6d55efbb
-Provides: bundled(golang(github.com/AudriusButkevicius/go-nat-pmp)) = 452c97607362b2ab5a7839b8d1704f0396b640ca
-Provides: bundled(golang(github.com/AudriusButkevicius/kcp-go)) = 8ae5f528469c6ab76110f41eb7a51341b7efb946
-Provides: bundled(golang(github.com/AudriusButkevicius/pfilter)) = 9dca34a5b530bfc9843fa8aa2ff08ff9821032cb
-Provides: bundled(golang(github.com/bkaradzic/go-lz4)) = 7224d8d8f27ef618c0a95f1ae69dbb0488abc33a
-Provides: bundled(golang(github.com/calmh/du)) = dd9dc2043353249b2910b29dcfd6f6d4e64f39be
-Provides: bundled(golang(github.com/calmh/xdr)) = 08e072f9cb164f943a92eb59f90f3abc64ac6e8f
-Provides: bundled(golang(github.com/ccding/go-stun)) = d9bbe8f8fa7bf7ed03e6cfc6a2796bb36139e1f4
-Provides: bundled(golang(github.com/chmduquesne/rollinghash)) = 043b8fdecc9816f0011a056f6d92f9a091ab63dd
-Provides: bundled(golang(github.com/cznic/b)) = aaaa43c92e509a827e63540510bc94c3003ef2e1
-Provides: bundled(golang(github.com/cznic/fileutil)) = 90cf820aafe8f7df39416fdbb932029ff99bd1ab
-Provides: bundled(golang(github.com/cznic/internal/buffer)) = e5e1c3e9165d0a72507c2bbb0ffac1c02b8d3f7c
-Provides: bundled(golang(github.com/cznic/internal/file)) = e5e1c3e9165d0a72507c2bbb0ffac1c02b8d3f7c
-Provides: bundled(golang(github.com/cznic/internal/slice)) = e5e1c3e9165d0a72507c2bbb0ffac1c02b8d3f7c
-Provides: bundled(golang(github.com/cznic/lldb)) = bea8611dd5c407f3c5eab9f9c68e887a27dc6f0e
-Provides: bundled(golang(github.com/cznic/mathutil)) = 1447ad269d64ca91aa8d7079baa40b6fc8b965e7
-Provides: bundled(golang(github.com/cznic/ql)) = bd2055c7674ac80c520815dfe85082844cd246d4
-Provides: bundled(golang(github.com/cznic/sortutil)) = 4c7342852e65c2088c981288f2c5610d10b9f7f4
-Provides: bundled(golang(github.com/cznic/strutil)) = 43a89592ed56c227c7fdb1fcaf7d1d08be02ec54
-Provides: bundled(golang(github.com/cznic/zappy)) = 2533cb5b45cc6c07421468ce262899ddc9d53fb7
-Provides: bundled(golang(github.com/d4l3k/messagediff)) = 2fe2a1d40db6c23619ae5bcc8f80a5b43c40581b
-Provides: bundled(golang(github.com/edsrzf/mmap-go)) = 0bce6a6887123b67a60366d2c9fe2dfb74289d2e
-Provides: bundled(golang(github.com/gobwas/glob)) = 51eb1ee00b6d931c66d229ceeb7c31b985563420
-Provides: bundled(golang(github.com/gogo/protobuf)) = efccd33a0c20aa078705571d5ddbfa14c8395a63
-Provides: bundled(golang(github.com/golang/groupcache/lru)) = 72d04f9fcdec7d3821820cc4a6f150eae553639a
-Provides: bundled(golang(github.com/golang/protobuf/proto)) = 2bba0603135d7d7f5cb73b2125beeda19c09f4ef
-Provides: bundled(golang(github.com/golang/protobuf/ptypes/any)) = 2bba0603135d7d7f5cb73b2125beeda19c09f4ef
-Provides: bundled(golang(github.com/golang/snappy)) = 553a641470496b2327abcac10b36396bd98e45c9
-Provides: bundled(golang(github.com/jackpal/gateway)) = 5795ac81146e01d3fab7bcf21c043c3d6a32b006
-Provides: bundled(golang(github.com/kardianos/osext)) = 9d302b58e975387d0b4d9be876622c86cefe64be
-Provides: bundled(golang(github.com/kballard/go-shellquote)) = cd60e84ee657ff3dc51de0b4f55dd299a3e136f2
-Provides: bundled(golang(github.com/klauspost/cpuid)) = 09cded8978dc9e80714c4d85b0322337b0a1e5e0
-Provides: bundled(golang(github.com/lib/pq)) = 2704adc878c21e1329f46f6e56a1c387d788ff94
-Provides: bundled(golang(github.com/minio/sha256-simd)) = 6124d070eb4e7001c244b6ccc282620a5dce44a0
-Provides: bundled(golang(github.com/onsi/ginkgo)) = 77a8c1e5c40d6bb6c5eb4dd4bdce9763564f6298
-Provides: bundled(golang(github.com/onsi/gomega)) = 334b8f472b3af5d541c5642701c1e29e2126f486
-Provides: bundled(golang(github.com/oschwald/geoip2-golang)) = 0fd242da7906550802871efe101abfdb1cc550a8
-Provides: bundled(golang(github.com/oschwald/maxminddb-golang)) = 697da8075d2061aa8ed639346443f5d3e8c80b30
-Provides: bundled(golang(github.com/petermattis/goid)) = caab6446a35a918488a0f52d4b0bd088a60f3511
-Provides: bundled(golang(github.com/pkg/errors)) = ff09b135c25aae272398c51a07235b90a75aa4f0
-Provides: bundled(golang(github.com/rcrowley/go-metrics)) = 1f30fe9094a513ce4c700b9a54458bbb0c96996c
-Provides: bundled(golang(github.com/remyoudompheng/bigfft)) = a8e77ddfb93284b9d58881f597c820a2875af336
-Provides: bundled(golang(github.com/sasha-s/go-deadlock)) = 341000892f3dd25f440e6231e8533eb3688ed7ec
-Provides: bundled(golang(github.com/stathat/go)) = 74669b9f388d9d788c97399a0824adbfee78400e
-Provides: bundled(golang(github.com/syndtr/goleveldb/leveldb)) = 549b6d6b1c0419617182954dd77770f2e2685ed5
-Provides: bundled(golang(github.com/templexxx/cpufeat)) = 3794dfbfb04749f896b521032f69383f24c3687e
-Provides: bundled(golang(github.com/templexxx/reedsolomon)) = 7092926d7d05c415fabb892b1464a03f8228ab80
-Provides: bundled(golang(github.com/templexxx/xor)) = 42f9c041c330b560afb991153bf183c25444bcdc
-Provides: bundled(golang(github.com/thejerf/suture)) = 0ac47afae95ad5bc5184ed346bc945168e883f5d
-Provides: bundled(golang(github.com/tjfoc/gmsm/sm4)) = 0f4904804c0f24f1784e10195a4144fcffa86a85
-Provides: bundled(golang(github.com/vitrun/qart/coding)) = bf64b92db6b05651d6c25a3dabf2d543b360c0aa
-Provides: bundled(golang(github.com/vitrun/qart/gf256)) = bf64b92db6b05651d6c25a3dabf2d543b360c0aa
-Provides: bundled(golang(github.com/vitrun/qart/qr)) = bf64b92db6b05651d6c25a3dabf2d543b360c0aa
-Provides: bundled(golang(github.com/xtaci/smux)) = 0f6b9aaecaaf354357adc7def9239011ad276776
-Provides: bundled(golang(github.com/zillode/notify)) = 54e3093eb7377fd139c4605f475cc78e83610b9d
-Provides: bundled(golang(golang.org/x/crypto/bcrypt)) = c78caca803c95773f48a844d3dcab04b9bc4d6dd
-Provides: bundled(golang(golang.org/x/crypto/blowfish)) = c78caca803c95773f48a844d3dcab04b9bc4d6dd
-Provides: bundled(golang(golang.org/x/crypto/cast5)) = c78caca803c95773f48a844d3dcab04b9bc4d6dd
-Provides: bundled(golang(golang.org/x/crypto/pbkdf2)) = c78caca803c95773f48a844d3dcab04b9bc4d6dd
-Provides: bundled(golang(golang.org/x/crypto/salsa20)) = c78caca803c95773f48a844d3dcab04b9bc4d6dd
-Provides: bundled(golang(golang.org/x/crypto/tea)) = c78caca803c95773f48a844d3dcab04b9bc4d6dd
-Provides: bundled(golang(golang.org/x/crypto/twofish)) = c78caca803c95773f48a844d3dcab04b9bc4d6dd
-Provides: bundled(golang(golang.org/x/crypto/xtea)) = c78caca803c95773f48a844d3dcab04b9bc4d6dd
-Provides: bundled(golang(golang.org/x/net/bpf)) = ffcf1bedda3b04ebb15a168a59800a73d6dc0f4d
-Provides: bundled(golang(golang.org/x/net/context)) = ffcf1bedda3b04ebb15a168a59800a73d6dc0f4d
-Provides: bundled(golang(golang.org/x/net/internal/iana)) = ffcf1bedda3b04ebb15a168a59800a73d6dc0f4d
-Provides: bundled(golang(golang.org/x/net/internal/netreflect)) = ffcf1bedda3b04ebb15a168a59800a73d6dc0f4d
-Provides: bundled(golang(golang.org/x/net/ipv4)) = ffcf1bedda3b04ebb15a168a59800a73d6dc0f4d
-Provides: bundled(golang(golang.org/x/net/ipv6)) = ffcf1bedda3b04ebb15a168a59800a73d6dc0f4d
-Provides: bundled(golang(golang.org/x/net/proxy)) = ffcf1bedda3b04ebb15a168a59800a73d6dc0f4d
-Provides: bundled(golang(golang.org/x/sys/unix)) = f3918c30c5c2cb527c0b071a27c35120a6c0719a
-Provides: bundled(golang(golang.org/x/sys/windows)) = 493114f68206f85e7e333beccfabc11e98cba8dd
-Provides: bundled(golang(golang.org/x/text/internal/gen)) = f4b4367115ec2de254587813edaa901bc1c723a8
-Provides: bundled(golang(golang.org/x/text/internal/triegen)) = f4b4367115ec2de254587813edaa901bc1c723a8
-Provides: bundled(golang(golang.org/x/text/internal/ucd)) = f4b4367115ec2de254587813edaa901bc1c723a8
-Provides: bundled(golang(golang.org/x/text/transform)) = f4b4367115ec2de254587813edaa901bc1c723a8
-Provides: bundled(golang(golang.org/x/text/unicode/cldr)) = f4b4367115ec2de254587813edaa901bc1c723a8
-Provides: bundled(golang(golang.org/x/text/unicode/norm)) = f4b4367115ec2de254587813edaa901bc1c723a8
-Provides: bundled(golang(golang.org/x/time/rate)) = f51c12702a4d776e4c1fa9b0fabab841babae631
-Provides: bundled(golang(gopkg.in/yaml.v2)) = a3f3340b5840cee44f372bddb5880fcbc419b46a
-%endif
-
%description devel
Syncthing replaces other file synchronization services with something
open, trustworthy and decentralized. Your data is your data alone and
@@ -386,16 +288,8 @@ This package contains the CLI program.
%build
-%if ! 0%{?with_bundled}
# remove bundled libraries
rm -r vendor
-%endif
-
-# Replace usage of "context" package (go 1.7+ only) with the old
-# "golang.org/x/net/context" package if only an old compiler is available
-%if 0%{?fedora} == 24 || 0%{?rhel}
-sed -i 's/"context"/"golang.org\/x\/net\/context"/' cmd/syncthing/*.go lib/*/*.go
-%endif
# prepare build environment
mkdir -p ./_build/src/%{provider}.%{provider_tld}/%{project}
@@ -435,9 +329,7 @@ popd
%endif
# remove build script so it doesn't get picked up later
-%if 0%{?with_devel}
rm build.go
-%endif
%install
@@ -480,7 +372,7 @@ cp -pav etc/linux-systemd/user/syncthing.service %{buildroot}/%{_userunitdir}/
# install systemd preset disabling the service per default
mkdir -p %{buildroot}/%{_prefix}/lib/systemd/user-preset
-echo "disable syncthing*" > %{buildroot}/%{_prefix}/lib/systemd/user-preset/90-syncthing.preset
+echo "disable syncthing*" > %{buildroot}/%{_userpresetdir}/90-syncthing.preset
# Unmark source files as executable
@@ -559,16 +451,7 @@ sort -u -o unit-test-devel.file-list unit-test-devel.file-list
%check
%if 0%{?with_check} && 0%{?with_unit_test} && 0%{?with_devel}
-%if ! 0%{?with_bundled}
export GOPATH=%{buildroot}/%{gopath}:%{gopath}
-%else
-# Since we aren't packaging up the vendor directory we need to link
-# back to it somehow. Hack it up so that we can add the vendor
-# directory from BUILD dir as a gopath to be searched when executing
-# tests from the BUILDROOT dir.
-ln -s ./ ./vendor/src # ./vendor/src -> ./vendor
-export GOPATH=%{buildroot}/%{gopath}:$(pwd)/vendor:%{gopath}
-%endif
%if ! 0%{?gotest:1}
%global gotest go test
@@ -652,8 +535,7 @@ find %{buildroot}/%{gopath}/src/%{import_path}/ -name ".stfolder" -print -delete
%{_unitdir}/syncthing@.service
%{_unitdir}/syncthing-resume.service
%{_userunitdir}/syncthing.service
-
-%{_prefix}/lib/systemd/user-preset/90-syncthing.preset
+%{_userpresetdir}/90-syncthing.preset
%if 0%{?with_tools}
@@ -692,6 +574,9 @@ find %{buildroot}/%{gopath}/src/%{import_path}/ -name ".stfolder" -print -delete
%changelog
+* Tue Jan 09 2018 Fabio Valentini <decathorpe(a)gmail.com> - 0.14.43-1
+- Update to version 0.14.43.
+
* Tue Dec 26 2017 Fabio Valentini <decathorpe(a)gmail.com> - 0.14.42-1
- Update to version 0.14.42.
6 years, 3 months
Architecture specific change in rpms/syncthing.git
by githook-noreply@fedoraproject.org
The package rpms/syncthing.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/syncthing.git/commit/?id=141a113b....
Change:
-%ifnarch ppc64
Thanks.
Full change:
============
commit 141a113b08bc940880e97ed4e94ce9abe072dde2
Author: Fabio Valentini <decathorpe(a)gmail.com>
Date: Thu Jan 18 16:37:21 2018 +0100
update to version 0.14.43
this commit also removes conditionals for building with bundled sources
diff --git a/.gitignore b/.gitignore
index 00b047a..5ea46a1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,3 +6,4 @@
/syncthing-source-v0.14.40.tar.gz
/syncthing-source-v0.14.41.tar.gz
/syncthing-source-v0.14.42.tar.gz
+/syncthing-source-v0.14.43.tar.gz
diff --git a/sources b/sources
index 3bf8d66..e283a64 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (syncthing-source-v0.14.42.tar.gz) = 83d5eec2458a99c4a2c2051ef85e6ad4370a0a54bfff4399977c5f0d7a0ea69222e8bb5dd970c1fbfbd09cdb9fcfc2ba31d75fcfdd86b0a0bc875ee5abe224a4
+SHA512 (syncthing-source-v0.14.43.tar.gz) = f2c8b0ca5971cd2fbbcba193917ba73c0d7932937a8c18821348a6bfe6a4df854284336694591dba4aba0b8eeb16452dc5887535035c81a8c66c85bd711f16db
diff --git a/syncthing.spec b/syncthing.spec
index 9cebc0b..4cd1666 100644
--- a/syncthing.spec
+++ b/syncthing.spec
@@ -1,43 +1,24 @@
# Generate devel rpm
%global with_devel 1
-
# Build project from bundled dependencies
-%if 0%{?rhel}
-%global with_bundled 1
-%else
%global with_bundled 0
-%endif
-
# Build with debug info rpm
%global with_debug 1
-
# Run tests in check section
%global with_check 1
-
# Generate unit-test rpm
%global with_unit_test 1
-
# Build server tools
%global with_tools 1
-
# Build CLI program
%global with_cli 1
-
%if 0%{?with_debug}
%global _dwz_low_mem_die_limit 0
%else
%global debug_package %{nil}
%endif
-%if ! 0%{?gobuild:1}
-%ifnarch ppc64
-%global gobuild(o:) go build -buildmode pie -compiler gc -tags=rpm_crashtraceback -ldflags "${LDFLAGS:-} -B 0x$(head -c20 /dev/urandom|od -An -tx1|tr -d ' \\n') -extldflags '-Wl,-z,relro -specs=/usr/lib/rpm/redhat/redhat-hardened-ld '" -a -v -x %{?**};
-%else
-%global gobuild(o:) go build -compiler gc -tags=rpm_crashtraceback -ldflags "${LDFLAGS:-} -B 0x$(head -c20 /dev/urandom|od -An -tx1|tr -d ' \\n') -extldflags '-Wl,-z,relro -specs=/usr/lib/rpm/redhat/redhat-hardened-ld '" -a -v -x %{?**};
-%endif
-%endif
-
%global provider github
%global provider_tld com
%global project syncthing
@@ -46,15 +27,15 @@
# https://github.com/syncthing/syncthing
%global provider_prefix %{provider}.%{provider_tld}/%{project}/%{repo}
%global import_path %{provider_prefix}
-%global commit 8fd2937a583edc39f4a65eb47063b2ddcb407728
+%global commit a9f0659f2f4bf910f82b652fd27a864074ec7ab8
%global shortcommit %(c=%{commit}; echo ${c:0:7})
-# commit 8fd2937a583edc39f4a65eb47063b2ddcb407728 == version 0.14.41
+# commit a9f0659f2f4bf910f82b652fd27a864074ec7ab8 == version 0.14.43
Name: syncthing
Summary: Continuous File Synchronization
-Version: 0.14.42
+Version: 0.14.43
Release: 1%{?dist}
# syncthing (MPLv2.0) bundles angular (MIT), bootstrap (MIT), and font-awesome (MIT/OFL)
@@ -78,7 +59,6 @@ BuildRequires: systemd
%if 0%{?with_check} && ! 0%{?with_bundled}
BuildRequires: golang(github.com/AudriusButkevicius/go-nat-pmp)
-BuildRequires: golang(github.com/AudriusButkevicius/kcp-go)
BuildRequires: golang(github.com/AudriusButkevicius/pfilter)
BuildRequires: golang(github.com/bkaradzic/go-lz4)
BuildRequires: golang(github.com/calmh/du)
@@ -102,6 +82,7 @@ BuildRequires: golang(github.com/syndtr/goleveldb/leveldb/storage)
BuildRequires: golang(github.com/syndtr/goleveldb/leveldb/util)
BuildRequires: golang(github.com/thejerf/suture)
BuildRequires: golang(github.com/vitrun/qart)
+BuildRequires: golang(github.com/xtaci/kcp-go)
BuildRequires: golang(github.com/xtaci/smux)
BuildRequires: golang(github.com/zillode/notify)
BuildRequires: golang(golang.org/x/net/context)
@@ -122,6 +103,10 @@ Provides: bundled(bootstrap) = 3.3.6
Provides: bundled(font-awesome) = 4.5.0
Provides: bundled(jquery) = 2.2.2
+# an inotify filesystem watcher is integrated with syncthing now
+Provides: syncthing-inotify = 0.8.7-5
+Obsoletes: syncthing-inotify < 0.8.7-5
+
%description
Syncthing replaces other file synchronization services with something
@@ -140,7 +125,6 @@ Provides: %{long_name}-devel = %{version}-%{release}
BuildArch: noarch
Requires: golang(github.com/AudriusButkevicius/go-nat-pmp)
-Requires: golang(github.com/AudriusButkevicius/kcp-go)
Requires: golang(github.com/AudriusButkevicius/pfilter)
Requires: golang(github.com/bkaradzic/go-lz4)
Requires: golang(github.com/calmh/du)
@@ -164,6 +148,7 @@ Requires: golang(github.com/syndtr/goleveldb/leveldb/storage)
Requires: golang(github.com/syndtr/goleveldb/leveldb/util)
Requires: golang(github.com/thejerf/suture)
Requires: golang(github.com/vitrun/qart)
+Requires: golang(github.com/xtaci/kcp-go)
Requires: golang(github.com/xtaci/smux)
Requires: golang(github.com/zillode/notify)
Requires: golang(golang.org/x/net/context)
@@ -206,89 +191,6 @@ Provides: golang(%{import_path}/lib/versioner) = %{version}-%{release}
Provides: golang(%{import_path}/lib/watchaggregator) = %{version}-%{release}
Provides: golang(%{import_path}/lib/weakhash) = %{version}-%{release}
-%if 0%{?with_bundled}
-Provides: bundled(golang(github.com/AudriusButkevicius/cli)) = 7f561c78b5a4aad858d9fd550c92b5da6d55efbb
-Provides: bundled(golang(github.com/AudriusButkevicius/go-nat-pmp)) = 452c97607362b2ab5a7839b8d1704f0396b640ca
-Provides: bundled(golang(github.com/AudriusButkevicius/kcp-go)) = 8ae5f528469c6ab76110f41eb7a51341b7efb946
-Provides: bundled(golang(github.com/AudriusButkevicius/pfilter)) = 9dca34a5b530bfc9843fa8aa2ff08ff9821032cb
-Provides: bundled(golang(github.com/bkaradzic/go-lz4)) = 7224d8d8f27ef618c0a95f1ae69dbb0488abc33a
-Provides: bundled(golang(github.com/calmh/du)) = dd9dc2043353249b2910b29dcfd6f6d4e64f39be
-Provides: bundled(golang(github.com/calmh/xdr)) = 08e072f9cb164f943a92eb59f90f3abc64ac6e8f
-Provides: bundled(golang(github.com/ccding/go-stun)) = d9bbe8f8fa7bf7ed03e6cfc6a2796bb36139e1f4
-Provides: bundled(golang(github.com/chmduquesne/rollinghash)) = 043b8fdecc9816f0011a056f6d92f9a091ab63dd
-Provides: bundled(golang(github.com/cznic/b)) = aaaa43c92e509a827e63540510bc94c3003ef2e1
-Provides: bundled(golang(github.com/cznic/fileutil)) = 90cf820aafe8f7df39416fdbb932029ff99bd1ab
-Provides: bundled(golang(github.com/cznic/internal/buffer)) = e5e1c3e9165d0a72507c2bbb0ffac1c02b8d3f7c
-Provides: bundled(golang(github.com/cznic/internal/file)) = e5e1c3e9165d0a72507c2bbb0ffac1c02b8d3f7c
-Provides: bundled(golang(github.com/cznic/internal/slice)) = e5e1c3e9165d0a72507c2bbb0ffac1c02b8d3f7c
-Provides: bundled(golang(github.com/cznic/lldb)) = bea8611dd5c407f3c5eab9f9c68e887a27dc6f0e
-Provides: bundled(golang(github.com/cznic/mathutil)) = 1447ad269d64ca91aa8d7079baa40b6fc8b965e7
-Provides: bundled(golang(github.com/cznic/ql)) = bd2055c7674ac80c520815dfe85082844cd246d4
-Provides: bundled(golang(github.com/cznic/sortutil)) = 4c7342852e65c2088c981288f2c5610d10b9f7f4
-Provides: bundled(golang(github.com/cznic/strutil)) = 43a89592ed56c227c7fdb1fcaf7d1d08be02ec54
-Provides: bundled(golang(github.com/cznic/zappy)) = 2533cb5b45cc6c07421468ce262899ddc9d53fb7
-Provides: bundled(golang(github.com/d4l3k/messagediff)) = 2fe2a1d40db6c23619ae5bcc8f80a5b43c40581b
-Provides: bundled(golang(github.com/edsrzf/mmap-go)) = 0bce6a6887123b67a60366d2c9fe2dfb74289d2e
-Provides: bundled(golang(github.com/gobwas/glob)) = 51eb1ee00b6d931c66d229ceeb7c31b985563420
-Provides: bundled(golang(github.com/gogo/protobuf)) = efccd33a0c20aa078705571d5ddbfa14c8395a63
-Provides: bundled(golang(github.com/golang/groupcache/lru)) = 72d04f9fcdec7d3821820cc4a6f150eae553639a
-Provides: bundled(golang(github.com/golang/protobuf/proto)) = 2bba0603135d7d7f5cb73b2125beeda19c09f4ef
-Provides: bundled(golang(github.com/golang/protobuf/ptypes/any)) = 2bba0603135d7d7f5cb73b2125beeda19c09f4ef
-Provides: bundled(golang(github.com/golang/snappy)) = 553a641470496b2327abcac10b36396bd98e45c9
-Provides: bundled(golang(github.com/jackpal/gateway)) = 5795ac81146e01d3fab7bcf21c043c3d6a32b006
-Provides: bundled(golang(github.com/kardianos/osext)) = 9d302b58e975387d0b4d9be876622c86cefe64be
-Provides: bundled(golang(github.com/kballard/go-shellquote)) = cd60e84ee657ff3dc51de0b4f55dd299a3e136f2
-Provides: bundled(golang(github.com/klauspost/cpuid)) = 09cded8978dc9e80714c4d85b0322337b0a1e5e0
-Provides: bundled(golang(github.com/lib/pq)) = 2704adc878c21e1329f46f6e56a1c387d788ff94
-Provides: bundled(golang(github.com/minio/sha256-simd)) = 6124d070eb4e7001c244b6ccc282620a5dce44a0
-Provides: bundled(golang(github.com/onsi/ginkgo)) = 77a8c1e5c40d6bb6c5eb4dd4bdce9763564f6298
-Provides: bundled(golang(github.com/onsi/gomega)) = 334b8f472b3af5d541c5642701c1e29e2126f486
-Provides: bundled(golang(github.com/oschwald/geoip2-golang)) = 0fd242da7906550802871efe101abfdb1cc550a8
-Provides: bundled(golang(github.com/oschwald/maxminddb-golang)) = 697da8075d2061aa8ed639346443f5d3e8c80b30
-Provides: bundled(golang(github.com/petermattis/goid)) = caab6446a35a918488a0f52d4b0bd088a60f3511
-Provides: bundled(golang(github.com/pkg/errors)) = ff09b135c25aae272398c51a07235b90a75aa4f0
-Provides: bundled(golang(github.com/rcrowley/go-metrics)) = 1f30fe9094a513ce4c700b9a54458bbb0c96996c
-Provides: bundled(golang(github.com/remyoudompheng/bigfft)) = a8e77ddfb93284b9d58881f597c820a2875af336
-Provides: bundled(golang(github.com/sasha-s/go-deadlock)) = 341000892f3dd25f440e6231e8533eb3688ed7ec
-Provides: bundled(golang(github.com/stathat/go)) = 74669b9f388d9d788c97399a0824adbfee78400e
-Provides: bundled(golang(github.com/syndtr/goleveldb/leveldb)) = 549b6d6b1c0419617182954dd77770f2e2685ed5
-Provides: bundled(golang(github.com/templexxx/cpufeat)) = 3794dfbfb04749f896b521032f69383f24c3687e
-Provides: bundled(golang(github.com/templexxx/reedsolomon)) = 7092926d7d05c415fabb892b1464a03f8228ab80
-Provides: bundled(golang(github.com/templexxx/xor)) = 42f9c041c330b560afb991153bf183c25444bcdc
-Provides: bundled(golang(github.com/thejerf/suture)) = 0ac47afae95ad5bc5184ed346bc945168e883f5d
-Provides: bundled(golang(github.com/tjfoc/gmsm/sm4)) = 0f4904804c0f24f1784e10195a4144fcffa86a85
-Provides: bundled(golang(github.com/vitrun/qart/coding)) = bf64b92db6b05651d6c25a3dabf2d543b360c0aa
-Provides: bundled(golang(github.com/vitrun/qart/gf256)) = bf64b92db6b05651d6c25a3dabf2d543b360c0aa
-Provides: bundled(golang(github.com/vitrun/qart/qr)) = bf64b92db6b05651d6c25a3dabf2d543b360c0aa
-Provides: bundled(golang(github.com/xtaci/smux)) = 0f6b9aaecaaf354357adc7def9239011ad276776
-Provides: bundled(golang(github.com/zillode/notify)) = 54e3093eb7377fd139c4605f475cc78e83610b9d
-Provides: bundled(golang(golang.org/x/crypto/bcrypt)) = c78caca803c95773f48a844d3dcab04b9bc4d6dd
-Provides: bundled(golang(golang.org/x/crypto/blowfish)) = c78caca803c95773f48a844d3dcab04b9bc4d6dd
-Provides: bundled(golang(golang.org/x/crypto/cast5)) = c78caca803c95773f48a844d3dcab04b9bc4d6dd
-Provides: bundled(golang(golang.org/x/crypto/pbkdf2)) = c78caca803c95773f48a844d3dcab04b9bc4d6dd
-Provides: bundled(golang(golang.org/x/crypto/salsa20)) = c78caca803c95773f48a844d3dcab04b9bc4d6dd
-Provides: bundled(golang(golang.org/x/crypto/tea)) = c78caca803c95773f48a844d3dcab04b9bc4d6dd
-Provides: bundled(golang(golang.org/x/crypto/twofish)) = c78caca803c95773f48a844d3dcab04b9bc4d6dd
-Provides: bundled(golang(golang.org/x/crypto/xtea)) = c78caca803c95773f48a844d3dcab04b9bc4d6dd
-Provides: bundled(golang(golang.org/x/net/bpf)) = ffcf1bedda3b04ebb15a168a59800a73d6dc0f4d
-Provides: bundled(golang(golang.org/x/net/context)) = ffcf1bedda3b04ebb15a168a59800a73d6dc0f4d
-Provides: bundled(golang(golang.org/x/net/internal/iana)) = ffcf1bedda3b04ebb15a168a59800a73d6dc0f4d
-Provides: bundled(golang(golang.org/x/net/internal/netreflect)) = ffcf1bedda3b04ebb15a168a59800a73d6dc0f4d
-Provides: bundled(golang(golang.org/x/net/ipv4)) = ffcf1bedda3b04ebb15a168a59800a73d6dc0f4d
-Provides: bundled(golang(golang.org/x/net/ipv6)) = ffcf1bedda3b04ebb15a168a59800a73d6dc0f4d
-Provides: bundled(golang(golang.org/x/net/proxy)) = ffcf1bedda3b04ebb15a168a59800a73d6dc0f4d
-Provides: bundled(golang(golang.org/x/sys/unix)) = f3918c30c5c2cb527c0b071a27c35120a6c0719a
-Provides: bundled(golang(golang.org/x/sys/windows)) = 493114f68206f85e7e333beccfabc11e98cba8dd
-Provides: bundled(golang(golang.org/x/text/internal/gen)) = f4b4367115ec2de254587813edaa901bc1c723a8
-Provides: bundled(golang(golang.org/x/text/internal/triegen)) = f4b4367115ec2de254587813edaa901bc1c723a8
-Provides: bundled(golang(golang.org/x/text/internal/ucd)) = f4b4367115ec2de254587813edaa901bc1c723a8
-Provides: bundled(golang(golang.org/x/text/transform)) = f4b4367115ec2de254587813edaa901bc1c723a8
-Provides: bundled(golang(golang.org/x/text/unicode/cldr)) = f4b4367115ec2de254587813edaa901bc1c723a8
-Provides: bundled(golang(golang.org/x/text/unicode/norm)) = f4b4367115ec2de254587813edaa901bc1c723a8
-Provides: bundled(golang(golang.org/x/time/rate)) = f51c12702a4d776e4c1fa9b0fabab841babae631
-Provides: bundled(golang(gopkg.in/yaml.v2)) = a3f3340b5840cee44f372bddb5880fcbc419b46a
-%endif
-
%description devel
Syncthing replaces other file synchronization services with something
open, trustworthy and decentralized. Your data is your data alone and
@@ -386,16 +288,8 @@ This package contains the CLI program.
%build
-%if ! 0%{?with_bundled}
# remove bundled libraries
rm -r vendor
-%endif
-
-# Replace usage of "context" package (go 1.7+ only) with the old
-# "golang.org/x/net/context" package if only an old compiler is available
-%if 0%{?fedora} == 24 || 0%{?rhel}
-sed -i 's/"context"/"golang.org\/x\/net\/context"/' cmd/syncthing/*.go lib/*/*.go
-%endif
# prepare build environment
mkdir -p ./_build/src/%{provider}.%{provider_tld}/%{project}
@@ -435,9 +329,7 @@ popd
%endif
# remove build script so it doesn't get picked up later
-%if 0%{?with_devel}
rm build.go
-%endif
%install
@@ -559,16 +451,7 @@ sort -u -o unit-test-devel.file-list unit-test-devel.file-list
%check
%if 0%{?with_check} && 0%{?with_unit_test} && 0%{?with_devel}
-%if ! 0%{?with_bundled}
export GOPATH=%{buildroot}/%{gopath}:%{gopath}
-%else
-# Since we aren't packaging up the vendor directory we need to link
-# back to it somehow. Hack it up so that we can add the vendor
-# directory from BUILD dir as a gopath to be searched when executing
-# tests from the BUILDROOT dir.
-ln -s ./ ./vendor/src # ./vendor/src -> ./vendor
-export GOPATH=%{buildroot}/%{gopath}:$(pwd)/vendor:%{gopath}
-%endif
%if ! 0%{?gotest:1}
%global gotest go test
@@ -692,6 +575,9 @@ find %{buildroot}/%{gopath}/src/%{import_path}/ -name ".stfolder" -print -delete
%changelog
+* Tue Jan 09 2018 Fabio Valentini <decathorpe(a)gmail.com> - 0.14.43-1
+- Update to version 0.14.43.
+
* Tue Dec 26 2017 Fabio Valentini <decathorpe(a)gmail.com> - 0.14.42-1
- Update to version 0.14.42.
6 years, 3 months