199 changed files with 3026 additions and 2429 deletions
-
1app-admin/logstash-bin/Manifest
-
56app-admin/logstash-bin/logstash-bin-5.4.0.ebuild
-
8app-admin/logstash-bin/metadata.xml
-
1app-i18n/ibus-m17n/Manifest
-
46app-i18n/ibus-m17n/ibus-m17n-1.3.3.ebuild
-
1app-misc/elasticsearch/Manifest
-
68app-misc/elasticsearch/elasticsearch-5.4.0.ebuild
-
8app-misc/elasticsearch/metadata.xml
-
2app-misc/jira-cli/jira-cli-2.1.5.ebuild
-
33app-office/hourglass/hourglass-0.7.2-r1.ebuild
-
52app-office/hourglass/hourglass-0.7.2.ebuild
-
2app-text/krop/Manifest
-
6app-text/krop/krop-0.4.11.ebuild
-
25app-text/krop/krop-0.4.7.ebuild
-
25app-text/krop/krop-0.4.8.ebuild
-
3app-text/texlive-core/texlive-core-2016-r5.ebuild
-
1dev-db/aerospike-server-community/Manifest
-
68dev-db/aerospike-server-community/aerospike-server-community-3.12.1.1.ebuild
-
2dev-db/cockroach/cockroach-1.0-r1.ebuild
-
2dev-db/cockroach/cockroach-1.0.ebuild
-
2dev-db/cockroach/cockroach-1.0_rc1.ebuild
-
1dev-java/commons-jxpath/Manifest
-
60dev-java/commons-jxpath/commons-jxpath-1.3-r1.ebuild
-
60dev-java/commons-jxpath/commons-jxpath-1.3-r2.ebuild
-
5dev-java/commons-jxpath/commons-jxpath-1.3-r3.ebuild
-
1dev-java/rome/Manifest
-
50dev-java/rome/rome-0.9-r2.ebuild
-
5dev-java/rome/rome-0.9-r3.ebuild
-
1dev-java/xstream/Manifest
-
56dev-java/xstream/xstream-1.4.8-r1.ebuild
-
4dev-java/xstream/xstream-1.4.8-r2.ebuild
-
13dev-lang/go/Manifest
-
738dev-lang/go/files/1.8-cmd-compile-add-opcode-flag-hasSideEffects-for-do-no.patch
-
221dev-lang/go/go-1.7.5.ebuild
-
231dev-lang/go/go-1.8-r1.ebuild
-
1dev-lang/php/Manifest
-
738dev-lang/php/php-7.1.5.ebuild
-
2dev-libs/confuse/Manifest
-
40dev-libs/confuse/confuse-2.7.ebuild
-
52dev-libs/confuse/confuse-2.8.ebuild
-
15dev-libs/vc/Manifest
-
39dev-libs/vc/vc-1.3.2.ebuild
-
16dev-php/pecl-rrd/pecl-rrd-1.1.3-r1.ebuild
-
42dev-php/pecl-rrd/pecl-rrd-1.1.3-r2.ebuild
-
20dev-php/pecl-rrd/pecl-rrd-2.0.1-r1.ebuild
-
42dev-php/pecl-rrd/pecl-rrd-2.0.1-r2.ebuild
-
1dev-python/elasticsearch-curator/Manifest
-
121dev-python/elasticsearch-curator/elasticsearch-curator-5.0.4.ebuild
-
8dev-python/elasticsearch-curator/metadata.xml
-
1dev-python/elasticsearch-py/Manifest
-
100dev-python/elasticsearch-py/elasticsearch-py-5.3.0.ebuild
-
8dev-python/elasticsearch-py/metadata.xml
-
1dev-python/flask/Manifest
-
59dev-python/flask/flask-0.12.2.ebuild
-
1dev-python/hiro/Manifest
-
22dev-python/hiro/hiro-0.3.ebuild
-
11dev-python/minimock/minimock-1.2.8-r1.ebuild
-
18dev-python/node-semver/node-semver-0.1.1.ebuild
-
2dev-python/oauth2/oauth2-1.9.0_p1-r1.ebuild
-
8dev-python/pyalsaaudio/pyalsaaudio-0.8.2.ebuild
-
4dev-python/pygraphviz/pygraphviz-1.3.1.ebuild
-
6dev-python/pykka/pykka-1.2.1.ebuild
-
4dev-python/pyramid/pyramid-1.5.1.ebuild
-
2dev-python/pyramid/pyramid-1.5.8.ebuild
-
6dev-python/pyroma/pyroma-1.7.ebuild
-
4dev-python/pysrt/pysrt-1.1.1.ebuild
-
6dev-python/pysrt/pysrt-9999.ebuild
-
6dev-python/python-ptrace/python-ptrace-0.8.1-r1.ebuild
-
2dev-python/queuelib/Manifest
-
14dev-python/queuelib/queuelib-1.1.1.ebuild
-
2dev-python/scripttest/Manifest
-
12dev-python/scripttest/scripttest-1.3.0.ebuild
-
6dev-python/tinydb/tinydb-3.1.3.ebuild
-
419licenses/Cockroach
-
1media-sound/ardour/Manifest
-
141media-sound/ardour/ardour-5.9.ebuild
-
2metadata/dtd/timestamp.chk
-
2metadata/glsa/timestamp.chk
-
12metadata/md5-cache/app-admin/logstash-bin-5.4.0
-
12metadata/md5-cache/app-i18n/ibus-m17n-1.3.3
-
12metadata/md5-cache/app-misc/elasticsearch-5.4.0
-
10metadata/md5-cache/app-misc/jira-cli-2.1.5
-
13metadata/md5-cache/app-office/hourglass-0.7.2
-
8metadata/md5-cache/app-office/hourglass-0.7.2-r1
-
12metadata/md5-cache/app-text/krop-0.4.11
-
14metadata/md5-cache/app-text/krop-0.4.7
-
14metadata/md5-cache/app-text/krop-0.4.8
-
2metadata/md5-cache/app-text/texlive-core-2016-r5
-
12metadata/md5-cache/dev-db/aerospike-server-community-3.12.1.1
-
4metadata/md5-cache/dev-db/cockroach-1.0
-
4metadata/md5-cache/dev-db/cockroach-1.0-r1
-
4metadata/md5-cache/dev-db/cockroach-1.0_rc1
-
13metadata/md5-cache/dev-java/commons-jxpath-1.3-r1
-
13metadata/md5-cache/dev-java/commons-jxpath-1.3-r2
-
4metadata/md5-cache/dev-java/commons-jxpath-1.3-r3
-
13metadata/md5-cache/dev-java/rome-0.9-r2
-
4metadata/md5-cache/dev-java/rome-0.9-r3
-
13metadata/md5-cache/dev-java/xstream-1.4.8-r1
-
4metadata/md5-cache/dev-java/xstream-1.4.8-r2
-
13metadata/md5-cache/dev-lang/go-1.7.5
@ -1,3 +1,4 @@ |
|||
DIST logstash-5.1.2.zip 100044055 SHA256 99fd514b6241310c78aefca2cd895c1cec4cd426aa08fccf7e8bba26567573c3 SHA512 4186f942dd555dc1284bc657cbd3a61de8aa67a50bd2f7b725d3364e5fca61029cadb0ca4f9e1c4a36078805fd015128ddcd7773e19e643eaddd5ae2fa9c6673 WHIRLPOOL 1127a419a35e42de59a4bd61fe5b75e39daad69d0646019417abf83f44639a86fd2b1ffc687b6cc551562045ef3d2d901d7985437d158094d4d054e4a93bfd5d |
|||
DIST logstash-5.2.2.zip 100068713 SHA256 35bd0378f5b9001b4c3056b11496936ef47c09e3ddc469353bc8951e3b81e174 SHA512 923b35e8bcc97f6036cd4a484df546b2cc1341ec8fe5080bea8f979856086aaaae5f71fa0c3f7aee2207f7c3e71aec18af416278123362f89990c05ec9e2c92f WHIRLPOOL 4a67ed0ba3b532da5d488b2e45f53149b4e63b6b638b6fe1058a13eab904cb7ec24cd87306868a4770fe6aadfe13f7d76bfc9973e73104a8e4e9aee455321c32 |
|||
DIST logstash-5.3.1.zip 100150030 SHA256 f5e626a8cfe128b7ebaa0ec8ddc20876913852efd91c2c81a1f19f2223e00e07 SHA512 7897eab56bc33ee38169ad34e600cdf7180d0af30f93811f1ecf30a107944cd7a5ab2e95805695da7c1ce6f2112424c17de3b3bd9efaf344daff4e227d5e3d90 WHIRLPOOL 12383a43c372a2eef31b0a64e1b14f304ea90f7202524f6d56b7f0f51fcefd029f45b7f2782050d3c89269e41ae96c02e78586db30bb5d509f45b19508c36be3 |
|||
DIST logstash-5.4.0.zip 98567077 SHA256 f7a817009f7458cb186d652497e68003c221b07dbf28b5097a66b40ffb022a2a SHA512 4d552d43a1817ba04d25a3ada1cf87ecdae632a520627d3b6cb514b7e3384a6a09a98e8f24ea19328c60c4549b9dd1eb0e1a5282665f85877afbd7e7fef88e71 WHIRLPOOL 25dc935abee1ae1852c83801d50fc08bc2896e2744282f219e2afef4e9da5f608472baf4f88b31127959495d320643bbf7f94d7fea809b15d8186f333649ad0e |
@ -0,0 +1,56 @@ |
|||
# Copyright 1999-2017 Gentoo Foundation |
|||
# Distributed under the terms of the GNU General Public License v2 |
|||
|
|||
EAPI=6 |
|||
|
|||
inherit user |
|||
|
|||
MY_PN="${PN%-bin}" |
|||
MY_P="${MY_PN}-${PV}" |
|||
|
|||
DESCRIPTION="Tool for managing events and logs" |
|||
HOMEPAGE="https://www.elastic.co/products/logstash" |
|||
SRC_URI="https://artifacts.elastic.co/downloads/${MY_PN}/${MY_P}.zip" |
|||
|
|||
LICENSE="Apache-2.0" |
|||
SLOT="0" |
|||
KEYWORDS="~amd64" |
|||
|
|||
RESTRICT="strip" |
|||
QA_PREBUILT="opt/logstash/vendor/jruby/lib/jni/*/libjffi*.so" |
|||
|
|||
RDEPEND="virtual/jre:1.8" |
|||
|
|||
S="${WORKDIR}/${MY_P}" |
|||
|
|||
pkg_setup() { |
|||
enewgroup ${MY_PN} |
|||
enewuser ${MY_PN} -1 -1 /var/lib/${MY_PN} ${MY_PN} |
|||
} |
|||
|
|||
src_install() { |
|||
keepdir /etc/"${MY_PN}"/{conf.d,patterns,plugins} |
|||
keepdir "/var/log/${MY_PN}" |
|||
|
|||
insinto "/usr/share/${MY_PN}" |
|||
newins "${FILESDIR}/agent.conf.sample" agent.conf |
|||
|
|||
insinto "/opt/${MY_PN}" |
|||
doins -r . |
|||
fperms 0755 "/opt/${MY_PN}/bin/${MY_PN}" "/opt/${MY_PN}/vendor/jruby/bin/jruby" "/opt/${MY_PN}/bin/logstash-plugin" |
|||
|
|||
insinto /etc/logrotate.d |
|||
newins "${FILESDIR}/${MY_PN}.logrotate" "${MY_PN}" |
|||
|
|||
newconfd "${FILESDIR}/${MY_PN}.confd" "${MY_PN}" |
|||
newinitd "${FILESDIR}/${MY_PN}.initd" "${MY_PN}" |
|||
} |
|||
|
|||
pkg_postinst() { |
|||
ewarn "The default user changed from root to ${MY_PN}. If you wish to run as root (for" |
|||
ewarn "example to read local logs), be sure to change LS_USER and LS_GROUP in" |
|||
ewarn "${EROOT%/}/etc/conf.d/${MY_PN}" |
|||
einfo |
|||
einfo "Installing plugins: (bug #601294)" |
|||
einfo "DEBUG=1 JARS_SKIP='true' bin/logstash-plugin install logstash-output-gelf" |
|||
} |
@ -1,3 +1,2 @@ |
|||
DIST ibus-m17n-1.3.2.tar.gz 414324 SHA256 c1e7529c63305bc5f2ddc4832550becd16e084beaf4217549bf1dd46a9b0e370 SHA512 6cbff2bf08043eb46d5e97c9303ebbb795c69b77c14d113c22fee2111eaee04ba8bc27bbd44b6640be02dd43f4b3711aba1b02fcbb350b8bca8d90dd20b4ba54 WHIRLPOOL 5b59e39028e19f3379abebf6b4ddf835bd01d28df623c2ef03f98a8f5b53acd985ca34d3f3d12cf5258c926de47523fddb48b78ceec0efb967586437e52bdc7e |
|||
DIST ibus-m17n-1.3.3.tar.gz 431113 SHA256 0374aef2149bcf1a337c39ab642ee39da4dbb17758ee8c095f954ca835dc10bf SHA512 1ffb659a2c6837727365760267ebbdf0329cf0b103e1fa105d895f62fc580821f8cfc097687e631cb06881986a5482ecc720df451a5b27dc494cc07d1862c98d WHIRLPOOL 437e1720efe77952d12c9eca28a95e509a3cad288573754eccab8de4fbe3a88d2efbdc9e3c4997ebbc04825d3a318c7b49c384d2459b8ddd1d0af1fd4fd45aeb |
|||
DIST ibus-m17n-1.3.4.tar.gz 436687 SHA256 79004c696c47cd909b39f547ce118a80b672ccdab77a4a5b1824e496d649ae70 SHA512 9e9bc290b0f0d68558d408f6e69aa3bd9bb767db827a95839b576b58c7a5056dedcbd9b0bf1aab5e26ab21e601acd67a53404a5fd54b436efaf2a706489f25c4 WHIRLPOOL 0109df716a9ed71ac7f1d9544e361e38c3b8a7ae81b271d54ab1979a611fc44698649d92dfc68131f29166f60875558421b9f033632c5125c27505465c73d0a4 |
@ -1,46 +0,0 @@ |
|||
# Copyright 1999-2012 Gentoo Foundation |
|||
# Distributed under the terms of the GNU General Public License v2 |
|||
|
|||
EAPI="3" |
|||
|
|||
DESCRIPTION="The M17N engine IMEngine for IBus Framework" |
|||
HOMEPAGE="https://github.com/ibus/ibus/wiki" |
|||
SRC_URI="https://ibus.googlecode.com/files/${P}.tar.gz" |
|||
|
|||
LICENSE="GPL-2" |
|||
SLOT="0" |
|||
KEYWORDS="~amd64 ~x86" |
|||
IUSE="gtk nls" |
|||
|
|||
RDEPEND=">=app-i18n/ibus-1.3.99.20110817 |
|||
dev-libs/libxml2 |
|||
gtk? ( >=x11-libs/gtk+-2.12.12:2 ) |
|||
dev-libs/m17n-lib |
|||
nls? ( virtual/libintl )" |
|||
DEPEND="${RDEPEND} |
|||
virtual/pkgconfig |
|||
>=sys-devel/gettext-0.16.1" |
|||
RDEPEND="${RDEPEND} |
|||
dev-db/m17n-db |
|||
dev-db/m17n-contrib" |
|||
# gtk? ( |
|||
# || ( |
|||
# >=x11-libs/gtk+-2.90.5:3 |
|||
# >=x11-libs/gtk+-2.12.12:2 |
|||
# ) |
|||
# ) |
|||
|
|||
src_configure() { |
|||
local myconf |
|||
|
|||
econf \ |
|||
$(use_with gtk gtk 2.0) \ |
|||
$(use_enable nls) \ |
|||
${myconf} || die |
|||
} |
|||
|
|||
src_install() { |
|||
emake DESTDIR="${D}" install || die |
|||
|
|||
dodoc AUTHORS ChangeLog NEWS README || die |
|||
} |
@ -0,0 +1,68 @@ |
|||
# Copyright 1999-2017 Gentoo Foundation |
|||
# Distributed under the terms of the GNU General Public License v2 |
|||
|
|||
EAPI=6 |
|||
|
|||
inherit systemd user |
|||
|
|||
DESCRIPTION="Open Source, Distributed, RESTful, Search Engine" |
|||
HOMEPAGE="https://www.elastic.co/products/elasticsearch" |
|||
SRC_URI="https://artifacts.elastic.co/downloads/${PN}/${P}.tar.gz" |
|||
LICENSE="Apache-2.0 BSD-2 LGPL-3 MIT public-domain" |
|||
SLOT="0" |
|||
KEYWORDS="~amd64" |
|||
|
|||
RDEPEND="virtual/jre:1.8" |
|||
|
|||
pkg_setup() { |
|||
enewgroup ${PN} |
|||
enewuser ${PN} -1 /bin/bash /usr/share/${PN} ${PN} |
|||
} |
|||
|
|||
src_prepare() { |
|||
rm -rf bin/*.{bat,exe} || die |
|||
rm LICENSE.txt || die |
|||
|
|||
default |
|||
} |
|||
|
|||
src_install() { |
|||
keepdir /etc/${PN} |
|||
keepdir /etc/${PN}/scripts |
|||
|
|||
insinto /etc/${PN} |
|||
doins config/* |
|||
rm -rf config || die |
|||
|
|||
insinto /usr/share/${PN} |
|||
doins -r ./* |
|||
|
|||
exeinto /usr/share/${PN}/bin |
|||
doexe "${FILESDIR}/elasticsearch-systemd-pre-exec" |
|||
|
|||
chmod +x "${D}"/usr/share/${PN}/bin/* || die |
|||
|
|||
keepdir /var/{lib,log}/${PN} |
|||
keepdir /usr/share/${PN}/plugins |
|||
|
|||
systemd_newtmpfilesd "${FILESDIR}/${PN}.tmpfiles.d" "${PN}.conf" |
|||
|
|||
insinto /etc/sysctl.d |
|||
newins "${FILESDIR}/${PN}.sysctl.d" "${PN}.conf" |
|||
|
|||
newinitd "${FILESDIR}/${PN}.init8" "${PN}" |
|||
newconfd "${FILESDIR}/${PN}.conf3" "${PN}" |
|||
systemd_newunit "${FILESDIR}"/${PN}.service6 "${PN}.service" |
|||
} |
|||
|
|||
pkg_postinst() { |
|||
elog |
|||
elog "You may create multiple instances of ${PN} by" |
|||
elog "symlinking the init script:" |
|||
elog "ln -sf /etc/init.d/${PN} /etc/init.d/${PN}.instance" |
|||
elog |
|||
elog "Please make sure you put elasticsearch.yml, log4j2.properties and scripts" |
|||
elog "from /etc/elasticsearch into the configuration directory of the instance:" |
|||
elog "/etc/${PN}/instance" |
|||
elog |
|||
} |
@ -1,52 +0,0 @@ |
|||
# Copyright 1999-2014 Gentoo Foundation |
|||
# Distributed under the terms of the GNU General Public License v2 |
|||
|
|||
EAPI=5 |
|||
JAVA_PKG_IUSE="doc source" |
|||
|
|||
inherit java-pkg-2 java-ant-2 eutils |
|||
|
|||
DESCRIPTION="A PSP (personal software process) time tracking utility written in Java" |
|||
HOMEPAGE="http://hourglass.wiki.sourceforge.net/" |
|||
SRC_URI="mirror://sourceforge/${PN}/${P}-src.tar.gz" |
|||
|
|||
LICENSE="GPL-2" |
|||
SLOT="0" |
|||
KEYWORDS="amd64 x86" |
|||
IUSE="" |
|||
|
|||
COMMON_DEPEND="dev-java/log4j |
|||
dev-java/jcommon:1.0 |
|||
dev-java/jdom:1.0" |
|||
|
|||
DEPEND=">=virtual/jdk-1.5 |
|||
dev-java/ant-core |
|||
${COMMON_DEPEND}" |
|||
RDEPEND=">=virtual/jre-1.5 |
|||
${COMMON_DEPEND}" |
|||
|
|||
S="${WORKDIR}/${P}-src" |
|||
|
|||
java_prepare() { |
|||
echo "jar.log4j=$(java-pkg_getjar log4j log4j.jar)" > conf/local.properties |
|||
echo "jar.jcommon=$(java-pkg_getjar jcommon:1.0 jcommon.jar)" >> conf/local.properties |
|||
echo "jar.jdom=$(java-pkg_getjar jdom:1.0 jdom.jar)" >> conf/local.properties |
|||
echo "jar.ant=$(java-pkg_getjar --build-only ant-core ant.jar)" >> conf/local.properties |
|||
} |
|||
|
|||
EANT_BUILD_TARGET="dist" |
|||
EANT_DOC_TARGET="javadoc" |
|||
|
|||
src_install() { |
|||
java-pkg_dojar "dist/${P}/lib/${PN}.jar" |
|||
|
|||
use doc && java-pkg_dojavadoc build/doc/api |
|||
use source && java-pkg_dosrc src/* |
|||
|
|||
java-pkg_dolauncher "${PN}" \ |
|||
--main "net.sourceforge.hourglass.swingui.Main" |
|||
|
|||
make_desktop_entry "${PN}" "Hourglass" "appointment-new" "Office" |
|||
|
|||
dodoc README ChangeLog AUTHORS |
|||
} |
@ -1,4 +1,2 @@ |
|||
DIST krop-0.4.11.tar.gz 35450 SHA256 5dc069afdad722e030037f7cc54bfd8b4ff3990c5600947722303053d2519d0f SHA512 785ac432f7e906ebee167791751b164a0ec30087caef0916bcd95494d7db310949aa4e44569ddaa181daca9c5834b743d3fdc64183093a41e23bb58cbe0d6cae WHIRLPOOL 5c09ddfb50055dc5a5a27e3f21bff1d1a8d7759e60cd488c54538438f83d43cb8254bf4fe0c633a9d7852a27906f3049e5a15c1d6e6ca025d161ac6de7fee778 |
|||
DIST krop-0.4.7.tar.gz 34559 SHA256 fd44f83437ef6a1cb2933ab94e78385f9d7dd7b271d24549eadea700d93b84af SHA512 b38973b2084d1ac05d71e842137793d3569a1d46668e506e8a58eac4f7bd366db177d9f8af8243ed13cfe6f73885e0998ad91a1ded4c02f6d0d0102809476d10 WHIRLPOOL ecdf833981b922de9acee9ddc1467cfc056b91766ef8f4dcfc4b98b5b63fb55924f9df3d6aa3ac99a82ef86f2f8ef608ce7b2d62c52930d059a53b0121932d52 |
|||
DIST krop-0.4.8.tar.gz 34948 SHA256 71668fe54820ad11dc47f8caddc56e0d2553975e768bd724f26fa5f5389b0aab SHA512 440a3dff6c13eb83dc9ccbbcf672a297d66d66fbf9508e3c6ceda3b043868102afb1df3401fcf06adbea1baea92444ad0dfa2fd8e74b2d993c9fe4903c9327a1 WHIRLPOOL 65aa1d73dca26d3522d1bdf75501f25340487529057bdbbaeb90472d0d518e6e54a31e2b9f1f08c6037636cd83c4ef128444c519cafae3346c8e80489d7564dd |
|||
DIST krop-0.4.9.tar.gz 35149 SHA256 725d42358cc367e6ca4ad82d50fd9bd0bb8ad1e24094ff68880d06f675d59b0f SHA512 39e1d269fb59bbbba45e820ead482a6ac049e47e7d06459a2c63826dc134ada12e49e77468bfb6870f31747084bc8dea1653109232fe6e6808726a8903124565 WHIRLPOOL d4fbada0020ef08381f300faf470e9b1d239c7386999e3a6688c22cbb747f2a721445f7469c6a12918dd3c7711fc45bc00a8792011369f656a44806b1eaa508c |
@ -1,25 +0,0 @@ |
|||
# Copyright 1999-2015 Gentoo Foundation |
|||
# Distributed under the terms of the GNU General Public License v2 |
|||
|
|||
EAPI=5 |
|||
PYTHON_COMPAT=( python2_7 ) |
|||
|
|||
inherit eutils distutils-r1 |
|||
|
|||
DESCRIPTION="A tool to crop PDF files" |
|||
HOMEPAGE="http://arminstraub.com/software/krop" |
|||
SRC_URI="http://arminstraub.com/downloads/${PN}/${P}.tar.gz" |
|||
|
|||
LICENSE="GPL-3" |
|||
SLOT="0" |
|||
KEYWORDS="~amd64 ~x86" |
|||
IUSE="" |
|||
|
|||
RDEPEND="dev-python/python-poppler-qt4[${PYTHON_USEDEP}] |
|||
dev-python/pyPdf[${PYTHON_USEDEP}]" |
|||
DEPEND="${RDEPEND}" |
|||
|
|||
src_install() { |
|||
distutils-r1_src_install |
|||
domenu "${WORKDIR}/${P}/${PN}.desktop" |
|||
} |
@ -1,25 +0,0 @@ |
|||
# Copyright 1999-2015 Gentoo Foundation |
|||
# Distributed under the terms of the GNU General Public License v2 |
|||
|
|||
EAPI=5 |
|||
PYTHON_COMPAT=( python2_7 ) |
|||
|
|||
inherit eutils distutils-r1 |
|||
|
|||
DESCRIPTION="A tool to crop PDF files" |
|||
HOMEPAGE="http://arminstraub.com/software/krop" |
|||
SRC_URI="http://arminstraub.com/downloads/${PN}/${P}.tar.gz" |
|||
|
|||
LICENSE="GPL-3" |
|||
SLOT="0" |
|||
KEYWORDS="~amd64 ~x86" |
|||
IUSE="" |
|||
|
|||
RDEPEND="dev-python/python-poppler-qt4[${PYTHON_USEDEP}] |
|||
dev-python/pyPdf[${PYTHON_USEDEP}] |
|||
dev-python/PyQt4[${PYTHON_USEDEP}]" |
|||
|
|||
src_install() { |
|||
distutils-r1_src_install |
|||
domenu "${WORKDIR}/${P}/${PN}.desktop" |
|||
} |
@ -1,5 +1,6 @@ |
|||
DIST aerospike-server-community-3.10.0.3-debian7.tgz 10347047 SHA256 fb0b47549cbe783317854b0edebe0ec112d8d5b073d7311a54739518bf2ae971 SHA512 1699bc2c8813c4b584eeef4c0edd8481915e9ccac55795717e87e6246894d836365aba2fdf8c884c6f4f4bdb3cc8d2a78141c32b1ef67cbf5efa1dc7340906ce WHIRLPOOL b6bf3a97c0023bb77f19b7cbd58785422551ce66cc7749773a1d8cfb3fa3d3ca1f96a1202718713859c23ccad0c14bded31759f36d0b0fa3039dd86e2ba1d6d2 |
|||
DIST aerospike-server-community-3.11.0.2-debian7.tgz 10137448 SHA256 3ede8b3232a8ca0f0e34f2eb9f37fa244dc502020f2d185f96ee3097d88cda21 SHA512 b4603df6de0252adb002ea25ec0ad7d6793ce9fe90e67504bfd43cbe503797471e01816dd9dcc18c2767ff98d80e181d57d91018dfc9a1e943719d24431b6160 WHIRLPOOL b4a48ceb5ee7adacc5a9d1a9baed6ad9812812dab1ded7c4f4236e25a6893d29413e53b8420d2b23d604db1163af19aaf037305f56fbc00e0795605e7c34a009 |
|||
DIST aerospike-server-community-3.12.1-debian7.tgz 10454559 SHA256 fc16a5f9fb816dedeb9b5d20c5b9a5bf56eb226ebcd615786473fd4c45620b96 SHA512 31de9c2fe1f781c4feb312c06ccea546b9016e04b750c4af5896e0ec1d5e8d26ffc3c6645ffe1c825773d1e00293359a7d48b2cd6d661644ab65408f5901503c WHIRLPOOL 7ba7708a5ec34968714c9438d64dd4db713f2bd16f0cdc0cecd47a4aa2b941f3889f9792ea85b9ae2c856279297514340310bb0d5ae813cbecfe8683148858e9 |
|||
DIST aerospike-server-community-3.12.1.1-debian7.tgz 10456157 SHA256 9776af687933c95ecf2bc783e13ae23552d925b365ade14994f31d76bcbb1999 SHA512 99196ee1af007ce587f738b1f9621ad336c13bcc4e2caae00358ea0005e2b0824974260c9136759012f985acfaf4a38d3d9719f9c2461526ab3e4a0665a3ca30 WHIRLPOOL 098c43b4252079461afcbb52ead017ec436a244ea0311c031f39a661b768788ee2da950618e6b5cd9554fabc9cb644bb769e8b9c87972d7c53ba5fb88b0ac8a5 |
|||
DIST aerospike-server-community-3.9.0.3-debian7.tgz 9783678 SHA256 ec09d7f12c1001b8341892bff50f15a75a7e8f312b510c3627066befb9fc5612 SHA512 82b826fdb6bfdbb8508346accb2b0bf34f55a601b95e214d8b7fd108790a889e64dd5b76b4351285baa3f1c4f9d6a98945737c8ca42f26229364030674a2623b WHIRLPOOL f7bac66a56ad8b9ee47b3eedc16337b13d8674f42dba40f445876fe9c46ec3620dad73a9324f4a33daef98c740643c6361b86733ac6c741a68757b332101eefb |
|||
DIST aerospike-server-community-3.9.1.1-debian7.tgz 9900121 SHA256 62526770c2881b17b928d4d0828f1b8bb5c434f37b0337863f167793f9393258 SHA512 a4ac583220eb15f976cf70a7b57ca3b2f9a0ed5a5fdc4689745b3df45c042a3e43010dda4ff16007455e32b9307474ed24114465c26cfd14be14800cd7b78332 WHIRLPOOL de08f3c057bc06380fd31928b002e611d9a3f0369d071de7bebbf3c079aaed1bc5672fe150f94c11dacfd318545b1d2529ece5eaa9bd584c5e5009192d276234 |
@ -0,0 +1,68 @@ |
|||
# Copyright 1999-2017 Gentoo Foundation |
|||
# Distributed under the terms of the GNU General Public License v2 |
|||
|
|||
EAPI=5 |
|||
inherit eutils user |
|||
|
|||
DESCRIPTION="Flash-optimized, in-memory, nosql database" |
|||
HOMEPAGE="http://www.aerospike.com" |
|||
SRC_URI="http://www.aerospike.com/artifacts/${PN}/${PV}/${P}-debian7.tgz" |
|||
|
|||
LICENSE="Apache-2.0" |
|||
SLOT="0" |
|||
KEYWORDS="~amd64" |
|||
IUSE="" |
|||
|
|||
RDEPEND="app-crypt/gcr" |
|||
DEPEND="${RDEPEND}" |
|||
|
|||
S="${WORKDIR}/${P}-debian7" |
|||
|
|||
pkg_setup() { |
|||
enewgroup aerospike |
|||
enewuser aerospike -1 /bin/bash /opt/aerospike aerospike |
|||
} |
|||
|
|||
src_prepare() { |
|||
local server_deb="${P}.debian7.x86_64.deb" |
|||
local tools_deb="aerospike-tools-3.12.1.debian7.x86_64.deb" |
|||
|
|||
ar x "${server_deb}" || die |
|||
tar xzf data.tar.gz && rm data.tar.gz || die |
|||
|
|||
ar x "${tools_deb}" || die |
|||
tar xzf data.tar.gz && rm data.tar.gz || die |
|||
|
|||
rm *.deb asinstall control.tar.gz debian-binary LICENSE SHA256SUMS |
|||
rm usr/bin/{asfixownership,asmigrate2to3} |
|||
} |
|||
|
|||
src_install() { |
|||
insinto /opt/ |
|||
doins -r opt/aerospike |
|||
|
|||
fperms +x -R /opt/aerospike/bin/ |
|||
fperms +x -R /opt/aerospike/lib/python/ |
|||
|
|||
for dir in '/etc' '/var/log'; do |
|||
keepdir "${dir}/aerospike" |
|||
done |
|||
|
|||
insinto /etc/aerospike |
|||
for conf in 'aerospike.conf' 'aerospike_mesh.conf' 'aerospike_ssd.conf'; do |
|||
doins "${FILESDIR}/${conf}" |
|||
done |
|||
|
|||
insinto /usr/bin |
|||
doins usr/bin/* |
|||
fperms +x -R /usr/bin/asd |
|||
|
|||
insinto /etc/logrotate.d |
|||
newins "${FILESDIR}"/aerospike.logrotate aerospike |
|||
|
|||
newinitd "${FILESDIR}"/aerospike.init aerospike |
|||
|
|||
fowners -R aerospike:aerospike /opt/aerospike/ |
|||
fowners aerospike:aerospike /usr/bin/asd |
|||
fowners -R aerospike:aerospike /var/log/aerospike |
|||
} |
@ -1,2 +1 @@ |
|||
DIST commons-jxpath-1.3-src.tar.gz 285339 SHA256 da314198d75c6da660e2603bd1543a8f5d0b640c5144b748e62e59afc278efe6 SHA512 a0ad0b90c9aa4c732c47c8f38f036990438f526295b782fbdc00fd67e4c0e92643c7850429eb5263f9d322aff7cb7000b8ff2bffcdcfa88fa3ba5354dce7e152 WHIRLPOOL de683fa0e2d985cb57b434af224d2cca73d215d9429b97dc940933fb4a042638227b8fb342d81a1407faf740d1a42c3d5869fc2f78307e558fffb6dd97f36e97 |
|||
DIST commons-jxpath-1.3.tar.gz 285339 SHA256 da314198d75c6da660e2603bd1543a8f5d0b640c5144b748e62e59afc278efe6 SHA512 a0ad0b90c9aa4c732c47c8f38f036990438f526295b782fbdc00fd67e4c0e92643c7850429eb5263f9d322aff7cb7000b8ff2bffcdcfa88fa3ba5354dce7e152 WHIRLPOOL de683fa0e2d985cb57b434af224d2cca73d215d9429b97dc940933fb4a042638227b8fb342d81a1407faf740d1a42c3d5869fc2f78307e558fffb6dd97f36e97 |
@ -1,60 +0,0 @@ |
|||
# Copyright 1999-2016 Gentoo Foundation |
|||
# Distributed under the terms of the GNU General Public License v2 |
|||
|
|||
EAPI=5 |
|||
JAVA_PKG_IUSE="doc source test" |
|||
|
|||
inherit java-pkg-2 java-ant-2 |
|||
|
|||
DESCRIPTION="Applies XPath expressions to graphs of objects of all kinds" |
|||
HOMEPAGE="http://commons.apache.org/jxpath/" |
|||
SRC_URI="mirror://apache/commons/jxpath/source/${P}-src.tar.gz" |
|||
|
|||
LICENSE="Apache-2.0" |
|||
SLOT="0" |
|||
KEYWORDS="amd64 ppc64 x86 ~x86-fbsd" |
|||
IUSE="" |
|||
|
|||
S="${WORKDIR}/${P}-src" |
|||
|
|||
CDEPEND="dev-java/commons-beanutils:1.7 |
|||
java-virtuals/servlet-api:2.5 |
|||
dev-java/jdom:1.0" |
|||
RDEPEND=">=virtual/jre-1.6 |
|||
${CDEPEND}" |
|||
DEPEND=">=virtual/jdk-1.6 |
|||
test? ( |
|||
dev-java/commons-collections:0 |
|||
dev-java/commons-logging:0 |
|||
) |
|||
${CDEPEND}" |
|||
|
|||
src_unpack() { |
|||
unpack ${A} |
|||
cd "${S}" |
|||
|
|||
mkdir -p "${S}/target/lib" |
|||
cd "${S}/target/lib" |
|||
java-pkg_jar-from commons-beanutils-1.7 |
|||
java-pkg_jar-from servlet-api-2.5 |
|||
java-pkg_jar-from jdom-1.0 |
|||
} |
|||
|
|||
src_prepare() { |
|||
# Don't automatically run tests |
|||
sed 's/depends="compile,test"/depends="compile"/' -i build.xml || die |
|||
} |
|||
|
|||
src_test() { |
|||
# this one needs mockrunner #259027 |
|||
rm src/test/org/apache/commons/jxpath/servlet/JXPathServletContextTest.java || die |
|||
java-pkg_jar-from --into target/lib \ |
|||
commons-collections,commons-logging,junit |
|||
ANT_TASKS="ant-junit" eant test |
|||
} |
|||
|
|||
src_install() { |
|||
java-pkg_dojar target/${PN}.jar |
|||
use doc && java-pkg_dojavadoc dist/docs/api |
|||
use source && java-pkg_dosrc src/java/* |
|||
} |
@ -1,60 +0,0 @@ |
|||
# Copyright 1999-2016 Gentoo Foundation |
|||
# Distributed under the terms of the GNU General Public License v2 |
|||
|
|||
EAPI=5 |
|||
JAVA_PKG_IUSE="doc source test" |
|||
|
|||
inherit java-pkg-2 java-ant-2 |
|||
|
|||
DESCRIPTION="Applies XPath expressions to graphs of objects of all kinds" |
|||
HOMEPAGE="http://commons.apache.org/jxpath/" |
|||
SRC_URI="mirror://apache/commons/jxpath/source/${P}-src.tar.gz" |
|||
|
|||
LICENSE="Apache-2.0" |
|||
SLOT="0" |
|||
KEYWORDS="~amd64 ~ppc64 ~x86 ~x86-fbsd" |
|||
IUSE="" |
|||
|
|||
S="${WORKDIR}/${P}-src" |
|||
|
|||
CDEPEND="dev-java/commons-beanutils:1.7 |
|||
java-virtuals/servlet-api:2.5 |
|||
dev-java/jdom:0" |
|||
RDEPEND=">=virtual/jre-1.6 |
|||
${CDEPEND}" |
|||
DEPEND=">=virtual/jdk-1.6 |
|||
test? ( |
|||
dev-java/commons-collections:0 |
|||
dev-java/commons-logging:0 |
|||
) |
|||
${CDEPEND}" |
|||
|
|||
src_unpack() { |
|||
unpack ${A} |
|||
cd "${S}" |
|||
|
|||
mkdir -p "${S}/target/lib" |
|||
cd "${S}/target/lib" |
|||
java-pkg_jar-from commons-beanutils-1.7 |
|||
java-pkg_jar-from servlet-api-2.5 |
|||
java-pkg_jar-from jdom |
|||
} |
|||
|
|||
src_prepare() { |
|||
# Don't automatically run tests |
|||
sed 's/depends="compile,test"/depends="compile"/' -i build.xml || die |
|||
} |
|||
|
|||
src_test() { |
|||
# this one needs mockrunner #259027 |
|||
rm src/test/org/apache/commons/jxpath/servlet/JXPathServletContextTest.java || die |
|||
java-pkg_jar-from --into target/lib \ |
|||
commons-collections,commons-logging,junit |
|||
ANT_TASKS="ant-junit" eant test |
|||
} |
|||
|
|||
src_install() { |
|||
java-pkg_dojar target/${PN}.jar |
|||
use doc && java-pkg_dojavadoc dist/docs/api |
|||
use source && java-pkg_dosrc src/java/* |
|||
} |
@ -1,2 +1 @@ |
|||
DIST rome-0.9-src.zip 248755 SHA256 c8e8674de5b204d02ce8b5e33fa5f848f23ee4e4746c60ebc7ccf52a1ac97a4f SHA512 d4bc9945e2b77bdc38eca609ec353379c279cd700d8d85220a1723d1b019da2c18bd93ff98b062e519e7d87f2d2b6853f373fc7178cec0f83b34af45fce5f3ff WHIRLPOOL 69554087947fec155478d5d8cd820976a878d1055dfbeebcb567893c2e943ae89f247dd578ad94d6c88cba2ee8d3faa7fac05556790157f7e2e95ed1cd752404 |
|||
DIST rome-0.9.zip 248755 SHA256 c8e8674de5b204d02ce8b5e33fa5f848f23ee4e4746c60ebc7ccf52a1ac97a4f SHA512 d4bc9945e2b77bdc38eca609ec353379c279cd700d8d85220a1723d1b019da2c18bd93ff98b062e519e7d87f2d2b6853f373fc7178cec0f83b34af45fce5f3ff WHIRLPOOL 69554087947fec155478d5d8cd820976a878d1055dfbeebcb567893c2e943ae89f247dd578ad94d6c88cba2ee8d3faa7fac05556790157f7e2e95ed1cd752404 |
@ -1,50 +0,0 @@ |
|||
# Copyright 1999-2017 Gentoo Foundation |
|||
# Distributed under the terms of the GNU General Public License v2 |
|||
|
|||
EAPI=5 |
|||
JAVA_PKG_IUSE="doc source test" |
|||
|
|||
inherit java-pkg-2 java-ant-2 |
|||
|
|||
DESCRIPTION="Java framework for RSS and Atom feeds" |
|||
HOMEPAGE="https://java.net/projects/rome" |
|||
SRC_URI="https://rome.dev.java.net/source/browse/*checkout*/rome/www/dist/${P}-src.zip" |
|||
LICENSE="Apache-2.0" |
|||
SLOT="0" |
|||
KEYWORDS="amd64 x86" |
|||
IUSE="" |
|||
|
|||
CDEPEND="dev-java/jdom:1.0" |
|||
|
|||
DEPEND=" |
|||
${CDEPEND} |
|||
>=virtual/jdk-1.6 |
|||
app-arch/unzip |
|||
test? ( dev-java/ant-junit:0 )" |
|||
|
|||
RDEPEND=" |
|||
${CDEPEND} |
|||
>=virtual/jre-1.6" |
|||
|
|||
EANT_GENTOO_CLASSPATH="jdom-1.0" |
|||
|
|||
JAVA_ANT_REWRITE_CLASSPATH="true" |
|||
JAVA_ANT_ENCODING="ISO-8859-1" |
|||
|
|||
java_prepare() { |
|||
# Patch build.xml so the tests pass |
|||
epatch "${FILESDIR}/${P}-build.xml-test-upstream.patch" |
|||
|
|||
# Keep Ant happy. |
|||
mkdir -p target/lib || die |
|||
} |
|||
|
|||
src_test() { |
|||
java-pkg-2_src_test |
|||
} |
|||
|
|||
src_install() { |
|||
java-pkg_newjar target/${P}.jar |
|||
use doc && java-pkg_dojavadoc dist/docs/api |
|||
use source && java-pkg_dosrc src/java/* |
|||
} |
@ -1,2 +1 @@ |
|||
DIST xstream-1.4.8-sources.jar 395464 SHA256 5d956e4527d27420f2d417cd77ffafedad85ee795a59857bbf2be9cc630eace0 SHA512 9fb9ebc6facdc07aecbcee3fbf40ef560bdd42cd8f7c7a3a8e2401be5c4e05ed3370beec653ef06d2fd3aa1acabf8f4ada8dddea27f239d180d66aec0bd905e6 WHIRLPOOL 10f9ad97300397000085e4850baa89a2560bd13431c1668b7e144fe53b0800f546ff56cb7bd373a53ea7ab1ff88bef80260e3d8543543c8df50fc5e56fdd8aa2 |
|||
DIST xstream-1.4.8.jar 395464 SHA256 5d956e4527d27420f2d417cd77ffafedad85ee795a59857bbf2be9cc630eace0 SHA512 9fb9ebc6facdc07aecbcee3fbf40ef560bdd42cd8f7c7a3a8e2401be5c4e05ed3370beec653ef06d2fd3aa1acabf8f4ada8dddea27f239d180d66aec0bd905e6 WHIRLPOOL 10f9ad97300397000085e4850baa89a2560bd13431c1668b7e144fe53b0800f546ff56cb7bd373a53ea7ab1ff88bef80260e3d8543543c8df50fc5e56fdd8aa2 |
@ -1,56 +0,0 @@ |
|||
# Copyright 1999-2016 Gentoo Foundation |
|||
# Distributed under the terms of the GNU General Public License v2 |
|||
|
|||
EAPI=5 |
|||
|
|||
JAVA_PKG_IUSE="doc source" |
|||
|
|||
inherit java-pkg-2 java-pkg-simple |
|||
|
|||
DESCRIPTION="A text-processing Java API that serialize objects to XML and back again" |
|||
HOMEPAGE="http://x-stream.github.io" |
|||
SRC_URI="http://central.maven.org/maven2/com/thoughtworks/${PN}/${PN}/${PV}/${P}-sources.jar" |
|||
LICENSE="BSD" |
|||
SLOT="0" |
|||
KEYWORDS="amd64 ppc64 x86" |
|||
|
|||
CDEPEND=" |
|||
dev-java/kxml:2 |
|||
dev-java/xom:0 |
|||
dev-java/xpp3:0 |
|||
dev-java/cglib:3 |
|||
dev-java/dom4j:1 |
|||
dev-java/jdom:2 |
|||
dev-java/jdom:1.0 |
|||
dev-java/joda-time:0 |
|||
dev-java/jettison:0" |
|||
|
|||
# This package does need Java 8. See bug 564616. |
|||
RDEPEND=" |
|||
${CDEPEND} |
|||
>=virtual/jre-1.8" |
|||
|
|||
DEPEND=" |
|||
${CDEPEND} |
|||
>=virtual/jdk-1.8 |
|||
app-arch/unzip" |
|||
|
|||
JAVA_GENTOO_CLASSPATH=" |
|||
xpp3 |
|||
xom |
|||
kxml-2 |
|||
jdom-2 |
|||
jdom-1.0 |
|||
dom4j-1 |
|||
cglib-3 |
|||
jettison |
|||
joda-time" |
|||
|
|||
# Two drivers for two very old implementations of StAX. |
|||
# StAX has been last-rited from Gentoo as it is now part of the Java 6 JDK. |
|||
# See bug 561504. These drivers rely on ancient APIs that aren't maintained |
|||
# upstream and may contain security holes. |
|||
JAVA_RM_FILES=( |
|||
com/thoughtworks/xstream/io/xml/WstxDriver.java |
|||
com/thoughtworks/xstream/io/xml/BEAStaxDriver.java |
|||
) |
@ -1,25 +1,12 @@ |
|||
DIST go-darwin-amd64-bootstrap-1.8.tbz 55053831 SHA256 1058dc305ad7b44b124d3d3eb2c579011b6c489a498e3313e4d0d089045ef3f7 SHA512 4cc24d44c84c94feafab021c0977fcea2aca8f191c6395e38fff68154b1e64efc3f94331c3e36c7b69901af58e9d53545c682f0a742d36b2d230508bd69777c4 WHIRLPOOL 52696cbe1129683e0cb0467b239723d29304d7f003317be6ce301118397166844489edaa7a15bf38e11dc205b50fafc326f4f35e2ed0d89e2fcb2701a6509838 |
|||
DIST go-darwin-amd64-bootstrap.tbz 48361403 SHA256 afb6cc976c404933e68ee3125fe8fbf94b57b9d8db8501d2bd1ce692468fbc9b SHA512 aefaad5abd58ed96cf5658bae2e931f162c2699fb248104837a279955dea6fe6cd4d582766379d2689c04bdc009c19a19f17585d8401d49d1fac772dcf385b93 WHIRLPOOL aa1c06103ae72f0b1c62cccd82b1fa88c5310d3baad2d9eddd173322c04ad7a7b7b9fb6ac9407c8002c6eebb8691cd415bca3d50a17548d52a5022001c6b93e2 |
|||
DIST go-freebsd-386-bootstrap-1.8.tbz 53739013 SHA256 1e4afbb11aaa32d3de70fe3e407e519f100f09de3ac4f881d8410fc1345e13f9 SHA512 c92f849b2d92401657412cccc589042b2747e55b2f4813d674c5bc91c3f535ee60f8ed7b8cbf1320e216d22a16dade8b78bb8071982895901f2b3c304e38f478 WHIRLPOOL 80d973b0c0b8c2eb363ef171ee6f51d17d82997f3f1d192a68d4a18eea2413876b453dc5f673a827e781d2f2cb009b6fd91796599217435e7f0969cdece71698 |
|||
DIST go-freebsd-386-bootstrap-1.tbz 47180595 SHA256 6f8d5ee62a1d9022ebb7799b23306cc0bd7bd974c1b27312e97522dcc8044a2c SHA512 ef2b8defa7f81647d5e423f24a4ef708d5f50d514a0a29dd16f8728c8ec08a05144360cd19c04d8dcb1d3c891eb6252450522ca525b60fdb0a674225d113004a WHIRLPOOL acae3a9a09b55863de97b82e046b9a54bfda9725ff98d47f07baee9464fe855fc48b5df6f96144e7cb1779480f953ebc15a95724709d93848608803007c4b001 |
|||
DIST go-freebsd-amd64-bootstrap-1.8.tbz 55103927 SHA256 4a6291e9044bc3e284943873b4a4868ee94515e1fb00416cabb9b19d6e8a40e7 SHA512 c7d50731ff41147295ef5f3233aa1404081b47e786a300e1d0e4db8348e56bd73fe5f169fe8b807ffa37a53683e3aef16ebb6e877d802b86ff1a3d5d3a6f44cb WHIRLPOOL e2c02a9ffcd82125de64c48abe4158a3bf352a02dea4b5ce34b345cb078fa97cf5cc65f874f454b9fb7776faa499cc16d9c50d035206c3172251a3ab365c9384 |
|||
DIST go-freebsd-amd64-bootstrap.tbz 48451024 SHA256 c5b16adab514352f49eb9ffef0d499e954d5d6bb6aefc8e98543d24e2a8fd7b7 SHA512 097a48c9b3b7541b6c4aab6fe9304b7df461e31543609b836842294a2acecf14243d0efc80282b2e442f6be92d7e189dddab6ffd4487b115d94113205452352e WHIRLPOOL 691cecccc01383bd874e687c3644ceab06c33d3c9c57da737c2c1f8208dcc6d99bc18968f50c4e466049069f219e39f34ee8a8b6af0f667f31ae011528f4c591 |
|||
DIST go-linux-386-bootstrap-1.8.tbz 53843745 SHA256 da2172a6aa7593bbdae43d714989b5fd728e3a722cab9ccb599b5d159240152f SHA512 b456f7572d04c805a6fc756647c050460f76e5404dba41963c861c92f1600e9fedafe181a1f69132518065737a88edb4b183ec8c3ca24bc8df31279117e92606 WHIRLPOOL 8ae15f8963a842067f79a10741bed30e9b3b6d2bfeacb453dd4eae79ffdd86e214f361fba90b64013e0ce87238f151d985350ea2d7d1d82f7fc464a03ca25bb2 |
|||
DIST go-linux-386-bootstrap-1.tbz 47379010 SHA256 b1e5bef8500d6aa009238b391e4527781b88dd328e8a11ffd684af03beb81861 SHA512 85b71ae511a2981c32e700531ec0284615979b9d4515cd7e23bf109246da1788c9bd253c973af77c7ee9928efa5ca84034173ecdbeaf88b5c195e70cf4aebfde WHIRLPOOL 122b4b8e1501e049d55832b4c0e185bc9c47b6fd788b06cfb01b605d7fbb1912b291692de4e30b11e1ef71eaa59a6684fa7c03f91f9b7ade2142eb2d630ee979 |
|||
DIST go-linux-amd64-bootstrap-1.8.tbz 55399105 SHA256 b21c5846d2837de48286c65026a2ce6bdd03fcc6bec5ba29861080a2d228999b SHA512 89d68cfe0e6ce4be690cf52a4a02b17ef2cae3538b057d4690bfd6e93727bcdc1cbc17cba3403e652bb95bffd25d44bdd4efd0014d1d2f019838bde925139f57 WHIRLPOOL 21f70e16e10c49f4b6462cc35329015588ae337045c9fc61a49fa985d03aa194f4be55cd146fd23060226162102789258e54ed3534726d470adf43cac84df586 |
|||
DIST go-linux-amd64-bootstrap.tbz 48722911 SHA256 0ab0842fb1f6cc6f10a85f225ff1a2b9e5e4b38128a7136d0c1896819421a986 SHA512 ce4dbc979b63a4612f4a8f7e7a6c5247e11bbc3a2d62ab0537a1b405ec8ab22f153012421d2240a7d6a4f91a79bb3f1370454f9e843fac43b99757c17134e5b7 WHIRLPOOL a94d0e0a1c44e3385d23f8973d15e6ef041450a3578c38987f158c4f9f231d315bc5204539d9dc7322cc9ecb96b7618b22d023f906474e1348c5d666792dff58 |
|||
DIST go-linux-arm-bootstrap-1.8.tbz 53948103 SHA256 86593294a84d3085583cf3293df62ca82a119bfe560ff649e1af8b1b0e45ee79 SHA512 98ff0dbdb2aca9e54ea5327c9d31ce389e434a887015ef8555a8e85223a9998075c5013045275fb995a877a8d247704a21d726d46df7097adc0c4aa03af4cd68 WHIRLPOOL ba62849e86cf0f905f75affb4748d1c4cf9b0421bad5c726556d96a6e8f4bca0790b097b9b2a4145eb8e0a95458f589a6f14de586f22ca1969d279f8e7271959 |
|||
DIST go-linux-arm-bootstrap.tbz 46055976 SHA256 a44e33b95046e01fd7125c3cc3c34b13f83bbf692cddfd3e86e267da11de2a44 SHA512 a8cf3225dafd2f08b944e60d0fb6320b5e394646f5df2ca2464c76a2e6e6b72f4840ddcc65dc5f59c94907715780f1e25c73b480a79909d9455faad59ffd38d5 WHIRLPOOL 304bb37f94b8f5d0bd77c0d5faebed1cb627cc3b453c686d7297f6542ee3e0ddabc7139e13a21ee2f5a20caca273c63bcfbcbd4daf670b1dbfe77b599f8111ac |
|||
DIST go-linux-arm64-bootstrap-1.8.tbz 51947002 SHA256 773305a44482d4d4c5a9be5c5997b40772c6efe4a38bdd2750612463b7786a88 SHA512 adfbe62c5594c267707078bf8afb94a793dfba004c04a1a60f96d023d96c2fc4a6a422dee93a0f3487b1f2e1e117c7c6c607b62126dd5535686aaed88f6659d9 WHIRLPOOL b3af3c442d801b26b530a315d3aed17c2650064eb156c2fcb8da7f6597aa05eda5c425c6c14e881cce7b89ef83e9d6dc8480f789d2db2186a78ae95fbcb13520 |
|||
DIST go-linux-arm64-bootstrap.tbz 45369354 SHA256 810c998e6701580fe0f26d46c5796eefce648e252ff9d6d761304e60556b7fc0 SHA512 3f64869430c03efa77796ed74d07a337e2a205802485605cbdd67778a08e5ce041ce3925b7a5cca0a6b4ad24ab70e07ee54091b010f67ec7370a985022f5a21e WHIRLPOOL f6f470081d5f23c190310280aaf7454a4f58fe4e7545bbd219046711f8d27ce97cc5f5f1c207e777067d1f6332e4b3f2c819b178e899d21c2d5d1d466a42cc37 |
|||
DIST go-linux-ppc64-bootstrap-1.8.tbz 52315782 SHA256 19eb3674c07a17dacec9620bc5ddcffa0264adf606e4c0d640c9f31644777ab3 SHA512 0aa32ac1514055ed9140b8c8330cbdbadfd9da6ad00b60d49b0685473be21e0b6510c31394678e32048f2f38d06a0d575f453c555614664eaef2bf5be6c91734 WHIRLPOOL 2363ce812af9c1dec331801477e979ef82a66d0ca92ac92f56fcb3bb264d96acdb6bfcd397d2c7b81cdc616a69571afa4343a0c64ebfc8ec7d6f8aab0ae4ece1 |
|||
DIST go-linux-ppc64-bootstrap.tbz 45266082 SHA256 89902cebaf93b95dea225b7304eedcae101d6fb83bba0fcdfee001361b4868c0 SHA512 d013a1a5953207505a9f7e0c5cfdc7f463d4669fd18b36cf1df10126e9d4c012252bc4d207dd4503c34301e76197d8e89a9ed9d9d0b8a3b54b62e782b4c39d7b WHIRLPOOL 3ec868d94e8452a3cdb49a1292f9f32ebeb813ea297e419849cdee28c8d952887feb70e1095ce109ff6b8bb81dee47b7eb6f275b15bb6f46422095c3b260f968 |
|||
DIST go-linux-ppc64le-bootstrap-1.8.tbz 52211575 SHA256 4e05b8830a473756cfee3fc27a17e09b38ccfca4e2335a485b41d3fb9c342066 SHA512 6931d999dd0ee1ff44c4cec48acb27af061f57f87aa74802dcebab78553b46bc8ac732f07fe91e5074dbdd32c55b707994875934bfb12bb4276d71eb1d06c4ba WHIRLPOOL cdc392fc51b7bfdd28e1c29bffce88139b9447261c9dbffefb3910b9c7406505bd250309618bd6a8430dcfcecc9155f8d5fe94f9e848cc2e721776ba34c22c3a |
|||
DIST go-linux-ppc64le-bootstrap.tbz 50134685 SHA256 ca816a3e3cbd7721200522fa39843de0bf546d0ac18e0d550e64b7cc33bea4f2 SHA512 da718166febe77b57f2f2edb18c921501a0eb7184a7e6f18411b5cba95fe0de185ef9d5e85be3632c5829e66008912d12b5259ca7fc330ad28026e53bb658e7f WHIRLPOOL 0d7875146f1bdc8f6af089f7f4b003d952419c51be7d519ca3474b39f67dbc88c6caa515f707ad9e6fac345e8a78f42d13eb794485ce18b6d90f7331ee16686c |
|||
DIST go-linux-s390x-bootstrap-1.8.tbz 57124869 SHA256 70bb859e80268b3421587d85189a807b14449b8c5e7b23606b87dfab54189634 SHA512 d429cae870d66217ab2e07c74209d3031d97baa4f899b4d70ae6283a1a5b1434b037904c4cfca0b2bc798d5ba0b358c3739e000eccbc74809baf564c5686df5a WHIRLPOOL d0475efcbc2c1cbb3c6db452dbeb2a5fe709fa56b65eba2fbbcce2296b6a04ba89b9e33579d6eab192cd63b45ad78a0d7afd458229e4b252e80bd2db260abf11 |
|||
DIST go-linux-s390x-bootstrap.tbz 49809007 SHA256 80a87bc5ac2239c99f8d7425fbc6f4fefba63f549b0835505c25378c08114656 SHA512 1b7500e6c42508b6cb07214620070065262349d2cd3698deeac0638d0bf0bfeb89c59c2d72a284af34f3071b4cfb9ce543c5fdec7add4a46adc9580295909439 WHIRLPOOL d3782cb515ab67720105224e02d96ab1ca86518db661719b2d0f7c48aa1f4f896a7cc5fed5b6ddc032c8206e8a10c6262646be0e59def61723936044d6ceb143 |
|||
DIST go-solaris-amd64-bootstrap-1.8.tbz 54926326 SHA256 83053f333d56d72ddbe9a8f293f8afeff31739806d49ebaa144811a5438b17bc SHA512 52b849e5b9a940e10de7ba3df0ebdf6e1c5d631de9581d936c9edf8f38e6bb3314acbc2b2d5202b0528fde2a359d52bc0c6f39acf9b1b614725e4b4a947ed10d WHIRLPOOL 2d58085d88fa612a7dfb087df33d2c5ee6b6d4c0b0c0363d5dcef014a6e3e9703816e8a111d1348e1e1a4ebcdde58694a869a27ae42e0deec154529f1a794991 |
|||
DIST go-solaris-amd64-bootstrap.tbz 48367195 SHA256 92ebdbf001f243a78a6c2d8ee30e929ba2cecbedf8e0fc07e129b04b107453ad SHA512 cf8725db0d001d61badee71624799a3c9e75f61f77ab090c1f6c490d694c4be367019b28d88306045d877ab5a324a1f9b0674293caf3acb19c193fc3746a48f2 WHIRLPOOL 672c6642e340b6d4f38b633f67fdc3202e3725022a8a61e2129276fccd6c42ddc24ed06c1d57eb31a25ea8056b79686619cbb36431b9c23b6d4be5bcb715bd89 |
|||
DIST go1.7.5.src.tar.gz 14204325 SHA256 4e834513a2079f8cbbd357502cccaac9507fd00a1efe672375798858ff291815 SHA512 2dda0780a8b24d71fec4ddeb6858c58a42845f51d9afc171d924a7b763101878cc7f29ae1dd35f129b4ee45b84d45211093a1d20639745fed36b49fb7fe1ba07 WHIRLPOOL b28ab10558d9f8fba87d5db2c839a84eab0b61244d75f4b3d42b443365ca8a1ae1c60c2e1073ef2b4a854d957c26111fcc286b7caae4be892e6cba0e4b24e21d |
|||
DIST go1.8.1.src.tar.gz 15331455 SHA256 33daf4c03f86120fdfdc66bddf6bfff4661c7ca11c5da473e537f4d69b470e57 SHA512 f01fe7b35ac23101610f6fc169b88dafe2edc49b3b044d5d0aff771b05dcb2c8d2e7a5090ed6dbe67f861e78e792ace32e209ed464399ca02dcd186b13ec8037 WHIRLPOOL c358ca23740183afac4ecf83a6b7daeeef3e6481f29cb5f98b911cb1d661921db2e16ac2528f0ec59633920f1484e7fa777275e46313e20cc8b32baed9054d24 |
|||
DIST go1.8.src.tar.gz 15320083 SHA256 406865f587b44be7092f206d73fc1de252600b79b3cacc587b74b5ef5c623596 SHA512 9742dd8ec0364793e44a55207238c7339236a4da3a6e7cbb3b4eca45e957c7c0cb725e7d7430b9a04630285468d32dac686facfc57f3f58885b80bbb3d333ada WHIRLPOOL 62d7b1729d3a192142b7b1af20c797736ae631bb87e7c82487601e669d69547212669c216e66d0d64ad83884d348ed3dacf2f9fd9d923f85c673adadd0ff4aae |
@ -1,738 +0,0 @@ |
|||
From 11b283092a29a9d402ce05706fd3a85683576218 Mon Sep 17 00:00:00 2001 |
|||
From: David Chase <drchase@google.com> |
|||
Date: Tue, 21 Feb 2017 15:22:52 -0500 |
|||
Subject: [PATCH] cmd/compile: add opcode flag hasSideEffects for do-not-remove |
|||
|
|||
Added a flag to generic and various architectures' atomic |
|||
operations that are judged to have observable side effects |
|||
and thus cannot be dead-code-eliminated. |
|||
|
|||
Test requires GOMAXPROCS > 1 without preemption in loop. |
|||
|
|||
Fixes #19182. |
|||
|
|||
Change-Id: Id2230031abd2cca0bbb32fd68fc8a58fb912070f |
|||
Reviewed-on: https://go-review.googlesource.com/37333 |
|||
Run-TryBot: David Chase <drchase@google.com> |
|||
TryBot-Result: Gobot Gobot <gobot@golang.org> |
|||
Reviewed-by: Cherry Zhang <cherryyz@google.com> |
|||
---
|
|||
src/cmd/compile/internal/ssa/deadcode.go | 2 +- |
|||
src/cmd/compile/internal/ssa/gen/AMD64Ops.go | 16 ++-- |
|||
src/cmd/compile/internal/ssa/gen/ARM64Ops.go | 20 ++--- |
|||
src/cmd/compile/internal/ssa/gen/MIPSOps.go | 16 ++-- |
|||
src/cmd/compile/internal/ssa/gen/S390XOps.go | 16 ++-- |
|||
src/cmd/compile/internal/ssa/gen/genericOps.go | 28 +++---- |
|||
src/cmd/compile/internal/ssa/gen/main.go | 4 + |
|||
src/cmd/compile/internal/ssa/op.go | 1 + |
|||
src/cmd/compile/internal/ssa/opGen.go | 111 +++++++++++++++++-------- |
|||
test/fixedbugs/issue19182.go | 36 ++++++++ |
|||
10 files changed, 168 insertions(+), 82 deletions(-) |
|||
create mode 100644 test/fixedbugs/issue19182.go |
|||
|
|||
diff --git a/src/cmd/compile/internal/ssa/deadcode.go b/src/cmd/compile/internal/ssa/deadcode.go
|
|||
index d75d2d5..ce786a9 100644
|
|||
--- a/src/cmd/compile/internal/ssa/deadcode.go
|
|||
+++ b/src/cmd/compile/internal/ssa/deadcode.go
|
|||
@@ -64,7 +64,7 @@ func liveValues(f *Func, reachable []bool) []bool {
|
|||
q = append(q, v) |
|||
} |
|||
for _, v := range b.Values { |
|||
- if opcodeTable[v.Op].call && !live[v.ID] {
|
|||
+ if (opcodeTable[v.Op].call || opcodeTable[v.Op].hasSideEffects) && !live[v.ID] {
|
|||
live[v.ID] = true |
|||
q = append(q, v) |
|||
} |
|||
diff --git a/src/cmd/compile/internal/ssa/gen/AMD64Ops.go b/src/cmd/compile/internal/ssa/gen/AMD64Ops.go
|
|||
index cdd5539..1b73ac1 100644
|
|||
--- a/src/cmd/compile/internal/ssa/gen/AMD64Ops.go
|
|||
+++ b/src/cmd/compile/internal/ssa/gen/AMD64Ops.go
|
|||
@@ -548,15 +548,15 @@ func init() {
|
|||
// store arg0 to arg1+auxint+aux, arg2=mem. |
|||
// These ops return a tuple of <old contents of *(arg1+auxint+aux), memory>. |
|||
// Note: arg0 and arg1 are backwards compared to MOVLstore (to facilitate resultInArg0)! |
|||
- {name: "XCHGL", argLength: 3, reg: gpstorexchg, asm: "XCHGL", aux: "SymOff", resultInArg0: true, faultOnNilArg1: true},
|
|||
- {name: "XCHGQ", argLength: 3, reg: gpstorexchg, asm: "XCHGQ", aux: "SymOff", resultInArg0: true, faultOnNilArg1: true},
|
|||
+ {name: "XCHGL", argLength: 3, reg: gpstorexchg, asm: "XCHGL", aux: "SymOff", resultInArg0: true, faultOnNilArg1: true, hasSideEffects: true},
|
|||
+ {name: "XCHGQ", argLength: 3, reg: gpstorexchg, asm: "XCHGQ", aux: "SymOff", resultInArg0: true, faultOnNilArg1: true, hasSideEffects: true},
|
|||
|
|||
// Atomic adds. |
|||
// *(arg1+auxint+aux) += arg0. arg2=mem. |
|||
// Returns a tuple of <old contents of *(arg1+auxint+aux), memory>. |
|||
// Note: arg0 and arg1 are backwards compared to MOVLstore (to facilitate resultInArg0)! |
|||
- {name: "XADDLlock", argLength: 3, reg: gpstorexchg, asm: "XADDL", typ: "(UInt32,Mem)", aux: "SymOff", resultInArg0: true, clobberFlags: true, faultOnNilArg1: true},
|
|||
- {name: "XADDQlock", argLength: 3, reg: gpstorexchg, asm: "XADDQ", typ: "(UInt64,Mem)", aux: "SymOff", resultInArg0: true, clobberFlags: true, faultOnNilArg1: true},
|
|||
+ {name: "XADDLlock", argLength: 3, reg: gpstorexchg, asm: "XADDL", typ: "(UInt32,Mem)", aux: "SymOff", resultInArg0: true, clobberFlags: true, faultOnNilArg1: true, hasSideEffects: true},
|
|||
+ {name: "XADDQlock", argLength: 3, reg: gpstorexchg, asm: "XADDQ", typ: "(UInt64,Mem)", aux: "SymOff", resultInArg0: true, clobberFlags: true, faultOnNilArg1: true, hasSideEffects: true},
|
|||
{name: "AddTupleFirst32", argLength: 2}, // arg0=tuple <x,y>. Returns <x+arg1,y>. |
|||
{name: "AddTupleFirst64", argLength: 2}, // arg0=tuple <x,y>. Returns <x+arg1,y>. |
|||
|
|||
@@ -579,12 +579,12 @@ func init() {
|
|||
// JEQ ... |
|||
// but we can't do that because memory-using ops can't generate flags yet |
|||
// (flagalloc wants to move flag-generating instructions around). |
|||
- {name: "CMPXCHGLlock", argLength: 4, reg: cmpxchg, asm: "CMPXCHGL", aux: "SymOff", clobberFlags: true, faultOnNilArg0: true},
|
|||
- {name: "CMPXCHGQlock", argLength: 4, reg: cmpxchg, asm: "CMPXCHGQ", aux: "SymOff", clobberFlags: true, faultOnNilArg0: true},
|
|||
+ {name: "CMPXCHGLlock", argLength: 4, reg: cmpxchg, asm: "CMPXCHGL", aux: "SymOff", clobberFlags: true, faultOnNilArg0: true, hasSideEffects: true},
|
|||
+ {name: "CMPXCHGQlock", argLength: 4, reg: cmpxchg, asm: "CMPXCHGQ", aux: "SymOff", clobberFlags: true, faultOnNilArg0: true, hasSideEffects: true},
|
|||
|
|||
// Atomic memory updates. |
|||
- {name: "ANDBlock", argLength: 3, reg: gpstore, asm: "ANDB", aux: "SymOff", clobberFlags: true, faultOnNilArg0: true}, // *(arg0+auxint+aux) &= arg1
|
|||
- {name: "ORBlock", argLength: 3, reg: gpstore, asm: "ORB", aux: "SymOff", clobberFlags: true, faultOnNilArg0: true}, // *(arg0+auxint+aux) |= arg1
|
|||
+ {name: "ANDBlock", argLength: 3, reg: gpstore, asm: "ANDB", aux: "SymOff", clobberFlags: true, faultOnNilArg0: true, hasSideEffects: true}, // *(arg0+auxint+aux) &= arg1
|
|||
+ {name: "ORBlock", argLength: 3, reg: gpstore, asm: "ORB", aux: "SymOff", clobberFlags: true, faultOnNilArg0: true, hasSideEffects: true}, // *(arg0+auxint+aux) |= arg1
|
|||
} |
|||
|
|||
var AMD64blocks = []blockData{ |
|||
diff --git a/src/cmd/compile/internal/ssa/gen/ARM64Ops.go b/src/cmd/compile/internal/ssa/gen/ARM64Ops.go
|
|||
index e8d5be2..0986ac6 100644
|
|||
--- a/src/cmd/compile/internal/ssa/gen/ARM64Ops.go
|
|||
+++ b/src/cmd/compile/internal/ssa/gen/ARM64Ops.go
|
|||
@@ -456,16 +456,16 @@ func init() {
|
|||
|
|||
// atomic stores. |
|||
// store arg1 to arg0. arg2=mem. returns memory. auxint must be zero. |
|||
- {name: "STLR", argLength: 3, reg: gpstore, asm: "STLR", faultOnNilArg0: true},
|
|||
- {name: "STLRW", argLength: 3, reg: gpstore, asm: "STLRW", faultOnNilArg0: true},
|
|||
+ {name: "STLR", argLength: 3, reg: gpstore, asm: "STLR", faultOnNilArg0: true, hasSideEffects: true},
|
|||
+ {name: "STLRW", argLength: 3, reg: gpstore, asm: "STLRW", faultOnNilArg0: true, hasSideEffects: true},
|
|||
|
|||
// atomic exchange. |
|||
// store arg1 to arg0. arg2=mem. returns <old content of *arg0, memory>. auxint must be zero. |
|||
// LDAXR (Rarg0), Rout |
|||
// STLXR Rarg1, (Rarg0), Rtmp |
|||
// CBNZ Rtmp, -2(PC) |
|||
- {name: "LoweredAtomicExchange64", argLength: 3, reg: gpxchg, resultNotInArgs: true, faultOnNilArg0: true},
|
|||
- {name: "LoweredAtomicExchange32", argLength: 3, reg: gpxchg, resultNotInArgs: true, faultOnNilArg0: true},
|
|||
+ {name: "LoweredAtomicExchange64", argLength: 3, reg: gpxchg, resultNotInArgs: true, faultOnNilArg0: true, hasSideEffects: true},
|
|||
+ {name: "LoweredAtomicExchange32", argLength: 3, reg: gpxchg, resultNotInArgs: true, faultOnNilArg0: true, hasSideEffects: true},
|
|||
|
|||
// atomic add. |
|||
// *arg0 += arg1. arg2=mem. returns <new content of *arg0, memory>. auxint must be zero. |
|||
@@ -473,8 +473,8 @@ func init() {
|
|||
// ADD Rarg1, Rout |
|||
// STLXR Rout, (Rarg0), Rtmp |
|||
// CBNZ Rtmp, -3(PC) |
|||
- {name: "LoweredAtomicAdd64", argLength: 3, reg: gpxchg, resultNotInArgs: true, faultOnNilArg0: true},
|
|||
- {name: "LoweredAtomicAdd32", argLength: 3, reg: gpxchg, resultNotInArgs: true, faultOnNilArg0: true},
|
|||
+ {name: "LoweredAtomicAdd64", argLength: 3, reg: gpxchg, resultNotInArgs: true, faultOnNilArg0: true, hasSideEffects: true},
|
|||
+ {name: "LoweredAtomicAdd32", argLength: 3, reg: gpxchg, resultNotInArgs: true, faultOnNilArg0: true, hasSideEffects: true},
|
|||
|
|||
// atomic compare and swap. |
|||
// arg0 = pointer, arg1 = old value, arg2 = new value, arg3 = memory. auxint must be zero. |
|||
@@ -490,8 +490,8 @@ func init() {
|
|||
// STLXR Rarg2, (Rarg0), Rtmp |
|||
// CBNZ Rtmp, -4(PC) |
|||
// CSET EQ, Rout |
|||
- {name: "LoweredAtomicCas64", argLength: 4, reg: gpcas, resultNotInArgs: true, clobberFlags: true, faultOnNilArg0: true},
|
|||
- {name: "LoweredAtomicCas32", argLength: 4, reg: gpcas, resultNotInArgs: true, clobberFlags: true, faultOnNilArg0: true},
|
|||
+ {name: "LoweredAtomicCas64", argLength: 4, reg: gpcas, resultNotInArgs: true, clobberFlags: true, faultOnNilArg0: true, hasSideEffects: true},
|
|||
+ {name: "LoweredAtomicCas32", argLength: 4, reg: gpcas, resultNotInArgs: true, clobberFlags: true, faultOnNilArg0: true, hasSideEffects: true},
|
|||
|
|||
// atomic and/or. |
|||
// *arg0 &= (|=) arg1. arg2=mem. returns memory. auxint must be zero. |
|||
@@ -499,8 +499,8 @@ func init() {
|
|||
// AND/OR Rarg1, Rtmp |
|||
// STLXRB Rtmp, (Rarg0), Rtmp |
|||
// CBNZ Rtmp, -3(PC) |
|||
- {name: "LoweredAtomicAnd8", argLength: 3, reg: gpstore, asm: "AND", faultOnNilArg0: true},
|
|||
- {name: "LoweredAtomicOr8", argLength: 3, reg: gpstore, asm: "ORR", faultOnNilArg0: true},
|
|||
+ {name: "LoweredAtomicAnd8", argLength: 3, reg: gpstore, asm: "AND", faultOnNilArg0: true, hasSideEffects: true},
|
|||
+ {name: "LoweredAtomicOr8", argLength: 3, reg: gpstore, asm: "ORR", faultOnNilArg0: true, hasSideEffects: true},
|
|||
} |
|||
|
|||
blocks := []blockData{ |
|||
diff --git a/src/cmd/compile/internal/ssa/gen/MIPSOps.go b/src/cmd/compile/internal/ssa/gen/MIPSOps.go
|
|||
index 78b961f..3d88b71 100644
|
|||
--- a/src/cmd/compile/internal/ssa/gen/MIPSOps.go
|
|||
+++ b/src/cmd/compile/internal/ssa/gen/MIPSOps.go
|
|||
@@ -267,8 +267,8 @@ func init() {
|
|||
// SYNC |
|||
// MOVW Rarg1, (Rarg0) |
|||
// SYNC |
|||
- {name: "LoweredAtomicStore", argLength: 3, reg: gpstore, faultOnNilArg0: true},
|
|||
- {name: "LoweredAtomicStorezero", argLength: 2, reg: gpstore0, faultOnNilArg0: true},
|
|||
+ {name: "LoweredAtomicStore", argLength: 3, reg: gpstore, faultOnNilArg0: true, hasSideEffects: true},
|
|||
+ {name: "LoweredAtomicStorezero", argLength: 2, reg: gpstore0, faultOnNilArg0: true, hasSideEffects: true},
|
|||
|
|||
// atomic exchange. |
|||
// store arg1 to arg0. arg2=mem. returns <old content of *arg0, memory>. |
|||
@@ -278,7 +278,7 @@ func init() {
|
|||
// SC Rtmp, (Rarg0) |
|||
// BEQ Rtmp, -3(PC) |
|||
// SYNC |
|||
- {name: "LoweredAtomicExchange", argLength: 3, reg: gpxchg, resultNotInArgs: true, faultOnNilArg0: true},
|
|||
+ {name: "LoweredAtomicExchange", argLength: 3, reg: gpxchg, resultNotInArgs: true, faultOnNilArg0: true, hasSideEffects: true},
|
|||
|
|||
// atomic add. |
|||
// *arg0 += arg1. arg2=mem. returns <new content of *arg0, memory>. |
|||
@@ -289,8 +289,8 @@ func init() {
|
|||
// BEQ Rtmp, -3(PC) |
|||
// SYNC |
|||
// ADDU Rarg1, Rout |
|||
- {name: "LoweredAtomicAdd", argLength: 3, reg: gpxchg, resultNotInArgs: true, faultOnNilArg0: true},
|
|||
- {name: "LoweredAtomicAddconst", argLength: 2, reg: regInfo{inputs: []regMask{gpspsbg}, outputs: []regMask{gp}}, aux: "Int32", resultNotInArgs: true, faultOnNilArg0: true},
|
|||
+ {name: "LoweredAtomicAdd", argLength: 3, reg: gpxchg, resultNotInArgs: true, faultOnNilArg0: true, hasSideEffects: true},
|
|||
+ {name: "LoweredAtomicAddconst", argLength: 2, reg: regInfo{inputs: []regMask{gpspsbg}, outputs: []regMask{gp}}, aux: "Int32", resultNotInArgs: true, faultOnNilArg0: true, hasSideEffects: true},
|
|||
|
|||
// atomic compare and swap. |
|||
// arg0 = pointer, arg1 = old value, arg2 = new value, arg3 = memory. |
|||
@@ -308,7 +308,7 @@ func init() {
|
|||
// SC Rout, (Rarg0) |
|||
// BEQ Rout, -4(PC) |
|||
// SYNC |
|||
- {name: "LoweredAtomicCas", argLength: 4, reg: gpcas, resultNotInArgs: true, faultOnNilArg0: true},
|
|||
+ {name: "LoweredAtomicCas", argLength: 4, reg: gpcas, resultNotInArgs: true, faultOnNilArg0: true, hasSideEffects: true},
|
|||
|
|||
// atomic and/or. |
|||
// *arg0 &= (|=) arg1. arg2=mem. returns memory. |
|||
@@ -318,8 +318,8 @@ func init() {
|
|||
// SC Rtmp, (Rarg0) |
|||
// BEQ Rtmp, -3(PC) |
|||
// SYNC |
|||
- {name: "LoweredAtomicAnd", argLength: 3, reg: gpstore, asm: "AND", faultOnNilArg0: true},
|
|||
- {name: "LoweredAtomicOr", argLength: 3, reg: gpstore, asm: "OR", faultOnNilArg0: true},
|
|||
+ {name: "LoweredAtomicAnd", argLength: 3, reg: gpstore, asm: "AND", faultOnNilArg0: true, hasSideEffects: true},
|
|||
+ {name: "LoweredAtomicOr", argLength: 3, reg: gpstore, asm: "OR", faultOnNilArg0: true, hasSideEffects: true},
|
|||
|
|||
// large or unaligned zeroing |
|||
// arg0 = address of memory to zero (in R1, changed as side effect) |
|||
diff --git a/src/cmd/compile/internal/ssa/gen/S390XOps.go b/src/cmd/compile/internal/ssa/gen/S390XOps.go
|
|||
index 4c5f070..40ba252 100644
|
|||
--- a/src/cmd/compile/internal/ssa/gen/S390XOps.go
|
|||
+++ b/src/cmd/compile/internal/ssa/gen/S390XOps.go
|
|||
@@ -429,14 +429,14 @@ func init() {
|
|||
|
|||
// Atomic stores. These are just normal stores. |
|||
// store arg1 to arg0+auxint+aux. arg2=mem. |
|||
- {name: "MOVWatomicstore", argLength: 3, reg: gpstore, asm: "MOVW", aux: "SymOff", typ: "Mem", clobberFlags: true, faultOnNilArg0: true},
|
|||
- {name: "MOVDatomicstore", argLength: 3, reg: gpstore, asm: "MOVD", aux: "SymOff", typ: "Mem", clobberFlags: true, faultOnNilArg0: true},
|
|||
+ {name: "MOVWatomicstore", argLength: 3, reg: gpstore, asm: "MOVW", aux: "SymOff", typ: "Mem", clobberFlags: true, faultOnNilArg0: true, hasSideEffects: true},
|
|||
+ {name: "MOVDatomicstore", argLength: 3, reg: gpstore, asm: "MOVD", aux: "SymOff", typ: "Mem", clobberFlags: true, faultOnNilArg0: true, hasSideEffects: true},
|
|||
|
|||
// Atomic adds. |
|||
// *(arg0+auxint+aux) += arg1. arg2=mem. |
|||
// Returns a tuple of <old contents of *(arg0+auxint+aux), memory>. |
|||
- {name: "LAA", argLength: 3, reg: gpstorelaa, asm: "LAA", typ: "(UInt32,Mem)", aux: "SymOff", faultOnNilArg0: true},
|
|||
- {name: "LAAG", argLength: 3, reg: gpstorelaa, asm: "LAAG", typ: "(UInt64,Mem)", aux: "SymOff", faultOnNilArg0: true},
|
|||
+ {name: "LAA", argLength: 3, reg: gpstorelaa, asm: "LAA", typ: "(UInt32,Mem)", aux: "SymOff", faultOnNilArg0: true, hasSideEffects: true},
|
|||
+ {name: "LAAG", argLength: 3, reg: gpstorelaa, asm: "LAAG", typ: "(UInt64,Mem)", aux: "SymOff", faultOnNilArg0: true, hasSideEffects: true},
|
|||
{name: "AddTupleFirst32", argLength: 2}, // arg0=tuple <x,y>. Returns <x+arg1,y>. |
|||
{name: "AddTupleFirst64", argLength: 2}, // arg0=tuple <x,y>. Returns <x+arg1,y>. |
|||
|
|||
@@ -461,13 +461,13 @@ func init() {
|
|||
// BEQ ... |
|||
// but we can't do that because memory-using ops can't generate flags yet |
|||
// (flagalloc wants to move flag-generating instructions around). |
|||
- {name: "LoweredAtomicCas32", argLength: 4, reg: cas, asm: "CS", aux: "SymOff", clobberFlags: true, faultOnNilArg0: true},
|
|||
- {name: "LoweredAtomicCas64", argLength: 4, reg: cas, asm: "CSG", aux: "SymOff", clobberFlags: true, faultOnNilArg0: true},
|
|||
+ {name: "LoweredAtomicCas32", argLength: 4, reg: cas, asm: "CS", aux: "SymOff", clobberFlags: true, faultOnNilArg0: true, hasSideEffects: true},
|
|||
+ {name: "LoweredAtomicCas64", argLength: 4, reg: cas, asm: "CSG", aux: "SymOff", clobberFlags: true, faultOnNilArg0: true, hasSideEffects: true},
|
|||
|
|||
// Lowered atomic swaps, emulated using compare-and-swap. |
|||
// store arg1 to arg0+auxint+aux, arg2=mem. |
|||
- {name: "LoweredAtomicExchange32", argLength: 3, reg: exchange, asm: "CS", aux: "SymOff", clobberFlags: true, faultOnNilArg0: true},
|
|||
- {name: "LoweredAtomicExchange64", argLength: 3, reg: exchange, asm: "CSG", aux: "SymOff", clobberFlags: true, faultOnNilArg0: true},
|
|||
+ {name: "LoweredAtomicExchange32", argLength: 3, reg: exchange, asm: "CS", aux: "SymOff", clobberFlags: true, faultOnNilArg0: true, hasSideEffects: true},
|
|||
+ {name: "LoweredAtomicExchange64", argLength: 3, reg: exchange, asm: "CSG", aux: "SymOff", clobberFlags: true, faultOnNilArg0: true, hasSideEffects: true},
|
|||
|
|||
// find leftmost one |
|||
{ |
|||
diff --git a/src/cmd/compile/internal/ssa/gen/genericOps.go b/src/cmd/compile/internal/ssa/gen/genericOps.go
|
|||
index f39598e..3854a39 100644
|
|||
--- a/src/cmd/compile/internal/ssa/gen/genericOps.go
|
|||
+++ b/src/cmd/compile/internal/ssa/gen/genericOps.go
|
|||
@@ -441,20 +441,20 @@ var genericOps = []opData{
|
|||
// Atomic loads return a new memory so that the loads are properly ordered |
|||
// with respect to other loads and stores. |
|||
// TODO: use for sync/atomic at some point. |
|||
- {name: "AtomicLoad32", argLength: 2, typ: "(UInt32,Mem)"}, // Load from arg0. arg1=memory. Returns loaded value and new memory.
|
|||
- {name: "AtomicLoad64", argLength: 2, typ: "(UInt64,Mem)"}, // Load from arg0. arg1=memory. Returns loaded value and new memory.
|
|||
- {name: "AtomicLoadPtr", argLength: 2, typ: "(BytePtr,Mem)"}, // Load from arg0. arg1=memory. Returns loaded value and new memory.
|
|||
- {name: "AtomicStore32", argLength: 3, typ: "Mem"}, // Store arg1 to *arg0. arg2=memory. Returns memory.
|
|||
- {name: "AtomicStore64", argLength: 3, typ: "Mem"}, // Store arg1 to *arg0. arg2=memory. Returns memory.
|
|||
- {name: "AtomicStorePtrNoWB", argLength: 3, typ: "Mem"}, // Store arg1 to *arg0. arg2=memory. Returns memory.
|
|||
- {name: "AtomicExchange32", argLength: 3, typ: "(UInt32,Mem)"}, // Store arg1 to *arg0. arg2=memory. Returns old contents of *arg0 and new memory.
|
|||
- {name: "AtomicExchange64", argLength: 3, typ: "(UInt64,Mem)"}, // Store arg1 to *arg0. arg2=memory. Returns old contents of *arg0 and new memory.
|
|||
- {name: "AtomicAdd32", argLength: 3, typ: "(UInt32,Mem)"}, // Do *arg0 += arg1. arg2=memory. Returns sum and new memory.
|
|||
- {name: "AtomicAdd64", argLength: 3, typ: "(UInt64,Mem)"}, // Do *arg0 += arg1. arg2=memory. Returns sum and new memory.
|
|||
- {name: "AtomicCompareAndSwap32", argLength: 4, typ: "(Bool,Mem)"}, // if *arg0==arg1, then set *arg0=arg2. Returns true iff store happens and new memory.
|
|||
- {name: "AtomicCompareAndSwap64", argLength: 4, typ: "(Bool,Mem)"}, // if *arg0==arg1, then set *arg0=arg2. Returns true iff store happens and new memory.
|
|||
- {name: "AtomicAnd8", argLength: 3, typ: "Mem"}, // *arg0 &= arg1. arg2=memory. Returns memory.
|
|||
- {name: "AtomicOr8", argLength: 3, typ: "Mem"}, // *arg0 |= arg1. arg2=memory. Returns memory.
|
|||
+ {name: "AtomicLoad32", argLength: 2, typ: "(UInt32,Mem)"}, // Load from arg0. arg1=memory. Returns loaded value and new memory.
|
|||
+ {name: "AtomicLoad64", argLength: 2, typ: "(UInt64,Mem)"}, // Load from arg0. arg1=memory. Returns loaded value and new memory.
|
|||
+ {name: "AtomicLoadPtr", argLength: 2, typ: "(BytePtr,Mem)"}, // Load from arg0. arg1=memory. Returns loaded value and new memory.
|
|||
+ {name: "AtomicStore32", argLength: 3, typ: "Mem", hasSideEffects: true}, // Store arg1 to *arg0. arg2=memory. Returns memory.
|
|||
+ {name: "AtomicStore64", argLength: 3, typ: "Mem", hasSideEffects: true}, // Store arg1 to *arg0. arg2=memory. Returns memory.
|
|||
+ {name: "AtomicStorePtrNoWB", argLength: 3, typ: "Mem", hasSideEffects: true}, // Store arg1 to *arg0. arg2=memory. Returns memory.
|
|||
+ {name: "AtomicExchange32", argLength: 3, typ: "(UInt32,Mem)", hasSideEffects: true}, // Store arg1 to *arg0. arg2=memory. Returns old contents of *arg0 and new memory.
|
|||
+ {name: "AtomicExchange64", argLength: 3, typ: "(UInt64,Mem)", hasSideEffects: true}, // Store arg1 to *arg0. arg2=memory. Returns old contents of *arg0 and new memory.
|
|||
+ {name: "AtomicAdd32", argLength: 3, typ: "(UInt32,Mem)", hasSideEffects: true}, // Do *arg0 += arg1. arg2=memory. Returns sum and new memory.
|
|||
+ {name: "AtomicAdd64", argLength: 3, typ: "(UInt64,Mem)", hasSideEffects: true}, // Do *arg0 += arg1. arg2=memory. Returns sum and new memory.
|
|||
+ {name: "AtomicCompareAndSwap32", argLength: 4, typ: "(Bool,Mem)", hasSideEffects: true}, // if *arg0==arg1, then set *arg0=arg2. Returns true iff store happens and new memory.
|
|||
+ {name: "AtomicCompareAndSwap64", argLength: 4, typ: "(Bool,Mem)", hasSideEffects: true}, // if *arg0==arg1, then set *arg0=arg2. Returns true iff store happens and new memory.
|
|||
+ {name: "AtomicAnd8", argLength: 3, typ: "Mem", hasSideEffects: true}, // *arg0 &= arg1. arg2=memory. Returns memory.
|
|||
+ {name: "AtomicOr8", argLength: 3, typ: "Mem", hasSideEffects: true}, // *arg0 |= arg1. arg2=memory. Returns memory.
|
|||
} |
|||
|
|||
// kind control successors implicit exit |
|||
diff --git a/src/cmd/compile/internal/ssa/gen/main.go b/src/cmd/compile/internal/ssa/gen/main.go
|
|||
index 41199f7..19b904a 100644
|
|||
--- a/src/cmd/compile/internal/ssa/gen/main.go
|
|||
+++ b/src/cmd/compile/internal/ssa/gen/main.go
|
|||
@@ -52,6 +52,7 @@ type opData struct {
|
|||
faultOnNilArg0 bool // this op will fault if arg0 is nil (and aux encodes a small offset) |
|||
faultOnNilArg1 bool // this op will fault if arg1 is nil (and aux encodes a small offset) |
|||
usesScratch bool // this op requires scratch memory space |
|||
+ hasSideEffects bool // for "reasons", not to be eliminated. E.g., atomic store, #19182.
|
|||
} |
|||
|
|||
type blockData struct { |
|||
@@ -208,6 +209,9 @@ func genOp() {
|
|||
if v.usesScratch { |
|||
fmt.Fprintln(w, "usesScratch: true,") |
|||
} |
|||
+ if v.hasSideEffects {
|
|||
+ fmt.Fprintln(w, "hasSideEffects: true,")
|
|||
+ }
|
|||
if a.name == "generic" { |
|||
fmt.Fprintln(w, "generic:true,") |
|||
fmt.Fprintln(w, "},") // close op |
|||
diff --git a/src/cmd/compile/internal/ssa/op.go b/src/cmd/compile/internal/ssa/op.go
|
|||
index 4c3164f..37b2f74 100644
|
|||
--- a/src/cmd/compile/internal/ssa/op.go
|
|||
+++ b/src/cmd/compile/internal/ssa/op.go
|
|||
@@ -34,6 +34,7 @@ type opInfo struct {
|
|||
faultOnNilArg0 bool // this op will fault if arg0 is nil (and aux encodes a small offset) |
|||
faultOnNilArg1 bool // this op will fault if arg1 is nil (and aux encodes a small offset) |
|||
usesScratch bool // this op requires scratch memory space |
|||
+ hasSideEffects bool // for "reasons", not to be eliminated. E.g., atomic store, #19182.
|
|||
} |
|||
|
|||
type inputInfo struct { |
|||
diff --git a/src/cmd/compile/internal/ssa/opGen.go b/src/cmd/compile/internal/ssa/opGen.go
|
|||
index 26bcbe0..7a96216 100644
|
|||
--- a/src/cmd/compile/internal/ssa/opGen.go
|
|||
+++ b/src/cmd/compile/internal/ssa/opGen.go
|
|||
@@ -7632,6 +7632,7 @@ var opcodeTable = [...]opInfo{
|
|||
argLen: 3, |
|||
resultInArg0: true, |
|||
faultOnNilArg1: true, |
|||
+ hasSideEffects: true,
|
|||
asm: x86.AXCHGL, |
|||
reg: regInfo{ |
|||
inputs: []inputInfo{ |
|||
@@ -7649,6 +7650,7 @@ var opcodeTable = [...]opInfo{
|
|||
argLen: 3, |
|||
resultInArg0: true, |
|||
faultOnNilArg1: true, |
|||
+ hasSideEffects: true,
|
|||
asm: x86.AXCHGQ, |
|||
reg: regInfo{ |
|||
inputs: []inputInfo{ |
|||
@@ -7667,6 +7669,7 @@ var opcodeTable = [...]opInfo{
|
|||
resultInArg0: true, |
|||
clobberFlags: true, |
|||
faultOnNilArg1: true, |
|||
+ hasSideEffects: true,
|
|||
asm: x86.AXADDL, |
|||
reg: regInfo{ |
|||
inputs: []inputInfo{ |
|||
@@ -7685,6 +7688,7 @@ var opcodeTable = [...]opInfo{
|
|||
resultInArg0: true, |
|||
clobberFlags: true, |
|||
faultOnNilArg1: true, |
|||
+ hasSideEffects: true,
|
|||
asm: x86.AXADDQ, |
|||
reg: regInfo{ |
|||
inputs: []inputInfo{ |
|||
@@ -7712,6 +7716,7 @@ var opcodeTable = [...]opInfo{
|
|||
argLen: 4, |
|||
clobberFlags: true, |
|||
faultOnNilArg0: true, |
|||
+ hasSideEffects: true,
|
|||
asm: x86.ACMPXCHGL, |
|||
reg: regInfo{ |
|||
inputs: []inputInfo{ |
|||
@@ -7732,6 +7737,7 @@ var opcodeTable = [...]opInfo{
|
|||
argLen: 4, |
|||
clobberFlags: true, |
|||
faultOnNilArg0: true, |
|||
+ hasSideEffects: true,
|
|||
asm: x86.ACMPXCHGQ, |
|||
reg: regInfo{ |
|||
inputs: []inputInfo{ |
|||
@@ -7752,6 +7758,7 @@ var opcodeTable = [...]opInfo{
|
|||
argLen: 3, |
|||
clobberFlags: true, |
|||
faultOnNilArg0: true, |
|||
+ hasSideEffects: true,
|
|||
asm: x86.AANDB, |
|||
reg: regInfo{ |
|||
inputs: []inputInfo{ |
|||
@@ -7766,6 +7773,7 @@ var opcodeTable = [...]opInfo{
|
|||
argLen: 3, |
|||
clobberFlags: true, |
|||
faultOnNilArg0: true, |
|||
+ hasSideEffects: true,
|
|||
asm: x86.AORB, |
|||
reg: regInfo{ |
|||
inputs: []inputInfo{ |
|||
@@ -12982,6 +12990,7 @@ var opcodeTable = [...]opInfo{
|
|||
name: "STLR", |
|||
argLen: 3, |
|||
faultOnNilArg0: true, |
|||
+ hasSideEffects: true,
|
|||
asm: arm64.ASTLR, |
|||
reg: regInfo{ |
|||
inputs: []inputInfo{ |
|||
@@ -12994,6 +13003,7 @@ var opcodeTable = [...]opInfo{
|
|||
name: "STLRW", |
|||
argLen: 3, |
|||
faultOnNilArg0: true, |
|||
+ hasSideEffects: true,
|
|||
asm: arm64.ASTLRW, |
|||
reg: regInfo{ |
|||
inputs: []inputInfo{ |
|||
@@ -13007,6 +13017,7 @@ var opcodeTable = [...]opInfo{
|
|||
argLen: 3, |
|||
resultNotInArgs: true, |
|||
faultOnNilArg0: true, |
|||
+ hasSideEffects: true,
|
|||
reg: regInfo{ |
|||
inputs: []inputInfo{ |
|||
{1, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30 |
|||
@@ -13022,6 +13033,7 @@ var opcodeTable = [...]opInfo{
|
|||
argLen: 3, |
|||
resultNotInArgs: true, |
|||
faultOnNilArg0: true, |
|||
+ hasSideEffects: true,
|
|||
reg: regInfo{ |
|||
inputs: []inputInfo{ |
|||
{1, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30 |
|||
@@ -13037,6 +13049,7 @@ var opcodeTable = [...]opInfo{
|
|||
argLen: 3, |
|||
resultNotInArgs: true, |
|||
faultOnNilArg0: true, |
|||
+ hasSideEffects: true,
|
|||
reg: regInfo{ |
|||
inputs: []inputInfo{ |
|||
{1, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30 |
|||
@@ -13052,6 +13065,7 @@ var opcodeTable = [...]opInfo{
|
|||
argLen: 3, |
|||
resultNotInArgs: true, |
|||
faultOnNilArg0: true, |
|||
+ hasSideEffects: true,
|
|||
reg: regInfo{ |
|||
inputs: []inputInfo{ |
|||
{1, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30 |
|||
@@ -13068,6 +13082,7 @@ var opcodeTable = [...]opInfo{
|
|||
resultNotInArgs: true, |
|||
clobberFlags: true, |
|||
faultOnNilArg0: true, |
|||
+ hasSideEffects: true,
|
|||
reg: regInfo{ |
|||
inputs: []inputInfo{ |
|||
{1, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30 |
|||
@@ -13085,6 +13100,7 @@ var opcodeTable = [...]opInfo{
|
|||
resultNotInArgs: true, |
|||
clobberFlags: true, |
|||
faultOnNilArg0: true, |
|||
+ hasSideEffects: true,
|
|||
reg: regInfo{ |
|||
inputs: []inputInfo{ |
|||
{1, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30 |
|||
@@ -13100,6 +13116,7 @@ var opcodeTable = [...]opInfo{
|
|||
name: "LoweredAtomicAnd8", |
|||
argLen: 3, |
|||
faultOnNilArg0: true, |
|||
+ hasSideEffects: true,
|
|||
asm: arm64.AAND, |
|||
reg: regInfo{ |
|||
inputs: []inputInfo{ |
|||
@@ -13112,6 +13129,7 @@ var opcodeTable = [...]opInfo{
|
|||
name: "LoweredAtomicOr8", |
|||
argLen: 3, |
|||
faultOnNilArg0: true, |
|||
+ hasSideEffects: true,
|
|||
asm: arm64.AORR, |
|||
reg: regInfo{ |
|||
inputs: []inputInfo{ |
|||
@@ -14302,6 +14320,7 @@ var opcodeTable = [...]opInfo{
|
|||
name: "LoweredAtomicStore", |
|||
argLen: 3, |
|||
faultOnNilArg0: true, |
|||
+ hasSideEffects: true,
|
|||
reg: regInfo{ |
|||
inputs: []inputInfo{ |
|||
{1, 469762046}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31 |
|||
@@ -14313,6 +14332,7 @@ var opcodeTable = [...]opInfo{
|
|||
name: "LoweredAtomicStorezero", |
|||
argLen: 2, |
|||
faultOnNilArg0: true, |
|||
+ hasSideEffects: true,
|
|||
reg: regInfo{ |
|||
inputs: []inputInfo{ |
|||
{0, 140738025226238}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 SP g R31 SB |
|||
@@ -14324,6 +14344,7 @@ var opcodeTable = [...]opInfo{
|
|||
argLen: 3, |
|||
resultNotInArgs: true, |
|||
faultOnNilArg0: true, |
|||
+ hasSideEffects: true,
|
|||
reg: regInfo{ |
|||
inputs: []inputInfo{ |
|||
{1, 469762046}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31 |
|||
@@ -14339,6 +14360,7 @@ var opcodeTable = [...]opInfo{
|
|||
argLen: 3, |
|||
resultNotInArgs: true, |
|||
faultOnNilArg0: true, |
|||
+ hasSideEffects: true,
|
|||
reg: regInfo{ |
|||
inputs: []inputInfo{ |
|||
{1, 469762046}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31 |
|||
@@ -14355,6 +14377,7 @@ var opcodeTable = [...]opInfo{
|
|||
argLen: 2, |
|||
resultNotInArgs: true, |
|||
faultOnNilArg0: true, |
|||
+ hasSideEffects: true,
|
|||
reg: regInfo{ |
|||
inputs: []inputInfo{ |
|||
{0, 140738025226238}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 SP g R31 SB |
|||
@@ -14369,6 +14392,7 @@ var opcodeTable = [...]opInfo{
|
|||
argLen: 4, |
|||
resultNotInArgs: true, |
|||
faultOnNilArg0: true, |
|||
+ hasSideEffects: true,
|
|||
reg: regInfo{ |
|||
inputs: []inputInfo{ |
|||
{1, 469762046}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31 |
|||
@@ -14384,6 +14408,7 @@ var opcodeTable = [...]opInfo{
|
|||
name: "LoweredAtomicAnd", |
|||
argLen: 3, |
|||
faultOnNilArg0: true, |
|||
+ hasSideEffects: true,
|
|||
asm: mips.AAND, |
|||
reg: regInfo{ |
|||
inputs: []inputInfo{ |
|||
@@ -14396,6 +14421,7 @@ var opcodeTable = [...]opInfo{
|
|||
name: "LoweredAtomicOr", |
|||
argLen: 3, |
|||
faultOnNilArg0: true, |
|||
+ hasSideEffects: true,
|
|||
asm: mips.AOR, |
|||
reg: regInfo{ |
|||
inputs: []inputInfo{ |
|||
@@ -19839,6 +19865,7 @@ var opcodeTable = [...]opInfo{
|
|||
argLen: 3, |
|||
clobberFlags: true, |
|||
faultOnNilArg0: true, |
|||
+ hasSideEffects: true,
|
|||
asm: s390x.AMOVW, |
|||
reg: regInfo{ |
|||
inputs: []inputInfo{ |
|||
@@ -19853,6 +19880,7 @@ var opcodeTable = [...]opInfo{
|
|||
argLen: 3, |
|||
clobberFlags: true, |
|||
faultOnNilArg0: true, |
|||
+ hasSideEffects: true,
|
|||
asm: s390x.AMOVD, |
|||
reg: regInfo{ |
|||
inputs: []inputInfo{ |
|||
@@ -19866,6 +19894,7 @@ var opcodeTable = [...]opInfo{
|
|||
auxType: auxSymOff, |
|||
argLen: 3, |
|||
faultOnNilArg0: true, |
|||
+ hasSideEffects: true,
|
|||
asm: s390x.ALAA, |
|||
reg: regInfo{ |
|||
inputs: []inputInfo{ |
|||
@@ -19882,6 +19911,7 @@ var opcodeTable = [...]opInfo{
|
|||
auxType: auxSymOff, |
|||
argLen: 3, |
|||
faultOnNilArg0: true, |
|||
+ hasSideEffects: true,
|
|||
asm: s390x.ALAAG, |
|||
reg: regInfo{ |
|||
inputs: []inputInfo{ |
|||
@@ -19909,6 +19939,7 @@ var opcodeTable = [...]opInfo{
|
|||
argLen: 4, |
|||
clobberFlags: true, |
|||
faultOnNilArg0: true, |
|||
+ hasSideEffects: true,
|
|||
asm: s390x.ACS, |
|||
reg: regInfo{ |
|||
inputs: []inputInfo{ |
|||
@@ -19929,6 +19960,7 @@ var opcodeTable = [...]opInfo{
|
|||
argLen: 4, |
|||
clobberFlags: true, |
|||
faultOnNilArg0: true, |
|||
+ hasSideEffects: true,
|
|||
asm: s390x.ACSG, |
|||
reg: regInfo{ |
|||
inputs: []inputInfo{ |
|||
@@ -19949,6 +19981,7 @@ var opcodeTable = [...]opInfo{
|
|||
argLen: 3, |
|||
clobberFlags: true, |
|||
faultOnNilArg0: true, |
|||
+ hasSideEffects: true,
|
|||
asm: s390x.ACS, |
|||
reg: regInfo{ |
|||
inputs: []inputInfo{ |
|||
@@ -19967,6 +20000,7 @@ var opcodeTable = [...]opInfo{
|
|||
argLen: 3, |
|||
clobberFlags: true, |
|||
faultOnNilArg0: true, |
|||
+ hasSideEffects: true,
|
|||
asm: s390x.ACSG, |
|||
reg: regInfo{ |
|||
inputs: []inputInfo{ |
|||
@@ -21738,59 +21772,70 @@ var opcodeTable = [...]opInfo{
|
|||
generic: true, |
|||
}, |
|||
{ |
|||
- name: "AtomicStore32",
|
|||
- argLen: 3,
|
|||
- generic: true,
|
|||
+ name: "AtomicStore32",
|
|||
+ argLen: 3,
|
|||
+ hasSideEffects: true,
|
|||
+ generic: true,
|
|||
}, |
|||
{ |
|||
- name: "AtomicStore64",
|
|||
- argLen: 3,
|
|||
- generic: true,
|
|||
+ name: "AtomicStore64",
|
|||
+ argLen: 3,
|
|||
+ hasSideEffects: true,
|
|||
+ generic: true,
|
|||
}, |
|||
{ |
|||
- name: "AtomicStorePtrNoWB",
|
|||
- argLen: 3,
|
|||
- generic: true,
|
|||
+ name: "AtomicStorePtrNoWB",
|
|||
+ argLen: 3,
|
|||
+ hasSideEffects: true,
|
|||
+ generic: true,
|
|||
}, |
|||
{ |
|||
- name: "AtomicExchange32",
|
|||
- argLen: 3,
|
|||
- generic: true,
|
|||
+ name: "AtomicExchange32",
|
|||
+ argLen: 3,
|
|||
+ hasSideEffects: true,
|
|||
+ generic: true,
|
|||
}, |
|||
{ |
|||
- name: "AtomicExchange64",
|
|||
- argLen: 3,
|
|||
- generic: true,
|
|||
+ name: "AtomicExchange64",
|
|||
+ argLen: 3,
|
|||
+ hasSideEffects: true,
|
|||
+ generic: true,
|
|||
}, |
|||
{ |
|||
- name: "AtomicAdd32",
|
|||
- argLen: 3,
|
|||
- generic: true,
|
|||
+ name: "AtomicAdd32",
|
|||
+ argLen: 3,
|
|||
+ hasSideEffects: true,
|
|||
+ generic: true,
|
|||
}, |
|||
{ |
|||
- name: "AtomicAdd64",
|
|||
- argLen: 3,
|
|||
- generic: true,
|
|||
+ name: "AtomicAdd64",
|
|||
+ argLen: 3,
|
|||
+ hasSideEffects: true,
|
|||
+ generic: true,
|
|||
}, |
|||
{ |
|||
- name: "AtomicCompareAndSwap32",
|
|||
- argLen: 4,
|
|||
- generic: true,
|
|||
+ name: "AtomicCompareAndSwap32",
|
|||
+ argLen: 4,
|
|||
+ hasSideEffects: true,
|
|||
+ generic: true,
|
|||
}, |
|||
{ |
|||
- name: "AtomicCompareAndSwap64",
|
|||
- argLen: 4,
|
|||
- generic: true,
|
|||
+ name: "AtomicCompareAndSwap64",
|
|||
+ argLen: 4,
|
|||
+ hasSideEffects: true,
|
|||
+ generic: true,
|
|||
}, |
|||
{ |
|||
- name: "AtomicAnd8",
|
|||
- argLen: 3,
|
|||
- generic: true,
|
|||
+ name: "AtomicAnd8",
|
|||
+ argLen: 3,
|
|||
+ hasSideEffects: true,
|
|||
+ generic: true,
|
|||
}, |
|||
{ |
|||
- name: "AtomicOr8",
|
|||
- argLen: 3,
|
|||
- generic: true,
|
|||
+ name: "AtomicOr8",
|
|||
+ argLen: 3,
|
|||
+ hasSideEffects: true,
|
|||
+ generic: true,
|
|||
}, |
|||
} |
|||
|
|||
diff --git a/test/fixedbugs/issue19182.go b/test/fixedbugs/issue19182.go
|
|||
new file mode 100644 |
|||
index 0000000..3a90ff4
|
|||
--- /dev/null
|
|||
+++ b/test/fixedbugs/issue19182.go
|
|||
@@ -0,0 +1,36 @@
|
|||
+// run
|
|||
+
|
|||
+// Copyright 2017 The Go Authors. All rights reserved.
|
|||
+// Use of this source code is governed by a BSD-style
|
|||
+// license that can be found in the LICENSE file.
|
|||
+
|
|||
+package main
|
|||
+
|
|||
+import (
|
|||
+ "fmt"
|
|||
+ "runtime"
|
|||
+ "sync/atomic"
|
|||
+ "time"
|
|||
+)
|
|||
+
|
|||
+var a uint64 = 0
|
|||
+
|
|||
+func main() {
|
|||
+ runtime.GOMAXPROCS(2) // With just 1, infinite loop never yields
|
|||
+
|
|||
+ go func() {
|
|||
+ for {
|
|||
+ atomic.AddUint64(&a, uint64(1))
|
|||
+ }
|
|||
+ }()
|
|||
+
|
|||
+ time.Sleep(10 * time.Millisecond) // Short sleep is enough in passing case
|
|||
+ i, val := 0, atomic.LoadUint64(&a)
|
|||
+ for ; val == 0 && i < 100; val, i = atomic.LoadUint64(&a), i+1 {
|
|||
+ time.Sleep(100 * time.Millisecond)
|
|||
+ }
|