summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorroot <root@rshg054.dnsready.net>2012-10-29 01:22:22 -0700
committerroot <root@rshg054.dnsready.net>2012-10-29 01:22:22 -0700
commit29665004d902f751dedb1a4baaa896f9ed74c6b6 (patch)
treeba77436c66f0c84623a590444828c578a38b60e8
parent24d0263a0ac516ccc86df09146449fb040fb3689 (diff)
Mon Oct 29 01:22:06 PDT 2012
-rw-r--r--community/alex/PKGBUILD8
-rw-r--r--community/cegui/PKGBUILD21
-rw-r--r--community/dwb/PKGBUILD6
-rw-r--r--community/exim/PKGBUILD8
-rw-r--r--community/kid3/PKGBUILD16
-rw-r--r--community/kid3/kid3.changelog6
-rw-r--r--community/libgeotiff/PKGBUILD28
-rw-r--r--community/libgeotiff/libgeotiff.changelog2
-rw-r--r--community/monit/PKGBUILD11
-rw-r--r--community/monit/monit.changelog3
-rw-r--r--community/monit/monit.service13
-rw-r--r--community/powertop/PKGBUILD16
-rw-r--r--community/powertop/powertop.changelog3
-rw-r--r--community/sigil/PKGBUILD6
-rw-r--r--community/xemacs/PKGBUILD28
-rw-r--r--core/binutils/PKGBUILD48
-rw-r--r--core/gcc/PKGBUILD33
-rw-r--r--core/glibc/PKGBUILD31
-rw-r--r--core/glibc/glibc-2.16-detect-fma.patch72
-rw-r--r--core/glibc/glibc-2.16-glob-use-size_t.patch52
-rw-r--r--core/glibc/glibc-2.16-unlock-mutex.patch775
-rw-r--r--core/glibc/glibc.install14
-rw-r--r--core/glibc/nscd.service2
-rw-r--r--extra/hefur/PKGBUILD33
-rw-r--r--extra/hefur/hefurd.service11
-rw-r--r--extra/kdevelop/PKGBUILD13
-rw-r--r--libre/kdelibs-libre/PKGBUILD6
27 files changed, 1122 insertions, 143 deletions
diff --git a/community/alex/PKGBUILD b/community/alex/PKGBUILD
index 380db3bd6..a5d24c2d0 100644
--- a/community/alex/PKGBUILD
+++ b/community/alex/PKGBUILD
@@ -1,17 +1,17 @@
-# $Id: PKGBUILD 77336 2012-10-09 04:16:39Z tdziedzic $
+# $Id: PKGBUILD 79007 2012-10-29 02:24:24Z arodseth $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Maintainer: Vesa Kaihlavirta <vegai@iki.fi>
# Contributor: Philip Nilsson <pnilsson@nullref.se>
pkgname=alex
pkgver=3.0.2
-pkgrel=2
-pkgdesc='a lexical analyser generator for Haskell'
+pkgrel=3
+pkgdesc='Lexical analyser generator for Haskell'
arch=('i686' 'x86_64')
url='http://hackage.haskell.org/package/alex'
license=('custom:BSD3')
depends=('gmp')
-makedepends=('ghc=7.6.1-1' 'haskell-quickcheck=2.5-2')
+makedepends=('ghc=7.6.1' 'haskell-quickcheck>=2')
source=("http://hackage.haskell.org/packages/archive/$pkgname/$pkgver/$pkgname-$pkgver.tar.gz")
md5sums=('b8f0d831b65d05e5f54ff08bd3d9d10d')
diff --git a/community/cegui/PKGBUILD b/community/cegui/PKGBUILD
index f05f0f169..29ef0d959 100644
--- a/community/cegui/PKGBUILD
+++ b/community/cegui/PKGBUILD
@@ -1,12 +1,13 @@
-# $Id: PKGBUILD 78921 2012-10-27 23:43:46Z ebelanger $
+# $Id: PKGBUILD 79010 2012-10-29 03:17:07Z svenstaro $
# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
# Contributor: Juergen Hoetzel <juergen@archlinux.org>
# Contributor: William Rea <sillywilly@gmail.com>,
# Contributor: Bjorn Lindeijer <bjorn@lindeijer.nl>
-pkgname=cegui
+pkgbase=cegui
+pkgname=('cegui' 'cegui-docs')
pkgver=0.7.7
-pkgrel=2
+pkgrel=3
pkgdesc="A free library providing windowing and widgets for graphics APIs/engines"
arch=('i686' 'x86_64')
url="http://crayzedsgui.sourceforge.net"
@@ -34,14 +35,20 @@ build() {
make
}
-package() {
+package_cegui() {
cd $srcdir/CEGUI-${pkgver}
make DESTDIR=${pkgdir} install
+ install -Dm644 doc/COPYING ${pkgdir}/usr/share/licenses/$pkgname/LICENSE
+}
+
+package_cegui-docs() {
+ pkgdesc="Documentation for cegui"
+ depends=()
+
+ cd $srcdir/CEGUI-${pkgver}
+
cd doc/doxygen && doxygen
cd .. && make DESTDIR=${pkgdir} install-html
-
- install -Dm644 COPYING ${pkgdir}/usr/share/licenses/$pkgname/LICENSE
}
-
diff --git a/community/dwb/PKGBUILD b/community/dwb/PKGBUILD
index fc644ea86..b1cefa398 100644
--- a/community/dwb/PKGBUILD
+++ b/community/dwb/PKGBUILD
@@ -1,9 +1,9 @@
-#$Id: PKGBUILD 78955 2012-10-28 00:21:35Z dwallace $
+#$Id: PKGBUILD 78983 2012-10-28 16:19:12Z dwallace $
# Maintainer: Daniel Wallace <danielwallace at gtmanfred dot com>
# Contributor: portix <portix at gmx.net>
pkgname=dwb
-pkgver=2012.10.27_3
+pkgver=2012.10.28
pkgrel=1
pkgdesc="A webkit web browser with vi-like keyboard shortcuts, stable snapshot"
url="http://portix.bitbucket.org/dwb/"
@@ -12,7 +12,6 @@ install=dwb.install
license=('GPL')
depends=('libwebkit' 'desktop-file-utils')
source=(https://bitbucket.org/portix/"${pkgname}"/downloads/"${pkgname}"-"${pkgver}".tar.gz)
-md5sums=('2d544b01d3cbee81cc9f6c1c77ca7528')
build() {
cd "${srcdir}"/"${pkgname}"-"${pkgver}"
@@ -22,3 +21,4 @@ package() {
cd "${srcdir}"/"${pkgname}"-"${pkgver}"
make DESTDIR=${pkgdir} install
}
+md5sums=('2fcf30fba7879357ed03bed580dd6968')
diff --git a/community/exim/PKGBUILD b/community/exim/PKGBUILD
index a4fc221fa..f7d9c9299 100644
--- a/community/exim/PKGBUILD
+++ b/community/exim/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 72787 2012-06-22 12:50:29Z dreisner $
+# $Id: PKGBUILD 78961 2012-10-28 07:30:38Z bpiotrowski $
# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
# Contributor: Angel Velasquez <angvp@archlinux.org>
# Contributor: judd <jvinet@zeroflux.org>
pkgname=exim
-pkgver=4.80
-pkgrel=2
+pkgver=4.80.1
+pkgrel=1
pkgdesc="Message Transfer Agent"
arch=('x86_64' 'i686')
url='http://www.exim.org/'
@@ -27,7 +27,7 @@ source=("http://mirror.switch.ch/ftp/mirror/exim/exim/exim4/exim-$pkgver.tar.bz2
exim@.service
exim.socket
exim-submission.socket)
-sha256sums=('787b6defd37fa75311737bcfc42e9e2b2cc62c5d027eed35bb7d800b2d9a0984'
+sha256sums=('9565b10f06be224fd03adafae2e07e6fdbb479f8873e3894ddb13f98eeebe78f'
'932c9149b6809c70e94c1256e28325d197bbf80d27322793e217d4b692d49c5a'
'48457622b22de9721efe9f143a88e5f5ce833b792d2e757237b6cdb74a1708e6'
'7f1408f9c5d905968e665941f5c5efcf9da53e7a0bbef6c66220343bc2ae994b'
diff --git a/community/kid3/PKGBUILD b/community/kid3/PKGBUILD
index 241e8acae..57aaa460c 100644
--- a/community/kid3/PKGBUILD
+++ b/community/kid3/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 73475 2012-07-08 09:30:25Z ibiru $
+# $Id: PKGBUILD 78979 2012-10-28 15:58:04Z jlichtblau $
# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
# Contributor: Alois Nespor <alois.nespor@gmail.com>
pkgname=kid3
-pkgver=2.1
-pkgrel=4
+pkgver=2.2
+pkgrel=1
pkgdesc="An MP3, Ogg/Vorbis and FLAC tag editor for KDE"
arch=('i686' 'x86_64')
url="http://kid3.sourceforge.net/"
@@ -14,18 +14,12 @@ makedepends=('automoc4' 'cmake' 'docbook-xml' 'docbook-xsl')
options=('!makeflags')
install=$pkgname.install
changelog=$pkgname.changelog
-source=("http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz"
- 'ffmpeg-0.11.diff')
-sha256sums=('8925bde1a773d767ee9695229e65dfd64dc13edf850294560478f2e02ecc6225'
- '76ab3c119817a0e1f26e368afb757488c3865ff634771d4d176e729492991a54')
+source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz)
+sha256sums=('edd665103d10e78542e99eac88f409c2dcfa9d257c0f774f91a006c55db92443')
build() {
cd ${pkgname}-${pkgver}
- # fix error building with latest ffmpeg
- # http://kid3.git.sourceforge.net/git/gitweb.cgi?p=kid3/kid3;a=commit;h=2a91bff2810281e58948f478e9396c73e5c6154a
- patch -Np1 -i ${srcdir}/ffmpeg-0.11.diff
-
cd ${srcdir}
mkdir build
diff --git a/community/kid3/kid3.changelog b/community/kid3/kid3.changelog
index 8c440c611..1e516d68b 100644
--- a/community/kid3/kid3.changelog
+++ b/community/kid3/kid3.changelog
@@ -1,3 +1,9 @@
+2012-10-28 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * kid3 2.2-1
+
+2012-06-03 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * kid3 2.1-4 ffmpeg 0.11 rebuild
+
2012-05-12 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
* kid3 2.1-1
diff --git a/community/libgeotiff/PKGBUILD b/community/libgeotiff/PKGBUILD
index f8c13285c..67e2632a7 100644
--- a/community/libgeotiff/PKGBUILD
+++ b/community/libgeotiff/PKGBUILD
@@ -1,28 +1,32 @@
-# $Id: PKGBUILD 63640 2012-02-05 12:02:48Z ibiru $
-# Maintainer: Brad Fanella <bradfanella@archlinux.us>
+# $Id: PKGBUILD 78993 2012-10-28 17:33:39Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Brad Fanella <bradfanella@archlinux.us>
# Contributor: dibblethewrecker dibblethewrecker.at.jiwe.dot.org
# Contributor: William Rea <sillywilly@gmail.com>
pkgname=libgeotiff
-pkgver=1.3.0
-pkgrel=2
+pkgver=1.4.0
+pkgrel=1
pkgdesc="A TIFF based interchange format for georeferenced raster imagery"
arch=('i686' 'x86_64')
-license=('custom')
url="http://www.remotesensing.org/geotiff"
+license=('custom')
depends=('libtiff' 'proj' 'libjpeg>=7')
options=('!makeflags' '!libtool')
+changelog=$pkgname.changelog
source=(ftp://ftp.remotesensing.org/pub/geotiff/libgeotiff/$pkgname-$pkgver.tar.gz)
-md5sums=('6ac3c22e44711e9a3add9044e40b9527')
+sha256sums=('d0acb8d341fd6a8f2c673456e09fdb8f50f91e3166ac934719fe05b30d328329')
build() {
- cd "$srcdir/$pkgname-$pkgver"
- ./configure --prefix=/usr
- make
+ cd ${srcdir}/$pkgname-$pkgver
+
+ ./configure --prefix=/usr
+ make
}
package() {
- cd "$srcdir/$pkgname-$pkgver"
- make DESTDIR="$pkgdir" install
- install -D -m644 LICENSE "$pkgdir/usr/share/licenses/libgeotiff/LICENSE"
+ cd ${srcdir}/$pkgname-$pkgver
+
+ make DESTDIR=${pkgdir} install
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/libgeotiff/LICENSE
}
diff --git a/community/libgeotiff/libgeotiff.changelog b/community/libgeotiff/libgeotiff.changelog
new file mode 100644
index 000000000..e49948e98
--- /dev/null
+++ b/community/libgeotiff/libgeotiff.changelog
@@ -0,0 +1,2 @@
+2012-10-28 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * libgeotiff 1.4.0-1
diff --git a/community/monit/PKGBUILD b/community/monit/PKGBUILD
index 726379806..44e524112 100644
--- a/community/monit/PKGBUILD
+++ b/community/monit/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 76973 2012-10-02 18:27:38Z jlichtblau $
+# $Id: PKGBUILD 79004 2012-10-28 18:41:19Z jlichtblau $
# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
# Contributor: Geoffroy Carrier <geoffroy.carrier@aur.archlinux.org>
# Contributor: Marco Bartholomew <marco@marcobartholomew.com>
pkgname=monit
pkgver=5.5
-pkgrel=1
+pkgrel=2
pkgdesc="Utility for managing and monitoring, processes, files, directories and devices on a *NIX system"
arch=('i686' 'x86_64')
url="http://mmonit.com/monit/"
@@ -14,9 +14,10 @@ depends=('openssl')
backup=('etc/monitrc')
changelog=$pkgname.changelog
source=(http://mmonit.com/$pkgname/dist/$pkgname-$pkgver.tar.gz \
- monitd)
+ monitd monit.service)
sha256sums=('8276b060b3f0e6453c9748d421dec044ddae09d3e4c4666e13472aab294d7c53'
- 'b235b2fdeec49015d6b74f028d161b289663692f9ee2d2d78cf52d8db87ca496')
+ 'b235b2fdeec49015d6b74f028d161b289663692f9ee2d2d78cf52d8db87ca496'
+ 'cf607209e9e5d39e708152dc181525570371fab750f828e890e2b6a00b81ebc4')
build() {
cd ${srcdir}/$pkgname-$pkgver
@@ -33,4 +34,6 @@ package() {
install -D -m755 ${srcdir}/monitd ${pkgdir}/etc/rc.d/monitd
install -D -m700 monitrc ${pkgdir}/etc/monitrc
+
+ install -D -m644 ${srcdir}/$pkgname.service ${pkgdir}/usr/lib/systemd/system/$pkgname.service
}
diff --git a/community/monit/monit.changelog b/community/monit/monit.changelog
index 7c26c1a39..07cea8e3d 100644
--- a/community/monit/monit.changelog
+++ b/community/monit/monit.changelog
@@ -1,4 +1,7 @@
2012-10-02 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * monit 5.5-2 systemd .service file added
+
+2012-10-02 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
* monit 5.5-1
2012-05-20 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
diff --git a/community/monit/monit.service b/community/monit/monit.service
new file mode 100644
index 000000000..775435a4a
--- /dev/null
+++ b/community/monit/monit.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=Pro-active monitoring utility for unix systems
+After=network.target
+
+[Service]
+Type=simple
+ExecStart=/usr/bin/monit -I
+ExecStop=/usr/bin/monit quit
+ExecReload=/usr/bin/monit reload
+
+[Install]
+WantedBy=multi-user.target
+
diff --git a/community/powertop/PKGBUILD b/community/powertop/PKGBUILD
index f8302d2e9..efec60709 100644
--- a/community/powertop/PKGBUILD
+++ b/community/powertop/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 75422 2012-08-22 21:05:18Z seblu $
+# $Id: PKGBUILD 78981 2012-10-28 15:59:46Z jlichtblau $
# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
# Contributor: Alexander Fehr <pizzapunk gmail com>
# Contributor: Xilon <xilonmu@gmail.com>
pkgname=powertop
-pkgver=2.1
+pkgver=2.1.1
pkgrel=1
pkgdesc='A tool to diagnose issues with power consumption and power management'
arch=('i686' 'x86_64')
@@ -12,18 +12,20 @@ url='https://01.org/powertop/'
license=('GPL2')
depends=('gcc-libs' 'libnl' 'ncurses' 'pciutils')
changelog=$pkgname.changelog
-source=("https://01.org/powertop/sites/default/files/downloads/$pkgname-$pkgver.tar.gz")
-sha256sums=('3dd4816cca4167063b78d2d7772aff8dc58377d0ed74bf11862412a8a80d2698')
+source=($pkgname-$pkgver.tar.gz::https://github.com/fenrus75/powertop/tarball/v2.1.1)
+#https://01.org/powertop/sites/default/files/downloads/$pkgname-$pkgver.tar.gz)
+sha256sums=('e925230cc9006dbc226aec4dea389b97a0f906a7997b33aca40a1d6bc7568dc4')
build() {
- cd $pkgname-$pkgver
+ cd ${srcdir}/*-$pkgname-*
+ ./autogen.sh
./configure --prefix=/usr
make
}
package() {
- cd $pkgname-$pkgver
+ cd ${srcdir}/*-$pkgname-*
- make DESTDIR="$pkgdir" install
+ make DESTDIR=${pkgdir} install
}
diff --git a/community/powertop/powertop.changelog b/community/powertop/powertop.changelog
index 581da010b..9a53fc3d3 100644
--- a/community/powertop/powertop.changelog
+++ b/community/powertop/powertop.changelog
@@ -1,3 +1,6 @@
+2012-10-28 Jaroslav Lichtblau (Dragonlord) <dragonlord@aur.archlinux.org>
+ * powertop 2.1.1-1
+
2012-08-22 Sébastien Luttringer (seblu) <seblu@aur.archlinux.org>
* powertop 2.1-1
diff --git a/community/sigil/PKGBUILD b/community/sigil/PKGBUILD
index badf5d828..6cbe1a1d3 100644
--- a/community/sigil/PKGBUILD
+++ b/community/sigil/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 75761 2012-08-30 21:03:36Z spupykin $
+# $Id: PKGBUILD 78965 2012-10-28 10:20:16Z giovanni $
# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
# Contributor: Larry Hajali <larryhaja [at] gmail [dot] com>
pkgname=sigil
-pkgver=0.5.3
+pkgver=0.6.0
pkgrel=1
pkgdesc="WYSIWYG ebook editor"
arch=('i686' 'x86_64')
@@ -13,7 +13,7 @@ depends=('qtwebkit' 'boost-libs')
makedepends=('cmake' 'gendesk' 'boost')
install=sigil.install
source=("http://sigil.googlecode.com/files/Sigil-${pkgver}-Code.zip")
-md5sums=('83c1a5608a2ec59a83c86ccc1429b5cc')
+md5sums=('5f85f06077c572a4105398569fe7dfe6')
build() {
cd "${srcdir}"
diff --git a/community/xemacs/PKGBUILD b/community/xemacs/PKGBUILD
index 3a649abc1..e4dfec3e1 100644
--- a/community/xemacs/PKGBUILD
+++ b/community/xemacs/PKGBUILD
@@ -1,10 +1,11 @@
-# $Id: PKGBUILD 63784 2012-02-05 12:14:51Z ibiru $
-# Maintainer: juergen <juergen@archlinux.org>
-# Contributor : Stéphane Gaudreault <stephane@archlinux.org>
+# $Id: PKGBUILD 78989 2012-10-28 17:25:41Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: juergen <juergen@archlinux.org>
+# Contributor: Stéphane Gaudreault <stephane@archlinux.org>
pkgname=xemacs
-pkgver=21.5.31
-pkgrel=5
+pkgver=21.5.32
+pkgrel=1
pkgdesc="An highly customizable open source text editor and application development system forked from GNU Emacs"
arch=('i686' 'x86_64')
url="http://www.xemacs.org/"
@@ -13,23 +14,15 @@ depends=('db' 'libpng' 'libtiff' 'gpm' 'desktop-file-utils' 'libxaw' 'gdbm' 'gif
optdepends=('xorg-fonts-75dpi: X bitmap fonts needed for the interface'
'xorg-fonts-100dpi: X bitmap fonts needed for the interface')
makedepends=('xbitmaps')
-install=xemacs.install
+install=$pkgname.install
source=(http://ftp.xemacs.org/pub/xemacs/beta/${pkgname}-${pkgver}.tar.gz
- xemacs.desktop
- xemacs-21.5.29-optimization-bug.patch)
-md5sums=('0185fe905d0b8d8d094d9b60cf262d4a'
- 'a4d3d5c0aa2c7ce7bec491f809ca3694'
- 'eb061b10ea3bbe1026df5326ae1618e3')
+ xemacs.desktop)
+sha256sums=('5d7473fd4b9ca3278de44882ef004b0028e3ff130ed714831c885893a9cd5e7d'
+ 'd6dc802cf07519584aa28f3b5f4ae84d5e18b619ddd7e89a04da2f6783125f34')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
-# Fix problem caused by improper optimization with GCC>=4.1.2 on i686
-# (and possibly other arches). See
-# http://tracker.xemacs.org/XEmacs/its/issue354
-# for the upstream bug report.
- patch -Np0 -i ../xemacs-21.5.29-optimization-bug.patch
-
./configure --build="${CHOST}" --prefix=/usr --with-dynamic \
--without-postgresql --with-athena=xaw \
--enable-database=berkdb --without-ldap \
@@ -62,4 +55,3 @@ package() {
rm "${pkgdir}"/usr/share/info/{info.info,texinfo.info-2,cl.info,texinfo.info-1,texinfo.info,standards.info,widget.info}
}
-# vim: ts=2 sw=2 et ft=sh
diff --git a/core/binutils/PKGBUILD b/core/binutils/PKGBUILD
index f15754809..15e6d444d 100644
--- a/core/binutils/PKGBUILD
+++ b/core/binutils/PKGBUILD
@@ -1,45 +1,34 @@
-# $Id: PKGBUILD 165342 2012-08-16 01:57:38Z allan $
+# $Id: PKGBUILD 169770 2012-10-28 11:11:44Z allan $
# Maintainer: Allan McRae <allan@archlinux.org>
# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
pkgname=binutils
-pkgver=2.22
-pkgrel=10
-_date=20120323
+pkgver=2.23
+pkgrel=1
pkgdesc="A set of programs to assemble and manipulate binary and object files"
arch=('i686' 'x86_64')
url="http://www.gnu.org/software/binutils/"
license=('GPL')
groups=('base-devel')
depends=('glibc>=2.16' 'zlib')
-checkdepends=('dejagnu')
+checkdepends=('dejagnu' 'bc')
options=('!libtool' '!distcc' '!ccache')
install=binutils.install
-source=(ftp://ftp.archlinux.org/other/${pkgname}/${pkgname}-${pkgver}_${_date}.tar.bz2)
-md5sums=('de2ac4298732827f8af706fc24020330')
-
-mksource() {
- mkdir ${pkgname}-${_date}
- cd ${pkgname}-${_date}
- export _TAG=binutils-2_22-branch
- export 'CVSROOT=:pserver:anoncvs@sourceware.org:/cvs/src'
- cvs -z9 co -r $_TAG binutils || return 1
- mv src binutils
- tar -cvjf ../binutils-${pkgver}_${_date}.tar.bz2 binutils/*
-}
+source=(ftp://ftp.gnu.org/gnu/binutils/binutils-${pkgver}.tar.gz{,.sig})
+md5sums=('ed58f50d8920c3f1d9cb110d5c972c27'
+ '5293d43d444852f71f7c96c6295ba66d')
build() {
cd ${srcdir}
mkdir binutils-build && cd binutils-build
- [[ $CARCH == "x86_64" ]] && CONFIGFLAG="--enable-64-bit-bfd --disable-multilib"
-
- ${srcdir}/binutils/configure --prefix=/usr \
+ ${srcdir}/binutils-${pkgver}/configure --prefix=/usr \
--with-lib-path=/usr/lib:/usr/local/lib \
+ --with-bugurl=https://bugs.archlinux.org/ \
--enable-ld=default --enable-gold \
- --enable-plugins --enable-threads \
- --enable-shared $CONFIGFLAG
+ --enable-plugins --enable-threads --enable-shared \
+ --disable-werror --disable-multilib
# check the host environment and makes sure all the necessary tools are available
make configure-host
@@ -65,11 +54,10 @@ build() {
check() {
cd ${srcdir}/binutils-build
-
+
+ # unset LDFLAGS as testsuite makes assumptions about which ones are active
# do not abort on errors - manually check log files
- # gold testsuite does not build with _FORTIFY_SOURCE (due to -O0 -Werror)
- make CFLAGS="${CFLAGS/-D_FORTIFY_SOURCE=2/}" \
- CXXFLAGS="${CXXFLAGS/-D_FORTIFY_SOURCE=2/}" -k check || true
+ make LDFLAGS="" -k check || true
}
package() {
@@ -77,8 +65,8 @@ package() {
make prefix=${pkgdir}/usr tooldir=${pkgdir}/usr install
# Add some useful headers
- install -m644 ${srcdir}/binutils/include/libiberty.h ${pkgdir}/usr/include
- install -m644 ${srcdir}/binutils/include/demangle.h ${pkgdir}/usr/include
+ install -m644 ${srcdir}/binutils-${pkgver}/include/libiberty.h ${pkgdir}/usr/include
+ install -m644 ${srcdir}/binutils-${pkgver}/include/demangle.h ${pkgdir}/usr/include
# install libraries rebuilt with -fPIC
install -m644 libiberty-pic/libiberty.a ${pkgdir}/usr/lib
@@ -86,11 +74,11 @@ package() {
install -m644 opcodes/libopcodes.a ${pkgdir}/usr/lib
# Remove Windows/Novell specific man pages
- rm -f ${pkgdir}/usr/share/man/man1/{dlltool,nlmconv,windres,windmc}*
+ rm ${pkgdir}/usr/share/man/man1/{dlltool,nlmconv,windres,windmc}*
# Remove these symlinks, they are not ABI stable.
# Programs should compile static to the .a file.
- rm -f ${pkgdir}/usr/lib/lib{bfd,opcodes}.so
+ rm ${pkgdir}/usr/lib/lib{bfd,opcodes}.so
echo "INPUT ( /usr/lib/libbfd.a -liberty -lz )" >${pkgdir}/usr/lib/libbfd.so
echo "INPUT ( /usr/lib/libopcodes.a -lbfd )" >${pkgdir}/usr/lib/libopcodes.so
}
diff --git a/core/gcc/PKGBUILD b/core/gcc/PKGBUILD
index d5674d865..e7ba35f77 100644
--- a/core/gcc/PKGBUILD
+++ b/core/gcc/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 168332 2012-10-08 22:50:16Z allan $
+# $Id: PKGBUILD 169769 2012-10-28 11:11:42Z allan $
# Maintainer: Allan McRae <allan@archlinux.org>
# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
@@ -6,24 +6,21 @@
pkgname=('gcc' 'gcc-libs' 'gcc-fortran' 'gcc-objc' 'gcc-ada' 'gcc-go')
pkgver=4.7.2
-pkgrel=1
+pkgrel=2
#_snapshot=4.7-20120721
-_libstdcppmanver=20120924 # Note: check source directory name when updating this
pkgdesc="The GNU Compiler Collection"
arch=('i686' 'x86_64')
license=('GPL' 'LGPL' 'FDL' 'custom')
url="http://gcc.gnu.org"
-makedepends=('binutils>=2.22' 'libmpc' 'cloog' 'ppl' 'gcc-ada')
+makedepends=('binutils>=2.23' 'libmpc' 'cloog' 'ppl' 'gcc-ada' 'doxygen')
checkdepends=('dejagnu')
options=('!libtool' '!emptydirs')
source=(ftp://gcc.gnu.org/pub/gcc/releases/gcc-${pkgver}/gcc-${pkgver}.tar.bz2
#ftp://gcc.gnu.org/pub/gcc/snapshots/${_snapshot}/gcc-${_snapshot}.tar.bz2
- ftp://gcc.gnu.org/pub/gcc/libstdc++/doxygen/libstdc++-api.${_libstdcppmanver}.man.tar.bz2
gcc_pure64.patch
gcc-4.7.1-libada-pic.patch
gcc-4.7.1-libgo-write.patch)
md5sums=('cc308a0891e778cfda7a151ab8a6e762'
- '7f3d52515daafffb57c287f427381106'
'ced48436c1b3c981d721a829f1094de1'
'2acbc9d35cc9d72329dc71d6b1f162ef'
'df82dd175ac566c8a6d46b11ac21f14c')
@@ -78,10 +75,14 @@ build() {
--disable-build-with-cxx --disable-build-poststage1-with-cxx \
--enable-checking=release
make
+
+ # make documentation
+ cd $CHOST/libstdc++-v3
+ make doc-man-doxygen
}
check() {
- cd gcc-build
+ cd ${srcdir}/gcc-build
# increase stack size to prevent test failures
# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31827
@@ -99,7 +100,7 @@ package_gcc-libs()
depends=('glibc>=2.16')
install=gcc-libs.install
- cd gcc-build
+ cd ${srcdir}/gcc-build
make -j1 -C $CHOST/libgcc DESTDIR=${pkgdir} install-shared
for lib in libmudflap libgomp libstdc++-v3/src libitm; do
make -j1 -C $CHOST/$lib DESTDIR=${pkgdir} install-toolexeclibLTLIBRARIES
@@ -126,11 +127,11 @@ package_gcc-libs()
package_gcc()
{
pkgdesc="The GNU Compiler Collection - C and C++ frontends"
- depends=("gcc-libs=$pkgver-$pkgrel" 'binutils>=2.22' 'libmpc' 'cloog' 'ppl')
+ depends=("gcc-libs=$pkgver-$pkgrel" 'binutils>=2.23' 'libmpc' 'cloog' 'ppl')
groups=('base-devel')
install=gcc.install
- cd gcc-build
+ cd ${srcdir}/gcc-build
make -j1 DESTDIR=${pkgdir} install
@@ -186,8 +187,8 @@ EOF
# install the libstdc++ man pages
install -dm755 ${pkgdir}/usr/share/man/man3
- install -m644 ${srcdir}/libstdc++-api.${_libstdcppmanver}.man/man3/* \
- ${pkgdir}/usr/share/man/man3/
+ install -m644 -t ${pkgdir}/usr/share/man/man3 \
+ ${CHOST}/libstdc++-v3/doc/doxygen/man/man3/*.3
# Install Runtime Library Exception
install -Dm644 ${_basedir}/COPYING.RUNTIME \
@@ -200,7 +201,7 @@ package_gcc-fortran()
depends=("gcc=$pkgver-$pkgrel")
install=gcc-fortran.install
- cd gcc-build
+ cd ${srcdir}/gcc-build
make -j1 DESTDIR=${pkgdir} install-target-libquadmath
make -j1 DESTDIR=$pkgdir install-target-libgfortran
make -j1 -C $CHOST/libgomp DESTDIR=$pkgdir install-nodist_fincludeHEADERS
@@ -223,7 +224,7 @@ package_gcc-objc()
pkgdesc="Objective-C front-end for GCC"
depends=("gcc=$pkgver-$pkgrel")
- cd gcc-build
+ cd ${srcdir}/gcc-build
make -j1 DESTDIR=$pkgdir install-target-libobjc
install -dm755 $pkgdir/usr/lib/gcc/$CHOST/$pkgver/
install -m755 gcc/cc1obj{,plus} $pkgdir/usr/lib/gcc/$CHOST/$pkgver/
@@ -242,7 +243,7 @@ package_gcc-ada()
depends=("gcc=$pkgver-$pkgrel")
install=gcc-ada.install
- cd gcc-build/gcc
+ cd ${srcdir}/gcc-build/gcc
make -j1 DESTDIR=$pkgdir ada.install-{common,info}
install -m755 gnat1 $pkgdir/usr/lib/gcc/$CHOST/$pkgver
@@ -259,7 +260,7 @@ package_gcc-go()
depends=("gcc=$pkgver-$pkgrel")
install=gcc-go.install
- cd gcc-build
+ cd ${srcdir}/gcc-build
make -j1 DESTDIR=$pkgdir install-target-libgo
make -j1 -C gcc DESTDIR=$pkgdir go.install-{common,man,info}
install -Dm755 gcc/go1 $pkgdir/usr/lib/gcc/$CHOST/$pkgver/go1
diff --git a/core/glibc/PKGBUILD b/core/glibc/PKGBUILD
index 6039cbccb..a6f6b5dff 100644
--- a/core/glibc/PKGBUILD
+++ b/core/glibc/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 165786 2012-08-29 23:16:00Z allan $
+# $Id: PKGBUILD 169771 2012-10-28 11:11:49Z allan $
# Maintainer: Allan McRae <allan@archlinux.org>
# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
@@ -6,7 +6,7 @@
pkgname=glibc
pkgver=2.16.0
-pkgrel=4
+pkgrel=5
pkgdesc="GNU C Library"
arch=('i686' 'x86_64')
url="http://www.gnu.org/software/libc"
@@ -21,10 +21,12 @@ options=('!strip')
install=glibc.install
source=(http://ftp.gnu.org/gnu/libc/${pkgname}-${pkgver}.tar.xz{,.sig}
glibc-2.15-fix-res_query-assert.patch
- glibc-2.15-revert-c5a0802a.patch
+ glibc-2.16-unlock-mutex.patch
glibc-2.16-rpcgen-cpp-path.patch
glibc-2.16-strncasecmp-segfault.patch
glibc-2.16-strtod-overflow.patch
+ glibc-2.16-detect-fma.patch
+ glibc-2.16-glob-use-size_t.patch
nscd.rcd
nscd.service
nscd.tmpfiles
@@ -33,16 +35,19 @@ source=(http://ftp.gnu.org/gnu/libc/${pkgname}-${pkgver}.tar.xz{,.sig}
md5sums=('80b181b02ab249524ec92822c0174cf7'
'2a1221a15575820751c325ef4d2fbb90'
'31f415b41197d85d3bbee3d1eecd06a3'
- '0a0383d50d63f1c02919fe9943b82014'
+ '0afcd8c6020d61684aba63ed5f26bd91'
'ea6a43915474e8276e9361eed6a01280'
'f042d37cc8ca3459023431809039bc88'
'61d322f7681a85d3293ada5c3ccc2c7e'
+ '2426f593bc43f5499c41d21b57ee0e30'
+ 'a441353901992feda4b15a11a20140a1'
'589d79041aa767a5179eaa4e2737dd3f'
- 'ad8a9af15ab7eeaa23dc7ee85024af9f'
+ 'c1e07c0bec0fe89791bfd9d13fc85edf'
'bccbe5619e75cf1d97312ec3681c605c'
'07ac979b6ab5eeb778d55f041529d623'
'476e9113489f93b348b21e144b6a8fcf')
+
build() {
cd ${srcdir}/${pkgname}-${pkgver}
@@ -50,9 +55,9 @@ build() {
# http://sourceware.org/bugzilla/show_bug.cgi?id=13013
patch -p1 -i ${srcdir}/glibc-2.15-fix-res_query-assert.patch
- # revert commit c5a0802a - causes various hangs
- # https://bugzilla.redhat.com/show_bug.cgi?id=552960
- patch -p1 -i ${srcdir}/glibc-2.15-revert-c5a0802a.patch
+ # prevent hang by locked mutex
+ # http://sourceware.org/git/?p=glibc.git;a=patch;h=c30e8edf
+ patch -p1 -i ${srcdir}/glibc-2.16-unlock-mutex.patch
# prevent need for /lib/cpp symlink
# http://sourceware.org/git/?p=glibc.git;a=commit;h=bf9b740a
@@ -66,6 +71,14 @@ build() {
# http://sourceware.org/git/?p=glibc.git;a=commit;h=da1f4319
patch -p1 -i ${srcdir}/glibc-2.16-strtod-overflow.patch
+ # detect FMA supprt
+ # http://sourceware.org/git/?p=glibc.git;a=commit;h=a5cfcf08
+ patch -p1 -i ${srcdir}/glibc-2.16-detect-fma.patch
+
+ # prevent overflow in globc
+ # http://sourceware.org/git/?p=glibc.git;a=commit;h=6c62f108
+ patch -p1 -i ${srcdir}/glibc-2.16-glob-use-size_t.patch
+
# ldconfig does not need to look in /usr/lib64 or /usr/libx32 on Arch Linux
sed -i "s#add_system_dir#do_not_add_system_dir#" sysdeps/unix/sysv/linux/x86_64/dl-cache.h
@@ -111,7 +124,7 @@ build() {
check() {
cd ${srcdir}/glibc-build
- make -k check
+ make check
}
package() {
diff --git a/core/glibc/glibc-2.16-detect-fma.patch b/core/glibc/glibc-2.16-detect-fma.patch
new file mode 100644
index 000000000..daffb9768
--- /dev/null
+++ b/core/glibc/glibc-2.16-detect-fma.patch
@@ -0,0 +1,72 @@
+diff --git a/sysdeps/x86_64/multiarch/init-arch.c b/sysdeps/x86_64/multiarch/init-arch.c
+index fb44dcf..fed5ab8 100644
+--- a/sysdeps/x86_64/multiarch/init-arch.c
++++ b/sysdeps/x86_64/multiarch/init-arch.c
+@@ -156,6 +156,9 @@ __init_cpu_features (void)
+ /* Determine if AVX is usable. */
+ if (CPUID_AVX)
+ __cpu_features.feature[index_AVX_Usable] |= bit_AVX_Usable;
++ /* Determine if FMA is usable. */
++ if (CPUID_FMA)
++ __cpu_features.feature[index_FMA_Usable] |= bit_FMA_Usable;
+ /* Determine if FMA4 is usable. */
+ if (CPUID_FMA4)
+ __cpu_features.feature[index_FMA4_Usable] |= bit_FMA4_Usable;
+diff --git a/sysdeps/x86_64/multiarch/init-arch.h b/sysdeps/x86_64/multiarch/init-arch.h
+index 45e2651..f33f1c8 100644
+--- a/sysdeps/x86_64/multiarch/init-arch.h
++++ b/sysdeps/x86_64/multiarch/init-arch.h
+@@ -22,7 +22,8 @@
+ #define bit_Fast_Unaligned_Load (1 << 4)
+ #define bit_Prefer_PMINUB_for_stringop (1 << 5)
+ #define bit_AVX_Usable (1 << 6)
+-#define bit_FMA4_Usable (1 << 7)
++#define bit_FMA_Usable (1 << 7)
++#define bit_FMA4_Usable (1 << 8)
+
+ /* CPUID Feature flags. */
+ #define bit_SSE2 (1 << 26)
+@@ -56,6 +57,7 @@
+ # define index_Fast_Unaligned_Load FEATURE_INDEX_1*FEATURE_SIZE
+ # define index_Prefer_PMINUB_for_stringop FEATURE_INDEX_1*FEATURE_SIZE
+ # define index_AVX_Usable FEATURE_INDEX_1*FEATURE_SIZE
++# define index_FMA_Usable FEATURE_INDEX_1*FEATURE_SIZE
+ # define index_FMA4_Usable FEATURE_INDEX_1*FEATURE_SIZE
+
+ #else /* __ASSEMBLER__ */
+@@ -131,6 +133,8 @@ extern const struct cpu_features *__get_cpu_features (void)
+ HAS_CPUID_FLAG (COMMON_CPUID_INDEX_1, ecx, bit_OSXSAVE)
+ # define CPUID_AVX \
+ HAS_CPUID_FLAG (COMMON_CPUID_INDEX_1, ecx, bit_AVX)
++# define CPUID_FMA \
++ HAS_CPUID_FLAG (COMMON_CPUID_INDEX_1, ecx, bit_FMA)
+ # define CPUID_FMA4 \
+ HAS_CPUID_FLAG (COMMON_CPUID_INDEX_80000001, ecx, bit_FMA4)
+
+@@ -140,7 +144,6 @@ extern const struct cpu_features *__get_cpu_features (void)
+ # define HAS_SSSE3 HAS_CPU_FEATURE (COMMON_CPUID_INDEX_1, ecx, bit_SSSE3)
+ # define HAS_SSE4_1 HAS_CPU_FEATURE (COMMON_CPUID_INDEX_1, ecx, bit_SSE4_1)
+ # define HAS_SSE4_2 HAS_CPU_FEATURE (COMMON_CPUID_INDEX_1, ecx, bit_SSE4_2)
+-# define HAS_FMA HAS_CPU_FEATURE (COMMON_CPUID_INDEX_1, ecx, bit_FMA)
+
+ # define index_Fast_Rep_String FEATURE_INDEX_1
+ # define index_Fast_Copy_Backward FEATURE_INDEX_1
+@@ -148,6 +151,7 @@ extern const struct cpu_features *__get_cpu_features (void)
+ # define index_Prefer_SSE_for_memop FEATURE_INDEX_1
+ # define index_Fast_Unaligned_Load FEATURE_INDEX_1
+ # define index_AVX_Usable FEATURE_INDEX_1
++# define index_FMA_Usable FEATURE_INDEX_1
+ # define index_FMA4_Usable FEATURE_INDEX_1
+
+ # define HAS_ARCH_FEATURE(name) \
+@@ -159,6 +163,7 @@ extern const struct cpu_features *__get_cpu_features (void)
+ # define HAS_PREFER_SSE_FOR_MEMOP HAS_ARCH_FEATURE (Prefer_SSE_for_memop)
+ # define HAS_FAST_UNALIGNED_LOAD HAS_ARCH_FEATURE (Fast_Unaligned_Load)
+ # define HAS_AVX HAS_ARCH_FEATURE (AVX_Usable)
++# define HAS_FMA HAS_ARCH_FEATURE (FMA_Usable)
+ # define HAS_FMA4 HAS_ARCH_FEATURE (FMA4_Usable)
+
+ #endif /* __ASSEMBLER__ */
+--
+1.7.3.4
+
diff --git a/core/glibc/glibc-2.16-glob-use-size_t.patch b/core/glibc/glibc-2.16-glob-use-size_t.patch
new file mode 100644
index 000000000..8c5df45be
--- /dev/null
+++ b/core/glibc/glibc-2.16-glob-use-size_t.patch
@@ -0,0 +1,52 @@
+diff --git a/posix/glob.c b/posix/glob.c
+index 68ea205..87d4f1b 100644
+--- a/posix/glob.c
++++ b/posix/glob.c
+@@ -217,7 +217,7 @@ static int collated_compare (const void *, const void *) __THROW;
+ static const char *
+ next_brace_sub (const char *cp, int flags)
+ {
+- unsigned int depth = 0;
++ size_t depth = 0;
+ while (*cp != '\0')
+ if ((flags & GLOB_NOESCAPE) == 0 && *cp == '\\')
+ {
+@@ -960,7 +960,7 @@ glob (pattern, flags, errfunc, pglob)
+ && S_ISDIR (st.st_mode))
+ : (__stat64 (dirname, &st64) == 0 && S_ISDIR (st64.st_mode)))))
+ {
+- int newcount = pglob->gl_pathc + pglob->gl_offs;
++ size_t newcount = pglob->gl_pathc + pglob->gl_offs;
+ char **new_gl_pathv;
+
+ if (newcount > UINTPTR_MAX - (1 + 1)
+@@ -1059,7 +1059,7 @@ glob (pattern, flags, errfunc, pglob)
+ appending the results to PGLOB. */
+ for (i = 0; i < dirs.gl_pathc; ++i)
+ {
+- int old_pathc;
++ size_t old_pathc;
+
+ #ifdef SHELL
+ {
+@@ -1114,7 +1114,7 @@ glob (pattern, flags, errfunc, pglob)
+ /* No matches. */
+ if (flags & GLOB_NOCHECK)
+ {
+- int newcount = pglob->gl_pathc + pglob->gl_offs;
++ size_t newcount = pglob->gl_pathc + pglob->gl_offs;
+ char **new_gl_pathv;
+
+ if (newcount > UINTPTR_MAX - 2
+@@ -1158,7 +1158,7 @@ glob (pattern, flags, errfunc, pglob)
+ }
+ else
+ {
+- int old_pathc = pglob->gl_pathc;
++ size_t old_pathc = pglob->gl_pathc;
+ int orig_flags = flags;
+
+ if (meta & 2)
+--
+1.7.3.4
+
diff --git a/core/glibc/glibc-2.16-unlock-mutex.patch b/core/glibc/glibc-2.16-unlock-mutex.patch
new file mode 100644
index 000000000..0649d3642
--- /dev/null
+++ b/core/glibc/glibc-2.16-unlock-mutex.patch
@@ -0,0 +1,775 @@
+--- a/nptl/Makefile
++++ b/nptl/Makefile
+@@ -206,7 +206,7 @@ tests = tst-typesizes \
+ tst-cond1 tst-cond2 tst-cond3 tst-cond4 tst-cond5 tst-cond6 tst-cond7 \
+ tst-cond8 tst-cond9 tst-cond10 tst-cond11 tst-cond12 tst-cond13 \
+ tst-cond14 tst-cond15 tst-cond16 tst-cond17 tst-cond18 tst-cond19 \
+- tst-cond20 tst-cond21 tst-cond22 tst-cond23 \
++ tst-cond20 tst-cond21 tst-cond22 tst-cond23 tst-cond24 \
+ tst-robust1 tst-robust2 tst-robust3 tst-robust4 tst-robust5 \
+ tst-robust6 tst-robust7 tst-robust8 tst-robust9 \
+ tst-robustpi1 tst-robustpi2 tst-robustpi3 tst-robustpi4 tst-robustpi5 \
+@@ -274,6 +275,7 @@ gen-as-const-headers = pthread-errnos.sym
+
+ LDFLAGS-pthread.so = -Wl,--enable-new-dtags,-z,nodelete,-z,initfirst
+
++LDFLAGS-tst-cond24 = $(no-as-needed) -lrt
+
+ include ../Makeconfig
+
+diff --git a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
+index d14d7de..6761c13 100644
+--- a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
++++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
+@@ -212,8 +212,23 @@ __pthread_cond_timedwait:
+ sete 24(%esp)
+ je 41f
+
+- /* Normal and PI futexes dont mix. Use normal futex functions only
+- if the kernel does not support the PI futex functions. */
++ /* When a futex syscall with FUTEX_WAIT_REQUEUE_PI returns
++ successfully, it has already locked the mutex for us and the
++ pi_flag (24(%esp)) is set to denote that fact. However, if another
++ thread changed the futex value before we entered the wait, the
++ syscall may return an EAGAIN and the mutex is not locked. We go
++ ahead with a success anyway since later we look at the pi_flag to
++ decide if we got the mutex or not. The sequence numbers then make
++ sure that only one of the threads actually wake up. We retry using
++ normal FUTEX_WAIT only if the kernel returned ENOSYS, since normal
++ and PI futexes don't mix.
++
++ Note that we don't check for EAGAIN specifically; we assume that the
++ only other error the futex function could return is EAGAIN (barring
++ the ETIMEOUT of course, for the timeout case in futex) since
++ anything else would mean an error in our function. It is too
++ expensive to do that check for every call (which is quite common in
++ case of a large number of threads), so it has been skipped. */
+ cmpl $-ENOSYS, %eax
+ jne 41f
+ xorl %ecx, %ecx
+@@ -273,9 +288,24 @@ __pthread_cond_timedwait:
+ jne 9f
+
+ 15: cmpl $-ETIMEDOUT, %esi
+- jne 8b
++ je 28f
++
++ /* We need to go back to futex_wait. If we're using requeue_pi, then
++ release the mutex we had acquired and go back. */
++ movl 24(%esp), %edx
++ test %edx, %edx
++ jz 8b
++
++ /* Adjust the mutex values first and then unlock it. The unlock
++ should always succeed or else the kernel did not lock the mutex
++ correctly. */
++ movl dep_mutex(%ebx), %eax
++ call __pthread_mutex_cond_lock_adjust
++ xorl %edx, %edx
++ call __pthread_mutex_unlock_usercnt
++ jmp 8b
+
+- addl $1, wakeup_seq(%ebx)
++28: addl $1, wakeup_seq(%ebx)
+ adcl $0, wakeup_seq+4(%ebx)
+ addl $1, cond_futex(%ebx)
+ movl $ETIMEDOUT, %esi
+diff --git a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
+index 366de69..0af06ac 100644
+--- a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
++++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
+@@ -136,7 +136,6 @@ __pthread_cond_wait:
+ cmpl $PI_BIT, %eax
+ jne 18f
+
+-90:
+ movl $(FUTEX_WAIT_REQUEUE_PI|FUTEX_PRIVATE_FLAG), %ecx
+ movl %ebp, %edx
+ xorl %esi, %esi
+@@ -152,11 +151,22 @@ __pthread_cond_wait:
+ sete 16(%esp)
+ je 19f
+
+- cmpl $-EAGAIN, %eax
+- je 91f
+-
+- /* Normal and PI futexes dont mix. Use normal futex functions only
+- if the kernel does not support the PI futex functions. */
++ /* When a futex syscall with FUTEX_WAIT_REQUEUE_PI returns
++ successfully, it has already locked the mutex for us and the
++ pi_flag (16(%esp)) is set to denote that fact. However, if another
++ thread changed the futex value before we entered the wait, the
++ syscall may return an EAGAIN and the mutex is not locked. We go
++ ahead with a success anyway since later we look at the pi_flag to
++ decide if we got the mutex or not. The sequence numbers then make
++ sure that only one of the threads actually wake up. We retry using
++ normal FUTEX_WAIT only if the kernel returned ENOSYS, since normal
++ and PI futexes don't mix.
++
++ Note that we don't check for EAGAIN specifically; we assume that the
++ only other error the futex function could return is EAGAIN since
++ anything else would mean an error in our function. It is too
++ expensive to do that check for every call (which is quite common in
++ case of a large number of threads), so it has been skipped. */
+ cmpl $-ENOSYS, %eax
+ jne 19f
+ xorl %ecx, %ecx
+@@ -206,12 +216,12 @@ __pthread_cond_wait:
+ cmpl 8(%esp), %edx
+ jne 7f
+ cmpl 4(%esp), %edi
+- je 8b
++ je 22f
+
+ 7: cmpl %ecx, %edx
+ jne 9f
+ cmp %eax, %edi
+- je 8b
++ je 22f
+
+ 9: addl $1, woken_seq(%ebx)
+ adcl $0, woken_seq+4(%ebx)
+@@ -287,6 +297,22 @@ __pthread_cond_wait:
+ jmp 20b
+
+ cfi_adjust_cfa_offset(-FRAME_SIZE);
++
++ /* We need to go back to futex_wait. If we're using requeue_pi, then
++ release the mutex we had acquired and go back. */
++22: movl 16(%esp), %edx
++ test %edx, %edx
++ jz 8b
++
++ /* Adjust the mutex values first and then unlock it. The unlock
++ should always succeed or else the kernel did not lock the mutex
++ correctly. */
++ movl dep_mutex(%ebx), %eax
++ call __pthread_mutex_cond_lock_adjust
++ xorl %edx, %edx
++ call __pthread_mutex_unlock_usercnt
++ jmp 8b
++
+ /* Initial locking failed. */
+ 1:
+ #if cond_lock == 0
+@@ -400,77 +426,6 @@ __pthread_cond_wait:
+ call __lll_unlock_wake
+ jmp 11b
+
+-91:
+-.LcleanupSTART2:
+- /* FUTEX_WAIT_REQUEUE_PI returned EAGAIN. We need to
+- call it again. */
+-
+- /* Get internal lock. */
+- movl $1, %edx
+- xorl %eax, %eax
+- LOCK
+-#if cond_lock == 0
+- cmpxchgl %edx, (%ebx)
+-#else
+- cmpxchgl %edx, cond_lock(%ebx)
+-#endif
+- jz 92f
+-
+-#if cond_lock == 0
+- movl %ebx, %edx
+-#else
+- leal cond_lock(%ebx), %edx
+-#endif
+-#if (LLL_SHARED-LLL_PRIVATE) > 255
+- xorl %ecx, %ecx
+-#endif
+- cmpl $-1, dep_mutex(%ebx)
+- setne %cl
+- subl $1, %ecx
+- andl $(LLL_SHARED-LLL_PRIVATE), %ecx
+-#if LLL_PRIVATE != 0
+- addl $LLL_PRIVATE, %ecx
+-#endif
+- call __lll_lock_wait
+-
+-92:
+- /* Increment the cond_futex value again, so it can be used as a new
+- expected value. */
+- addl $1, cond_futex(%ebx)
+- movl cond_futex(%ebx), %ebp
+-
+- /* Unlock. */
+- LOCK
+-#if cond_lock == 0
+- subl $1, (%ebx)
+-#else
+- subl $1, cond_lock(%ebx)
+-#endif
+- je 93f
+-#if cond_lock == 0
+- movl %ebx, %eax
+-#else
+- leal cond_lock(%ebx), %eax
+-#endif
+-#if (LLL_SHARED-LLL_PRIVATE) > 255
+- xorl %ecx, %ecx
+-#endif
+- cmpl $-1, dep_mutex(%ebx)
+- setne %cl
+- subl $1, %ecx
+- andl $(LLL_SHARED-LLL_PRIVATE), %ecx
+-#if LLL_PRIVATE != 0
+- addl $LLL_PRIVATE, %ecx
+-#endif
+- call __lll_unlock_wake
+-
+-93:
+- /* Set the rest of SYS_futex args for FUTEX_WAIT_REQUEUE_PI. */
+- xorl %ecx, %ecx
+- movl dep_mutex(%ebx), %edi
+- jmp 90b
+-.LcleanupEND2:
+-
+ .size __pthread_cond_wait, .-__pthread_cond_wait
+ versioned_symbol (libpthread, __pthread_cond_wait, pthread_cond_wait,
+ GLIBC_2_3_2)
+@@ -651,10 +606,6 @@ __condvar_w_cleanup:
+ .long .LcleanupEND-.Lsub_cond_futex
+ .long __condvar_w_cleanup-.LSTARTCODE
+ .uleb128 0
+- .long .LcleanupSTART2-.LSTARTCODE
+- .long .LcleanupEND2-.LcleanupSTART2
+- .long __condvar_w_cleanup-.LSTARTCODE
+- .uleb128 0
+ .long .LcallUR-.LSTARTCODE
+ .long .LENDCODE-.LcallUR
+ .long 0
+diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
+index a1c8ca8..b669abb 100644
+--- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
++++ b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
+@@ -103,7 +103,7 @@ __pthread_cond_timedwait:
+ mov %RSI_LP, dep_mutex(%rdi)
+
+ 22:
+- xorl %r15d, %r15d
++ xorb %r15b, %r15b
+
+ #ifndef __ASSUME_FUTEX_CLOCK_REALTIME
+ # ifdef PIC
+@@ -190,18 +190,39 @@ __pthread_cond_timedwait:
+ movl $SYS_futex, %eax
+ syscall
+
+- movl $1, %r15d
++ cmpl $0, %eax
++ sete %r15b
++
+ #ifdef __ASSUME_REQUEUE_PI
+ jmp 62f
+ #else
+- cmpq $-4095, %rax
+- jnae 62f
++ je 62f
++
++ /* When a futex syscall with FUTEX_WAIT_REQUEUE_PI returns
++ successfully, it has already locked the mutex for us and the
++ pi_flag (%r15b) is set to denote that fact. However, if another
++ thread changed the futex value before we entered the wait, the
++ syscall may return an EAGAIN and the mutex is not locked. We go
++ ahead with a success anyway since later we look at the pi_flag to
++ decide if we got the mutex or not. The sequence numbers then make
++ sure that only one of the threads actually wake up. We retry using
++ normal FUTEX_WAIT only if the kernel returned ENOSYS, since normal
++ and PI futexes don't mix.
++
++ Note that we don't check for EAGAIN specifically; we assume that the
++ only other error the futex function could return is EAGAIN (barring
++ the ETIMEOUT of course, for the timeout case in futex) since
++ anything else would mean an error in our function. It is too
++ expensive to do that check for every call (which is quite common in
++ case of a large number of threads), so it has been skipped. */
++ cmpl $-ENOSYS, %eax
++ jne 62f
+
+ subq $cond_futex, %rdi
+ #endif
+
+ 61: movl $(FUTEX_WAIT_BITSET|FUTEX_PRIVATE_FLAG), %esi
+-60: xorl %r15d, %r15d
++60: xorb %r15b, %r15b
+ xorl %eax, %eax
+ /* The following only works like this because we only support
+ two clocks, represented using a single bit. */
+@@ -248,7 +269,23 @@ __pthread_cond_timedwait:
+ ja 39f
+
+ 45: cmpq $-ETIMEDOUT, %r14
+- jne 38b
++ je 99f
++
++ /* We need to go back to futex_wait. If we're using requeue_pi, then
++ release the mutex we had acquired and go back. */
++ test %r15b, %r15b
++ jz 38b
++
++ /* Adjust the mutex values first and then unlock it. The unlock
++ should always succeed or else the kernel did not lock the
++ mutex correctly. */
++ movq %r8, %rdi
++ callq __pthread_mutex_cond_lock_adjust
++ xorl %esi, %esi
++ callq __pthread_mutex_unlock_usercnt
++ /* Reload cond_var. */
++ movq 8(%rsp), %rdi
++ jmp 38b
+
+ 99: incq wakeup_seq(%rdi)
+ incl cond_futex(%rdi)
+@@ -298,7 +335,7 @@ __pthread_cond_timedwait:
+ /* If requeue_pi is used the kernel performs the locking of the
+ mutex. */
+ 41: movq 16(%rsp), %rdi
+- testl %r15d, %r15d
++ testb %r15b, %r15b
+ jnz 64f
+
+ callq __pthread_mutex_cond_lock
+diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
+index 6194852..ec403cd 100644
+--- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
++++ b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
+@@ -136,19 +136,36 @@ __pthread_cond_wait:
+ cmpl $PI_BIT, %eax
+ jne 61f
+
+-90:
+ movl $(FUTEX_WAIT_REQUEUE_PI|FUTEX_PRIVATE_FLAG), %esi
+ movl $SYS_futex, %eax
+ syscall
+
+- movl $1, %r8d
+- cmpq $-EAGAIN, %rax
+- je 91f
++ cmpl $0, %eax
++ sete %r8b
++
+ #ifdef __ASSUME_REQUEUE_PI
+ jmp 62f
+ #else
+- cmpq $-4095, %rax
+- jnae 62f
++ je 62f
++
++ /* When a futex syscall with FUTEX_WAIT_REQUEUE_PI returns
++ successfully, it has already locked the mutex for us and the
++ pi_flag (%r8b) is set to denote that fact. However, if another
++ thread changed the futex value before we entered the wait, the
++ syscall may return an EAGAIN and the mutex is not locked. We go
++ ahead with a success anyway since later we look at the pi_flag to
++ decide if we got the mutex or not. The sequence numbers then make
++ sure that only one of the threads actually wake up. We retry using
++ normal FUTEX_WAIT only if the kernel returned ENOSYS, since normal
++ and PI futexes don't mix.
++
++ Note that we don't check for EAGAIN specifically; we assume that the
++ only other error the futex function could return is EAGAIN since
++ anything else would mean an error in our function. It is too
++ expensive to do that check for every call (which is quite common in
++ case of a large number of threads), so it has been skipped. */
++ cmpl $-ENOSYS, %eax
++ jne 62f
+
+ # ifndef __ASSUME_PRIVATE_FUTEX
+ movl $FUTEX_WAIT, %esi
+@@ -161,7 +178,7 @@ __pthread_cond_wait:
+ #else
+ orl %fs:PRIVATE_FUTEX, %esi
+ #endif
+-60: xorl %r8d, %r8d
++60: xorb %r8b, %r8b
+ movl $SYS_futex, %eax
+ syscall
+
+@@ -191,10 +208,10 @@ __pthread_cond_wait:
+ jne 16f
+
+ cmpq 24(%rsp), %r9
+- jbe 8b
++ jbe 19f
+
+ cmpq %rax, %r9
+- jna 8b
++ jna 19f
+
+ incq woken_seq(%rdi)
+
+@@ -236,7 +253,7 @@ __pthread_cond_wait:
+ /* If requeue_pi is used the kernel performs the locking of the
+ mutex. */
+ 11: movq 16(%rsp), %rdi
+- testl %r8d, %r8d
++ testb %r8b, %r8b
+ jnz 18f
+
+ callq __pthread_mutex_cond_lock
+@@ -253,6 +270,23 @@ __pthread_cond_wait:
+ xorl %eax, %eax
+ jmp 14b
+
++ /* We need to go back to futex_wait. If we're using requeue_pi, then
++ release the mutex we had acquired and go back. */
++19: testb %r8b, %r8b
++ jz 8b
++
++ /* Adjust the mutex values first and then unlock it. The unlock
++ should always succeed or else the kernel did not lock the mutex
++ correctly. */
++ movq 16(%rsp), %rdi
++ callq __pthread_mutex_cond_lock_adjust
++ movq %rdi, %r8
++ xorl %esi, %esi
++ callq __pthread_mutex_unlock_usercnt
++ /* Reload cond_var. */
++ movq 8(%rsp), %rdi
++ jmp 8b
++
+ /* Initial locking failed. */
+ 1:
+ #if cond_lock != 0
+@@ -331,69 +365,6 @@ __pthread_cond_wait:
+ 13: movq %r10, %rax
+ jmp 14b
+
+-91:
+-.LcleanupSTART2:
+- /* FUTEX_WAIT_REQUEUE_PI returned EAGAIN. We need to
+- call it again. */
+- movq 8(%rsp), %rdi
+-
+- /* Get internal lock. */
+- movl $1, %esi
+- xorl %eax, %eax
+- LOCK
+-#if cond_lock == 0
+- cmpxchgl %esi, (%rdi)
+-#else
+- cmpxchgl %esi, cond_lock(%rdi)
+-#endif
+- jz 92f
+-
+-#if cond_lock != 0
+- addq $cond_lock, %rdi
+-#endif
+- LP_OP(cmp) $-1, dep_mutex-cond_lock(%rdi)
+- movl $LLL_PRIVATE, %eax
+- movl $LLL_SHARED, %esi
+- cmovne %eax, %esi
+- callq __lll_lock_wait
+-#if cond_lock != 0
+- subq $cond_lock, %rdi
+-#endif
+-92:
+- /* Increment the cond_futex value again, so it can be used as a new
+- expected value. */
+- incl cond_futex(%rdi)
+- movl cond_futex(%rdi), %edx
+-
+- /* Release internal lock. */
+- LOCK
+-#if cond_lock == 0
+- decl (%rdi)
+-#else
+- decl cond_lock(%rdi)
+-#endif
+- jz 93f
+-
+-#if cond_lock != 0
+- addq $cond_lock, %rdi
+-#endif
+- LP_OP(cmp) $-1, dep_mutex-cond_lock(%rdi)
+- movl $LLL_PRIVATE, %eax
+- movl $LLL_SHARED, %esi
+- cmovne %eax, %esi
+- /* The call preserves %rdx. */
+- callq __lll_unlock_wake
+-#if cond_lock != 0
+- subq $cond_lock, %rdi
+-#endif
+-93:
+- /* Set the rest of SYS_futex args for FUTEX_WAIT_REQUEUE_PI. */
+- xorq %r10, %r10
+- mov dep_mutex(%rdi), %R8_LP
+- leaq cond_futex(%rdi), %rdi
+- jmp 90b
+-.LcleanupEND2:
+-
+ .size __pthread_cond_wait, .-__pthread_cond_wait
+ versioned_symbol (libpthread, __pthread_cond_wait, pthread_cond_wait,
+ GLIBC_2_3_2)
+@@ -547,10 +518,6 @@ __condvar_cleanup1:
+ .uleb128 .LcleanupEND-.LcleanupSTART
+ .uleb128 __condvar_cleanup1-.LSTARTCODE
+ .uleb128 0
+- .uleb128 .LcleanupSTART2-.LSTARTCODE
+- .uleb128 .LcleanupEND2-.LcleanupSTART2
+- .uleb128 __condvar_cleanup1-.LSTARTCODE
+- .uleb128 0
+ .uleb128 .LcallUR-.LSTARTCODE
+ .uleb128 .LENDCODE-.LcallUR
+ .uleb128 0
+diff --git a/nptl/tst-cond24.c b/nptl/tst-cond24.c
+new file mode 100644
+index 0000000..2eb2df1
+--- /dev/null
++++ b/nptl/tst-cond24.c
+@@ -0,0 +1,249 @@
++/* Verify that condition variables synchronized by PI mutexes don't hang.
++ Copyright (C) 2012 Free Software Foundation, Inc.
++ This file is part of the GNU C Library.
++
++ The GNU C Library 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.
++
++ The GNU C Library 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 the GNU C Library; if not, see
++ <http://www.gnu.org/licenses/>. */
++
++#include <pthread.h>
++#include <stdio.h>
++#include <stdlib.h>
++#include <string.h>
++#include <errno.h>
++#include <sys/types.h>
++#include <sys/syscall.h>
++#include <unistd.h>
++#include <sys/time.h>
++#include <time.h>
++
++#define THREADS_NUM 5
++#define MAXITER 50000
++
++static pthread_mutex_t mutex;
++static pthread_mutexattr_t mutex_attr;
++static pthread_cond_t cond;
++static pthread_t threads[THREADS_NUM];
++static int pending = 0;
++
++typedef void * (*threadfunc) (void *);
++
++void *
++thread_fun_timed (void *arg)
++{
++ int *ret = arg;
++ int rv, i;
++
++ printf ("Started thread_fun_timed[%d]\n", *ret);
++
++ for (i = 0; i < MAXITER / THREADS_NUM; i++)
++ {
++ rv = pthread_mutex_lock (&mutex);
++ if (rv)
++ {
++ printf ("pthread_mutex_lock: %s(%d)\n", strerror (rv), rv);
++ *ret = 1;
++ goto out;
++ }
++
++ while (!pending)
++ {
++ struct timespec ts;
++ clock_gettime(CLOCK_REALTIME, &ts);
++ ts.tv_sec += 20;
++ rv = pthread_cond_timedwait (&cond, &mutex, &ts);
++
++ /* There should be no timeout either. */
++ if (rv)
++ {
++ printf ("pthread_cond_wait: %s(%d)\n", strerror (rv), rv);
++ *ret = 1;
++ goto out;
++ }
++ }
++
++ pending--;
++
++ rv = pthread_mutex_unlock (&mutex);
++ if (rv)
++ {
++ printf ("pthread_mutex_unlock: %s(%d)\n", strerror (rv), rv);
++ *ret = 1;
++ goto out;
++ }
++ }
++
++ *ret = 0;
++
++out:
++ return ret;
++}
++
++void *
++thread_fun (void *arg)
++{
++ int *ret = arg;
++ int rv, i;
++
++ printf ("Started thread_fun[%d]\n", *ret);
++
++ for (i = 0; i < MAXITER / THREADS_NUM; i++)
++ {
++ rv = pthread_mutex_lock (&mutex);
++ if (rv)
++ {
++ printf ("pthread_mutex_lock: %s(%d)\n", strerror (rv), rv);
++ *ret = 1;
++ goto out;
++ }
++
++ while (!pending)
++ {
++ rv = pthread_cond_wait (&cond, &mutex);
++
++ if (rv)
++ {
++ printf ("pthread_cond_wait: %s(%d)\n", strerror (rv), rv);
++ *ret = 1;
++ goto out;
++ }
++ }
++
++ pending--;
++
++ rv = pthread_mutex_unlock (&mutex);
++ if (rv)
++ {
++ printf ("pthread_mutex_unlock: %s(%d)\n", strerror (rv), rv);
++ *ret = 1;
++ goto out;
++ }
++ }
++
++ *ret = 0;
++
++out:
++ return ret;
++}
++
++static int
++do_test_wait (threadfunc f)
++{
++ int i;
++ int rv;
++ int counter = 0;
++ int retval[THREADS_NUM];
++
++ puts ("Starting test");
++
++ rv = pthread_mutexattr_init (&mutex_attr);
++ if (rv)
++ {
++ printf ("pthread_mutexattr_init: %s(%d)\n", strerror (rv), rv);
++ return 1;
++ }
++
++ rv = pthread_mutexattr_setprotocol (&mutex_attr, PTHREAD_PRIO_INHERIT);
++ if (rv)
++ {
++ printf ("pthread_mutexattr_setprotocol: %s(%d)\n", strerror (rv), rv);
++ return 1;
++ }
++
++ rv = pthread_mutex_init (&mutex, &mutex_attr);
++ if (rv)
++ {
++ printf ("pthread_mutex_init: %s(%d)\n", strerror (rv), rv);
++ return 1;
++ }
++
++ rv = pthread_cond_init (&cond, NULL);
++ if (rv)
++ {
++ printf ("pthread_cond_init: %s(%d)\n", strerror (rv), rv);
++ return 1;
++ }
++
++ for (i = 0; i < THREADS_NUM; i++)
++ {
++ retval[i] = i;
++ rv = pthread_create (&threads[i], NULL, f, &retval[i]);
++ if (rv)
++ {
++ printf ("pthread_create: %s(%d)\n", strerror (rv), rv);
++ return 1;
++ }
++ }
++
++ for (; counter < MAXITER; counter++)
++ {
++ rv = pthread_mutex_lock (&mutex);
++ if (rv)
++ {
++ printf ("pthread_mutex_lock: %s(%d)\n", strerror (rv), rv);
++ return 1;
++ }
++
++ if (!(counter % 100))
++ printf ("counter: %d\n", counter);
++ pending += 1;
++
++ rv = pthread_cond_signal (&cond);
++ if (rv)
++ {
++ printf ("pthread_cond_signal: %s(%d)\n", strerror (rv), rv);
++ return 1;
++ }
++
++ rv = pthread_mutex_unlock (&mutex);
++ if (rv)
++ {
++ printf ("pthread_mutex_unlock: %s(%d)\n", strerror (rv), rv);
++ return 1;
++ }
++ }
++
++ for (i = 0; i < THREADS_NUM; i++)
++ {
++ void *ret;
++ rv = pthread_join (threads[i], &ret);
++ if (rv)
++ {
++ printf ("pthread_join: %s(%d)\n", strerror (rv), rv);
++ return 1;
++ }
++ if (ret && *(int *)ret)
++ {
++ printf ("Thread %d returned with an error\n", i);
++ return 1;
++ }
++ }
++
++ return 0;
++}
++
++static int
++do_test (void)
++{
++ puts ("Testing pthread_cond_wait");
++ int ret = do_test_wait (thread_fun);
++ if (ret)
++ return ret;
++
++ puts ("Testing pthread_cond_timedwait");
++ return do_test_wait (thread_fun_timed);
++}
++
++#define TIMEOUT 10
++#define TEST_FUNCTION do_test ()
++#include "../test-skeleton.c"
+--
+1.7.3.4
+
diff --git a/core/glibc/glibc.install b/core/glibc/glibc.install
index 7f85ade96..4486a3b2d 100644
--- a/core/glibc/glibc.install
+++ b/core/glibc/glibc.install
@@ -2,19 +2,19 @@ infodir=usr/share/info
filelist=(libc.info{,-1,-2,-3,-4,-5,-6,-7,-8,-9,-10,-11})
post_upgrade() {
- sbin/ldconfig -r .
- [ -x sbin/init ] && sbin/init u
- usr/sbin/locale-gen
+ ldconfig -r .
+ [[ ! -e sys/fs/cgroup/systemd && -x sbin/init ]] && init u
+ locale-gen
- [ -x usr/bin/install-info ] || return 0
+ [[ -x usr/bin/install-info ]] || return 0
for file in ${filelist[@]}; do
- usr/bin/install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+ install-info $infodir/$file.gz $infodir/dir 2> /dev/null
done
}
pre_remove() {
- [ -x usr/bin/install-info ] || return 0
+ [[ -x usr/bin/install-info ]] || return 0
for file in ${filelist[@]}; do
- usr/bin/install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+ install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
done
}
diff --git a/core/glibc/nscd.service b/core/glibc/nscd.service
index de5315e9b..bc80a0730 100644
--- a/core/glibc/nscd.service
+++ b/core/glibc/nscd.service
@@ -9,7 +9,7 @@ ExecStop=/usr/sbin/nscd --shutdown
ExecReload=/usr/sbin/nscd -i passwd
ExecReload=/usr/sbin/nscd -i group
ExecReload=/usr/sbin/nscd -i hosts
-ExecReload=/usr/sbin/nscd -i service
+ExecReload=/usr/sbin/nscd -i services
Restart=always
PIDFile=/run/nscd/nscd.pid
diff --git a/extra/hefur/PKGBUILD b/extra/hefur/PKGBUILD
new file mode 100644
index 000000000..60d6f3ff1
--- /dev/null
+++ b/extra/hefur/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 169775 2012-10-28 11:34:10Z pierre $
+# Maintainer: Pierre Schmitz <pierre@archlinux.de>
+# Contributor: Alexandre Bique <bique.alexandre@gmail.com>
+
+pkgname=hefur
+pkgver=0.3
+pkgrel=2
+pkgdesc='A standalone and lightweight BitTorrent tracker'
+arch=('i686' 'x86_64')
+url='http://github.com/abique/hefur'
+license=('MIT')
+makedepends=('cmake')
+depends=('gnutls' 'xz')
+source=("https://github.com/downloads/abique/${pkgname}/${pkgname}-${pkgver}.tar.xz"
+ 'hefurd.service')
+md5sums=('446ca4e659ce0ca3c8f32b0990ee7f5f'
+ '79f947bb934fd5784ab59bcb0bc1345a')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ mkdir build
+ cd build
+ cmake -DCMAKE_INSTALL_PREFIX=/usr ..
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}/build
+ DESTDIR=${pkgdir} make install
+ install -D -m644 ${srcdir}/hefurd.service ${pkgdir}/usr/lib/systemd/system/hefurd.service
+ install -D -m644 ${srcdir}/${pkgname}-${pkgver}/LICENSE ${pkgdir}/usr/share/licenses/hefur/LICENSE
+ install -d -m755 ${pkgdir}/var/lib/herfurd
+}
diff --git a/extra/hefur/hefurd.service b/extra/hefur/hefurd.service
new file mode 100644
index 000000000..b91e1009d
--- /dev/null
+++ b/extra/hefur/hefurd.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=A standalone and lightweight BitTorrent tracker
+After=network.target
+
+[Service]
+ExecStart=/usr/bin/hefurd -torrent-dir /var/lib/herfurd
+User=nobody
+Group=nobody
+
+[Install]
+WantedBy=multi-user.target
diff --git a/extra/kdevelop/PKGBUILD b/extra/kdevelop/PKGBUILD
index 20bf24c2c..374b76e06 100644
--- a/extra/kdevelop/PKGBUILD
+++ b/extra/kdevelop/PKGBUILD
@@ -1,16 +1,21 @@
-# $Id: PKGBUILD 169573 2012-10-23 17:20:12Z andrea $
+# $Id: PKGBUILD 169768 2012-10-28 09:27:58Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Giovanni Scafora <giovanni@archlinux.org>
pkgname=kdevelop
pkgver=4.4.0
-pkgrel=1
+pkgrel=2
pkgdesc="A C/C++ development environment for KDE"
arch=('i686' 'x86_64')
url="http://www.kdevelop.org/"
license=('GPL')
-depends=('kdebase-workspace' 'kdevplatform' 'kdesdk-okteta' 'kdebase-katepart')
-makedepends=('cmake' 'automoc4')
+depends=('kdebase-workspace' 'kdevplatform' 'kdebase-katepart')
+makedepends=('cmake' 'automoc4' 'kdesdk-okteta')
+optdepends=('kdesdk-okteta: hex editor'
+ 'kdebase-konsole: embedded terminal'
+ 'git: git support'
+ 'gdb: gdb support'
+ 'qt-doc: qt documentation integration')
install="${pkgname}.install"
source=("http://download.kde.org/stable/${pkgname}/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
sha1sums=('271a6ab3dd6063175e9ce18810bed7437d451ecf')
diff --git a/libre/kdelibs-libre/PKGBUILD b/libre/kdelibs-libre/PKGBUILD
index d63eb96f7..2a4f28f33 100644
--- a/libre/kdelibs-libre/PKGBUILD
+++ b/libre/kdelibs-libre/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 167425 2012-10-02 09:09:06Z andrea $
+# $Id: PKGBUILD 169397 2012-10-20 10:02:56Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org
# Contributor: Pierre Schmitz <pierre@archlinux.de>
# Maintainer (Parabola): André Silva <emulatorman@lavabit.com>
@@ -6,7 +6,7 @@
_pkgname=kdelibs
pkgname=kdelibs-libre
pkgver=4.9.2
-pkgrel=2
+pkgrel=3
pkgdesc="KDE Core Libraries"
arch=('i686' 'x86_64' 'mips64el')
url='https://projects.kde.org/projects/kde/kdelibs'
@@ -16,7 +16,7 @@ depends=('strigi' 'attica' 'libxss' 'soprano' 'krb5' 'grantlee'
'shared-mime-info' 'enchant' 'giflib' 'jasper' 'openexr'
'docbook-xsl' 'upower' 'udisks' 'libxcursor' 'phonon' 'qtwebkit'
'media-player-info' 'libxtst')
-makedepends=('cmake' 'automoc4' 'avahi' 'libgl' 'hspell')
+makedepends=('cmake' 'automoc4' 'avahi' 'libgl' 'hspell' 'mesa')
provides=("kdelibs=$pkgver")
replaces=('kdelibs')
conflicts=('kdelibs')