diff options
213 files changed, 11592 insertions, 407 deletions
diff --git a/community-staging/performous/PKGBUILD b/community-staging/performous/PKGBUILD new file mode 100644 index 000000000..33ece8523 --- /dev/null +++ b/community-staging/performous/PKGBUILD @@ -0,0 +1,55 @@ +# $Id: PKGBUILD 72124 2012-06-08 22:02:52Z lcarlier $ +# Maintainer : Laurent Carlier <lordheavym@gmail.com> +# Contributor: Christoph Zeiler <archNOSPAM_at_moonblade.dot.org> + +pkgname=performous +pkgver=0.6.1 +pkgrel=14 +pkgdesc='A free game like "Singstar", "Rockband" or "Stepmania"' +arch=('i686' 'x86_64') +url="http://performous.org/" +license=('GPL') +depends=('boost-libs' 'imagemagick' 'glew' 'libxml++' 'portaudio' 'portmidi' 'opencv' 'librsvg') +#depends=('boost-libs>=1.48' 'sdl' 'jack' 'imagemagick' 'ffmpeg' 'glew>=1.7.0' 'libxml++' 'portaudio' 'portmidi' \ +# 'opencv' 'librsvg' 'libjpeg' 'libpng' 'cairo') +makedepends=('cmake' 'pkgconfig' 'help2man' 'boost>=1.48') +optdepends=('performous-freesongs: free songs for performous') +source=(http://sourceforge.net/projects/$pkgname/files/$pkgname/$pkgver/Performous-$pkgver-Source.tar.bz2 + boost-filesystem-v3.patch + ffmpeg-0.11.patch + png15.patch) +md5sums=('451a759de77984b5a699e91107fe52e2' + '42a8c825d80b0de16bd5752d2a80e585' + '07e52e926595d053155bbfb7168e308f' + '89157d5e21b0efd09fcbeee299d23c7e') + +build() { + cd ${srcdir}/Performous-${pkgver}-Source + + # fix to built against boost 1.46 and later, upstream (git) now support v3 + patch -Np1 -i ../boost-filesystem-v3.patch + # fix with ffmpeg-0.11 + patch -Np1 -i ../ffmpeg-0.11.patch + # fix for libpng 1.5 + patch -Np1 -i ../png15.patch + # fix glib2.0 building + # #error "Only <glib.h> can be included directly." + sed -i -e 's#/gconvert.h#.h#g' game/unicode.cc + + mkdir -p build + cd build + + # fix config loading with libxml++ + export LDFLAGS=${LDFLAGS/-Wl,--as-needed/} + + cmake -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/usr .. + + make +} + +package() { + cd ${srcdir}/Performous-${pkgver}-Source/build + + make DESTDIR="$pkgdir" install +} diff --git a/community-staging/performous/boost-filesystem-v3.patch b/community-staging/performous/boost-filesystem-v3.patch new file mode 100644 index 000000000..22dd07213 --- /dev/null +++ b/community-staging/performous/boost-filesystem-v3.patch @@ -0,0 +1,135 @@ +diff --git a/game/backgrounds.cc b/game/backgrounds.cc +index 7fd3cd0..cdedefb 100644 +--- a/game/backgrounds.cc ++++ b/game/backgrounds.cc +@@ -55,8 +55,13 @@ void Backgrounds::reload_internal(fs::path const& parent) { + for (fs::directory_iterator dirIt(parent), dirEnd; m_loading && dirIt != dirEnd; ++dirIt) { + fs::path p = dirIt->path(); + if (fs::is_directory(p)) { reload_internal(p); continue; } ++#if BOOST_FILESYSTEM_VERSION < 3 + std::string name = p.leaf(); // File basename + std::string path = p.directory_string(); // Path without filename ++#else ++ std::string name = p.filename().string(); // File basename ++ std::string path = p.string(); // Path without filename ++#endif + path.erase(path.size() - name.size()); + if (!regex_match(name.c_str(), match, expression)) continue; + { +diff --git a/game/cache.cc b/game/cache.cc +index 69974e2..0f1edd0 100644 +--- a/game/cache.cc ++++ b/game/cache.cc +@@ -9,7 +9,11 @@ namespace cache { + fs::path constructSVGCacheFileName(fs::path const& svgfilename, double factor){ + fs::path cache_filename; + std::string const lod = (boost::format("%.2f") % factor).str(); ++#if BOOST_FILESYSTEM_VERSION < 3 + std::string const cache_basename = svgfilename.filename() + ".cache_" + lod + ".png"; ++#else ++ std::string const cache_basename = svgfilename.filename().string() + ".cache_" + lod + ".png"; ++#endif + + if (isThemeResource(svgfilename)) { + std::string const theme_name = (config["game/theme"].s().empty() ? "default" : config["game/theme"].s()); +diff --git a/game/filemagic.hh b/game/filemagic.hh +index bf87ded..29e81fe 100644 +--- a/game/filemagic.hh ++++ b/game/filemagic.hh +@@ -71,7 +71,11 @@ namespace filemagic { + // For now, just check the extension an assume it's not lying. + + // Get file extension in lower case ++#if BOOST_FILESYSTEM_VERSION < 3 + std::string ext = filename.extension(); ++#else ++ std::string ext = filename.extension().string(); ++#endif + // somehow this does not convert the extension to lower case: + //std::for_each(ext.begin(), ext.end(), static_cast<int(*)(int)>(std::tolower)); + std::transform(ext.begin(), ext.end(), ext.begin(), ::tolower ); +diff --git a/game/fs.cc b/game/fs.cc +index e34a784..767a7ab 100644 +--- a/game/fs.cc ++++ b/game/fs.cc +@@ -128,7 +128,11 @@ std::string getThemePath(std::string const& filename) { + + bool isThemeResource(fs::path filename){ + try { ++#if BOOST_FILESYSTEM_VERSION < 3 + std::string themefile = getThemePath(filename.filename()); ++#else ++ std::string themefile = getThemePath(filename.filename().string()); ++#endif + return themefile == filename; + } catch (...) { return false; } + } +diff --git a/game/songparser-ini.cc b/game/songparser-ini.cc +index 38e163b..db15d79 100644 +--- a/game/songparser-ini.cc ++++ b/game/songparser-ini.cc +@@ -104,7 +104,11 @@ void SongParser::iniParseHeader() { + // Search the dir for the music files + for (boost::filesystem::directory_iterator dirIt(s.path), dirEnd; dirIt != dirEnd; ++dirIt) { + boost::filesystem::path p = dirIt->path(); ++#if BOOST_FILESYSTEM_VERSION < 3 + std::string name = p.leaf(); // File basename (notes.txt) ++#else ++ std::string name = p.filename().string(); // File basename (notes.txt) ++#endif + if (regex_match(name.c_str(), match, midifile)) { + s.midifilename = name; + } else if (regex_match(name.c_str(), match, audiofile_background)) { +diff --git a/game/songparser.cc b/game/songparser.cc +index 2b7b9b4..ac9f3f6 100644 +--- a/game/songparser.cc ++++ b/game/songparser.cc +@@ -100,7 +100,11 @@ SongParser::SongParser(Song& s): + + for (boost::filesystem::directory_iterator dirIt(s.path), dirEnd; dirIt != dirEnd; ++dirIt) { + boost::filesystem::path p = dirIt->path(); ++#if BOOST_FILESYSTEM_VERSION < 3 + std::string name = p.leaf(); // File basename ++#else ++ std::string name = p.filename().string(); // File basename ++#endif + if (m_song.cover.empty() && regex_match(name.c_str(), match, coverfile)) { + m_song.cover = name; + } else if (m_song.background.empty() && regex_match(name.c_str(), match, backgroundfile)) { +diff --git a/game/songs.cc b/game/songs.cc +index 62ab26d..afab383 100644 +--- a/game/songs.cc ++++ b/game/songs.cc +@@ -67,8 +67,13 @@ void Songs::reload_internal(fs::path const& parent) { + for (fs::directory_iterator dirIt(parent), dirEnd; m_loading && dirIt != dirEnd; ++dirIt) { + fs::path p = dirIt->path(); + if (fs::is_directory(p)) { reload_internal(p); continue; } ++#if BOOST_FILESYSTEM_VERSION < 3 + std::string name = p.leaf(); // File basename (notes.txt) + std::string path = p.directory_string(); // Path without filename ++#else ++ std::string name = p.filename().string(); // File basename (notes.txt) ++ std::string path = p.string(); // Path without filename ++#endif + path.erase(path.size() - name.size()); + if (!regex_match(name.c_str(), match, expression)) continue; + try { +diff --git a/tools/ss_helpers.hh b/tools/ss_helpers.hh +index 58e19dc..8895d94 100644 +--- a/tools/ss_helpers.hh ++++ b/tools/ss_helpers.hh +@@ -10,7 +10,11 @@ extern "C" void xmlLogger(void* logger, char const* msg, ...) { if (logger) *(st + void enableXMLLogger(std::ostream& os = std::cerr) { xmlSetGenericErrorFunc(&os, xmlLogger); } + void disableXMLLogger() { xmlSetGenericErrorFunc(NULL, xmlLogger); } + ++#if BOOST_FILESYSTEM_VERSION < 3 + std::string filename(boost::filesystem::path const& p) { return *--p.end(); } ++#else ++std::string filename(boost::filesystem::path const& p) { return p.filename().string(); } ++#endif + + /** Fix Singstar's b0rked XML **/ + std::string xmlFix(std::vector<char> const& data) { +-- +1.7.4.1 + diff --git a/community-staging/performous/ffmpeg-0.11.patch b/community-staging/performous/ffmpeg-0.11.patch new file mode 100644 index 000000000..2962123ed --- /dev/null +++ b/community-staging/performous/ffmpeg-0.11.patch @@ -0,0 +1,42 @@ +diff -ru Performous-0.6.1-Source/game/ffmpeg.cc Performous-0.6.1a-Source/game/ffmpeg.cc +--- Performous-0.6.1-Source/game/ffmpeg.cc 2010-10-31 16:05:43.000000000 +0000 ++++ Performous-0.6.1a-Source/game/ffmpeg.cc 2012-06-08 21:40:10.876636789 +0000 +@@ -47,11 +47,17 @@ + return d >= 0.0 ? d : getInf(); + } + ++// FFMPEG has fluctuating API ++#if LIBAVCODEC_VERSION_INT < ((52<<16)+(64<<8)+0) ++#define AVMEDIA_TYPE_VIDEO CODEC_TYPE_VIDEO ++#define AVMEDIA_TYPE_AUDIO CODEC_TYPE_AUDIO ++#endif ++ + void FFmpeg::open() { + boost::mutex::scoped_lock l(s_avcodec_mutex); + av_register_all(); + av_log_set_level(AV_LOG_ERROR); +- if (av_open_input_file(&pFormatCtx, m_filename.c_str(), NULL, 0, NULL)) throw std::runtime_error("Cannot open input file"); ++ if (avformat_open_input(&pFormatCtx, m_filename.c_str(), NULL, NULL)) throw std::runtime_error("Cannot open input file"); + if (av_find_stream_info(pFormatCtx) < 0) throw std::runtime_error("Cannot find stream information"); + pFormatCtx->flags |= AVFMT_FLAG_GENPTS; + videoStream = -1; +@@ -60,8 +66,8 @@ + for (unsigned int i=0; i<pFormatCtx->nb_streams; i++) { + AVCodecContext* cc = pFormatCtx->streams[i]->codec; + cc->workaround_bugs = FF_BUG_AUTODETECT; +- if (videoStream == -1 && cc->codec_type==CODEC_TYPE_VIDEO) videoStream = i; +- if (audioStream == -1 && cc->codec_type==CODEC_TYPE_AUDIO) audioStream = i; ++ if (videoStream == -1 && cc->codec_type==AVMEDIA_TYPE_VIDEO) videoStream = i; ++ if (audioStream == -1 && cc->codec_type==AVMEDIA_TYPE_AUDIO) audioStream = i; + } + if (videoStream == -1 && decodeVideo) throw std::runtime_error("No video stream found"); + if (audioStream == -1 && decodeAudio) throw std::runtime_error("No audio stream found"); +@@ -92,7 +98,7 @@ + pAudioCodecCtx = cc; + #if LIBAVCODEC_VERSION_INT > ((52<<16)+(12<<8)+0) + pResampleCtx = av_audio_resample_init(AUDIO_CHANNELS, cc->channels, m_rate, cc->sample_rate, +- SAMPLE_FMT_S16, SAMPLE_FMT_S16, 16, 10, 0, 0.8); ++ AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_S16, 16, 10, 0, 0.8); + #else + pResampleCtx = audio_resample_init(AUDIO_CHANNELS, cc->channels, m_rate, cc->sample_rate); + #endif diff --git a/community-staging/performous/png15.patch b/community-staging/performous/png15.patch new file mode 100644 index 000000000..b6fb8fb14 --- /dev/null +++ b/community-staging/performous/png15.patch @@ -0,0 +1,33 @@ +diff -ur Performous-0.6.1-Source/cmake/Modules/FindPng.cmake Performous-0.6.1a-Source/cmake/Modules/FindPng.cmake +--- Performous-0.6.1-Source/cmake/Modules/FindPng.cmake 2010-10-31 17:05:44.000000000 +0100 ++++ Performous-0.6.1a-Source/cmake/Modules/FindPng.cmake 2012-01-29 01:07:56.339648832 +0100 +@@ -10,7 +10,7 @@ + + include(LibFindMacros) + +-libfind_pkg_check_modules(Png_PKGCONF Png) ++libfind_pkg_check_modules(Png_PKGCONF libpng) + + find_path(Png_INCLUDE_DIR + NAMES pngconf.h +@@ -18,7 +18,7 @@ + ) + + find_library(Png_LIBRARY +- NAMES png png12 png14 ++ NAMES png png12 png14 png15 + PATHS ${Png_PKGCONF_LIBRARY_DIRS} + ) + +diff -ur Performous-0.6.1-Source/game/image.hh Performous-0.6.1a-Source/game/image.hh +--- Performous-0.6.1-Source/game/image.hh 2010-10-31 17:05:43.000000000 +0100 ++++ Performous-0.6.1a-Source/game/image.hh 2012-01-29 01:44:16.050575186 +0100 +@@ -26,7 +26,7 @@ + } + void loadPNG_internal(png_structp pngPtr, png_infop infoPtr, std::ifstream& file, std::vector<unsigned char>& image, std::vector<png_bytep>& rows, unsigned& w, unsigned& h) { + if (setjmp(png_jmpbuf(pngPtr))) throw std::runtime_error("Reading PNG failed"); +- png_set_read_fn(pngPtr,(voidp)&file, readPngHelper); ++ png_set_read_fn(pngPtr, &file, readPngHelper); + png_read_info(pngPtr, infoPtr); + png_set_expand(pngPtr); // Expand everything to RGB(A) + png_set_strip_16(pngPtr); // Strip everything down to 8 bit/component diff --git a/community-testing/nginx/PKGBUILD b/community-testing/nginx/PKGBUILD new file mode 100644 index 000000000..c9417a8c1 --- /dev/null +++ b/community-testing/nginx/PKGBUILD @@ -0,0 +1,98 @@ +# $Id: PKGBUILD 72073 2012-06-08 08:31:13Z bpiotrowski $ +# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com> +# Maintainer: BartÅ‚omiej Piotrowski <barthalion@gmal.com> +# Contributor: Miroslaw Szot <mss@czlug.icis.pcz.pl> + +pkgname=nginx +pkgver=1.2.1 +pkgrel=2 +pkgdesc="lightweight HTTP server and IMAP/POP3 proxy server" +arch=('i686' 'x86_64') +depends=('pcre' 'zlib' 'openssl') +makedepends=('passenger') +optdepends=('passenger') +url="http://nginx.org" +license=('custom') +backup=('etc/nginx/fastcgi.conf' + 'etc/nginx/fastcgi_params' + 'etc/nginx/koi-win' + 'etc/nginx/koi-utf' + 'etc/nginx/mime.types' + 'etc/nginx/nginx.conf' + 'etc/nginx/scgi_params' + 'etc/nginx/uwsgi_params' + 'etc/nginx/win-utf' + 'etc/logrotate.d/nginx') +source=(http://nginx.org/download/nginx-$pkgver.tar.gz + nginx + nginx.logrotate) +md5sums=('ceacae12d66d1f021bf3737a0269b6f4' + 'f62c7c9b5a53471d4666a4c49ad363fb' + 'b38744739022876554a0444d92e6603b') + +_cfgdir=/etc/nginx +_tmpdir=/var/tmp/nginx + +build() { + cd "$srcdir"/$pkgname-$pkgver + + ./configure \ + --prefix=$_cfgdir \ + --conf-path=$_cfgdir/nginx.conf \ + --sbin-path=/usr/sbin/nginx \ + --pid-path=/var/run/nginx.pid \ + --lock-path=/var/lock/nginx.lock \ + --user=http --group=http \ + --http-log-path=/var/log/nginx/access.log \ + --error-log-path=/var/log/nginx/error.log \ + --http-client-body-temp-path=$_tmpdir/client-body \ + --http-proxy-temp-path=$_tmpdir/proxy \ + --http-fastcgi-temp-path=$_tmpdir/fastcgi \ + --http-scgi-temp-path=$_tmpdir/scgi \ + --http-uwsgi-temp-path=$_tmpdir/uwsgi \ + --with-imap --with-imap_ssl_module \ + --with-ipv6 --with-pcre-jit \ + --with-file-aio \ + --with-http_dav_module \ + --with-http_gzip_static_module \ + --with-http_realip_module \ + --with-http_ssl_module \ + --with-http_stub_status_module \ + --add-module=/usr/lib/passenger/ext/nginx \ + #--with-http_mp4_module \ + #--with-http_realip_module \ + #--with-http_addition_module \ + #--with-http_xslt_module \ + #--with-http_image_filter_module \ + #--with-http_geoip_module \ + #--with-http_sub_module \ + #--with-http_flv_module \ + #--with-http_random_index_module \ + #--with-http_secure_link_module \ + #--with-http_degradation_module \ + #--with-http_perl_module \ + + make +} + +package() { + cd "$srcdir/nginx-${pkgver}" + make DESTDIR="$pkgdir" install + + install -d "$pkgdir"/etc/logrotate.d + install -m644 $srcdir/nginx.logrotate $pkgdir/etc/logrotate.d/nginx + + sed -e 's|\<user\s\+\w\+;|user html;|g' \ + -e '44s|html|/usr/share/nginx/html|' \ + -e '54s|html|/usr/share/nginx/html|' \ + -i $pkgdir/etc/nginx/nginx.conf + + install -d $pkgdir/$_tmpdir + + install -d $pkgdir/usr/share/nginx + mv $pkgdir/etc/nginx/html/ $pkgdir/usr/share/nginx + + install -D -m755 $srcdir/nginx $pkgdir/etc/rc.d/nginx + install -D -m644 LICENSE $pkgdir/usr/share/licenses/nginx/LICENSE + rm -rf $pkgdir/var/run +} diff --git a/community-testing/nginx/nginx b/community-testing/nginx/nginx new file mode 100644 index 000000000..eb9031e81 --- /dev/null +++ b/community-testing/nginx/nginx @@ -0,0 +1,68 @@ +#!/bin/bash + +. /etc/rc.conf +. /etc/rc.d/functions + +function check_config { + stat_busy "Checking nginx configuration" + /usr/sbin/nginx -t -q -c /etc/nginx/nginx.conf + if [ $? -ne 0 ]; then + stat_die + else + stat_done + fi +} + +case "$1" in + start) + check_config + $0 careless_start + ;; + careless_start) + stat_busy "Starting nginx" + if [ -s /var/run/nginx.pid ]; then + stat_fail + # probably ;) + stat_busy "Nginx is already running" + stat_die + fi + /usr/sbin/nginx -c /etc/nginx/nginx.conf &>/dev/null + if [ $? -ne 0 ]; then + stat_fail + else + add_daemon nginx + stat_done + fi + ;; + stop) + stat_busy "Stopping nginx" + PID=$(cat /var/run/nginx.pid) + kill -QUIT $PID &>/dev/null + if [ $? -ne 0 ]; then + stat_fail + else + for i in {1..10}; do + [ -d /proc/$PID ] || { stat_done; rm_daemon nginx; exit 0; } + sleep 1 + done + stat_fail + fi + ;; + restart) + check_config + $0 stop + sleep 1 + $0 careless_start + ;; + reload) + check_config + if [ -s /var/run/nginx.pid ]; then + status "Reloading nginx configuration" kill -HUP $(cat /var/run/nginx.pid) + fi + ;; + check) + check_config + ;; + *) + echo "usage: $0 {start|stop|restart|reload|check|careless_start}" +esac diff --git a/community-testing/nginx/nginx.logrotate b/community-testing/nginx/nginx.logrotate new file mode 100644 index 000000000..d490d5d9b --- /dev/null +++ b/community-testing/nginx/nginx.logrotate @@ -0,0 +1,8 @@ +/var/log/nginx/*.log { + missingok + sharedscripts + compress + postrotate + test -r /var/run/nginx.pid && kill -USR1 `cat /var/run/nginx.pid` + endscript +} diff --git a/community/bind-geodns/PKGBUILD b/community/bind-geodns/PKGBUILD index 9818bee12..ae70a5b44 100644 --- a/community/bind-geodns/PKGBUILD +++ b/community/bind-geodns/PKGBUILD @@ -1,15 +1,15 @@ -# $Id: PKGBUILD 65058 2012-02-20 02:37:28Z spupykin $ +# $Id: PKGBUILD 72130 2012-06-08 23:51:33Z dreisner $ # Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com> pkgname=bind-geodns pkgver=9.4.1 _pkgver=9.4.1-P1 -pkgrel=5 +pkgrel=6 pkgdesc="bind named server with geoip patch can return ip depending on requester location" arch=(i686 x86_64) url="http://www.caraytech.com/geodns/" license=('custom:ISC') -backup=(etc/named.conf etc/logrotate.d/named etc/conf.d/named etc/rndc.key) +backup=(etc/named.conf etc/logrotate.d/named etc/conf.d/named) depends=('openssl' 'geoip') provides=('dns-server' 'bind' 'dnsutils') conflicts=('bind' 'dnsutils') @@ -63,4 +63,7 @@ build() { chown -R 40:40 $pkgdir/var/named mv $pkgdir/usr/man $pkgdir/usr/share/ + + # avoid conflict with filesystem>=2012.06 + rmdir "$pkgdir/var/run" } diff --git a/community/collectd/PKGBUILD b/community/collectd/PKGBUILD index 23e14844b..363fcd830 100644 --- a/community/collectd/PKGBUILD +++ b/community/collectd/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 71904 2012-06-03 06:03:10Z bisson $ +# $Id: PKGBUILD 72138 2012-06-09 00:34:11Z dreisner $ # Maintainer: Gaetan Bisson <bisson@archlinux.org> # Contributor: Gerhard Brauer <gerhard.brauer@web.de> pkgname=collectd pkgver=5.1.0 -pkgrel=3 +pkgrel=4 pkgdesc='Daemon which collects system performance statistics periodically' url='http://collectd.org/' arch=('i686' 'x86_64') @@ -76,7 +76,10 @@ package() { make DESTDIR="${pkgdir}" install - install -Dm755 ../rc.d "${pkgdir}/etc/rc.d/${pkgname}" - install -Dm644 ../service "${pkgdir}"/usr/lib/systemd/system/collectd.service + install -Dm755 "$srcdir"/rc.d "${pkgdir}/etc/rc.d/${pkgname}" + install -Dm644 "$srcdir"/service "${pkgdir}"/usr/lib/systemd/system/collectd.service install -Dm644 contrib/collectd2html.pl "${pkgdir}"/usr/share/collectd/collectd2html.pl + + # avoid conflict with filesystem>=2012.06 + rmdir "$pkgdir/var/run" } diff --git a/community/courier-authlib/PKGBUILD b/community/courier-authlib/PKGBUILD index 964be4a2a..4e82387ec 100644 --- a/community/courier-authlib/PKGBUILD +++ b/community/courier-authlib/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 70428 2012-05-06 03:21:33Z svenstaro $ +# $Id: PKGBUILD 72136 2012-06-09 00:24:01Z dreisner $ # Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com> # Contributor: tobias <tobias@archlinux.org> # Contributor: Tobias Kieslich <tobias@justdreams.de> pkgname=courier-authlib pkgver=0.64.0 -pkgrel=1 +pkgrel=2 pkgdesc="Authentification library for the courier mailserver(s)" arch=(i686 x86_64) license=('GPL2') @@ -20,8 +20,10 @@ provides=('courier-imap-mysql' 'courier-imap-pgsql' 'courier-imap-ldap') options=(!libtool) install=${pkgname}.install source=(http://downloads.sourceforge.net/project/courier/authlib/${pkgver}/${pkgname}-${pkgver}.tar.bz2 + courier-authlib.tmpfiles authdaemond.rc.d) md5sums=('d946a76e81e45a139543305d310399f6' + 'bef189740e9516b0beaace4e8954ef14' '7de75a9a74796f4fd2e81fd3ca16ed8d') build() { @@ -37,7 +39,7 @@ build() { --with-authpam --with-authpwd --with-authshadow \ --with-authldap --with-authmysql --with-authpgsql \ --with-authuserdb --with-authcram --with-authdaemon \ - --with-authdaemonvar=/var/run/authdaemon + --with-authdaemonvar=/run/authdaemon make } @@ -60,7 +62,6 @@ package() { #chown -R 72:72 ${pkgdir}/var/spool/authdaemon mkdir -p ${pkgdir}/var/spool/courier chown -R 72:72 ${pkgdir}/var/spool/courier - chown -R 72:72 ${pkgdir}/var/run/authdaemon # docs say we can remove .a files after make find ${pkgdir} -name '*\.a' -exec rm -f {} \; # Make libs available to /usr/lib @@ -68,4 +69,9 @@ package() { for lib in courier-authlib/*.so; do ln -s $lib . done + + install -Dm644 "$srcdir/courier-authlib.tmpfiles" "$pkgdir/usr/lib/tmpfiles/courier-authlib.conf" + + # avoid conflict with filesystem>=2012.06 + rmdir "$pkgdir/run/authdaemon" } diff --git a/community/courier-authlib/courier-authlib.install b/community/courier-authlib/courier-authlib.install index cbccc636b..7b29f845f 100644 --- a/community/courier-authlib/courier-authlib.install +++ b/community/courier-authlib/courier-authlib.install @@ -1,12 +1,15 @@ # arg 1: the new package version post_install() { # creates group and user on virgin systems - if [ -z "`grep '^courier::' /etc/group`" ]; then - groupadd -g 72 courier >& /dev/null + if ! getent group courier >/dev/null; then + groupadd -g 72 courier >/dev/null 2>&1 fi - if [ -z "`grep '^courier:' /etc/passwd`" ]; then - useradd -u 72 -d /var/spool/courier -g courier -s /bin/false courier &>/dev/null + + if getent passwd courier >/dev/null; then + useradd -u 72 -d /var/spool/courier -g courier -s /bin/false courier >/dev/null 2>&1 fi + + systemd-tmpfiles --create /usr/lib/tmpfiles/courier-authlib.conf } # arg 1: the new package version @@ -17,16 +20,7 @@ post_upgrade() { # arg 1: the old package version pre_remove() { - userdel courier &> /dev/null - groupdel courier &> /dev/null -} - - -post_remove() { - /bin/true -} - -op=$1 -shift + userdel courier + groupdel courier +} >/dev/null 2>&1 -$op $* diff --git a/community/courier-authlib/courier-authlib.tmpfiles b/community/courier-authlib/courier-authlib.tmpfiles new file mode 100644 index 000000000..887303a4c --- /dev/null +++ b/community/courier-authlib/courier-authlib.tmpfiles @@ -0,0 +1 @@ +d /run/authdaemon 0755 72 72 - diff --git a/community/fcron/PKGBUILD b/community/fcron/PKGBUILD index d2bd49b05..817ceef09 100755 --- a/community/fcron/PKGBUILD +++ b/community/fcron/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 61936 2012-01-11 09:30:32Z ttopper $ +# $Id: PKGBUILD 72128 2012-06-08 23:36:39Z dreisner $ # Contributor: Giorgio Lando <lando at imap dot cc> # Contributor: Sergej Pupykin # Contributor: Thomas Bächler @@ -6,7 +6,7 @@ pkgname=fcron pkgver=3.0.6 -pkgrel=5 +pkgrel=6 pkgdesc="feature-rich cron implementation" arch=(i686 x86_64) url="http://fcron.free.fr" @@ -21,7 +21,7 @@ backup=(etc/fcron/fcron.conf etc/fcron/fcron.allow etc/fcron/fcron.deny \ options=('emptydirs' '!makeflags') source=(http://fcron.free.fr/archives/$pkgname-$pkgver.src.tar.gz fcron.rc \ systab systab.orig run-cron) -md5sums=('69ebcb41921e2a282f41ebecb3a27053' +md5sums=('ced7ca753517eac67502f3fec3908d39' 'e0c3f0bdc3c98fbbe46eff19001c18f2' '938722c6654ef7b07f4aa10001905ba1' 'bfb7daa22ebe22b9917e455c1ca4a382' @@ -67,6 +67,9 @@ package() { # Install run-cron script to make fcron run without dcron install -D -m755 "$srcdir/run-cron" "$pkgdir/usr/sbin/run-cron" + + # avoid conflict with filesystem>=2012.06 + rmdir "$pkgdir/var/run" } # vim:set ts=2 sw=2 et: diff --git a/community/john/PKGBUILD b/community/john/PKGBUILD index ba1edb3c4..5bdfc663a 100644 --- a/community/john/PKGBUILD +++ b/community/john/PKGBUILD @@ -6,13 +6,16 @@ pkgname=john pkgver=1.7.9 -pkgrel=2 +pkgrel=3 _jumbover=5 pkgdesc="John The Ripper - A fast password cracker (jumbo-$_jumbover included)" arch=('i686' 'x86_64') url="http://www.openwall.com/$pkgname/" license=('GPL2' 'custom') depends=('openssl') +optdepends=("perl: for executing some of the scripts at /usr/share/john" + "ruby: for executing some of the scripts at /usr/share/john" + "python: for executing some of the scripts at /usr/share/john") backup=('etc/john/john.conf') source=(http://www.openwall.com/$pkgname/g/$pkgname-$pkgver.tar.bz2 http://www.openwall.com/john/g/john-$pkgver-jumbo-$_jumbover.diff.gz @@ -59,20 +62,40 @@ package() { # docs install -d ${pkgdir}/usr/share/doc/john install -m644 ${srcdir}/john-$pkgver/doc/* ${pkgdir}/usr/share/doc/john/ - install -d ${pkgdir}/usr/share/john/ install -Dm644 ${srcdir}/john-$pkgver/doc/LICENSE ${pkgdir}/usr/share/licenses/$pkgname/LICENSE - # install password list and charset files - install -m644 ${srcdir}/${pkgname}-${pkgver}/run/{{all,alnum,alpha,digits,lanman}.chr,password.lst} \ + # install password list, charset files and other stuff + install -d ${pkgdir}/usr/share/john/ + install -m644 ${srcdir}/${pkgname}-${pkgver}/run/password.lst ${pkgdir}/usr/share/john/ + install -m644 ${srcdir}/${pkgname}-${pkgver}/run/stats ${pkgdir}/usr/share/john/ + install -m644 ${srcdir}/${pkgname}-${pkgver}/run/{all,alnum,alpha,digits,lanman}.chr \ ${pkgdir}/usr/share/john/ install -m644 ${srcdir}/${pkgname}-${pkgver}/run/{dumb16,dumb32,dynamic}.conf \ ${pkgdir}/usr/share/john/ + install -m644 ${srcdir}/${pkgname}-${pkgver}/run/{cmpt_cp,ldif2john,lion2john-alt,lion2john}.pl \ + ${pkgdir}/usr/share/john + install -m644 ${srcdir}/${pkgname}-${pkgver}/run/{netntlm,radius2john,sap_prepare,sha-dump}.pl \ + ${pkgdir}/usr/share/john + install -m644 ${srcdir}/${pkgname}-${pkgver}/run/sha-test.pl \ + ${pkgdir}/usr/share/john + install -m644 ${srcdir}/${pkgname}-${pkgver}/run/genincstats.rb \ + ${pkgdir}/usr/share/john + install -m644 ${srcdir}/${pkgname}-${pkgver}/run/netscreen.py \ + ${pkgdir}/usr/share/john + install -m644 ${srcdir}/${pkgname}-${pkgver}/run/dynamic.conf ${pkgdir}/etc/john/ # install binaries install -Dm755 ${srcdir}/john-$pkgver/run/john ${pkgdir}/usr/bin/john + install -Dm755 ${srcdir}/john-$pkgver/run/calc_stat ${pkgdir}/usr/bin/calc_stat + install -Dm755 ${srcdir}/john-$pkgver/run/genmkvpwd ${pkgdir}/usr/bin/genmkvpwd + install -Dm755 ${srcdir}/john-$pkgver/run/mkvcalcproba ${pkgdir}/usr/bin/mkvcalcproba + install -Dm755 ${srcdir}/john-$pkgver/run/relbench ${pkgdir}/usr/bin/relbench + install -Dm755 ${srcdir}/john-$pkgver/run/tgtsnarf ${pkgdir}/usr/bin/tgtsnarf install -Dm755 ${srcdir}/john-$pkgver/run/mailer ${pkgdir}/usr/bin/john-mailer - cd ${pkgdir}/usr/bin + + # create links + cd ${pkgdir}/usr/bin ln -s john unafs ln -s john unique ln -s john unshadow diff --git a/community/lilyterm/PKGBUILD b/community/lilyterm/PKGBUILD index 49519e01c..ba889afc8 100644 --- a/community/lilyterm/PKGBUILD +++ b/community/lilyterm/PKGBUILD @@ -1,20 +1,21 @@ -# $Id: PKGBUILD 69562 2012-04-18 14:35:46Z kkeen $ +# $Id: PKGBUILD 72085 2012-06-08 12:19:07Z kkeen $ # Maintainer: Kyle Keen <keenerd@gmail.com> # Contributor: TDY <tdy@gmx.com> # Contributor: DonVla <donvla@users.sourceforge.net> # Contributor: Stefan Husmann <stefan-husmann@t-online.de> pkgname=lilyterm -pkgver=0.9.9 +pkgver=0.9.9.1 pkgrel=1 pkgdesc="A light and easy to use libvte based X terminal emulator" arch=('i686' 'x86_64') url="http://lilyterm.luna.com.tw/index_en.html" +_watch="http://lilyterm.luna.com.tw/html/download.html" license=('GPL3') depends=('vte') makedepends=('gettext' 'intltool' 'pkgconfig>=0.16') source=(http://lilyterm.luna.com.tw/file/$pkgname-$pkgver.tar.gz) -md5sums=('ae89dca908951ce2fafa60b90c892d1a') +md5sums=('2ba6e18ed7c17463d5451338ca5229a5') build() { cd "$srcdir/lilyterm-$pkgver" diff --git a/community/luarocks/PKGBUILD b/community/luarocks/PKGBUILD index 86ce9f42c..ef6b63eb7 100644 --- a/community/luarocks/PKGBUILD +++ b/community/luarocks/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 68146 2012-03-18 18:24:42Z cbrannon $ +# $Id: PKGBUILD 72118 2012-06-08 21:45:36Z cbrannon $ # Maintainer: Chris Brannon <cmbrannon79@gmail.com> # Contributor: Geoffroy Carrier <geoffroy@archlinux.org> pkgname=luarocks -pkgver=2.0.8 +pkgver=2.0.9 pkgrel=1 pkgdesc='Deployment and management system for Lua modules' arch=('i686' 'x86_64') @@ -33,4 +33,4 @@ package() { install -D COPYING "$pkgdir/usr/share/licenses/$pkgname/LICENSE" } -md5sums=('07cf84e352d86fe161f7b2ec43f360cc') +md5sums=('78dceb5c513fd241665688ecd229ff51') diff --git a/community/miredo/PKGBUILD b/community/miredo/PKGBUILD index 31dae918c..8499bfcd8 100644 --- a/community/miredo/PKGBUILD +++ b/community/miredo/PKGBUILD @@ -1,17 +1,16 @@ -# $Id: PKGBUILD 62679 2012-01-24 12:52:57Z spupykin $ +# $Id: PKGBUILD 72132 2012-06-08 23:58:54Z dreisner $ # Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com> pkgname=miredo pkgver=1.2.4 -pkgrel=1 +pkgrel=2 pkgdesc="Teredo client and server." arch=('i686' 'x86_64') url="http://www.remlab.net/miredo/" license=('GPL') depends=(judy iproute2) backup=('etc/miredo/miredo.conf' - 'etc/miredo/miredo-server.conf' - 'etc/miredo/isatapd.conf') + 'etc/miredo/client-hook') source=(http://www.remlab.net/files/${pkgname}/${pkgname}-${pkgver}.tar.bz2 isatapd.rc.d miredo.install @@ -34,4 +33,8 @@ build() { install -D -m755 $srcdir/miredo-server.rc.d $pkgdir/etc/rc.d/miredo-server install -D -m755 $srcdir/isatapd.rc.d $pkgdir/etc/rc.d/isatapd sed -i 's#/sbin/ip#/usr/sbin/ip#' $pkgdir/etc/miredo/client-hook + + # avoid conflict with filesystem>=2012.06 + rmdir "$pkgdir/var/run" } + diff --git a/community/mldonkey/PKGBUILD b/community/mldonkey/PKGBUILD index c8385d68d..dc2546d63 100644 --- a/community/mldonkey/PKGBUILD +++ b/community/mldonkey/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 69477 2012-04-16 17:52:09Z cbrannon $ +# $Id: PKGBUILD 72119 2012-06-08 21:46:06Z cbrannon $ # Maintainer: Chris Brannon <cmbrannon79@gmail.com> # Contributor: Corrado Primier <bardo@aur.archlinux.org> # Contributor: Alessio 'mOLOk' Bolognino <themolok@gmail.com> pkgname=mldonkey -pkgver=3.1.1 +pkgver=3.1.2 pkgrel=1 pkgdesc="A multi-network P2P client" arch=('i686' 'x86_64') @@ -39,6 +39,6 @@ package() { install -Dm644 "distrib/mldonkey.desktop" \ "$pkgdir/usr/share/applications/mldonkey.desktop" } -md5sums=('5954ee7cfae18afb2732549fd990e7d6' +md5sums=('85e6a0fe358b8c71a71da6d979c9760f' '9e90003a012cf17b548dcc647961ffa6' '1f86d92db51c62cded0e6f3833057dee') diff --git a/community/ndisc6/PKGBUILD b/community/ndisc6/PKGBUILD index df7d0ce45..d25c3a9d8 100644 --- a/community/ndisc6/PKGBUILD +++ b/community/ndisc6/PKGBUILD @@ -1,26 +1,29 @@ -# $Id: PKGBUILD 60785 2011-12-17 22:54:36Z cbrannon $ +# $Id: PKGBUILD 72134 2012-06-09 00:04:05Z heftig $ # Maintainer: Chris Brannon <chris@the-brannons.com> # Contributor: Mark Smith <markzzzsmith@yahoo.com.au> pkgname=ndisc6 pkgver=1.0.2 -pkgrel=2 +pkgrel=3 pkgdesc="A collection of IPv6 networking utilities - ndisc6, rdisc6, tcptraceroute6, tracert6, rltraceroute6, tcpspray6" arch=('i686' 'x86_64') url="http://www.remlab.net/ndisc6/" license=("GPL") depends=('glibc' 'perl') makedepends=('glibc' 'gcc') -options=(emptydirs) +options=(!emptydirs) +install=ndisc6.install source=(http://www.remlab.net/files/ndisc6/$pkgname-$pkgver.tar.bz2 rdnssd.rc.d rdnssd.confd) +md5sums=('50cb4c19606cf6ff2b7388e71832f579' + '3421fd731c4da4f9e07fc6b6ff4e5084' + 'f1910902932e2622fc166960819db6c4') build() { cd "$srcdir/$pkgname-$pkgver" ./configure --localstatedir=/var --sysconfdir=/etc --prefix=/usr make - } package() { @@ -29,10 +32,7 @@ package() { make DESTDIR="$pkgdir" install install -Dm755 "$srcdir/rdnssd.rc.d" "$pkgdir/etc/rc.d/rdnssd" install -Dm644 "$srcdir/rdnssd.confd" "$pkgdir/etc/conf.d/rdnssd" - install -Dm644 /dev/null "$pkgdir/usr/lib/tmpfiles.d/$pkgname.conf" - echo "d /var/run/rdnssd 0755 nobody root" > "$pkgdir/usr/lib/tmpfiles.d/$pkgname.conf" -} -md5sums=('50cb4c19606cf6ff2b7388e71832f579' - '3421fd731c4da4f9e07fc6b6ff4e5084' - 'f1910902932e2622fc166960819db6c4') + install -d "$pkgdir/usr/lib/tmpfiles.d" + echo "d /run/rdnssd 0755 nobody root" > "$pkgdir/usr/lib/tmpfiles.d/ndisc6.conf" +} diff --git a/community/ndisc6/ndisc6.install b/community/ndisc6/ndisc6.install new file mode 100644 index 000000000..086fb6829 --- /dev/null +++ b/community/ndisc6/ndisc6.install @@ -0,0 +1,3 @@ +post_install() { + systemd-tmpfiles --create usr/lib/tmpfiles.d/ndisc6.conf +} diff --git a/community/privoxy/PKGBUILD b/community/privoxy/PKGBUILD index 5554745b8..ca5b69c3f 100644 --- a/community/privoxy/PKGBUILD +++ b/community/privoxy/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 69634 2012-04-20 19:51:27Z lfleischer $ +# $Id: PKGBUILD 72126 2012-06-08 23:13:24Z dreisner $ # Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de> # Contributor: Juergen Hoetzel <juergen@hoetzel.info> # Contributor: basilburn (basilburn), Paul Bredbury (brebs) pkgname=privoxy pkgver=3.0.19 -pkgrel=3 +pkgrel=4 pkgdesc='A web proxy with advanced filtering capabilities.' arch=('i686' 'x86_64') url='http://www.privoxy.org' @@ -61,4 +61,7 @@ package() { find "${pkgdir}/etc/privoxy/" -type d | xargs chmod 0770 find "${pkgdir}/etc/privoxy/" -type f | xargs chmod 0660 chmod 0700 "${pkgdir}/var/log/privoxy" + + # avoid conflict with filesystem>=2012.06 + rmdir "$pkgdir/var/run" } diff --git a/community/python-pyxmpp/PKGBUILD b/community/python-pyxmpp/PKGBUILD index 97c1d1b37..bc59379b7 100644 --- a/community/python-pyxmpp/PKGBUILD +++ b/community/python-pyxmpp/PKGBUILD @@ -1,20 +1,20 @@ -# $Id: PKGBUILD 56515 2011-10-07 20:09:45Z spupykin $ +# $Id: PKGBUILD 72079 2012-06-08 09:35:38Z spupykin $ # Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com> # Contributor: William Rea <sillywilly@gmail.com> pkgname=python-pyxmpp pkgver=1.1.2 -pkgrel=1 +pkgrel=2 pkgdesc="A Python XMPP and Jabber implementation based on libxml2" arch=('i686' 'x86_64') url="http://pyxmpp.jajcus.net/" license=('LGPL') -depends=('python-dnspython' 'libxml2' 'python-m2crypto') +depends=('python2-dnspython' 'libxml2' 'python-m2crypto') source=(http://pyxmpp.jajcus.net/downloads/pyxmpp-$pkgver.tar.gz) md5sums=('a38abf032aca0408b6055cd94296eb75') build() { - cd $startdir/src/pyxmpp-$pkgver + cd $srcdir/pyxmpp-$pkgver python2 setup.py build python2 setup.py install --root=$pkgdir } diff --git a/community/soundkonverter/PKGBUILD b/community/soundkonverter/PKGBUILD index 9692a9a2e..4e14296cf 100644 --- a/community/soundkonverter/PKGBUILD +++ b/community/soundkonverter/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 71704 2012-06-01 13:28:02Z stativ $ +# $Id: PKGBUILD 72096 2012-06-08 16:40:09Z stativ $ # Maintainer: Lukas Jirkovsky <l.jirkovsky@gmail.com> # Contributor: Mateusz Herych <heniekk@gmail.com> # Contributor: Eric Belanger <eric@archlinux.org> # Contributor: Darwin Bautista <djclue917@gmail.com> pkgname=soundkonverter -pkgver=1.6.0 +pkgver=1.6.1 pkgrel=1 pkgdesc="Front-end to various audio converters" arch=('i686' 'x86_64') @@ -31,7 +31,7 @@ optdepends=('cdrkit: cdda2wav backend' 'wavpack: wavpack backend') install=$pkgname.install source=("http://kde-apps.org/CONTENT/content-files/29024-${pkgname}-${pkgver}.tar.gz") -md5sums=('1d2a171b1a1c9d186cd5a644ba9fc686') +md5sums=('7a92fef5efc67b40358d3a11030bae1f') build() { cd "$srcdir"/$pkgname-$pkgver diff --git a/community/soundkonverter/soundkonverter.install b/community/soundkonverter/soundkonverter.install index 725fc0c5d..0e8feb79c 100644 --- a/community/soundkonverter/soundkonverter.install +++ b/community/soundkonverter/soundkonverter.install @@ -1,12 +1,12 @@ post_install() { - xdg-icon-resource forceupdate --theme hicolor &> /dev/null + xdg-icon-resource forceupdate --theme hicolor &> /dev/null } post_upgrade() { - post_install + post_install } post_remove() { - post_install + post_install } diff --git a/extra/apache/PKGBUILD b/extra/apache/PKGBUILD index d4c54eb94..fd13bdd73 100644 --- a/extra/apache/PKGBUILD +++ b/extra/apache/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 149928 2012-02-11 23:28:51Z allan $ +# $Id: PKGBUILD 161295 2012-06-08 23:50:11Z heftig $ # Maintainer: Jan de Groot <jgc@archlinux.org> # Contributor: Andrea Scarpino <andrea@archlinux.org> # Contributor: Pierre Schmitz <pierre@archlinux.de> pkgname=apache pkgver=2.2.22 -pkgrel=3 +pkgrel=4 pkgdesc='A high performance Unix-based HTTP server' arch=('i686' 'x86_64') options=('!libtool') @@ -18,6 +18,7 @@ backup=(etc/conf.d/apache etc/httpd/conf/httpd.conf etc/logrotate.d/httpd) depends=('openssl' 'zlib' 'apr-util' 'pcre') optdepends=('lynx: apachectl status') +install=apache.install _itkurl=http://mpm-itk.sesse.net/apache2.2-mpm-itk-2.2.17-01 source=(http://www.apache.org/dist/httpd/httpd-${pkgver}.tar.bz2 http://www.apache.org/dist/httpd/httpd-${pkgver}.tar.bz2.asc @@ -33,6 +34,7 @@ source=(http://www.apache.org/dist/httpd/httpd-${pkgver}.tar.bz2 ${_itkurl}/11-fix-htaccess-reads-for-persistent-connections.patch apachectl-confd.patch apache.conf.d + apache.tmpfiles.conf httpd.logrotate httpd arch.layout @@ -51,6 +53,7 @@ md5sums=('9fe3093194c8a57f085ff7c3fc43715f' '1e5b222edcfbf99a3edc56fcb2074fbe' '4ac64df6e019edbe137017cba1ff2f51' '08b3c875f6260644f2f52b4056d656b0' + '82068753dab92fe86312b1010a2904d7' '6382331e9700ed9e8cc78ea51887b537' 'c7e300a287ef7e2e066ac7639536f87e' '3d659d41276ba3bfcb20c231eb254e0c' @@ -126,6 +129,7 @@ build() { install -D -m755 "${srcdir}/httpd" "${pkgdir}/etc/rc.d/httpd" install -D -m644 "${srcdir}/httpd.logrotate" "${pkgdir}/etc/logrotate.d/httpd" install -D -m644 "${srcdir}/apache.conf.d" "${pkgdir}/etc/conf.d/apache" + install -D -m644 "${srcdir}/apache.tmpfiles.conf" "${pkgdir}/usr/lib/tmpfiles.d/apache.conf" # symlinks for /etc/httpd ln -fs /var/log/httpd "${pkgdir}/etc/httpd/logs" @@ -147,4 +151,5 @@ build() { rm -rf "${pkgdir}/etc/httpd/conf/original" rm -rf "${pkgdir}/srv/" rm -rf "${pkgdir}/usr/bin" + rm -rf "${pkgdir}/var/run" } diff --git a/extra/apache/apache.install b/extra/apache/apache.install new file mode 100644 index 000000000..9b74e607c --- /dev/null +++ b/extra/apache/apache.install @@ -0,0 +1,3 @@ +post_install() { + systemd-tmpfiles --create usr/lib/tmpfiles.d/apache.conf +} diff --git a/extra/apache/apache.tmpfiles.conf b/extra/apache/apache.tmpfiles.conf new file mode 100644 index 000000000..744775282 --- /dev/null +++ b/extra/apache/apache.tmpfiles.conf @@ -0,0 +1 @@ +d /run/httpd 0755 root root - diff --git a/extra/dansguardian/PKGBUILD b/extra/dansguardian/PKGBUILD index 07fe2cf16..8e4393bbe 100644 --- a/extra/dansguardian/PKGBUILD +++ b/extra/dansguardian/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 149944 2012-02-11 23:30:32Z allan $ +# $Id: PKGBUILD 161292 2012-06-08 23:30:21Z dreisner $ # Maintainer: Kevin Piche <kevin@archlinux.org> # Contributor: Manolis Tzanidakis pkgname=dansguardian pkgver=2.10.1.1 -pkgrel=3 +pkgrel=4 pkgdesc="Squid plugin for web content filtering." url="http://dansguardian.org" arch=('i686' 'x86_64') @@ -32,6 +32,7 @@ package() { install -D data/scripts/dansguardian ${pkgdir}/etc/logrotate.d/dansguardian install -D -m755 ${srcdir}/dansguardian ${pkgdir}/etc/rc.d/dansguardian + rmdir "$pkgdir/var/run" } backup=(etc/dansguardian/dansguardian.conf diff --git a/extra/dovecot/PKGBUILD b/extra/dovecot/PKGBUILD index 447c5564a..94c123d16 100644 --- a/extra/dovecot/PKGBUILD +++ b/extra/dovecot/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 160808 2012-06-06 13:17:41Z andyrtr $ +# $Id: PKGBUILD 161275 2012-06-08 13:30:23Z andyrtr $ # Maintainer: Andreas Radke <andyrtr@archlinux.org> # Contributor: Paul Mattal <paul@mattal.com> # Contributor: Federico Quagliata (quaqo) <quaqo@despammed.com> @@ -6,7 +6,7 @@ pkgname=dovecot pkgver=2.1.7 -pkgrel=3 +pkgrel=4 pkgdesc="An IMAP and POP3 server written with security primarily in mind" arch=('i686' 'x86_64') url="http://dovecot.org/" @@ -25,7 +25,7 @@ source=(http://dovecot.org/releases/2.1/${pkgname}-${pkgver}.tar.gz{,.sig} md5sums=('b52d0faf1b9ec21bc5552691fe0ff1d1' '391cd5f98442ef446916c0f3b671d3f7' '587159e84e2da6f83d70b3c706ba87cc' - 'f40857555bd65add2e86c89fe3242357') + '342a28251d40f983c98c0d1f1bf3d07d') build() { cd ${srcdir}/$pkgname-$pkgver diff --git a/extra/dovecot/dovecot.tmpfilesd b/extra/dovecot/dovecot.tmpfilesd index 4fb276d5f..cb3e8f523 100644 --- a/extra/dovecot/dovecot.tmpfilesd +++ b/extra/dovecot/dovecot.tmpfilesd @@ -1 +1 @@ -d /var/run/dovecot 0755 root dovecot - +d /var/run/dovecot 0755 root dovecot - diff --git a/extra/eog/PKGBUILD b/extra/eog/PKGBUILD index 0d6492879..df9c03b32 100644 --- a/extra/eog/PKGBUILD +++ b/extra/eog/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 157385 2012-04-28 09:26:16Z allan $ +# $Id: PKGBUILD 161285 2012-06-08 22:49:59Z ibiru $ # Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com> # Contributor: Jan de Groot <jgc@archlinux.org> pkgname=eog -pkgver=3.4.1 -pkgrel=2 +pkgver=3.4.2 +pkgrel=1 pkgdesc="Eye of Gnome: An image viewing and cataloging program" arch=('i686' 'x86_64') license=('GPL') @@ -15,7 +15,7 @@ groups=('gnome-extra') options=('!emptydirs' '!libtool') url="http://www.gnome.org" source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz) -sha256sums=('cf29997ee065341fa323abc849732bfa18ab564cc0d931d61eaa473953d3e216') +sha256sums=('8dd79cd2118ba6055efc4ebe815bdeeeb3c1310bb915035c1a56ef3188c75d5a') build() { cd "$pkgname-$pkgver" diff --git a/extra/kactivities/PKGBUILD b/extra/kactivities/PKGBUILD index a2d8be086..9947b9c73 100644 --- a/extra/kactivities/PKGBUILD +++ b/extra/kactivities/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 158375 2012-05-03 22:30:53Z andrea $ +# $Id: PKGBUILD 161089 2012-06-08 06:34:17Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgname=kactivities -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 arch=('i686' 'x86_64') pkgdesc='API for using and interacting with Activities' @@ -11,7 +11,7 @@ license=('GPL' 'FDL') depends=('kdelibs') makedepends=('cmake' 'automoc4') source=("http://download.kde.org/stable/${pkgver}/src/${pkgname}-${pkgver}.tar.xz") -sha1sums=('de382701c5a9f8c04de78124a4b2c19f3707656c') +sha1sums=('3f42c18bae5a1d6bbd7fca471d8b4f9755875e06') build() { cd "${srcdir}" diff --git a/extra/kdeaccessibility-jovie/PKGBUILD b/extra/kdeaccessibility-jovie/PKGBUILD index feb2f952a..8e5518c71 100644 --- a/extra/kdeaccessibility-jovie/PKGBUILD +++ b/extra/kdeaccessibility-jovie/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 158395 2012-05-03 22:31:31Z andrea $ +# $Id: PKGBUILD 161131 2012-06-08 06:35:33Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgname=kdeaccessibility-jovie -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 arch=('i686' 'x86_64') pkgdesc='A text to speech application' @@ -14,7 +14,7 @@ makedepends=('cmake' 'automoc4') replaces=('kdeaccessibility-kttsd') install=${pkgname}.install source=("http://download.kde.org/stable/${pkgver}/src/jovie-${pkgver}.tar.xz") -sha1sums=('d8ec774abfc4ec4f8e43103365b37ef99f62aa3f') +sha1sums=('d9d829c09312bc6f962c36521629ba1bee8f1431') build() { cd "${srcdir}" diff --git a/extra/kdeaccessibility-kaccessible/PKGBUILD b/extra/kdeaccessibility-kaccessible/PKGBUILD index 2767ba84d..a05c4f56b 100644 --- a/extra/kdeaccessibility-kaccessible/PKGBUILD +++ b/extra/kdeaccessibility-kaccessible/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 158397 2012-05-03 22:31:35Z andrea $ +# $Id: PKGBUILD 161133 2012-06-08 06:35:39Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgname=kdeaccessibility-kaccessible -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 arch=('i686' 'x86_64') pkgdesc='Provides accessibility services like focus tracking and a screenreader' @@ -12,7 +12,7 @@ groups=('kde' 'kdeaccessibility') depends=('kdelibs' 'speech-dispatcher') makedepends=('cmake' 'automoc4') source=("http://download.kde.org/stable/${pkgver}/src/kaccessible-${pkgver}.tar.xz") -sha1sums=('50b2c1b5df4652c7ba078820d1e073ef14c8b9ee') +sha1sums=('d467fa3857b2c5a2aa3a5421b5d7c74fe3c7f981') build() { cd "${srcdir}" diff --git a/extra/kdeaccessibility-kmag/PKGBUILD b/extra/kdeaccessibility-kmag/PKGBUILD index fee84e809..796a75813 100644 --- a/extra/kdeaccessibility-kmag/PKGBUILD +++ b/extra/kdeaccessibility-kmag/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 158399 2012-05-03 22:31:39Z andrea $ +# $Id: PKGBUILD 161135 2012-06-08 06:35:44Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgname=kdeaccessibility-kmag -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 arch=('i686' 'x86_64') pkgdesc='Screen Magnifier' @@ -13,7 +13,7 @@ depends=('kdebase-runtime') makedepends=('cmake' 'automoc4') install=${pkgname}.install source=("http://download.kde.org/stable/${pkgver}/src/kmag-${pkgver}.tar.xz") -sha1sums=('20a72ae6eaf120bdc6449f8bf048688ade5c584a') +sha1sums=('7b5b51422d4241d6303841805a04b2eace0c7a2d') build() { cd "${srcdir}" diff --git a/extra/kdeaccessibility-kmousetool/PKGBUILD b/extra/kdeaccessibility-kmousetool/PKGBUILD index edc407e50..5508402d1 100644 --- a/extra/kdeaccessibility-kmousetool/PKGBUILD +++ b/extra/kdeaccessibility-kmousetool/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 158401 2012-05-03 22:31:42Z andrea $ +# $Id: PKGBUILD 161137 2012-06-08 06:35:50Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgname=kdeaccessibility-kmousetool -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 arch=('i686' 'x86_64') pkgdesc='Clicks the mouse for you, reducing the effects of RSI' @@ -13,7 +13,7 @@ depends=('kdebase-runtime') makedepends=('cmake' 'automoc4') install=${pkgname}.install source=("http://download.kde.org/stable/${pkgver}/src/kmousetool-${pkgver}.tar.xz") -sha1sums=('95f888155714dbec9a886ab86c247eb695ea2999') +sha1sums=('6667336267a3a65bf0b33a8454299558ad458108') build() { cd "${srcdir}" diff --git a/extra/kdeaccessibility-kmouth/PKGBUILD b/extra/kdeaccessibility-kmouth/PKGBUILD index cf72c9ee1..34e069ab8 100644 --- a/extra/kdeaccessibility-kmouth/PKGBUILD +++ b/extra/kdeaccessibility-kmouth/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 158403 2012-05-03 22:31:46Z andrea $ +# $Id: PKGBUILD 161139 2012-06-08 06:35:54Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgname=kdeaccessibility-kmouth -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 arch=('i686' 'x86_64') pkgdesc='Speech Synthesizer Frontend' @@ -13,7 +13,7 @@ depends=('kdebase-runtime') makedepends=('cmake' 'automoc4') install=${pkgname}.install source=("http://download.kde.org/stable/${pkgver}/src/kmouth-${pkgver}.tar.xz") -sha1sums=('2bf8356df5207de3a7c95a931070fb6b2d0fba6f') +sha1sums=('104bb2c434deabbaa57326fe567fc90c4067f36c') build() { cd "${srcdir}" diff --git a/extra/kdeadmin/PKGBUILD b/extra/kdeadmin/PKGBUILD index 41cbb99a3..ad81559e0 100644 --- a/extra/kdeadmin/PKGBUILD +++ b/extra/kdeadmin/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 158405 2012-05-03 22:31:50Z andrea $ +# $Id: PKGBUILD 161141 2012-06-08 06:35:57Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> # Contributor: Pierre Schmitz <pierre@archlinux.de> @@ -7,7 +7,7 @@ pkgname=('kdeadmin-kcron' 'kdeadmin-ksystemlog' 'kdeadmin-kuser' 'kdeadmin-system-config-printer-kde') -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 arch=('i686' 'x86_64') url='http://www.kde.org' @@ -16,7 +16,7 @@ groups=('kde' 'kdeadmin') makedepends=('cmake' 'automoc4' 'kdebindings-python2' 'system-config-printer-common') source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.xz" 'syslog-path.patch') -sha1sums=('6de6dd896c43fa6825e569b1c1eea522454e152c' +sha1sums=('b825e40b29b4ae684265cb13b7935737d7ae6d68' '20095ce6e0f3e5b6800a7c6e52de6fddba62c031') build() { diff --git a/extra/kdeartwork/PKGBUILD b/extra/kdeartwork/PKGBUILD index 1b863058b..ef77cf303 100644 --- a/extra/kdeartwork/PKGBUILD +++ b/extra/kdeartwork/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 158407 2012-05-03 22:31:52Z andrea $ +# $Id: PKGBUILD 161143 2012-06-08 06:35:59Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> # Contributor: Pierre Schmitz <pierre@archlinux.de> @@ -13,7 +13,7 @@ pkgname=('kdeartwork-aurorae' 'kdeartwork-styles' 'kdeartwork-wallpapers' 'kdeartwork-weatherwallpapers') -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 arch=('i686' 'x86_64') url='http://www.kde.org' @@ -22,7 +22,7 @@ groups=('kde' 'kdeartwork') makedepends=('cmake' 'automoc4' 'xscreensaver' 'eigen' 'kdebase-workspace' 'libkexiv2') source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.xz") -sha1sums=('fa2dd6f3a1b9e82564b1250be003577c4ef77185') +sha1sums=('c7e15538d3141af8673d16f498c6af7bff62a87f') build() { cd $srcdir diff --git a/extra/kdebase-konsole/PKGBUILD b/extra/kdebase-konsole/PKGBUILD index 56ff6f5e5..2bd6d24fb 100644 --- a/extra/kdebase-konsole/PKGBUILD +++ b/extra/kdebase-konsole/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 158409 2012-05-03 22:31:58Z andrea $ +# $Id: PKGBUILD 161145 2012-06-08 06:36:02Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgname=kdebase-konsole -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 arch=('i686' 'x86_64') url='http://kde.org/applications/system/konsole/' @@ -12,7 +12,7 @@ groups=('kde' 'kdebase') depends=('kdebase-runtime' 'kdebase-lib') makedepends=('cmake' 'automoc4') source=("http://download.kde.org/stable/${pkgver}/src/konsole-${pkgver}.tar.xz") -sha1sums=('f9dff6e2d66c7533474146b6a4b19112f866796b') +sha1sums=('a5900aa089a28fcaa69b45cfc7b46f556a38bd11') build() { cd "${srcdir}" diff --git a/extra/kdebase-runtime/PKGBUILD b/extra/kdebase-runtime/PKGBUILD index b5f95733e..217024665 100644 --- a/extra/kdebase-runtime/PKGBUILD +++ b/extra/kdebase-runtime/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 158353 2012-05-03 22:30:13Z andrea $ +# $Id: PKGBUILD 161091 2012-06-08 06:34:21Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> # Contributor: Pierre Schmitz <pierre@archlinux.de> pkgname=kdebase-runtime -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 pkgdesc="KDE Base Runtime Environment" arch=('i686' 'x86_64') @@ -16,7 +16,7 @@ optdepends=('htdig: to build the search index in khelpcenter' 'gdb: drkonq crash handler') install="${pkgname}.install" source=("http://download.kde.org/stable/${pkgver}/src/kde-runtime-${pkgver}.tar.xz") -sha1sums=('500ada503708aa89e2cbfa3ddb6353c3d350d96f') +sha1sums=('557fada748de52e5275058c50ec3cf8a652c0001') build() { cd "${srcdir}" diff --git a/extra/kdebase-workspace/PKGBUILD b/extra/kdebase-workspace/PKGBUILD index 96d585512..ae02c190b 100644 --- a/extra/kdebase-workspace/PKGBUILD +++ b/extra/kdebase-workspace/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 158761 2012-05-09 08:46:41Z andrea $ +# $Id: PKGBUILD 161113 2012-06-08 06:35:06Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> # Contributor: Pierre Schmitz <pierre@archlinux.de> pkgname=kdebase-workspace _pkgname=kde-workspace -pkgver=4.8.3 -pkgrel=2 +pkgver=4.8.4 +pkgrel=1 pkgdesc="KDE Base Workspace" arch=('i686' 'x86_64') url='http://www.kde.org' @@ -18,7 +18,7 @@ depends=('kdepim-runtime' 'lm_sensors' 'libraw1394' 'libqalculate' 'qimageblitz' 'polkit-kde' 'consolekit' 'xorg-xprop' 'libxdamage' 'libxklavier' 'xorg-xsetroot' 'libxcomposite' 'libxinerama' 'xorg-xrdb' 'libgles' 'libegl' 'kactivities' 'libxres' 'libxtst' - 'xorg-xrandr' 'xorg-xmessage') + 'xorg-xrandr' 'xorg-xmessage' 'libusb-compat') makedepends=('cmake' 'automoc4' 'boost' 'kdebindings-python2' 'networkmanager') optdepends=('kde-wallpapers: wallpapers for KDE Plasma Workspaces') install="${pkgname}.install" @@ -29,17 +29,15 @@ backup=('usr/share/config/kdm/kdmrc' options=('emptydirs') source=("http://download.kde.org/stable/${pkgver}/src/${_pkgname}-${pkgver}.tar.xz" 'kdm' 'kde.pam' 'kde-np.pam' 'kscreensaver.pam' - 'fixpath.patch' 'terminate-server.patch' 'kdm-xinitrd.patch' - 'fix-krunner-crash.patch') -sha1sums=('23dbd023f76769ba6ea77dbc11314eca504ad3d2' + 'fixpath.patch' 'terminate-server.patch' 'kdm-xinitrd.patch') +sha1sums=('a732ceacf34dfb79c8ab243f17cd5a70b9183212' '5db3a245201bd4a50e65aa2ef583cf5490e4f646' '712a90999bd429883dcef5dcaf288aace332ced8' 'b321b5e613b60231330e606fdf1e124646148388' '106635aa1aae51d6f0668b1853f6c49a4fe9d3d8' 'd7b5883f7e65c6839b1f65f94d58026673dd0226' 'ac7bc292c865bc1ab8c02e6341aa7aeaf1a3eeee' - 'd509dac592bd8b310df27991b208c95b6d907514' - 'f898561d2b32dead8195f0610141edf7d423d46c') + 'd509dac592bd8b310df27991b208c95b6d907514') build() { cd "${srcdir}"/${_pkgname}-${pkgver} @@ -47,8 +45,6 @@ build() { patch -p0 -i "${srcdir}"/fixpath.patch patch -p0 -i "${srcdir}"/terminate-server.patch - patch -p1 -i "${srcdir}"/fix-krunner-crash.patch - cd "${srcdir}" mkdir build cd build diff --git a/extra/kdebase/PKGBUILD b/extra/kdebase/PKGBUILD index 46a8341a6..3bf1b080f 100644 --- a/extra/kdebase/PKGBUILD +++ b/extra/kdebase/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 158379 2012-05-03 22:31:05Z andrea $ +# $Id: PKGBUILD 161115 2012-06-08 06:35:09Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> # Contributor: Pierre Schmitz <pierre@archlinux.de> @@ -12,7 +12,7 @@ pkgname=('kdebase-dolphin' 'kdebase-konqueror' 'kdebase-lib' 'kdebase-plasma') -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 arch=('i686' 'x86_64') url='http://www.kde.org' @@ -20,7 +20,7 @@ license=('GPL' 'LGPL' 'FDL') groups=('kde' 'kdebase') makedepends=('kdelibs' 'cmake' 'automoc4' 'tidyhtml') source=("http://download.kde.org/stable/${pkgver}/src/kde-baseapps-${pkgver}.tar.xz") -sha1sums=('593053e7fdd50b32e6f9264edf2a69e499ddc0a6') +sha1sums=('a1d6951b27c868c738a36dbd21702b658f3d6245') build() { cd ${srcdir} diff --git a/extra/kdebindings-kimono/PKGBUILD b/extra/kdebindings-kimono/PKGBUILD index 528fe45aa..73aa8008c 100644 --- a/extra/kdebindings-kimono/PKGBUILD +++ b/extra/kdebindings-kimono/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 158411 2012-05-03 22:32:01Z andrea $ +# $Id: PKGBUILD 161147 2012-06-08 06:36:05Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgname=kdebindings-kimono -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 pkgdesc=".NET/Mono bindings for the KDE libraries" url="http://kde.org/" @@ -13,7 +13,7 @@ depends=('kdebindings-qyoto' 'kdebindings-smokekde') makedepends=('cmake' 'automoc4' 'kdebindings-smokegen' 'boost' 'kdepimlibs') conflicts=('kdebindings-csharp') source=("http://download.kde.org/stable/${pkgver}/src/kimono-${pkgver}.tar.xz") -sha1sums=('b509d3511204d858049009c827a5ffe395296124') +sha1sums=('9c8e41ebcec01cede7987958bb4d7ce775587e45') build() { cd "${srcdir}" diff --git a/extra/kdebindings-korundum/PKGBUILD b/extra/kdebindings-korundum/PKGBUILD index 3632d10dc..cc90349a5 100644 --- a/extra/kdebindings-korundum/PKGBUILD +++ b/extra/kdebindings-korundum/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 158413 2012-05-03 22:32:04Z andrea $ +# $Id: PKGBUILD 161149 2012-06-08 06:36:08Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgname=kdebindings-korundum -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 pkgdesc="KDE bindings for ruby" url="http://kde.org/" @@ -16,7 +16,7 @@ conflicts=('kdebindings-ruby') options=('!makeflags') source=("http://download.kde.org/stable/${pkgver}/src/korundum-${pkgver}.tar.xz" 'korundum-4.8.0-ruby19.patch') -sha1sums=('e949fae573d1399e67830c3eef0ebaa853905026' +sha1sums=('ce722ea7c64ce90d11370e393a87cb067962853e' '73299f56a891d8a5475ac07dd485619859312f70') build() { diff --git a/extra/kdebindings-kross/PKGBUILD b/extra/kdebindings-kross/PKGBUILD index 24c378579..343e03778 100644 --- a/extra/kdebindings-kross/PKGBUILD +++ b/extra/kdebindings-kross/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 158415 2012-05-03 22:32:08Z andrea $ +# $Id: PKGBUILD 161151 2012-06-08 06:36:10Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgbase=kdebindings-kross pkgname=('kdebindings-kross-python' # 'kdebindings-kross-ruby' 'kdebindings-kross-java') -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 url="http://kde.org/" arch=('i686' 'x86_64') @@ -13,7 +13,7 @@ license=('GPL' 'LGPL' 'FDL') groups=('kdebindings') makedepends=('kdelibs' 'cmake' 'automoc4' 'python2' 'java-environment') source=("http://download.kde.org/stable/${pkgver}/src/kross-interpreters-${pkgver}.tar.xz") -sha1sums=('1191563f2a925a261b40d61b62f1d1b7e01238aa') +sha1sums=('b5b73e10aa51377abe4da74eb98589fcc7eb83c4') build() { cd "${srcdir}" diff --git a/extra/kdebindings-perlkde/PKGBUILD b/extra/kdebindings-perlkde/PKGBUILD index 107ce1c95..9778d0f7a 100644 --- a/extra/kdebindings-perlkde/PKGBUILD +++ b/extra/kdebindings-perlkde/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 160491 2012-06-02 10:26:33Z bluewind $ +# $Id: PKGBUILD 161153 2012-06-08 06:36:13Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgname=kdebindings-perlkde -pkgver=4.8.3 -pkgrel=2 +pkgver=4.8.4 +pkgrel=1 pkgdesc="Perl bindings for the KDE libraries" url="http://kde.org/" arch=('i686' 'x86_64') @@ -13,7 +13,7 @@ depends=('kdebindings-perlqt' 'kdebindings-smokekde') makedepends=('cmake' 'automoc4' 'kdebindings-smokegen' 'kdepimlibs' 'kdegraphics-okular' 'kdesdk-kate') source=("http://download.kde.org/stable/${pkgver}/src/perlkde-${pkgver}.tar.xz") -sha1sums=('bfc1c3a86789832cf7747dfc854d586d86c10a99') +sha1sums=('5d94e2f4d6a32cf4cc7ff1d577d925de53ec8dee') build() { cd "${srcdir}" diff --git a/extra/kdebindings-perlqt/PKGBUILD b/extra/kdebindings-perlqt/PKGBUILD index 6750e259b..1a3ffb6a7 100644 --- a/extra/kdebindings-perlqt/PKGBUILD +++ b/extra/kdebindings-perlqt/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 160493 2012-06-02 10:26:36Z bluewind $ +# $Id: PKGBUILD 161105 2012-06-08 06:34:49Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgname=kdebindings-perlqt -pkgver=4.8.3 -pkgrel=2 +pkgver=4.8.4 +pkgrel=1 pkgdesc="Perl bindings for the Qt libraries" url="http://kde.org/" arch=('i686' 'x86_64') @@ -12,7 +12,7 @@ groups=('kdebindings') depends=('kdebindings-smokeqt' 'perl-list-moreutils') makedepends=('cmake' 'automoc4' 'kdebindings-smokegen') source=("http://download.kde.org/stable/${pkgver}/src/perlqt-${pkgver}.tar.xz") -sha1sums=('d0d0d5da1fd9c50bd19ff2bb49d6a71a2d97759f') +sha1sums=('86a7706bff687f1721d0b17e9bde3aa36e0970fb') build() { cd "${srcdir}" diff --git a/extra/kdebindings-python/PKGBUILD b/extra/kdebindings-python/PKGBUILD index 88be7badd..0f6dbe883 100644 --- a/extra/kdebindings-python/PKGBUILD +++ b/extra/kdebindings-python/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 158369 2012-05-03 22:30:43Z andrea $ +# $Id: PKGBUILD 161107 2012-06-08 06:34:53Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgbase=kdebindings-python pkgname=('kdebindings-python' 'kdebindings-python2') -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 url='http://kde.org/' arch=('i686' 'x86_64') @@ -12,7 +12,7 @@ license=('GPL' 'LGPL' 'FDL') groups=('kdebindings') makedepends=('cmake' 'automoc4' 'boost' 'kdepim-runtime' 'python2-pyqt' 'qscintilla') source=("http://download.kde.org/stable/${pkgver}/src/pykde4-${pkgver}.tar.xz") -sha1sums=('e88ef838b492802f401b0242205e87149c19d032') +sha1sums=('e629d7a1d7d1aa1d1dd24769dc5412a60b6ac256') build() { export PYTHONDONTWRITEBYTECODE="TRUE" diff --git a/extra/kdebindings-qtruby/PKGBUILD b/extra/kdebindings-qtruby/PKGBUILD index b1ba9dffc..eb803726d 100644 --- a/extra/kdebindings-qtruby/PKGBUILD +++ b/extra/kdebindings-qtruby/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 158373 2012-05-03 22:30:50Z andrea $ +# $Id: PKGBUILD 161111 2012-06-08 06:35:00Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgname=kdebindings-qtruby -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 pkgdesc="Qt bindings for ruby" url="http://kde.org/" @@ -13,7 +13,7 @@ depends=('kdebindings-smokeqt' 'ruby') makedepends=('cmake' 'automoc4' 'kdebindings-smokegen') conflicts=('kdebindings-ruby') source=("http://download.kde.org/stable/${pkgver}/src/qtruby-${pkgver}.tar.xz") -sha1sums=('aa88b382034cb66f283c200a10c04d3ba2170492') +sha1sums=('ce9f9b45d7e9edc839257a1f1c53b1e699503b47') build() { cd "${srcdir}" diff --git a/extra/kdebindings-qyoto/PKGBUILD b/extra/kdebindings-qyoto/PKGBUILD index a69fa9f75..1a7ebbf3d 100644 --- a/extra/kdebindings-qyoto/PKGBUILD +++ b/extra/kdebindings-qyoto/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 158371 2012-05-03 22:30:46Z andrea $ +# $Id: PKGBUILD 161109 2012-06-08 06:34:57Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgname=kdebindings-qyoto -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 pkgdesc=".NET/Mono bindings for the Qt libraries" url="http://kde.org/" @@ -13,7 +13,7 @@ depends=('kdebindings-smokeqt' 'mono') makedepends=('cmake' 'automoc4' 'kdebindings-smokegen') conflicts=('kdebindings-csharp') source=("http://download.kde.org/stable/${pkgver}/src/qyoto-${pkgver}.tar.xz") -sha1sums=('7d20a80fef76d4cdfb8d03a66e07b82074df69b0') +sha1sums=('8df3ad9630e8435e6af5af5809520662c95ee516') build() { cd "${srcdir}" diff --git a/extra/kdebindings-smokegen/PKGBUILD b/extra/kdebindings-smokegen/PKGBUILD index fb1a68739..340ab0146 100644 --- a/extra/kdebindings-smokegen/PKGBUILD +++ b/extra/kdebindings-smokegen/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 158357 2012-05-03 22:30:21Z andrea $ +# $Id: PKGBUILD 161095 2012-06-08 06:34:27Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgname=kdebindings-smokegen -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 pkgdesc="A general purpose C++ parser with a plugin infrastructure" url="http://kde.org/" @@ -12,7 +12,7 @@ depends=('kdebase-runtime') makedepends=('cmake' 'automoc4') conflicts=('kdebindings-smoke') source=("http://download.kde.org/stable/${pkgver}/src/smokegen-${pkgver}.tar.xz") -sha1sums=('0ea29388a8a8116e8b4fa7fe6e8a0b270e99cdcd') +sha1sums=('5ff7d15ed1cdea07f455fbf1189885518cf43cb6') build() { cd "${srcdir}" diff --git a/extra/kdebindings-smokekde/PKGBUILD b/extra/kdebindings-smokekde/PKGBUILD index db7477d17..1c737d8ff 100644 --- a/extra/kdebindings-smokekde/PKGBUILD +++ b/extra/kdebindings-smokekde/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 158365 2012-05-03 22:30:36Z andrea $ +# $Id: PKGBUILD 161103 2012-06-08 06:34:46Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgname=kdebindings-smokekde -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 pkgdesc="Language independent library for KDE bindings" url="http://kde.org/" @@ -14,7 +14,7 @@ makedepends=('cmake' 'automoc4' 'kdebindings-smokegen' 'boost' 'kdepimlibs' 'kdegraphics-okular' 'kdesdk-kate') conflicts=('kdebindings-smoke') source=("http://download.kde.org/stable/${pkgver}/src/smokekde-${pkgver}.tar.xz") -sha1sums=('b02b4b12dd5a23b2a87787bdde4491161d6a4e8d') +sha1sums=('d028d68485bc32cfe6bc60dbd597d8f72c9e70ef') build() { cd "${srcdir}" diff --git a/extra/kdebindings-smokeqt/PKGBUILD b/extra/kdebindings-smokeqt/PKGBUILD index 54738a1e3..af5d8970e 100644 --- a/extra/kdebindings-smokeqt/PKGBUILD +++ b/extra/kdebindings-smokeqt/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 158359 2012-05-03 22:30:25Z andrea $ +# $Id: PKGBUILD 161097 2012-06-08 06:34:30Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgname=kdebindings-smokeqt -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 pkgdesc="Language independent library for Qt bindings" url="http://kde.org/" @@ -13,7 +13,7 @@ depends=('kdebase-runtime' 'qimageblitz' 'qscintilla' 'kdebindings-smokegen') makedepends=('cmake' 'automoc4') conflicts=('kdebindings-smoke') source=("http://download.kde.org/stable/${pkgver}/src/smokeqt-${pkgver}.tar.xz") -sha1sums=('a1f5e5ed2a8ea94bf785771b2b43bf2dcb3b7808') +sha1sums=('bf2be3e7ccf8d451f001fd2f08c306fb7f72169a') build() { cd "${srcdir}" diff --git a/extra/kdeedu-analitza/PKGBUILD b/extra/kdeedu-analitza/PKGBUILD index 7871097bf..580193f7d 100644 --- a/extra/kdeedu-analitza/PKGBUILD +++ b/extra/kdeedu-analitza/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 158393 2012-05-03 22:31:29Z andrea $ +# $Id: PKGBUILD 161129 2012-06-08 06:35:28Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgname=kdeedu-analitza -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 pkgdesc="A library to add mathematical features to your program" url="http://kde.org/" @@ -12,7 +12,7 @@ groups=('kde' 'kdeedu') depends=('kdebase-runtime') makedepends=('cmake' 'automoc4') source=("http://download.kde.org/stable/${pkgver}/src/analitza-${pkgver}.tar.xz") -sha1sums=('bec5927a68028b74193afb6e7f2a36f97ba25543') +sha1sums=('d3b831730408078c31b686bc49c1d465de5e80da') build() { cd "${srcdir}" diff --git a/extra/kdeedu-blinken/PKGBUILD b/extra/kdeedu-blinken/PKGBUILD index 55b91eab9..d11084f77 100644 --- a/extra/kdeedu-blinken/PKGBUILD +++ b/extra/kdeedu-blinken/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 158419 2012-05-03 22:32:14Z andrea $ +# $Id: PKGBUILD 161155 2012-06-08 06:36:16Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgname=kdeedu-blinken -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 pkgdesc="Memory Enhancement Game" url="http://kde.org/applications/education/blinken/" @@ -13,7 +13,7 @@ depends=('kdebase-runtime') makedepends=('cmake' 'automoc4') install=${pkgname}.install source=("http://download.kde.org/stable/${pkgver}/src/blinken-${pkgver}.tar.xz") -sha1sums=('66b94eb99a9e2075465fd60d8e5635d4b064ecb9') +sha1sums=('571e1f06270d38e56149a8770517bf892859e2eb') build() { cd "${srcdir}" diff --git a/extra/kdeedu-cantor/PKGBUILD b/extra/kdeedu-cantor/PKGBUILD index 3223757e7..3189bf321 100644 --- a/extra/kdeedu-cantor/PKGBUILD +++ b/extra/kdeedu-cantor/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 158421 2012-05-03 22:32:18Z andrea $ +# $Id: PKGBUILD 161157 2012-06-08 06:36:18Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgname=kdeedu-cantor -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 pkgdesc="KDE Frontend to Mathematical Software" url="http://kde.org/applications/education/cantor/" @@ -16,7 +16,7 @@ optdepends=('maxima: Maxima backend' 'r: R backend') install=${pkgname}.install source=("http://download.kde.org/stable/${pkgver}/src/cantor-${pkgver}.tar.xz") -sha1sums=('e4aba48e30a4bee444f7e01eab807619908cd903') +sha1sums=('8e284e632144a92f503092738d19843272d0412e') build() { cd "${srcdir}" diff --git a/extra/kdeedu-kalgebra/PKGBUILD b/extra/kdeedu-kalgebra/PKGBUILD index 2a79878d8..e256180b0 100644 --- a/extra/kdeedu-kalgebra/PKGBUILD +++ b/extra/kdeedu-kalgebra/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 158423 2012-05-03 22:32:22Z andrea $ +# $Id: PKGBUILD 161159 2012-06-08 06:36:21Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgname=kdeedu-kalgebra -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 pkgdesc="Graph Calculator" url="http://kde.org/applications/education/kalgebra/" @@ -13,7 +13,7 @@ depends=('kdebase-runtime' 'libkdeedu' 'kdeedu-analitza') makedepends=('cmake' 'automoc4') install=${pkgname}.install source=("http://download.kde.org/stable/${pkgver}/src/kalgebra-${pkgver}.tar.xz") -sha1sums=('bea6a48ff5ae650e95fd443134dced3b08b169d5') +sha1sums=('be0bcd290c61713a0365e9eab2ddc8d58f447f34') build() { cd "${srcdir}" diff --git a/extra/kdeedu-kalzium/PKGBUILD b/extra/kdeedu-kalzium/PKGBUILD index 3d646149b..05054ff95 100644 --- a/extra/kdeedu-kalzium/PKGBUILD +++ b/extra/kdeedu-kalzium/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 158425 2012-05-03 22:32:24Z andrea $ +# $Id: PKGBUILD 161161 2012-06-08 06:36:24Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgname=kdeedu-kalzium -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 pkgdesc="Periodic Table of Elements" url="http://kde.org/applications/education/kalzium/" @@ -13,7 +13,7 @@ depends=('kdelibs' 'avogadro' 'ocaml' 'facile') makedepends=('cmake' 'automoc4') install=${pkgname}.install source=("http://download.kde.org/stable/${pkgver}/src/kalzium-${pkgver}.tar.xz") -sha1sums=('33629c565b82c755af0b73746c675ac44c234028') +sha1sums=('28ed27164680a28e478cc6e0a13c918bc2119dc2') build() { cd "${srcdir}" diff --git a/extra/kdeedu-kanagram/PKGBUILD b/extra/kdeedu-kanagram/PKGBUILD index 911aabde2..51edec784 100644 --- a/extra/kdeedu-kanagram/PKGBUILD +++ b/extra/kdeedu-kanagram/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 158427 2012-05-03 22:32:28Z andrea $ +# $Id: PKGBUILD 161163 2012-06-08 06:36:27Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgname=kdeedu-kanagram -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 pkgdesc="Letter Order Game" url="http://kde.org/applications/education/kanagram/" @@ -13,7 +13,7 @@ depends=('kdebase-runtime' 'libkdeedu') makedepends=('cmake' 'automoc4') install=${pkgname}.install source=("http://download.kde.org/stable/${pkgver}/src/kanagram-${pkgver}.tar.xz") -sha1sums=('36036b57bec5896945e5edaeb183120df4b90ed1') +sha1sums=('e897cc67ae046a4d7580f22a0ace534525fa6f1b') build() { cd "${srcdir}" diff --git a/extra/kdeedu-kbruch/PKGBUILD b/extra/kdeedu-kbruch/PKGBUILD index f1415f995..928236c40 100644 --- a/extra/kdeedu-kbruch/PKGBUILD +++ b/extra/kdeedu-kbruch/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 158429 2012-05-03 22:32:33Z andrea $ +# $Id: PKGBUILD 161165 2012-06-08 06:36:30Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgname=kdeedu-kbruch -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 pkgdesc="Exercise Fractions" url="http://kde.org/applications/education/kbruch/" @@ -13,7 +13,7 @@ depends=('kdebase-runtime') makedepends=('cmake' 'automoc4') install=${pkgname}.install source=("http://download.kde.org/stable/${pkgver}/src/kbruch-${pkgver}.tar.xz") -sha1sums=('6cbb2ef86950e306bb4824e190e7689f8dacca2e') +sha1sums=('40c24efddc30441a8de2ec315e1933ca429da14b') build() { cd "${srcdir}" diff --git a/extra/kdeedu-kgeography/PKGBUILD b/extra/kdeedu-kgeography/PKGBUILD index b70e36ed9..23aede7de 100644 --- a/extra/kdeedu-kgeography/PKGBUILD +++ b/extra/kdeedu-kgeography/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 158431 2012-05-03 22:32:36Z andrea $ +# $Id: PKGBUILD 161167 2012-06-08 06:36:33Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgname=kdeedu-kgeography -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 pkgdesc="Geography Trainer" url="http://kde.org/applications/education/kgeography/" @@ -13,7 +13,7 @@ depends=('kdebase-runtime') makedepends=('cmake' 'automoc4') install=${pkgname}.install source=("http://download.kde.org/stable/${pkgver}/src/kgeography-${pkgver}.tar.xz") -sha1sums=('70a5577a5303fd8d97efbc06220bd896ec00574f') +sha1sums=('4637c5a792164d083f0ea05e6733160922d8c73b') build() { cd "${srcdir}" diff --git a/extra/kdeedu-khangman/PKGBUILD b/extra/kdeedu-khangman/PKGBUILD index 3c0972024..92421be6e 100644 --- a/extra/kdeedu-khangman/PKGBUILD +++ b/extra/kdeedu-khangman/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 158433 2012-05-03 22:32:41Z andrea $ +# $Id: PKGBUILD 161169 2012-06-08 06:36:38Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgname=kdeedu-khangman -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 pkgdesc="Hangman Game" url="http://kde.org/applications/education/khangman/" @@ -13,7 +13,7 @@ depends=('kdebase-runtime' 'libkdeedu') makedepends=('cmake' 'automoc4') install=${pkgname}.install source=("http://download.kde.org/stable/${pkgver}/src/khangman-${pkgver}.tar.xz") -sha1sums=('75d0147a2e374b8940cf472550ca7f45a5c63587') +sha1sums=('aa544ba55833983bd21ebf594f2003a66b251901') build() { cd "${srcdir}" diff --git a/extra/kdeedu-kig/PKGBUILD b/extra/kdeedu-kig/PKGBUILD index ac814c0a4..8a46a6f8c 100644 --- a/extra/kdeedu-kig/PKGBUILD +++ b/extra/kdeedu-kig/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 158435 2012-05-03 22:32:44Z andrea $ +# $Id: PKGBUILD 161171 2012-06-08 06:36:44Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgname=kdeedu-kig -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 pkgdesc="Interactive Geometry" url="http://kde.org/applications/education/kig/" @@ -13,7 +13,7 @@ depends=('kdebase-runtime') makedepends=('cmake' 'automoc4') install=${pkgname}.install source=("http://download.kde.org/stable/${pkgver}/src/kig-${pkgver}.tar.xz") -sha1sums=('f7bd8d16cbb98ca44868df7bfd6b7a9e608c9ff4') +sha1sums=('dcbde5fbb34e0c569a2ef95a328cf69a924cd38e') build() { cd "${srcdir}" diff --git a/extra/kdeedu-kiten/PKGBUILD b/extra/kdeedu-kiten/PKGBUILD index 37b5defd0..0bdd4ccd1 100644 --- a/extra/kdeedu-kiten/PKGBUILD +++ b/extra/kdeedu-kiten/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 158437 2012-05-03 22:32:48Z andrea $ +# $Id: PKGBUILD 161173 2012-06-08 06:36:50Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgname=kdeedu-kiten -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 pkgdesc="Japanese Reference/Study Tool" url="http://kde.org/applications/education/kiten/" @@ -13,7 +13,7 @@ depends=('kdebase-runtime') makedepends=('cmake' 'automoc4') install=${pkgname}.install source=("http://download.kde.org/stable/${pkgver}/src/kiten-${pkgver}.tar.xz") -sha1sums=('8d94c45907a18db22117801ab1773cc43afb8c23') +sha1sums=('f7b5f9b6cbbda37c539f1ffce9bd905f0be3658e') build() { cd "${srcdir}" diff --git a/extra/kdeedu-klettres/PKGBUILD b/extra/kdeedu-klettres/PKGBUILD index fdd3188f1..ac69b4f3b 100644 --- a/extra/kdeedu-klettres/PKGBUILD +++ b/extra/kdeedu-klettres/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 158439 2012-05-03 22:32:52Z andrea $ +# $Id: PKGBUILD 161175 2012-06-08 06:36:56Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgname=kdeedu-klettres -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 pkgdesc="Learn The Alphabet" url="http://kde.org/applications/education/klettres/" @@ -13,7 +13,7 @@ depends=('kdebase-runtime') makedepends=('cmake' 'automoc4') install=${pkgname}.install source=("http://download.kde.org/stable/${pkgver}/src/klettres-${pkgver}.tar.xz") -sha1sums=('e0156053117b07bf0a81a4258f7cce6f0ba4f60e') +sha1sums=('b5dc64cdd09f265cd7a84d0ee14a93ea4ae067be') build() { cd "${srcdir}" diff --git a/extra/kdeedu-kmplot/PKGBUILD b/extra/kdeedu-kmplot/PKGBUILD index c2926b146..5915098b6 100644 --- a/extra/kdeedu-kmplot/PKGBUILD +++ b/extra/kdeedu-kmplot/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 158441 2012-05-03 22:32:55Z andrea $ +# $Id: PKGBUILD 161177 2012-06-08 06:37:01Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgname=kdeedu-kmplot -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 pkgdesc="Mathematical Function Plotter" url="http://kde.org/applications/education/kmplot/" @@ -13,7 +13,7 @@ depends=('kdebase-runtime') makedepends=('cmake' 'automoc4') install=${pkgname}.install source=("http://download.kde.org/stable/${pkgver}/src/kmplot-${pkgver}.tar.xz") -sha1sums=('c34c93266fd00d7c9b0d6f16625dbed13dba2a20') +sha1sums=('07ada013e1a046afe3bb3542a2485b1ec0d4736e') build() { cd "${srcdir}" diff --git a/extra/kdeedu-kstars/PKGBUILD b/extra/kdeedu-kstars/PKGBUILD index 82cc756c2..ce799d842 100644 --- a/extra/kdeedu-kstars/PKGBUILD +++ b/extra/kdeedu-kstars/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 158443 2012-05-03 22:32:58Z andrea $ +# $Id: PKGBUILD 161179 2012-06-08 06:37:06Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgname=kdeedu-kstars -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 pkgdesc="Desktop Planetarium" url="http://kde.org/applications/education/kstars/" @@ -13,7 +13,7 @@ depends=('kdebase-runtime' 'libindi') makedepends=('cmake' 'automoc4' 'eigen') install=${pkgname}.install source=("http://download.kde.org/stable/${pkgver}/src/kstars-${pkgver}.tar.xz") -sha1sums=('3c06bfb4f1e84565ac4de8126cfe47111217c995') +sha1sums=('579cec66cfb172258d2967872a2b9c32d4514c75') build() { cd "${srcdir}" diff --git a/extra/kdeedu-ktouch/PKGBUILD b/extra/kdeedu-ktouch/PKGBUILD index c84efc7e0..f80633c10 100644 --- a/extra/kdeedu-ktouch/PKGBUILD +++ b/extra/kdeedu-ktouch/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 158445 2012-05-03 22:33:03Z andrea $ +# $Id: PKGBUILD 161181 2012-06-08 06:37:11Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgname=kdeedu-ktouch -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 pkgdesc="Touch Typing Tutor" url="http://kde.org/applications/education/ktouch/" @@ -13,7 +13,7 @@ depends=('kdebase-runtime') makedepends=('cmake' 'automoc4') install=${pkgname}.install source=("http://download.kde.org/stable/${pkgver}/src/ktouch-${pkgver}.tar.xz") -sha1sums=('f098df93bb5c3dfd349104d168f3fcb1eb73ffb6') +sha1sums=('95e7712b9644d1b3491c988bc591d7c5b4e4d3b7') build() { cd "${srcdir}" diff --git a/extra/kdeedu-kturtle/PKGBUILD b/extra/kdeedu-kturtle/PKGBUILD index 2ab050440..2e0c4b327 100644 --- a/extra/kdeedu-kturtle/PKGBUILD +++ b/extra/kdeedu-kturtle/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 158447 2012-05-03 22:33:06Z andrea $ +# $Id: PKGBUILD 161183 2012-06-08 06:37:14Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgname=kdeedu-kturtle -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 pkgdesc="Educational Programming Environment" url="http://kde.org/applications/education/kturtle/" @@ -13,7 +13,7 @@ depends=('kdebase-runtime') makedepends=('cmake' 'automoc4') install=${pkgname}.install source=("http://download.kde.org/stable/${pkgver}/src/kturtle-${pkgver}.tar.xz") -sha1sums=('6f8c102e4bf41c9e214b5f71bd79f56f5651c1dc') +sha1sums=('160972878f61c37575fb5953b88354fe174fe8ab') build() { cd "${srcdir}" diff --git a/extra/kdeedu-kwordquiz/PKGBUILD b/extra/kdeedu-kwordquiz/PKGBUILD index 819c4ca04..147a9345f 100644 --- a/extra/kdeedu-kwordquiz/PKGBUILD +++ b/extra/kdeedu-kwordquiz/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 158449 2012-05-03 22:33:08Z andrea $ +# $Id: PKGBUILD 161185 2012-06-08 06:37:17Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgname=kdeedu-kwordquiz -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 pkgdesc="Flash Card Trainer" url="http://kde.org/applications/education/kwordquiz/" @@ -13,7 +13,7 @@ depends=('kdebase-runtime' 'libkdeedu') makedepends=('cmake' 'automoc4') install=${pkgname}.install source=("http://download.kde.org/stable/${pkgver}/src/kwordquiz-${pkgver}.tar.xz") -sha1sums=('65adea1b68f1f4d7ff36ef70bdd29fafc0e36e9e') +sha1sums=('ab6cf92bbedef4115951d3cc53a9f3b91ac11875') build() { cd "${srcdir}" diff --git a/extra/kdeedu-marble/PKGBUILD b/extra/kdeedu-marble/PKGBUILD index b4182d473..cbc4a684a 100644 --- a/extra/kdeedu-marble/PKGBUILD +++ b/extra/kdeedu-marble/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 158383 2012-05-03 22:31:12Z andrea $ +# $Id: PKGBUILD 161119 2012-06-08 06:35:15Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgname=kdeedu-marble -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 pkgdesc="Desktop Globe" url="http://kde.org/applications/education/marble/" @@ -14,7 +14,7 @@ makedepends=('cmake' 'automoc4' 'gpsd') optdepends=('gpsd: gps support') install=${pkgname}.install source=("http://download.kde.org/stable/${pkgver}/src/marble-${pkgver}.tar.xz") -sha1sums=('d33d73d757b14a42640176b994ad5930ebc1df30') +sha1sums=('ec3cd41a1d333e9e3b34595adf6e4859315159b9') build() { cd "${srcdir}" diff --git a/extra/kdeedu-parley/PKGBUILD b/extra/kdeedu-parley/PKGBUILD index a4135a23d..9c68d102d 100644 --- a/extra/kdeedu-parley/PKGBUILD +++ b/extra/kdeedu-parley/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 158451 2012-05-03 22:33:11Z andrea $ +# $Id: PKGBUILD 161187 2012-06-08 06:37:20Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgname=kdeedu-parley -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 pkgdesc="Vocabulary Trainer" url="http://kde.org/applications/education/parley/" @@ -13,7 +13,7 @@ depends=('kdebase-runtime' 'libkdeedu') makedepends=('cmake' 'automoc4') install=${pkgname}.install source=("http://download.kde.org/stable/${pkgver}/src/parley-${pkgver}.tar.xz") -sha1sums=('4a524209b19dcb174f4ce4258b4ec85adfa19ccb') +sha1sums=('bfc361363fa0cb866fd1d704b86d71401c1c4ea6') build() { cd "${srcdir}" diff --git a/extra/kdeedu-rocs/PKGBUILD b/extra/kdeedu-rocs/PKGBUILD index 9092cd95c..6c07a15c0 100644 --- a/extra/kdeedu-rocs/PKGBUILD +++ b/extra/kdeedu-rocs/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 158453 2012-05-03 22:33:15Z andrea $ +# $Id: PKGBUILD 161189 2012-06-08 06:37:22Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgname=kdeedu-rocs -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 pkgdesc="Rocs Graph Theory" url="http://kde.org/applications/education/rocs/" @@ -12,7 +12,7 @@ groups=('kde' 'kdeedu') depends=('kdebase-runtime') makedepends=('cmake' 'automoc4' 'boost') source=("http://download.kde.org/stable/${pkgver}/src/rocs-${pkgver}.tar.xz") -sha1sums=('772a80277edb483d4e189595a1723a2d1877d8d4') +sha1sums=('991e5aa15e59cc432a9c9f140fe90bd47f8f8e15') options=('!makeflags') build() { diff --git a/extra/kdeedu-step/PKGBUILD b/extra/kdeedu-step/PKGBUILD index 895a34d1f..51edff00a 100644 --- a/extra/kdeedu-step/PKGBUILD +++ b/extra/kdeedu-step/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 158455 2012-05-03 22:33:19Z andrea $ +# $Id: PKGBUILD 161191 2012-06-08 06:37:25Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgname=kdeedu-step -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 pkgdesc="Interactive Physical Simulator" url="http://kde.org/applications/education/step/" @@ -13,7 +13,7 @@ depends=('kdebase-runtime' 'libqalculate' 'gsl') makedepends=('cmake' 'automoc4' 'eigen') install=${pkgname}.install source=("http://download.kde.org/stable/${pkgver}/src/step-${pkgver}.tar.xz") -sha1sums=('2356c87aa3faec080a4963fc69a4d07c2d44a67d') +sha1sums=('498d8243309388fa8b59cd968c0c92fc588eda11') build() { cd "${srcdir}" diff --git a/extra/kdegames/PKGBUILD b/extra/kdegames/PKGBUILD index d49ca1175..cf3d8f518 100644 --- a/extra/kdegames/PKGBUILD +++ b/extra/kdegames/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 158457 2012-05-03 22:33:28Z andrea $ +# $Id: PKGBUILD 161193 2012-06-08 06:37:32Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> # Contributor: Pierre Schmitz <pierre@archlinux.de> @@ -43,7 +43,7 @@ pkgname=('kdegames-bomber' 'kdegames-libkmahjongg' 'kdegames-lskat' 'kdegames-palapeli') -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 arch=('i686' 'x86_64') url='http://www.kde.org' @@ -52,7 +52,7 @@ groups=('kde' 'kdegames') makedepends=('cmake' 'automoc4' 'ggz-client-libs' 'twisted' 'kdebindings-python2' 'openal') source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.xz") -sha1sums=('eea3a13a9e713d387b48d30c615b68336945eac5') +sha1sums=('00a68215c3e8b41ec8b7949c5d82af8e54766e97') build() { cd $srcdir diff --git a/extra/kdegraphics-gwenview/PKGBUILD b/extra/kdegraphics-gwenview/PKGBUILD index 9078be651..cd414c2b2 100644 --- a/extra/kdegraphics-gwenview/PKGBUILD +++ b/extra/kdegraphics-gwenview/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 158459 2012-05-03 22:33:34Z andrea $ +# $Id: PKGBUILD 161195 2012-06-08 06:37:36Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgname=kdegraphics-gwenview -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 pkgdesc="A fast and easy to use image viewer for KDE" url="http://kde.org/applications/graphics/gwenview/" @@ -14,7 +14,7 @@ makedepends=('cmake' 'automoc4') optdepends=('kipi-plugins: extra plugins to share photos') install=$pkgname.install source=("http://download.kde.org/stable/${pkgver}/src/gwenview-${pkgver}.tar.xz") -sha1sums=('be5fd73872be0e46a99b8d5b1c54e1e0328350c8') +sha1sums=('6cc6da85f6e2c8c817c1402baace16eb58b7a423') build() { cd "${srcdir}" diff --git a/extra/kdegraphics-kamera/PKGBUILD b/extra/kdegraphics-kamera/PKGBUILD index d92b7188a..b628ff902 100644 --- a/extra/kdegraphics-kamera/PKGBUILD +++ b/extra/kdegraphics-kamera/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 158461 2012-05-03 22:33:36Z andrea $ +# $Id: PKGBUILD 161197 2012-06-08 06:37:39Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgname=kdegraphics-kamera -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 pkgdesc="Configure Kamera" url="http://kde.org/applications/graphics/kamera/" @@ -12,7 +12,7 @@ groups=('kde' 'kdegraphics') depends=('kdebase-runtime' 'gphoto2') makedepends=('cmake' 'automoc4') source=("http://download.kde.org/stable/${pkgver}/src/kamera-${pkgver}.tar.xz") -sha1sums=('af58ef6b0762bd6e3bd75f7914c6ba575c205ba8') +sha1sums=('fc92327482bf1cd9b067667285ede00e3e464653') build() { cd "${srcdir}" diff --git a/extra/kdegraphics-kcolorchooser/PKGBUILD b/extra/kdegraphics-kcolorchooser/PKGBUILD index 5b8c17529..7f160ecea 100644 --- a/extra/kdegraphics-kcolorchooser/PKGBUILD +++ b/extra/kdegraphics-kcolorchooser/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 158463 2012-05-03 22:33:39Z andrea $ +# $Id: PKGBUILD 161199 2012-06-08 06:37:42Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgname=kdegraphics-kcolorchooser -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 pkgdesc="Color Chooser" url="http://kde.org/applications/graphics/kcolorchooser/" @@ -13,7 +13,7 @@ depends=('kdebase-runtime') makedepends=('cmake' 'automoc4') install=${pkgname}.install source=("http://download.kde.org/stable/${pkgver}/src/kcolorchooser-${pkgver}.tar.xz") -sha1sums=('08595a7388abc65b96fd91a874d5cedeb889c217') +sha1sums=('2f5ee55c86a503e458b1884939a62408bedbfc70') build() { cd "${srcdir}" diff --git a/extra/kdegraphics-kgamma/PKGBUILD b/extra/kdegraphics-kgamma/PKGBUILD index af2a14a20..b51c3c4ee 100644 --- a/extra/kdegraphics-kgamma/PKGBUILD +++ b/extra/kdegraphics-kgamma/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 158465 2012-05-03 22:33:42Z andrea $ +# $Id: PKGBUILD 161201 2012-06-08 06:37:45Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgname=kdegraphics-kgamma -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 pkgdesc="A monitor calibration tool" url="http://kde.org/applications/graphics/kgamma/" @@ -15,7 +15,7 @@ groups=('kde' 'kdegraphics') depends=('kdebase-runtime' 'libxxf86vm') makedepends=('cmake' 'automoc4') source=("http://download.kde.org/stable/${pkgver}/src/kgamma-${pkgver}.tar.xz") -sha1sums=('bfb32bbe49cd715390d24e3705d23171fdf0e2c9') +sha1sums=('812a84564db52fb6a8b8e0e829eb762d479092ec') build() { cd "${srcdir}" diff --git a/extra/kdegraphics-kolourpaint/PKGBUILD b/extra/kdegraphics-kolourpaint/PKGBUILD index 98a66d90d..b615dd2bd 100644 --- a/extra/kdegraphics-kolourpaint/PKGBUILD +++ b/extra/kdegraphics-kolourpaint/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 158467 2012-05-03 22:33:46Z andrea $ +# $Id: PKGBUILD 161203 2012-06-08 06:37:48Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgname=kdegraphics-kolourpaint -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 pkgdesc="Paint Program" url="http://kde.org/applications/graphics/kolourpaint/" @@ -13,7 +13,7 @@ depends=('kdebase-runtime' 'qimageblitz') makedepends=('cmake' 'automoc4') install=${pkgname}.install source=("http://download.kde.org/stable/${pkgver}/src/kolourpaint-${pkgver}.tar.xz") -sha1sums=('2030505b4169448914ef693f88874f3f323fb49c') +sha1sums=('1dc706ed29339df9fcc68ee606588941319bbf09') build() { cd "${srcdir}" diff --git a/extra/kdegraphics-kruler/PKGBUILD b/extra/kdegraphics-kruler/PKGBUILD index 85c1213d5..7efddc5fa 100644 --- a/extra/kdegraphics-kruler/PKGBUILD +++ b/extra/kdegraphics-kruler/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 158469 2012-05-03 22:33:49Z andrea $ +# $Id: PKGBUILD 161205 2012-06-08 06:37:50Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgname=kdegraphics-kruler -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 pkgdesc="Screen Ruler" url="http://kde.org/applications/graphics/kruler/" @@ -13,7 +13,7 @@ depends=('kdebase-runtime') makedepends=('cmake' 'automoc4') install=${pkgname}.install source=("http://download.kde.org/stable/${pkgver}/src/kruler-${pkgver}.tar.xz") -sha1sums=('baf3015a781e4389e9fa66067906e18765322132') +sha1sums=('b3fb40888f6cf2ad419e1f30a97c2052ffbae1d7') build() { cd "${srcdir}" diff --git a/extra/kdegraphics-ksaneplugin/PKGBUILD b/extra/kdegraphics-ksaneplugin/PKGBUILD index 54da07e93..bef629d4a 100644 --- a/extra/kdegraphics-ksaneplugin/PKGBUILD +++ b/extra/kdegraphics-ksaneplugin/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 158471 2012-05-03 22:33:52Z andrea $ +# $Id: PKGBUILD 161207 2012-06-08 06:37:53Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgname=kdegraphics-ksaneplugin -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 pkgdesc="A scan plugin that implements the scanning" url="http://kde.org/" @@ -13,7 +13,7 @@ makedepends=('cmake' 'automoc4') replaces=('kdegraphics-libs') conflicts=('kdegraphics-libs') source=("http://download.kde.org/stable/${pkgver}/src/ksaneplugin-${pkgver}.tar.xz") -sha1sums=('d6c5588bb2e5b45aecb0de1b37775e22b7cd696c') +sha1sums=('b7a3204ef27f04bffca0fd77d84bd46b236687b7') build() { cd "${srcdir}" diff --git a/extra/kdegraphics-ksnapshot/PKGBUILD b/extra/kdegraphics-ksnapshot/PKGBUILD index 38e15f283..856a09cc0 100644 --- a/extra/kdegraphics-ksnapshot/PKGBUILD +++ b/extra/kdegraphics-ksnapshot/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 158473 2012-05-03 22:33:57Z andrea $ +# $Id: PKGBUILD 161209 2012-06-08 06:37:56Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgname=kdegraphics-ksnapshot -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 pkgdesc="Screen Capture Program" url="http://kde.org/applications/graphics/ksnapshot/" @@ -14,7 +14,7 @@ makedepends=('cmake' 'automoc4') optdepends=('kipi-plugins') install=${pkgname}.install source=("http://download.kde.org/stable/${pkgver}/src/ksnapshot-${pkgver}.tar.xz") -sha1sums=('7b90bba6e11aff524ed759e7c7043fc97116b92c') +sha1sums=('1cbd1ea468e7722feb8c96dd5f1f3a18bb91d4ef') build() { cd "${srcdir}" diff --git a/extra/kdegraphics-mobipocket/PKGBUILD b/extra/kdegraphics-mobipocket/PKGBUILD index d0450e197..181df4616 100644 --- a/extra/kdegraphics-mobipocket/PKGBUILD +++ b/extra/kdegraphics-mobipocket/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 158475 2012-05-03 22:34:01Z andrea $ +# $Id: PKGBUILD 161211 2012-06-08 06:37:59Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgname=kdegraphics-mobipocket -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 pkgdesc="A collection of plugins to handle mobipocket files" url="http://kde.org/" @@ -14,7 +14,7 @@ replaces=('kdegraphics-libs') conflicts=('kdegraphics-libs') install=${pkgname}.install source=("http://download.kde.org/stable/${pkgver}/src/${pkgname}-${pkgver}.tar.xz") -sha1sums=('97a19a437e53f1b0ec538d7d35bbf25605e6845e') +sha1sums=('0c38ef851c054b0ee3689d41ff5f7f6fb3d83f67') build() { cd "${srcdir}" diff --git a/extra/kdegraphics-okular/PKGBUILD b/extra/kdegraphics-okular/PKGBUILD index 165b3352e..3243ccc6e 100644 --- a/extra/kdegraphics-okular/PKGBUILD +++ b/extra/kdegraphics-okular/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 159708 2012-05-26 07:54:21Z andyrtr $ +# $Id: PKGBUILD 161099 2012-06-08 06:34:36Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgname=kdegraphics-okular -pkgver=4.8.3 -pkgrel=2 +pkgver=4.8.4 +pkgrel=1 pkgdesc='Document Viewer' arch=('i686' 'x86_64') url="http://kde.org/applications/graphics/okular/" @@ -15,7 +15,7 @@ makedepends=('cmake' 'automoc4') optdepends=('kdegraphics-mobipocket: mobipocket support') install=${pkgname}.install source=("http://download.kde.org/stable/${pkgver}/src/okular-${pkgver}.tar.xz") -sha1sums=('7c43076df3e9d6217e2a5cbb8ef6d8af89f8ae37') +sha1sums=('34ff243a4fa77400631aa44b31cbe54910f8091e') build() { cd "${srcdir}" diff --git a/extra/kdegraphics-strigi-analyzer/PKGBUILD b/extra/kdegraphics-strigi-analyzer/PKGBUILD index 889337565..497c51a4e 100644 --- a/extra/kdegraphics-strigi-analyzer/PKGBUILD +++ b/extra/kdegraphics-strigi-analyzer/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 158477 2012-05-03 22:34:04Z andrea $ +# $Id: PKGBUILD 161213 2012-06-08 06:38:02Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgname=kdegraphics-strigi-analyzer -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 pkgdesc="Strigi analyzers for various graphics file formats" url="http://kde.org/" @@ -13,7 +13,7 @@ makedepends=('cmake' 'automoc4') replaces=('kdegraphics-libs') conflicts=('kdegraphics-libs') source=("http://download.kde.org/stable/${pkgver}/src/${pkgname}-${pkgver}.tar.xz") -sha1sums=('8e0cbcbd36b1ac5fdfb7665bc456a87dd3ba59ef') +sha1sums=('208dd945c1ecfaee97457585dc7a52916dd2318f') build() { cd "${srcdir}" diff --git a/extra/kdegraphics-svgpart/PKGBUILD b/extra/kdegraphics-svgpart/PKGBUILD index 06ab29c3b..936a397e2 100644 --- a/extra/kdegraphics-svgpart/PKGBUILD +++ b/extra/kdegraphics-svgpart/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 158479 2012-05-03 22:34:07Z andrea $ +# $Id: PKGBUILD 161215 2012-06-08 06:38:04Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgname=kdegraphics-svgpart -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 pkgdesc="A KPart for viewving SVGs" url="http://kde.org/" @@ -13,7 +13,7 @@ makedepends=('cmake' 'automoc4') replaces=('kdegraphics-libs') conflicts=('kdegraphics-libs') source=("http://download.kde.org/stable/${pkgver}/src/svgpart-${pkgver}.tar.xz") -sha1sums=('53d69e810acbad5d1cb606a74cf218e3ceccd876') +sha1sums=('3c202f0a58035c56e7e46a983c254a6284b97ee9') build() { cd "${srcdir}" diff --git a/extra/kdegraphics-thumbnailers/PKGBUILD b/extra/kdegraphics-thumbnailers/PKGBUILD index 864825d03..1a9a22c05 100644 --- a/extra/kdegraphics-thumbnailers/PKGBUILD +++ b/extra/kdegraphics-thumbnailers/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 158481 2012-05-03 22:34:12Z andrea $ +# $Id: PKGBUILD 161217 2012-06-08 06:38:08Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgname=kdegraphics-thumbnailers -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 pkgdesc="Thumbnailers for various graphics file formats" url="http://kde.org/" @@ -13,7 +13,7 @@ makedepends=('cmake' 'automoc4') replaces=('kdegraphics-libs') conflicts=('kdegraphics-libs') source=("http://download.kde.org/stable/${pkgver}/src/${pkgname}-${pkgver}.tar.xz") -sha1sums=('3a7839030e1e49addfdb275acfa1c0288aa95431') +sha1sums=('57e753881f9ca78c4c188c49a3a1b258b92adb83') build() { cd "${srcdir}" diff --git a/extra/kdemultimedia/PKGBUILD b/extra/kdemultimedia/PKGBUILD index 238415d52..f3f390641 100644 --- a/extra/kdemultimedia/PKGBUILD +++ b/extra/kdemultimedia/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 159443 2012-05-24 12:12:39Z andrea $ +# $Id: PKGBUILD 161219 2012-06-08 06:38:12Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> # Contributor: Pierre Schmitz <pierre@archlinux.de> @@ -10,8 +10,8 @@ pkgname=('kdemultimedia-dragonplayer' 'kdemultimedia-kmix' 'kdemultimedia-kscd' 'kdemultimedia-mplayerthumbs') -pkgver=4.8.3 -pkgrel=2 +pkgver=4.8.4 +pkgrel=1 arch=('i686' 'x86_64') url='http://www.kde.org' license=('GPL' 'LGPL' 'FDL') @@ -19,11 +19,16 @@ groups=('kde' 'kdemultimedia') makedepends=('cmake' 'automoc4' 'kdelibs' 'ffmpeg' 'mplayer' 'libpulse' 'libmusicbrainz3' 'taglib' 'libcanberra') source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.xz" - 'mplayerthumbs.config') -sha1sums=('8f2b9181d5ccab5a9efd62f2778cf6c2b88abb3e' - 'ba016fa2563c14ffcba852c62506b66bfc6ee683') + 'mplayerthumbs.config' + 'ffmpeg0.11.patch') +sha1sums=('dac721e82308a6347d578361e25da7c466a26ba7' + 'ba016fa2563c14ffcba852c62506b66bfc6ee683' + '48331f7e2dab760c20708b81fe6c4d47c83a63e7') build() { + cd ${srcdir}/${pkgbase}-${pkgver}/ffmpegthumbs + patch -p1 -i ${srcdir}/ffmpeg0.11.patch + cd ${srcdir} mkdir build cd build @@ -41,8 +46,8 @@ package_kdemultimedia-dragonplayer() { install='kdemultimedia-dragonplayer.install' cd $srcdir/build/dragonplayer make DESTDIR=$pkgdir install - cd $srcdir/build/doc/dragonplayer - make DESTDIR=$pkgdir install + cd $srcdir/build/dragonplayer/doc + make DESTDIR=$pkgdir install } package_kdemultimedia-ffmpegthumbs() { @@ -60,8 +65,8 @@ package_kdemultimedia-juk() { install='kdemultimedia.install' cd $srcdir/build/juk make DESTDIR=$pkgdir install - cd $srcdir/build/doc/juk - make DESTDIR=$pkgdir install + cd $srcdir/build/juk/doc + make DESTDIR=$pkgdir install } package_kdemultimedia-kioslave() { @@ -69,7 +74,7 @@ package_kdemultimedia-kioslave() { depends=('kdelibs' 'libmusicbrainz3' 'cdparanoia') conflicts=('kdemultimedia-libkcddb' 'kdemultimedia-libkcompactdisc') replaces=('kdemultimedia-libkcddb' 'kdemultimedia-libkcompactdisc') - for i in kioslave doc/kioslave libkcddb libkcompactdisc; do + for i in kioslave libkcddb libkcompactdisc; do cd $srcdir/build/${i} make DESTDIR=$pkgdir install done @@ -82,8 +87,8 @@ package_kdemultimedia-kmix() { install='kdemultimedia.install' cd $srcdir/build/kmix make DESTDIR=$pkgdir install - cd $srcdir/build/doc/kmix - make DESTDIR=$pkgdir install + cd $srcdir/build/kmix/doc + make DESTDIR=$pkgdir install } package_kdemultimedia-kscd() { @@ -93,8 +98,6 @@ package_kdemultimedia-kscd() { install='kdemultimedia.install' cd $srcdir/build/kscd make DESTDIR=$pkgdir install - cd $srcdir/build/doc/kcontrol/cddbretrieval - make DESTDIR=$pkgdir install } package_kdemultimedia-mplayerthumbs() { diff --git a/extra/kdemultimedia/ffmpeg0.11.patch b/extra/kdemultimedia/ffmpeg0.11.patch new file mode 100644 index 000000000..527ac3992 --- /dev/null +++ b/extra/kdemultimedia/ffmpeg0.11.patch @@ -0,0 +1,29 @@ +From: Christoph Feck <christoph@maxiom.de> +Date: Tue, 29 May 2012 13:53:18 +0000 +Subject: Two deprecated calls have been removed from ffmpeg 0.11. +X-Git-Tag: v4.8.80 +X-Git-Url: http://quickgit.kde.org/?p=ffmpegthumbs.git&a=commitdiff&h=4f03b20614c122e3e14473d42a000c0bffdce39c +--- +Two deprecated calls have been removed from ffmpeg 0.11. + +BUG:300732 +--- + + +--- a/ffmpegthumbnailer/moviedecoder.cpp ++++ b/ffmpegthumbnailer/moviedecoder.cpp +@@ -52,12 +52,11 @@ MovieDecoder::~MovieDecoder() + void MovieDecoder::initialize(const QString& filename) + { + av_register_all(); +- avcodec_init(); + avcodec_register_all(); + + QFileInfo fileInfo(filename); + +- if ((!m_FormatContextWasGiven) && av_open_input_file(&m_pFormatContext, fileInfo.absoluteFilePath().toUtf8().data(), NULL, 0, NULL) != 0) { ++ if ((!m_FormatContextWasGiven) && avformat_open_input(&m_pFormatContext, fileInfo.absoluteFilePath().toLocal8Bit().data(), NULL, NULL) != 0) { + kDebug() << "Could not open input file: " << fileInfo.absoluteFilePath(); + return; + } + diff --git a/extra/kdenetwork/PKGBUILD b/extra/kdenetwork/PKGBUILD index e73168649..3a8814bb3 100644 --- a/extra/kdenetwork/PKGBUILD +++ b/extra/kdenetwork/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 159199 2012-05-17 19:03:43Z andrea $ +# $Id: PKGBUILD 161221 2012-06-08 06:38:16Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> # Contributor: Pierre Schmitz <pierre@archlinux.de> @@ -10,8 +10,8 @@ pkgname=('kdenetwork-filesharing' 'kdenetwork-kppp' 'kdenetwork-krdc' 'kdenetwork-krfb') -pkgver=4.8.3 -pkgrel=3 +pkgver=4.8.4 +pkgrel=1 arch=('i686' 'x86_64') url='http://www.kde.org' license=('GPL' 'LGPL' 'FDL') @@ -20,15 +20,10 @@ makedepends=('cmake' 'automoc4' 'boost' 'speex' 'ortp' 'libotr' 'ppp' 'qca-ossl' 'kdebase-workspace' 'kdebase-lib' 'libvncserver' 'libmsn' 'v4l-utils' 'libidn' 'rdesktop' 'qimageblitz' 'libxdamage' 'libgadu' 'libktorrent' 'libmms' 'mediastreamer') -source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.xz" - 'gcc47.patch') -sha1sums=('9da87317c6a10243d6fff8c121c04146415f65cd' - '0e1325569e296d98e7b1be12305c1c018104685b') + source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.xz") +sha1sums=('b3926c5cd929cec209421c2f1cb8659cc1c82458') build() { - cd "${srcdir}"/${pkgbase}-${pkgver} - patch -p4 -i "${srcdir}"/gcc47.patch - cd "${srcdir}" mkdir build cd build diff --git a/extra/kdepim-runtime/PKGBUILD b/extra/kdepim-runtime/PKGBUILD index c493acbdb..35347480d 100644 --- a/extra/kdepim-runtime/PKGBUILD +++ b/extra/kdepim-runtime/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 159144 2012-05-16 19:52:39Z andrea $ +# $Id: PKGBUILD 161093 2012-06-08 06:34:24Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> # Contributor: Pierre Schmitz <pierre@archlinux.de> pkgname=kdepim-runtime -pkgver=4.8.3 -pkgrel=2 +pkgver=4.8.4 +pkgrel=1 pkgdesc='KDE PIM Runtime Environment' arch=('i686' 'x86_64') url='http://www.kde.org' @@ -12,15 +12,10 @@ license=('GPL' 'LGPL' 'FDL') depends=('kdepimlibs' 'kdebase-runtime') makedepends=('cmake' 'automoc4' 'boost') install=${pkgname}.install -source=("http://download.kde.org/stable/${pkgver}/src/${pkgname}-${pkgver}.tar.xz" - 'fix-carddav-support.patch') -sha1sums=('f1c6691522113887dc5f098678ccbbacfecb9390' - '1362bc04e82a3fdf870578c051a2e16170c43e86') +source=("http://download.kde.org/stable/${pkgver}/src/${pkgname}-${pkgver}.tar.xz") +sha1sums=('3a375afb62b4ee01d491c4787b559132317aa983') build() { - cd "${srcdir}"/${pkgname}-${pkgver} - patch -p1 -i "${srcdir}"/fix-carddav-support.patch - cd "${srcdir}" mkdir build cd build diff --git a/extra/kdepim/PKGBUILD b/extra/kdepim/PKGBUILD index 71bc9da9a..d130b2ccd 100644 --- a/extra/kdepim/PKGBUILD +++ b/extra/kdepim/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 158487 2012-05-03 22:34:29Z andrea $ +# $Id: PKGBUILD 161223 2012-06-08 06:38:20Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> # Contributor: Pierre Schmitz <pierre@archlinux.de> @@ -19,7 +19,7 @@ pkgname=('kdepim-akonadiconsole' 'kdepim-kresources' 'kdepim-ktimetracker' 'kdepim-libkdepim') -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 arch=('i686' 'x86_64') url='http://pim.kde.org' @@ -28,7 +28,7 @@ groups=('kde' 'kdepim') makedepends=('cmake' 'automoc4' 'boost' 'kdepim-runtime' 'libxss' 'pilot-link' 'kde-agent') source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.xz") -sha1sums=('1d40a820fc343bd6c492e937b9da2e7226cd3e78') +sha1sums=('aae8f027ab1ef75283d6e4b2bdf76c91d04087ea') build() { cd "${srcdir}" diff --git a/extra/kdepimlibs/PKGBUILD b/extra/kdepimlibs/PKGBUILD index d99cd9c15..7d2a35c41 100644 --- a/extra/kdepimlibs/PKGBUILD +++ b/extra/kdepimlibs/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 158350 2012-05-03 22:30:07Z andrea $ +# $Id: PKGBUILD 161086 2012-06-08 06:34:12Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> # Contributor: Pierre Schmitz <pierre@archlinux.de> pkgname=kdepimlibs -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 pkgdesc="KDE PIM Libraries" arch=('i686' 'x86_64') @@ -13,7 +13,7 @@ depends=('kdelibs' 'gpgme' 'akonadi' 'libical' 'prison') makedepends=('cmake' 'automoc4' 'boost' 'cyrus-sasl') install='kdepimlibs.install' source=("http://download.kde.org/stable/${pkgver}/src/${pkgname}-${pkgver}.tar.xz") -sha1sums=('453badec44fa2fd8b551fc9f8df2d51c88930dca') +sha1sums=('34f693ac71896d0d8653fc2a81323d1e91531bb2') build() { cd ${srcdir} diff --git a/extra/kdeplasma-addons/PKGBUILD b/extra/kdeplasma-addons/PKGBUILD index f54bbf36f..7340ba4a4 100644 --- a/extra/kdeplasma-addons/PKGBUILD +++ b/extra/kdeplasma-addons/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 158489 2012-05-03 22:34:34Z andrea $ +# $Id: PKGBUILD 161225 2012-06-08 06:38:26Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> # Contributor: Pierre Schmitz <pierre@archlinux.de> @@ -74,7 +74,7 @@ pkgname=('kdeplasma-addons-applets-bball' 'kdeplasma-addons-wallpapers-potd' 'kdeplasma-addons-wallpapers-virus' 'kdeplasma-addons-wallpapers-weather') -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 arch=('i686' 'x86_64') url='http://www.kde.org' @@ -83,7 +83,7 @@ groups=('kde' 'kdeplasma-addons') makedepends=('cmake' 'automoc4' 'kdebase-workspace' 'kdeedu-marble' 'eigen' 'scim' 'qwt' 'boost' 'libkexiv2' 'ibus') source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.xz") -sha1sums=('64bda8ca1d68ab07596d8eaa6381255d815346bc') +sha1sums=('725d26e3aa59d02bc73a77b43e6aae92bc961254') build() { cd "${srcdir}" diff --git a/extra/kdesdk-kate/PKGBUILD b/extra/kdesdk-kate/PKGBUILD index bffb1b769..2bf3c454e 100644 --- a/extra/kdesdk-kate/PKGBUILD +++ b/extra/kdesdk-kate/PKGBUILD @@ -1,18 +1,18 @@ -# $Id: PKGBUILD 158363 2012-05-03 22:30:33Z andrea $ +# $Id: PKGBUILD 161101 2012-06-08 06:34:43Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgbase=kdesdk-kate pkgname=('kdebase-katepart' 'kdebase-kwrite' 'kdesdk-kate') -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 arch=('i686' 'x86_64') license=('GPL' 'LGPL' 'FDL') makedepends=('kdelibs ''cmake' 'automoc4') source=("http://download.kde.org/stable/${pkgver}/src/kate-${pkgver}.tar.xz" 'pkgbuild-syntax-highlight.patch') -sha1sums=('100fcc86de792d3418ea0f9995233bdd8871d7f9' +sha1sums=('5a70b64c92892781d50781fcaac81ff352ec3ed9' '0a928253bd2077f0264d96a6c8823c69c47b6a8d') build() { diff --git a/extra/kdesdk/PKGBUILD b/extra/kdesdk/PKGBUILD index ef9da5795..37ee61980 100644 --- a/extra/kdesdk/PKGBUILD +++ b/extra/kdesdk/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 158491 2012-05-03 22:34:45Z andrea $ +# $Id: PKGBUILD 161227 2012-06-08 06:38:43Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> # Contributor: Pierre Schmitz <pierre@archlinux.de> @@ -22,7 +22,7 @@ pkgname=('kdesdk-cervisia' 'kdesdk-scripts' 'kdesdk-strigi-analyzer' 'kdesdk-umbrello') -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 arch=('i686' 'x86_64') url='http://www.kde.org' @@ -32,7 +32,7 @@ makedepends=('cmake' 'automoc4' 'boost' 'subversion' 'antlr2' 'kdepimlibs' 'kdebase-lib') source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.xz" 'fix-python2-path.patch') -sha1sums=('e7366cd627fd8324d89e7854361be8a141d030c1' +sha1sums=('62c176ee3dda5bbc013db7d1033ff89c105e3fd1' '923cabd7a877cf9a68efeb24fbf3d5827e1d949e') build() { diff --git a/extra/kdetoys/PKGBUILD b/extra/kdetoys/PKGBUILD index 7ec59d905..241e491e0 100644 --- a/extra/kdetoys/PKGBUILD +++ b/extra/kdetoys/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 158493 2012-05-03 22:34:49Z andrea $ +# $Id: PKGBUILD 161229 2012-06-08 06:38:51Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> # Contributor: Pierre Schmitz <pierre@archlinux.de> @@ -6,7 +6,7 @@ pkgbase=kdetoys pkgname=('kdetoys-amor' 'kdetoys-kteatime' 'kdetoys-ktux') -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 arch=('i686' 'x86_64') url='http://www.kde.org' @@ -14,7 +14,7 @@ license=('GPL' 'LGPL' 'FDL') groups=('kde' 'kdetoys') makedepends=('cmake' 'automoc4' 'kdebase-workspace') source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.xz") -sha1sums=('b3050335f3f6b95dfc293cbbd999e21d9ff4f967') +sha1sums=('dd5f63f0e833135bac73a2e12692b1e6dd412f67') build() { cd $srcdir diff --git a/extra/kdeutils-filelight/PKGBUILD b/extra/kdeutils-filelight/PKGBUILD index 1e0af253f..28e108952 100644 --- a/extra/kdeutils-filelight/PKGBUILD +++ b/extra/kdeutils-filelight/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 158497 2012-05-03 22:34:58Z andrea $ +# $Id: PKGBUILD 161233 2012-06-08 06:39:02Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgname=kdeutils-filelight -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 pkgdesc='View disk usage information' url='http://kde.org/applications/utilities/filelight' @@ -15,7 +15,7 @@ replaces=('filelight') conflicts=('filelight') install=${pkgname}.install source=("http://download.kde.org/stable/${pkgver}/src/filelight-${pkgver}.tar.xz") -sha1sums=('1d1a8141b50e0eef2f2c8c13c6060ff11aab130e') +sha1sums=('3023e9daa8bc5271bed3f3c08076952bcaf75efd') build() { cd "${srcdir}" diff --git a/extra/kdeutils-kcalc/PKGBUILD b/extra/kdeutils-kcalc/PKGBUILD index 77dd528b7..84a0b2160 100644 --- a/extra/kdeutils-kcalc/PKGBUILD +++ b/extra/kdeutils-kcalc/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 158499 2012-05-03 22:35:00Z andrea $ +# $Id: PKGBUILD 161235 2012-06-08 06:39:08Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgname=kdeutils-kcalc -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 pkgdesc='Scientific Calculator' url='http://kde.org/applications/utilities/kcalc/' @@ -13,7 +13,7 @@ makedepends=('cmake' 'automoc4') groups=('kde' 'kdeutils') install=${pkgname}.install source=("http://download.kde.org/stable/${pkgver}/src/kcalc-${pkgver}.tar.xz") -sha1sums=('36c4c46ba05911dd174c7d1fa8526430d932c84f') +sha1sums=('f1cb6cda210c67fd19eca387df2d2224393d45ef') build() { cd "${srcdir}" diff --git a/extra/kdeutils-kcharselect/PKGBUILD b/extra/kdeutils-kcharselect/PKGBUILD index ceaa2cf19..593793b2d 100644 --- a/extra/kdeutils-kcharselect/PKGBUILD +++ b/extra/kdeutils-kcharselect/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 158501 2012-05-03 22:35:04Z andrea $ +# $Id: PKGBUILD 161237 2012-06-08 06:39:11Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgname=kdeutils-kcharselect -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 pkgdesc='Character Selector' url="http://kde.org/applications/utilities/kcharselect/" @@ -12,7 +12,7 @@ depends=('kdebase-runtime') makedepends=('cmake' 'automoc4') groups=('kde' 'kdeutils') source=("http://download.kde.org/stable/${pkgver}/src/kcharselect-${pkgver}.tar.xz") -sha1sums=('a4196b6ef1f665fabd2ba91f040b2f858c58f397') +sha1sums=('0e00a25ca3c813ab335cd12ff0ec4b1f22c8076c') build() { cd "${srcdir}" diff --git a/extra/kdeutils-kdf/PKGBUILD b/extra/kdeutils-kdf/PKGBUILD index 0862af56a..80800a29b 100644 --- a/extra/kdeutils-kdf/PKGBUILD +++ b/extra/kdeutils-kdf/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 158503 2012-05-03 22:35:08Z andrea $ +# $Id: PKGBUILD 161239 2012-06-08 06:39:13Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgname=kdeutils-kdf -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 url="http://kde.org/applications/system/kdiskfree/" arch=('i686' 'x86_64') @@ -13,7 +13,7 @@ makedepends=('cmake' 'automoc4') groups=('kde' 'kdeutils') install=${pkgname}.install source=("http://download.kde.org/stable/${pkgver}/src/kdf-${pkgver}.tar.xz") -sha1sums=('3c4a05df8daa526f89c2b7d4a6a66dacbd4a92cc') +sha1sums=('c83f9659d693f27166519969f85c630fdeaa3d9c') build() { cd "${srcdir}" diff --git a/extra/kdeutils-kfloppy/PKGBUILD b/extra/kdeutils-kfloppy/PKGBUILD index 1858983bf..582e794f6 100644 --- a/extra/kdeutils-kfloppy/PKGBUILD +++ b/extra/kdeutils-kfloppy/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 158505 2012-05-03 22:35:11Z andrea $ +# $Id: PKGBUILD 161241 2012-06-08 06:39:16Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgname=kdeutils-kfloppy -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 pkgdesc='Floppy Formatter' url='http://kde.org/applications/utilities/kfloppy/' @@ -13,7 +13,7 @@ makedepends=('cmake' 'automoc4') groups=('kde' 'kdeutils') install=${pkgname}.install source=("http://download.kde.org/stable/${pkgver}/src/kfloppy-${pkgver}.tar.xz") -sha1sums=('e507d66f29df3ded849be74c609ce13a38e78b60') +sha1sums=('597e7d1fa546a898b4e46a9750632be8dc8a01a7') build() { cd "${srcdir}" diff --git a/extra/kdeutils-kgpg/PKGBUILD b/extra/kdeutils-kgpg/PKGBUILD index 2a5515e46..3b3c8bdbd 100644 --- a/extra/kdeutils-kgpg/PKGBUILD +++ b/extra/kdeutils-kgpg/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 158507 2012-05-03 22:35:15Z andrea $ +# $Id: PKGBUILD 161243 2012-06-08 06:39:19Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgname=kdeutils-kgpg -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 pkgdesc='A GnuPG frontend' url='http://kde.org/applications/utilities/kgpg/' @@ -13,7 +13,7 @@ makedepends=('cmake' 'automoc4') groups=('kde' 'kdeutils') install=${pkgname}.install source=("http://download.kde.org/stable/${pkgver}/src/kgpg-${pkgver}.tar.xz") -sha1sums=('70a99932697bd7bf37c3991c24831c9ef94f1302') +sha1sums=('4b201d0db0d97d258597b0b345848acec5bd0130') build() { cd "${srcdir}" diff --git a/extra/kdeutils-kremotecontrol/PKGBUILD b/extra/kdeutils-kremotecontrol/PKGBUILD index 30ca87072..c4603ff7a 100644 --- a/extra/kdeutils-kremotecontrol/PKGBUILD +++ b/extra/kdeutils-kremotecontrol/PKGBUILD @@ -2,7 +2,7 @@ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgname=kdeutils-kremotecontrol -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 pkgdesc='Configure your remote controls for use with applications' url='http://kde.org/applications/utilities/kremotecontrol/' @@ -15,7 +15,7 @@ replaces=('kdeutils-kdelirc') conflicts=('kdeutils-kdelirc') install=${pkgname}.install source=("http://download.kde.org/stable/${pkgver}/src/kremotecontrol-${pkgver}.tar.xz") -sha1sums=('38eec5beac2b62086d21c9e97ee549af913db844') +sha1sums=('2c967b6d5738d3947401d9055f0956dfd16b2ec2') build() { cd "${srcdir}" diff --git a/extra/kdeutils-ksecrets/PKGBUILD b/extra/kdeutils-ksecrets/PKGBUILD index 258695a7e..e53a4bdad 100644 --- a/extra/kdeutils-ksecrets/PKGBUILD +++ b/extra/kdeutils-ksecrets/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 158511 2012-05-03 22:35:27Z andrea $ +# $Id: PKGBUILD 161247 2012-06-08 06:39:24Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgname=kdeutils-ksecrets -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 pkgdesc='Secrets Management Infrastructure for KDE' url='http://techbase.kde.org/Projects/Utils/ksecretsservice' @@ -13,7 +13,7 @@ makedepends=('cmake' 'automoc4') groups=('kde' 'kdeutils') install=${pkgname}.install source=("http://download.kde.org/stable/${pkgver}/src/ksecrets-${pkgver}.tar.xz") -sha1sums=('e5a2526af64a340abbf1423760e1ceb2eae3189f') +sha1sums=('d0fd2c601833cf1ffe52760472e22d667a6a6408') build() { cd "${srcdir}" diff --git a/extra/kdeutils-ktimer/PKGBUILD b/extra/kdeutils-ktimer/PKGBUILD index 096b0b5d2..a214faf5b 100644 --- a/extra/kdeutils-ktimer/PKGBUILD +++ b/extra/kdeutils-ktimer/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 158513 2012-05-03 22:35:30Z andrea $ +# $Id: PKGBUILD 161249 2012-06-08 06:39:27Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgname=kdeutils-ktimer -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 pkgdesc='Countdown Launcher' url='http://kde.org/applications/utilities/ktimer/' @@ -13,7 +13,7 @@ makedepends=('cmake' 'automoc4') groups=('kde' 'kdeutils') install=${pkgname}.install source=("http://download.kde.org/stable/${pkgver}/src/ktimer-${pkgver}.tar.xz") -sha1sums=('232555ab5630219b3ced8486f4493ca61eb99f51') +sha1sums=('39e117449beffa8e2a38f7b45f69965a71de3805') build() { cd "${srcdir}" diff --git a/extra/kdeutils-kwallet/PKGBUILD b/extra/kdeutils-kwallet/PKGBUILD index 7fe331e46..0ecdcca61 100644 --- a/extra/kdeutils-kwallet/PKGBUILD +++ b/extra/kdeutils-kwallet/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 158515 2012-05-03 22:35:35Z andrea $ +# $Id: PKGBUILD 161251 2012-06-08 06:39:31Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgname=kdeutils-kwallet -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 pkgdesc='Wallet Management Tool' url='http://kde.org/applications/system/kwalletmanager/' @@ -13,7 +13,7 @@ makedepends=('cmake' 'automoc4') groups=('kde' 'kdeutils') install=${pkgname}.install source=("http://download.kde.org/stable/${pkgver}/src/kwallet-${pkgver}.tar.xz") -sha1sums=('b99a380bdb864d3eb6461e9a8627963fe4c1a4b8') +sha1sums=('8c85c9de379f0e8ad8a3dffc2136c6b25c0fa4a9') build() { cd "${srcdir}" diff --git a/extra/kdeutils-superkaramba/PKGBUILD b/extra/kdeutils-superkaramba/PKGBUILD index dc14790c2..119316427 100644 --- a/extra/kdeutils-superkaramba/PKGBUILD +++ b/extra/kdeutils-superkaramba/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 158518 2012-05-03 22:35:40Z andrea $ +# $Id: PKGBUILD 161254 2012-06-08 06:39:37Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgname=kdeutils-superkaramba -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 pkgdesc='An engine for cool desktop eyecandy' url='http://kde.org/applications/utilities/superkaramba/' @@ -13,7 +13,7 @@ makedepends=('cmake' 'automoc4') groups=('kde' 'kdeutils') install=${pkgname}.install source=("http://download.kde.org/stable/${pkgver}/src/superkaramba-${pkgver}.tar.xz") -sha1sums=('9376f27c311d3e9c6f21719eb7d0b2ccc893908e') +sha1sums=('b013e4bd063790e5970cf798f247edb87d576900') build() { cd "${srcdir}" diff --git a/extra/kdeutils-sweeper/PKGBUILD b/extra/kdeutils-sweeper/PKGBUILD index f1338760e..a119e3dbf 100644 --- a/extra/kdeutils-sweeper/PKGBUILD +++ b/extra/kdeutils-sweeper/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 158520 2012-05-03 22:35:45Z andrea $ +# $Id: PKGBUILD 161256 2012-06-08 06:39:40Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgname=kdeutils-sweeper -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 pkgdesc='System Cleaner' url='http://kde.org/applications/utilities/sweeper' @@ -13,7 +13,7 @@ depends=('kdebase-runtime') makedepends=('cmake' 'automoc4') groups=('kde' 'kdeutils') source=("http://download.kde.org/stable/${pkgver}/src/sweeper-${pkgver}.tar.xz") -sha1sums=('ad2c9ec51458e1615714e81cd5907f5d2393984f') +sha1sums=('8a4dd11724ed14987981dfaa60e742cfd80ee6d9') build() { cd "${srcdir}" diff --git a/extra/kdewebdev/PKGBUILD b/extra/kdewebdev/PKGBUILD index 14f5a25f1..87c9d8680 100644 --- a/extra/kdewebdev/PKGBUILD +++ b/extra/kdewebdev/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 158522 2012-05-03 22:35:51Z andrea $ +# $Id: PKGBUILD 161258 2012-06-08 06:39:44Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> # Contributor: Pierre Schmitz <pierre@archlinux.de> @@ -7,7 +7,7 @@ pkgname=('kdewebdev-kfilereplace' 'kdewebdev-kimagemapeditor' 'kdewebdev-klinkstatus' 'kdewebdev-kommander') -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 arch=('i686' 'x86_64') url='http://www.kde.org' @@ -15,7 +15,7 @@ license=('GPL' 'LGPL' 'FDL') groups=('kde' 'kdewebdev') makedepends=('cmake' 'automoc4' 'ruby' 'tidyhtml' 'kdepimlibs' 'boost') source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.xz") -sha1sums=('481863c8a59b48613b0823c16cfff8566d03f5ae') +sha1sums=('bab86ef6c04515a454298cee46eccb25e590f972') build() { cd $srcdir diff --git a/extra/libkdcraw/PKGBUILD b/extra/libkdcraw/PKGBUILD index f852477a2..0c86678d2 100644 --- a/extra/libkdcraw/PKGBUILD +++ b/extra/libkdcraw/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 158385 2012-05-03 22:31:14Z andrea $ +# $Id: PKGBUILD 161121 2012-06-08 06:35:18Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgname=libkdcraw -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 pkgdesc="A C++ interface used to decode RAW picture" url="http://kde.org/" @@ -14,7 +14,7 @@ replaces=('kdegraphics-libs') conflicts=('kdegraphics-libs') install=${pkgname}.install source=("http://download.kde.org/stable/${pkgver}/src/${pkgname}-${pkgver}.tar.xz") -sha1sums=('99fc4a00fe77df18aca53a8bdd0cfca79cab6e8b') +sha1sums=('ba67432cb3353a55d57ae749b42919399dfda3e2') build() { cd "${srcdir}" diff --git a/extra/libkdeedu/PKGBUILD b/extra/libkdeedu/PKGBUILD index ecdf9dab9..976577662 100644 --- a/extra/libkdeedu/PKGBUILD +++ b/extra/libkdeedu/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 158381 2012-05-03 22:31:08Z andrea $ +# $Id: PKGBUILD 161117 2012-06-08 06:35:12Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgname=libkdeedu -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 pkgdesc="Libraries used by KDE Education applications" url="http://kde.org/" @@ -13,7 +13,7 @@ makedepends=('cmake' 'automoc4') install=${pkgname}.install replaces=('kdeedu-libkdeedu' 'kdeedu-data') source=("http://download.kde.org/stable/${pkgver}/src/${pkgname}-${pkgver}.tar.xz") -sha1sums=('6d7ce71dea0a4ee16cdec8cfaf3b6dbd64c3eaa0') +sha1sums=('055fa35db3c482c61f8eab7d1912532823a88726') build() { cd "${srcdir}" diff --git a/extra/libkexiv2/PKGBUILD b/extra/libkexiv2/PKGBUILD index 280e88737..045d3b2df 100644 --- a/extra/libkexiv2/PKGBUILD +++ b/extra/libkexiv2/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 158387 2012-05-03 22:31:17Z andrea $ +# $Id: PKGBUILD 161123 2012-06-08 06:35:21Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgname=libkexiv2 -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 pkgdesc="A library to manipulate pictures metadata" url="http://kde.org/" @@ -13,7 +13,7 @@ makedepends=('cmake' 'automoc4') replaces=('kdegraphics-libs') conflicts=('kdegraphics-libs') source=("http://download.kde.org/stable/${pkgver}/src/${pkgname}-${pkgver}.tar.xz") -sha1sums=('6b7c6833479faa29916d3cc294a15f78c154c438') +sha1sums=('a3429dd70677498c890598cd1e3bf6a610669b77') build() { cd "${srcdir}" diff --git a/extra/libkipi/PKGBUILD b/extra/libkipi/PKGBUILD index f2ebba161..1714d1617 100644 --- a/extra/libkipi/PKGBUILD +++ b/extra/libkipi/PKGBUILD @@ -2,7 +2,7 @@ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgname=libkipi -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 pkgdesc="An interface to use kipi-plugins from a KDE application" url="http://kde.org/" @@ -14,7 +14,7 @@ replaces=('kdegraphics-libs') conflicts=('kdegraphics-libs') install=${pkgname}.install source=("http://download.kde.org/stable/${pkgver}/src/${pkgname}-${pkgver}.tar.xz") -sha1sums=('1646eca0521524eabcc8c1c97d8d2f85ff181cac') +sha1sums=('d30ef671be8caf8eb9ead68de53cf187f0fcf88b') build() { cd "${srcdir}" diff --git a/extra/libksane/PKGBUILD b/extra/libksane/PKGBUILD index bd83b841d..159a7ed69 100644 --- a/extra/libksane/PKGBUILD +++ b/extra/libksane/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 158391 2012-05-03 22:31:25Z andrea $ +# $Id: PKGBUILD 161127 2012-06-08 06:35:26Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgname=libksane -pkgver=4.8.3 +pkgver=4.8.4 pkgrel=1 pkgdesc="An image scanning library" url="http://kde.org/" @@ -14,7 +14,7 @@ replaces=('kdegraphics-libs') conflicts=('kdegraphics-libs') install=${pkgname}.install source=("http://download.kde.org/stable/${pkgver}/src/${pkgname}-${pkgver}.tar.xz") -sha1sums=('ccacaec0d1a46689cdf5f5294f14b442d0f4317b') +sha1sums=('5ac35d8478ccace1495ae42eb2169918cebc8d95') build() { cd "${srcdir}" diff --git a/extra/proftpd/PKGBUILD b/extra/proftpd/PKGBUILD index 2a05be6e2..fd4f5e4a7 100644 --- a/extra/proftpd/PKGBUILD +++ b/extra/proftpd/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 153971 2012-03-21 06:21:09Z pierre $ +# $Id: PKGBUILD 161293 2012-06-08 23:31:04Z tomegun $ # Maintainer: # Contributor: Daniel J Griffiths <ghost1227@archlinux.us> pkgname=proftpd pkgver=1.3.4a -pkgrel=4 +pkgrel=5 epoch=1 pkgdesc="A high-performance, scalable FTP server" arch=('i686' 'x86_64') @@ -14,11 +14,6 @@ depends=('libldap' 'libmysqlclient' 'postgresql-libs') backup=('etc/proftpd.conf' 'etc/conf.d/proftpd') source=(ftp://ftp.proftpd.org/distrib/source/${pkgname}-${pkgver}.tar.bz2{,.asc} 'proftpd' 'proftpd.logrotate' 'proftpd.conf.d') -sha1sums=('18ea33d8b9f858b6e735cc81af900f0eebee8d25' - '195b06e28e503f5e5ef355c3332884cc5e7954a9' - 'b7819d725817e55b69c73e2572c21a05db48cc86' - '83c38ec40efb7cc09d9824b98e65cd948a195cc6' - 'f34f60cb4fb1f4af7be7aca427cbad3cad22bbb9') build() { cd "${srcdir}/${pkgname}-${pkgver}" @@ -48,4 +43,12 @@ package() { install -Dm644 ../proftpd.conf.d "${pkgdir}/etc/conf.d/proftpd" install -Dm755 ../proftpd "${pkgdir}/etc/rc.d/proftpd" install -Dm755 contrib/xferstats.holger-preiss "${pkgdir}/usr/bin/ftpstats" + + # /var/run is a symlink to /run now + rm -rf "${pkgdir}/var" } +md5sums=('4e3235dc1ef95d36e59721d70c5c489c' + '3b0f44496adb36640b7a6cc165556bcf' + '8177292919acb2f087ded0bb7b2dcc32' + 'ddb09eb13131becdf0e081eef413116b' + '71d5932b0461c318ed68c2c0c2660736') diff --git a/extra/proftpd/proftpd b/extra/proftpd/proftpd index 357a7663d..df9283a77 100755 --- a/extra/proftpd/proftpd +++ b/extra/proftpd/proftpd @@ -20,11 +20,11 @@ case "$1" in ;; stop) stat_busy "Stopping ProFTPd Server" - [ -f /var/run/proftpd.pid ] && kill $(cat /var/run/proftpd.pid) &> /dev/null + [ -f /run/proftpd.pid ] && kill $(cat /run/proftpd.pid) &> /dev/null if [ $? -gt 0 ]; then stat_fail else - rm -f /var/run/proftpd.pid + rm -f /run/proftpd.pid rm_daemon proftpd stat_done fi diff --git a/extra/samba/PKGBUILD b/extra/samba/PKGBUILD index 11db4fc3e..e3f7f1997 100644 --- a/extra/samba/PKGBUILD +++ b/extra/samba/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 158568 2012-05-04 23:57:16Z allan $ +# $Id: PKGBUILD 161297 2012-06-09 01:08:52Z tomegun $ # Maintainer: Tobias Powalowski <tpowa@archlinux.org> # Contributor: judd <jvinet@zeroflux.org> pkgbase=samba @@ -8,7 +8,7 @@ pkgver=3.6.5 # to append 'a','b',etc to their subsequent releases, which pamcan # misconstrues as alpha, beta, etc. Bad samba! _realver=3.6.5 -pkgrel=1 +pkgrel=2 arch=(i686 x86_64) url="http://www.samba.org" license=('GPL3') @@ -21,7 +21,7 @@ source=(http://us1.samba.org/samba/ftp/stable/${pkgbase}-${_realver}.tar.gz smbd.service nmbd.service winbindd.service - smbd.conf) + samba.conf) ### UNINSTALL dmapi package before building!!! build() { @@ -92,6 +92,7 @@ backup=(etc/logrotate.d/samba etc/xinetd.d/swat etc/conf.d/samba) depends=('db' 'popt' 'libcups' 'acl' 'libldap' "smbclient>=$pkgver" 'libcap' 'krb5' 'pam' 'gamin' 'gnutls' 'e2fsprogs' 'tdb' 'talloc') +install='samba.install' cd ${srcdir}/samba-${_realver}/source3 mkdir -p ${pkgdir}/etc/samba/private chmod 700 ${pkgdir}/etc/samba/private @@ -152,10 +153,12 @@ depends=('db' 'popt' 'libcups' 'acl' 'libldap' "smbclient>=$pkgver" 'libcap' 'kr for i in smbd nmbd winbindd; do install -D -m644 ${srcdir}/$i.service ${pkgdir}/usr/lib/systemd/system/$i.service done - install -D -m644 ${srcdir}/smbd.conf ${pkgdir}/usr/lib/tmpfiles.d/samba.conf + # create ephemeral dirs via tmpfiles rather than shipping them in package + install -D -m644 ${srcdir}/samba.conf ${pkgdir}/usr/lib/tmpfiles.d/samba.conf + rm -rf ${pkgdir}/var/run } md5sums=('2f0c14547333c1b48fd4728b031e7040' - 'dfc6f9018c556b9783c7140de183727f' + 'a45a4283723be2b0ae32439dc4496a09' '5697da77590ec092cc8a883bae06093c' 'a4bbfa39fee95bba2e7ad6b535fae7e6' '96f82c38f3f540b53f3e5144900acf17' @@ -163,4 +166,4 @@ md5sums=('2f0c14547333c1b48fd4728b031e7040' '389cc4fa3b459360feaa1b3d93274693' 'ea6a1251be979cb30c6098a28b270d2d' '455f106ce7a4f983975b3a686eaa85e5' - '6956c4f9989bec8f313de7d9343b6ba1') + '8e7ed39b54968e427f9506e9107bfb45') diff --git a/extra/samba/samba b/extra/samba/samba index 2a04bfec4..6098ee0cb 100755 --- a/extra/samba/samba +++ b/extra/samba/samba @@ -10,9 +10,6 @@ case "$1" in start) rc=0 stat_busy "Starting Samba Server" - if [ ! -x /var/run/samba ] ; then - install -m755 -d /var/run/samba - fi if [ ! -x /var/log/samba ] ; then install -m755 -d /var/log/samba fi @@ -39,9 +36,9 @@ case "$1" in if [ $rc -gt 0 ]; then stat_fail else - rm /var/run/samba/smbd.pid &>/dev/null - rm /var/run/samba/nmbd.pid &>/dev/null - rm /var/run/samba/winbindd.pid &>/dev/null + rm /run/samba/smbd.pid &>/dev/null + rm /run/samba/nmbd.pid &>/dev/null + rm /run/samba/winbindd.pid &>/dev/null rm_daemon samba stat_done fi diff --git a/extra/samba/samba.conf b/extra/samba/samba.conf new file mode 100644 index 000000000..c12610dd8 --- /dev/null +++ b/extra/samba/samba.conf @@ -0,0 +1 @@ +D /run/samba 0755 - - - diff --git a/extra/samba/samba.install b/extra/samba/samba.install new file mode 100644 index 000000000..09439743a --- /dev/null +++ b/extra/samba/samba.install @@ -0,0 +1,7 @@ +#!/bin/sh + +post_install() { + systemd-tmpfiles --create /usr/lib/tmpfiles.d/smbd.conf +} + +# vim:set ts=2 sw=2 et: diff --git a/extra/squid/PKGBUILD b/extra/squid/PKGBUILD index 5141cea76..46b3c23cd 100644 --- a/extra/squid/PKGBUILD +++ b/extra/squid/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 157558 2012-04-29 00:21:17Z eric $ +# $Id: PKGBUILD 161289 2012-06-08 23:27:08Z dreisner $ # Maintainer: Kevin Piche <kevin@archlinux.org> # Contributor: Tom Newsom <Jeepster@gmx.co.uk> pkgname=squid -pkgver=3.1.19 -pkgrel=2 +pkgver=3.1.20 +pkgrel=1 pkgdesc="A full-featured Web proxy cache server." arch=('i686' 'x86_64') url="http://www.squid-cache.org" @@ -15,7 +15,7 @@ backup=('etc/squid/squid.conf' 'etc/squid/mime.conf' 'etc/conf.d/squid') install=squid.install source=("http://www.squid-cache.org/Versions/v3/3.1/${pkgname}-${pkgver}.tar.bz2" 'squid' 'squid.conf.d' 'squid.pam' 'squid.cron') -md5sums=('9b6ffaf96bee8f05f0085bc6361d7c94' +md5sums=('c4d733a383c0508fd0746d64a2d7278a' 'd213b0cc1db72b749bb8c88716fdab39' '2383772ef94efddc7b920628bc7ac5b0' '270977cdd9b47ef44c0c427ab9034777' @@ -61,5 +61,8 @@ package() { install -D -m755 "${srcdir}"/squid.cron "${pkgdir}"/etc/cron.weekly/squid install -D -m644 "${srcdir}"/squid.conf.d "${pkgdir}"/etc/conf.d/squid install -D -m644 "${srcdir}"/squid.pam "${pkgdir}"/etc/pam.d/squid + + # avoid conflict with filesystem>=2012.06 + rmdir "$pkgdir/var/run" } # vim: ts=2 sw=2 et ft=sh diff --git a/multilib-testing/lib32-glibc/PKGBUILD b/multilib-testing/lib32-glibc/PKGBUILD new file mode 100644 index 000000000..f8bbb8476 --- /dev/null +++ b/multilib-testing/lib32-glibc/PKGBUILD @@ -0,0 +1,283 @@ +# $Id: PKGBUILD 72106 2012-06-08 20:59:52Z heftig $ +# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com> +# Contributor: Jan de Groot <jgc@archlinux.org> +# Contributor: Allan McRae <allan@archlinux.org> + +# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc +# NOTE: valgrind requires rebuilt with each major glibc version + +_pkgbasename=glibc +pkgname=lib32-$_pkgbasename +pkgver=2.15 +pkgrel=11 +_glibcdate=20111227 +pkgdesc="GNU C Library for multilib" +arch=('x86_64') +url="http://www.gnu.org/software/libc" +license=('GPL' 'LGPL') +depends=("glibc>=$pkgver") +makedepends=('gcc-multilib>=4.6') +options=('!strip' '!emptydirs') +source=(ftp://ftp.archlinux.org/other/glibc/${_pkgbasename}-${pkgver}_${_glibcdate}.tar.xz + glibc-2.15-do-not-install-timezone-files.patch + glibc-2.15-do-not-install-timezone-files-2.patch + glibc-__i686.patch + glibc-2.14-libdl-crash.patch + glibc-2.14-reexport-rpc-interface.patch + glibc-2.14-reinstall-nis-rpc-headers.patch + glibc-2.15-fix-res_query-assert.patch + glibc-2.15-regex.patch + glibc-2.15-lddebug-scopes.patch + glibc-2.15-revert-c5a0802a.patch + glibc-2.15-scanf.patch + glibc-2.15-ifunc.patch + glibc-2.15-avx.patch + glibc-2.15-strcasecmp-disable-avx.patch + glibc-2.15-gb18030.patch.gz + glibc-2.15-revert-netlink-cache.patch + glibc-2.15-arena.patch + glibc-2.15-negative-result-cache.patch + glibc-2.15-multiarch-x86-strcmp.patch + glibc-2.15-vdso.patch + glibc-2.15-feraiseexcept-plt.patch + glibc-2.15-vfprintf-nargs.patch + glibc-2.15-__libc_res_nquerydomain-out-of-bounds.patch + glibc-2.15-fmtmsg-locking.patch + glibc-2.15-non-signalling-comparisons.patch + glibc-2.15-rintf-rounding.patch + glibc-2.15-nearbyintf-rounding.patch + glibc-2.15-confstr-local-buffer-extent.patch + glibc-2.15-testsuite.patch + lib32-glibc.conf) +md5sums=('6ffdf5832192b92f98bdd125317c0dfc' + '7ef69c530a15106de93e4de2df2d393e' + 'b6c619e5cf91829a15ce34dccef676d5' + 'addfddd648a4bf832eb126aba944ebae' + '6970bcfeb3bf88913436d5112d16f588' + 'c5de2a946215d647c8af5432ec4b0da0' + '55febbb72139ac7b65757df085024b83' + '31f415b41197d85d3bbee3d1eecd06a3' + 'b3526cbd5e29773560dba725db99af5a' + '3c219ddfb619b6df903cac4cc42c611d' + '7ae3e426251ae33e73dbad71f9c91378' + 'f0782ddbf38e0b30ec6b85348816046f' + '3d844b53b2dbb7c996e39c7ad932f55d' + '41ae047ac88e8f6f547c70b0a0bc3b72' + 'fccb89f6628f59752278e125c35941f8' + '001a4044ac3d59aca6ee144eaca57ab2' + '94b61302a7ca6c5764d013dc7738fcfe' + 'a9ffadcfd2d357f91fee0b861fd4a7c6' + '2c46b8e294de24c531f2253ff69aeef3' + '7a2998a04ebfcf8bf820540f490ce714' + '0d77d20fa7fe2f87ad945cb9edb4d91d' + 'bfdefac3d705f41fbf84b1de1dc945af' + '3443e89c1e98089cd6c3e3c23f0c3d85' + '340deaa582a95ddde86edb624c3bfea0' + '6bbac50e6ff82187654e6a0a7bd849e7' + 'c483504cf404ed0b44480af627813a97' + '1419d61fd1dbc6cdc48bb59da86fa66f' + '7ff501435078b1a2622124fbeaafc921' + '8d1023a51e0932681b46440d5f8551ee' + '6962c3fa29306bfbf6f0d22b19cb825d' + '6e052f1cb693d5d3203f50f9d4e8c33b') + +build() { + cd ${srcdir}/glibc + + # timezone data is in separate package (tzdata) + # http://sourceware.org/git/?p=glibc.git;a=commit;h=482ff4da + patch -p1 -i ${srcdir}/glibc-2.15-do-not-install-timezone-files.patch + # http://sourceware.org/git/?p=glibc.git;a=commit;h=a458e7fe + patch -p1 -i ${srcdir}/glibc-2.15-do-not-install-timezone-files-2.patch + + # undefine __i686 + # http://sourceware.org/glibc/wiki/Release/2.15#Build_Failures + patch -p1 -i ${srcdir}/glibc-__i686.patch + + # http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=675155e9 (fedora branch) + # http://sourceware.org/ml/libc-alpha/2011-06/msg00006.html + patch -p1 -i ${srcdir}/glibc-2.14-libdl-crash.patch + + # re-export RPC interface until libtirpc is ready as a replacement + # http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=acee4873 (fedora branch) + patch -p1 -i ${srcdir}/glibc-2.14-reexport-rpc-interface.patch + # http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=bdd816a3 (fedora branch) + patch -p1 -i ${srcdir}/glibc-2.14-reinstall-nis-rpc-headers.patch + + # fix res_query assertion + # http://sourceware.org/bugzilla/show_bug.cgi?id=13013 + patch -p1 -i ${srcdir}/glibc-2.15-fix-res_query-assert.patch + + # fix up regcomp/regexec + # http://sourceware.org/git/?p=glibc.git;a=commit;h=2ba92745 + patch -p1 -i ${srcdir}/glibc-2.15-regex.patch + + # propriety nvidia crash - https://bugzilla.redhat.com/show_bug.cgi?id=737223 + # http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=0c95ab64 (fedora branch) + patch -p1 -i ${srcdir}/glibc-2.15-lddebug-scopes.patch + + # revert commit c5a0802a - causes various hangs + # https://bugzilla.redhat.com/show_bug.cgi?id=769421 + # Note: fedora may have actual fix (not submitted upstream yet...) + # http://pkgs.fedoraproject.org/gitweb/?p=glibc.git;a=blob_plain;f=glibc-rh552960-2.patch + patch -p1 -i ${srcdir}/glibc-2.15-revert-c5a0802a.patch + + # fix realloc usage in vfscanf + # http://sourceware.org/git/?p=glibc.git;a=commit;h=20b38e03 + patch -p1 -i ${srcdir}/glibc-2.15-scanf.patch + + # fix ifunc relocations + # http://sourceware.org/git/?p=glibc.git;a=commit;h=6ee65ed6 + patch -p1 -i ${srcdir}/glibc-2.15-ifunc.patch + + # fix AVX detection + # http://sourceware.org/git/?p=glibc.git;a=commit;h=afc5ed09 + # http://sourceware.org/git/?p=glibc.git;a=commit;h=08cf777f + patch -p1 -i ${srcdir}/glibc-2.15-avx.patch + # and "fix" strcasecmp + patch -p1 -i ${srcdir}/glibc-2.15-strcasecmp-disable-avx.patch + + # fix GB18030 charmap + # http://sourceware.org/bugzilla/show_bug.cgi?id=11837 + # http://sourceware.org/git/?p=glibc.git;a=commit;h=2a57bd79 (fedora branch) + # http://sourceware.org/git/?p=glibc.git;a=commit;h=3d828a61 (fedora branch) + patch -p1 -i ${srcdir}/glibc-2.15-gb18030.patch + + # fix crash in __nscd_get_mapping if nscd not running + # http://sourceware.org/bugzilla/show_bug.cgi?id=13594 (potential fix in comment) + # reverts commit 3a2c0242 and other necessary following changes... + patch -p1 -i ${srcdir}/glibc-2.15-revert-netlink-cache.patch + + # handle ARENA_TEST correctly + # http://sourceware.org/git/?p=glibc.git;a=commit;h=41b81892 + patch -p1 -i ${srcdir}/glibc-2.15-arena.patch + + # Do not cache negative results in nscd if these are transient + # http://sourceware.org/git/?p=glibc.git;a=commit;h=3e1aa84e + patch -p1 -i ${srcdir}/glibc-2.15-negative-result-cache.patch + + # strcasecmp_l, strncasecmp_l act as strcmp for multiarch x86 + # http://sourceware.org/git/?p=glibc.git;a=commit;h=0bab47b6 + patch -p1 -i ${srcdir}/glibc-2.15-multiarch-x86-strcmp.patch + + # always set l_used for vDSO. + # http://sourceware.org/git/?p=glibc.git;a=commit;h=1f393a11 + patch -p1 -i ${srcdir}/glibc-2.15-vdso.patch + + # fix x86 PLT slot usage for feraiseexcept + # http://sourceware.org/git/?p=glibc.git;a=commit;h=7c35ffed + patch -p1 -i ${srcdir}/glibc-2.15-feraiseexcept-plt.patch + + # vfprintf nargs overflow - CVE-2012-0864 + # http://sourceware.org/git/?p=glibc.git;a=commit;h=7c1f4834 + patch -p1 -i ${srcdir}/glibc-2.15-vfprintf-nargs.patch + + # avoid out ouf bounds read in __libc_res_nquerydomain + # http://sourceware.org/git/?p=glibc.git;a=commit;h=8fdceb2e + patch -p1 -i ${srcdir}/glibc-2.15-__libc_res_nquerydomain-out-of-bounds.patch + + # make fmtmsg function thread-safe + # http://sourceware.org/git/?p=glibc.git;a=commit;h=7724defc + patch -p1 -i ${srcdir}/glibc-2.15-fmtmsg-locking.patch + + # use non-signaling floating-point comparisons in math functions + # http://sourceware.org/git/?p=glibc.git;a=commit;h=92221550 + patch -p1 -i ${srcdir}/glibc-2.15-non-signalling-comparisons.patch + + # fix rintf rounding. + # http://sourceware.org/git/?p=glibc.git;a=commit;h=fe45ce09 + patch -p1 -i ${srcdir}/glibc-2.15-rintf-rounding.patch + + # fix nearbyintf rounding + # http://sourceware.org/git/?p=glibc.git;a=commit;h=6cbeae47 + patch -p1 -i ${srcdir}/glibc-2.15-nearbyintf-rounding.patch + + # fix varaible scope issue in confstr + # http://sourceware.org/git/?p=glibc.git;a=commit;h=ac4c54f0 + # http://sourceware.org/git/?p=glibc.git;a=commit;h=d6a403f9 + patch -p1 -i ${srcdir}/glibc-2.15-confstr-local-buffer-extent.patch + + # fix testsuite failures with --as-needed + # http://sourceware.org/git/?p=glibc.git;a=commit;h=d4c2917f + patch -p1 -i ${srcdir}/glibc-2.15-testsuite.patch + + cd ${srcdir} + mkdir glibc-build + cd glibc-build + + export CC="gcc -m32" + + # Hack to fix NPTL issues with Xen, only required on 32bit platforms + # TODO: make separate glibc-xen package for i686 + export CFLAGS="${CFLAGS} -mno-tls-direct-seg-refs" + + echo "slibdir=/usr/lib32" >> configparms + + # remove hardening options from CFLAGS for building libraries + CFLAGS=${CFLAGS/-fstack-protector/} + CFLAGS=${CFLAGS/-D_FORTIFY_SOURCE=2/} + + ${srcdir}/glibc/configure --prefix=/usr \ + --libdir=/usr/lib32 --libexecdir=/usr/lib32 \ + --with-headers=/usr/include \ + --enable-add-ons=nptl,libidn \ + --enable-kernel=2.6.32 \ + --enable-bind-now --disable-profile \ + --enable-multi-arch i686-unknown-linux-gnu + + # build libraries with hardening disabled + echo "build-programs=no" >> configparms + make + + # re-enable hardening for programs + sed -i "/build-programs=/s#no#yes#" configparms + echo "CC += -fstack-protector -D_FORTIFY_SOURCE=2" >> configparms + echo "CXX += -fstack-protector -D_FORTIFY_SOURCE=2" >> configparms + make + + # remove harding in preparation to run test-suite + sed -i '2,4d' configparms +} + +check() { + cd ${srcdir}/glibc-build + make -k check +} + +package() { + cd ${srcdir}/glibc-build + make install_root=${pkgdir} install + + rm -rf ${pkgdir}/{etc,sbin,usr/{bin,sbin,share},var} + + # We need one 32 bit specific header file + find ${pkgdir}/usr/include -type f -not -name stubs-32.h -delete + + # Do not strip the following files for improved debugging support + # ("improved" as in not breaking gdb and valgrind...): + # ld-${pkgver}.so + # libc-${pkgver}.so + # libpthread-${pkgver}.so + # libthread_db-1.0.so + + cd $pkgdir + strip $STRIP_BINARIES usr/lib32/getconf/* + + strip $STRIP_STATIC usr/lib32/*.a + + strip $STRIP_SHARED usr/lib32/{libanl,libBrokenLocale,libcidn,libcrypt}-${pkgver}.so \ + usr/lib32/libnss_{compat,db,dns,files,hesiod,nis,nisplus}-${pkgver}.so \ + usr/lib32/{libdl,libm,libnsl,libresolv,librt,libutil}-${pkgver}.so \ + usr/lib32/{libmemusage,libpcprofile,libSegFault}.so \ + usr/lib32/{pt_chown,{audit,gconv}/*.so} + + # Dynamic linker + mkdir ${pkgdir}/lib + ln -s ../usr/lib32/ld-linux.so.2 ${pkgdir}/lib/ + + # Add lib32 paths to the default library search path + install -Dm644 "$srcdir/lib32-glibc.conf" "$pkgdir/etc/ld.so.conf.d/lib32-glibc.conf" + + # Symlink /usr/lib32/locale to /usr/lib/locale + ln -s ../lib/locale "$pkgdir/usr/lib32/locale" +} diff --git a/multilib-testing/lib32-glibc/glibc-2.14-libdl-crash.patch b/multilib-testing/lib32-glibc/glibc-2.14-libdl-crash.patch new file mode 100644 index 000000000..6c9d2718e --- /dev/null +++ b/multilib-testing/lib32-glibc/glibc-2.14-libdl-crash.patch @@ -0,0 +1,132 @@ +diff --git a/elf/dl-close.c b/elf/dl-close.c +index 73b2a2f..9bd91e3 100644 +--- a/elf/dl-close.c ++++ b/elf/dl-close.c +@@ -1,5 +1,5 @@ + /* Close a shared object opened by `_dl_open'. +- Copyright (C) 1996-2007, 2009, 2010, 2011 Free Software Foundation, Inc. ++ Copyright (C) 1996-2007, 2009, 2010 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 +@@ -119,17 +119,8 @@ _dl_close_worker (struct link_map *map) + if (map->l_direct_opencount > 0 || map->l_type != lt_loaded + || dl_close_state != not_pending) + { +- if (map->l_direct_opencount == 0) +- { +- if (map->l_type == lt_loaded) +- dl_close_state = rerun; +- else if (map->l_type == lt_library) +- { +- struct link_map **oldp = map->l_initfini; +- map->l_initfini = map->l_orig_initfini; +- _dl_scope_free (oldp); +- } +- } ++ if (map->l_direct_opencount == 0 && map->l_type == lt_loaded) ++ dl_close_state = rerun; + + /* There are still references to this object. Do nothing more. */ + if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_FILES, 0)) +diff --git a/elf/dl-deps.c b/elf/dl-deps.c +index 9e30594..3890d00 100644 +--- a/elf/dl-deps.c ++++ b/elf/dl-deps.c +@@ -478,6 +478,7 @@ _dl_map_object_deps (struct link_map *map, + nneeded * sizeof needed[0]); + atomic_write_barrier (); + l->l_initfini = l_initfini; ++ l->l_free_initfini = 1; + } + + /* If we have no auxiliary objects just go on to the next map. */ +@@ -681,6 +682,7 @@ Filters not supported with LD_TRACE_PRELINKING")); + l_initfini[nlist] = NULL; + atomic_write_barrier (); + map->l_initfini = l_initfini; ++ map->l_free_initfini = 1; + if (l_reldeps != NULL) + { + atomic_write_barrier (); +@@ -689,5 +691,5 @@ Filters not supported with LD_TRACE_PRELINKING")); + _dl_scope_free (old_l_reldeps); + } + if (old_l_initfini != NULL) +- map->l_orig_initfini = old_l_initfini; ++ _dl_scope_free (old_l_initfini); + +diff --git a/elf/dl-libc.c b/elf/dl-libc.c +index 7be9483..a13fce3 100644 +--- a/elf/dl-libc.c ++++ b/elf/dl-libc.c +@@ -265,13 +265,13 @@ libc_freeres_fn (free_mem) + + for (Lmid_t ns = 0; ns < GL(dl_nns); ++ns) + { +- /* Remove all additional names added to the objects. */ + for (l = GL(dl_ns)[ns]._ns_loaded; l != NULL; l = l->l_next) + { + struct libname_list *lnp = l->l_libname->next; + + l->l_libname->next = NULL; + ++ /* Remove all additional names added to the objects. */ + while (lnp != NULL) + { + struct libname_list *old = lnp; +@@ -279,6 +279,10 @@ libc_freeres_fn (free_mem) + if (! old->dont_free) + free (old); + } ++ ++ /* Free the initfini dependency list. */ ++ if (l->l_free_initfini) ++ free (l->l_initfini); + } + + if (__builtin_expect (GL(dl_ns)[ns]._ns_global_scope_alloc, 0) != 0 +diff --git a/elf/rtld.c b/elf/rtld.c +index 4a9109e..617e30e 100644 +--- a/elf/rtld.c ++++ b/elf/rtld.c +@@ -2251,6 +2251,7 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n", + lnp->dont_free = 1; + lnp = lnp->next; + } ++ l->l_free_initfini = 0; + + if (l != &GL(dl_rtld_map)) + _dl_relocate_object (l, l->l_scope, GLRO(dl_lazy) ? RTLD_LAZY : 0, +diff --git a/include/link.h b/include/link.h +index e877104..051b99a 100644 +--- a/include/link.h ++++ b/include/link.h +@@ -1,6 +1,6 @@ + /* Data structure for communication from the run-time dynamic linker for + loaded ELF shared objects. +- Copyright (C) 1995-2006, 2007, 2009, 2010, 2011 Free Software Foundation, Inc. ++ Copyright (C) 1995-2006, 2007, 2009, 2010 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 +@@ -192,6 +192,9 @@ struct link_map + during LD_TRACE_PRELINKING=1 + contains any DT_SYMBOLIC + libraries. */ ++ unsigned int l_free_initfini:1; /* Nonzero if l_initfini can be ++ freed, ie. not allocated with ++ the dummy malloc in ld.so. */ + + /* Collected information about own RPATH directories. */ + struct r_search_path_struct l_rpath_dirs; +@@ -240,9 +243,6 @@ struct link_map + + /* List of object in order of the init and fini calls. */ + struct link_map **l_initfini; +- /* The init and fini list generated at startup, saved when the +- object is also loaded dynamically. */ +- struct link_map **l_orig_initfini; + + /* List of the dependencies introduced through symbol binding. */ + struct link_map_reldeps diff --git a/multilib-testing/lib32-glibc/glibc-2.14-reexport-rpc-interface.patch b/multilib-testing/lib32-glibc/glibc-2.14-reexport-rpc-interface.patch new file mode 100644 index 000000000..e2beea881 --- /dev/null +++ b/multilib-testing/lib32-glibc/glibc-2.14-reexport-rpc-interface.patch @@ -0,0 +1,26 @@ +diff --git a/include/libc-symbols.h b/include/libc-symbols.h +index 67e1ca2..5e7cca5 100644 +--- a/include/libc-symbols.h ++++ b/include/libc-symbols.h +@@ -635,7 +635,7 @@ for linking") + # define libc_hidden_proto(name, attrs...) hidden_proto (name, ##attrs) + # define libc_hidden_def(name) hidden_def (name) + # define libc_hidden_weak(name) hidden_weak (name) +-# define libc_hidden_nolink(name, version) hidden_nolink (name, libc, version) ++# define libc_hidden_nolink(name, version) hidden_def (name) + # define libc_hidden_ver(local, name) hidden_ver (local, name) + # define libc_hidden_data_def(name) hidden_data_def (name) + # define libc_hidden_data_weak(name) hidden_data_weak (name) +diff --git a/sunrpc/Makefile b/sunrpc/Makefile +index 5134ce9..40c73d1 100644 +--- a/sunrpc/Makefile ++++ b/sunrpc/Makefile +@@ -53,7 +53,7 @@ headers-in-tirpc = $(addprefix rpc/,auth.h auth_unix.h clnt.h pmap_clnt.h \ + des_crypt.h) + headers-not-in-tirpc = $(addprefix rpc/,key_prot.h rpc_des.h) \ + $(rpcsvc:%=rpcsvc/%) rpcsvc/bootparam.h +-headers = rpc/netdb.h ++headers = rpc/netdb.h $(headers-in-tirpc) $(headers-not-in-tirpc) + install-others = $(inst_sysconfdir)/rpc + generated = $(rpcsvc:%.x=rpcsvc/%.h) $(rpcsvc:%.x=x%.c) $(rpcsvc:%.x=x%.stmp) \ + $(rpcsvc:%.x=rpcsvc/%.stmp) rpcgen diff --git a/multilib-testing/lib32-glibc/glibc-2.14-reinstall-nis-rpc-headers.patch b/multilib-testing/lib32-glibc/glibc-2.14-reinstall-nis-rpc-headers.patch new file mode 100644 index 000000000..eb0fd822d --- /dev/null +++ b/multilib-testing/lib32-glibc/glibc-2.14-reinstall-nis-rpc-headers.patch @@ -0,0 +1,28 @@ +From bdd816a366c4e5bba5de7157d948e0c0737fb4fb Mon Sep 17 00:00:00 2001 +From: Andreas Schwab <schwab@redhat.com> +Date: Tue, 17 May 2011 17:42:30 +0200 +Subject: [PATCH] Reinstall NIS RPC headers + +--- + nis/Makefile | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/nis/Makefile b/nis/Makefile +index b5c9609..d2934d9 100644 +--- a/nis/Makefile ++++ b/nis/Makefile +@@ -23,9 +23,9 @@ subdir := nis + + aux := nis_hash + ++headers := $(wildcard rpcsvc/*.[hx]) + distribute := nss-nis.h nss-nisplus.h nis_intern.h Banner \ +- nisplus-parser.h nis_xdr.h nss \ +- $(wildcard rpcsvc/*.[hx]) ++ nisplus-parser.h nis_xdr.h nss + + # These are the databases available for the nis (and perhaps later nisplus) + # service. This must be a superset of the services in nss. +-- +1.7.5.4 + diff --git a/multilib-testing/lib32-glibc/glibc-2.15-__libc_res_nquerydomain-out-of-bounds.patch b/multilib-testing/lib32-glibc/glibc-2.15-__libc_res_nquerydomain-out-of-bounds.patch new file mode 100644 index 000000000..6f0a0398f --- /dev/null +++ b/multilib-testing/lib32-glibc/glibc-2.15-__libc_res_nquerydomain-out-of-bounds.patch @@ -0,0 +1,24 @@ +diff --git a/resolv/res_query.c b/resolv/res_query.c +index 947c651..abccd4a 100644 +--- a/resolv/res_query.c ++++ b/resolv/res_query.c +@@ -556,12 +556,16 @@ __libc_res_nquerydomain(res_state statp, + * copy without '.' if present. + */ + n = strlen(name); +- if (n >= MAXDNAME) { ++ ++ /* Decrement N prior to checking it against MAXDNAME ++ so that we detect a wrap to SIZE_MAX and return ++ a reasonable error. */ ++ n--; ++ if (n >= MAXDNAME - 1) { + RES_SET_H_ERRNO(statp, NO_RECOVERY); + return (-1); + } +- n--; +- if (n >= 0 && name[n] == '.') { ++ if (name[n] == '.') { + strncpy(nbuf, name, n); + nbuf[n] = '\0'; + } else diff --git a/multilib-testing/lib32-glibc/glibc-2.15-arena.patch b/multilib-testing/lib32-glibc/glibc-2.15-arena.patch new file mode 100644 index 000000000..46f52e98d --- /dev/null +++ b/multilib-testing/lib32-glibc/glibc-2.15-arena.patch @@ -0,0 +1,29 @@ +diff --git a/malloc/arena.c b/malloc/arena.c +index d3cf4b9..b1c9469 100644 +--- a/malloc/arena.c ++++ b/malloc/arena.c +@@ -828,7 +828,7 @@ arena_get2(mstate a_tsd, size_t size) + { + if (mp_.arena_max != 0) + narenas_limit = mp_.arena_max; +- else ++ else if (narenas > mp_.arena_test) + { + int n = __get_nprocs (); + +@@ -842,7 +842,14 @@ arena_get2(mstate a_tsd, size_t size) + } + repeat:; + size_t n = narenas; +- if (__builtin_expect (n <= mp_.arena_test || n < narenas_limit, 0)) ++ /* NB: the following depends on the fact that (size_t)0 - 1 is a ++ very large number and that the underflow is OK. If arena_max ++ is set the value of arena_test is irrelevant. If arena_test ++ is set but narenas is not yet larger or equal to arena_test ++ narenas_limit is 0. There is no possibility for narenas to ++ be too big for the test to always fail since there is not ++ enough address space to create that many arenas. */ ++ if (__builtin_expect (n <= narenas_limit - 1, 0)) + { + if (catomic_compare_and_exchange_bool_acq (&narenas, n + 1, n)) + goto repeat; diff --git a/multilib-testing/lib32-glibc/glibc-2.15-avx.patch b/multilib-testing/lib32-glibc/glibc-2.15-avx.patch new file mode 100644 index 000000000..5439da8d0 --- /dev/null +++ b/multilib-testing/lib32-glibc/glibc-2.15-avx.patch @@ -0,0 +1,196 @@ +diff --git a/sysdeps/x86_64/fpu/multiarch/e_atan2.c b/sysdeps/x86_64/fpu/multiarch/e_atan2.c +index 6867c6e..3a615fc 100644 +--- a/sysdeps/x86_64/fpu/multiarch/e_atan2.c ++++ b/sysdeps/x86_64/fpu/multiarch/e_atan2.c +@@ -14,7 +14,7 @@ extern double __ieee754_atan2_fma4 (double, double); + + libm_ifunc (__ieee754_atan2, + HAS_FMA4 ? __ieee754_atan2_fma4 +- : (HAS_AVX ? __ieee754_atan2_avx : __ieee754_atan2_sse2)); ++ : (HAS_YMM_USABLE ? __ieee754_atan2_avx : __ieee754_atan2_sse2)); + strong_alias (__ieee754_atan2, __atan2_finite) + + # define __ieee754_atan2 __ieee754_atan2_sse2 +diff --git a/sysdeps/x86_64/fpu/multiarch/e_exp.c b/sysdeps/x86_64/fpu/multiarch/e_exp.c +index 3c65028..7b2320a 100644 +--- a/sysdeps/x86_64/fpu/multiarch/e_exp.c ++++ b/sysdeps/x86_64/fpu/multiarch/e_exp.c +@@ -14,7 +14,7 @@ extern double __ieee754_exp_fma4 (double); + + libm_ifunc (__ieee754_exp, + HAS_FMA4 ? __ieee754_exp_fma4 +- : (HAS_AVX ? __ieee754_exp_avx : __ieee754_exp_sse2)); ++ : (HAS_YMM_USABLE ? __ieee754_exp_avx : __ieee754_exp_sse2)); + strong_alias (__ieee754_exp, __exp_finite) + + # define __ieee754_exp __ieee754_exp_sse2 +diff --git a/sysdeps/x86_64/fpu/multiarch/e_log.c b/sysdeps/x86_64/fpu/multiarch/e_log.c +index 3b468d0..ab277d6 100644 +--- a/sysdeps/x86_64/fpu/multiarch/e_log.c ++++ b/sysdeps/x86_64/fpu/multiarch/e_log.c +@@ -14,7 +14,7 @@ extern double __ieee754_log_fma4 (double); + + libm_ifunc (__ieee754_log, + HAS_FMA4 ? __ieee754_log_fma4 +- : (HAS_AVX ? __ieee754_log_avx ++ : (HAS_YMM_USABLE ? __ieee754_log_avx + : __ieee754_log_sse2)); + strong_alias (__ieee754_log, __log_finite) + +diff --git a/sysdeps/x86_64/fpu/multiarch/s_atan.c b/sysdeps/x86_64/fpu/multiarch/s_atan.c +index 3160201..78c7e09 100644 +--- a/sysdeps/x86_64/fpu/multiarch/s_atan.c ++++ b/sysdeps/x86_64/fpu/multiarch/s_atan.c +@@ -12,7 +12,8 @@ extern double __atan_fma4 (double); + # define __atan_fma4 ((void *) 0) + # endif + +-libm_ifunc (atan, HAS_FMA4 ? __atan_fma4 : HAS_AVX ? __atan_avx : __atan_sse2); ++libm_ifunc (atan, (HAS_FMA4 ? __atan_fma4 : ++ HAS_YMM_USABLE ? __atan_avx : __atan_sse2)); + + # define atan __atan_sse2 + #endif +diff --git a/sysdeps/x86_64/fpu/multiarch/s_sin.c b/sysdeps/x86_64/fpu/multiarch/s_sin.c +index 1ba9dbc..417acd0 100644 +--- a/sysdeps/x86_64/fpu/multiarch/s_sin.c ++++ b/sysdeps/x86_64/fpu/multiarch/s_sin.c +@@ -17,10 +17,12 @@ extern double __sin_fma4 (double); + # define __sin_fma4 ((void *) 0) + # endif + +-libm_ifunc (__cos, HAS_FMA4 ? __cos_fma4 : HAS_AVX ? __cos_avx : __cos_sse2); ++libm_ifunc (__cos, (HAS_FMA4 ? __cos_fma4 : ++ HAS_YMM_USABLE ? __cos_avx : __cos_sse2)); + weak_alias (__cos, cos) + +-libm_ifunc (__sin, HAS_FMA4 ? __sin_fma4 : HAS_AVX ? __sin_avx : __sin_sse2); ++libm_ifunc (__sin, (HAS_FMA4 ? __sin_fma4 : ++ HAS_YMM_USABLE ? __sin_avx : __sin_sse2)); + weak_alias (__sin, sin) + + # define __cos __cos_sse2 +diff --git a/sysdeps/x86_64/fpu/multiarch/s_tan.c b/sysdeps/x86_64/fpu/multiarch/s_tan.c +index 8f6601e..3047155 100644 +--- a/sysdeps/x86_64/fpu/multiarch/s_tan.c ++++ b/sysdeps/x86_64/fpu/multiarch/s_tan.c +@@ -12,7 +12,8 @@ extern double __tan_fma4 (double); + # define __tan_fma4 ((void *) 0) + # endif + +-libm_ifunc (tan, HAS_FMA4 ? __tan_fma4 : HAS_AVX ? __tan_avx : __tan_sse2); ++libm_ifunc (tan, (HAS_FMA4 ? __tan_fma4 : ++ HAS_YMM_USABLE ? __tan_avx : __tan_sse2)); + + # define tan __tan_sse2 + #endif +diff --git a/sysdeps/x86_64/multiarch/init-arch.c b/sysdeps/x86_64/multiarch/init-arch.c +index 65b0ee9..76d146c 100644 +--- a/sysdeps/x86_64/multiarch/init-arch.c ++++ b/sysdeps/x86_64/multiarch/init-arch.c +@@ -1,6 +1,6 @@ + /* Initialize CPU feature data. + This file is part of the GNU C Library. +- Copyright (C) 2008, 2009, 2010, 2011 Free Software Foundation, Inc. ++ Copyright (C) 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. + Contributed by Ulrich Drepper <drepper@redhat.com>. + + The GNU C Library is free software; you can redistribute it and/or +@@ -144,6 +144,18 @@ __init_cpu_features (void) + else + kind = arch_kind_other; + ++ if (__cpu_features.cpuid[COMMON_CPUID_INDEX_1].ecx & bit_AVX) ++ { ++ /* Reset the AVX bit in case OSXSAVE is disabled. */ ++ if ((__cpu_features.cpuid[COMMON_CPUID_INDEX_1].ecx & bit_OSXSAVE) != 0 ++ && ({ unsigned int xcrlow; ++ unsigned int xcrhigh; ++ asm ("xgetbv" ++ : "=a" (xcrlow), "=d" (xcrhigh) : "c" (0)); ++ (xcrlow & 6) == 6; })) ++ __cpu_features.feature[index_YMM_Usable] |= bit_YMM_Usable; ++ } ++ + __cpu_features.family = family; + __cpu_features.model = model; + atomic_write_barrier (); +diff --git a/sysdeps/x86_64/multiarch/init-arch.h b/sysdeps/x86_64/multiarch/init-arch.h +index 2a1df39..2dc75ab 100644 +--- a/sysdeps/x86_64/multiarch/init-arch.h ++++ b/sysdeps/x86_64/multiarch/init-arch.h +@@ -1,5 +1,5 @@ + /* This file is part of the GNU C Library. +- Copyright (C) 2008, 2009, 2010, 2011 Free Software Foundation, Inc. ++ Copyright (C) 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public +@@ -22,11 +22,13 @@ + #define bit_Prefer_SSE_for_memop (1 << 3) + #define bit_Fast_Unaligned_Load (1 << 4) + #define bit_Prefer_PMINUB_for_stringop (1 << 5) ++#define bit_YMM_Usable (1 << 6) + + #define bit_SSE2 (1 << 26) + #define bit_SSSE3 (1 << 9) + #define bit_SSE4_1 (1 << 19) + #define bit_SSE4_2 (1 << 20) ++#define bit_OSXSAVE (1 << 27) + #define bit_AVX (1 << 28) + #define bit_POPCOUNT (1 << 23) + #define bit_FMA (1 << 12) +@@ -48,6 +50,7 @@ + # define index_Prefer_SSE_for_memop FEATURE_INDEX_1*FEATURE_SIZE + # define index_Fast_Unaligned_Load FEATURE_INDEX_1*FEATURE_SIZE + # define index_Prefer_PMINUB_for_stringop FEATURE_INDEX_1*FEATURE_SIZE ++# define index_YMM_Usable FEATURE_INDEX_1*FEATURE_SIZE + + #else /* __ASSEMBLER__ */ + +@@ -92,7 +95,7 @@ extern struct cpu_features + + + extern void __init_cpu_features (void) attribute_hidden; +-#define INIT_ARCH()\ ++# define INIT_ARCH() \ + do \ + if (__cpu_features.kind == arch_kind_unknown) \ + __init_cpu_features (); \ +@@ -125,23 +128,21 @@ extern const struct cpu_features *__get_cpu_features (void) + # define index_Slow_BSF FEATURE_INDEX_1 + # define index_Prefer_SSE_for_memop FEATURE_INDEX_1 + # define index_Fast_Unaligned_Load FEATURE_INDEX_1 ++# define index_YMM_Usable FEATURE_INDEX_1 + +-#define HAS_ARCH_FEATURE(idx, bit) \ +- ((__get_cpu_features ()->feature[idx] & (bit)) != 0) ++# define HAS_ARCH_FEATURE(name) \ ++ ((__get_cpu_features ()->feature[index_##name] & (bit_##name)) != 0) + +-#define HAS_FAST_REP_STRING \ +- HAS_ARCH_FEATURE (index_Fast_Rep_String, bit_Fast_Rep_String) ++# define HAS_FAST_REP_STRING HAS_ARCH_FEATURE (Fast_Rep_String) + +-#define HAS_FAST_COPY_BACKWARD \ +- HAS_ARCH_FEATURE (index_Fast_Copy_Backward, bit_Fast_Copy_Backward) ++# define HAS_FAST_COPY_BACKWARD HAS_ARCH_FEATURE (Fast_Copy_Backward) + +-#define HAS_SLOW_BSF \ +- HAS_ARCH_FEATURE (index_Slow_BSF, bit_Slow_BSF) ++# define HAS_SLOW_BSF HAS_ARCH_FEATURE (Slow_BSF) + +-#define HAS_PREFER_SSE_FOR_MEMOP \ +- HAS_ARCH_FEATURE (index_Prefer_SSE_for_memop, bit_Prefer_SSE_for_memop) ++# define HAS_PREFER_SSE_FOR_MEMOP HAS_ARCH_FEATURE (Prefer_SSE_for_memop) + +-#define HAS_FAST_UNALIGNED_LOAD \ +- HAS_ARCH_FEATURE (index_Fast_Unaligned_Load, bit_Fast_Unaligned_Load) ++# define HAS_FAST_UNALIGNED_LOAD HAS_ARCH_FEATURE (Fast_Unaligned_Load) ++ ++# define HAS_YMM_USABLE HAS_ARCH_FEATURE (YMM_Usable) + + #endif /* __ASSEMBLER__ */ +-- +1.7.9 + diff --git a/multilib-testing/lib32-glibc/glibc-2.15-confstr-local-buffer-extent.patch b/multilib-testing/lib32-glibc/glibc-2.15-confstr-local-buffer-extent.patch new file mode 100644 index 000000000..483b28532 --- /dev/null +++ b/multilib-testing/lib32-glibc/glibc-2.15-confstr-local-buffer-extent.patch @@ -0,0 +1,297 @@ +diff --git a/posix/confstr.c b/posix/confstr.c +index 3c9566d..cad6561 100644 +--- a/posix/confstr.c ++++ b/posix/confstr.c +@@ -35,6 +34,10 @@ confstr (name, buf, len) + const char *string = ""; + size_t string_len = 1; + ++ /* Note that this buffer must be large enough for the longest strings ++ used below. */ ++ char restenvs[4 * sizeof "POSIX_V7_LPBIG_OFFBIG"]; ++ + switch (name) + { + case _CS_PATH: +@@ -53,59 +56,55 @@ confstr (name, buf, len) + wint_t types are no greater than the width of type long. + + Currently this means all environment which the system allows. */ +- { +- char restenvs[4 * sizeof "POSIX_V7_LPBIG_OFFBIG"]; +- +- string_len = 0; ++ string_len = 0; + #ifndef _POSIX_V7_ILP32_OFF32 +- if (__sysconf (_SC_V7_ILP32_OFF32) > 0) ++ if (__sysconf (_SC_V7_ILP32_OFF32) > 0) + #endif + #if !defined _POSIX_V7_ILP32_OFF32 || _POSIX_V7_ILP32_OFF32 > 0 +- { +- memcpy (restenvs + string_len, "POSIX_V7_ILP32_OFF32", +- sizeof "POSIX_V7_ILP32_OFF32" - 1); +- string_len += sizeof "POSIX_V7_ILP32_OFF32" - 1; +- } ++ { ++ memcpy (restenvs + string_len, "POSIX_V7_ILP32_OFF32", ++ sizeof "POSIX_V7_ILP32_OFF32" - 1); ++ string_len += sizeof "POSIX_V7_ILP32_OFF32" - 1; ++ } + #endif + #ifndef _POSIX_V7_ILP32_OFFBIG +- if (__sysconf (_SC_V7_ILP32_OFFBIG) > 0) ++ if (__sysconf (_SC_V7_ILP32_OFFBIG) > 0) + #endif + #if !defined _POSIX_V7_ILP32_OFFBIG || _POSIX_V7_ILP32_OFFBIG > 0 +- { +- if (string_len) +- restenvs[string_len++] = '\n'; +- memcpy (restenvs + string_len, "POSIX_V7_ILP32_OFFBIG", +- sizeof "POSIX_V7_ILP32_OFFBIG" - 1); +- string_len += sizeof "POSIX_V7_ILP32_OFFBIG" - 1; +- } ++ { ++ if (string_len) ++ restenvs[string_len++] = '\n'; ++ memcpy (restenvs + string_len, "POSIX_V7_ILP32_OFFBIG", ++ sizeof "POSIX_V7_ILP32_OFFBIG" - 1); ++ string_len += sizeof "POSIX_V7_ILP32_OFFBIG" - 1; ++ } + #endif + #ifndef _POSIX_V7_LP64_OFF64 +- if (__sysconf (_SC_V7_LP64_OFF64) > 0) ++ if (__sysconf (_SC_V7_LP64_OFF64) > 0) + #endif + #if !defined _POSIX_V7_LP64_OFF64 || _POSIX_V7_LP64_OFF64 > 0 +- { +- if (string_len) +- restenvs[string_len++] = '\n'; +- memcpy (restenvs + string_len, "POSIX_V7_LP64_OFF64", +- sizeof "POSIX_V7_LP64_OFF64" - 1); +- string_len += sizeof "POSIX_V7_LP64_OFF64" - 1; +- } ++ { ++ if (string_len) ++ restenvs[string_len++] = '\n'; ++ memcpy (restenvs + string_len, "POSIX_V7_LP64_OFF64", ++ sizeof "POSIX_V7_LP64_OFF64" - 1); ++ string_len += sizeof "POSIX_V7_LP64_OFF64" - 1; ++ } + #endif + #ifndef _POSIX_V7_LPBIG_OFFBIG +- if (__sysconf (_SC_V7_LPBIG_OFFBIG) > 0) ++ if (__sysconf (_SC_V7_LPBIG_OFFBIG) > 0) + #endif + #if !defined _POSIX_V7_LPBIG_OFFBIG || _POSIX_V7_LPBIG_OFFBIG > 0 +- { +- if (string_len) +- restenvs[string_len++] = '\n'; +- memcpy (restenvs + string_len, "POSIX_V7_LPBIG_OFFBIG", +- sizeof "POSIX_V7_LPBIG_OFFBIG" - 1); +- string_len += sizeof "POSIX_V7_LPBIG_OFFBIG" - 1; +- } +-#endif +- restenvs[string_len++] = '\0'; +- string = restenvs; +- } ++ { ++ if (string_len) ++ restenvs[string_len++] = '\n'; ++ memcpy (restenvs + string_len, "POSIX_V7_LPBIG_OFFBIG", ++ sizeof "POSIX_V7_LPBIG_OFFBIG" - 1); ++ string_len += sizeof "POSIX_V7_LPBIG_OFFBIG" - 1; ++ } ++#endif ++ restenvs[string_len++] = '\0'; ++ string = restenvs; + break; + + case _CS_V6_WIDTH_RESTRICTED_ENVS: +@@ -116,59 +115,55 @@ confstr (name, buf, len) + wint_t types are no greater than the width of type long. + + Currently this means all environment which the system allows. */ +- { +- char restenvs[4 * sizeof "POSIX_V6_LPBIG_OFFBIG"]; +- +- string_len = 0; ++ string_len = 0; + #ifndef _POSIX_V6_ILP32_OFF32 +- if (__sysconf (_SC_V6_ILP32_OFF32) > 0) ++ if (__sysconf (_SC_V6_ILP32_OFF32) > 0) + #endif + #if !defined _POSIX_V6_ILP32_OFF32 || _POSIX_V6_ILP32_OFF32 > 0 +- { +- memcpy (restenvs + string_len, "POSIX_V6_ILP32_OFF32", +- sizeof "POSIX_V6_ILP32_OFF32" - 1); +- string_len += sizeof "POSIX_V6_ILP32_OFF32" - 1; +- } ++ { ++ memcpy (restenvs + string_len, "POSIX_V6_ILP32_OFF32", ++ sizeof "POSIX_V6_ILP32_OFF32" - 1); ++ string_len += sizeof "POSIX_V6_ILP32_OFF32" - 1; ++ } + #endif + #ifndef _POSIX_V6_ILP32_OFFBIG +- if (__sysconf (_SC_V6_ILP32_OFFBIG) > 0) ++ if (__sysconf (_SC_V6_ILP32_OFFBIG) > 0) + #endif + #if !defined _POSIX_V6_ILP32_OFFBIG || _POSIX_V6_ILP32_OFFBIG > 0 +- { +- if (string_len) +- restenvs[string_len++] = '\n'; +- memcpy (restenvs + string_len, "POSIX_V6_ILP32_OFFBIG", +- sizeof "POSIX_V6_ILP32_OFFBIG" - 1); +- string_len += sizeof "POSIX_V6_ILP32_OFFBIG" - 1; +- } ++ { ++ if (string_len) ++ restenvs[string_len++] = '\n'; ++ memcpy (restenvs + string_len, "POSIX_V6_ILP32_OFFBIG", ++ sizeof "POSIX_V6_ILP32_OFFBIG" - 1); ++ string_len += sizeof "POSIX_V6_ILP32_OFFBIG" - 1; ++ } + #endif + #ifndef _POSIX_V6_LP64_OFF64 +- if (__sysconf (_SC_V6_LP64_OFF64) > 0) ++ if (__sysconf (_SC_V6_LP64_OFF64) > 0) + #endif + #if !defined _POSIX_V6_LP64_OFF64 || _POSIX_V6_LP64_OFF64 > 0 +- { +- if (string_len) +- restenvs[string_len++] = '\n'; +- memcpy (restenvs + string_len, "POSIX_V6_LP64_OFF64", +- sizeof "POSIX_V6_LP64_OFF64" - 1); +- string_len += sizeof "POSIX_V6_LP64_OFF64" - 1; +- } ++ { ++ if (string_len) ++ restenvs[string_len++] = '\n'; ++ memcpy (restenvs + string_len, "POSIX_V6_LP64_OFF64", ++ sizeof "POSIX_V6_LP64_OFF64" - 1); ++ string_len += sizeof "POSIX_V6_LP64_OFF64" - 1; ++ } + #endif + #ifndef _POSIX_V6_LPBIG_OFFBIG +- if (__sysconf (_SC_V6_LPBIG_OFFBIG) > 0) ++ if (__sysconf (_SC_V6_LPBIG_OFFBIG) > 0) + #endif + #if !defined _POSIX_V6_LPBIG_OFFBIG || _POSIX_V6_LPBIG_OFFBIG > 0 +- { +- if (string_len) +- restenvs[string_len++] = '\n'; +- memcpy (restenvs + string_len, "POSIX_V6_LPBIG_OFFBIG", +- sizeof "POSIX_V6_LPBIG_OFFBIG" - 1); +- string_len += sizeof "POSIX_V6_LPBIG_OFFBIG" - 1; +- } +-#endif +- restenvs[string_len++] = '\0'; +- string = restenvs; +- } ++ { ++ if (string_len) ++ restenvs[string_len++] = '\n'; ++ memcpy (restenvs + string_len, "POSIX_V6_LPBIG_OFFBIG", ++ sizeof "POSIX_V6_LPBIG_OFFBIG" - 1); ++ string_len += sizeof "POSIX_V6_LPBIG_OFFBIG" - 1; ++ } ++#endif ++ restenvs[string_len++] = '\0'; ++ string = restenvs; + break; + + case _CS_V5_WIDTH_RESTRICTED_ENVS: +@@ -179,59 +174,55 @@ confstr (name, buf, len) + wint_t types are no greater than the width of type long. + + Currently this means all environment which the system allows. */ +- { +- char restenvs[4 * sizeof "XBS5_LPBIG_OFFBIG"]; +- +- string_len = 0; ++ string_len = 0; + #ifndef _XBS5_ILP32_OFF32 +- if (__sysconf (_SC_XBS5_ILP32_OFF32) > 0) ++ if (__sysconf (_SC_XBS5_ILP32_OFF32) > 0) + #endif + #if !defined _XBS5_ILP32_OFF32 || _XBS5_ILP32_OFF32 > 0 +- { +- memcpy (restenvs + string_len, "XBS5_ILP32_OFF32", +- sizeof "XBS5_ILP32_OFF32" - 1); +- string_len += sizeof "XBS5_ILP32_OFF32" - 1; +- } ++ { ++ memcpy (restenvs + string_len, "XBS5_ILP32_OFF32", ++ sizeof "XBS5_ILP32_OFF32" - 1); ++ string_len += sizeof "XBS5_ILP32_OFF32" - 1; ++ } + #endif + #ifndef _XBS5_ILP32_OFFBIG +- if (__sysconf (_SC_XBS5_ILP32_OFFBIG) > 0) ++ if (__sysconf (_SC_XBS5_ILP32_OFFBIG) > 0) + #endif + #if !defined _XBS5_ILP32_OFFBIG || _XBS5_ILP32_OFFBIG > 0 +- { +- if (string_len) +- restenvs[string_len++] = '\n'; +- memcpy (restenvs + string_len, "XBS5_ILP32_OFFBIG", +- sizeof "XBS5_ILP32_OFFBIG" - 1); +- string_len += sizeof "XBS5_ILP32_OFFBIG" - 1; +- } ++ { ++ if (string_len) ++ restenvs[string_len++] = '\n'; ++ memcpy (restenvs + string_len, "XBS5_ILP32_OFFBIG", ++ sizeof "XBS5_ILP32_OFFBIG" - 1); ++ string_len += sizeof "XBS5_ILP32_OFFBIG" - 1; ++ } + #endif + #ifndef _XBS5_LP64_OFF64 +- if (__sysconf (_SC_XBS5_LP64_OFF64) > 0) ++ if (__sysconf (_SC_XBS5_LP64_OFF64) > 0) + #endif + #if !defined _XBS5_LP64_OFF64 || _XBS5_LP64_OFF64 > 0 +- { +- if (string_len) +- restenvs[string_len++] = '\n'; +- memcpy (restenvs + string_len, "XBS5_LP64_OFF64", +- sizeof "XBS5_LP64_OFF64" - 1); +- string_len += sizeof "XBS5_LP64_OFF64" - 1; +- } ++ { ++ if (string_len) ++ restenvs[string_len++] = '\n'; ++ memcpy (restenvs + string_len, "XBS5_LP64_OFF64", ++ sizeof "XBS5_LP64_OFF64" - 1); ++ string_len += sizeof "XBS5_LP64_OFF64" - 1; ++ } + #endif + #ifndef _XBS5_LPBIG_OFFBIG +- if (__sysconf (_SC_XBS5_LPBIG_OFFBIG) > 0) ++ if (__sysconf (_SC_XBS5_LPBIG_OFFBIG) > 0) + #endif + #if !defined _XBS5_LPBIG_OFFBIG || _XBS5_LPBIG_OFFBIG > 0 +- { +- if (string_len) +- restenvs[string_len++] = '\n'; +- memcpy (restenvs + string_len, "XBS5_LPBIG_OFFBIG", +- sizeof "XBS5_LPBIG_OFFBIG" - 1); +- string_len += sizeof "XBS5_LPBIG_OFFBIG" - 1; +- } +-#endif +- restenvs[string_len++] = '\0'; +- string = restenvs; +- } ++ { ++ if (string_len) ++ restenvs[string_len++] = '\n'; ++ memcpy (restenvs + string_len, "XBS5_LPBIG_OFFBIG", ++ sizeof "XBS5_LPBIG_OFFBIG" - 1); ++ string_len += sizeof "XBS5_LPBIG_OFFBIG" - 1; ++ } ++#endif ++ restenvs[string_len++] = '\0'; ++ string = restenvs; + break; + + case _CS_XBS5_ILP32_OFF32_CFLAGS: diff --git a/multilib-testing/lib32-glibc/glibc-2.15-do-not-install-timezone-files-2.patch b/multilib-testing/lib32-glibc/glibc-2.15-do-not-install-timezone-files-2.patch new file mode 100644 index 000000000..d28237f85 --- /dev/null +++ b/multilib-testing/lib32-glibc/glibc-2.15-do-not-install-timezone-files-2.patch @@ -0,0 +1,20 @@ +diff --git a/timezone/Makefile b/timezone/Makefile +index 00bfba6..9e55a6a 100644 +--- a/timezone/Makefile ++++ b/timezone/Makefile +@@ -45,7 +45,6 @@ include ../Makeconfig # Get objpfx defined so we can use it below. + CPPFLAGS-zic = -DNOT_IN_libc + + ifeq ($(have-ksh),yes) +-install-others += $(inst_zonedir)/iso3166.tab $(inst_zonedir)/zone.tab + install-bin-script = tzselect + generated += tzselect + endif +@@ -111,7 +110,3 @@ $(objpfx)tzselect: tzselect.ksh $(common-objpfx)config.make + -e 's%@TZDIR@%$(zonedir)%g' < $< > $@.new + chmod 555 $@.new + mv -f $@.new $@ +- +-$(addprefix $(inst_zonedir)/,iso3166.tab zone.tab): \ +- $(inst_zonedir)/%: % $(+force) +- $(do-install) diff --git a/multilib-testing/lib32-glibc/glibc-2.15-do-not-install-timezone-files.patch b/multilib-testing/lib32-glibc/glibc-2.15-do-not-install-timezone-files.patch new file mode 100644 index 000000000..e4f29bc1a --- /dev/null +++ b/multilib-testing/lib32-glibc/glibc-2.15-do-not-install-timezone-files.patch @@ -0,0 +1,124 @@ +diff --git a/timezone/Makefile b/timezone/Makefile +index e8fb716..d5ea538 100644 +--- a/timezone/Makefile ++++ b/timezone/Makefile +@@ -1,4 +1,4 @@ +-# Copyright (C) 1998,1999,2000,2002,2005,2007 Free Software Foundation, Inc. ++# Copyright (C) 1998-2000,2002,2005,2007,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 +@@ -49,33 +49,6 @@ include ../Makeconfig # Get objpfx defined so we can use it below. + + CPPFLAGS-zic = -DNOT_IN_libc + +-# z.* use this variable. +-define nl +- +- +-endef +-ifndef avoid-generated +-ifndef inhibit_timezone_rules +--include $(addprefix $(objpfx)z.,$(tzfiles)) +-endif +-endif +- +-# Make these absolute file names. +-installed-localtime-file := $(firstword $(filter /%,$(inst_localtime-file)) \ +- $(addprefix $(inst_zonedir)/, \ +- $(localtime-file))) +-installed-posixrules-file := $(firstword $(filter /%,$(posixrules-file)) \ +- $(addprefix $(inst_zonedir)/, \ +- $(posixrules-file))) +- +-ifeq ($(cross-compiling),no) +-# Don't try to install the zoneinfo files since we can't run zic. +-install-others = $(addprefix $(inst_zonedir)/,$(zonenames) \ +- $(zonenames:%=posix/%) \ +- $(zonenames:%=right/%)) \ +- $(installed-localtime-file) $(installed-posixrules-file) +-endif +- + ifeq ($(have-ksh),yes) + install-others += $(inst_zonedir)/iso3166.tab $(inst_zonedir)/zone.tab + install-bin-script = tzselect +@@ -85,79 +58,6 @@ endif + include ../Rules + + +-$(tzfiles:%=$(objpfx)z.%): $(objpfx)z.%: % Makefile +-# Kludge alert: we use an implicit rule (in what we are generating here) +-# because that is the only way to tell Make that the one command builds all +-# the files. +-# The extra kludge for the $(tzlinks) files is necessary since running zic +-# this file requires all other files to exist. Blech! +- $(make-target-directory) +- (echo 'define $*-zones' ;\ +- $(AWK) '$$1 == "Zone" { print $$2 } $$1 == "Link" { print $$3 }' $^ ;\ +- echo 'endef' ;\ +- echo '$*-zones := $$(subst $$(nl), ,$$($*-zones))' ;\ +- echo 'ifdef $*-zones' ;\ +- if test x$(findstring $*, $(tzlinks)) != x; then \ +- echo '$$(addprefix $$(inst_zonedir)/right/,$$($*-zones)): \';\ +- echo '$$(foreach t,$$(tzbases),$$(addprefix $$(inst_zonedir)/right/,$$($$t-zones)))' ;\ +- echo '$$(addprefix $$(inst_zonedir)/posix/,$$($*-zones)): \';\ +- echo '$$(foreach t,$$(tzbases),$$(addprefix $$(inst_zonedir)/posix/,$$($$t-zones)))' ;\ +- echo '$$(addprefix $$(inst_zonedir)/,$$($*-zones)): \' ;\ +- echo '$$(foreach t,$$(tzbases),$$(addprefix $$(inst_zonedir)/,$$($$t-zones)))' ;\ +- fi ;\ +- echo '$$(addprefix $$(dir $$(inst_zonedir))zone%/right/,$$($*-zones)): \' ;\ +- echo '$< $$(objpfx)zic leapseconds yearistype' ;\ +- echo ' $$(tzcompile)' ;\ +- echo '$$(addprefix $$(dir $$(inst_zonedir))zone%/posix/,$$($*-zones)): \' ;\ +- echo '$< $$(objpfx)zic /dev/null yearistype' ;\ +- echo ' $$(tzcompile)' ;\ +- echo '$$(addprefix $$(dir $$(inst_zonedir))zone%/,$$($*-zones)): \' ;\ +- echo '$< $$(objpfx)zic $$(leapseconds) yearistype' ;\ +- echo ' $$(tzcompile)' ;\ +- echo 'endif' ;\ +- echo 'zonenames := $$(zonenames) $$($*-zones)' ;\ +- ) > $@.new +- mv $@.new $@ +- +-.PHONY: echo-zonenames +-echo-zonenames: +- @echo 'Known zones: $(zonenames)' +- +- +-# We have to use `-d $(inst_zonedir)' to explictly tell zic where to +-# place the output files although $(zonedir) is compiled in. But the +-# user might have set $(install_root) on the command line of `make install'. +-zic-cmd = $(built-program-cmd) -d $(inst_zonedir) +-tzcompile = $(zic-cmd)$(target-zone-flavor) -L $(word 3,$^) \ +- -y $(dir $(word 4,$^))$(notdir $(word 4,$^)) $< +- +-# The source files specify the zone names relative to the -d directory, +-# so for the posix/ and right/ flavors we need to pass -d $(inst_zonedir)/posix +-# and the like. This magic extracts /posix or /right if it's the first +-# component after $(inst_zonedir) in the target name $@. +-target-zone-flavor = $(filter /posix /right, \ +- /$(firstword $(subst /, , \ +- $(patsubst $(inst_zonedir)/%,%,$@)))) +- +-ifdef localtime +-$(installed-localtime-file): $(inst_zonedir)/$(localtime) $(objpfx)zic \ +- $(+force) +- $(make-target-directory) +- if test -r $@; then \ +- echo Site timezone NOT reset to Factory.; \ +- else \ +- rm -f $@T; \ +- $(SHELL) $(..)scripts/rellns-sh $< $@T; \ +- mv -f $@T $@; \ +- fi +-endif +-ifdef posixrules +-$(installed-posixrules-file): $(inst_zonedir)/$(posixrules) $(objpfx)zic \ +- $(+force) +- $(zic-cmd) -p $(posixrules) +-endif +- +- + $(objpfx)zic: $(objpfx)scheck.o $(objpfx)ialloc.o + + tz-cflags = -DTZDIR='"$(zonedir)"' \ diff --git a/multilib-testing/lib32-glibc/glibc-2.15-feraiseexcept-plt.patch b/multilib-testing/lib32-glibc/glibc-2.15-feraiseexcept-plt.patch new file mode 100644 index 000000000..c41acc169 --- /dev/null +++ b/multilib-testing/lib32-glibc/glibc-2.15-feraiseexcept-plt.patch @@ -0,0 +1,20 @@ +diff --git a/sysdeps/i386/fpu/feupdateenv.c b/sysdeps/i386/fpu/feupdateenv.c +index 70f9ee2..6e2ce35 100644 +--- a/sysdeps/i386/fpu/feupdateenv.c ++++ b/sysdeps/i386/fpu/feupdateenv.c +@@ -1,5 +1,5 @@ + /* Install given floating-point environment and raise exceptions. +- Copyright (C) 1997,99,2000,01,07,2010 Free Software Foundation, Inc. ++ Copyright (C) 1997,99,2000,01,07,2010,2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. + +@@ -44,7 +44,7 @@ __feupdateenv (const fenv_t *envp) + /* Raise the saved exception. Incidently for us the implementation + defined format of the values in objects of type fexcept_t is the + same as the ones specified using the FE_* constants. */ +- feraiseexcept ((int) temp); ++ __feraiseexcept ((int) temp); + + /* Success. */ + return 0; diff --git a/multilib-testing/lib32-glibc/glibc-2.15-fix-res_query-assert.patch b/multilib-testing/lib32-glibc/glibc-2.15-fix-res_query-assert.patch new file mode 100644 index 000000000..a894da9c7 --- /dev/null +++ b/multilib-testing/lib32-glibc/glibc-2.15-fix-res_query-assert.patch @@ -0,0 +1,51 @@ +--- a/resolv/res_query.c ++++ a/resolv/res_query.c +@@ -122,6 +122,7 @@ __libc_res_nquery(res_state statp, + int *resplen2) + { + HEADER *hp = (HEADER *) answer; ++ HEADER *hp2; + int n, use_malloc = 0; + u_int oflags = statp->_flags; + +@@ -239,26 +240,25 @@ __libc_res_nquery(res_state statp, + /* __libc_res_nsend might have reallocated the buffer. */ + hp = (HEADER *) *answerp; + +- /* We simplify the following tests by assigning HP to HP2. It +- is easy to verify that this is the same as ignoring all +- tests of HP2. */ +- HEADER *hp2 = answerp2 ? (HEADER *) *answerp2 : hp; +- +- if (n < (int) sizeof (HEADER) && answerp2 != NULL +- && *resplen2 > (int) sizeof (HEADER)) ++ /* We simplify the following tests by assigning HP to HP2 or ++ vice versa. It is easy to verify that this is the same as ++ ignoring all tests of HP or HP2. */ ++ if (answerp2 == NULL || *resplen2 < (int) sizeof (HEADER)) + { +- /* Special case of partial answer. */ +- assert (hp != hp2); +- hp = hp2; ++ hp2 = hp; + } +- else if (answerp2 != NULL && *resplen2 < (int) sizeof (HEADER) +- && n > (int) sizeof (HEADER)) ++ else + { +- /* Special case of partial answer. */ +- assert (hp != hp2); +- hp2 = hp; ++ hp2 = (HEADER *) *answerp2; ++ if (n < (int) sizeof (HEADER)) ++ { ++ hp = hp2; ++ } + } + ++ /* Make sure both hp and hp2 are defined */ ++ assert((hp != NULL) && (hp2 != NULL)); ++ + if ((hp->rcode != NOERROR || ntohs(hp->ancount) == 0) + && (hp2->rcode != NOERROR || ntohs(hp2->ancount) == 0)) { + #ifdef DEBUG diff --git a/multilib-testing/lib32-glibc/glibc-2.15-fmtmsg-locking.patch b/multilib-testing/lib32-glibc/glibc-2.15-fmtmsg-locking.patch new file mode 100644 index 000000000..f5976abd9 --- /dev/null +++ b/multilib-testing/lib32-glibc/glibc-2.15-fmtmsg-locking.patch @@ -0,0 +1,148 @@ +diff --git a/stdlib/fmtmsg.c b/stdlib/fmtmsg.c +index 9203317..4c02302 100644 +--- a/stdlib/fmtmsg.c ++++ b/stdlib/fmtmsg.c +@@ -103,7 +103,6 @@ fmtmsg (long int classification, const char *label, int severity, + const char *text, const char *action, const char *tag) + { + __libc_once_define (static, once); +- int result = MM_OK; + struct severity_info *severity_rec; + + /* Make sure everything is initialized. */ +@@ -124,17 +123,6 @@ fmtmsg (long int classification, const char *label, int severity, + return MM_NOTOK; + } + +- for (severity_rec = severity_list; severity_rec != NULL; +- severity_rec = severity_rec->next) +- if (severity == severity_rec->severity) +- /* Bingo. */ +- break; +- +- /* If we don't know anything about the severity level return an error. */ +- if (severity_rec == NULL) +- return MM_NOTOK; +- +- + #ifdef __libc_ptf_call + /* We do not want this call to be cut short by a thread + cancellation. Therefore disable cancellation for now. */ +@@ -143,54 +131,73 @@ fmtmsg (long int classification, const char *label, int severity, + 0); + #endif + +- /* Now we can print. */ +- if (classification & MM_PRINT) +- { +- int do_label = (print & label_mask) && label != MM_NULLLBL; +- int do_severity = (print & severity_mask) && severity != MM_NULLSEV; +- int do_text = (print & text_mask) && text != MM_NULLTXT; +- int do_action = (print & action_mask) && action != MM_NULLACT; +- int do_tag = (print & tag_mask) && tag != MM_NULLTAG; +- +- if (__fxprintf (stderr, "%s%s%s%s%s%s%s%s%s%s\n", +- do_label ? label : "", +- do_label && (do_severity | do_text | do_action | do_tag) +- ? ": " : "", +- do_severity ? severity_rec->string : "", +- do_severity && (do_text | do_action | do_tag) +- ? ": " : "", +- do_text ? text : "", +- do_text && (do_action | do_tag) ? "\n" : "", +- do_action ? "TO FIX: " : "", +- do_action ? action : "", +- do_action && do_tag ? " " : "", +- do_tag ? tag : "") < 0) +- /* Oh, oh. An error occurred during the output. */ +- result = MM_NOMSG; +- } ++ __libc_lock_lock (lock); + +- if (classification & MM_CONSOLE) ++ for (severity_rec = severity_list; severity_rec != NULL; ++ severity_rec = severity_rec->next) ++ if (severity == severity_rec->severity) ++ /* Bingo. */ ++ break; ++ ++ /* If we don't know anything about the severity level return an error. */ ++ int result = MM_NOTOK; ++ if (severity_rec != NULL) + { +- int do_label = label != MM_NULLLBL; +- int do_severity = severity != MM_NULLSEV; +- int do_text = text != MM_NULLTXT; +- int do_action = action != MM_NULLACT; +- int do_tag = tag != MM_NULLTAG; +- +- syslog (LOG_ERR, "%s%s%s%s%s%s%s%s%s%s\n", +- do_label ? label : "", +- do_label && (do_severity | do_text | do_action | do_tag) +- ? ": " : "", +- do_severity ? severity_rec->string : "", +- do_severity && (do_text | do_action | do_tag) ? ": " : "", +- do_text ? text : "", +- do_text && (do_action | do_tag) ? "\n" : "", +- do_action ? "TO FIX: " : "", +- do_action ? action : "", +- do_action && do_tag ? " " : "", +- do_tag ? tag : ""); ++ result = MM_OK; ++ ++ /* Now we can print. */ ++ if (classification & MM_PRINT) ++ { ++ int do_label = (print & label_mask) && label != MM_NULLLBL; ++ int do_severity = (print & severity_mask) && severity != MM_NULLSEV; ++ int do_text = (print & text_mask) && text != MM_NULLTXT; ++ int do_action = (print & action_mask) && action != MM_NULLACT; ++ int do_tag = (print & tag_mask) && tag != MM_NULLTAG; ++ int need_colon = (do_label ++ && (do_severity | do_text | do_action | do_tag)); ++ ++ if (__fxprintf (stderr, "%s%s%s%s%s%s%s%s%s%s\n", ++ do_label ? label : "", ++ need_colon ? ": " : "", ++ do_severity ? severity_rec->string : "", ++ do_severity && (do_text | do_action | do_tag) ++ ? ": " : "", ++ do_text ? text : "", ++ do_text && (do_action | do_tag) ? "\n" : "", ++ do_action ? "TO FIX: " : "", ++ do_action ? action : "", ++ do_action && do_tag ? " " : "", ++ do_tag ? tag : "") < 0) ++ /* Oh, oh. An error occurred during the output. */ ++ result = MM_NOMSG; ++ } ++ ++ if (classification & MM_CONSOLE) ++ { ++ int do_label = label != MM_NULLLBL; ++ int do_severity = severity != MM_NULLSEV; ++ int do_text = text != MM_NULLTXT; ++ int do_action = action != MM_NULLACT; ++ int do_tag = tag != MM_NULLTAG; ++ int need_colon = (do_label ++ && (do_severity | do_text | do_action | do_tag)); ++ ++ syslog (LOG_ERR, "%s%s%s%s%s%s%s%s%s%s\n", ++ do_label ? label : "", ++ need_colon ? ": " : "", ++ do_severity ? severity_rec->string : "", ++ do_severity && (do_text | do_action | do_tag) ? ": " : "", ++ do_text ? text : "", ++ do_text && (do_action | do_tag) ? "\n" : "", ++ do_action ? "TO FIX: " : "", ++ do_action ? action : "", ++ do_action && do_tag ? " " : "", ++ do_tag ? tag : ""); ++ } + } + ++ __libc_lock_unlock (lock); ++ + #ifdef __libc_ptf_call + __libc_ptf_call (pthread_setcancelstate, (state, NULL), 0); + #endif diff --git a/multilib-testing/lib32-glibc/glibc-2.15-gb18030.patch.gz b/multilib-testing/lib32-glibc/glibc-2.15-gb18030.patch.gz Binary files differnew file mode 100644 index 000000000..dde59c056 --- /dev/null +++ b/multilib-testing/lib32-glibc/glibc-2.15-gb18030.patch.gz diff --git a/multilib-testing/lib32-glibc/glibc-2.15-ifunc.patch b/multilib-testing/lib32-glibc/glibc-2.15-ifunc.patch new file mode 100644 index 000000000..115afa02a --- /dev/null +++ b/multilib-testing/lib32-glibc/glibc-2.15-ifunc.patch @@ -0,0 +1,262 @@ +diff --git a/Makeconfig b/Makeconfig +index 2db2821..68547b2 100644 +--- a/Makeconfig ++++ b/Makeconfig +@@ -900,6 +900,12 @@ else + libdl = $(common-objpfx)dlfcn/libdl.a + endif + ++ifeq ($(build-shared),yes) ++libm = $(common-objpfx)math/libm.so$(libm.so-version) ++else ++libm = $(common-objpfx)math/libm.a ++endif ++ + # These are the subdirectories containing the library source. The order + # is more or less arbitrary. The sorting step will take care of the + # dependencies. +diff --git a/elf/Makefile b/elf/Makefile +index 052e763..3f1772a 100644 +--- a/elf/Makefile ++++ b/elf/Makefile +@@ -124,7 +124,8 @@ distribute := rtld-Rules \ + tst-initordera1.c tst-initordera2.c tst-initorderb1.c \ + tst-initorderb2.c tst-initordera3.c tst-initordera4.c \ + tst-initorder.c \ +- tst-initorder2.c ++ tst-initorder2.c \ ++ tst-relsort1.c tst-relsort1mod1.c tst-relsort1mod2.c + + CFLAGS-dl-runtime.c = -fexceptions -fasynchronous-unwind-tables + CFLAGS-dl-lookup.c = -fexceptions -fasynchronous-unwind-tables +@@ -227,7 +228,7 @@ tests += loadtest restest1 preloadtest loadfail multiload origtest resolvfail \ + tst-audit1 tst-audit2 \ + tst-stackguard1 tst-addr1 tst-thrlock \ + tst-unique1 tst-unique2 tst-unique3 tst-unique4 \ +- tst-initorder tst-initorder2 ++ tst-initorder tst-initorder2 tst-relsort1 + # reldep9 + test-srcs = tst-pathopt + selinux-enabled := $(shell cat /selinux/enforce 2> /dev/null) +@@ -290,7 +291,9 @@ modules-names = testobj1 testobj2 testobj3 testobj4 testobj5 testobj6 \ + tst-initordera1 tst-initorderb1 \ + tst-initordera2 tst-initorderb2 \ + tst-initordera3 tst-initordera4 \ +- tst-initorder2a tst-initorder2b tst-initorder2c tst-initorder2d ++ tst-initorder2a tst-initorder2b tst-initorder2c \ ++ tst-initorder2d \ ++ tst-relsort1mod1 tst-relsort1mod2 + ifeq (yes,$(have-initfini-array)) + modules-names += tst-array2dep tst-array5dep + endif +@@ -1195,3 +1198,9 @@ CFLAGS-tst-auditmod6b.c += $(AVX-CFLAGS) + CFLAGS-tst-auditmod6c.c += $(AVX-CFLAGS) + CFLAGS-tst-auditmod7b.c += $(AVX-CFLAGS) + endif ++ ++$(objpfx)tst-relsort1: $(libdl) ++$(objpfx)tst-relsort1mod1.so: $(libm) $(objpfx)tst-relsort1mod2.so ++$(objpfx)tst-relsort1mod2.so: $(libm) ++$(objpfx)tst-relsort1.out: $(objpfx)tst-relsort1mod1.so \ ++ $(objpfx)tst-relsort1mod2.so +diff --git a/elf/dl-open.c b/elf/dl-open.c +index a0b5c50..a56bdc1 100644 +--- a/elf/dl-open.c ++++ b/elf/dl-open.c +@@ -1,5 +1,5 @@ + /* Load a shared object at runtime, relocate it, and run its initializer. +- Copyright (C) 1996-2007, 2009, 2010, 2011 Free Software Foundation, Inc. ++ Copyright (C) 1996-2007, 2009, 2010, 2011, 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 +@@ -302,45 +302,109 @@ dl_open_worker (void *a) + if (GLRO(dl_lazy)) + reloc_mode |= mode & RTLD_LAZY; + +- /* Relocate the objects loaded. We do this in reverse order so that copy +- relocs of earlier objects overwrite the data written by later objects. */ +- ++ /* Sort the objects by dependency for the relocation process. This ++ allows IFUNC relocations to work and it also means copy ++ relocation of dependencies are if necessary overwritten. */ ++ size_t nmaps = 0; + struct link_map *l = new; +- while (l->l_next) +- l = l->l_next; +- while (1) ++ do ++ { ++ if (! l->l_real->l_relocated) ++ ++nmaps; ++ l = l->l_next; ++ } ++ while (l != NULL); ++ struct link_map *maps[nmaps]; ++ nmaps = 0; ++ l = new; ++ do + { + if (! l->l_real->l_relocated) ++ maps[nmaps++] = l; ++ l = l->l_next; ++ } ++ while (l != NULL); ++ if (nmaps > 1) ++ { ++ char seen[nmaps]; ++ memset (seen, '\0', nmaps); ++ size_t i = 0; ++ while (1) + { +-#ifdef SHARED +- if (__builtin_expect (GLRO(dl_profile) != NULL, 0)) ++ ++seen[i]; ++ struct link_map *thisp = maps[i]; ++ ++ /* Find the last object in the list for which the current one is ++ a dependency and move the current object behind the object ++ with the dependency. */ ++ size_t k = nmaps - 1; ++ while (k > i) + { +- /* If this here is the shared object which we want to profile +- make sure the profile is started. We can find out whether +- this is necessary or not by observing the `_dl_profile_map' +- variable. If was NULL but is not NULL afterwars we must +- start the profiling. */ +- struct link_map *old_profile_map = GL(dl_profile_map); ++ struct link_map **runp = maps[k]->l_initfini; ++ if (runp != NULL) ++ /* Look through the dependencies of the object. */ ++ while (*runp != NULL) ++ if (__builtin_expect (*runp++ == thisp, 0)) ++ { ++ /* Move the current object to the back past the last ++ object with it as the dependency. */ ++ memmove (&maps[i], &maps[i + 1], ++ (k - i) * sizeof (maps[0])); ++ maps[k] = thisp; ++ ++ if (seen[i + 1] > 1) ++ { ++ ++i; ++ goto next_clear; ++ } ++ ++ char this_seen = seen[i]; ++ memmove (&seen[i], &seen[i + 1], ++ (k - i) * sizeof (seen[0])); ++ seen[k] = this_seen; ++ ++ goto next; ++ } ++ ++ --k; ++ } + +- _dl_relocate_object (l, l->l_scope, reloc_mode | RTLD_LAZY, 1); ++ if (++i == nmaps) ++ break; ++ next_clear: ++ memset (&seen[i], 0, (nmaps - i) * sizeof (seen[0])); ++ next:; ++ } ++ } + +- if (old_profile_map == NULL && GL(dl_profile_map) != NULL) +- { +- /* We must prepare the profiling. */ +- _dl_start_profile (); ++ for (size_t i = nmaps; i-- > 0; ) ++ { ++ l = maps[i]; + +- /* Prevent unloading the object. */ +- GL(dl_profile_map)->l_flags_1 |= DF_1_NODELETE; +- } ++#ifdef SHARED ++ if (__builtin_expect (GLRO(dl_profile) != NULL, 0)) ++ { ++ /* If this here is the shared object which we want to profile ++ make sure the profile is started. We can find out whether ++ this is necessary or not by observing the `_dl_profile_map' ++ variable. If it was NULL but is not NULL afterwars we must ++ start the profiling. */ ++ struct link_map *old_profile_map = GL(dl_profile_map); ++ ++ _dl_relocate_object (l, l->l_scope, reloc_mode | RTLD_LAZY, 1); ++ ++ if (old_profile_map == NULL && GL(dl_profile_map) != NULL) ++ { ++ /* We must prepare the profiling. */ ++ _dl_start_profile (); ++ ++ /* Prevent unloading the object. */ ++ GL(dl_profile_map)->l_flags_1 |= DF_1_NODELETE; + } +- else +-#endif +- _dl_relocate_object (l, l->l_scope, reloc_mode, 0); + } +- +- if (l == new) +- break; +- l = l->l_prev; ++ else ++#endif ++ _dl_relocate_object (l, l->l_scope, reloc_mode, 0); + } + + /* If the file is not loaded now as a dependency, add the search +diff --git a/elf/tst-relsort1.c b/elf/tst-relsort1.c +new file mode 100644 +index 0000000..972100c +--- /dev/null ++++ b/elf/tst-relsort1.c +@@ -0,0 +1,19 @@ ++#include <dlfcn.h> ++#include <stdio.h> ++ ++ ++static int ++do_test () ++{ ++ const char lib[] = "$ORIGIN/tst-relsort1mod1.so"; ++ void *h = dlopen (lib, RTLD_NOW); ++ if (h == NULL) ++ { ++ puts (dlerror ()); ++ return 1; ++ } ++ return 0; ++} ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/elf/tst-relsort1mod1.c b/elf/tst-relsort1mod1.c +new file mode 100644 +index 0000000..9e4a943 +--- /dev/null ++++ b/elf/tst-relsort1mod1.c +@@ -0,0 +1,7 @@ ++extern int foo (double); ++ ++int ++bar (void) ++{ ++ return foo (1.2); ++} +diff --git a/elf/tst-relsort1mod2.c b/elf/tst-relsort1mod2.c +new file mode 100644 +index 0000000..a2c3e55 +--- /dev/null ++++ b/elf/tst-relsort1mod2.c +@@ -0,0 +1,7 @@ ++#include <math.h> ++ ++int ++foo (double d) ++{ ++ return floor (d) != 0.0; ++} diff --git a/multilib-testing/lib32-glibc/glibc-2.15-lddebug-scopes.patch b/multilib-testing/lib32-glibc/glibc-2.15-lddebug-scopes.patch new file mode 100644 index 000000000..808cf8d7c --- /dev/null +++ b/multilib-testing/lib32-glibc/glibc-2.15-lddebug-scopes.patch @@ -0,0 +1,27 @@ +From 0c95ab64cb4ec0d22bb222647d9d20c7b4903e38 Mon Sep 17 00:00:00 2001 +From: Andreas Schwab <schwab@redhat.com> +Date: Fri, 7 Oct 2011 09:31:27 +0200 +Subject: [PATCH] Horrible workaround for horribly broken software + +--- + elf/rtld.c | 4 +++- + 1 files changed, 3 insertions(+), 1 deletions(-) + +diff --git a/elf/rtld.c b/elf/rtld.c +index 978c609..8422b9f 100644 +--- a/elf/rtld.c ++++ b/elf/rtld.c +@@ -1393,7 +1393,9 @@ of this helper program; chances are you did not intend to run this program.\n\ + char *copy = malloc (len); + if (copy == NULL) + _dl_fatal_printf ("out of memory\n"); +- l->l_libname->name = l->l_name = memcpy (copy, dsoname, len); ++ l->l_libname->name = memcpy (copy, dsoname, len); ++ if (GLRO(dl_debug_mask)) ++ l->l_name = copy; + } + + /* Add the vDSO to the object list. */ +-- +1.7.3.4 + diff --git a/multilib-testing/lib32-glibc/glibc-2.15-multiarch-x86-strcmp.patch b/multilib-testing/lib32-glibc/glibc-2.15-multiarch-x86-strcmp.patch new file mode 100644 index 000000000..38c9e617f --- /dev/null +++ b/multilib-testing/lib32-glibc/glibc-2.15-multiarch-x86-strcmp.patch @@ -0,0 +1,39 @@ +diff --git a/sysdeps/i386/i686/multiarch/strcasecmp_l-c.c b/sysdeps/i386/i686/multiarch/strcasecmp_l-c.c +index d10e872..d4fcd2b 100644 +--- a/sysdeps/i386/i686/multiarch/strcasecmp_l-c.c ++++ b/sysdeps/i386/i686/multiarch/strcasecmp_l-c.c +@@ -6,6 +6,8 @@ extern __typeof (strcasecmp_l) __strcasecmp_l_nonascii; + #define USE_IN_EXTENDED_LOCALE_MODEL 1 + #include <string/strcasecmp.c> + ++strong_alias (__strcasecmp_l_nonascii, __strcasecmp_l_ia32) ++ + /* The needs of strcasecmp in libc are minimal, no need to go through + the IFUNC. */ + strong_alias (__strcasecmp_l_nonascii, __GI___strcasecmp_l) +diff --git a/sysdeps/i386/i686/multiarch/strcmp.S b/sysdeps/i386/i686/multiarch/strcmp.S +index 5410d17..b3b9eb8 100644 +--- a/sysdeps/i386/i686/multiarch/strcmp.S ++++ b/sysdeps/i386/i686/multiarch/strcmp.S +@@ -111,6 +111,7 @@ END(STRCMP) + # endif + #endif + +-#ifndef USE_AS_STRNCMP ++#if !defined USE_AS_STRNCMP && !defined USE_AS_STRCASECMP_L \ ++ && !defined USE_AS_STRNCASECMP_L + # include "../strcmp.S" + #endif +diff --git a/sysdeps/i386/i686/multiarch/strncase_l-c.c b/sysdeps/i386/i686/multiarch/strncase_l-c.c +index 0c68b8d..7e601af 100644 +--- a/sysdeps/i386/i686/multiarch/strncase_l-c.c ++++ b/sysdeps/i386/i686/multiarch/strncase_l-c.c +@@ -6,6 +6,8 @@ extern __typeof (strncasecmp_l) __strncasecmp_l_nonascii; + #define USE_IN_EXTENDED_LOCALE_MODEL 1 + #include <string/strncase.c> + ++strong_alias (__strncasecmp_l_nonascii, __strncasecmp_l_ia32) ++ + /* The needs of strcasecmp in libc are minimal, no need to go through + the IFUNC. */ + strong_alias (__strncasecmp_l_nonascii, __GI___strncasecmp_l) diff --git a/multilib-testing/lib32-glibc/glibc-2.15-nearbyintf-rounding.patch b/multilib-testing/lib32-glibc/glibc-2.15-nearbyintf-rounding.patch new file mode 100644 index 000000000..b2bb9caac --- /dev/null +++ b/multilib-testing/lib32-glibc/glibc-2.15-nearbyintf-rounding.patch @@ -0,0 +1,75 @@ +diff --git a/math/libm-test.inc b/math/libm-test.inc +index c8186c8..1016753 100644 +--- a/math/libm-test.inc ++++ b/math/libm-test.inc +@@ -4632,6 +4632,29 @@ nearbyint_test (void) + TEST_f_f (nearbyint, 524286.75, 524287.0); + TEST_f_f (nearbyint, 524288.75, 524289.0); + ++ TEST_f_f (nearbyint, 1048576.75, 1048577.0); ++ TEST_f_f (nearbyint, 2097152.75, 2097153.0); ++ TEST_f_f (nearbyint, 2492472.75, 2492473.0); ++ TEST_f_f (nearbyint, 2886220.75, 2886221.0); ++ TEST_f_f (nearbyint, 3058792.75, 3058793.0); ++ TEST_f_f (nearbyint, -1048576.75, -1048577.0); ++ TEST_f_f (nearbyint, -2097152.75, -2097153.0); ++ TEST_f_f (nearbyint, -2492472.75, -2492473.0); ++ TEST_f_f (nearbyint, -2886220.75, -2886221.0); ++ TEST_f_f (nearbyint, -3058792.75, -3058793.0); ++#ifndef TEST_FLOAT ++ TEST_f_f (nearbyint, 70368744177664.75, 70368744177665.0); ++ TEST_f_f (nearbyint, 140737488355328.75, 140737488355329.0); ++ TEST_f_f (nearbyint, 281474976710656.75, 281474976710657.0); ++ TEST_f_f (nearbyint, 562949953421312.75, 562949953421313.0); ++ TEST_f_f (nearbyint, 1125899906842624.75, 1125899906842625.0); ++ TEST_f_f (nearbyint, -70368744177664.75, -70368744177665.0); ++ TEST_f_f (nearbyint, -140737488355328.75, -140737488355329.0); ++ TEST_f_f (nearbyint, -281474976710656.75, -281474976710657.0); ++ TEST_f_f (nearbyint, -562949953421312.75, -562949953421313.0); ++ TEST_f_f (nearbyint, -1125899906842624.75, -1125899906842625.0); ++#endif ++ + END (nearbyint); + } + +diff --git a/sysdeps/ieee754/flt-32/s_nearbyintf.c b/sysdeps/ieee754/flt-32/s_nearbyintf.c +index 04ef9ab..a6d602b 100644 +--- a/sysdeps/ieee754/flt-32/s_nearbyintf.c ++++ b/sysdeps/ieee754/flt-32/s_nearbyintf.c +@@ -30,18 +30,12 @@ __nearbyintf(float x) + { + fenv_t env; + int32_t i0,j0,sx; +- u_int32_t i,i1; + float w,t; + GET_FLOAT_WORD(i0,x); + sx = (i0>>31)&1; + j0 = ((i0>>23)&0xff)-0x7f; + if(j0<23) { + if(j0<0) { +- if((i0&0x7fffffff)==0) return x; +- i1 = (i0&0x07fffff); +- i0 &= 0xfff00000; +- i0 |= ((i1|-i1)>>9)&0x400000; +- SET_FLOAT_WORD(x,i0); + libc_feholdexceptf (&env); + w = TWO23[sx]+x; + t = w-TWO23[sx]; +@@ -49,17 +43,11 @@ __nearbyintf(float x) + GET_FLOAT_WORD(i0,t); + SET_FLOAT_WORD(t,(i0&0x7fffffff)|(sx<<31)); + return t; +- } else { +- i = (0x007fffff)>>j0; +- if((i0&i)==0) return x; /* x is integral */ +- i>>=1; +- if((i0&i)!=0) i0 = (i0&(~i))|((0x100000)>>j0); + } + } else { + if(__builtin_expect(j0==0x80, 0)) return x+x; /* inf or NaN */ + else return x; /* x is integral */ + } +- SET_FLOAT_WORD(x,i0); + libc_feholdexceptf (&env); + w = TWO23[sx]+x; + t = w-TWO23[sx]; diff --git a/multilib-testing/lib32-glibc/glibc-2.15-negative-result-cache.patch b/multilib-testing/lib32-glibc/glibc-2.15-negative-result-cache.patch new file mode 100644 index 000000000..c09e79a17 --- /dev/null +++ b/multilib-testing/lib32-glibc/glibc-2.15-negative-result-cache.patch @@ -0,0 +1,138 @@ +diff --git a/nscd/aicache.c b/nscd/aicache.c +index aaaf80d..e1f1244 100644 +--- a/nscd/aicache.c ++++ b/nscd/aicache.c +@@ -1,5 +1,5 @@ + /* Cache handling for host lookup. +- Copyright (C) 2004-2008, 2009, 2010, 2011 Free Software Foundation, Inc. ++ Copyright (C) 2004-2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@redhat.com>, 2004. + +@@ -514,8 +514,9 @@ next_nip: + if (fd != -1) + TEMP_FAILURE_RETRY (send (fd, ¬found, total, MSG_NOSIGNAL)); + +- /* If we cannot permanently store the result, so be it. */ +- if (__builtin_expect (db->negtimeout == 0, 0)) ++ /* If we have a transient error or cannot permanently store the ++ result, so be it. */ ++ if (rc4 == EAGAIN || __builtin_expect (db->negtimeout == 0, 0)) + { + /* Mark the old entry as obsolete. */ + if (dh != NULL) +diff --git a/nscd/grpcache.c b/nscd/grpcache.c +index e9607c6..a698f36 100644 +--- a/nscd/grpcache.c ++++ b/nscd/grpcache.c +@@ -1,5 +1,5 @@ + /* Cache handling for group lookup. +- Copyright (C) 1998-2008, 2009, 2011 Free Software Foundation, Inc. ++ Copyright (C) 1998-2008, 2009, 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998. + +@@ -120,8 +120,9 @@ cache_addgr (struct database_dyn *db, int fd, request_header *req, + else + written = total; + +- /* If we cannot permanently store the result, so be it. */ +- if (db->negtimeout == 0) ++ /* If we have a transient error or cannot permanently store ++ the result, so be it. */ ++ if (errno == EAGAIN || __builtin_expect (db->negtimeout == 0, 0)) + { + /* Mark the old entry as obsolete. */ + if (dh != NULL) +diff --git a/nscd/hstcache.c b/nscd/hstcache.c +index 4d68ade..c72feaa 100644 +--- a/nscd/hstcache.c ++++ b/nscd/hstcache.c +@@ -1,5 +1,5 @@ + /* Cache handling for host lookup. +- Copyright (C) 1998-2008, 2009, 2011 Free Software Foundation, Inc. ++ Copyright (C) 1998-2008, 2009, 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998. + +@@ -141,8 +141,9 @@ cache_addhst (struct database_dyn *db, int fd, request_header *req, + MSG_NOSIGNAL)) != total) + all_written = false; + +- /* If we cannot permanently store the result, so be it. */ +- if (__builtin_expect (db->negtimeout == 0, 0)) ++ /* If we have a transient error or cannot permanently store ++ the result, so be it. */ ++ if (errval == EAGAIN || __builtin_expect (db->negtimeout == 0, 0)) + { + /* Mark the old entry as obsolete. */ + if (dh != NULL) +diff --git a/nscd/initgrcache.c b/nscd/initgrcache.c +index 4ac9942..2019991 100644 +--- a/nscd/initgrcache.c ++++ b/nscd/initgrcache.c +@@ -1,5 +1,5 @@ + /* Cache handling for host lookup. +- Copyright (C) 2004-2006, 2008, 2009, 2011 Free Software Foundation, Inc. ++ Copyright (C) 2004-2006, 2008, 2009, 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@redhat.com>, 2004. + +@@ -202,8 +202,9 @@ addinitgroupsX (struct database_dyn *db, int fd, request_header *req, + written = TEMP_FAILURE_RETRY (send (fd, ¬found, total, + MSG_NOSIGNAL)); + +- /* If we cannot permanently store the result, so be it. */ +- if (__builtin_expect (db->negtimeout == 0, 0)) ++ /* If we have a transient error or cannot permanently store ++ the result, so be it. */ ++ if (all_tryagain || __builtin_expect (db->negtimeout == 0, 0)) + { + /* Mark the old entry as obsolete. */ + if (dh != NULL) +diff --git a/nscd/pwdcache.c b/nscd/pwdcache.c +index 49e130c..e2ba09d 100644 +--- a/nscd/pwdcache.c ++++ b/nscd/pwdcache.c +@@ -1,5 +1,5 @@ + /* Cache handling for passwd lookup. +- Copyright (C) 1998-2008, 2009, 2011 Free Software Foundation, Inc. ++ Copyright (C) 1998-2008, 2009, 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998. + +@@ -124,8 +124,9 @@ cache_addpw (struct database_dyn *db, int fd, request_header *req, + written = TEMP_FAILURE_RETRY (send (fd, ¬found, total, + MSG_NOSIGNAL)); + +- /* If we cannot permanently store the result, so be it. */ +- if (__builtin_expect (db->negtimeout == 0, 0)) ++ /* If we have a transient error or cannot permanently store ++ the result, so be it. */ ++ if (errno == EAGAIN || __builtin_expect (db->negtimeout == 0, 0)) + { + /* Mark the old entry as obsolete. */ + if (dh != NULL) +diff --git a/nscd/servicescache.c b/nscd/servicescache.c +index d3d5dce..a6337e3 100644 +--- a/nscd/servicescache.c ++++ b/nscd/servicescache.c +@@ -1,5 +1,5 @@ + /* Cache handling for services lookup. +- Copyright (C) 2007, 2008, 2009, 2011 Free Software Foundation, Inc. ++ Copyright (C) 2007, 2008, 2009, 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@drepper.com>, 2007. + +@@ -108,8 +108,9 @@ cache_addserv (struct database_dyn *db, int fd, request_header *req, + written = TEMP_FAILURE_RETRY (send (fd, ¬found, total, + MSG_NOSIGNAL)); + +- /* If we cannot permanently store the result, so be it. */ +- if (__builtin_expect (db->negtimeout == 0, 0)) ++ /* If we have a transient error or cannot permanently store ++ the result, so be it. */ ++ if (errval == EAGAIN || __builtin_expect (db->negtimeout == 0, 0)) + { + /* Mark the old entry as obsolete. */ + if (dh != NULL) diff --git a/multilib-testing/lib32-glibc/glibc-2.15-non-signalling-comparisons.patch b/multilib-testing/lib32-glibc/glibc-2.15-non-signalling-comparisons.patch new file mode 100644 index 000000000..874f8b4cb --- /dev/null +++ b/multilib-testing/lib32-glibc/glibc-2.15-non-signalling-comparisons.patch @@ -0,0 +1,886 @@ +diff --git a/math/w_acos.c b/math/w_acos.c +index 3138408..0490933 100644 +--- a/math/w_acos.c ++++ b/math/w_acos.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -25,7 +25,8 @@ + double + __acos (double x) + { +- if (__builtin_expect (fabs (x) > 1.0, 0) && _LIB_VERSION != _IEEE_) ++ if (__builtin_expect (isgreater (fabs (x), 1.0), 0) ++ && _LIB_VERSION != _IEEE_) + { + /* acos(|x|>1) */ + feraiseexcept (FE_INVALID); +diff --git a/math/w_acosf.c b/math/w_acosf.c +index 0e41a2c..2500a7d 100644 +--- a/math/w_acosf.c ++++ b/math/w_acosf.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -25,7 +25,8 @@ + float + __acosf (float x) + { +- if (__builtin_expect (fabsf (x) > 1.0f, 0) && _LIB_VERSION != _IEEE_) ++ if (__builtin_expect (isgreater (fabsf (x), 1.0f), 0) ++ && _LIB_VERSION != _IEEE_) + { + /* acos(|x|>1) */ + feraiseexcept (FE_INVALID); +diff --git a/math/w_acosh.c b/math/w_acosh.c +index 0bd2686..d632987 100644 +--- a/math/w_acosh.c ++++ b/math/w_acosh.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -24,7 +24,7 @@ + double + __acosh (double x) + { +- if (__builtin_expect (x < 1.0, 0) && _LIB_VERSION != _IEEE_) ++ if (__builtin_expect (isless (x, 1.0), 0) && _LIB_VERSION != _IEEE_) + /* acosh(x<1) */ + return __kernel_standard (x, x, 29); + +diff --git a/math/w_acoshf.c b/math/w_acoshf.c +index c59bf94..f77df2b 100644 +--- a/math/w_acoshf.c ++++ b/math/w_acoshf.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -24,7 +24,7 @@ + float + __acoshf (float x) + { +- if (__builtin_expect (x < 1.0f, 0) && _LIB_VERSION != _IEEE_) ++ if (__builtin_expect (isless (x, 1.0f), 0) && _LIB_VERSION != _IEEE_) + /* acosh(x<1) */ + return __kernel_standard_f (x, x, 129); + +diff --git a/math/w_acoshl.c b/math/w_acoshl.c +index 819bdfc..cc823b8 100644 +--- a/math/w_acoshl.c ++++ b/math/w_acoshl.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -24,7 +24,7 @@ + long double + __acoshl (long double x) + { +- if (__builtin_expect (x < 1.0L, 0) && _LIB_VERSION != _IEEE_) ++ if (__builtin_expect (isless (x, 1.0L), 0) && _LIB_VERSION != _IEEE_) + /* acosh(x<1) */ + return __kernel_standard (x, x, 229); + +diff --git a/math/w_acosl.c b/math/w_acosl.c +index 6417068..05023b4 100644 +--- a/math/w_acosl.c ++++ b/math/w_acosl.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -25,7 +25,8 @@ + long double + __acosl (long double x) + { +- if (__builtin_expect (fabsl (x) > 1.0L, 0) && _LIB_VERSION != _IEEE_) ++ if (__builtin_expect (isgreater (fabsl (x), 1.0L), 0) ++ && _LIB_VERSION != _IEEE_) + { + /* acos(|x|>1) */ + feraiseexcept (FE_INVALID); +diff --git a/math/w_asin.c b/math/w_asin.c +index d4e89ce..0fa9487 100644 +--- a/math/w_asin.c ++++ b/math/w_asin.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -25,7 +25,8 @@ + double + __asin (double x) + { +- if (__builtin_expect (fabs (x) > 1.0, 0) && _LIB_VERSION != _IEEE_) ++ if (__builtin_expect (isgreater (fabs (x), 1.0), 0) ++ && _LIB_VERSION != _IEEE_) + { + /* asin(|x|>1) */ + feraiseexcept (FE_INVALID); +diff --git a/math/w_asinf.c b/math/w_asinf.c +index 270961f..c28edab 100644 +--- a/math/w_asinf.c ++++ b/math/w_asinf.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -25,7 +25,8 @@ + float + __asinf (float x) + { +- if (__builtin_expect (fabsf (x) > 1.0f, 0) && _LIB_VERSION != _IEEE_) ++ if (__builtin_expect (isgreater (fabsf (x), 1.0f), 0) ++ && _LIB_VERSION != _IEEE_) + { + /* asin(|x|>1) */ + feraiseexcept (FE_INVALID); +diff --git a/math/w_asinl.c b/math/w_asinl.c +index 32e5273..e4036d8 100644 +--- a/math/w_asinl.c ++++ b/math/w_asinl.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -25,7 +25,8 @@ + long double + __asinl (long double x) + { +- if (__builtin_expect (fabsl (x) > 1.0L, 0) && _LIB_VERSION != _IEEE_) ++ if (__builtin_expect (isgreater (fabsl (x), 1.0L), 0) ++ && _LIB_VERSION != _IEEE_) + { + /* asin(|x|>1) */ + feraiseexcept (FE_INVALID); +diff --git a/math/w_atanh.c b/math/w_atanh.c +index 1022bd5..190d2e9 100644 +--- a/math/w_atanh.c ++++ b/math/w_atanh.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -24,7 +24,8 @@ + double + __atanh (double x) + { +- if (__builtin_expect (fabs (x) >= 1.0, 0) && _LIB_VERSION != _IEEE_) ++ if (__builtin_expect (isgreaterequal (fabs (x), 1.0), 0) ++ && _LIB_VERSION != _IEEE_) + return __kernel_standard (x, x, + fabs (x) > 1.0 + ? 30 /* atanh(|x|>1) */ +diff --git a/math/w_atanhf.c b/math/w_atanhf.c +index 3c8cf83..e0c5dc3 100644 +--- a/math/w_atanhf.c ++++ b/math/w_atanhf.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -24,7 +24,8 @@ + float + __atanhf (float x) + { +- if (__builtin_expect (fabsf (x) >= 1.0f, 0) && _LIB_VERSION != _IEEE_) ++ if (__builtin_expect (isgreaterequal (fabsf (x), 1.0f), 0) ++ && _LIB_VERSION != _IEEE_) + return __kernel_standard_f (x, x, + fabsf (x) > 1.0f + ? 130 /* atanh(|x|>1) */ +diff --git a/math/w_atanhl.c b/math/w_atanhl.c +index f582acf..319535d 100644 +--- a/math/w_atanhl.c ++++ b/math/w_atanhl.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -24,7 +24,8 @@ + long double + __atanhl (long double x) + { +- if (__builtin_expect (fabsl (x) >= 1.0L, 0) && _LIB_VERSION != _IEEE_) ++ if (__builtin_expect (isgreaterequal (fabsl (x), 1.0L), 0) ++ && _LIB_VERSION != _IEEE_) + return __kernel_standard (x, x, + fabsl (x) > 1.0L + ? 230 /* atanh(|x|>1) */ +diff --git a/math/w_exp2.c b/math/w_exp2.c +index bf22326..7a3b0af 100644 +--- a/math/w_exp2.c ++++ b/math/w_exp2.c +@@ -12,7 +12,8 @@ static const double u_threshold = (double) (DBL_MIN_EXP - DBL_MANT_DIG - 1); + double + __exp2 (double x) + { +- if (__builtin_expect (x <= u_threshold || x > o_threshold, 0) ++ if (__builtin_expect (islessequal (x, u_threshold) ++ || isgreater (x, o_threshold), 0) + && _LIB_VERSION != _IEEE_ && __finite (x)) + /* exp2 overflow: 44, exp2 underflow: 45 */ + return __kernel_standard (x, x, 44 + (x <= o_threshold)); +diff --git a/math/w_exp2f.c b/math/w_exp2f.c +index 7215fca..c4e9e94 100644 +--- a/math/w_exp2f.c ++++ b/math/w_exp2f.c +@@ -12,7 +12,8 @@ static const float u_threshold = (float) (FLT_MIN_EXP - FLT_MANT_DIG - 1); + float + __exp2f (float x) + { +- if (__builtin_expect (x <= u_threshold || x > o_threshold, 0) ++ if (__builtin_expect (islessequal (x, u_threshold) ++ || isgreater (x, o_threshold), 0) + && _LIB_VERSION != _IEEE_ && __finitef (x)) + /* exp2 overflow: 144, exp2 underflow: 145 */ + return __kernel_standard_f (x, x, 144 + (x <= o_threshold)); +diff --git a/math/w_exp2l.c b/math/w_exp2l.c +index ac8d231..442a637 100644 +--- a/math/w_exp2l.c ++++ b/math/w_exp2l.c +@@ -13,7 +13,8 @@ static const long double u_threshold + long double + __exp2l (long double x) + { +- if (__builtin_expect (x <= u_threshold || x > o_threshold, 0) ++ if (__builtin_expect (islessequal (x, u_threshold) ++ || isgreater (x, o_threshold), 0) + && _LIB_VERSION != _IEEE_ && __finitel (x)) + /* exp2 overflow: 244, exp2 underflow: 245 */ + return __kernel_standard (x, x, 244 + (x <= o_threshold)); +diff --git a/math/w_j0.c b/math/w_j0.c +index 1dff8b4..f8d3724 100644 +--- a/math/w_j0.c ++++ b/math/w_j0.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -25,7 +25,8 @@ + double + j0 (double x) + { +- if (__builtin_expect (fabs (x) > X_TLOSS, 0) && _LIB_VERSION != _IEEE_) ++ if (__builtin_expect (isgreater (fabs (x), X_TLOSS), 0) ++ && _LIB_VERSION != _IEEE_) + /* j0(|x|>X_TLOSS) */ + return __kernel_standard (x, x, 34); + +@@ -40,7 +41,8 @@ strong_alias (j0, j0l) + double + y0 (double x) + { +- if (__builtin_expect (x <= 0.0 || x > X_TLOSS, 0) && _LIB_VERSION != _IEEE_) ++ if (__builtin_expect (islessequal (x, 0.0) || isgreater (x, X_TLOSS), 0) ++ && _LIB_VERSION != _IEEE_) + { + if (x < 0.0) + { +diff --git a/math/w_j0f.c b/math/w_j0f.c +index fc52f26..cef36aa 100644 +--- a/math/w_j0f.c ++++ b/math/w_j0f.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -25,7 +25,7 @@ + float + j0f (float x) + { +- if (__builtin_expect (fabsf (x) > (float) X_TLOSS, 0) ++ if (__builtin_expect (isgreater (fabsf (x), (float) X_TLOSS), 0) + && _LIB_VERSION != _IEEE_) + /* j0(|x|>X_TLOSS) */ + return __kernel_standard_f (x, x, 134); +@@ -38,7 +38,8 @@ j0f (float x) + float + y0f (float x) + { +- if (__builtin_expect (x <= 0.0f || x > (float) X_TLOSS, 0) ++ if (__builtin_expect (islessequal (x, 0.0f) ++ || isgreater (x, (float) X_TLOSS), 0) + && _LIB_VERSION != _IEEE_) + { + if (x < 0.0f) +diff --git a/math/w_j0l.c b/math/w_j0l.c +index 8d72d50..144f33c 100644 +--- a/math/w_j0l.c ++++ b/math/w_j0l.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -25,7 +25,8 @@ + long double + __j0l (long double x) + { +- if (__builtin_expect (fabsl (x) > X_TLOSS, 0) && _LIB_VERSION != _IEEE_) ++ if (__builtin_expect (isgreater (fabsl (x), X_TLOSS), 0) ++ && _LIB_VERSION != _IEEE_) + /* j0(|x|>X_TLOSS) */ + return __kernel_standard (x, x, 234); + +@@ -38,7 +39,8 @@ weak_alias (__j0l, j0l) + long double + __y0l (long double x) + { +- if (__builtin_expect (x <= 0.0L || x > X_TLOSS, 0) && _LIB_VERSION != _IEEE_) ++ if (__builtin_expect (islessequal (x, 0.0L) || isgreater (x, X_TLOSS), 0) ++ && _LIB_VERSION != _IEEE_) + { + if (x < 0.0L) + { +diff --git a/math/w_j1.c b/math/w_j1.c +index 358e0e1..e9a5357 100644 +--- a/math/w_j1.c ++++ b/math/w_j1.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -25,7 +25,8 @@ + double + j1 (double x) + { +- if (__builtin_expect (fabs (x) > X_TLOSS, 0) && _LIB_VERSION != _IEEE_) ++ if (__builtin_expect (isgreater (fabs (x), X_TLOSS), 0) ++ && _LIB_VERSION != _IEEE_) + /* j1(|x|>X_TLOSS) */ + return __kernel_standard (x, x, 36); + +@@ -40,7 +41,8 @@ strong_alias (j1, j1l) + double + y1 (double x) + { +- if (__builtin_expect (x <= 0.0 || x > X_TLOSS, 0) && _LIB_VERSION != _IEEE_) ++ if (__builtin_expect (islessequal (x, 0.0) || isgreater (x, X_TLOSS), 0) ++ && _LIB_VERSION != _IEEE_) + { + if (x < 0.0) + { +diff --git a/math/w_j1f.c b/math/w_j1f.c +index 096fdf5..29bd949 100644 +--- a/math/w_j1f.c ++++ b/math/w_j1f.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -25,7 +25,8 @@ + float + j1f (float x) + { +- if (__builtin_expect (fabsf (x) > X_TLOSS, 0) && _LIB_VERSION != _IEEE_) ++ if (__builtin_expect (isgreater (fabsf (x), X_TLOSS), 0) ++ && _LIB_VERSION != _IEEE_) + /* j1(|x|>X_TLOSS) */ + return __kernel_standard_f (x, x, 136); + +@@ -37,7 +38,8 @@ j1f (float x) + float + y1f (float x) + { +- if (__builtin_expect (x <= 0.0f || x > (float) X_TLOSS, 0) ++ if (__builtin_expect (islessequal (x, 0.0f) ++ || isgreater (x, (float) X_TLOSS), 0) + && _LIB_VERSION != _IEEE_) + { + if (x < 0.0f) +diff --git a/math/w_j1l.c b/math/w_j1l.c +index 93e4ee4..01b8551 100644 +--- a/math/w_j1l.c ++++ b/math/w_j1l.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -25,7 +25,8 @@ + long double + __j1l (long double x) + { +- if (__builtin_expect (fabsl (x) > X_TLOSS, 0) && _LIB_VERSION != _IEEE_) ++ if (__builtin_expect (isgreater (fabsl (x), X_TLOSS), 0) ++ && _LIB_VERSION != _IEEE_) + /* j1(|x|>X_TLOSS) */ + return __kernel_standard (x, x, 236); + +@@ -38,7 +39,8 @@ weak_alias (__j1l, j1l) + long double + __y1l (long double x) + { +- if (__builtin_expect (x <= 0.0L || x > X_TLOSS, 0) && _LIB_VERSION != _IEEE_) ++ if (__builtin_expect (islessequal (x, 0.0L) || isgreater (x, X_TLOSS), 0) ++ && _LIB_VERSION != _IEEE_) + { + if (x < 0.0L) + { +diff --git a/math/w_jn.c b/math/w_jn.c +index f0dd8c6..fd3fb16 100644 +--- a/math/w_jn.c ++++ b/math/w_jn.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -25,7 +25,8 @@ + double + jn (int n, double x) + { +- if (__builtin_expect (fabs (x) > X_TLOSS, 0) && _LIB_VERSION != _IEEE_) ++ if (__builtin_expect (isgreater (fabs (x), X_TLOSS), 0) ++ && _LIB_VERSION != _IEEE_) + /* jn(n,|x|>X_TLOSS) */ + return __kernel_standard (n, x, 38); + +@@ -40,7 +41,8 @@ strong_alias (jn, jnl) + double + yn (int n, double x) + { +- if (__builtin_expect (x <= 0.0 || x > X_TLOSS, 0) && _LIB_VERSION != _IEEE_) ++ if (__builtin_expect (islessequal (x, 0.0) || isgreater (x, X_TLOSS), 0) ++ && _LIB_VERSION != _IEEE_) + { + if (x < 0.0) + { +diff --git a/math/w_jnf.c b/math/w_jnf.c +index ef29eb4..36d6f6d 100644 +--- a/math/w_jnf.c ++++ b/math/w_jnf.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -25,7 +25,7 @@ + float + jnf (int n, float x) + { +- if (__builtin_expect (fabsf (x) > (float) X_TLOSS, 0) ++ if (__builtin_expect (isgreater (fabsf (x), (float) X_TLOSS), 0) + && _LIB_VERSION != _IEEE_) + /* jn(n,|x|>X_TLOSS) */ + return __kernel_standard_f (n, x, 138); +@@ -38,7 +38,8 @@ jnf (int n, float x) + float + ynf (int n, float x) + { +- if (__builtin_expect (x <= 0.0f || x > (float) X_TLOSS, 0) ++ if (__builtin_expect (islessequal (x, 0.0f) ++ || isgreater (x, (float) X_TLOSS), 0) + && _LIB_VERSION != _IEEE_) + { + if (x < 0.0f) +diff --git a/math/w_log.c b/math/w_log.c +index efc1c4c..ec33605 100644 +--- a/math/w_log.c ++++ b/math/w_log.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -25,7 +25,7 @@ + double + __log (double x) + { +- if (__builtin_expect (x <= 0.0, 0) && _LIB_VERSION != _IEEE_) ++ if (__builtin_expect (islessequal (x, 0.0), 0) && _LIB_VERSION != _IEEE_) + { + if (x == 0.0) + { +diff --git a/math/w_log10.c b/math/w_log10.c +index 2717ade..fe799ad 100644 +--- a/math/w_log10.c ++++ b/math/w_log10.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -25,7 +25,7 @@ + double + __log10 (double x) + { +- if (__builtin_expect (x <= 0.0, 0) && _LIB_VERSION != _IEEE_) ++ if (__builtin_expect (islessequal (x, 0.0), 0) && _LIB_VERSION != _IEEE_) + { + if (x == 0.0) + { +diff --git a/math/w_log10f.c b/math/w_log10f.c +index 60737ca..4b821f7 100644 +--- a/math/w_log10f.c ++++ b/math/w_log10f.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -25,7 +25,7 @@ + float + __log10f (float x) + { +- if (__builtin_expect (x <= 0.0f, 0) && _LIB_VERSION != _IEEE_) ++ if (__builtin_expect (islessequal (x, 0.0f), 0) && _LIB_VERSION != _IEEE_) + { + if (x == 0.0f) + { +diff --git a/math/w_log10l.c b/math/w_log10l.c +index b26f18c..0e5a137 100644 +--- a/math/w_log10l.c ++++ b/math/w_log10l.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -25,7 +25,7 @@ + long double + __log10l (long double x) + { +- if (__builtin_expect (x <= 0.0L, 0) && _LIB_VERSION != _IEEE_) ++ if (__builtin_expect (islessequal (x, 0.0L), 0) && _LIB_VERSION != _IEEE_) + { + if (x == 0.0L) + { +diff --git a/math/w_log2.c b/math/w_log2.c +index 998e5d9..e58e109 100644 +--- a/math/w_log2.c ++++ b/math/w_log2.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -25,7 +25,7 @@ + double + __log2 (double x) + { +- if (__builtin_expect (x <= 0.0, 0) && _LIB_VERSION != _IEEE_) ++ if (__builtin_expect (islessequal (x, 0.0), 0) && _LIB_VERSION != _IEEE_) + { + if (x == 0.0) + { +diff --git a/math/w_log2f.c b/math/w_log2f.c +index 6d91bf4..6963ed2 100644 +--- a/math/w_log2f.c ++++ b/math/w_log2f.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -25,7 +25,7 @@ + float + __log2f (float x) + { +- if (__builtin_expect (x <= 0.0f, 0) && _LIB_VERSION != _IEEE_) ++ if (__builtin_expect (islessequal (x, 0.0f), 0) && _LIB_VERSION != _IEEE_) + { + if (x == 0.0) + { +diff --git a/math/w_log2l.c b/math/w_log2l.c +index e51c1bc..eed04ff6c 100644 +--- a/math/w_log2l.c ++++ b/math/w_log2l.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -25,7 +25,7 @@ + long double + __log2l (long double x) + { +- if (__builtin_expect (x <= 0.0L, 0) && _LIB_VERSION != _IEEE_) ++ if (__builtin_expect (islessequal (x, 0.0L), 0) && _LIB_VERSION != _IEEE_) + { + if (x == 0.0L) + { +diff --git a/math/w_logf.c b/math/w_logf.c +index 8aa27c8..38d408f 100644 +--- a/math/w_logf.c ++++ b/math/w_logf.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -25,7 +25,7 @@ + float + __logf (float x) + { +- if (__builtin_expect (x <= 0.0f, 0) && _LIB_VERSION != _IEEE_) ++ if (__builtin_expect (islessequal (x, 0.0f), 0) && _LIB_VERSION != _IEEE_) + { + if (x == 0.0f) + { +diff --git a/math/w_logl.c b/math/w_logl.c +index a3139ff..593b37d 100644 +--- a/math/w_logl.c ++++ b/math/w_logl.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -25,7 +25,7 @@ + long double + __logl (long double x) + { +- if (__builtin_expect (x <= 0.0L, 0) && _LIB_VERSION != _IEEE_) ++ if (__builtin_expect (islessequal (x, 0.0L), 0) && _LIB_VERSION != _IEEE_) + { + if (x == 0.0L) + { +diff --git a/math/w_sqrt.c b/math/w_sqrt.c +index 409a6df..f6ba542 100644 +--- a/math/w_sqrt.c ++++ b/math/w_sqrt.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -24,7 +24,7 @@ + double + __sqrt (double x) + { +- if (__builtin_expect (x < 0.0, 0) && _LIB_VERSION != _IEEE_) ++ if (__builtin_expect (isless (x, 0.0), 0) && _LIB_VERSION != _IEEE_) + return __kernel_standard (x, x, 26); /* sqrt(negative) */ + + return __ieee754_sqrt (x); +diff --git a/math/w_sqrtf.c b/math/w_sqrtf.c +index 3c3d2f8..c128e9b 100644 +--- a/math/w_sqrtf.c ++++ b/math/w_sqrtf.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -24,7 +24,7 @@ + float + __sqrtf (float x) + { +- if (__builtin_expect (x < 0.0f, 0) && _LIB_VERSION != _IEEE_) ++ if (__builtin_expect (isless (x, 0.0f), 0) && _LIB_VERSION != _IEEE_) + return __kernel_standard_f (x, x, 126); /* sqrt(negative) */ + + return __ieee754_sqrtf (x); +diff --git a/math/w_sqrtl.c b/math/w_sqrtl.c +index 5e18f44..2a4a048 100644 +--- a/math/w_sqrtl.c ++++ b/math/w_sqrtl.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -24,7 +24,7 @@ + long double + __sqrtl (long double x) + { +- if (__builtin_expect (x < 0.0L, 0) && _LIB_VERSION != _IEEE_) ++ if (__builtin_expect (isless (x, 0.0L), 0) && _LIB_VERSION != _IEEE_) + return __kernel_standard (x, x, 226); /* sqrt(negative) */ + + return __ieee754_sqrtl (x); +diff --git a/sysdeps/ieee754/dbl-64/e_atanh.c b/sysdeps/ieee754/dbl-64/e_atanh.c +index 9fc21ab..5f471b1 100644 +--- a/sysdeps/ieee754/dbl-64/e_atanh.c ++++ b/sysdeps/ieee754/dbl-64/e_atanh.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -46,7 +46,7 @@ __ieee754_atanh (double x) + { + double xa = fabs (x); + double t; +- if (xa < 0.5) ++ if (isless (xa, 0.5)) + { + if (__builtin_expect (xa < 0x1.0p-28, 0)) + { +@@ -57,11 +57,11 @@ __ieee754_atanh (double x) + t = xa + xa; + t = 0.5 * __log1p (t + t * xa / (1.0 - xa)); + } +- else if (__builtin_expect (xa < 1.0, 1)) ++ else if (__builtin_expect (isless (xa, 1.0), 1)) + t = 0.5 * __log1p ((xa + xa) / (1.0 - xa)); + else + { +- if (xa > 1.0) ++ if (isgreater (xa, 1.0)) + return (x - x) / (x - x); + + return x / 0.0; +diff --git a/sysdeps/ieee754/dbl-64/w_exp.c b/sysdeps/ieee754/dbl-64/w_exp.c +index ee42587..b584ed8 100644 +--- a/sysdeps/ieee754/dbl-64/w_exp.c ++++ b/sysdeps/ieee754/dbl-64/w_exp.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -28,12 +28,12 @@ u_threshold= -7.45133219101941108420e+02; /* 0xc0874910, 0xD52D3051 */ + double + __exp (double x) + { +- if (__builtin_expect (x > o_threshold, 0)) ++ if (__builtin_expect (isgreater (x, o_threshold), 0)) + { + if (_LIB_VERSION != _IEEE_) + return __kernel_standard_f (x, x, 6); + } +- else if (__builtin_expect (x < u_threshold, 0)) ++ else if (__builtin_expect (isless (x, u_threshold), 0)) + { + if (_LIB_VERSION != _IEEE_) + return __kernel_standard_f (x, x, 7); +diff --git a/sysdeps/ieee754/flt-32/e_atanhf.c b/sysdeps/ieee754/flt-32/e_atanhf.c +index 75ed691..7af2f6c 100644 +--- a/sysdeps/ieee754/flt-32/e_atanhf.c ++++ b/sysdeps/ieee754/flt-32/e_atanhf.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -46,7 +46,7 @@ __ieee754_atanhf (float x) + { + float xa = fabsf (x); + float t; +- if (xa < 0.5f) ++ if (isless (xa, 0.5f)) + { + if (__builtin_expect (xa < 0x1.0p-28f, 0)) + { +@@ -57,11 +57,11 @@ __ieee754_atanhf (float x) + t = xa + xa; + t = 0.5f * __log1pf (t + t * xa / (1.0f - xa)); + } +- else if (__builtin_expect (xa < 1.0f, 1)) ++ else if (__builtin_expect (isless (xa, 1.0f), 1)) + t = 0.5f * __log1pf ((xa + xa) / (1.0f - xa)); + else + { +- if (xa > 1.0f) ++ if (isgreater (xa, 1.0f)) + return (x - x) / (x - x); + + return x / 0.0f; +diff --git a/sysdeps/ieee754/flt-32/w_expf.c b/sysdeps/ieee754/flt-32/w_expf.c +index 5500872..bc3b2f6 100644 +--- a/sysdeps/ieee754/flt-32/w_expf.c ++++ b/sysdeps/ieee754/flt-32/w_expf.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -28,12 +28,12 @@ u_threshold= -1.0397208405e+02; /* 0xc2cff1b5 */ + float + __expf (float x) + { +- if (__builtin_expect (x > o_threshold, 0)) ++ if (__builtin_expect (isgreater (x, o_threshold), 0)) + { + if (_LIB_VERSION != _IEEE_) + return __kernel_standard_f (x, x, 106); + } +- else if (__builtin_expect (x < u_threshold, 0)) ++ else if (__builtin_expect (isless (x, u_threshold), 0)) + { + if (_LIB_VERSION != _IEEE_) + return __kernel_standard_f (x, x, 107); +diff --git a/sysdeps/ieee754/ldbl-96/w_expl.c b/sysdeps/ieee754/ldbl-96/w_expl.c +index ec9d8a7..d61c0a3 100644 +--- a/sysdeps/ieee754/ldbl-96/w_expl.c ++++ b/sysdeps/ieee754/ldbl-96/w_expl.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -30,12 +30,12 @@ u_threshold= -1.140019167866942050398521670162263001513e4; + long double + __expl (long double x) + { +- if (__builtin_expect (x > o_threshold, 0)) ++ if (__builtin_expect (isgreater (x, o_threshold), 0)) + { + if (_LIB_VERSION != _IEEE_) + return __kernel_standard (x, x, 206); + } +- else if (__builtin_expect (x < u_threshold, 0)) ++ else if (__builtin_expect (isless (x, u_threshold), 0)) + { + if (_LIB_VERSION != _IEEE_) + return __kernel_standard (x, x, 207); diff --git a/multilib-testing/lib32-glibc/glibc-2.15-regex.patch b/multilib-testing/lib32-glibc/glibc-2.15-regex.patch new file mode 100644 index 000000000..6385f2c08 --- /dev/null +++ b/multilib-testing/lib32-glibc/glibc-2.15-regex.patch @@ -0,0 +1,16 @@ +diff --git a/posix/regex_internal.c b/posix/regex_internal.c +index bc19243..124f8cc 100644 +--- a/posix/regex_internal.c ++++ b/posix/regex_internal.c +@@ -868,7 +868,7 @@ re_string_peek_byte_case (const re_string_t *pstr, int idx) + } + + static unsigned char +-internal_function __attribute ((pure)) ++internal_function + re_string_fetch_byte_case (re_string_t *pstr) + { + if (BE (!pstr->mbs_allocated, 1)) +-- +1.7.3.4 + diff --git a/multilib-testing/lib32-glibc/glibc-2.15-revert-c5a0802a.patch b/multilib-testing/lib32-glibc/glibc-2.15-revert-c5a0802a.patch new file mode 100644 index 000000000..f532b95e8 --- /dev/null +++ b/multilib-testing/lib32-glibc/glibc-2.15-revert-c5a0802a.patch @@ -0,0 +1,229 @@ +diff -rup a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S +--- a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S 2011-12-22 18:04:12.937212834 +0000 ++++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S 2011-12-22 18:04:42.104222278 +0000 +@@ -137,7 +137,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 +@@ -151,9 +150,6 @@ __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. */ + cmpl $-ENOSYS, %eax +@@ -398,78 +394,6 @@ __pthread_cond_wait: + #endif + 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) +@@ -642,10 +566,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 +Only in b/nptl/sysdeps/unix/sysv/linux/i386/i486: pthread_cond_wait.S.orig +diff -rup a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S +--- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S 2011-12-22 18:04:12.941212837 +0000 ++++ b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S 2011-12-22 18:05:05.155229737 +0000 +@@ -23,7 +23,6 @@ + #include <lowlevelcond.h> + #include <tcb-offsets.h> + #include <pthread-pi-defines.h> +-#include <pthread-errnos.h> + + #include <kernel-features.h> + +@@ -137,14 +136,11 @@ __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 + #ifdef __ASSUME_REQUEUE_PI + jmp 62f + #else +@@ -331,70 +327,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 +- cmpq $-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 +- cmpq $-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 +- movq dep_mutex(%rdi), %r8 +- 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,15 +479,11 @@ __condvar_cleanup1: + .uleb128 .LcleanupSTART-.LSTARTCODE + .uleb128 .LcleanupEND-.LcleanupSTART + .uleb128 __condvar_cleanup1-.LSTARTCODE +- .uleb128 0 +- .uleb128 .LcleanupSTART2-.LSTARTCODE +- .uleb128 .LcleanupEND2-.LcleanupSTART2 +- .uleb128 __condvar_cleanup1-.LSTARTCODE +- .uleb128 0 ++ .uleb128 0 + .uleb128 .LcallUR-.LSTARTCODE + .uleb128 .LENDCODE-.LcallUR + .uleb128 0 +- .uleb128 0 ++ .uleb128 0 + .Lcstend: + + +Only in b/nptl/sysdeps/unix/sysv/linux/x86_64: pthread_cond_wait.S.orig +Only in b/nptl/sysdeps/unix/sysv/linux/x86_64: pthread_cond_wait.S.rej diff --git a/multilib-testing/lib32-glibc/glibc-2.15-revert-netlink-cache.patch b/multilib-testing/lib32-glibc/glibc-2.15-revert-netlink-cache.patch new file mode 100644 index 000000000..87d04c794 --- /dev/null +++ b/multilib-testing/lib32-glibc/glibc-2.15-revert-netlink-cache.patch @@ -0,0 +1,680 @@ +diff --git a/include/ifaddrs.h b/include/ifaddrs.h +index e1c6cac..50e4c48 100644 +--- a/include/ifaddrs.h ++++ b/include/ifaddrs.h +@@ -21,13 +21,8 @@ struct in6addrinfo + extern void __check_pf (bool *seen_ipv4, bool *seen_ipv6, + struct in6addrinfo **in6ai, size_t *in6ailen) + attribute_hidden; +-extern void __free_in6ai (struct in6addrinfo *in6ai) attribute_hidden; + extern void __check_native (uint32_t a1_index, int *a1_native, + uint32_t a2_index, int *a2_native) + attribute_hidden; + +-#ifdef IS_IN_nscd +-extern uint32_t __bump_nl_timestamp (void) attribute_hidden; +-#endif +- + #endif /* ifaddrs.h */ +diff --git a/inet/check_pf.c b/inet/check_pf.c +index 0fa34cc..b015432 100644 +--- a/inet/check_pf.c ++++ b/inet/check_pf.c +@@ -1,5 +1,5 @@ + /* Determine protocol families for which interfaces exist. Generic version. +- Copyright (C) 2003, 2006, 2011 Free Software Foundation, Inc. ++ Copyright (C) 2003, 2006 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 +@@ -54,19 +54,3 @@ __check_pf (bool *seen_ipv4, bool *seen_ipv6, + + (void) freeifaddrs (ifa); + } +- +- +-void +-__free_in6ai (struct in6addrinfo *in6ai) +-{ +- /* Nothing to do. */ +-} +- +- +-#ifdef IS_IN_nscd +-uint32_t +-__bump_nl_timestamp (void) +-{ +- return 0; +-} +-#endif +diff --git a/nscd/connections.c b/nscd/connections.c +index c741996..2b5c7ef 100644 +--- a/nscd/connections.c ++++ b/nscd/connections.c +@@ -24,7 +24,6 @@ + #include <errno.h> + #include <fcntl.h> + #include <grp.h> +-#include <ifaddrs.h> + #include <libintl.h> + #include <pthread.h> + #include <pwd.h> +@@ -33,10 +32,6 @@ + #include <stdlib.h> + #include <unistd.h> + #include <arpa/inet.h> +-#ifdef HAVE_NETLINK +-# include <linux/netlink.h> +-# include <linux/rtnetlink.h> +-#endif + #ifdef HAVE_EPOLL + # include <sys/epoll.h> + #endif +@@ -252,11 +247,6 @@ static int sock; + int inotify_fd = -1; + #endif + +-#ifdef HAVE_NETLINK +-/* Descriptor for netlink status updates. */ +-static int nl_status_fd = -1; +-#endif +- + #ifndef __ASSUME_SOCK_CLOEXEC + /* Negative if SOCK_CLOEXEC is not supported, positive if it is, zero + before be know the result. */ +@@ -913,65 +903,6 @@ cannot set socket to close on exec: %s; disabling paranoia mode"), + exit (1); + } + +-#ifdef HAVE_NETLINK +- if (dbs[hstdb].enabled) +- { +- /* Try to open netlink socket to monitor network setting changes. */ +- nl_status_fd = socket (AF_NETLINK, +- SOCK_RAW | SOCK_CLOEXEC | SOCK_NONBLOCK, +- NETLINK_ROUTE); +- if (nl_status_fd != -1) +- { +- struct sockaddr_nl snl; +- memset (&snl, '\0', sizeof (snl)); +- snl.nl_family = AF_NETLINK; +- /* XXX Is this the best set to use? */ +- snl.nl_groups = (RTMGRP_IPV4_IFADDR | RTMGRP_TC | RTMGRP_IPV4_MROUTE +- | RTMGRP_IPV4_ROUTE | RTMGRP_IPV4_RULE +- | RTMGRP_IPV6_IFADDR | RTMGRP_IPV6_MROUTE +- | RTMGRP_IPV6_ROUTE | RTMGRP_IPV6_IFINFO +- | RTMGRP_IPV6_PREFIX); +- +- if (bind (nl_status_fd, (struct sockaddr *) &snl, sizeof (snl)) != 0) +- { +- close (nl_status_fd); +- nl_status_fd = -1; +- } +- else +- { +- /* Start the timestamp process. */ +- dbs[hstdb].head->extra_data[NSCD_HST_IDX_CONF_TIMESTAMP] +- = __bump_nl_timestamp (); +- +-# ifndef __ASSUME_SOCK_CLOEXEC +- if (have_sock_cloexec < 0) +- { +- /* We don't want to get stuck on accept. */ +- int fl = fcntl (nl_status_fd, F_GETFL); +- if (fl == -1 +- || fcntl (nl_status_fd, F_SETFL, fl | O_NONBLOCK) == -1) +- { +- dbg_log (_("\ +-cannot change socket to nonblocking mode: %s"), +- strerror (errno)); +- exit (1); +- } +- +- /* The descriptor needs to be closed on exec. */ +- if (paranoia +- && fcntl (nl_status_fd, F_SETFD, FD_CLOEXEC) == -1) +- { +- dbg_log (_("cannot set socket to close on exec: %s"), +- strerror (errno)); +- exit (1); +- } +- } +-# endif +- } +- } +- } +-#endif +- + /* Change to unprivileged uid/gid/groups if specified in config file */ + if (server_user != NULL) + finish_drop_privileges (); +@@ -1895,18 +1826,6 @@ main_loop_poll (void) + } + #endif + +-#ifdef HAVE_NETLINK +- size_t idx_nl_status_fd = 0; +- if (nl_status_fd != -1) +- { +- idx_nl_status_fd = nused; +- conns[nused].fd = nl_status_fd; +- conns[nused].events = POLLRDNORM; +- ++nused; +- firstfree = nused; +- } +-#endif +- + while (1) + { + /* Wait for any event. We wait at most a couple of seconds so +@@ -2049,20 +1968,6 @@ disabled inotify after read error %d"), + } + #endif + +-#ifdef HAVE_NETLINK +- if (idx_nl_status_fd != 0 && conns[idx_nl_status_fd].revents != 0) +- { +- char buf[4096]; +- /* Read all the data. We do not interpret it here. */ +- while (TEMP_FAILURE_RETRY (read (nl_status_fd, buf, +- sizeof (buf))) != -1) +- ; +- +- dbs[hstdb].head->extra_data[NSCD_HST_IDX_CONF_TIMESTAMP] +- = __bump_nl_timestamp (); +- } +-#endif +- + for (size_t cnt = first; cnt < nused && n > 0; ++cnt) + if (conns[cnt].revents != 0) + { +@@ -2141,17 +2046,6 @@ main_loop_epoll (int efd) + } + # endif + +-# ifdef HAVE_NETLINK +- if (nl_status_fd != -1) +- { +- ev.events = EPOLLRDNORM; +- ev.data.fd = nl_status_fd; +- if (epoll_ctl (efd, EPOLL_CTL_ADD, nl_status_fd, &ev) == -1) +- /* We cannot use epoll. */ +- return; +- } +-# endif +- + while (1) + { + struct epoll_event revs[100]; +@@ -2268,18 +2162,6 @@ main_loop_epoll (int efd) + } + } + # endif +-# ifdef HAVE_NETLINK +- else if (revs[cnt].data.fd == nl_status_fd) +- { +- char buf[4096]; +- /* Read all the data. We do not interpret it here. */ +- while (TEMP_FAILURE_RETRY (read (nl_status_fd, buf, +- sizeof (buf))) != -1) +- ; +- +- __bump_nl_timestamp (); +- } +-# endif + else + { + /* Remove the descriptor from the epoll descriptor. */ +@@ -2303,7 +2185,6 @@ main_loop_epoll (int efd) + time_t laststart = now - ACCEPT_TIMEOUT; + assert (starttime[sock] == 0); + assert (inotify_fd == -1 || starttime[inotify_fd] == 0); +- assert (nl_status_fd == -1 || starttime[nl_status_fd] == 0); + for (int cnt = highest; cnt > STDERR_FILENO; --cnt) + if (starttime[cnt] != 0 && starttime[cnt] < laststart) + { +diff --git a/nscd/nscd-client.h b/nscd/nscd-client.h +index b5cd2d2..caad26a 100644 +--- a/nscd/nscd-client.h ++++ b/nscd/nscd-client.h +@@ -260,17 +260,12 @@ struct hashentry + + + /* Current persistent database version. */ +-#define DB_VERSION 2 ++#define DB_VERSION 1 + + /* Maximum time allowed between updates of the timestamp. */ + #define MAPPING_TIMEOUT (5 * 60) + + +-/* Used indices for the EXTRA_DATA element of 'database_pers_head'. +- Each database has its own indices. */ +-#define NSCD_HST_IDX_CONF_TIMESTAMP 0 +- +- + /* Header of persistent database file. */ + struct database_pers_head + { +@@ -279,8 +274,6 @@ struct database_pers_head + volatile int32_t gc_cycle; + volatile int32_t nscd_certainly_running; + volatile nscd_time_t timestamp; +- /* Room for extensions. */ +- volatile uint32_t extra_data[4]; + + nscd_ssize_t module; + nscd_ssize_t data_size; +@@ -329,12 +322,6 @@ extern int __nscd_open_socket (const char *key, size_t keylen, + request_type type, void *response, + size_t responselen) attribute_hidden; + +-/* Try to get a file descriptor for the shared meory segment +- containing the database. */ +-extern struct mapped_database *__nscd_get_mapping (request_type type, +- const char *key, +- struct mapped_database **mappedp) attribute_hidden; +- + /* Get reference of mapping. */ + extern struct mapped_database *__nscd_get_map_ref (request_type type, + const char *name, +@@ -384,7 +371,4 @@ extern ssize_t writeall (int fd, const void *buf, size_t len) + extern ssize_t sendfileall (int tofd, int fromfd, off_t off, size_t len) + attribute_hidden; + +-/* Get netlink timestamp counter from mapped area or zero. */ +-extern uint32_t __nscd_get_nl_timestamp (void); +- + #endif /* nscd.h */ +diff --git a/nscd/nscd_gethst_r.c b/nscd/nscd_gethst_r.c +index 6ee142d..70631fa 100644 +--- a/nscd/nscd_gethst_r.c ++++ b/nscd/nscd_gethst_r.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 1998-2005, 2006, 2007, 2008, 2009, 2011 ++/* Copyright (C) 1998-2005, 2006, 2007, 2008, 2009 + Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998. +@@ -98,27 +98,6 @@ libc_freeres_fn (hst_map_free) + } + + +-uint32_t +-__nscd_get_nl_timestamp (void) +-{ +- if (__nss_not_use_nscd_hosts != 0) +- return 0; +- +- struct mapped_database *map = __hst_map_handle.mapped; +- +- if (map == NULL +- || (map != NO_MAPPING +- && map->head->nscd_certainly_running == 0 +- && map->head->timestamp + MAPPING_TIMEOUT < time (NULL))) +- map = __nscd_get_mapping (GETFDHST, "hosts", &__hst_map_handle.mapped); +- +- if (map == NO_MAPPING) +- return 0; +- +- return map->head->extra_data[NSCD_HST_IDX_CONF_TIMESTAMP]; +-} +- +- + int __nss_have_localdomain attribute_hidden; + + static int +diff --git a/nscd/nscd_helper.c b/nscd/nscd_helper.c +index 365b599..fe63f9a 100644 +--- a/nscd/nscd_helper.c ++++ b/nscd/nscd_helper.c +@@ -277,9 +277,9 @@ __nscd_unmap (struct mapped_database *mapped) + + /* Try to get a file descriptor for the shared meory segment + containing the database. */ +-struct mapped_database * +-__nscd_get_mapping (request_type type, const char *key, +- struct mapped_database **mappedp) ++static struct mapped_database * ++get_mapping (request_type type, const char *key, ++ struct mapped_database **mappedp) + { + struct mapped_database *result = NO_MAPPING; + #ifdef SCM_RIGHTS +@@ -449,8 +449,8 @@ __nscd_get_map_ref (request_type type, const char *name, + || (cur->head->nscd_certainly_running == 0 + && cur->head->timestamp + MAPPING_TIMEOUT < time (NULL)) + || cur->head->data_size > cur->datasize) +- cur = __nscd_get_mapping (type, name, +- (struct mapped_database **) &mapptr->mapped); ++ cur = get_mapping (type, name, ++ (struct mapped_database **) &mapptr->mapped); + + if (__builtin_expect (cur != NO_MAPPING, 1)) + { +diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c +index 1a023f9..4979805 100644 +--- a/sysdeps/posix/getaddrinfo.c ++++ b/sysdeps/posix/getaddrinfo.c +@@ -2386,7 +2386,7 @@ getaddrinfo (const char *name, const char *service, + || (hints->ai_family == PF_INET6 && ! seen_ipv6)) + { + /* We cannot possibly return a valid answer. */ +- __free_in6ai (in6ai); ++ free (in6ai); + return EAI_NONAME; + } + } +@@ -2400,7 +2400,7 @@ getaddrinfo (const char *name, const char *service, + { + if (hints->ai_flags & AI_NUMERICSERV) + { +- __free_in6ai (in6ai); ++ free (in6ai); + return EAI_NONAME; + } + +@@ -2422,7 +2422,7 @@ getaddrinfo (const char *name, const char *service, + if (last_i != 0) + { + freeaddrinfo (p); +- __free_in6ai (in6ai); ++ free (in6ai); + + return -(last_i & GAIH_EAI); + } +@@ -2434,7 +2434,7 @@ getaddrinfo (const char *name, const char *service, + } + else + { +- __free_in6ai (in6ai); ++ free (in6ai); + return EAI_FAMILY; + } + +@@ -2622,7 +2622,7 @@ getaddrinfo (const char *name, const char *service, + p->ai_canonname = canonname; + } + +- __free_in6ai (in6ai); ++ free (in6ai); + + if (p) + { +diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile +index e684b16..c907af4 100644 +--- a/sysdeps/unix/sysv/linux/Makefile ++++ b/sysdeps/unix/sysv/linux/Makefile +@@ -173,6 +173,6 @@ CFLAGS-mq_receive.c += -fexceptions + endif + + ifeq ($(subdir),nscd) +-sysdep-CFLAGS += -DHAVE_EPOLL -DHAVE_SENDFILE -DHAVE_INOTIFY -DHAVE_NETLINK ++sysdep-CFLAGS += -DHAVE_EPOLL -DHAVE_SENDFILE -DHAVE_INOTIFY + CFLAGS-gai.c += -DNEED_NETLINK + endif +diff --git a/sysdeps/unix/sysv/linux/check_pf.c b/sysdeps/unix/sysv/linux/check_pf.c +index 0738a70..d5ad7ea 100644 +--- a/sysdeps/unix/sysv/linux/check_pf.c ++++ b/sysdeps/unix/sysv/linux/check_pf.c +@@ -1,5 +1,5 @@ + /* Determine protocol families for which interfaces exist. Linux version. +- Copyright (C) 2003, 2006-2008, 2010, 2011 Free Software Foundation, Inc. ++ Copyright (C) 2003, 2006, 2007, 2008, 2010, 2011 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 +@@ -33,9 +33,6 @@ + + #include <not-cancel.h> + #include <kernel-features.h> +-#include <bits/libc-lock.h> +-#include <atomic.h> +-#include <nscd/nscd-client.h> + + + #ifndef IFA_F_HOMEADDRESS +@@ -46,42 +43,9 @@ + #endif + + +-struct cached_data +-{ +- uint32_t timestamp; +- uint32_t usecnt; +- bool seen_ipv4; +- bool seen_ipv6; +- size_t in6ailen; +- struct in6addrinfo in6ai[0]; +-}; +- +-static struct cached_data noai6ai_cached = +- { +- .usecnt = 1, /* Make sure we never try to delete this entry. */ +- .in6ailen = 0 +- }; +- +-static struct cached_data *cache; +-__libc_lock_define_initialized (static, lock); +- +- +-#ifdef IS_IN_nscd +-static uint32_t nl_timestamp; +- +-uint32_t +-__bump_nl_timestamp (void) +-{ +- if (atomic_increment_val (&nl_timestamp) == 0) +- atomic_increment (&nl_timestamp); +- +- return nl_timestamp; +-} +-#endif +- +- +-static struct cached_data * +-make_request (int fd, pid_t pid) ++static int ++make_request (int fd, pid_t pid, bool *seen_ipv4, bool *seen_ipv6, ++ struct in6addrinfo **in6ai, size_t *in6ailen) + { + struct req + { +@@ -135,6 +99,9 @@ make_request (int fd, pid_t pid) + sizeof (nladdr))) < 0) + goto out_fail; + ++ *seen_ipv4 = false; ++ *seen_ipv6 = false; ++ + bool done = false; + struct in6ailist + { +@@ -142,8 +109,6 @@ make_request (int fd, pid_t pid) + struct in6ailist *next; + } *in6ailist = NULL; + size_t in6ailistlen = 0; +- bool seen_ipv4 = false; +- bool seen_ipv6 = false; + + do + { +@@ -207,12 +172,12 @@ make_request (int fd, pid_t pid) + { + if (*(const in_addr_t *) address + != htonl (INADDR_LOOPBACK)) +- seen_ipv4 = true; ++ *seen_ipv4 = true; + } + else + { + if (!IN6_IS_ADDR_LOOPBACK (address)) +- seen_ipv6 = true; ++ *seen_ipv6 = true; + } + } + +@@ -246,47 +211,30 @@ make_request (int fd, pid_t pid) + } + while (! done); + +- struct cached_data *result; +- if (seen_ipv6 && in6ailist != NULL) ++ if (*seen_ipv6 && in6ailist != NULL) + { +- result = malloc (sizeof (*result) +- + in6ailistlen * sizeof (struct in6addrinfo)); +- if (result == NULL) ++ *in6ai = malloc (in6ailistlen * sizeof (**in6ai)); ++ if (*in6ai == NULL) + goto out_fail; + +-#ifdef IS_IN_nscd +- result->timestamp = nl_timestamp; +-#else +- result->timestamp = __nscd_get_nl_timestamp (); +-#endif +- result->usecnt = 2; +- result->seen_ipv4 = seen_ipv4; +- result->seen_ipv6 = true; +- result->in6ailen = in6ailistlen; ++ *in6ailen = in6ailistlen; + + do + { +- result->in6ai[--in6ailistlen] = in6ailist->info; ++ (*in6ai)[--in6ailistlen] = in6ailist->info; + in6ailist = in6ailist->next; + } + while (in6ailist != NULL); + } +- else +- { +- atomic_add (&noai6ai_cached.usecnt, 2); +- noai6ai_cached.seen_ipv4 = seen_ipv4; +- noai6ai_cached.seen_ipv6 = seen_ipv6; +- result = &noai6ai_cached; +- } + + if (use_malloc) + free (buf); +- return result; ++ return 0; + + out_fail: + if (use_malloc) + free (buf); +- return NULL; ++ return -1; + } + + +@@ -310,65 +258,28 @@ __check_pf (bool *seen_ipv4, bool *seen_ipv6, + + if (! __no_netlink_support) + { +- struct cached_data *olddata = NULL; +- struct cached_data *data = NULL; ++ int fd = __socket (PF_NETLINK, SOCK_RAW, NETLINK_ROUTE); + +- __libc_lock_lock (lock); +- +-#ifdef IS_IN_nscd +-# define cache_valid() nl_timestamp != 0 && cache->timestamp == nl_timestamp +-#else +-# define cache_valid() \ +- ({ uint32_t val = __nscd_get_nl_timestamp (); \ +- val != 0 && cache->timestamp == val; }) +-#endif +- if (cache != NULL && cache_valid ()) +- { +- data = cache; +- atomic_increment (&cache->usecnt); +- } +- else ++ if (__builtin_expect (fd >= 0, 1)) + { +- int fd = __socket (PF_NETLINK, SOCK_RAW, NETLINK_ROUTE); ++ struct sockaddr_nl nladdr; ++ memset (&nladdr, '\0', sizeof (nladdr)); ++ nladdr.nl_family = AF_NETLINK; + +- if (__builtin_expect (fd >= 0, 1)) +- { +- struct sockaddr_nl nladdr; +- memset (&nladdr, '\0', sizeof (nladdr)); +- nladdr.nl_family = AF_NETLINK; +- +- socklen_t addr_len = sizeof (nladdr); +- +- if(__bind (fd, (struct sockaddr *) &nladdr, sizeof (nladdr)) == 0 +- && __getsockname (fd, (struct sockaddr *) &nladdr, +- &addr_len) == 0) +- data = make_request (fd, nladdr.nl_pid); +- +- close_not_cancel_no_status (fd); +- } +- +- if (data != NULL) +- { +- olddata = cache; +- cache = data; +- } +- } ++ socklen_t addr_len = sizeof (nladdr); + +- __libc_lock_unlock (lock); ++ bool success ++ = (__bind (fd, (struct sockaddr *) &nladdr, sizeof (nladdr)) == 0 ++ && __getsockname (fd, (struct sockaddr *) &nladdr, ++ &addr_len) == 0 ++ && make_request (fd, nladdr.nl_pid, seen_ipv4, seen_ipv6, ++ in6ai, in6ailen) == 0); + +- if (data != NULL) +- { +- /* It worked. */ +- *seen_ipv4 = data->seen_ipv4; +- *seen_ipv6 = data->seen_ipv6; +- *in6ailen = data->in6ailen; +- *in6ai = data->in6ai; +- +- if (olddata != NULL && olddata->usecnt > 0 +- && atomic_add_zero (&olddata->usecnt, -1)) +- free (olddata); ++ close_not_cancel_no_status (fd); + +- return; ++ if (success) ++ /* It worked. */ ++ return; + } + + #if __ASSUME_NETLINK_SUPPORT == 0 +@@ -407,26 +318,3 @@ __check_pf (bool *seen_ipv4, bool *seen_ipv6, + (void) freeifaddrs (ifa); + #endif + } +- +- +-void +-__free_in6ai (struct in6addrinfo *ai) +-{ +- if (ai != NULL) +- { +- struct cached_data *data = +- (struct cached_data *) ((char *) ai +- - offsetof (struct cached_data, in6ai)); +- +- if (atomic_add_zero (&data->usecnt, -1)) +- { +- __libc_lock_lock (lock); +- +- if (data->usecnt == 0) +- /* Still unused. */ +- free (data); +- +- __libc_lock_unlock (lock); +- } +- } +-} diff --git a/multilib-testing/lib32-glibc/glibc-2.15-rintf-rounding.patch b/multilib-testing/lib32-glibc/glibc-2.15-rintf-rounding.patch new file mode 100644 index 000000000..e0240ac6c --- /dev/null +++ b/multilib-testing/lib32-glibc/glibc-2.15-rintf-rounding.patch @@ -0,0 +1,158 @@ +diff --git a/math/libm-test.inc b/math/libm-test.inc +index 6243e1e..c8186c8 100644 +--- a/math/libm-test.inc ++++ b/math/libm-test.inc +@@ -5037,6 +5037,22 @@ rint_test (void) + TEST_f_f (rint, 262142.75, 262143.0); + TEST_f_f (rint, 524286.75, 524287.0); + TEST_f_f (rint, 524288.75, 524289.0); ++ TEST_f_f (rint, 1048576.75, 1048577.0); ++ TEST_f_f (rint, 2097152.75, 2097153.0); ++ TEST_f_f (rint, -1048576.75, -1048577.0); ++ TEST_f_f (rint, -2097152.75, -2097153.0); ++#ifndef TEST_FLOAT ++ TEST_f_f (rint, 70368744177664.75, 70368744177665.0); ++ TEST_f_f (rint, 140737488355328.75, 140737488355329.0); ++ TEST_f_f (rint, 281474976710656.75, 281474976710657.0); ++ TEST_f_f (rint, 562949953421312.75, 562949953421313.0); ++ TEST_f_f (rint, 1125899906842624.75, 1125899906842625.0); ++ TEST_f_f (rint, -70368744177664.75, -70368744177665.0); ++ TEST_f_f (rint, -140737488355328.75, -140737488355329.0); ++ TEST_f_f (rint, -281474976710656.75, -281474976710657.0); ++ TEST_f_f (rint, -562949953421312.75, -562949953421313.0); ++ TEST_f_f (rint, -1125899906842624.75, -1125899906842625.0); ++#endif + #ifdef TEST_LDOUBLE + /* The result can only be represented in long double. */ + TEST_f_f (rint, 4503599627370495.5L, 4503599627370496.0L); +@@ -5137,6 +5153,22 @@ rint_test_tonearest (void) + TEST_f_f (rint, -0.1, -0.0); + TEST_f_f (rint, -0.25, -0.0); + TEST_f_f (rint, -0.625, -1.0); ++ TEST_f_f (rint, 1048576.75, 1048577.0); ++ TEST_f_f (rint, 2097152.75, 2097153.0); ++ TEST_f_f (rint, -1048576.75, -1048577.0); ++ TEST_f_f (rint, -2097152.75, -2097153.0); ++#ifndef TEST_FLOAT ++ TEST_f_f (rint, 70368744177664.75, 70368744177665.0); ++ TEST_f_f (rint, 140737488355328.75, 140737488355329.0); ++ TEST_f_f (rint, 281474976710656.75, 281474976710657.0); ++ TEST_f_f (rint, 562949953421312.75, 562949953421313.0); ++ TEST_f_f (rint, 1125899906842624.75, 1125899906842625.0); ++ TEST_f_f (rint, -70368744177664.75, -70368744177665.0); ++ TEST_f_f (rint, -140737488355328.75, -140737488355329.0); ++ TEST_f_f (rint, -281474976710656.75, -281474976710657.0); ++ TEST_f_f (rint, -562949953421312.75, -562949953421313.0); ++ TEST_f_f (rint, -1125899906842624.75, -1125899906842625.0); ++#endif + #ifdef TEST_LDOUBLE + /* The result can only be represented in long double. */ + TEST_f_f (rint, 4503599627370495.5L, 4503599627370496.0L); +@@ -5207,6 +5239,22 @@ rint_test_towardzero (void) + TEST_f_f (rint, -0.1, -0.0); + TEST_f_f (rint, -0.25, -0.0); + TEST_f_f (rint, -0.625, -0.0); ++ TEST_f_f (rint, 1048576.75, 1048576.0); ++ TEST_f_f (rint, 2097152.75, 2097152.0); ++ TEST_f_f (rint, -1048576.75, -1048576.0); ++ TEST_f_f (rint, -2097152.75, -2097152.0); ++#ifndef TEST_FLOAT ++ TEST_f_f (rint, 70368744177664.75, 70368744177664.0); ++ TEST_f_f (rint, 140737488355328.75, 140737488355328.0); ++ TEST_f_f (rint, 281474976710656.75, 281474976710656.0); ++ TEST_f_f (rint, 562949953421312.75, 562949953421312.0); ++ TEST_f_f (rint, 1125899906842624.75, 1125899906842624.0); ++ TEST_f_f (rint, -70368744177664.75, -70368744177664.0); ++ TEST_f_f (rint, -140737488355328.75, -140737488355328.0); ++ TEST_f_f (rint, -281474976710656.75, -281474976710656.0); ++ TEST_f_f (rint, -562949953421312.75, -562949953421312.0); ++ TEST_f_f (rint, -1125899906842624.75, -1125899906842624.0); ++#endif + #ifdef TEST_LDOUBLE + /* The result can only be represented in long double. */ + TEST_f_f (rint, 4503599627370495.5L, 4503599627370495.0L); +@@ -5277,6 +5325,22 @@ rint_test_downward (void) + TEST_f_f (rint, -0.1, -1.0); + TEST_f_f (rint, -0.25, -1.0); + TEST_f_f (rint, -0.625, -1.0); ++ TEST_f_f (rint, 1048576.75, 1048576.0); ++ TEST_f_f (rint, 2097152.75, 2097152.0); ++ TEST_f_f (rint, -1048576.75, -1048577.0); ++ TEST_f_f (rint, -2097152.75, -2097153.0); ++#ifndef TEST_FLOAT ++ TEST_f_f (rint, 70368744177664.75, 70368744177664.0); ++ TEST_f_f (rint, 140737488355328.75, 140737488355328.0); ++ TEST_f_f (rint, 281474976710656.75, 281474976710656.0); ++ TEST_f_f (rint, 562949953421312.75, 562949953421312.0); ++ TEST_f_f (rint, 1125899906842624.75, 1125899906842624.0); ++ TEST_f_f (rint, -70368744177664.75, -70368744177665.0); ++ TEST_f_f (rint, -140737488355328.75, -140737488355329.0); ++ TEST_f_f (rint, -281474976710656.75, -281474976710657.0); ++ TEST_f_f (rint, -562949953421312.75, -562949953421313.0); ++ TEST_f_f (rint, -1125899906842624.75, -1125899906842625.0); ++#endif + #ifdef TEST_LDOUBLE + /* The result can only be represented in long double. */ + TEST_f_f (rint, 4503599627370495.5L, 4503599627370495.0L); +@@ -5347,6 +5411,22 @@ rint_test_upward (void) + TEST_f_f (rint, -0.1, -0.0); + TEST_f_f (rint, -0.25, -0.0); + TEST_f_f (rint, -0.625, -0.0); ++ TEST_f_f (rint, 1048576.75, 1048577.0); ++ TEST_f_f (rint, 2097152.75, 2097153.0); ++ TEST_f_f (rint, -1048576.75, -1048576.0); ++ TEST_f_f (rint, -2097152.75, -2097152.0); ++#ifndef TEST_FLOAT ++ TEST_f_f (rint, 70368744177664.75, 70368744177665.0); ++ TEST_f_f (rint, 140737488355328.75, 140737488355329.0); ++ TEST_f_f (rint, 281474976710656.75, 281474976710657.0); ++ TEST_f_f (rint, 562949953421312.75, 562949953421313.0); ++ TEST_f_f (rint, 1125899906842624.75, 1125899906842625.0); ++ TEST_f_f (rint, -70368744177664.75, -70368744177664.0); ++ TEST_f_f (rint, -140737488355328.75, -140737488355328.0); ++ TEST_f_f (rint, -281474976710656.75, -281474976710656.0); ++ TEST_f_f (rint, -562949953421312.75, -562949953421312.0); ++ TEST_f_f (rint, -1125899906842624.75, -1125899906842624.0); ++#endif + #ifdef TEST_LDOUBLE + /* The result can only be represented in long double. */ + TEST_f_f (rint, 4503599627370495.5L, 4503599627370496.0L); +diff --git a/sysdeps/ieee754/flt-32/s_rintf.c b/sysdeps/ieee754/flt-32/s_rintf.c +index 9ea9b6f..9ba6b57 100644 +--- a/sysdeps/ieee754/flt-32/s_rintf.c ++++ b/sysdeps/ieee754/flt-32/s_rintf.c +@@ -26,34 +26,22 @@ float + __rintf(float x) + { + int32_t i0,j0,sx; +- u_int32_t i,i1; + float w,t; + GET_FLOAT_WORD(i0,x); + sx = (i0>>31)&1; + j0 = ((i0>>23)&0xff)-0x7f; + if(j0<23) { + if(j0<0) { +- if((i0&0x7fffffff)==0) return x; +- i1 = (i0&0x07fffff); +- i0 &= 0xfff00000; +- i0 |= ((i1|-i1)>>9)&0x400000; +- SET_FLOAT_WORD(x,i0); + w = TWO23[sx]+x; + t = w-TWO23[sx]; + GET_FLOAT_WORD(i0,t); + SET_FLOAT_WORD(t,(i0&0x7fffffff)|(sx<<31)); + return t; +- } else { +- i = (0x007fffff)>>j0; +- if((i0&i)==0) return x; /* x is integral */ +- i>>=1; +- if((i0&i)!=0) i0 = (i0&(~i))|((0x100000)>>j0); + } + } else { + if(j0==0x80) return x+x; /* inf or NaN */ + else return x; /* x is integral */ + } +- SET_FLOAT_WORD(x,i0); + w = TWO23[sx]+x; + return w-TWO23[sx]; + } diff --git a/multilib-testing/lib32-glibc/glibc-2.15-scanf.patch b/multilib-testing/lib32-glibc/glibc-2.15-scanf.patch new file mode 100644 index 000000000..a2561b232 --- /dev/null +++ b/multilib-testing/lib32-glibc/glibc-2.15-scanf.patch @@ -0,0 +1,19 @@ +diff --git a/stdio-common/vfscanf.c b/stdio-common/vfscanf.c +index 0e71deb..e18a6c3 100644 +--- a/stdio-common/vfscanf.c ++++ b/stdio-common/vfscanf.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 1991-2006, 2007, 2010, 2011 Free Software Foundation, Inc. ++/* Copyright (C) 1991-2007, 2010, 2011, 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 +@@ -274,7 +274,7 @@ _IO_vfscanf_internal (_IO_FILE *s, const char *format, _IO_va_list argptr, + CHAR_T *old = wp; \ + size_t newsize = (UCHAR_MAX + 1 > 2 * wpmax \ + ? UCHAR_MAX + 1 : 2 * wpmax); \ +- if (use_malloc || __libc_use_alloca (newsize)) \ ++ if (use_malloc || !__libc_use_alloca (newsize)) \ + { \ + wp = realloc (use_malloc ? wp : NULL, newsize); \ + if (wp == NULL) \ diff --git a/multilib-testing/lib32-glibc/glibc-2.15-strcasecmp-disable-avx.patch b/multilib-testing/lib32-glibc/glibc-2.15-strcasecmp-disable-avx.patch new file mode 100644 index 000000000..4c104fa55 --- /dev/null +++ b/multilib-testing/lib32-glibc/glibc-2.15-strcasecmp-disable-avx.patch @@ -0,0 +1,48 @@ +diff --git a/sysdeps/x86_64/multiarch/strcmp.S b/sysdeps/x86_64/multiarch/strcmp.S +index f93c83d..d8aa889 100644 +--- a/sysdeps/x86_64/multiarch/strcmp.S ++++ b/sysdeps/x86_64/multiarch/strcmp.S +@@ -105,11 +105,6 @@ ENTRY(__strcasecmp) + jne 1f + call __init_cpu_features + 1: +-# ifdef HAVE_AVX_SUPPORT +- leaq __strcasecmp_avx(%rip), %rax +- testl $bit_AVX, __cpu_features+CPUID_OFFSET+index_AVX(%rip) +- jnz 2f +-# endif + leaq __strcasecmp_sse42(%rip), %rax + testl $bit_SSE4_2, __cpu_features+CPUID_OFFSET+index_SSE4_2(%rip) + jnz 2f +@@ -128,11 +123,6 @@ ENTRY(__strncasecmp) + jne 1f + call __init_cpu_features + 1: +-# ifdef HAVE_AVX_SUPPORT +- leaq __strncasecmp_avx(%rip), %rax +- testl $bit_AVX, __cpu_features+CPUID_OFFSET+index_AVX(%rip) +- jnz 2f +-# endif + leaq __strncasecmp_sse42(%rip), %rax + testl $bit_SSE4_2, __cpu_features+CPUID_OFFSET+index_SSE4_2(%rip) + jnz 2f +@@ -152,19 +142,6 @@ weak_alias (__strncasecmp, strncasecmp) + # include "strcmp-sse42.S" + + +-# ifdef HAVE_AVX_SUPPORT +-# if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L +-# define LABEL(l) .L##l##_avx +-# define GLABEL(l) l##_avx +-# define USE_AVX 1 +-# undef STRCMP_SSE42 +-# define STRCMP_SSE42 STRCMP_AVX +-# define SECTION avx +-# include "strcmp-sse42.S" +-# endif +-# endif +- +- + # undef ENTRY + # define ENTRY(name) \ + .type STRCMP_SSE2, @function; \ diff --git a/multilib-testing/lib32-glibc/glibc-2.15-testsuite.patch b/multilib-testing/lib32-glibc/glibc-2.15-testsuite.patch new file mode 100644 index 000000000..7eaeaed65 --- /dev/null +++ b/multilib-testing/lib32-glibc/glibc-2.15-testsuite.patch @@ -0,0 +1,110 @@ +From d4c2917fc5091dae7ab1b30c165becb70d3c3453 Mon Sep 17 00:00:00 2001 +From: Allan McRae <allan@archlinux.org> +Date: Mon, 16 Apr 2012 14:06:47 +1000 +Subject: [PATCH] Fix test-suite failues with -Wl,--as-needed + +Signed-off-by: Allan McRae <allan@archlinux.org> +--- + ChangeLog | 24 ++++++++++++++++++++++++ + elf/Makefile | 21 ++++++++++++++++++++- + nptl/ChangeLog | 5 +++++ + nptl/Makefile | 3 ++- + stdlib/Makefile | 1 + + 5 files changed, 52 insertions(+), 2 deletions(-) + +diff --git a/elf/Makefile b/elf/Makefile +index 57dcab0..47729c3 100644 +--- a/elf/Makefile ++++ b/elf/Makefile +@@ -500,6 +500,18 @@ $(objpfx)tst-initordera3.so: $(objpfx)tst-initorderb2.so $(objpfx)tst-initorderb + $(objpfx)tst-initordera4.so: $(objpfx)tst-initordera3.so + $(objpfx)tst-initorder: $(objpfx)tst-initordera4.so $(objpfx)tst-initordera1.so $(objpfx)tst-initorderb2.so + ++LDFLAGS-nodel2mod3.so = $(no-as-needed) ++LDFLAGS-reldepmod5.so = $(no-as-needed) ++LDFLAGS-reldep6mod1.so = $(no-as-needed) ++LDFLAGS-reldep6mod4.so = $(no-as-needed) ++LDFLAGS-reldep8mod3.so = $(no-as-needed) ++LDFLAGS-unload4mod1.so = $(no-as-needed) ++LDFLAGS-unload4mod2.so = $(no-as-needed) ++LDFLAGS-tst-initorder = $(no-as-needed) ++LDFLAGS-tst-initordera2.so = $(no-as-needed) ++LDFLAGS-tst-initordera3.so = $(no-as-needed) ++LDFLAGS-tst-initordera4.so = $(no-as-needed) ++LDFLAGS-tst-initorderb2.so = $(no-as-needed) + LDFLAGS-tst-tlsmod5.so = -nostdlib + LDFLAGS-tst-tlsmod6.so = -nostdlib + +@@ -633,7 +645,7 @@ $(objpfx)vismain.out: $(addprefix $(objpfx),vismod3.so) + vismain-ENV = LD_PRELOAD=$(addprefix $(objpfx),vismod3.so) + + $(objpfx)noload: $(objpfx)testobj1.so $(common-objpfx)dlfcn/libdl.so +-LDFLAGS-noload = -rdynamic ++LDFLAGS-noload = -rdynamic $(no-as-needed) + $(objpfx)noload.out: $(objpfx)testobj5.so + + $(objpfx)noload-mem: $(objpfx)noload.out +@@ -678,6 +690,7 @@ $(objpfx)reldep4: $(libdl) + $(objpfx)reldep4.out: $(objpfx)reldep4mod1.so $(objpfx)reldep4mod2.so + + $(objpfx)next: $(objpfx)nextmod1.so $(objpfx)nextmod2.so $(libdl) ++LDFLAGS-next = $(no-as-needed) + + $(objpfx)unload2: $(libdl) + $(objpfx)unload2.out: $(objpfx)unload2mod.so $(objpfx)unload2dep.so +@@ -1025,6 +1038,8 @@ $(objpfx)order2mod1.so: $(objpfx)order2mod4.so + $(objpfx)order2mod4.so: $(objpfx)order2mod3.so + $(objpfx)order2mod2.so: $(objpfx)order2mod3.so + order2mod2.so-no-z-defs = yes ++LDFLAGS-order2mod1.so = $(no-as-needed) ++LDFLAGS-order2mod2.so = $(no-as-needed) + + tst-stackguard1-ARGS = --command "$(built-program-cmd) --child" + tst-stackguard1-static-ARGS = --command "$(objpfx)tst-stackguard1-static --child" +@@ -1113,6 +1128,10 @@ $(objpfx)tst-initorder2: $(objpfx)tst-initorder2a.so $(objpfx)tst-initorder2d.so + $(objpfx)tst-initorder2a.so: $(objpfx)tst-initorder2b.so + $(objpfx)tst-initorder2b.so: $(objpfx)tst-initorder2c.so + $(objpfx)tst-initorder2c.so: $(objpfx)tst-initorder2d.so ++LDFLAGS-tst-initorder2 = $(no-as-needed) ++LDFLAGS-tst-initorder2a.so = $(no-as-needed) ++LDFLAGS-tst-initorder2b.so = $(no-as-needed) ++LDFLAGS-tst-initorder2c.so = $(no-as-needed) + define o-iterator-doit + $(objpfx)tst-initorder2$o.os: tst-initorder2.c; \ + $$(compile-command.c) -DNAME=\"$o\" +diff --git a/nptl/Makefile b/nptl/Makefile +index 09acd8a..07a1022 100644 +--- a/nptl/Makefile ++++ b/nptl/Makefile +@@ -458,6 +458,7 @@ $(objpfx)tst-tls4: $(libdl) $(shared-thread-library) + $(objpfx)tst-tls4.out: $(objpfx)tst-tls4moda.so $(objpfx)tst-tls4modb.so + + $(objpfx)tst-tls5: $(objpfx)tst-tls5mod.so $(shared-thread-library) ++LDFLAGS-tst-tls5 = $(no-as-needed) + LDFLAGS-tst-tls5mod.so = -Wl,-soname,tst-tls5mod.so + + ifeq ($(build-shared),yes) +@@ -503,7 +504,7 @@ $(objpfx)tst-clock2: $(common-objpfx)rt/librt.a + $(objpfx)tst-rwlock14: $(common-objpfx)rt/librt.a + endif + +-LDFLAGS-tst-cancel24 = -lstdc++ ++LDFLAGS-tst-cancel24 = $(no-as-needed) -lstdc++ + + extra-B-pthread.so = -B$(common-objpfx)nptl/ + $(objpfx)libpthread.so: $(addprefix $(objpfx),$(crti-objs) $(crtn-objs)) +diff --git a/stdlib/Makefile b/stdlib/Makefile +index 44eb20d..f7811c5 100644 +--- a/stdlib/Makefile ++++ b/stdlib/Makefile +@@ -138,6 +138,7 @@ $(objpfx)tst-fmtmsg.out: tst-fmtmsg.sh $(objpfx)tst-fmtmsg + $(SHELL) -e $< $(common-objpfx) '$(run-program-prefix)' $(common-objpfx)stdlib/ + + $(objpfx)tst-putenv: $(objpfx)tst-putenvmod.so ++LDFLAGS-tst-putenv = $(no-as-needed) + + $(objpfx)tst-putenvmod.so: $(objpfx)tst-putenvmod.os + $(build-module) +-- +1.7.3.4 + diff --git a/multilib-testing/lib32-glibc/glibc-2.15-vdso.patch b/multilib-testing/lib32-glibc/glibc-2.15-vdso.patch new file mode 100644 index 000000000..7fd394f90 --- /dev/null +++ b/multilib-testing/lib32-glibc/glibc-2.15-vdso.patch @@ -0,0 +1,40 @@ +diff --git a/elf/Makefile b/elf/Makefile +index 8234ba7..25ffc57 100644 +--- a/elf/Makefile ++++ b/elf/Makefile +@@ -1203,3 +1203,14 @@ $(objpfx)tst-relsort1mod1.so: $(libm) $(objpfx)tst-relsort1mod2.so + $(objpfx)tst-relsort1mod2.so: $(libm) + $(objpfx)tst-relsort1.out: $(objpfx)tst-relsort1mod1.so \ + $(objpfx)tst-relsort1mod2.so ++ ++tests: $(objpfx)tst-unused-dep.out ++ ++$(objpfx)tst-unused-dep.out: $(objpfx)testobj1.so ++ LD_TRACE_LOADED_OBJECTS=1 \ ++ LD_DEBUG=unused \ ++ LD_PRELOAD= \ ++ $(elf-objpfx)${rtld-installed-name} \ ++ --library-path $(rpath-link)$(patsubst %,:%,$(sysdep-library-path)) \ ++ $< > $@ ++ cmp $@ /dev/null > /dev/null +diff --git a/elf/rtld.c b/elf/rtld.c +index 2e4f97f..3e15447 100644 +--- a/elf/rtld.c ++++ b/elf/rtld.c +@@ -1,5 +1,5 @@ + /* Run time dynamic linker. +- Copyright (C) 1995-2010, 2011 Free Software Foundation, Inc. ++ Copyright (C) 1995-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 +@@ -1375,6 +1375,9 @@ of this helper program; chances are you did not intend to run this program.\n\ + _dl_setup_hash (l); + l->l_relocated = 1; + ++ /* The vDSO is always used. */ ++ l->l_used = 1; ++ + /* Initialize l_local_scope to contain just this map. This allows + the use of dl_lookup_symbol_x to resolve symbols within the vdso. + So we create a single entry list pointing to l_real as its only diff --git a/multilib-testing/lib32-glibc/glibc-2.15-vfprintf-nargs.patch b/multilib-testing/lib32-glibc/glibc-2.15-vfprintf-nargs.patch new file mode 100644 index 000000000..f8dde53f5 --- /dev/null +++ b/multilib-testing/lib32-glibc/glibc-2.15-vfprintf-nargs.patch @@ -0,0 +1,180 @@ +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index a847b28..080badc 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -59,7 +59,8 @@ tests := tstscanf test_rdwr test-popen tstgetln test-fseek \ + tst-popen tst-unlockedio tst-fmemopen2 tst-put-error tst-fgets \ + tst-fwrite bug16 bug17 tst-swscanf tst-sprintf2 bug18 bug18a \ + bug19 bug19a tst-popen2 scanf13 scanf14 scanf15 bug20 bug21 bug22 \ +- scanf16 scanf17 tst-setvbuf1 tst-grouping bug23 bug24 ++ scanf16 scanf17 tst-setvbuf1 tst-grouping bug23 bug24 \ ++ bug-vfprintf-nargs + + test-srcs = tst-unbputc tst-printf + +diff --git a/stdio-common/bug-vfprintf-nargs.c b/stdio-common/bug-vfprintf-nargs.c +new file mode 100644 +index 0000000..13c66c0 +--- /dev/null ++++ b/stdio-common/bug-vfprintf-nargs.c +@@ -0,0 +1,78 @@ ++/* Test for vfprintf nargs allocation overflow (BZ #13656). ++ Copyright (C) 2012 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Kees Cook <keescook@chromium.org>, 2012. ++ ++ 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, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include <stdio.h> ++#include <stdlib.h> ++#include <stdint.h> ++#include <unistd.h> ++#include <inttypes.h> ++#include <string.h> ++#include <signal.h> ++ ++static int ++format_failed (const char *fmt, const char *expected) ++{ ++ char output[80]; ++ ++ printf ("%s : ", fmt); ++ ++ memset (output, 0, sizeof output); ++ /* Having sprintf itself detect a failure is good. */ ++ if (sprintf (output, fmt, 1, 2, 3, "test") > 0 ++ && strcmp (output, expected) != 0) ++ { ++ printf ("FAIL (output '%s' != expected '%s')\n", output, expected); ++ return 1; ++ } ++ puts ("ok"); ++ return 0; ++} ++ ++static int ++do_test (void) ++{ ++ int rc = 0; ++ char buf[64]; ++ ++ /* Regular positionals work. */ ++ if (format_failed ("%1$d", "1") != 0) ++ rc = 1; ++ ++ /* Regular width positionals work. */ ++ if (format_failed ("%1$*2$d", " 1") != 0) ++ rc = 1; ++ ++ /* Positional arguments are constructed via read_int, so nargs can only ++ overflow on 32-bit systems. On 64-bit systems, it will attempt to ++ allocate a giant amount of memory and possibly crash, which is the ++ expected situation. Since the 64-bit behavior is arch-specific, only ++ test this on 32-bit systems. */ ++ if (sizeof (long int) == 4) ++ { ++ sprintf (buf, "%%1$d %%%" PRIdPTR "$d", UINT32_MAX / sizeof (int)); ++ if (format_failed (buf, "1 %$d") != 0) ++ rc = 1; ++ } ++ ++ return rc; ++} ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/stdio-common/vfprintf.c b/stdio-common/vfprintf.c +index 863cd5d..c802e46 100644 +--- a/stdio-common/vfprintf.c ++++ b/stdio-common/vfprintf.c +@@ -235,6 +235,9 @@ vfprintf (FILE *s, const CHAR_T *format, va_list ap) + 0 if unknown. */ + int readonly_format = 0; + ++ /* For the argument descriptions, which may be allocated on the heap. */ ++ void *args_malloced = NULL; ++ + /* This table maps a character into a number representing a + class. In each step there is a destination label for each + class. */ +@@ -1647,9 +1650,10 @@ do_positional: + determine the size of the array needed to store the argument + attributes. */ + size_t nargs = 0; +- int *args_type; +- union printf_arg *args_value = NULL; ++ size_t bytes_per_arg; ++ union printf_arg *args_value; + int *args_size; ++ int *args_type; + + /* Positional parameters refer to arguments directly. This could + also determine the maximum number of arguments. Track the +@@ -1698,13 +1702,38 @@ do_positional: + + /* Determine the number of arguments the format string consumes. */ + nargs = MAX (nargs, max_ref_arg); ++ /* Calculate total size needed to represent a single argument across ++ all three argument-related arrays. */ ++ bytes_per_arg = sizeof (*args_value) + sizeof (*args_size) ++ + sizeof (*args_type); ++ ++ /* Check for potential integer overflow. */ ++ if (__builtin_expect (nargs > SIZE_MAX / bytes_per_arg, 0)) ++ { ++ __set_errno (ERANGE); ++ done = -1; ++ goto all_done; ++ } + +- /* Allocate memory for the argument descriptions. */ +- args_type = alloca (nargs * sizeof (int)); ++ /* Allocate memory for all three argument arrays. */ ++ if (__libc_use_alloca (nargs * bytes_per_arg)) ++ args_value = alloca (nargs * bytes_per_arg); ++ else ++ { ++ args_value = args_malloced = malloc (nargs * bytes_per_arg); ++ if (args_value == NULL) ++ { ++ done = -1; ++ goto all_done; ++ } ++ } ++ ++ /* Set up the remaining two arrays to each point past the end of the ++ prior array, since space for all three has been allocated now. */ ++ args_size = &args_value[nargs].pa_int; ++ args_type = &args_size[nargs]; + memset (args_type, s->_flags2 & _IO_FLAGS2_FORTIFY ? '\xff' : '\0', +- nargs * sizeof (int)); +- args_value = alloca (nargs * sizeof (union printf_arg)); +- args_size = alloca (nargs * sizeof (int)); ++ nargs * sizeof (*args_type)); + + /* XXX Could do sanity check here: If any element in ARGS_TYPE is + still zero after this loop, format is invalid. For now we +@@ -1973,8 +2002,8 @@ do_positional: + } + + all_done: +- if (__builtin_expect (workstart != NULL, 0)) +- free (workstart); ++ free (args_malloced); ++ free (workstart); + /* Unlock the stream. */ + _IO_funlockfile (s); + _IO_cleanup_region_end (0); diff --git a/multilib-testing/lib32-glibc/glibc-__i686.patch b/multilib-testing/lib32-glibc/glibc-__i686.patch new file mode 100644 index 000000000..16f84c536 --- /dev/null +++ b/multilib-testing/lib32-glibc/glibc-__i686.patch @@ -0,0 +1,31 @@ +diff --git a/nptl/sysdeps/pthread/pt-initfini.c b/nptl/sysdeps/pthread/pt-initfini.c +index 9c00dc0..f5d4df8 100644 +--- a/nptl/sysdeps/pthread/pt-initfini.c ++++ b/nptl/sysdeps/pthread/pt-initfini.c +@@ -45,6 +45,11 @@ + /* Embed an #include to pull in the alignment and .end directives. */ + asm ("\n#include \"defs.h\""); + ++asm ("\n#if defined __i686 && defined __ASSEMBLER__"); ++asm ("\n#undef __i686"); ++asm ("\n#define __i686 __i686"); ++asm ("\n#endif"); ++ + /* The initial common code ends here. */ + asm ("\n/*@HEADER_ENDS*/"); + +diff --git a/sysdeps/unix/sysv/linux/i386/sysdep.h b/sysdeps/unix/sysv/linux/i386/sysdep.h +index 64ef400..726b1df 100644 +--- a/sysdeps/unix/sysv/linux/i386/sysdep.h ++++ b/sysdeps/unix/sysv/linux/i386/sysdep.h +@@ -29,6 +29,10 @@ + #include <dl-sysdep.h> + #include <tls.h> + ++#if defined __i686 && defined __ASSEMBLER__ ++#undef __i686 ++#define __i686 __i686 ++#endif + + /* For Linux we can use the system call table in the header file + /usr/include/asm/unistd.h diff --git a/multilib-testing/lib32-glibc/lib32-glibc.conf b/multilib-testing/lib32-glibc/lib32-glibc.conf new file mode 100644 index 000000000..9b08c3f43 --- /dev/null +++ b/multilib-testing/lib32-glibc/lib32-glibc.conf @@ -0,0 +1 @@ +/usr/lib32 diff --git a/multilib/lib32-gnutls/PKGBUILD b/multilib/lib32-gnutls/PKGBUILD index 789e44615..a4816169f 100644 --- a/multilib/lib32-gnutls/PKGBUILD +++ b/multilib/lib32-gnutls/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 70114 2012-04-29 23:27:51Z bluewind $ +# $Id: PKGBUILD 72094 2012-06-08 15:24:25Z bluewind $ # Maintainer: Florian Pritz <bluewind@xinu.at> # Contributor: Christoph Vigano <mail at cvigano dot de> # Contributor: Biru Ionut <ionut@archlinux.ro> @@ -6,7 +6,7 @@ # Contributor: Mikko Seppälä <t-r-a-y@mbnet.fi> _pkgbasename=gnutls pkgname=lib32-$_pkgbasename -pkgver=3.0.19 +pkgver=3.0.20 pkgrel=1 pkgdesc="A library which provides a secure layer over a reliable transport layer (32-bit)" arch=('x86_64') @@ -16,8 +16,8 @@ options=('!libtool') depends=('lib32-zlib' 'lib32-nettle>=2.4' 'lib32-p11-kit>=0.12' $_pkgbasename) makedepends=('gcc-multilib' 'lib32-libidn') source=(ftp://ftp.gnu.org/gnu/gnutls/${_pkgbasename}-${pkgver}.tar.xz{,.sig}) -md5sums=('05e85d18955edd5c0fe40fbb7ef168bd' - '52c7b7ecf7032322321bf667d86eb084') +md5sums=('1e9322764f4531b00b4a46a5d634695e' + 'efc0ac29d46219aa75f08f57ba679776') build() { export CC="gcc -m32" diff --git a/multilib/wine/PKGBUILD b/multilib/wine/PKGBUILD index d66c99cc2..ac375eeea 100644 --- a/multilib/wine/PKGBUILD +++ b/multilib/wine/PKGBUILD @@ -1,17 +1,17 @@ -# $Id: PKGBUILD 71289 2012-05-26 10:04:51Z svenstaro $ +# $Id: PKGBUILD 72122 2012-06-08 22:00:53Z svenstaro $ # Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com> # Contributor: Jan "heftig" Steffens <jan.steffens@gmail.com> # Contributor: Eduardo Romero <eduardo@archlinux.org> # Contributor: Giovanni Scafora <giovanni@archlinux.org> pkgname=wine -pkgver=1.5.5 +pkgver=1.5.6 pkgrel=1 _pkgbasever=${pkgver/rc/-rc} -source=(http://ibiblio.org/pub/linux/system/emulators/$pkgname/$pkgname-$_pkgbasever.tar.bz2) -md5sums=('63639cfe9addb75cd40726cac36bcf8a') +source=(http://prdownloads.sourceforge.net/$pkgname/$pkgname-$_pkgbasever.tar.bz2) +md5sums=('83bc2532cef560a21cad7dda979cadda') pkgdesc="A compatibility layer for running Windows programs" url="http://www.winehq.com" diff --git a/staging/alsa-plugins/PKGBUILD b/staging/alsa-plugins/PKGBUILD new file mode 100644 index 000000000..3f11bce25 --- /dev/null +++ b/staging/alsa-plugins/PKGBUILD @@ -0,0 +1,42 @@ +# $Id: PKGBUILD 161283 2012-06-08 22:45:29Z heftig $ +# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com> +# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com> +# Contributor: Daniel Ehlers <danielehlers@mindeye.net> + +pkgname=alsa-plugins +pkgver=1.0.25 +pkgrel=2 +pkgdesc="Extra alsa plugins" +arch=(i686 x86_64) +url="http://www.alsa-project.org" +license=(GPL) +depends=(alsa-lib) +makedepends=(libpulse jack ffmpeg) +optdepends=('libpulse: PulseAudio plugin' + 'jack: Jack plugin' + 'ffmpeg: libavcodec resampling plugin' + 'libsamplerate: libsamplerate resampling plugin' + 'speex: libspeexdsp resampling plugin') +options=('!libtool') +source=("ftp://ftp.alsa-project.org/pub/plugins/$pkgname-$pkgver.tar.bz2" + alsa-plugins-1.0.25-ffmpeg-0.11-renamed-CH_LAYOUT-defs-v2.patch + alsa-plugins-1.0.25-ffmpeg-0.11-obsolete-avcodec_init.patch) +md5sums=('038c023eaa51171f018fbf7141255185' + '50d9adcda20756d063e676a563c201d9' + '697c6275f678d86ded2e5092d8a154c9') + +build() { + cd $pkgname-$pkgver + patch -Np1 -i ../alsa-plugins-1.0.25-ffmpeg-0.11-renamed-CH_LAYOUT-defs-v2.patch + patch -Np1 -i ../alsa-plugins-1.0.25-ffmpeg-0.11-obsolete-avcodec_init.patch + ./configure --prefix=/usr + make +} + +package() { + cd $pkgname-$pkgver + make DESTDIR="$pkgdir" install + + install -d "$pkgdir/usr/share/doc/$pkgname" + install -m644 doc/README* doc/*.txt "$pkgdir/usr/share/doc/$pkgname/" +} diff --git a/staging/alsa-plugins/alsa-plugins-1.0.25-ffmpeg-0.11-obsolete-avcodec_init.patch b/staging/alsa-plugins/alsa-plugins-1.0.25-ffmpeg-0.11-obsolete-avcodec_init.patch new file mode 100644 index 000000000..cce4f7e7e --- /dev/null +++ b/staging/alsa-plugins/alsa-plugins-1.0.25-ffmpeg-0.11-obsolete-avcodec_init.patch @@ -0,0 +1,11 @@ +diff -u -r alsa-plugins-1.0.25/a52/pcm_a52.c alsa-plugins-1.0.25-ffmpeg/a52/pcm_a52.c +--- alsa-plugins-1.0.25/a52/pcm_a52.c 2012-01-25 08:57:07.000000000 +0100 ++++ alsa-plugins-1.0.25-ffmpeg/a52/pcm_a52.c 2012-06-09 00:42:52.177219012 +0200 +@@ -702,7 +702,6 @@ + rec->channels = channels; + rec->format = format; + +- avcodec_init(); + avcodec_register_all(); + + rec->codec = avcodec_find_encoder_by_name("ac3_fixed"); diff --git a/staging/alsa-plugins/alsa-plugins-1.0.25-ffmpeg-0.11-renamed-CH_LAYOUT-defs-v2.patch b/staging/alsa-plugins/alsa-plugins-1.0.25-ffmpeg-0.11-renamed-CH_LAYOUT-defs-v2.patch new file mode 100644 index 000000000..f4ebbf466 --- /dev/null +++ b/staging/alsa-plugins/alsa-plugins-1.0.25-ffmpeg-0.11-renamed-CH_LAYOUT-defs-v2.patch @@ -0,0 +1,29 @@ +Ffmpeg 0.11 (LIBAVCODEC_VERSION_MAJOR = 54) removed the CH_LAYOUT_* aliases for +the AV_CH_LAYOUT_* defines. + +diff -pru alsa-plugins-1.0.25-original/a52/pcm_a52.c alsa-plugins-1.0.25-for-ffmpeg-0.11/a52/pcm_a52.c +--- alsa-plugins-1.0.25-original/a52/pcm_a52.c 2012-01-25 08:57:07.000000000 +0100 ++++ alsa-plugins-1.0.25-for-ffmpeg-0.11/a52/pcm_a52.c 2012-06-01 14:59:47.096671464 +0200 +@@ -441,7 +441,21 @@ static int a52_prepare(snd_pcm_ioplug_t + #else + rec->avctx->sample_fmt = SAMPLE_FMT_S16; + #endif +-#if LIBAVCODEC_VERSION_MAJOR > 52 || (LIBAVCODEC_VERSION_MAJOR == 52 && LIBAVCODEC_VERSION_MINOR >= 3) ++#if (LIBAVCODEC_VERSION_MAJOR >= 54) ++ switch (io->channels) { ++ case 2: ++ rec->avctx->channel_layout = AV_CH_LAYOUT_STEREO; ++ break; ++ case 4: ++ rec->avctx->channel_layout = AV_CH_LAYOUT_QUAD; ++ break; ++ case 6: ++ rec->avctx->channel_layout = AV_CH_LAYOUT_5POINT1; ++ break; ++ default: ++ break; ++ } ++#elif (LIBAVCODEC_VERSION_MAJOR > 52 && LIBAVCODEC_VERSION_MAJOR < 54) || (LIBAVCODEC_VERSION_MAJOR == 52 && LIBAVCODEC_VERSION_MINOR >= 3) + switch (io->channels) { + case 2: + rec->avctx->channel_layout = CH_LAYOUT_STEREO; diff --git a/staging/kdemultimedia/PKGBUILD b/staging/kdemultimedia/PKGBUILD index be9adf1c3..1cb3c9ee8 100644 --- a/staging/kdemultimedia/PKGBUILD +++ b/staging/kdemultimedia/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 161044 2012-06-07 20:59:18Z andrea $ +# $Id: PKGBUILD 161262 2012-06-08 07:13:37Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> # Contributor: Pierre Schmitz <pierre@archlinux.de> @@ -11,7 +11,7 @@ pkgname=('kdemultimedia-dragonplayer' 'kdemultimedia-kscd' 'kdemultimedia-mplayerthumbs') pkgver=4.8.4 -pkgrel=1 +pkgrel=2 arch=('i686' 'x86_64') url='http://www.kde.org' license=('GPL' 'LGPL' 'FDL') diff --git a/staging/krb5/PKGBUILD b/staging/krb5/PKGBUILD new file mode 100644 index 000000000..89899a36c --- /dev/null +++ b/staging/krb5/PKGBUILD @@ -0,0 +1,92 @@ +# $Id: PKGBUILD 161299 2012-06-09 01:56:21Z stephane $ +# Maintainer: Stéphane Gaudreault <stephane@archlinux.org> + +pkgname=krb5 +pkgver=1.10.2 +pkgrel=2 +pkgdesc="The Kerberos network authentication system" +arch=('i686' 'x86_64') +url="http://web.mit.edu/kerberos/" +license=('custom') +depends=('e2fsprogs' 'libldap' 'keyutils') +makedepends=('perl') +backup=('etc/krb5.conf' 'var/lib/krb5kdc/kdc.conf') +source=(http://web.mit.edu/kerberos/dist/${pkgname}/1.10/${pkgname}-${pkgver}-signed.tar + krb5-1.10.1-gcc47.patch + krb5-kadmind + krb5-kadmind.service + krb5-kdc + krb5-kdc.service + krb5-kpropd + krb5-kpropd.service + krb5-kpropd@.service + krb5-kpropd.socket) +sha1sums=('8b6e2c5bf0c65aacd368b3698add7888f2a7332d' + '78b759d566b1fdefd9bbcd06df14f07f12effe96' + '2aa229369079ed1bbb201a1ef72c47bf143f4dbe' + 'a2a01e7077d9e89cda3457ea0e216debb3dc353c' + '77d2312ecd8bf12a6e72cc8fd871a8ac93b23393' + 'f5e4fa073e11b0fcb4e3098a5d58a4f791ec841e' + '7f402078fa65bb9ff1beb6cbbbb017450df78560' + '614401dd4ac18e310153240bb26eb32ff1e8cf5b' + '023a8164f8ee7066ac814486a68bc605e79f6101' + 'f3677d30dbbd7106c581379c2c6ebb1bf7738912') +options=('!emptydirs') + +build() { + tar zxvf ${pkgname}-${pkgver}.tar.gz + cd "${srcdir}/${pkgname}-${pkgver}/src" + + # With gcc47 : deltat.c:1694:12: error: 'yylval' may be used uninitialized + # in this function [-Werror=maybe-uninitialized] + # As this is generated code, just ignore the complaint. + patch -Np2 -i ../../krb5-1.10.1-gcc47.patch + rm lib/krb5/krb/deltat.c + + # FS#25384 + sed -i "/KRB5ROOT=/s/\/local//" util/ac_check_krb5.m4 + + export CFLAGS+=" -fPIC -fno-strict-aliasing -fstack-protector-all" + export CPPFLAGS+=" -I/usr/include/et" + ./configure --prefix=/usr \ + --mandir=/usr/share/man \ + --localstatedir=/var/lib \ + --enable-shared \ + --with-system-et \ + --with-system-ss \ + --disable-rpath \ + --without-tcl \ + --enable-dns-for-realm \ + --with-ldap \ + --without-system-verto + make +} + +package() { + cd "${srcdir}/${pkgname}-${pkgver}/src" + make DESTDIR="${pkgdir}" EXAMPLEDIR=/usr/share/doc/${pkgname}/examples install + + # Fix FS#29889 + install -m 644 plugins/kdb/ldap/libkdb_ldap/kerberos.{ldif,schema} "${pkgdir}"/usr/share/doc/${pkgname}/examples + + # Sample KDC config file + install -dm 755 "${pkgdir}"/var/lib/krb5kdc + install -pm 644 config-files/kdc.conf "${pkgdir}"/var/lib/krb5kdc/kdc.conf + + # Default configuration file + install -dm 755 "${pkgdir}"/etc + install -pm 644 config-files/krb5.conf "${pkgdir}"/etc/krb5.conf + + install -dm 755 "${pkgdir}"/etc/rc.d + install -m 755 ../../krb5-{kdc,kadmind,kpropd} "${pkgdir}"/etc/rc.d + + install -dm 755 "${pkgdir}"/usr/share/aclocal + install -m 644 util/ac_check_krb5.m4 "${pkgdir}"/usr/share/aclocal + + install -Dm644 "${srcdir}"/${pkgname}-${pkgver}/NOTICE "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE + + # systemd stuff + install -dm 755 "${pkgdir}"/usr/lib/systemd/system + install -m 644 ../../krb5-{kadmind.service,kdc.service,kpropd.service,kpropd@.service,kpropd.socket} \ + "${pkgdir}"/usr/lib/systemd/system +} diff --git a/staging/krb5/krb5-1.10.1-gcc47.patch b/staging/krb5/krb5-1.10.1-gcc47.patch new file mode 100644 index 000000000..ffd01c2a3 --- /dev/null +++ b/staging/krb5/krb5-1.10.1-gcc47.patch @@ -0,0 +1,11 @@ +diff -Naur krb5-1.10.1.ori/src/lib/krb5/krb/x-deltat.y krb5-1.10.1/src/lib/krb5/krb/x-deltat.y +--- krb5-1.10.1.ori/src/lib/krb5/krb/x-deltat.y 2011-09-06 07:34:32.000000000 -0400 ++++ krb5-1.10.1/src/lib/krb5/krb/x-deltat.y 2012-03-24 13:15:11.543551318 -0400 +@@ -44,6 +44,7 @@ + #ifdef __GNUC__ + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wuninitialized" ++#pragma GCC diagnostic ignored "-Wmaybe-uninitialized" + #endif + + #include <ctype.h> diff --git a/staging/krb5/krb5-kadmind b/staging/krb5/krb5-kadmind new file mode 100644 index 000000000..04df0dcff --- /dev/null +++ b/staging/krb5/krb5-kadmind @@ -0,0 +1,40 @@ +#!/bin/bash + +# general config +. /etc/rc.conf +. /etc/rc.d/functions + +PID=`pidof -o %PPID /usr/sbin/kadmind` +case "$1" in + start) + stat_busy "Starting Kerberos Admin Daemon" + if [ -z "$PID" ]; then + /usr/sbin/kadmind + fi + if [ ! -z "$PID" -o $? -gt 0 ]; then + stat_fail + else + add_daemon krb5-kadmind + stat_done + fi + ;; + stop) + stat_busy "Stopping Kerberos Admin Daemon" + [ ! -z "$PID" ] && kill $PID &> /dev/null + if [ $? -gt 0 ]; then + stat_fail + else + rm_daemon krb5-kadmind + stat_done + fi + ;; + restart) + $0 stop + sleep 1 + $0 start + ;; + *) + echo "usage: $0 {start|stop|restart}" + ;; +esac +exit 0 diff --git a/staging/krb5/krb5-kadmind.service b/staging/krb5/krb5-kadmind.service new file mode 100644 index 000000000..f3836c898 --- /dev/null +++ b/staging/krb5/krb5-kadmind.service @@ -0,0 +1,8 @@ +[Unit] +Description=Kerberos 5 administration server + +[Service] +ExecStart=/usr/sbin/kadmind -nofork + +[Install] +WantedBy=multi-user.target diff --git a/staging/krb5/krb5-kdc b/staging/krb5/krb5-kdc new file mode 100644 index 000000000..05a03411e --- /dev/null +++ b/staging/krb5/krb5-kdc @@ -0,0 +1,40 @@ +#!/bin/bash + +# general config +. /etc/rc.conf +. /etc/rc.d/functions + +PID=`pidof -o %PPID /usr/sbin/krb5kdc` +case "$1" in + start) + stat_busy "Starting Kerberos Authentication" + if [ -z "$PID" ]; then + /usr/sbin/krb5kdc + fi + if [ ! -z "$PID" -o $? -gt 0 ]; then + stat_fail + else + add_daemon krb5-kdc + stat_done + fi + ;; + stop) + stat_busy "Stopping Kerberos Authentication" + [ ! -z "$PID" ] && kill $PID &> /dev/null + if [ $? -gt 0 ]; then + stat_fail + else + rm_daemon krb5-kdc + stat_done + fi + ;; + restart) + $0 stop + sleep 1 + $0 start + ;; + *) + echo "usage: $0 {start|stop|restart}" + ;; +esac +exit 0 diff --git a/staging/krb5/krb5-kdc.service b/staging/krb5/krb5-kdc.service new file mode 100644 index 000000000..6ec93bb72 --- /dev/null +++ b/staging/krb5/krb5-kdc.service @@ -0,0 +1,9 @@ +[Unit] +Description=Kerberos 5 KDC + +[Service] +ExecStart=/usr/sbin/krb5kdc -n +Restart=always + +[Install] +WantedBy=multi-user.target diff --git a/staging/krb5/krb5-kpropd b/staging/krb5/krb5-kpropd new file mode 100644 index 000000000..a0077d68e --- /dev/null +++ b/staging/krb5/krb5-kpropd @@ -0,0 +1,40 @@ +#!/bin/bash + +# general config +. /etc/rc.conf +. /etc/rc.d/functions + +PID=`pidof -o %PPID /usr/sbin/kpropd` +case "$1" in + start) + stat_busy "Starting Kerberos Database Propagation Daemon" + if [ -z "$PID" ]; then + /usr/sbin/kpropd -S + fi + if [ ! -z "$PID" -o $? -gt 0 ]; then + stat_fail + else + add_daemon kpropd + stat_done + fi + ;; + stop) + stat_busy "Stopping Kerberos Database Propagation Daemon" + [ ! -z "$PID" ] && kill $PID &> /dev/null + if [ $? -gt 0 ]; then + stat_fail + else + rm_daemon kpropd + stat_done + fi + ;; + restart) + $0 stop + sleep 1 + $0 start + ;; + *) + echo "usage: $0 {start|stop|restart}" + ;; +esac +exit 0 diff --git a/staging/krb5/krb5-kpropd.service b/staging/krb5/krb5-kpropd.service new file mode 100644 index 000000000..a7c5b579d --- /dev/null +++ b/staging/krb5/krb5-kpropd.service @@ -0,0 +1,8 @@ +[Unit] +Description=Kerberos 5 propagation server + +[Service] +ExecStart=/usr/sbin/kpropd -S + +[Install] +WantedBy=multi-user.target diff --git a/staging/krb5/krb5-kpropd.socket b/staging/krb5/krb5-kpropd.socket new file mode 100644 index 000000000..4389290c0 --- /dev/null +++ b/staging/krb5/krb5-kpropd.socket @@ -0,0 +1,9 @@ +[Unit] +Description=Kerberos 5 propagation server + +[Socket] +ListenStream=754 +Accept=yes + +[Install] +WantedBy=sockets.target diff --git a/testing/cairo/PKGBUILD b/testing/cairo/PKGBUILD new file mode 100644 index 000000000..9c9921212 --- /dev/null +++ b/testing/cairo/PKGBUILD @@ -0,0 +1,61 @@ +# $Id: PKGBUILD 161277 2012-06-08 17:28:49Z foutrelis $ +# Maintainer: Jan de Groot <jgc@archlinux.org> +# Contributor: Brice Carpentier <brice@daknet.org> + +pkgname=cairo +#_gitdate=20120426 +#_gitver=957a9cc619965178a8927d114fe852034fc2385c +pkgver=1.12.2 +pkgrel=2 +pkgdesc="Cairo vector graphics library" +arch=(i686 x86_64) +license=('LGPL' 'MPL') +url="http://cairographics.org/" +depends=('libpng' 'libxrender' 'fontconfig' 'pixman' 'glib2' 'sh') +makedepends=('librsvg' 'poppler-glib' 'libspectre' 'gtk-doc') # 'libdrm') +optdepends=('xcb-util: for XCB backend') # really needed? +provides=('cairo-xcb') +replaces=('cairo-xcb') +options=('!libtool') +source=(http://cairographics.org/releases/$pkgname-$pkgver.tar.xz + #$pkgname-$pkgver.tar.gz::http://cgit.freedesktop.org/cairo/snapshot/cairo-${_gitver}.tar.gz + cairo-1.10.0-buggy_gradients.patch + cairo-1.12.2-reduce-broken-stopped-edge-continuation.patch + #git_fixes.patch +) +md5sums=('87649eb75789739d517c743e94879e51' + '9b323790dab003e228c6955633cb888e' + '75ec73746cfaefcbed0e9b2a9f76bf00') + +build() { + cd "$srcdir/$pkgname-$pkgver" + #cd ${srcdir}/${pkgname}-${_gitver} + patch -Np1 -i ${srcdir}/cairo-1.10.0-buggy_gradients.patch + # https://bugs.freedesktop.org/show_bug.cgi?id=50852 + patch -Np1 -i ${srcdir}/cairo-1.12.2-reduce-broken-stopped-edge-continuation.patch + # status is 2012-04-26 last commit: image: Fix typo in _blit_spans() + #patch -Np1 -i ${srcdir}/git_fixes.patch + autoreconf -vfi + #./autogen.sh --prefix=/usr \ + ./configure --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --disable-static \ + --enable-tee \ + --disable-xlib-xcb \ + # --enable-test-surfaces \ takes ages + #--enable-drm # breaks build + make +} + +#check() { +# #cd "$srcdir/$pkgname-$pkgver" +# cd $srcdir/$pkgname-${_gitver} +# make -k check || /bin/true # 165 Passed, 316 Failed [3 crashed, 10 expected], 23 Skipped +#} + +package() { + cd "$srcdir/$pkgname-$pkgver" + #cd $srcdir/$pkgname-${_gitver} + make DESTDIR="$pkgdir" install +} diff --git a/testing/cairo/cairo-1.10.0-buggy_gradients.patch b/testing/cairo/cairo-1.10.0-buggy_gradients.patch new file mode 100644 index 000000000..368e356d3 --- /dev/null +++ b/testing/cairo/cairo-1.10.0-buggy_gradients.patch @@ -0,0 +1,13 @@ +--- a/src/cairo-xlib-display.c.ubuntu 2010-08-04 11:57:49.000000000 +0200
++++ b/src/cairo-xlib-display.c 2010-08-04 11:58:28.000000000 +0200
+@@ -353,11 +353,7 @@
+ /* Prior to Render 0.10, there is no protocol support for gradients and
+ * we call function stubs instead, which would silently consume the drawing.
+ */
+-#if RENDER_MAJOR == 0 && RENDER_MINOR < 10
+ display->buggy_gradients = TRUE;
+-#else
+- display->buggy_gradients = FALSE;
+-#endif
+ display->buggy_pad_reflect = FALSE;
+ display->buggy_repeat = FALSE;
diff --git a/testing/cairo/cairo-1.12.2-reduce-broken-stopped-edge-continuation.patch b/testing/cairo/cairo-1.12.2-reduce-broken-stopped-edge-continuation.patch new file mode 100644 index 000000000..e3bb30580 --- /dev/null +++ b/testing/cairo/cairo-1.12.2-reduce-broken-stopped-edge-continuation.patch @@ -0,0 +1,275 @@ +From f228769dfe5a8b5d73c49a41e95e31ed73a77fb3 Mon Sep 17 00:00:00 2001 +From: Chris Wilson <chris@chris-wilson.co.uk> +Date: Fri, 08 Jun 2012 16:22:41 +0000 +Subject: polygon-reduce: Reduce broken stopped-edge continuation + +This is hopefully a lesser used path and the attempted optimisation to +continue a stopped edge with a colinear stopped edge highly unlikely and +lost in the noise of the general inefficiency of the routine. As it was +broken, rather than attempt to rectify the "optimisation" remove it. + +Reported-by: Evangelos Foutras <evangelos@foutrelis.com> +Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=50852 +Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> +--- +diff --git a/src/cairo-polygon-reduce.c b/src/cairo-polygon-reduce.c +index 8758070..ea457fe 100644 +--- a/src/cairo-polygon-reduce.c ++++ b/src/cairo-polygon-reduce.c +@@ -42,6 +42,8 @@ + #include "cairo-freelist-private.h" + #include "cairo-combsort-inline.h" + ++#define DEBUG_POLYGON 0 ++ + typedef cairo_point_t cairo_bo_point32_t; + + typedef struct _cairo_bo_intersect_ordinate { +@@ -114,7 +116,6 @@ typedef struct _cairo_bo_event_queue { + + typedef struct _cairo_bo_sweep_line { + cairo_bo_edge_t *head; +- cairo_bo_edge_t *stopped; + int32_t current_y; + cairo_bo_edge_t *current_edge; + } cairo_bo_sweep_line_t; +@@ -476,8 +477,8 @@ edges_compare_x_for_y (const cairo_bo_edge_t *a, + static inline int + _line_equal (const cairo_line_t *a, const cairo_line_t *b) + { +- return a->p1.x == b->p1.x && a->p1.y == b->p1.y && +- a->p2.x == b->p2.x && a->p2.y == b->p2.y; ++ return (a->p1.x == b->p1.x && a->p1.y == b->p1.y && ++ a->p2.x == b->p2.x && a->p2.y == b->p2.y); + } + + static int +@@ -1024,7 +1025,6 @@ static void + _cairo_bo_sweep_line_init (cairo_bo_sweep_line_t *sweep_line) + { + sweep_line->head = NULL; +- sweep_line->stopped = NULL; + sweep_line->current_y = INT32_MIN; + sweep_line->current_edge = NULL; + } +@@ -1139,6 +1139,8 @@ edges_colinear (const cairo_bo_edge_t *a, const cairo_bo_edge_t *b) + */ + if (a->edge.line.p1.y == b->edge.line.p1.y) { + return a->edge.line.p1.x == b->edge.line.p1.x; ++ } else if (a->edge.line.p2.y == b->edge.line.p2.y) { ++ return a->edge.line.p2.x == b->edge.line.p2.x; + } else if (a->edge.line.p1.y < b->edge.line.p1.y) { + return edge_compare_for_y_against_x (b, + a->edge.line.p1.y, +@@ -1205,82 +1207,48 @@ _active_edges_to_polygon (cairo_bo_edge_t *left, + cairo_polygon_t *polygon) + { + cairo_bo_edge_t *right; ++ unsigned int mask; + +- if (fill_rule == CAIRO_FILL_RULE_WINDING) { +- while (left != NULL) { +- int in_out = left->edge.dir; +- +- right = left->next; +- if (left->deferred.right == NULL) { +- while (right != NULL && right->deferred.right == NULL) +- right = right->next; +- +- if (right != NULL && edges_colinear (left, right)) { +- /* continuation on left */ +- left->deferred = right->deferred; +- right->deferred.right = NULL; +- } +- } +- +- right = left->next; +- while (right != NULL) { +- if (right->deferred.right != NULL) +- _cairo_bo_edge_end (right, top, polygon); +- +- in_out += right->edge.dir; +- if (in_out == 0) { +- cairo_bo_edge_t *next; +- cairo_bool_t skip = FALSE; +- +- /* skip co-linear edges */ +- next = right->next; +- if (next != NULL) +- skip = edges_colinear (right, next); ++ if (fill_rule == CAIRO_FILL_RULE_WINDING) ++ mask = ~0; ++ else ++ mask = 1; + +- if (! skip) +- break; +- } ++ while (left != NULL) { ++ int in_out = left->edge.dir; + ++ right = left->next; ++ if (left->deferred.right == NULL) { ++ while (right != NULL && right->deferred.right == NULL) + right = right->next; +- } +- +- _cairo_bo_edge_start_or_continue (left, right, top, polygon); + +- left = right; +- if (left != NULL) +- left = left->next; ++ if (right != NULL && edges_colinear (left, right)) { ++ /* continuation on left */ ++ left->deferred = right->deferred; ++ right->deferred.right = NULL; ++ } + } +- } else { +- while (left != NULL) { +- int in_out = 0; + +- right = left->next; +- while (right != NULL) { +- if (right->deferred.right != NULL) +- _cairo_bo_edge_end (right, top, polygon); ++ right = left->next; ++ while (right != NULL) { ++ if (right->deferred.right != NULL) ++ _cairo_bo_edge_end (right, top, polygon); + +- if ((in_out++ & 1) == 0) { +- cairo_bo_edge_t *next; +- cairo_bool_t skip = FALSE; +- +- /* skip co-linear edges */ +- next = right->next; +- if (next != NULL) +- skip = edges_colinear (right, next); +- +- if (! skip) +- break; +- } +- +- right = right->next; ++ in_out += right->edge.dir; ++ if ((in_out & mask) == 0) { ++ /* skip co-linear edges */ ++ if (right->next == NULL || !edges_colinear (right, right->next)) ++ break; + } + +- _cairo_bo_edge_start_or_continue (left, right, top, polygon); +- +- left = right; +- if (left != NULL) +- left = left->next; ++ right = right->next; + } ++ ++ _cairo_bo_edge_start_or_continue (left, right, top, polygon); ++ ++ left = right; ++ if (left != NULL) ++ left = left->next; + } + } + +@@ -1303,12 +1271,6 @@ _cairo_bentley_ottmann_tessellate_bo_edges (cairo_bo_event_t **start_events, + + while ((event = _cairo_bo_event_dequeue (&event_queue))) { + if (event->point.y != sweep_line.current_y) { +- for (e1 = sweep_line.stopped; e1; e1 = e1->next) { +- if (e1->deferred.right != NULL) +- _cairo_bo_edge_end (e1, e1->edge.bottom, polygon); +- } +- sweep_line.stopped = NULL; +- + _active_edges_to_polygon (sweep_line.head, + sweep_line.current_y, + fill_rule, polygon); +@@ -1328,23 +1290,6 @@ _cairo_bentley_ottmann_tessellate_bo_edges (cairo_bo_event_t **start_events, + if (unlikely (status)) + goto unwind; + +- /* check to see if this is a continuation of a stopped edge */ +- /* XXX change to an infinitesimal lengthening rule */ +- for (left = sweep_line.stopped; left; left = left->next) { +- if (e1->edge.top <= left->edge.bottom && +- edges_colinear (e1, left)) +- { +- e1->deferred = left->deferred; +- if (left->prev != NULL) +- left->prev = left->next; +- else +- sweep_line.stopped = left->next; +- if (left->next != NULL) +- left->next->prev = left->prev; +- break; +- } +- } +- + left = e1->prev; + right = e1->next; + +@@ -1371,14 +1316,8 @@ _cairo_bentley_ottmann_tessellate_bo_edges (cairo_bo_event_t **start_events, + + _cairo_bo_sweep_line_delete (&sweep_line, e1); + +- /* first, check to see if we have a continuation via a fresh edge */ +- if (e1->deferred.right != NULL) { +- e1->next = sweep_line.stopped; +- if (sweep_line.stopped != NULL) +- sweep_line.stopped->prev = e1; +- sweep_line.stopped = e1; +- e1->prev = NULL; +- } ++ if (e1->deferred.right != NULL) ++ _cairo_bo_edge_end (e1, e1->edge.bottom, polygon); + + if (left != NULL && right != NULL) { + status = _cairo_bo_event_queue_insert_if_intersect_below_current_y (&event_queue, left, right); +@@ -1420,10 +1359,6 @@ _cairo_bentley_ottmann_tessellate_bo_edges (cairo_bo_event_t **start_events, + } + } + +- for (e1 = sweep_line.stopped; e1; e1 = e1->next) { +- if (e1->deferred.right != NULL) +- _cairo_bo_edge_end (e1, e1->edge.bottom, polygon); +- } + unwind: + _cairo_bo_event_queue_fini (&event_queue); + +@@ -1447,6 +1382,12 @@ _cairo_polygon_reduce (cairo_polygon_t *polygon, + if (unlikely (0 == num_events)) + return CAIRO_STATUS_SUCCESS; + ++ if (DEBUG_POLYGON) { ++ FILE *file = fopen ("reduce_in.txt", "w"); ++ _cairo_debug_print_polygon (file, polygon); ++ fclose (file); ++ } ++ + events = stack_events; + event_ptrs = stack_event_ptrs; + if (num_events > ARRAY_LENGTH (stack_events)) { +@@ -1482,10 +1423,16 @@ _cairo_polygon_reduce (cairo_polygon_t *polygon, + num_events, + fill_rule, + polygon); +- polygon->num_limits = num_limits; ++ polygon->num_limits = num_limits; + + if (events != stack_events) + free (events); + ++ if (DEBUG_POLYGON) { ++ FILE *file = fopen ("reduce_out.txt", "w"); ++ _cairo_debug_print_polygon (file, polygon); ++ fclose (file); ++ } ++ + return status; + } +-- +cgit v0.9.0.2-2-gbebe diff --git a/testing/cairo/git_fixes.patch b/testing/cairo/git_fixes.patch new file mode 100644 index 000000000..6ad8979eb --- /dev/null +++ b/testing/cairo/git_fixes.patch @@ -0,0 +1,1086 @@ +From ede11b2954db19e3ca9d31cef7d04a7bf0e42ddc Mon Sep 17 00:00:00 2001 +From: Behdad Esfahbod <behdad@behdad.org> +Date: Sun, 25 Mar 2012 18:37:14 +0000 +Subject: Fix math in comments + +--- +diff --git a/src/cairo-arc.c b/src/cairo-arc.c +index dc07fee..6977e88 100644 +--- a/src/cairo-arc.c ++++ b/src/cairo-arc.c +@@ -139,7 +139,7 @@ _arc_segments_needed (double angle, + + From that paper, a very practical value of h is: + +- h = 4/3 * tan(angle/4) ++ h = 4/3 * R * tan(angle/4) + + This value does not give the spline with minimal error, but it does + provide a very good approximation, (6th-order convergence), and the +-- +cgit v0.9.0.2-2-gbebe +From fba21ef2a4c4eb343668267fda713aedbb6af2a4 Mon Sep 17 00:00:00 2001 +From: Henry (Yu) Song <hsong@sisa.samsung.com> +Date: Tue, 27 Mar 2012 21:25:37 +0000 +Subject: gl: use font's antialias option to check whether it needs mask + +There is need to loop over number of glyphs to check wether the glyph +image is a ARGB32 as the font's antialias option can be used for checking. +If antialias is SUBPIXEL or BEST, the glyph surface will be ARGB32, +otherwise it will be A8 format. Therefore we will only be using +component-alpha at SUBPIXEL (or better) font quality and only then need +a mask for multiple pass glyph composition. +--- +diff --git a/src/cairo-gl-glyphs.c b/src/cairo-gl-glyphs.c +index 832956f..9756ea4 100644 +--- a/src/cairo-gl-glyphs.c ++++ b/src/cairo-gl-glyphs.c +@@ -427,23 +427,15 @@ _cairo_gl_composite_glyphs (void *_dst, + + TRACE ((stderr, "%s\n", __FUNCTION__)); + +- /* If any of the glyphs are component alpha, we have to go through a mask, +- * since only _cairo_gl_surface_composite() currently supports component +- * alpha. ++ /* If any of the glyphs require component alpha, we have to go through ++ * a mask, since only _cairo_gl_surface_composite() currently supports ++ * component alpha. + */ +- if (!dst->base.is_clear && ! info->use_mask && op != CAIRO_OPERATOR_OVER) { +- for (i = 0; i < info->num_glyphs; i++) { +- cairo_scaled_glyph_t *scaled_glyph; +- +- if (_cairo_scaled_glyph_lookup (info->font, info->glyphs[i].index, +- CAIRO_SCALED_GLYPH_INFO_SURFACE, +- &scaled_glyph) == CAIRO_INT_STATUS_SUCCESS && +- scaled_glyph->surface->format == CAIRO_FORMAT_ARGB32) +- { +- info->use_mask = TRUE; +- break; +- } +- } ++ if (!dst->base.is_clear && ! info->use_mask && op != CAIRO_OPERATOR_OVER && ++ (info->font->options.antialias == CAIRO_ANTIALIAS_SUBPIXEL || ++ info->font->options.antialias == CAIRO_ANTIALIAS_BEST)) ++ { ++ info->use_mask = TRUE; + } + + if (info->use_mask) { +-- +cgit v0.9.0.2-2-gbebe +From d304f0e57be8036719c3709e2419487326369105 Mon Sep 17 00:00:00 2001 +From: Chris Wilson <chris@chris-wilson.co.uk> +Date: Wed, 28 Mar 2012 23:32:36 +0000 +Subject: composite-rectangles: Trim extents for SOURCE and CLEAR to the mask + +The SOURCE and CLEAR are the odd pair in Cairo's range of operators that +are bound by the shape/mask, but are unbound by the source. This +regularly leads to bugs as only track the bound/unbound rectangles and +confuse the meaning when bound only by the mask. + +What is required is that the unbound extents in this case is only +trimmed by the mask (the bounded extents are still the intersection of +all). + +Fixes bug-source-cu + +Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> +--- +diff --git a/src/cairo-composite-rectangles.c b/src/cairo-composite-rectangles.c +index 106571e..8c5cd5a 100644 +--- a/src/cairo-composite-rectangles.c ++++ b/src/cairo-composite-rectangles.c +@@ -147,8 +147,12 @@ _cairo_composite_rectangles_intersect (cairo_composite_rectangles_t *extents, + if (! ret && extents->is_bounded & CAIRO_OPERATOR_BOUND_BY_MASK) + return CAIRO_INT_STATUS_NOTHING_TO_DO; + +- if (extents->is_bounded == (CAIRO_OPERATOR_BOUND_BY_MASK | CAIRO_OPERATOR_BOUND_BY_SOURCE)) ++ if (extents->is_bounded == (CAIRO_OPERATOR_BOUND_BY_MASK | CAIRO_OPERATOR_BOUND_BY_SOURCE)) { + extents->unbounded = extents->bounded; ++ } else if (extents->is_bounded & CAIRO_OPERATOR_BOUND_BY_MASK) { ++ if (!_cairo_rectangle_intersect (&extents->unbounded, &extents->mask)) ++ return CAIRO_INT_STATUS_NOTHING_TO_DO; ++ } + + extents->clip = _cairo_clip_reduce_for_composite (clip, extents); + if (_cairo_clip_is_all_clipped (extents->clip)) +@@ -199,8 +203,12 @@ _cairo_composite_rectangles_intersect_source_extents (cairo_composite_rectangles + rect.height == extents->bounded.height) + return CAIRO_INT_STATUS_SUCCESS; + +- if (extents->is_bounded == (CAIRO_OPERATOR_BOUND_BY_MASK | CAIRO_OPERATOR_BOUND_BY_SOURCE)) ++ if (extents->is_bounded == (CAIRO_OPERATOR_BOUND_BY_MASK | CAIRO_OPERATOR_BOUND_BY_SOURCE)) { + extents->unbounded = extents->bounded; ++ } else if (extents->is_bounded & CAIRO_OPERATOR_BOUND_BY_MASK) { ++ if (!_cairo_rectangle_intersect (&extents->unbounded, &extents->mask)) ++ return CAIRO_INT_STATUS_NOTHING_TO_DO; ++ } + + clip = extents->clip; + extents->clip = _cairo_clip_reduce_for_composite (clip, extents); +@@ -253,8 +261,12 @@ _cairo_composite_rectangles_intersect_mask_extents (cairo_composite_rectangles_t + mask.height == extents->bounded.height) + return CAIRO_INT_STATUS_SUCCESS; + +- if (extents->is_bounded == (CAIRO_OPERATOR_BOUND_BY_MASK | CAIRO_OPERATOR_BOUND_BY_SOURCE)) ++ if (extents->is_bounded == (CAIRO_OPERATOR_BOUND_BY_MASK | CAIRO_OPERATOR_BOUND_BY_SOURCE)) { + extents->unbounded = extents->bounded; ++ } else if (extents->is_bounded & CAIRO_OPERATOR_BOUND_BY_MASK) { ++ if (!_cairo_rectangle_intersect (&extents->unbounded, &extents->mask)) ++ return CAIRO_INT_STATUS_NOTHING_TO_DO; ++ } + + clip = extents->clip; + extents->clip = _cairo_clip_reduce_for_composite (clip, extents); +-- +cgit v0.9.0.2-2-gbebe +From af6e084dd78fcbb8ecce46c57f655f5e24343b8c Mon Sep 17 00:00:00 2001 +From: Chris Wilson <chris@chris-wilson.co.uk> +Date: Thu, 29 Mar 2012 13:48:24 +0000 +Subject: cairoint: Mark PDF surface as requiring the deflate stream output + +Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> +--- +diff --git a/src/cairoint.h b/src/cairoint.h +index 9a8003e..9f20d51 100644 +--- a/src/cairoint.h ++++ b/src/cairoint.h +@@ -73,7 +73,10 @@ + #include "cairo-compiler-private.h" + #include "cairo-error-private.h" + +-#if CAIRO_HAS_PS_SURFACE || CAIRO_HAS_SCRIPT_SURFACE || CAIRO_HAS_XML_SURFACE ++#if CAIRO_HAS_PDF_SURFACE || \ ++ CAIRO_HAS_PS_SURFACE || \ ++ CAIRO_HAS_SCRIPT_SURFACE || \ ++ CAIRO_HAS_XML_SURFACE + #define CAIRO_HAS_DEFLATE_STREAM 1 + #endif + +@@ -84,7 +87,9 @@ + #define CAIRO_HAS_FONT_SUBSET 1 + #endif + +-#if CAIRO_HAS_PS_SURFACE || CAIRO_HAS_PDF_SURFACE || CAIRO_HAS_FONT_SUBSET ++#if CAIRO_HAS_PS_SURFACE || \ ++ CAIRO_HAS_PDF_SURFACE || \ ++ CAIRO_HAS_FONT_SUBSET + #define CAIRO_HAS_PDF_OPERATORS 1 + #endif + +-- +cgit v0.9.0.2-2-gbebe +From a965b0f95fdeb567f7ccb51f7c8c47735a61e2d9 Mon Sep 17 00:00:00 2001 +From: Henry (Yu) Song <hsong@sisa.samsung.com> +Date: Thu, 29 Mar 2012 01:08:51 +0000 +Subject: gl: fix y-axis origin when map_to_image() for non texture GL surface + +We need to fix y-axis origin when map a GL surface to image surface for +non-texture GL surface. + +Test cases: extended-blend-alpha-mask, extended-blend-mask. +Although the image outputs is not right, but the image on the first grid +(upper-left corner) is correct comparing to image output. +--- +diff --git a/src/cairo-gl-surface.c b/src/cairo-gl-surface.c +index 8bbf939..32ecf63 100644 +--- a/src/cairo-gl-surface.c ++++ b/src/cairo-gl-surface.c +@@ -985,6 +985,7 @@ _cairo_gl_surface_map_to_image (void *abstract_surface, + unsigned int cpp; + cairo_bool_t invert; + cairo_status_t status; ++ int y; + + /* Want to use a switch statement here but the compiler gets whiny. */ + if (surface->base.content == CAIRO_CONTENT_COLOR_ALPHA) { +@@ -1065,7 +1066,12 @@ _cairo_gl_surface_map_to_image (void *abstract_surface, + glPixelStorei (GL_PACK_ROW_LENGTH, image->stride / cpp); + if (invert) + glPixelStorei (GL_PACK_INVERT_MESA, 1); +- glReadPixels (extents->x, extents->y, ++ ++ y = extents->y; ++ if (! _cairo_gl_surface_is_texture (surface)) ++ y = surface->height - extents->y - extents->height; ++ ++ glReadPixels (extents->x, y, + extents->width, extents->height, + format, type, image->data); + if (invert) +-- +cgit v0.9.0.2-2-gbebe +From c77112c5464d7ff21052527f82f4d729cc509291 Mon Sep 17 00:00:00 2001 +From: Uli Schlachter <psychon@znc.in> +Date: Mon, 02 Apr 2012 18:43:00 +0000 +Subject: xcb: Fix SHM in _get_image() + +Commit 2283ab9 introduced a logic error. Instead of falling back to the non-SHM +path when getting the image via SHM failed, we now did the fallback when getting +the image via SHM worked (which means that the SHM operation was a waste of +time). + +Signed-off-by: Uli Schlachter <psychon@znc.in> +--- +diff --git a/src/cairo-xcb-surface.c b/src/cairo-xcb-surface.c +index fff4f52..6bedbda 100644 +--- a/src/cairo-xcb-surface.c ++++ b/src/cairo-xcb-surface.c +@@ -367,7 +367,7 @@ _get_image (cairo_xcb_surface_t *surface, + if (use_shm) { + image = _get_shm_image (surface, x, y, width, height); + if (image) { +- if (image->status) { ++ if (image->status == CAIRO_STATUS_SUCCESS) { + _cairo_xcb_connection_release (connection); + return image; + } +-- +cgit v0.9.0.2-2-gbebe +From cc247c346b75353f16ab40ac74c54cdd9663d16b Mon Sep 17 00:00:00 2001 +From: Henry (Yu) Song <hsong@sisa.samsung.com> +Date: Mon, 02 Apr 2012 21:29:47 +0000 +Subject: gl: Remove an unused variable + +--- +diff --git a/src/cairo-gl-gradient.c b/src/cairo-gl-gradient.c +index b364b92..ce7c0dd 100644 +--- a/src/cairo-gl-gradient.c ++++ b/src/cairo-gl-gradient.c +@@ -207,7 +207,6 @@ _cairo_gl_gradient_create (cairo_gl_context_t *ctx, + cairo_status_t status; + int tex_width; + void *data; +- cairo_gl_dispatch_t *dispatch = &ctx->dispatch; + + if ((unsigned int) ctx->max_texture_size / 2 <= n_stops) + return CAIRO_INT_STATUS_UNSUPPORTED; +-- +cgit v0.9.0.2-2-gbebe +From 7a262fd398c8a1f3c9052e8d9ec459e27ff91b4d Mon Sep 17 00:00:00 2001 +From: Adrian Johnson <ajohnson@redneon.com> +Date: Wed, 04 Apr 2012 10:23:09 +0000 +Subject: fix bug in _cairo_image_analyze_color + +--- +diff --git a/src/cairo-image-surface.c b/src/cairo-image-surface.c +index 8208a15..e860e1b 100644 +--- a/src/cairo-image-surface.c ++++ b/src/cairo-image-surface.c +@@ -1130,9 +1130,12 @@ _cairo_image_analyze_color (cairo_image_surface_t *image) + if (image->color != CAIRO_IMAGE_UNKNOWN_COLOR) + return image->color; + +- if (image->format == CAIRO_FORMAT_A1 || image->format == CAIRO_FORMAT_A8) ++ if (image->format == CAIRO_FORMAT_A1) + return image->color = CAIRO_IMAGE_IS_MONOCHROME; + ++ if (image->format == CAIRO_FORMAT_A8) ++ return image->color = CAIRO_IMAGE_IS_GRAYSCALE; ++ + if (image->format == CAIRO_FORMAT_ARGB32) { + image->color = CAIRO_IMAGE_IS_MONOCHROME; + for (y = 0; y < image->height; y++) { +-- +cgit v0.9.0.2-2-gbebe +From 70b2856ed3d31b41e69b3d82fb9c5c11c2b3d3d4 Mon Sep 17 00:00:00 2001 +From: Adrian Johnson <ajohnson@redneon.com> +Date: Thu, 05 Apr 2012 23:43:35 +0000 +Subject: type1-subset: use fallback font if glyph widths are calculated + +Bug 48349 has a pdf file with a Type 1 font where the glyph widths are +of the form: + +34 9302 19 div hsbw +--- +diff --git a/src/cairo-type1-subset.c b/src/cairo-type1-subset.c +index 607ac8e..ba1008a 100644 +--- a/src/cairo-type1-subset.c ++++ b/src/cairo-type1-subset.c +@@ -751,6 +751,9 @@ cairo_type1_font_subset_parse_charstring (cairo_type1_font_subset_t *font, + command = *p++; + switch (command) { + case TYPE1_CHARSTRING_COMMAND_HSBW: ++ if (! last_op_was_integer) ++ return CAIRO_INT_STATUS_UNSUPPORTED; ++ + font->glyphs[glyph].width = font->build_stack.stack[1]/font->base.units_per_em; + font->build_stack.sp = 0; + last_op_was_integer = FALSE; +@@ -797,6 +800,9 @@ cairo_type1_font_subset_parse_charstring (cairo_type1_font_subset_t *font, + break; + + case TYPE1_CHARSTRING_COMMAND_SBW: ++ if (! last_op_was_integer) ++ return CAIRO_INT_STATUS_UNSUPPORTED; ++ + font->glyphs[glyph].width = font->build_stack.stack[2]/font->base.units_per_em; + font->build_stack.sp = 0; + last_op_was_integer = FALSE; +-- +cgit v0.9.0.2-2-gbebe +From a6d955fcc46ae2da8d6f3b2cadeae64c03066461 Mon Sep 17 00:00:00 2001 +From: Adrian Johnson <ajohnson@redneon.com> +Date: Thu, 05 Apr 2012 23:53:50 +0000 +Subject: fix indentation in cairo_type1_font_subset_parse_charstring + +--- +diff --git a/src/cairo-type1-subset.c b/src/cairo-type1-subset.c +index ba1008a..ddef8ae 100644 +--- a/src/cairo-type1-subset.c ++++ b/src/cairo-type1-subset.c +@@ -1,3 +1,4 @@ ++/* -*- Mode: c; c-basic-offset: 4; indent-tabs-mode: t; tab-width: 8; -*- */ + /* cairo - a vector graphics library with display and print output + * + * Copyright © 2006 Red Hat, Inc +@@ -750,86 +751,79 @@ cairo_type1_font_subset_parse_charstring (cairo_type1_font_subset_t *font, + if (*p < 32) { + command = *p++; + switch (command) { +- case TYPE1_CHARSTRING_COMMAND_HSBW: +- if (! last_op_was_integer) +- return CAIRO_INT_STATUS_UNSUPPORTED; ++ case TYPE1_CHARSTRING_COMMAND_HSBW: ++ if (! last_op_was_integer) ++ return CAIRO_INT_STATUS_UNSUPPORTED; ++ ++ font->glyphs[glyph].width = font->build_stack.stack[1]/font->base.units_per_em; ++ font->build_stack.sp = 0; ++ last_op_was_integer = FALSE; ++ break; ++ ++ case TYPE1_CHARSTRING_COMMAND_CALLSUBR: ++ if (font->subset_subrs && ++ last_op_was_integer && ++ font->build_stack.top_value >= 0 && ++ font->build_stack.top_value < font->num_subrs) ++ { ++ subr_num = font->build_stack.top_value; ++ font->subrs[subr_num].used = TRUE; ++ last_op_was_integer = FALSE; ++ status = cairo_type1_font_subset_parse_charstring (font, ++ glyph, ++ font->subrs[subr_num].subr_string, ++ font->subrs[subr_num].subr_length); ++ } else { ++ font->subset_subrs = FALSE; ++ } ++ break; ++ ++ case TYPE1_CHARSTRING_COMMAND_ESCAPE: ++ command = command << 8 | *p++; ++ switch (command) { ++ case TYPE1_CHARSTRING_COMMAND_SEAC: ++ /* The seac command takes five integer arguments. The ++ * last two are glyph indices into the PS standard ++ * encoding give the names of the glyphs that this ++ * glyph is composed from. All we need to do is to ++ * make sure those glyphs are present in the subset ++ * under their standard names. */ ++ status = use_standard_encoding_glyph (font, font->build_stack.stack[3]); ++ if (unlikely (status)) ++ return status; ++ ++ status = use_standard_encoding_glyph (font, font->build_stack.stack[4]); ++ if (unlikely (status)) ++ return status; + +- font->glyphs[glyph].width = font->build_stack.stack[1]/font->base.units_per_em; + font->build_stack.sp = 0; + last_op_was_integer = FALSE; + break; + +- case TYPE1_CHARSTRING_COMMAND_CALLSUBR: +- if (font->subset_subrs && +- last_op_was_integer && +- font->build_stack.top_value >= 0 && +- font->build_stack.top_value < font->num_subrs) +- { +- subr_num = font->build_stack.top_value; +- font->subrs[subr_num].used = TRUE; +- last_op_was_integer = FALSE; +- status = cairo_type1_font_subset_parse_charstring (font, +- glyph, +- font->subrs[subr_num].subr_string, +- font->subrs[subr_num].subr_length); +- } else { +- font->subset_subrs = FALSE; +- } ++ case TYPE1_CHARSTRING_COMMAND_SBW: ++ if (! last_op_was_integer) ++ return CAIRO_INT_STATUS_UNSUPPORTED; ++ ++ font->glyphs[glyph].width = font->build_stack.stack[2]/font->base.units_per_em; ++ font->build_stack.sp = 0; ++ last_op_was_integer = FALSE; + break; + +- case TYPE1_CHARSTRING_COMMAND_ESCAPE: +- command = command << 8 | *p++; +- switch (command) { +- case TYPE1_CHARSTRING_COMMAND_SEAC: +- /* The seac command takes five integer arguments. The +- * last two are glyph indices into the PS standard +- * encoding give the names of the glyphs that this +- * glyph is composed from. All we need to do is to +- * make sure those glyphs are present in the subset +- * under their standard names. */ +- status = use_standard_encoding_glyph (font, font->build_stack.stack[3]); +- if (unlikely (status)) +- return status; +- +- status = use_standard_encoding_glyph (font, font->build_stack.stack[4]); +- if (unlikely (status)) +- return status; +- +- font->build_stack.sp = 0; +- last_op_was_integer = FALSE; +- break; +- +- case TYPE1_CHARSTRING_COMMAND_SBW: +- if (! last_op_was_integer) +- return CAIRO_INT_STATUS_UNSUPPORTED; +- +- font->glyphs[glyph].width = font->build_stack.stack[2]/font->base.units_per_em; +- font->build_stack.sp = 0; +- last_op_was_integer = FALSE; +- break; +- +- case TYPE1_CHARSTRING_COMMAND_CALLOTHERSUBR: +- for (i = 0; i < font->build_stack.sp; i++) +- font->ps_stack.other_subr_args[i] = font->build_stack.stack[i]; +- font->ps_stack.num_other_subr_args = font->build_stack.sp; +- font->ps_stack.cur_other_subr_arg = 0; +- font->build_stack.sp = 0; +- last_op_was_integer = FALSE; +- break; +- +- case TYPE1_CHARSTRING_COMMAND_POP: +- if (font->ps_stack.num_other_subr_args > font->ps_stack.cur_other_subr_arg) { +- font->build_stack.top_value = font->ps_stack.other_subr_args[font->ps_stack.cur_other_subr_arg++]; +- last_op_was_integer = TRUE; +- } else { +- font->subset_subrs = FALSE; +- } +- break; +- +- default: +- font->build_stack.sp = 0; +- last_op_was_integer = FALSE; +- break; ++ case TYPE1_CHARSTRING_COMMAND_CALLOTHERSUBR: ++ for (i = 0; i < font->build_stack.sp; i++) ++ font->ps_stack.other_subr_args[i] = font->build_stack.stack[i]; ++ font->ps_stack.num_other_subr_args = font->build_stack.sp; ++ font->ps_stack.cur_other_subr_arg = 0; ++ font->build_stack.sp = 0; ++ last_op_was_integer = FALSE; ++ break; ++ ++ case TYPE1_CHARSTRING_COMMAND_POP: ++ if (font->ps_stack.num_other_subr_args > font->ps_stack.cur_other_subr_arg) { ++ font->build_stack.top_value = font->ps_stack.other_subr_args[font->ps_stack.cur_other_subr_arg++]; ++ last_op_was_integer = TRUE; ++ } else { ++ font->subset_subrs = FALSE; + } + break; + +@@ -837,6 +831,13 @@ cairo_type1_font_subset_parse_charstring (cairo_type1_font_subset_t *font, + font->build_stack.sp = 0; + last_op_was_integer = FALSE; + break; ++ } ++ break; ++ ++ default: ++ font->build_stack.sp = 0; ++ last_op_was_integer = FALSE; ++ break; + } + } else { + /* integer argument */ +-- +cgit v0.9.0.2-2-gbebe +From 8886220b5027296f5b3b95e9c2f93509108d3b9e Mon Sep 17 00:00:00 2001 +From: Adrian Johnson <ajohnson@redneon.com> +Date: Fri, 06 Apr 2012 00:13:53 +0000 +Subject: type1-subset: if font name is prefixed with a subset tag, strip it off + +--- +diff --git a/src/cairo-type1-subset.c b/src/cairo-type1-subset.c +index ddef8ae..e507abe 100644 +--- a/src/cairo-type1-subset.c ++++ b/src/cairo-type1-subset.c +@@ -381,6 +381,7 @@ cairo_type1_font_subset_get_fontname (cairo_type1_font_subset_t *font) + { + const char *start, *end, *segment_end; + char *s; ++ int i; + + segment_end = font->header_segment + font->header_segment_size; + start = find_token (font->header_segment, segment_end, "/FontName"); +@@ -406,6 +407,16 @@ cairo_type1_font_subset_get_fontname (cairo_type1_font_subset_t *font) + return CAIRO_INT_STATUS_UNSUPPORTED; + } + ++ /* If font name is prefixed with a subset tag, strip it off. */ ++ if (strlen(start) > 7 && start[6] == '+') { ++ for (i = 0; i < 6; i++) { ++ if (start[i] < 'A' || start[i] > 'Z') ++ break; ++ } ++ if (i == 6) ++ start += 7; ++ } ++ + font->base.base_font = strdup (start); + free (s); + if (unlikely (font->base.base_font == NULL)) +-- +cgit v0.9.0.2-2-gbebe +From 8657ca10e34b0034602680b4304d47ecf90ccbfd Mon Sep 17 00:00:00 2001 +From: Adrian Johnson <ajohnson@redneon.com> +Date: Fri, 06 Apr 2012 11:50:40 +0000 +Subject: fix _cairo_pattern_get_ink_extents to work with snapshot recording surfaces + +It had caused pdf bbox sizes to regress to page size bboxes. +--- +diff --git a/src/cairo-pattern.c b/src/cairo-pattern.c +index 27ba004..5b3e177 100644 +--- a/src/cairo-pattern.c ++++ b/src/cairo-pattern.c +@@ -37,6 +37,7 @@ + #include "cairo-path-private.h" + #include "cairo-pattern-private.h" + #include "cairo-recording-surface-private.h" ++#include "cairo-surface-snapshot-private.h" + + #include <float.h> + +@@ -3666,6 +3667,9 @@ _cairo_pattern_get_ink_extents (const cairo_pattern_t *pattern, + (const cairo_surface_pattern_t *) pattern; + cairo_surface_t *surface = surface_pattern->surface; + ++ if (_cairo_surface_is_snapshot (surface)) ++ surface = _cairo_surface_snapshot_get_target (surface); ++ + if (_cairo_surface_is_recording (surface)) { + cairo_matrix_t imatrix; + cairo_box_t box; +-- +cgit v0.9.0.2-2-gbebe +From 6f28f0b33cb12f3b2dd48c87da0018bd00c17107 Mon Sep 17 00:00:00 2001 +From: Chris Wilson <chris@chris-wilson.co.uk> +Date: Sun, 08 Apr 2012 10:28:59 +0000 +Subject: stroke: Fix misuse of half_line_x for vertical caps on dashes + +A typo using half_line_x instead of half_line_y when emitting dashed +segments of the rectilinear stroke. + +Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> +--- +diff --git a/src/cairo-path-stroke-boxes.c b/src/cairo-path-stroke-boxes.c +index 3e8c5a4..cc9dd19 100644 +--- a/src/cairo-path-stroke-boxes.c ++++ b/src/cairo-path-stroke-boxes.c +@@ -342,15 +342,15 @@ _cairo_rectilinear_stroker_emit_segments_dashed (cairo_rectilinear_stroker_t *st + box.p1.x = box.p2.x - half_line_x; + } + if (out_slope.dy >= 0) +- box.p1.y -= half_line_x; ++ box.p1.y -= half_line_y; + if (out_slope.dy <= 0) +- box.p2.y += half_line_x; ++ box.p2.y += half_line_y; + } else { + if (box.p1.y <= box.p2.y) { + box.p1.y = box.p2.y; +- box.p2.y += half_line_x; ++ box.p2.y += half_line_y; + } else { +- box.p1.y = box.p2.y - half_line_x; ++ box.p1.y = box.p2.y - half_line_y; + } + if (out_slope.dx >= 0) + box.p1.x -= half_line_x; +-- +cgit v0.9.0.2-2-gbebe +From 113ec6bf0c8ed1ff12293d1ed2a2de9bd5b9904b Mon Sep 17 00:00:00 2001 +From: Chris Wilson <chris@chris-wilson.co.uk> +Date: Sun, 08 Apr 2012 16:58:13 +0000 +Subject: traps: Clip the trapezoid extents against the clip extents + +Just in case the clip polygon turns out to be much larger than the +operation extents (silly us for not reducing it correctly) and lead to +catastrophe, such as: + +Program received signal SIGSEGV, Segmentation fault. +pixman_fill_sse2 (bits=<optimized out>, stride=4, bpp=8, x=0, y=0, +width=3, height=-34811, data=0) at pixman-sse2.c:3369 +3369 *(uint16_t *)d = data; + +Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> +--- +diff --git a/src/cairo-traps-compositor.c b/src/cairo-traps-compositor.c +index 284a0be..c49e208 100644 +--- a/src/cairo-traps-compositor.c ++++ b/src/cairo-traps-compositor.c +@@ -218,8 +218,13 @@ combine_clip_as_traps (const cairo_traps_compositor_t *compositor, + _cairo_traps_fini (&traps); + cairo_surface_destroy (src); + +- if (status == CAIRO_INT_STATUS_SUCCESS && +- (fixup.width < extents->width || fixup.height < extents->height)) { ++ if (unlikely (status)) ++ return status; ++ ++ if (! _cairo_rectangle_intersect (&fixup, extents)) ++ return CAIRO_STATUS_SUCCESS; ++ ++ if (fixup.width < extents->width || fixup.height < extents->height) { + cairo_boxes_t clear; + + _cairo_boxes_init (&clear); +-- +cgit v0.9.0.2-2-gbebe +From de61681574eb7d6e0e497ea7f25797e3d9b20ac4 Mon Sep 17 00:00:00 2001 +From: Chris Wilson <chris@chris-wilson.co.uk> +Date: Mon, 09 Apr 2012 11:47:34 +0000 +Subject: build: Disable -Wset-but-unused-variable + +This is too noisy in the current build, and masking more important +warnings. + +Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> +--- +diff --git a/build/configure.ac.warnings b/build/configure.ac.warnings +index 3eb0104..f1b17f4 100644 +--- a/build/configure.ac.warnings ++++ b/build/configure.ac.warnings +@@ -21,6 +21,9 @@ MAYBE_WARN="-Wall -Wextra \ + -Wno-missing-field-initializers -Wno-unused-parameter \ + -Wno-attributes -Wno-long-long -Winline" + ++# -Wunused-but-set-variable is too noisy at present ++NO_WARN="-Wno-unused-but-set-variable" ++ + dnl Sun Studio 12 likes to rag at us for abusing enums like + dnl having cairo_status_t variables hold cairo_int_status_t + dnl values. It's bad, we know. Now please be quiet. +@@ -34,6 +37,8 @@ MAYBE_WARN="$MAYBE_WARN -fno-strict-aliasing -fno-common -flto" + dnl Also to turn various gcc/glibc-specific preprocessor checks + MAYBE_WARN="$MAYBE_WARN -Wp,-D_FORTIFY_SOURCE=2" + ++MAYBE_WARN="$MAYBE_WARN $NO_WARN" ++ + # invalidate cached value if MAYBE_WARN has changed + if test "x$cairo_cv_warn_maybe" != "x$MAYBE_WARN"; then + unset cairo_cv_warn_cflags +-- +cgit v0.9.0.2-2-gbebe +From 7cb5053c0694992320b5f7ea3b91ea497431813b Mon Sep 17 00:00:00 2001 +From: Chris Wilson <chris@chris-wilson.co.uk> +Date: Mon, 09 Apr 2012 11:49:20 +0000 +Subject: analysis: Apply the integer translation to the bbox as well + +The bbox is used to compute the ink extents (and so the pattern extents +of a recording surface) and if given an integer translation we failed to +transform the bbox into the target space. + +Fixes mask (pdf). + +Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> +--- +diff --git a/src/cairo-analysis-surface.c b/src/cairo-analysis-surface.c +index b8abe02..8878f62 100644 +--- a/src/cairo-analysis-surface.c ++++ b/src/cairo-analysis-surface.c +@@ -220,6 +220,14 @@ _add_operation (cairo_analysis_surface_t *surface, + if (_cairo_matrix_is_integer_translation (&surface->ctm, &tx, &ty)) { + rect->x += tx; + rect->y += ty; ++ ++ tx = _cairo_fixed_from_int (tx); ++ bbox.p1.x += tx; ++ bbox.p2.x += tx; ++ ++ ty = _cairo_fixed_from_int (ty); ++ bbox.p1.y += ty; ++ bbox.p2.y += ty; + } else { + _cairo_matrix_transform_bounding_box_fixed (&surface->ctm, + &bbox, NULL); +-- +cgit v0.9.0.2-2-gbebe +From 038e4991912656a3239ca82d60056ca129016ba6 Mon Sep 17 00:00:00 2001 +From: Adrian Johnson <ajohnson@redneon.com> +Date: Mon, 09 Apr 2012 08:31:44 +0000 +Subject: pdf: avoid unnecessary use of patterns in mask groups + +--- +diff --git a/src/cairo-pdf-surface.c b/src/cairo-pdf-surface.c +index 4930e72..78537ce 100644 +--- a/src/cairo-pdf-surface.c ++++ b/src/cairo-pdf-surface.c +@@ -5703,56 +5703,68 @@ _cairo_pdf_surface_write_mask_group (cairo_pdf_surface_t *surface, + if (unlikely (status)) + return status; + +- pattern_res.id = 0; +- gstate_res.id = 0; +- status = _cairo_pdf_surface_add_pdf_pattern (surface, group->mask, NULL, +- &pattern_res, &gstate_res); +- if (unlikely (status)) +- return status; +- +- if (gstate_res.id != 0) { +- smask_group = _cairo_pdf_surface_create_smask_group (surface, &group->extents); +- if (unlikely (smask_group == NULL)) +- return _cairo_error (CAIRO_STATUS_NO_MEMORY); +- +- smask_group->width = group->width; +- smask_group->height = group->height; +- smask_group->operation = PDF_PAINT; +- smask_group->source = cairo_pattern_reference (group->mask); +- smask_group->source_res = pattern_res; +- status = _cairo_pdf_surface_add_smask_group (surface, smask_group); +- if (unlikely (status)) { +- _cairo_pdf_smask_group_destroy (smask_group); +- return status; +- } +- +- status = _cairo_pdf_surface_add_smask (surface, gstate_res); +- if (unlikely (status)) +- return status; +- +- status = _cairo_pdf_surface_add_xobject (surface, smask_group->group_res); ++ if (_can_paint_pattern (group->mask)) { ++ _cairo_output_stream_printf (surface->output, "q\n"); ++ status = _cairo_pdf_surface_paint_pattern (surface, ++ group->mask, ++ &group->extents, ++ FALSE); + if (unlikely (status)) + return status; + +- _cairo_output_stream_printf (surface->output, +- "q /s%d gs /x%d Do Q\n", +- gstate_res.id, +- smask_group->group_res.id); ++ _cairo_output_stream_printf (surface->output, "Q\n"); + } else { +- status = _cairo_pdf_surface_select_pattern (surface, group->mask, pattern_res, FALSE); ++ pattern_res.id = 0; ++ gstate_res.id = 0; ++ status = _cairo_pdf_surface_add_pdf_pattern (surface, group->mask, NULL, ++ &pattern_res, &gstate_res); + if (unlikely (status)) + return status; + +- _cairo_output_stream_printf (surface->output, +- "%f %f %f %f re f\n", +- bbox.p1.x, +- bbox.p1.y, +- bbox.p2.x - bbox.p1.x, +- bbox.p2.y - bbox.p1.y); ++ if (gstate_res.id != 0) { ++ smask_group = _cairo_pdf_surface_create_smask_group (surface, &group->extents); ++ if (unlikely (smask_group == NULL)) ++ return _cairo_error (CAIRO_STATUS_NO_MEMORY); + +- status = _cairo_pdf_surface_unselect_pattern (surface); +- if (unlikely (status)) +- return status; ++ smask_group->width = group->width; ++ smask_group->height = group->height; ++ smask_group->operation = PDF_PAINT; ++ smask_group->source = cairo_pattern_reference (group->mask); ++ smask_group->source_res = pattern_res; ++ status = _cairo_pdf_surface_add_smask_group (surface, smask_group); ++ if (unlikely (status)) { ++ _cairo_pdf_smask_group_destroy (smask_group); ++ return status; ++ } ++ ++ status = _cairo_pdf_surface_add_smask (surface, gstate_res); ++ if (unlikely (status)) ++ return status; ++ ++ status = _cairo_pdf_surface_add_xobject (surface, smask_group->group_res); ++ if (unlikely (status)) ++ return status; ++ ++ _cairo_output_stream_printf (surface->output, ++ "q /s%d gs /x%d Do Q\n", ++ gstate_res.id, ++ smask_group->group_res.id); ++ } else { ++ status = _cairo_pdf_surface_select_pattern (surface, group->mask, pattern_res, FALSE); ++ if (unlikely (status)) ++ return status; ++ ++ _cairo_output_stream_printf (surface->output, ++ "%f %f %f %f re f\n", ++ bbox.p1.x, ++ bbox.p1.y, ++ bbox.p2.x - bbox.p1.x, ++ bbox.p2.y - bbox.p1.y); ++ ++ status = _cairo_pdf_surface_unselect_pattern (surface); ++ if (unlikely (status)) ++ return status; ++ } + } + + status = _cairo_pdf_surface_close_group (surface, &mask_group); +@@ -5764,54 +5776,66 @@ _cairo_pdf_surface_write_mask_group (cairo_pdf_surface_t *surface, + if (unlikely (status)) + return status; + +- pattern_res.id = 0; +- gstate_res.id = 0; +- status = _cairo_pdf_surface_add_pdf_pattern (surface, group->source, NULL, +- &pattern_res, &gstate_res); +- if (unlikely (status)) +- return status; +- +- if (gstate_res.id != 0) { +- smask_group = _cairo_pdf_surface_create_smask_group (surface, &group->extents); +- if (unlikely (smask_group == NULL)) +- return _cairo_error (CAIRO_STATUS_NO_MEMORY); +- +- smask_group->operation = PDF_PAINT; +- smask_group->source = cairo_pattern_reference (group->source); +- smask_group->source_res = pattern_res; +- status = _cairo_pdf_surface_add_smask_group (surface, smask_group); +- if (unlikely (status)) { +- _cairo_pdf_smask_group_destroy (smask_group); +- return status; +- } +- +- status = _cairo_pdf_surface_add_smask (surface, gstate_res); +- if (unlikely (status)) +- return status; +- +- status = _cairo_pdf_surface_add_xobject (surface, smask_group->group_res); ++ if (_can_paint_pattern (group->source)) { ++ _cairo_output_stream_printf (surface->output, "q\n"); ++ status = _cairo_pdf_surface_paint_pattern (surface, ++ group->source, ++ &group->extents, ++ FALSE); + if (unlikely (status)) + return status; + +- _cairo_output_stream_printf (surface->output, +- "q /s%d gs /x%d Do Q\n", +- gstate_res.id, +- smask_group->group_res.id); ++ _cairo_output_stream_printf (surface->output, "Q\n"); + } else { +- status = _cairo_pdf_surface_select_pattern (surface, group->source, pattern_res, FALSE); ++ pattern_res.id = 0; ++ gstate_res.id = 0; ++ status = _cairo_pdf_surface_add_pdf_pattern (surface, group->source, NULL, ++ &pattern_res, &gstate_res); + if (unlikely (status)) + return status; + +- _cairo_output_stream_printf (surface->output, +- "%f %f %f %f re f\n", +- bbox.p1.x, +- bbox.p1.y, +- bbox.p2.x - bbox.p1.x, +- bbox.p2.y - bbox.p1.y); ++ if (gstate_res.id != 0) { ++ smask_group = _cairo_pdf_surface_create_smask_group (surface, &group->extents); ++ if (unlikely (smask_group == NULL)) ++ return _cairo_error (CAIRO_STATUS_NO_MEMORY); + +- status = _cairo_pdf_surface_unselect_pattern (surface); +- if (unlikely (status)) +- return status; ++ smask_group->operation = PDF_PAINT; ++ smask_group->source = cairo_pattern_reference (group->source); ++ smask_group->source_res = pattern_res; ++ status = _cairo_pdf_surface_add_smask_group (surface, smask_group); ++ if (unlikely (status)) { ++ _cairo_pdf_smask_group_destroy (smask_group); ++ return status; ++ } ++ ++ status = _cairo_pdf_surface_add_smask (surface, gstate_res); ++ if (unlikely (status)) ++ return status; ++ ++ status = _cairo_pdf_surface_add_xobject (surface, smask_group->group_res); ++ if (unlikely (status)) ++ return status; ++ ++ _cairo_output_stream_printf (surface->output, ++ "q /s%d gs /x%d Do Q\n", ++ gstate_res.id, ++ smask_group->group_res.id); ++ } else { ++ status = _cairo_pdf_surface_select_pattern (surface, group->source, pattern_res, FALSE); ++ if (unlikely (status)) ++ return status; ++ ++ _cairo_output_stream_printf (surface->output, ++ "%f %f %f %f re f\n", ++ bbox.p1.x, ++ bbox.p1.y, ++ bbox.p2.x - bbox.p1.x, ++ bbox.p2.y - bbox.p1.y); ++ ++ status = _cairo_pdf_surface_unselect_pattern (surface); ++ if (unlikely (status)) ++ return status; ++ } + } + + status = _cairo_pdf_surface_close_group (surface, NULL); +-- +cgit v0.9.0.2-2-gbebe +From 9fcbe25c2dcf831783bb0fd20af9754c0b5c409b Mon Sep 17 00:00:00 2001 +From: Maarten Bosmans <mkbosmans@gmail.com> +Date: Mon, 09 Apr 2012 19:33:50 +0000 +Subject: Protect code using dlfcn.h with CAIRO_HAS_DLSYM + +--- +diff --git a/configure.ac b/configure.ac +index cedfebe..5d2e6ec 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -52,6 +52,7 @@ AM_CONDITIONAL(CAIRO_HAS_DL, test "x$have_dl" = "xyes") + if test "x$have_dlsym" = "xyes"; then + AC_DEFINE([CAIRO_HAS_DLSYM], 1, [Define to 1 if dlsym is available]) + fi ++AM_CONDITIONAL(CAIRO_HAS_DLSYM, test "x$have_dlsym" = "xyes") + + dnl =========================================================================== + +diff --git a/util/Makefile.am b/util/Makefile.am +index f202f35..82d0a80 100644 +--- a/util/Makefile.am ++++ b/util/Makefile.am +@@ -12,20 +12,24 @@ endif + + if CAIRO_HAS_TRACE + SUBDIRS += cairo-trace ++if CAIRO_HAS_DLSYM + if CAIRO_HAS_SCRIPT_SURFACE + if CAIRO_HAS_TEE_SURFACE + SUBDIRS += cairo-fdr + endif + endif + endif ++endif + + if BUILD_SPHINX ++if CAIRO_HAS_DLSYM + if CAIRO_HAS_SCRIPT_SURFACE + if CAIRO_HAS_TEE_SURFACE + SUBDIRS += cairo-sphinx + endif + endif + endif ++endif + + AM_CPPFLAGS = -I$(top_srcdir)/src \ + -I$(top_builddir)/src \ +-- +cgit v0.9.0.2-2-gbebe +From c7b86ab97be1d3d3ccf43b652832f148a2fcf290 Mon Sep 17 00:00:00 2001 +From: Adrian Johnson <ajohnson@redneon.com> +Date: Tue, 10 Apr 2012 13:04:05 +0000 +Subject: any2ppm: fix missing enumeration warning + +--- +diff --git a/test/any2ppm.c b/test/any2ppm.c +index 6b61c47..2403347 100644 +--- a/test/any2ppm.c ++++ b/test/any2ppm.c +@@ -193,6 +193,7 @@ write_ppm (cairo_surface_t *surface, int fd) + break; + case CAIRO_FORMAT_A1: + case CAIRO_FORMAT_RGB16_565: ++ case CAIRO_FORMAT_RGB30: + case CAIRO_FORMAT_INVALID: + default: + return "unhandled image format"; +-- +cgit v0.9.0.2-2-gbebe +From 09de481ce5f6ed1c38c0d5bf3af7c60642c4c947 Mon Sep 17 00:00:00 2001 +From: Gilles Espinasse <g.esp@free.fr> +Date: Sat, 07 Apr 2012 21:09:51 +0000 +Subject: Cosmetic configure fix + +'how to allow undefined symbols in shared libraries' test should use CAIRO_CC_TRY_FLAG_SILENT or configure display is a bit out of order like this + +checking how to allow undefined symbols in shared libraries used by test suite... checking whether gcc supports -Wl,--allow-shlib-undefined... yes +-Wl,--allow-shlib-undefined + +Signed-off-by: Gilles Espinasse <g.esp@free.fr> +Signed-off-by: Uli Schlachter <psychon@znc.in> +--- +diff --git a/build/configure.ac.warnings b/build/configure.ac.warnings +index f1b17f4..3b2c6f3 100644 +--- a/build/configure.ac.warnings ++++ b/build/configure.ac.warnings +@@ -89,7 +89,7 @@ AC_DEFINE_UNQUOTED([WARN_UNUSED_RESULT], [$cairo_cv_warn_unused_result], + + dnl check linker flags + AC_CACHE_CHECK([how to allow undefined symbols in shared libraries used by test suite], cairo_cv_test_undefined_ldflags, +- [CAIRO_CC_TRY_FLAG([-Wl,--allow-shlib-undefined], [], ++ [CAIRO_CC_TRY_FLAG_SILENT([-Wl,--allow-shlib-undefined], [], + [cairo_cv_test_undefined_ldflags="-Wl,--allow-shlib-undefined]")]) + CAIRO_TEST_UNDEFINED_LDFLAGS="$cairo_cv_test_undefined_ldflags" + AC_SUBST(CAIRO_TEST_UNDEFINED_LDFLAGS) +-- +cgit v0.9.0.2-2-gbebe +From 07fc63676dfdaa57ed919ad7be8f59c97c615473 Mon Sep 17 00:00:00 2001 +From: Uli Schlachter <psychon@znc.in> +Date: Wed, 11 Apr 2012 19:37:55 +0000 +Subject: xlib: Disable fallback compositor with xlib-xcb + +When xlib-xcb is enabled, this is just dead code which is never used. Thus, this +shouldn't hurt. However, this does include cairo-xlib-private.h. Shouldn't be a +problem? Well, that header contains static inline functions which some compiler +on Solaris will emit even when they are unused. + +This brings us to the real problem: That static inline function refers to a +function which isn't compiled with xlib-xcb and thus linking fails with +undefined symbols. + +This can be reproduced with GCC by adding a call to +_cairo_xlib_screen_put_gc(NULL, NULL, 0, 0); to +_cairo_xlib_fallback_compositor_get. + +Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=48489 +Signed-off-by: Uli Schlachter <psychon@znc.in> +--- +diff --git a/src/cairo-xlib-fallback-compositor.c b/src/cairo-xlib-fallback-compositor.c +index 5391926..7d45cd1 100644 +--- a/src/cairo-xlib-fallback-compositor.c ++++ b/src/cairo-xlib-fallback-compositor.c +@@ -42,6 +42,8 @@ + + #include "cairoint.h" + ++#if !CAIRO_HAS_XLIB_XCB_FUNCTIONS ++ + #include "cairo-xlib-private.h" + + #include "cairo-compositor-private.h" +@@ -52,3 +54,5 @@ _cairo_xlib_fallback_compositor_get (void) + /* XXX Do something interesting here to mitigate fallbacks ala xcb */ + return &_cairo_fallback_compositor; + } ++ ++#endif /* !CAIRO_HAS_XLIB_XCB_FUNCTIONS */ +-- +cgit v0.9.0.2-2-gbebe diff --git a/testing/dmraid/PKGBUILD b/testing/dmraid/PKGBUILD new file mode 100644 index 000000000..a790de92f --- /dev/null +++ b/testing/dmraid/PKGBUILD @@ -0,0 +1,40 @@ +# $Id: PKGBUILD 161281 2012-06-08 22:28:01Z dreisner $ +# Maintainer: Tobias Powalowski <tpowa@archlinux.org> +#Contributor: Urs Wolfer <uwolfer @ fwo.ch> + +pkgname=dmraid +pkgver=1.0.0.rc16.3 +pkgrel=6 +pkgdesc="Device mapper RAID interface" +url="http://people.redhat.com/~heinzm/sw/dmraid/" +conflicts=('mkinitcpio<0.7') +depends=('device-mapper>=2.0.54') +arch=('i686' 'x86_64') +license=('GPL') +source=(#ftp://ftp.archlinux.org/other/dmraid/$pkgname-$pkgver.tar.bz2 + http://people.redhat.com/~heinzm/sw/dmraid/src/$pkgname-1.0.0.rc16-3.tar.bz2 + dmraid_install + dmraid_hook + dmraid_tmpfiles) +install=dmraid.install +md5sums=('819338fcef98e8e25819f0516722beeb' + '2297d23cee1aef23ec6ad8d6d1870356' + 'faec669dc85f87187b45b5d3968efe2c' + '56a8bb0ece8d206cd8efb504ee072ddd') + +build() { + cd "$pkgname/1.0.0.rc16-3/$pkgname" + ./configure --enable-led --enable-intel_led + make +} + +package() { + cd "$pkgname/1.0.0.rc16-3/$pkgname" + make DESTDIR="$pkgdir" prefix=/usr libdir=/usr/lib mandir=/usr/share/man includedir=/usr/include install + install -D -m644 "$srcdir"/dmraid_install "$pkgdir"/usr/lib/initcpio/install/dmraid + install -D -m644 "$srcdir"/dmraid_hook "$pkgdir"/usr/lib/initcpio/hooks/dmraid + install -D -m644 "$srcdir"/dmraid_tmpfiles "$pkgdir"/usr/lib/tmpfiles.d/dmraid.conf + + # fix permissions + chmod 644 "$pkgdir"/usr/include/dmraid/* "$pkgdir"/usr/lib/libdmraid.a +} diff --git a/testing/dmraid/dmraid.install b/testing/dmraid/dmraid.install new file mode 100644 index 000000000..64899e785 --- /dev/null +++ b/testing/dmraid/dmraid.install @@ -0,0 +1,14 @@ +post_upgrade() { + if [ "$(vercmp $2 1.0.0.rc15)" -lt 0 ]; then + # important upgrade notice + echo ">>>" + echo ">>> IMPORTANT DMRAID UPGRADE NOTICE" + echo ">>> -------------------------------" + echo ">>> Version 1.0.0.rc15 and greater introduce a new name scheme:" + echo ">>> You need to add an additional 'p' in front of your number." + echo ">>> e.g. <yourname><number> --> <yourname>p<number>" + echo ">>> firsthd1 --> firsthdp1" + echo ">>> Please change your bootloader and fstab accordingly." + echo ">>>" + fi +} diff --git a/testing/dmraid/dmraid_hook b/testing/dmraid/dmraid_hook new file mode 100644 index 000000000..37283e83e --- /dev/null +++ b/testing/dmraid/dmraid_hook @@ -0,0 +1,14 @@ +#!/usr/bin/ash + +run_hook() { + modprobe -a -q dm-mod dm-mirror >/dev/null 2>&1 + msg ":: Activating dmraid arrays..." + # prevent any event monitoring calls with -I + if [ "$quiet" = "y" ]; then + dmraid -ay -I -Z >/dev/null + else + dmraid -ay -I -Z + fi +} + +# vim: set ft=sh ts=4 sw=4 et: diff --git a/testing/dmraid/dmraid_install b/testing/dmraid/dmraid_install new file mode 100644 index 000000000..d3238c1f7 --- /dev/null +++ b/testing/dmraid/dmraid_install @@ -0,0 +1,22 @@ +#!/bin/bash + +build() { + add_module 'dm-mod' + add_module 'dm-mirror' + + add_binary 'dmraid' + add_binary 'dmsetup' + add_file "/usr/lib/udev/rules.d/10-dm.rules" + add_file "/usr/lib/udev/rules.d/13-dm-disk.rules" + add_file "/usr/lib/udev/rules.d/95-dm-notify.rules" + + add_runscript +} + +help() { + cat <<HELPEOF +This hook loads the necessary modules for a dmraid root device. +HELPEOF +} + +# vim: set ft=sh ts=4 sw=4 et: diff --git a/testing/dmraid/dmraid_tmpfiles b/testing/dmraid/dmraid_tmpfiles new file mode 100644 index 000000000..4f21ac1fc --- /dev/null +++ b/testing/dmraid/dmraid_tmpfiles @@ -0,0 +1 @@ +d /run/lock/dmraid 1777 root root diff --git a/testing/glibc/PKGBUILD b/testing/glibc/PKGBUILD new file mode 100644 index 000000000..bbcbf2f19 --- /dev/null +++ b/testing/glibc/PKGBUILD @@ -0,0 +1,321 @@ +# $Id: PKGBUILD 161273 2012-06-08 12:53:50Z allan $ +# Maintainer: Allan McRae <allan@archlinux.org> + +# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc +# NOTE: valgrind requires rebuilt with each major glibc version + +pkgname=glibc +pkgver=2.15 +pkgrel=11 +_glibcdate=20111227 +pkgdesc="GNU C Library" +arch=('i686' 'x86_64') +url="http://www.gnu.org/software/libc" +license=('GPL' 'LGPL') +groups=('base') +depends=('linux-api-headers>=3.3' 'tzdata') +makedepends=('gcc>=4.6') +backup=(etc/gai.conf + etc/locale.gen + etc/nscd.conf) +options=('!strip') +install=glibc.install +source=(ftp://ftp.archlinux.org/other/glibc/${pkgname}-${pkgver}_${_glibcdate}.tar.xz + glibc-2.15-do-not-install-timezone-files.patch + glibc-2.15-do-not-install-timezone-files-2.patch + glibc-__i686.patch + glibc-2.14-libdl-crash.patch + glibc-2.14-reexport-rpc-interface.patch + glibc-2.14-reinstall-nis-rpc-headers.patch + glibc-2.15-fix-res_query-assert.patch + glibc-2.15-regex.patch + glibc-2.15-lddebug-scopes.patch + glibc-2.15-revert-c5a0802a.patch + glibc-2.15-scanf.patch + glibc-2.15-ifunc.patch + glibc-2.15-avx.patch + glibc-2.15-strcasecmp-disable-avx.patch + glibc-2.15-gb18030.patch.gz + glibc-2.15-revert-netlink-cache.patch + glibc-2.15-arena.patch + glibc-2.15-negative-result-cache.patch + glibc-2.15-multiarch-x86-strcmp.patch + glibc-2.15-vdso.patch + glibc-2.15-feraiseexcept-plt.patch + glibc-2.15-vfprintf-nargs.patch + glibc-2.15-__libc_res_nquerydomain-out-of-bounds.patch + glibc-2.15-fmtmsg-locking.patch + glibc-2.15-non-signalling-comparisons.patch + glibc-2.15-rintf-rounding.patch + glibc-2.15-nearbyintf-rounding.patch + glibc-2.15-confstr-local-buffer-extent.patch + glibc-2.15-testsuite.patch + nscd + locale.gen.txt + locale-gen) +md5sums=('6ffdf5832192b92f98bdd125317c0dfc' + '7ef69c530a15106de93e4de2df2d393e' + 'b6c619e5cf91829a15ce34dccef676d5' + 'addfddd648a4bf832eb126aba944ebae' + '6970bcfeb3bf88913436d5112d16f588' + 'c5de2a946215d647c8af5432ec4b0da0' + '55febbb72139ac7b65757df085024b83' + '31f415b41197d85d3bbee3d1eecd06a3' + 'b3526cbd5e29773560dba725db99af5a' + '3c219ddfb619b6df903cac4cc42c611d' + '7ae3e426251ae33e73dbad71f9c91378' + 'f0782ddbf38e0b30ec6b85348816046f' + '3d844b53b2dbb7c996e39c7ad932f55d' + '41ae047ac88e8f6f547c70b0a0bc3b72' + 'fccb89f6628f59752278e125c35941f8' + '001a4044ac3d59aca6ee144eaca57ab2' + '94b61302a7ca6c5764d013dc7738fcfe' + 'a9ffadcfd2d357f91fee0b861fd4a7c6' + '2c46b8e294de24c531f2253ff69aeef3' + '7a2998a04ebfcf8bf820540f490ce714' + '0d77d20fa7fe2f87ad945cb9edb4d91d' + 'bfdefac3d705f41fbf84b1de1dc945af' + '3443e89c1e98089cd6c3e3c23f0c3d85' + '340deaa582a95ddde86edb624c3bfea0' + '6bbac50e6ff82187654e6a0a7bd849e7' + 'c483504cf404ed0b44480af627813a97' + '1419d61fd1dbc6cdc48bb59da86fa66f' + '7ff501435078b1a2622124fbeaafc921' + '8d1023a51e0932681b46440d5f8551ee' + '6962c3fa29306bfbf6f0d22b19cb825d' + 'b587ee3a70c9b3713099295609afde49' + '07ac979b6ab5eeb778d55f041529d623' + '476e9113489f93b348b21e144b6a8fcf') + +mksource() { + git clone git://sourceware.org/git/glibc.git + pushd glibc + #git checkout -b glibc-2.15-arch origin/release/2.15/master + git checkout -b glibc-2.15-arch origin/master + popd + tar -cvJf glibc-${pkgver}_${_glibcdate}.tar.xz glibc/* +} + + +build() { + cd ${srcdir}/glibc + + # timezone data is in separate package (tzdata) + # http://sourceware.org/git/?p=glibc.git;a=commit;h=482ff4da + patch -p1 -i ${srcdir}/glibc-2.15-do-not-install-timezone-files.patch + # http://sourceware.org/git/?p=glibc.git;a=commit;h=a458e7fe + patch -p1 -i ${srcdir}/glibc-2.15-do-not-install-timezone-files-2.patch + + # undefine __i686 + # http://sourceware.org/glibc/wiki/Release/2.15#Build_Failures + patch -p1 -i ${srcdir}/glibc-__i686.patch + + # http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=675155e9 (fedora branch) + # http://sourceware.org/ml/libc-alpha/2011-06/msg00006.html + patch -p1 -i ${srcdir}/glibc-2.14-libdl-crash.patch + + # re-export RPC interface until libtirpc is ready as a replacement + # http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=acee4873 (fedora branch) + patch -p1 -i ${srcdir}/glibc-2.14-reexport-rpc-interface.patch + # http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=bdd816a3 (fedora branch) + patch -p1 -i ${srcdir}/glibc-2.14-reinstall-nis-rpc-headers.patch + + # fix res_query assertion + # http://sourceware.org/bugzilla/show_bug.cgi?id=13013 + patch -p1 -i ${srcdir}/glibc-2.15-fix-res_query-assert.patch + + # fix up regcomp/regexec + # http://sourceware.org/git/?p=glibc.git;a=commit;h=2ba92745 + patch -p1 -i ${srcdir}/glibc-2.15-regex.patch + + # propriety nvidia crash - https://bugzilla.redhat.com/show_bug.cgi?id=737223 + # http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=0c95ab64 (fedora branch) + patch -p1 -i ${srcdir}/glibc-2.15-lddebug-scopes.patch + + # revert commit c5a0802a - causes various hangs + # https://bugzilla.redhat.com/show_bug.cgi?id=769421 + # Note: fedora may have actual fix (not submitted upstream yet...) + # http://pkgs.fedoraproject.org/gitweb/?p=glibc.git;a=blob_plain;f=glibc-rh552960-2.patch + patch -p1 -i ${srcdir}/glibc-2.15-revert-c5a0802a.patch + + # fix realloc usage in vfscanf + # http://sourceware.org/git/?p=glibc.git;a=commit;h=20b38e03 + patch -p1 -i ${srcdir}/glibc-2.15-scanf.patch + + # fix ifunc relocations + # http://sourceware.org/git/?p=glibc.git;a=commit;h=6ee65ed6 + patch -p1 -i ${srcdir}/glibc-2.15-ifunc.patch + + # fix AVX detection + # http://sourceware.org/git/?p=glibc.git;a=commit;h=afc5ed09 + # http://sourceware.org/git/?p=glibc.git;a=commit;h=08cf777f + patch -p1 -i ${srcdir}/glibc-2.15-avx.patch + # and "fix" strcasecmp + patch -p1 -i ${srcdir}/glibc-2.15-strcasecmp-disable-avx.patch + + # fix GB18030 charmap + # http://sourceware.org/bugzilla/show_bug.cgi?id=11837 + # http://sourceware.org/git/?p=glibc.git;a=commit;h=2a57bd79 (fedora branch) + # http://sourceware.org/git/?p=glibc.git;a=commit;h=3d828a61 (fedora branch) + patch -p1 -i ${srcdir}/glibc-2.15-gb18030.patch + + # fix crash in __nscd_get_mapping if nscd not running + # http://sourceware.org/bugzilla/show_bug.cgi?id=13594 (potential fix in comment) + # reverts commit 3a2c0242 and other necessary following changes... + patch -p1 -i ${srcdir}/glibc-2.15-revert-netlink-cache.patch + + # handle ARENA_TEST correctly + # http://sourceware.org/git/?p=glibc.git;a=commit;h=41b81892 + patch -p1 -i ${srcdir}/glibc-2.15-arena.patch + + # Do not cache negative results in nscd if these are transient + # http://sourceware.org/git/?p=glibc.git;a=commit;h=3e1aa84e + patch -p1 -i ${srcdir}/glibc-2.15-negative-result-cache.patch + + # strcasecmp_l, strncasecmp_l act as strcmp for multiarch x86 + # http://sourceware.org/git/?p=glibc.git;a=commit;h=0bab47b6 + patch -p1 -i ${srcdir}/glibc-2.15-multiarch-x86-strcmp.patch + + # always set l_used for vDSO. + # http://sourceware.org/git/?p=glibc.git;a=commit;h=1f393a11 + patch -p1 -i ${srcdir}/glibc-2.15-vdso.patch + + # fix x86 PLT slot usage for feraiseexcept + # http://sourceware.org/git/?p=glibc.git;a=commit;h=7c35ffed + patch -p1 -i ${srcdir}/glibc-2.15-feraiseexcept-plt.patch + + # vfprintf nargs overflow - CVE-2012-0864 + # http://sourceware.org/git/?p=glibc.git;a=commit;h=7c1f4834 + patch -p1 -i ${srcdir}/glibc-2.15-vfprintf-nargs.patch + + # avoid out ouf bounds read in __libc_res_nquerydomain + # http://sourceware.org/git/?p=glibc.git;a=commit;h=8fdceb2e + patch -p1 -i ${srcdir}/glibc-2.15-__libc_res_nquerydomain-out-of-bounds.patch + + # make fmtmsg function thread-safe + # http://sourceware.org/git/?p=glibc.git;a=commit;h=7724defc + patch -p1 -i ${srcdir}/glibc-2.15-fmtmsg-locking.patch + + # use non-signaling floating-point comparisons in math functions + # http://sourceware.org/git/?p=glibc.git;a=commit;h=92221550 + patch -p1 -i ${srcdir}/glibc-2.15-non-signalling-comparisons.patch + + # fix rintf rounding. + # http://sourceware.org/git/?p=glibc.git;a=commit;h=fe45ce09 + patch -p1 -i ${srcdir}/glibc-2.15-rintf-rounding.patch + + # fix nearbyintf rounding + # http://sourceware.org/git/?p=glibc.git;a=commit;h=6cbeae47 + patch -p1 -i ${srcdir}/glibc-2.15-nearbyintf-rounding.patch + + # fix varaible scope issue in confstr + # http://sourceware.org/git/?p=glibc.git;a=commit;h=ac4c54f0 + # http://sourceware.org/git/?p=glibc.git;a=commit;h=d6a403f9 + patch -p1 -i ${srcdir}/glibc-2.15-confstr-local-buffer-extent.patch + + # fix testsuite failures with --as-needed + # http://sourceware.org/git/?p=glibc.git;a=commit;h=d4c2917f + patch -p1 -i ${srcdir}/glibc-2.15-testsuite.patch + + install -dm755 ${pkgdir}/etc + touch ${pkgdir}/etc/ld.so.conf + + cd ${srcdir} + mkdir glibc-build + cd glibc-build + + if [[ ${CARCH} = "i686" ]]; then + # Hack to fix NPTL issues with Xen, only required on 32bit platforms + # TODO: make separate glibc-xen package for i686 + export CFLAGS="${CFLAGS} -mno-tls-direct-seg-refs" + fi + + echo "slibdir=/lib" >> configparms + + # remove hardening options from CFLAGS for building libraries + CFLAGS=${CFLAGS/-fstack-protector/} + CFLAGS=${CFLAGS/-D_FORTIFY_SOURCE=2/} + + ${srcdir}/glibc/configure --prefix=/usr \ + --libdir=/usr/lib --libexecdir=/usr/lib \ + --with-headers=/usr/include \ + --enable-add-ons=nptl,libidn \ + --enable-kernel=2.6.32 \ + --enable-bind-now --disable-profile \ + --enable-multi-arch + + # build libraries with hardening disabled + echo "build-programs=no" >> configparms + make + + # re-enable hardening for programs + sed -i "/build-programs=/s#no#yes#" configparms + echo "CC += -fstack-protector -D_FORTIFY_SOURCE=2" >> configparms + echo "CXX += -fstack-protector -D_FORTIFY_SOURCE=2" >> configparms + make + + # remove harding in preparation to run test-suite + sed -i '2,4d' configparms +} + +check() { + cd ${srcdir}/glibc-build + make -k check +} + +package() { + cd ${srcdir}/glibc-build + make install_root=${pkgdir} install + + rm -f ${pkgdir}/etc/ld.so.{cache,conf} + + install -dm755 ${pkgdir}/etc/rc.d + install -dm755 ${pkgdir}/usr/sbin + install -dm755 ${pkgdir}/usr/lib/locale + install -m644 ${srcdir}/glibc/nscd/nscd.conf ${pkgdir}/etc/nscd.conf + install -m755 ${srcdir}/nscd ${pkgdir}/etc/rc.d/nscd + install -m755 ${srcdir}/locale-gen ${pkgdir}/usr/sbin + install -m644 ${srcdir}/glibc/posix/gai.conf ${pkgdir}/etc/gai.conf + + sed -i -e 's/^\tserver-user/#\tserver-user/' ${pkgdir}/etc/nscd.conf + + # create /etc/locale.gen + install -m644 ${srcdir}/locale.gen.txt ${pkgdir}/etc/locale.gen + sed -i "s|/| |g" ${srcdir}/glibc/localedata/SUPPORTED + sed -i 's|\\| |g' ${srcdir}/glibc/localedata/SUPPORTED + sed -i "s|SUPPORTED-LOCALES=||" ${srcdir}/glibc/localedata/SUPPORTED + cat ${srcdir}/glibc/localedata/SUPPORTED >> ${pkgdir}/etc/locale.gen + sed -i "s|^|#|g" ${pkgdir}/etc/locale.gen + + if [[ ${CARCH} = "x86_64" ]]; then + # fix for the linker + sed -i '/RTLDLIST/s%lib64%lib%' ${pkgdir}/usr/bin/ldd + # Comply with multilib binaries, they look for the linker in /lib64 + mkdir ${pkgdir}/lib64 + cd ${pkgdir}/lib64 + ln -v -s ../lib/ld* . + fi + + # Do not strip the following files for improved debugging support + # ("improved" as in not breaking gdb and valgrind...): + # ld-${pkgver}.so + # libc-${pkgver}.so + # libpthread-${pkgver}.so + # libthread_db-1.0.so + + cd $pkgdir + strip $STRIP_BINARIES sbin/{ldconfig,sln} \ + usr/bin/{gencat,getconf,getent,iconv,locale,localedef} \ + usr/bin/{makedb,pcprofiledump,pldd,rpcgen,sprof} \ + usr/lib/getconf/* \ + usr/sbin/{iconvconfig,nscd} + [[ $CARCH = "i686" ]] && strip $STRIP_BINARIES usr/bin/lddlibc4 + + strip $STRIP_STATIC usr/lib/*.a + + strip $STRIP_SHARED lib/{libanl,libBrokenLocale,libcidn,libcrypt}-${pkgver}.so \ + lib/libnss_{compat,db,dns,files,hesiod,nis,nisplus}-${pkgver}.so \ + lib/{libdl,libm,libnsl,libresolv,librt,libutil}-${pkgver}.so \ + lib/{libmemusage,libpcprofile,libSegFault}.so \ + usr/lib/{pt_chown,{audit,gconv}/*.so} +} diff --git a/testing/glibc/glibc-2.14-libdl-crash.patch b/testing/glibc/glibc-2.14-libdl-crash.patch new file mode 100644 index 000000000..6c9d2718e --- /dev/null +++ b/testing/glibc/glibc-2.14-libdl-crash.patch @@ -0,0 +1,132 @@ +diff --git a/elf/dl-close.c b/elf/dl-close.c +index 73b2a2f..9bd91e3 100644 +--- a/elf/dl-close.c ++++ b/elf/dl-close.c +@@ -1,5 +1,5 @@ + /* Close a shared object opened by `_dl_open'. +- Copyright (C) 1996-2007, 2009, 2010, 2011 Free Software Foundation, Inc. ++ Copyright (C) 1996-2007, 2009, 2010 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 +@@ -119,17 +119,8 @@ _dl_close_worker (struct link_map *map) + if (map->l_direct_opencount > 0 || map->l_type != lt_loaded + || dl_close_state != not_pending) + { +- if (map->l_direct_opencount == 0) +- { +- if (map->l_type == lt_loaded) +- dl_close_state = rerun; +- else if (map->l_type == lt_library) +- { +- struct link_map **oldp = map->l_initfini; +- map->l_initfini = map->l_orig_initfini; +- _dl_scope_free (oldp); +- } +- } ++ if (map->l_direct_opencount == 0 && map->l_type == lt_loaded) ++ dl_close_state = rerun; + + /* There are still references to this object. Do nothing more. */ + if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_FILES, 0)) +diff --git a/elf/dl-deps.c b/elf/dl-deps.c +index 9e30594..3890d00 100644 +--- a/elf/dl-deps.c ++++ b/elf/dl-deps.c +@@ -478,6 +478,7 @@ _dl_map_object_deps (struct link_map *map, + nneeded * sizeof needed[0]); + atomic_write_barrier (); + l->l_initfini = l_initfini; ++ l->l_free_initfini = 1; + } + + /* If we have no auxiliary objects just go on to the next map. */ +@@ -681,6 +682,7 @@ Filters not supported with LD_TRACE_PRELINKING")); + l_initfini[nlist] = NULL; + atomic_write_barrier (); + map->l_initfini = l_initfini; ++ map->l_free_initfini = 1; + if (l_reldeps != NULL) + { + atomic_write_barrier (); +@@ -689,5 +691,5 @@ Filters not supported with LD_TRACE_PRELINKING")); + _dl_scope_free (old_l_reldeps); + } + if (old_l_initfini != NULL) +- map->l_orig_initfini = old_l_initfini; ++ _dl_scope_free (old_l_initfini); + +diff --git a/elf/dl-libc.c b/elf/dl-libc.c +index 7be9483..a13fce3 100644 +--- a/elf/dl-libc.c ++++ b/elf/dl-libc.c +@@ -265,13 +265,13 @@ libc_freeres_fn (free_mem) + + for (Lmid_t ns = 0; ns < GL(dl_nns); ++ns) + { +- /* Remove all additional names added to the objects. */ + for (l = GL(dl_ns)[ns]._ns_loaded; l != NULL; l = l->l_next) + { + struct libname_list *lnp = l->l_libname->next; + + l->l_libname->next = NULL; + ++ /* Remove all additional names added to the objects. */ + while (lnp != NULL) + { + struct libname_list *old = lnp; +@@ -279,6 +279,10 @@ libc_freeres_fn (free_mem) + if (! old->dont_free) + free (old); + } ++ ++ /* Free the initfini dependency list. */ ++ if (l->l_free_initfini) ++ free (l->l_initfini); + } + + if (__builtin_expect (GL(dl_ns)[ns]._ns_global_scope_alloc, 0) != 0 +diff --git a/elf/rtld.c b/elf/rtld.c +index 4a9109e..617e30e 100644 +--- a/elf/rtld.c ++++ b/elf/rtld.c +@@ -2251,6 +2251,7 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n", + lnp->dont_free = 1; + lnp = lnp->next; + } ++ l->l_free_initfini = 0; + + if (l != &GL(dl_rtld_map)) + _dl_relocate_object (l, l->l_scope, GLRO(dl_lazy) ? RTLD_LAZY : 0, +diff --git a/include/link.h b/include/link.h +index e877104..051b99a 100644 +--- a/include/link.h ++++ b/include/link.h +@@ -1,6 +1,6 @@ + /* Data structure for communication from the run-time dynamic linker for + loaded ELF shared objects. +- Copyright (C) 1995-2006, 2007, 2009, 2010, 2011 Free Software Foundation, Inc. ++ Copyright (C) 1995-2006, 2007, 2009, 2010 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 +@@ -192,6 +192,9 @@ struct link_map + during LD_TRACE_PRELINKING=1 + contains any DT_SYMBOLIC + libraries. */ ++ unsigned int l_free_initfini:1; /* Nonzero if l_initfini can be ++ freed, ie. not allocated with ++ the dummy malloc in ld.so. */ + + /* Collected information about own RPATH directories. */ + struct r_search_path_struct l_rpath_dirs; +@@ -240,9 +243,6 @@ struct link_map + + /* List of object in order of the init and fini calls. */ + struct link_map **l_initfini; +- /* The init and fini list generated at startup, saved when the +- object is also loaded dynamically. */ +- struct link_map **l_orig_initfini; + + /* List of the dependencies introduced through symbol binding. */ + struct link_map_reldeps diff --git a/testing/glibc/glibc-2.14-reexport-rpc-interface.patch b/testing/glibc/glibc-2.14-reexport-rpc-interface.patch new file mode 100644 index 000000000..e2beea881 --- /dev/null +++ b/testing/glibc/glibc-2.14-reexport-rpc-interface.patch @@ -0,0 +1,26 @@ +diff --git a/include/libc-symbols.h b/include/libc-symbols.h +index 67e1ca2..5e7cca5 100644 +--- a/include/libc-symbols.h ++++ b/include/libc-symbols.h +@@ -635,7 +635,7 @@ for linking") + # define libc_hidden_proto(name, attrs...) hidden_proto (name, ##attrs) + # define libc_hidden_def(name) hidden_def (name) + # define libc_hidden_weak(name) hidden_weak (name) +-# define libc_hidden_nolink(name, version) hidden_nolink (name, libc, version) ++# define libc_hidden_nolink(name, version) hidden_def (name) + # define libc_hidden_ver(local, name) hidden_ver (local, name) + # define libc_hidden_data_def(name) hidden_data_def (name) + # define libc_hidden_data_weak(name) hidden_data_weak (name) +diff --git a/sunrpc/Makefile b/sunrpc/Makefile +index 5134ce9..40c73d1 100644 +--- a/sunrpc/Makefile ++++ b/sunrpc/Makefile +@@ -53,7 +53,7 @@ headers-in-tirpc = $(addprefix rpc/,auth.h auth_unix.h clnt.h pmap_clnt.h \ + des_crypt.h) + headers-not-in-tirpc = $(addprefix rpc/,key_prot.h rpc_des.h) \ + $(rpcsvc:%=rpcsvc/%) rpcsvc/bootparam.h +-headers = rpc/netdb.h ++headers = rpc/netdb.h $(headers-in-tirpc) $(headers-not-in-tirpc) + install-others = $(inst_sysconfdir)/rpc + generated = $(rpcsvc:%.x=rpcsvc/%.h) $(rpcsvc:%.x=x%.c) $(rpcsvc:%.x=x%.stmp) \ + $(rpcsvc:%.x=rpcsvc/%.stmp) rpcgen diff --git a/testing/glibc/glibc-2.14-reinstall-nis-rpc-headers.patch b/testing/glibc/glibc-2.14-reinstall-nis-rpc-headers.patch new file mode 100644 index 000000000..eb0fd822d --- /dev/null +++ b/testing/glibc/glibc-2.14-reinstall-nis-rpc-headers.patch @@ -0,0 +1,28 @@ +From bdd816a366c4e5bba5de7157d948e0c0737fb4fb Mon Sep 17 00:00:00 2001 +From: Andreas Schwab <schwab@redhat.com> +Date: Tue, 17 May 2011 17:42:30 +0200 +Subject: [PATCH] Reinstall NIS RPC headers + +--- + nis/Makefile | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/nis/Makefile b/nis/Makefile +index b5c9609..d2934d9 100644 +--- a/nis/Makefile ++++ b/nis/Makefile +@@ -23,9 +23,9 @@ subdir := nis + + aux := nis_hash + ++headers := $(wildcard rpcsvc/*.[hx]) + distribute := nss-nis.h nss-nisplus.h nis_intern.h Banner \ +- nisplus-parser.h nis_xdr.h nss \ +- $(wildcard rpcsvc/*.[hx]) ++ nisplus-parser.h nis_xdr.h nss + + # These are the databases available for the nis (and perhaps later nisplus) + # service. This must be a superset of the services in nss. +-- +1.7.5.4 + diff --git a/testing/glibc/glibc-2.15-__libc_res_nquerydomain-out-of-bounds.patch b/testing/glibc/glibc-2.15-__libc_res_nquerydomain-out-of-bounds.patch new file mode 100644 index 000000000..6f0a0398f --- /dev/null +++ b/testing/glibc/glibc-2.15-__libc_res_nquerydomain-out-of-bounds.patch @@ -0,0 +1,24 @@ +diff --git a/resolv/res_query.c b/resolv/res_query.c +index 947c651..abccd4a 100644 +--- a/resolv/res_query.c ++++ b/resolv/res_query.c +@@ -556,12 +556,16 @@ __libc_res_nquerydomain(res_state statp, + * copy without '.' if present. + */ + n = strlen(name); +- if (n >= MAXDNAME) { ++ ++ /* Decrement N prior to checking it against MAXDNAME ++ so that we detect a wrap to SIZE_MAX and return ++ a reasonable error. */ ++ n--; ++ if (n >= MAXDNAME - 1) { + RES_SET_H_ERRNO(statp, NO_RECOVERY); + return (-1); + } +- n--; +- if (n >= 0 && name[n] == '.') { ++ if (name[n] == '.') { + strncpy(nbuf, name, n); + nbuf[n] = '\0'; + } else diff --git a/testing/glibc/glibc-2.15-arena.patch b/testing/glibc/glibc-2.15-arena.patch new file mode 100644 index 000000000..46f52e98d --- /dev/null +++ b/testing/glibc/glibc-2.15-arena.patch @@ -0,0 +1,29 @@ +diff --git a/malloc/arena.c b/malloc/arena.c +index d3cf4b9..b1c9469 100644 +--- a/malloc/arena.c ++++ b/malloc/arena.c +@@ -828,7 +828,7 @@ arena_get2(mstate a_tsd, size_t size) + { + if (mp_.arena_max != 0) + narenas_limit = mp_.arena_max; +- else ++ else if (narenas > mp_.arena_test) + { + int n = __get_nprocs (); + +@@ -842,7 +842,14 @@ arena_get2(mstate a_tsd, size_t size) + } + repeat:; + size_t n = narenas; +- if (__builtin_expect (n <= mp_.arena_test || n < narenas_limit, 0)) ++ /* NB: the following depends on the fact that (size_t)0 - 1 is a ++ very large number and that the underflow is OK. If arena_max ++ is set the value of arena_test is irrelevant. If arena_test ++ is set but narenas is not yet larger or equal to arena_test ++ narenas_limit is 0. There is no possibility for narenas to ++ be too big for the test to always fail since there is not ++ enough address space to create that many arenas. */ ++ if (__builtin_expect (n <= narenas_limit - 1, 0)) + { + if (catomic_compare_and_exchange_bool_acq (&narenas, n + 1, n)) + goto repeat; diff --git a/testing/glibc/glibc-2.15-avx.patch b/testing/glibc/glibc-2.15-avx.patch new file mode 100644 index 000000000..5439da8d0 --- /dev/null +++ b/testing/glibc/glibc-2.15-avx.patch @@ -0,0 +1,196 @@ +diff --git a/sysdeps/x86_64/fpu/multiarch/e_atan2.c b/sysdeps/x86_64/fpu/multiarch/e_atan2.c +index 6867c6e..3a615fc 100644 +--- a/sysdeps/x86_64/fpu/multiarch/e_atan2.c ++++ b/sysdeps/x86_64/fpu/multiarch/e_atan2.c +@@ -14,7 +14,7 @@ extern double __ieee754_atan2_fma4 (double, double); + + libm_ifunc (__ieee754_atan2, + HAS_FMA4 ? __ieee754_atan2_fma4 +- : (HAS_AVX ? __ieee754_atan2_avx : __ieee754_atan2_sse2)); ++ : (HAS_YMM_USABLE ? __ieee754_atan2_avx : __ieee754_atan2_sse2)); + strong_alias (__ieee754_atan2, __atan2_finite) + + # define __ieee754_atan2 __ieee754_atan2_sse2 +diff --git a/sysdeps/x86_64/fpu/multiarch/e_exp.c b/sysdeps/x86_64/fpu/multiarch/e_exp.c +index 3c65028..7b2320a 100644 +--- a/sysdeps/x86_64/fpu/multiarch/e_exp.c ++++ b/sysdeps/x86_64/fpu/multiarch/e_exp.c +@@ -14,7 +14,7 @@ extern double __ieee754_exp_fma4 (double); + + libm_ifunc (__ieee754_exp, + HAS_FMA4 ? __ieee754_exp_fma4 +- : (HAS_AVX ? __ieee754_exp_avx : __ieee754_exp_sse2)); ++ : (HAS_YMM_USABLE ? __ieee754_exp_avx : __ieee754_exp_sse2)); + strong_alias (__ieee754_exp, __exp_finite) + + # define __ieee754_exp __ieee754_exp_sse2 +diff --git a/sysdeps/x86_64/fpu/multiarch/e_log.c b/sysdeps/x86_64/fpu/multiarch/e_log.c +index 3b468d0..ab277d6 100644 +--- a/sysdeps/x86_64/fpu/multiarch/e_log.c ++++ b/sysdeps/x86_64/fpu/multiarch/e_log.c +@@ -14,7 +14,7 @@ extern double __ieee754_log_fma4 (double); + + libm_ifunc (__ieee754_log, + HAS_FMA4 ? __ieee754_log_fma4 +- : (HAS_AVX ? __ieee754_log_avx ++ : (HAS_YMM_USABLE ? __ieee754_log_avx + : __ieee754_log_sse2)); + strong_alias (__ieee754_log, __log_finite) + +diff --git a/sysdeps/x86_64/fpu/multiarch/s_atan.c b/sysdeps/x86_64/fpu/multiarch/s_atan.c +index 3160201..78c7e09 100644 +--- a/sysdeps/x86_64/fpu/multiarch/s_atan.c ++++ b/sysdeps/x86_64/fpu/multiarch/s_atan.c +@@ -12,7 +12,8 @@ extern double __atan_fma4 (double); + # define __atan_fma4 ((void *) 0) + # endif + +-libm_ifunc (atan, HAS_FMA4 ? __atan_fma4 : HAS_AVX ? __atan_avx : __atan_sse2); ++libm_ifunc (atan, (HAS_FMA4 ? __atan_fma4 : ++ HAS_YMM_USABLE ? __atan_avx : __atan_sse2)); + + # define atan __atan_sse2 + #endif +diff --git a/sysdeps/x86_64/fpu/multiarch/s_sin.c b/sysdeps/x86_64/fpu/multiarch/s_sin.c +index 1ba9dbc..417acd0 100644 +--- a/sysdeps/x86_64/fpu/multiarch/s_sin.c ++++ b/sysdeps/x86_64/fpu/multiarch/s_sin.c +@@ -17,10 +17,12 @@ extern double __sin_fma4 (double); + # define __sin_fma4 ((void *) 0) + # endif + +-libm_ifunc (__cos, HAS_FMA4 ? __cos_fma4 : HAS_AVX ? __cos_avx : __cos_sse2); ++libm_ifunc (__cos, (HAS_FMA4 ? __cos_fma4 : ++ HAS_YMM_USABLE ? __cos_avx : __cos_sse2)); + weak_alias (__cos, cos) + +-libm_ifunc (__sin, HAS_FMA4 ? __sin_fma4 : HAS_AVX ? __sin_avx : __sin_sse2); ++libm_ifunc (__sin, (HAS_FMA4 ? __sin_fma4 : ++ HAS_YMM_USABLE ? __sin_avx : __sin_sse2)); + weak_alias (__sin, sin) + + # define __cos __cos_sse2 +diff --git a/sysdeps/x86_64/fpu/multiarch/s_tan.c b/sysdeps/x86_64/fpu/multiarch/s_tan.c +index 8f6601e..3047155 100644 +--- a/sysdeps/x86_64/fpu/multiarch/s_tan.c ++++ b/sysdeps/x86_64/fpu/multiarch/s_tan.c +@@ -12,7 +12,8 @@ extern double __tan_fma4 (double); + # define __tan_fma4 ((void *) 0) + # endif + +-libm_ifunc (tan, HAS_FMA4 ? __tan_fma4 : HAS_AVX ? __tan_avx : __tan_sse2); ++libm_ifunc (tan, (HAS_FMA4 ? __tan_fma4 : ++ HAS_YMM_USABLE ? __tan_avx : __tan_sse2)); + + # define tan __tan_sse2 + #endif +diff --git a/sysdeps/x86_64/multiarch/init-arch.c b/sysdeps/x86_64/multiarch/init-arch.c +index 65b0ee9..76d146c 100644 +--- a/sysdeps/x86_64/multiarch/init-arch.c ++++ b/sysdeps/x86_64/multiarch/init-arch.c +@@ -1,6 +1,6 @@ + /* Initialize CPU feature data. + This file is part of the GNU C Library. +- Copyright (C) 2008, 2009, 2010, 2011 Free Software Foundation, Inc. ++ Copyright (C) 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. + Contributed by Ulrich Drepper <drepper@redhat.com>. + + The GNU C Library is free software; you can redistribute it and/or +@@ -144,6 +144,18 @@ __init_cpu_features (void) + else + kind = arch_kind_other; + ++ if (__cpu_features.cpuid[COMMON_CPUID_INDEX_1].ecx & bit_AVX) ++ { ++ /* Reset the AVX bit in case OSXSAVE is disabled. */ ++ if ((__cpu_features.cpuid[COMMON_CPUID_INDEX_1].ecx & bit_OSXSAVE) != 0 ++ && ({ unsigned int xcrlow; ++ unsigned int xcrhigh; ++ asm ("xgetbv" ++ : "=a" (xcrlow), "=d" (xcrhigh) : "c" (0)); ++ (xcrlow & 6) == 6; })) ++ __cpu_features.feature[index_YMM_Usable] |= bit_YMM_Usable; ++ } ++ + __cpu_features.family = family; + __cpu_features.model = model; + atomic_write_barrier (); +diff --git a/sysdeps/x86_64/multiarch/init-arch.h b/sysdeps/x86_64/multiarch/init-arch.h +index 2a1df39..2dc75ab 100644 +--- a/sysdeps/x86_64/multiarch/init-arch.h ++++ b/sysdeps/x86_64/multiarch/init-arch.h +@@ -1,5 +1,5 @@ + /* This file is part of the GNU C Library. +- Copyright (C) 2008, 2009, 2010, 2011 Free Software Foundation, Inc. ++ Copyright (C) 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public +@@ -22,11 +22,13 @@ + #define bit_Prefer_SSE_for_memop (1 << 3) + #define bit_Fast_Unaligned_Load (1 << 4) + #define bit_Prefer_PMINUB_for_stringop (1 << 5) ++#define bit_YMM_Usable (1 << 6) + + #define bit_SSE2 (1 << 26) + #define bit_SSSE3 (1 << 9) + #define bit_SSE4_1 (1 << 19) + #define bit_SSE4_2 (1 << 20) ++#define bit_OSXSAVE (1 << 27) + #define bit_AVX (1 << 28) + #define bit_POPCOUNT (1 << 23) + #define bit_FMA (1 << 12) +@@ -48,6 +50,7 @@ + # define index_Prefer_SSE_for_memop FEATURE_INDEX_1*FEATURE_SIZE + # define index_Fast_Unaligned_Load FEATURE_INDEX_1*FEATURE_SIZE + # define index_Prefer_PMINUB_for_stringop FEATURE_INDEX_1*FEATURE_SIZE ++# define index_YMM_Usable FEATURE_INDEX_1*FEATURE_SIZE + + #else /* __ASSEMBLER__ */ + +@@ -92,7 +95,7 @@ extern struct cpu_features + + + extern void __init_cpu_features (void) attribute_hidden; +-#define INIT_ARCH()\ ++# define INIT_ARCH() \ + do \ + if (__cpu_features.kind == arch_kind_unknown) \ + __init_cpu_features (); \ +@@ -125,23 +128,21 @@ extern const struct cpu_features *__get_cpu_features (void) + # define index_Slow_BSF FEATURE_INDEX_1 + # define index_Prefer_SSE_for_memop FEATURE_INDEX_1 + # define index_Fast_Unaligned_Load FEATURE_INDEX_1 ++# define index_YMM_Usable FEATURE_INDEX_1 + +-#define HAS_ARCH_FEATURE(idx, bit) \ +- ((__get_cpu_features ()->feature[idx] & (bit)) != 0) ++# define HAS_ARCH_FEATURE(name) \ ++ ((__get_cpu_features ()->feature[index_##name] & (bit_##name)) != 0) + +-#define HAS_FAST_REP_STRING \ +- HAS_ARCH_FEATURE (index_Fast_Rep_String, bit_Fast_Rep_String) ++# define HAS_FAST_REP_STRING HAS_ARCH_FEATURE (Fast_Rep_String) + +-#define HAS_FAST_COPY_BACKWARD \ +- HAS_ARCH_FEATURE (index_Fast_Copy_Backward, bit_Fast_Copy_Backward) ++# define HAS_FAST_COPY_BACKWARD HAS_ARCH_FEATURE (Fast_Copy_Backward) + +-#define HAS_SLOW_BSF \ +- HAS_ARCH_FEATURE (index_Slow_BSF, bit_Slow_BSF) ++# define HAS_SLOW_BSF HAS_ARCH_FEATURE (Slow_BSF) + +-#define HAS_PREFER_SSE_FOR_MEMOP \ +- HAS_ARCH_FEATURE (index_Prefer_SSE_for_memop, bit_Prefer_SSE_for_memop) ++# define HAS_PREFER_SSE_FOR_MEMOP HAS_ARCH_FEATURE (Prefer_SSE_for_memop) + +-#define HAS_FAST_UNALIGNED_LOAD \ +- HAS_ARCH_FEATURE (index_Fast_Unaligned_Load, bit_Fast_Unaligned_Load) ++# define HAS_FAST_UNALIGNED_LOAD HAS_ARCH_FEATURE (Fast_Unaligned_Load) ++ ++# define HAS_YMM_USABLE HAS_ARCH_FEATURE (YMM_Usable) + + #endif /* __ASSEMBLER__ */ +-- +1.7.9 + diff --git a/testing/glibc/glibc-2.15-confstr-local-buffer-extent.patch b/testing/glibc/glibc-2.15-confstr-local-buffer-extent.patch new file mode 100644 index 000000000..483b28532 --- /dev/null +++ b/testing/glibc/glibc-2.15-confstr-local-buffer-extent.patch @@ -0,0 +1,297 @@ +diff --git a/posix/confstr.c b/posix/confstr.c +index 3c9566d..cad6561 100644 +--- a/posix/confstr.c ++++ b/posix/confstr.c +@@ -35,6 +34,10 @@ confstr (name, buf, len) + const char *string = ""; + size_t string_len = 1; + ++ /* Note that this buffer must be large enough for the longest strings ++ used below. */ ++ char restenvs[4 * sizeof "POSIX_V7_LPBIG_OFFBIG"]; ++ + switch (name) + { + case _CS_PATH: +@@ -53,59 +56,55 @@ confstr (name, buf, len) + wint_t types are no greater than the width of type long. + + Currently this means all environment which the system allows. */ +- { +- char restenvs[4 * sizeof "POSIX_V7_LPBIG_OFFBIG"]; +- +- string_len = 0; ++ string_len = 0; + #ifndef _POSIX_V7_ILP32_OFF32 +- if (__sysconf (_SC_V7_ILP32_OFF32) > 0) ++ if (__sysconf (_SC_V7_ILP32_OFF32) > 0) + #endif + #if !defined _POSIX_V7_ILP32_OFF32 || _POSIX_V7_ILP32_OFF32 > 0 +- { +- memcpy (restenvs + string_len, "POSIX_V7_ILP32_OFF32", +- sizeof "POSIX_V7_ILP32_OFF32" - 1); +- string_len += sizeof "POSIX_V7_ILP32_OFF32" - 1; +- } ++ { ++ memcpy (restenvs + string_len, "POSIX_V7_ILP32_OFF32", ++ sizeof "POSIX_V7_ILP32_OFF32" - 1); ++ string_len += sizeof "POSIX_V7_ILP32_OFF32" - 1; ++ } + #endif + #ifndef _POSIX_V7_ILP32_OFFBIG +- if (__sysconf (_SC_V7_ILP32_OFFBIG) > 0) ++ if (__sysconf (_SC_V7_ILP32_OFFBIG) > 0) + #endif + #if !defined _POSIX_V7_ILP32_OFFBIG || _POSIX_V7_ILP32_OFFBIG > 0 +- { +- if (string_len) +- restenvs[string_len++] = '\n'; +- memcpy (restenvs + string_len, "POSIX_V7_ILP32_OFFBIG", +- sizeof "POSIX_V7_ILP32_OFFBIG" - 1); +- string_len += sizeof "POSIX_V7_ILP32_OFFBIG" - 1; +- } ++ { ++ if (string_len) ++ restenvs[string_len++] = '\n'; ++ memcpy (restenvs + string_len, "POSIX_V7_ILP32_OFFBIG", ++ sizeof "POSIX_V7_ILP32_OFFBIG" - 1); ++ string_len += sizeof "POSIX_V7_ILP32_OFFBIG" - 1; ++ } + #endif + #ifndef _POSIX_V7_LP64_OFF64 +- if (__sysconf (_SC_V7_LP64_OFF64) > 0) ++ if (__sysconf (_SC_V7_LP64_OFF64) > 0) + #endif + #if !defined _POSIX_V7_LP64_OFF64 || _POSIX_V7_LP64_OFF64 > 0 +- { +- if (string_len) +- restenvs[string_len++] = '\n'; +- memcpy (restenvs + string_len, "POSIX_V7_LP64_OFF64", +- sizeof "POSIX_V7_LP64_OFF64" - 1); +- string_len += sizeof "POSIX_V7_LP64_OFF64" - 1; +- } ++ { ++ if (string_len) ++ restenvs[string_len++] = '\n'; ++ memcpy (restenvs + string_len, "POSIX_V7_LP64_OFF64", ++ sizeof "POSIX_V7_LP64_OFF64" - 1); ++ string_len += sizeof "POSIX_V7_LP64_OFF64" - 1; ++ } + #endif + #ifndef _POSIX_V7_LPBIG_OFFBIG +- if (__sysconf (_SC_V7_LPBIG_OFFBIG) > 0) ++ if (__sysconf (_SC_V7_LPBIG_OFFBIG) > 0) + #endif + #if !defined _POSIX_V7_LPBIG_OFFBIG || _POSIX_V7_LPBIG_OFFBIG > 0 +- { +- if (string_len) +- restenvs[string_len++] = '\n'; +- memcpy (restenvs + string_len, "POSIX_V7_LPBIG_OFFBIG", +- sizeof "POSIX_V7_LPBIG_OFFBIG" - 1); +- string_len += sizeof "POSIX_V7_LPBIG_OFFBIG" - 1; +- } +-#endif +- restenvs[string_len++] = '\0'; +- string = restenvs; +- } ++ { ++ if (string_len) ++ restenvs[string_len++] = '\n'; ++ memcpy (restenvs + string_len, "POSIX_V7_LPBIG_OFFBIG", ++ sizeof "POSIX_V7_LPBIG_OFFBIG" - 1); ++ string_len += sizeof "POSIX_V7_LPBIG_OFFBIG" - 1; ++ } ++#endif ++ restenvs[string_len++] = '\0'; ++ string = restenvs; + break; + + case _CS_V6_WIDTH_RESTRICTED_ENVS: +@@ -116,59 +115,55 @@ confstr (name, buf, len) + wint_t types are no greater than the width of type long. + + Currently this means all environment which the system allows. */ +- { +- char restenvs[4 * sizeof "POSIX_V6_LPBIG_OFFBIG"]; +- +- string_len = 0; ++ string_len = 0; + #ifndef _POSIX_V6_ILP32_OFF32 +- if (__sysconf (_SC_V6_ILP32_OFF32) > 0) ++ if (__sysconf (_SC_V6_ILP32_OFF32) > 0) + #endif + #if !defined _POSIX_V6_ILP32_OFF32 || _POSIX_V6_ILP32_OFF32 > 0 +- { +- memcpy (restenvs + string_len, "POSIX_V6_ILP32_OFF32", +- sizeof "POSIX_V6_ILP32_OFF32" - 1); +- string_len += sizeof "POSIX_V6_ILP32_OFF32" - 1; +- } ++ { ++ memcpy (restenvs + string_len, "POSIX_V6_ILP32_OFF32", ++ sizeof "POSIX_V6_ILP32_OFF32" - 1); ++ string_len += sizeof "POSIX_V6_ILP32_OFF32" - 1; ++ } + #endif + #ifndef _POSIX_V6_ILP32_OFFBIG +- if (__sysconf (_SC_V6_ILP32_OFFBIG) > 0) ++ if (__sysconf (_SC_V6_ILP32_OFFBIG) > 0) + #endif + #if !defined _POSIX_V6_ILP32_OFFBIG || _POSIX_V6_ILP32_OFFBIG > 0 +- { +- if (string_len) +- restenvs[string_len++] = '\n'; +- memcpy (restenvs + string_len, "POSIX_V6_ILP32_OFFBIG", +- sizeof "POSIX_V6_ILP32_OFFBIG" - 1); +- string_len += sizeof "POSIX_V6_ILP32_OFFBIG" - 1; +- } ++ { ++ if (string_len) ++ restenvs[string_len++] = '\n'; ++ memcpy (restenvs + string_len, "POSIX_V6_ILP32_OFFBIG", ++ sizeof "POSIX_V6_ILP32_OFFBIG" - 1); ++ string_len += sizeof "POSIX_V6_ILP32_OFFBIG" - 1; ++ } + #endif + #ifndef _POSIX_V6_LP64_OFF64 +- if (__sysconf (_SC_V6_LP64_OFF64) > 0) ++ if (__sysconf (_SC_V6_LP64_OFF64) > 0) + #endif + #if !defined _POSIX_V6_LP64_OFF64 || _POSIX_V6_LP64_OFF64 > 0 +- { +- if (string_len) +- restenvs[string_len++] = '\n'; +- memcpy (restenvs + string_len, "POSIX_V6_LP64_OFF64", +- sizeof "POSIX_V6_LP64_OFF64" - 1); +- string_len += sizeof "POSIX_V6_LP64_OFF64" - 1; +- } ++ { ++ if (string_len) ++ restenvs[string_len++] = '\n'; ++ memcpy (restenvs + string_len, "POSIX_V6_LP64_OFF64", ++ sizeof "POSIX_V6_LP64_OFF64" - 1); ++ string_len += sizeof "POSIX_V6_LP64_OFF64" - 1; ++ } + #endif + #ifndef _POSIX_V6_LPBIG_OFFBIG +- if (__sysconf (_SC_V6_LPBIG_OFFBIG) > 0) ++ if (__sysconf (_SC_V6_LPBIG_OFFBIG) > 0) + #endif + #if !defined _POSIX_V6_LPBIG_OFFBIG || _POSIX_V6_LPBIG_OFFBIG > 0 +- { +- if (string_len) +- restenvs[string_len++] = '\n'; +- memcpy (restenvs + string_len, "POSIX_V6_LPBIG_OFFBIG", +- sizeof "POSIX_V6_LPBIG_OFFBIG" - 1); +- string_len += sizeof "POSIX_V6_LPBIG_OFFBIG" - 1; +- } +-#endif +- restenvs[string_len++] = '\0'; +- string = restenvs; +- } ++ { ++ if (string_len) ++ restenvs[string_len++] = '\n'; ++ memcpy (restenvs + string_len, "POSIX_V6_LPBIG_OFFBIG", ++ sizeof "POSIX_V6_LPBIG_OFFBIG" - 1); ++ string_len += sizeof "POSIX_V6_LPBIG_OFFBIG" - 1; ++ } ++#endif ++ restenvs[string_len++] = '\0'; ++ string = restenvs; + break; + + case _CS_V5_WIDTH_RESTRICTED_ENVS: +@@ -179,59 +174,55 @@ confstr (name, buf, len) + wint_t types are no greater than the width of type long. + + Currently this means all environment which the system allows. */ +- { +- char restenvs[4 * sizeof "XBS5_LPBIG_OFFBIG"]; +- +- string_len = 0; ++ string_len = 0; + #ifndef _XBS5_ILP32_OFF32 +- if (__sysconf (_SC_XBS5_ILP32_OFF32) > 0) ++ if (__sysconf (_SC_XBS5_ILP32_OFF32) > 0) + #endif + #if !defined _XBS5_ILP32_OFF32 || _XBS5_ILP32_OFF32 > 0 +- { +- memcpy (restenvs + string_len, "XBS5_ILP32_OFF32", +- sizeof "XBS5_ILP32_OFF32" - 1); +- string_len += sizeof "XBS5_ILP32_OFF32" - 1; +- } ++ { ++ memcpy (restenvs + string_len, "XBS5_ILP32_OFF32", ++ sizeof "XBS5_ILP32_OFF32" - 1); ++ string_len += sizeof "XBS5_ILP32_OFF32" - 1; ++ } + #endif + #ifndef _XBS5_ILP32_OFFBIG +- if (__sysconf (_SC_XBS5_ILP32_OFFBIG) > 0) ++ if (__sysconf (_SC_XBS5_ILP32_OFFBIG) > 0) + #endif + #if !defined _XBS5_ILP32_OFFBIG || _XBS5_ILP32_OFFBIG > 0 +- { +- if (string_len) +- restenvs[string_len++] = '\n'; +- memcpy (restenvs + string_len, "XBS5_ILP32_OFFBIG", +- sizeof "XBS5_ILP32_OFFBIG" - 1); +- string_len += sizeof "XBS5_ILP32_OFFBIG" - 1; +- } ++ { ++ if (string_len) ++ restenvs[string_len++] = '\n'; ++ memcpy (restenvs + string_len, "XBS5_ILP32_OFFBIG", ++ sizeof "XBS5_ILP32_OFFBIG" - 1); ++ string_len += sizeof "XBS5_ILP32_OFFBIG" - 1; ++ } + #endif + #ifndef _XBS5_LP64_OFF64 +- if (__sysconf (_SC_XBS5_LP64_OFF64) > 0) ++ if (__sysconf (_SC_XBS5_LP64_OFF64) > 0) + #endif + #if !defined _XBS5_LP64_OFF64 || _XBS5_LP64_OFF64 > 0 +- { +- if (string_len) +- restenvs[string_len++] = '\n'; +- memcpy (restenvs + string_len, "XBS5_LP64_OFF64", +- sizeof "XBS5_LP64_OFF64" - 1); +- string_len += sizeof "XBS5_LP64_OFF64" - 1; +- } ++ { ++ if (string_len) ++ restenvs[string_len++] = '\n'; ++ memcpy (restenvs + string_len, "XBS5_LP64_OFF64", ++ sizeof "XBS5_LP64_OFF64" - 1); ++ string_len += sizeof "XBS5_LP64_OFF64" - 1; ++ } + #endif + #ifndef _XBS5_LPBIG_OFFBIG +- if (__sysconf (_SC_XBS5_LPBIG_OFFBIG) > 0) ++ if (__sysconf (_SC_XBS5_LPBIG_OFFBIG) > 0) + #endif + #if !defined _XBS5_LPBIG_OFFBIG || _XBS5_LPBIG_OFFBIG > 0 +- { +- if (string_len) +- restenvs[string_len++] = '\n'; +- memcpy (restenvs + string_len, "XBS5_LPBIG_OFFBIG", +- sizeof "XBS5_LPBIG_OFFBIG" - 1); +- string_len += sizeof "XBS5_LPBIG_OFFBIG" - 1; +- } +-#endif +- restenvs[string_len++] = '\0'; +- string = restenvs; +- } ++ { ++ if (string_len) ++ restenvs[string_len++] = '\n'; ++ memcpy (restenvs + string_len, "XBS5_LPBIG_OFFBIG", ++ sizeof "XBS5_LPBIG_OFFBIG" - 1); ++ string_len += sizeof "XBS5_LPBIG_OFFBIG" - 1; ++ } ++#endif ++ restenvs[string_len++] = '\0'; ++ string = restenvs; + break; + + case _CS_XBS5_ILP32_OFF32_CFLAGS: diff --git a/testing/glibc/glibc-2.15-do-not-install-timezone-files-2.patch b/testing/glibc/glibc-2.15-do-not-install-timezone-files-2.patch new file mode 100644 index 000000000..d28237f85 --- /dev/null +++ b/testing/glibc/glibc-2.15-do-not-install-timezone-files-2.patch @@ -0,0 +1,20 @@ +diff --git a/timezone/Makefile b/timezone/Makefile +index 00bfba6..9e55a6a 100644 +--- a/timezone/Makefile ++++ b/timezone/Makefile +@@ -45,7 +45,6 @@ include ../Makeconfig # Get objpfx defined so we can use it below. + CPPFLAGS-zic = -DNOT_IN_libc + + ifeq ($(have-ksh),yes) +-install-others += $(inst_zonedir)/iso3166.tab $(inst_zonedir)/zone.tab + install-bin-script = tzselect + generated += tzselect + endif +@@ -111,7 +110,3 @@ $(objpfx)tzselect: tzselect.ksh $(common-objpfx)config.make + -e 's%@TZDIR@%$(zonedir)%g' < $< > $@.new + chmod 555 $@.new + mv -f $@.new $@ +- +-$(addprefix $(inst_zonedir)/,iso3166.tab zone.tab): \ +- $(inst_zonedir)/%: % $(+force) +- $(do-install) diff --git a/testing/glibc/glibc-2.15-do-not-install-timezone-files.patch b/testing/glibc/glibc-2.15-do-not-install-timezone-files.patch new file mode 100644 index 000000000..e4f29bc1a --- /dev/null +++ b/testing/glibc/glibc-2.15-do-not-install-timezone-files.patch @@ -0,0 +1,124 @@ +diff --git a/timezone/Makefile b/timezone/Makefile +index e8fb716..d5ea538 100644 +--- a/timezone/Makefile ++++ b/timezone/Makefile +@@ -1,4 +1,4 @@ +-# Copyright (C) 1998,1999,2000,2002,2005,2007 Free Software Foundation, Inc. ++# Copyright (C) 1998-2000,2002,2005,2007,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 +@@ -49,33 +49,6 @@ include ../Makeconfig # Get objpfx defined so we can use it below. + + CPPFLAGS-zic = -DNOT_IN_libc + +-# z.* use this variable. +-define nl +- +- +-endef +-ifndef avoid-generated +-ifndef inhibit_timezone_rules +--include $(addprefix $(objpfx)z.,$(tzfiles)) +-endif +-endif +- +-# Make these absolute file names. +-installed-localtime-file := $(firstword $(filter /%,$(inst_localtime-file)) \ +- $(addprefix $(inst_zonedir)/, \ +- $(localtime-file))) +-installed-posixrules-file := $(firstword $(filter /%,$(posixrules-file)) \ +- $(addprefix $(inst_zonedir)/, \ +- $(posixrules-file))) +- +-ifeq ($(cross-compiling),no) +-# Don't try to install the zoneinfo files since we can't run zic. +-install-others = $(addprefix $(inst_zonedir)/,$(zonenames) \ +- $(zonenames:%=posix/%) \ +- $(zonenames:%=right/%)) \ +- $(installed-localtime-file) $(installed-posixrules-file) +-endif +- + ifeq ($(have-ksh),yes) + install-others += $(inst_zonedir)/iso3166.tab $(inst_zonedir)/zone.tab + install-bin-script = tzselect +@@ -85,79 +58,6 @@ endif + include ../Rules + + +-$(tzfiles:%=$(objpfx)z.%): $(objpfx)z.%: % Makefile +-# Kludge alert: we use an implicit rule (in what we are generating here) +-# because that is the only way to tell Make that the one command builds all +-# the files. +-# The extra kludge for the $(tzlinks) files is necessary since running zic +-# this file requires all other files to exist. Blech! +- $(make-target-directory) +- (echo 'define $*-zones' ;\ +- $(AWK) '$$1 == "Zone" { print $$2 } $$1 == "Link" { print $$3 }' $^ ;\ +- echo 'endef' ;\ +- echo '$*-zones := $$(subst $$(nl), ,$$($*-zones))' ;\ +- echo 'ifdef $*-zones' ;\ +- if test x$(findstring $*, $(tzlinks)) != x; then \ +- echo '$$(addprefix $$(inst_zonedir)/right/,$$($*-zones)): \';\ +- echo '$$(foreach t,$$(tzbases),$$(addprefix $$(inst_zonedir)/right/,$$($$t-zones)))' ;\ +- echo '$$(addprefix $$(inst_zonedir)/posix/,$$($*-zones)): \';\ +- echo '$$(foreach t,$$(tzbases),$$(addprefix $$(inst_zonedir)/posix/,$$($$t-zones)))' ;\ +- echo '$$(addprefix $$(inst_zonedir)/,$$($*-zones)): \' ;\ +- echo '$$(foreach t,$$(tzbases),$$(addprefix $$(inst_zonedir)/,$$($$t-zones)))' ;\ +- fi ;\ +- echo '$$(addprefix $$(dir $$(inst_zonedir))zone%/right/,$$($*-zones)): \' ;\ +- echo '$< $$(objpfx)zic leapseconds yearistype' ;\ +- echo ' $$(tzcompile)' ;\ +- echo '$$(addprefix $$(dir $$(inst_zonedir))zone%/posix/,$$($*-zones)): \' ;\ +- echo '$< $$(objpfx)zic /dev/null yearistype' ;\ +- echo ' $$(tzcompile)' ;\ +- echo '$$(addprefix $$(dir $$(inst_zonedir))zone%/,$$($*-zones)): \' ;\ +- echo '$< $$(objpfx)zic $$(leapseconds) yearistype' ;\ +- echo ' $$(tzcompile)' ;\ +- echo 'endif' ;\ +- echo 'zonenames := $$(zonenames) $$($*-zones)' ;\ +- ) > $@.new +- mv $@.new $@ +- +-.PHONY: echo-zonenames +-echo-zonenames: +- @echo 'Known zones: $(zonenames)' +- +- +-# We have to use `-d $(inst_zonedir)' to explictly tell zic where to +-# place the output files although $(zonedir) is compiled in. But the +-# user might have set $(install_root) on the command line of `make install'. +-zic-cmd = $(built-program-cmd) -d $(inst_zonedir) +-tzcompile = $(zic-cmd)$(target-zone-flavor) -L $(word 3,$^) \ +- -y $(dir $(word 4,$^))$(notdir $(word 4,$^)) $< +- +-# The source files specify the zone names relative to the -d directory, +-# so for the posix/ and right/ flavors we need to pass -d $(inst_zonedir)/posix +-# and the like. This magic extracts /posix or /right if it's the first +-# component after $(inst_zonedir) in the target name $@. +-target-zone-flavor = $(filter /posix /right, \ +- /$(firstword $(subst /, , \ +- $(patsubst $(inst_zonedir)/%,%,$@)))) +- +-ifdef localtime +-$(installed-localtime-file): $(inst_zonedir)/$(localtime) $(objpfx)zic \ +- $(+force) +- $(make-target-directory) +- if test -r $@; then \ +- echo Site timezone NOT reset to Factory.; \ +- else \ +- rm -f $@T; \ +- $(SHELL) $(..)scripts/rellns-sh $< $@T; \ +- mv -f $@T $@; \ +- fi +-endif +-ifdef posixrules +-$(installed-posixrules-file): $(inst_zonedir)/$(posixrules) $(objpfx)zic \ +- $(+force) +- $(zic-cmd) -p $(posixrules) +-endif +- +- + $(objpfx)zic: $(objpfx)scheck.o $(objpfx)ialloc.o + + tz-cflags = -DTZDIR='"$(zonedir)"' \ diff --git a/testing/glibc/glibc-2.15-feraiseexcept-plt.patch b/testing/glibc/glibc-2.15-feraiseexcept-plt.patch new file mode 100644 index 000000000..c41acc169 --- /dev/null +++ b/testing/glibc/glibc-2.15-feraiseexcept-plt.patch @@ -0,0 +1,20 @@ +diff --git a/sysdeps/i386/fpu/feupdateenv.c b/sysdeps/i386/fpu/feupdateenv.c +index 70f9ee2..6e2ce35 100644 +--- a/sysdeps/i386/fpu/feupdateenv.c ++++ b/sysdeps/i386/fpu/feupdateenv.c +@@ -1,5 +1,5 @@ + /* Install given floating-point environment and raise exceptions. +- Copyright (C) 1997,99,2000,01,07,2010 Free Software Foundation, Inc. ++ Copyright (C) 1997,99,2000,01,07,2010,2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. + +@@ -44,7 +44,7 @@ __feupdateenv (const fenv_t *envp) + /* Raise the saved exception. Incidently for us the implementation + defined format of the values in objects of type fexcept_t is the + same as the ones specified using the FE_* constants. */ +- feraiseexcept ((int) temp); ++ __feraiseexcept ((int) temp); + + /* Success. */ + return 0; diff --git a/testing/glibc/glibc-2.15-fix-res_query-assert.patch b/testing/glibc/glibc-2.15-fix-res_query-assert.patch new file mode 100644 index 000000000..a894da9c7 --- /dev/null +++ b/testing/glibc/glibc-2.15-fix-res_query-assert.patch @@ -0,0 +1,51 @@ +--- a/resolv/res_query.c ++++ a/resolv/res_query.c +@@ -122,6 +122,7 @@ __libc_res_nquery(res_state statp, + int *resplen2) + { + HEADER *hp = (HEADER *) answer; ++ HEADER *hp2; + int n, use_malloc = 0; + u_int oflags = statp->_flags; + +@@ -239,26 +240,25 @@ __libc_res_nquery(res_state statp, + /* __libc_res_nsend might have reallocated the buffer. */ + hp = (HEADER *) *answerp; + +- /* We simplify the following tests by assigning HP to HP2. It +- is easy to verify that this is the same as ignoring all +- tests of HP2. */ +- HEADER *hp2 = answerp2 ? (HEADER *) *answerp2 : hp; +- +- if (n < (int) sizeof (HEADER) && answerp2 != NULL +- && *resplen2 > (int) sizeof (HEADER)) ++ /* We simplify the following tests by assigning HP to HP2 or ++ vice versa. It is easy to verify that this is the same as ++ ignoring all tests of HP or HP2. */ ++ if (answerp2 == NULL || *resplen2 < (int) sizeof (HEADER)) + { +- /* Special case of partial answer. */ +- assert (hp != hp2); +- hp = hp2; ++ hp2 = hp; + } +- else if (answerp2 != NULL && *resplen2 < (int) sizeof (HEADER) +- && n > (int) sizeof (HEADER)) ++ else + { +- /* Special case of partial answer. */ +- assert (hp != hp2); +- hp2 = hp; ++ hp2 = (HEADER *) *answerp2; ++ if (n < (int) sizeof (HEADER)) ++ { ++ hp = hp2; ++ } + } + ++ /* Make sure both hp and hp2 are defined */ ++ assert((hp != NULL) && (hp2 != NULL)); ++ + if ((hp->rcode != NOERROR || ntohs(hp->ancount) == 0) + && (hp2->rcode != NOERROR || ntohs(hp2->ancount) == 0)) { + #ifdef DEBUG diff --git a/testing/glibc/glibc-2.15-fmtmsg-locking.patch b/testing/glibc/glibc-2.15-fmtmsg-locking.patch new file mode 100644 index 000000000..f5976abd9 --- /dev/null +++ b/testing/glibc/glibc-2.15-fmtmsg-locking.patch @@ -0,0 +1,148 @@ +diff --git a/stdlib/fmtmsg.c b/stdlib/fmtmsg.c +index 9203317..4c02302 100644 +--- a/stdlib/fmtmsg.c ++++ b/stdlib/fmtmsg.c +@@ -103,7 +103,6 @@ fmtmsg (long int classification, const char *label, int severity, + const char *text, const char *action, const char *tag) + { + __libc_once_define (static, once); +- int result = MM_OK; + struct severity_info *severity_rec; + + /* Make sure everything is initialized. */ +@@ -124,17 +123,6 @@ fmtmsg (long int classification, const char *label, int severity, + return MM_NOTOK; + } + +- for (severity_rec = severity_list; severity_rec != NULL; +- severity_rec = severity_rec->next) +- if (severity == severity_rec->severity) +- /* Bingo. */ +- break; +- +- /* If we don't know anything about the severity level return an error. */ +- if (severity_rec == NULL) +- return MM_NOTOK; +- +- + #ifdef __libc_ptf_call + /* We do not want this call to be cut short by a thread + cancellation. Therefore disable cancellation for now. */ +@@ -143,54 +131,73 @@ fmtmsg (long int classification, const char *label, int severity, + 0); + #endif + +- /* Now we can print. */ +- if (classification & MM_PRINT) +- { +- int do_label = (print & label_mask) && label != MM_NULLLBL; +- int do_severity = (print & severity_mask) && severity != MM_NULLSEV; +- int do_text = (print & text_mask) && text != MM_NULLTXT; +- int do_action = (print & action_mask) && action != MM_NULLACT; +- int do_tag = (print & tag_mask) && tag != MM_NULLTAG; +- +- if (__fxprintf (stderr, "%s%s%s%s%s%s%s%s%s%s\n", +- do_label ? label : "", +- do_label && (do_severity | do_text | do_action | do_tag) +- ? ": " : "", +- do_severity ? severity_rec->string : "", +- do_severity && (do_text | do_action | do_tag) +- ? ": " : "", +- do_text ? text : "", +- do_text && (do_action | do_tag) ? "\n" : "", +- do_action ? "TO FIX: " : "", +- do_action ? action : "", +- do_action && do_tag ? " " : "", +- do_tag ? tag : "") < 0) +- /* Oh, oh. An error occurred during the output. */ +- result = MM_NOMSG; +- } ++ __libc_lock_lock (lock); + +- if (classification & MM_CONSOLE) ++ for (severity_rec = severity_list; severity_rec != NULL; ++ severity_rec = severity_rec->next) ++ if (severity == severity_rec->severity) ++ /* Bingo. */ ++ break; ++ ++ /* If we don't know anything about the severity level return an error. */ ++ int result = MM_NOTOK; ++ if (severity_rec != NULL) + { +- int do_label = label != MM_NULLLBL; +- int do_severity = severity != MM_NULLSEV; +- int do_text = text != MM_NULLTXT; +- int do_action = action != MM_NULLACT; +- int do_tag = tag != MM_NULLTAG; +- +- syslog (LOG_ERR, "%s%s%s%s%s%s%s%s%s%s\n", +- do_label ? label : "", +- do_label && (do_severity | do_text | do_action | do_tag) +- ? ": " : "", +- do_severity ? severity_rec->string : "", +- do_severity && (do_text | do_action | do_tag) ? ": " : "", +- do_text ? text : "", +- do_text && (do_action | do_tag) ? "\n" : "", +- do_action ? "TO FIX: " : "", +- do_action ? action : "", +- do_action && do_tag ? " " : "", +- do_tag ? tag : ""); ++ result = MM_OK; ++ ++ /* Now we can print. */ ++ if (classification & MM_PRINT) ++ { ++ int do_label = (print & label_mask) && label != MM_NULLLBL; ++ int do_severity = (print & severity_mask) && severity != MM_NULLSEV; ++ int do_text = (print & text_mask) && text != MM_NULLTXT; ++ int do_action = (print & action_mask) && action != MM_NULLACT; ++ int do_tag = (print & tag_mask) && tag != MM_NULLTAG; ++ int need_colon = (do_label ++ && (do_severity | do_text | do_action | do_tag)); ++ ++ if (__fxprintf (stderr, "%s%s%s%s%s%s%s%s%s%s\n", ++ do_label ? label : "", ++ need_colon ? ": " : "", ++ do_severity ? severity_rec->string : "", ++ do_severity && (do_text | do_action | do_tag) ++ ? ": " : "", ++ do_text ? text : "", ++ do_text && (do_action | do_tag) ? "\n" : "", ++ do_action ? "TO FIX: " : "", ++ do_action ? action : "", ++ do_action && do_tag ? " " : "", ++ do_tag ? tag : "") < 0) ++ /* Oh, oh. An error occurred during the output. */ ++ result = MM_NOMSG; ++ } ++ ++ if (classification & MM_CONSOLE) ++ { ++ int do_label = label != MM_NULLLBL; ++ int do_severity = severity != MM_NULLSEV; ++ int do_text = text != MM_NULLTXT; ++ int do_action = action != MM_NULLACT; ++ int do_tag = tag != MM_NULLTAG; ++ int need_colon = (do_label ++ && (do_severity | do_text | do_action | do_tag)); ++ ++ syslog (LOG_ERR, "%s%s%s%s%s%s%s%s%s%s\n", ++ do_label ? label : "", ++ need_colon ? ": " : "", ++ do_severity ? severity_rec->string : "", ++ do_severity && (do_text | do_action | do_tag) ? ": " : "", ++ do_text ? text : "", ++ do_text && (do_action | do_tag) ? "\n" : "", ++ do_action ? "TO FIX: " : "", ++ do_action ? action : "", ++ do_action && do_tag ? " " : "", ++ do_tag ? tag : ""); ++ } + } + ++ __libc_lock_unlock (lock); ++ + #ifdef __libc_ptf_call + __libc_ptf_call (pthread_setcancelstate, (state, NULL), 0); + #endif diff --git a/testing/glibc/glibc-2.15-gb18030.patch.gz b/testing/glibc/glibc-2.15-gb18030.patch.gz Binary files differnew file mode 100644 index 000000000..dde59c056 --- /dev/null +++ b/testing/glibc/glibc-2.15-gb18030.patch.gz diff --git a/testing/glibc/glibc-2.15-ifunc.patch b/testing/glibc/glibc-2.15-ifunc.patch new file mode 100644 index 000000000..115afa02a --- /dev/null +++ b/testing/glibc/glibc-2.15-ifunc.patch @@ -0,0 +1,262 @@ +diff --git a/Makeconfig b/Makeconfig +index 2db2821..68547b2 100644 +--- a/Makeconfig ++++ b/Makeconfig +@@ -900,6 +900,12 @@ else + libdl = $(common-objpfx)dlfcn/libdl.a + endif + ++ifeq ($(build-shared),yes) ++libm = $(common-objpfx)math/libm.so$(libm.so-version) ++else ++libm = $(common-objpfx)math/libm.a ++endif ++ + # These are the subdirectories containing the library source. The order + # is more or less arbitrary. The sorting step will take care of the + # dependencies. +diff --git a/elf/Makefile b/elf/Makefile +index 052e763..3f1772a 100644 +--- a/elf/Makefile ++++ b/elf/Makefile +@@ -124,7 +124,8 @@ distribute := rtld-Rules \ + tst-initordera1.c tst-initordera2.c tst-initorderb1.c \ + tst-initorderb2.c tst-initordera3.c tst-initordera4.c \ + tst-initorder.c \ +- tst-initorder2.c ++ tst-initorder2.c \ ++ tst-relsort1.c tst-relsort1mod1.c tst-relsort1mod2.c + + CFLAGS-dl-runtime.c = -fexceptions -fasynchronous-unwind-tables + CFLAGS-dl-lookup.c = -fexceptions -fasynchronous-unwind-tables +@@ -227,7 +228,7 @@ tests += loadtest restest1 preloadtest loadfail multiload origtest resolvfail \ + tst-audit1 tst-audit2 \ + tst-stackguard1 tst-addr1 tst-thrlock \ + tst-unique1 tst-unique2 tst-unique3 tst-unique4 \ +- tst-initorder tst-initorder2 ++ tst-initorder tst-initorder2 tst-relsort1 + # reldep9 + test-srcs = tst-pathopt + selinux-enabled := $(shell cat /selinux/enforce 2> /dev/null) +@@ -290,7 +291,9 @@ modules-names = testobj1 testobj2 testobj3 testobj4 testobj5 testobj6 \ + tst-initordera1 tst-initorderb1 \ + tst-initordera2 tst-initorderb2 \ + tst-initordera3 tst-initordera4 \ +- tst-initorder2a tst-initorder2b tst-initorder2c tst-initorder2d ++ tst-initorder2a tst-initorder2b tst-initorder2c \ ++ tst-initorder2d \ ++ tst-relsort1mod1 tst-relsort1mod2 + ifeq (yes,$(have-initfini-array)) + modules-names += tst-array2dep tst-array5dep + endif +@@ -1195,3 +1198,9 @@ CFLAGS-tst-auditmod6b.c += $(AVX-CFLAGS) + CFLAGS-tst-auditmod6c.c += $(AVX-CFLAGS) + CFLAGS-tst-auditmod7b.c += $(AVX-CFLAGS) + endif ++ ++$(objpfx)tst-relsort1: $(libdl) ++$(objpfx)tst-relsort1mod1.so: $(libm) $(objpfx)tst-relsort1mod2.so ++$(objpfx)tst-relsort1mod2.so: $(libm) ++$(objpfx)tst-relsort1.out: $(objpfx)tst-relsort1mod1.so \ ++ $(objpfx)tst-relsort1mod2.so +diff --git a/elf/dl-open.c b/elf/dl-open.c +index a0b5c50..a56bdc1 100644 +--- a/elf/dl-open.c ++++ b/elf/dl-open.c +@@ -1,5 +1,5 @@ + /* Load a shared object at runtime, relocate it, and run its initializer. +- Copyright (C) 1996-2007, 2009, 2010, 2011 Free Software Foundation, Inc. ++ Copyright (C) 1996-2007, 2009, 2010, 2011, 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 +@@ -302,45 +302,109 @@ dl_open_worker (void *a) + if (GLRO(dl_lazy)) + reloc_mode |= mode & RTLD_LAZY; + +- /* Relocate the objects loaded. We do this in reverse order so that copy +- relocs of earlier objects overwrite the data written by later objects. */ +- ++ /* Sort the objects by dependency for the relocation process. This ++ allows IFUNC relocations to work and it also means copy ++ relocation of dependencies are if necessary overwritten. */ ++ size_t nmaps = 0; + struct link_map *l = new; +- while (l->l_next) +- l = l->l_next; +- while (1) ++ do ++ { ++ if (! l->l_real->l_relocated) ++ ++nmaps; ++ l = l->l_next; ++ } ++ while (l != NULL); ++ struct link_map *maps[nmaps]; ++ nmaps = 0; ++ l = new; ++ do + { + if (! l->l_real->l_relocated) ++ maps[nmaps++] = l; ++ l = l->l_next; ++ } ++ while (l != NULL); ++ if (nmaps > 1) ++ { ++ char seen[nmaps]; ++ memset (seen, '\0', nmaps); ++ size_t i = 0; ++ while (1) + { +-#ifdef SHARED +- if (__builtin_expect (GLRO(dl_profile) != NULL, 0)) ++ ++seen[i]; ++ struct link_map *thisp = maps[i]; ++ ++ /* Find the last object in the list for which the current one is ++ a dependency and move the current object behind the object ++ with the dependency. */ ++ size_t k = nmaps - 1; ++ while (k > i) + { +- /* If this here is the shared object which we want to profile +- make sure the profile is started. We can find out whether +- this is necessary or not by observing the `_dl_profile_map' +- variable. If was NULL but is not NULL afterwars we must +- start the profiling. */ +- struct link_map *old_profile_map = GL(dl_profile_map); ++ struct link_map **runp = maps[k]->l_initfini; ++ if (runp != NULL) ++ /* Look through the dependencies of the object. */ ++ while (*runp != NULL) ++ if (__builtin_expect (*runp++ == thisp, 0)) ++ { ++ /* Move the current object to the back past the last ++ object with it as the dependency. */ ++ memmove (&maps[i], &maps[i + 1], ++ (k - i) * sizeof (maps[0])); ++ maps[k] = thisp; ++ ++ if (seen[i + 1] > 1) ++ { ++ ++i; ++ goto next_clear; ++ } ++ ++ char this_seen = seen[i]; ++ memmove (&seen[i], &seen[i + 1], ++ (k - i) * sizeof (seen[0])); ++ seen[k] = this_seen; ++ ++ goto next; ++ } ++ ++ --k; ++ } + +- _dl_relocate_object (l, l->l_scope, reloc_mode | RTLD_LAZY, 1); ++ if (++i == nmaps) ++ break; ++ next_clear: ++ memset (&seen[i], 0, (nmaps - i) * sizeof (seen[0])); ++ next:; ++ } ++ } + +- if (old_profile_map == NULL && GL(dl_profile_map) != NULL) +- { +- /* We must prepare the profiling. */ +- _dl_start_profile (); ++ for (size_t i = nmaps; i-- > 0; ) ++ { ++ l = maps[i]; + +- /* Prevent unloading the object. */ +- GL(dl_profile_map)->l_flags_1 |= DF_1_NODELETE; +- } ++#ifdef SHARED ++ if (__builtin_expect (GLRO(dl_profile) != NULL, 0)) ++ { ++ /* If this here is the shared object which we want to profile ++ make sure the profile is started. We can find out whether ++ this is necessary or not by observing the `_dl_profile_map' ++ variable. If it was NULL but is not NULL afterwars we must ++ start the profiling. */ ++ struct link_map *old_profile_map = GL(dl_profile_map); ++ ++ _dl_relocate_object (l, l->l_scope, reloc_mode | RTLD_LAZY, 1); ++ ++ if (old_profile_map == NULL && GL(dl_profile_map) != NULL) ++ { ++ /* We must prepare the profiling. */ ++ _dl_start_profile (); ++ ++ /* Prevent unloading the object. */ ++ GL(dl_profile_map)->l_flags_1 |= DF_1_NODELETE; + } +- else +-#endif +- _dl_relocate_object (l, l->l_scope, reloc_mode, 0); + } +- +- if (l == new) +- break; +- l = l->l_prev; ++ else ++#endif ++ _dl_relocate_object (l, l->l_scope, reloc_mode, 0); + } + + /* If the file is not loaded now as a dependency, add the search +diff --git a/elf/tst-relsort1.c b/elf/tst-relsort1.c +new file mode 100644 +index 0000000..972100c +--- /dev/null ++++ b/elf/tst-relsort1.c +@@ -0,0 +1,19 @@ ++#include <dlfcn.h> ++#include <stdio.h> ++ ++ ++static int ++do_test () ++{ ++ const char lib[] = "$ORIGIN/tst-relsort1mod1.so"; ++ void *h = dlopen (lib, RTLD_NOW); ++ if (h == NULL) ++ { ++ puts (dlerror ()); ++ return 1; ++ } ++ return 0; ++} ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/elf/tst-relsort1mod1.c b/elf/tst-relsort1mod1.c +new file mode 100644 +index 0000000..9e4a943 +--- /dev/null ++++ b/elf/tst-relsort1mod1.c +@@ -0,0 +1,7 @@ ++extern int foo (double); ++ ++int ++bar (void) ++{ ++ return foo (1.2); ++} +diff --git a/elf/tst-relsort1mod2.c b/elf/tst-relsort1mod2.c +new file mode 100644 +index 0000000..a2c3e55 +--- /dev/null ++++ b/elf/tst-relsort1mod2.c +@@ -0,0 +1,7 @@ ++#include <math.h> ++ ++int ++foo (double d) ++{ ++ return floor (d) != 0.0; ++} diff --git a/testing/glibc/glibc-2.15-lddebug-scopes.patch b/testing/glibc/glibc-2.15-lddebug-scopes.patch new file mode 100644 index 000000000..808cf8d7c --- /dev/null +++ b/testing/glibc/glibc-2.15-lddebug-scopes.patch @@ -0,0 +1,27 @@ +From 0c95ab64cb4ec0d22bb222647d9d20c7b4903e38 Mon Sep 17 00:00:00 2001 +From: Andreas Schwab <schwab@redhat.com> +Date: Fri, 7 Oct 2011 09:31:27 +0200 +Subject: [PATCH] Horrible workaround for horribly broken software + +--- + elf/rtld.c | 4 +++- + 1 files changed, 3 insertions(+), 1 deletions(-) + +diff --git a/elf/rtld.c b/elf/rtld.c +index 978c609..8422b9f 100644 +--- a/elf/rtld.c ++++ b/elf/rtld.c +@@ -1393,7 +1393,9 @@ of this helper program; chances are you did not intend to run this program.\n\ + char *copy = malloc (len); + if (copy == NULL) + _dl_fatal_printf ("out of memory\n"); +- l->l_libname->name = l->l_name = memcpy (copy, dsoname, len); ++ l->l_libname->name = memcpy (copy, dsoname, len); ++ if (GLRO(dl_debug_mask)) ++ l->l_name = copy; + } + + /* Add the vDSO to the object list. */ +-- +1.7.3.4 + diff --git a/testing/glibc/glibc-2.15-multiarch-x86-strcmp.patch b/testing/glibc/glibc-2.15-multiarch-x86-strcmp.patch new file mode 100644 index 000000000..38c9e617f --- /dev/null +++ b/testing/glibc/glibc-2.15-multiarch-x86-strcmp.patch @@ -0,0 +1,39 @@ +diff --git a/sysdeps/i386/i686/multiarch/strcasecmp_l-c.c b/sysdeps/i386/i686/multiarch/strcasecmp_l-c.c +index d10e872..d4fcd2b 100644 +--- a/sysdeps/i386/i686/multiarch/strcasecmp_l-c.c ++++ b/sysdeps/i386/i686/multiarch/strcasecmp_l-c.c +@@ -6,6 +6,8 @@ extern __typeof (strcasecmp_l) __strcasecmp_l_nonascii; + #define USE_IN_EXTENDED_LOCALE_MODEL 1 + #include <string/strcasecmp.c> + ++strong_alias (__strcasecmp_l_nonascii, __strcasecmp_l_ia32) ++ + /* The needs of strcasecmp in libc are minimal, no need to go through + the IFUNC. */ + strong_alias (__strcasecmp_l_nonascii, __GI___strcasecmp_l) +diff --git a/sysdeps/i386/i686/multiarch/strcmp.S b/sysdeps/i386/i686/multiarch/strcmp.S +index 5410d17..b3b9eb8 100644 +--- a/sysdeps/i386/i686/multiarch/strcmp.S ++++ b/sysdeps/i386/i686/multiarch/strcmp.S +@@ -111,6 +111,7 @@ END(STRCMP) + # endif + #endif + +-#ifndef USE_AS_STRNCMP ++#if !defined USE_AS_STRNCMP && !defined USE_AS_STRCASECMP_L \ ++ && !defined USE_AS_STRNCASECMP_L + # include "../strcmp.S" + #endif +diff --git a/sysdeps/i386/i686/multiarch/strncase_l-c.c b/sysdeps/i386/i686/multiarch/strncase_l-c.c +index 0c68b8d..7e601af 100644 +--- a/sysdeps/i386/i686/multiarch/strncase_l-c.c ++++ b/sysdeps/i386/i686/multiarch/strncase_l-c.c +@@ -6,6 +6,8 @@ extern __typeof (strncasecmp_l) __strncasecmp_l_nonascii; + #define USE_IN_EXTENDED_LOCALE_MODEL 1 + #include <string/strncase.c> + ++strong_alias (__strncasecmp_l_nonascii, __strncasecmp_l_ia32) ++ + /* The needs of strcasecmp in libc are minimal, no need to go through + the IFUNC. */ + strong_alias (__strncasecmp_l_nonascii, __GI___strncasecmp_l) diff --git a/testing/glibc/glibc-2.15-nearbyintf-rounding.patch b/testing/glibc/glibc-2.15-nearbyintf-rounding.patch new file mode 100644 index 000000000..b2bb9caac --- /dev/null +++ b/testing/glibc/glibc-2.15-nearbyintf-rounding.patch @@ -0,0 +1,75 @@ +diff --git a/math/libm-test.inc b/math/libm-test.inc +index c8186c8..1016753 100644 +--- a/math/libm-test.inc ++++ b/math/libm-test.inc +@@ -4632,6 +4632,29 @@ nearbyint_test (void) + TEST_f_f (nearbyint, 524286.75, 524287.0); + TEST_f_f (nearbyint, 524288.75, 524289.0); + ++ TEST_f_f (nearbyint, 1048576.75, 1048577.0); ++ TEST_f_f (nearbyint, 2097152.75, 2097153.0); ++ TEST_f_f (nearbyint, 2492472.75, 2492473.0); ++ TEST_f_f (nearbyint, 2886220.75, 2886221.0); ++ TEST_f_f (nearbyint, 3058792.75, 3058793.0); ++ TEST_f_f (nearbyint, -1048576.75, -1048577.0); ++ TEST_f_f (nearbyint, -2097152.75, -2097153.0); ++ TEST_f_f (nearbyint, -2492472.75, -2492473.0); ++ TEST_f_f (nearbyint, -2886220.75, -2886221.0); ++ TEST_f_f (nearbyint, -3058792.75, -3058793.0); ++#ifndef TEST_FLOAT ++ TEST_f_f (nearbyint, 70368744177664.75, 70368744177665.0); ++ TEST_f_f (nearbyint, 140737488355328.75, 140737488355329.0); ++ TEST_f_f (nearbyint, 281474976710656.75, 281474976710657.0); ++ TEST_f_f (nearbyint, 562949953421312.75, 562949953421313.0); ++ TEST_f_f (nearbyint, 1125899906842624.75, 1125899906842625.0); ++ TEST_f_f (nearbyint, -70368744177664.75, -70368744177665.0); ++ TEST_f_f (nearbyint, -140737488355328.75, -140737488355329.0); ++ TEST_f_f (nearbyint, -281474976710656.75, -281474976710657.0); ++ TEST_f_f (nearbyint, -562949953421312.75, -562949953421313.0); ++ TEST_f_f (nearbyint, -1125899906842624.75, -1125899906842625.0); ++#endif ++ + END (nearbyint); + } + +diff --git a/sysdeps/ieee754/flt-32/s_nearbyintf.c b/sysdeps/ieee754/flt-32/s_nearbyintf.c +index 04ef9ab..a6d602b 100644 +--- a/sysdeps/ieee754/flt-32/s_nearbyintf.c ++++ b/sysdeps/ieee754/flt-32/s_nearbyintf.c +@@ -30,18 +30,12 @@ __nearbyintf(float x) + { + fenv_t env; + int32_t i0,j0,sx; +- u_int32_t i,i1; + float w,t; + GET_FLOAT_WORD(i0,x); + sx = (i0>>31)&1; + j0 = ((i0>>23)&0xff)-0x7f; + if(j0<23) { + if(j0<0) { +- if((i0&0x7fffffff)==0) return x; +- i1 = (i0&0x07fffff); +- i0 &= 0xfff00000; +- i0 |= ((i1|-i1)>>9)&0x400000; +- SET_FLOAT_WORD(x,i0); + libc_feholdexceptf (&env); + w = TWO23[sx]+x; + t = w-TWO23[sx]; +@@ -49,17 +43,11 @@ __nearbyintf(float x) + GET_FLOAT_WORD(i0,t); + SET_FLOAT_WORD(t,(i0&0x7fffffff)|(sx<<31)); + return t; +- } else { +- i = (0x007fffff)>>j0; +- if((i0&i)==0) return x; /* x is integral */ +- i>>=1; +- if((i0&i)!=0) i0 = (i0&(~i))|((0x100000)>>j0); + } + } else { + if(__builtin_expect(j0==0x80, 0)) return x+x; /* inf or NaN */ + else return x; /* x is integral */ + } +- SET_FLOAT_WORD(x,i0); + libc_feholdexceptf (&env); + w = TWO23[sx]+x; + t = w-TWO23[sx]; diff --git a/testing/glibc/glibc-2.15-negative-result-cache.patch b/testing/glibc/glibc-2.15-negative-result-cache.patch new file mode 100644 index 000000000..c09e79a17 --- /dev/null +++ b/testing/glibc/glibc-2.15-negative-result-cache.patch @@ -0,0 +1,138 @@ +diff --git a/nscd/aicache.c b/nscd/aicache.c +index aaaf80d..e1f1244 100644 +--- a/nscd/aicache.c ++++ b/nscd/aicache.c +@@ -1,5 +1,5 @@ + /* Cache handling for host lookup. +- Copyright (C) 2004-2008, 2009, 2010, 2011 Free Software Foundation, Inc. ++ Copyright (C) 2004-2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@redhat.com>, 2004. + +@@ -514,8 +514,9 @@ next_nip: + if (fd != -1) + TEMP_FAILURE_RETRY (send (fd, ¬found, total, MSG_NOSIGNAL)); + +- /* If we cannot permanently store the result, so be it. */ +- if (__builtin_expect (db->negtimeout == 0, 0)) ++ /* If we have a transient error or cannot permanently store the ++ result, so be it. */ ++ if (rc4 == EAGAIN || __builtin_expect (db->negtimeout == 0, 0)) + { + /* Mark the old entry as obsolete. */ + if (dh != NULL) +diff --git a/nscd/grpcache.c b/nscd/grpcache.c +index e9607c6..a698f36 100644 +--- a/nscd/grpcache.c ++++ b/nscd/grpcache.c +@@ -1,5 +1,5 @@ + /* Cache handling for group lookup. +- Copyright (C) 1998-2008, 2009, 2011 Free Software Foundation, Inc. ++ Copyright (C) 1998-2008, 2009, 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998. + +@@ -120,8 +120,9 @@ cache_addgr (struct database_dyn *db, int fd, request_header *req, + else + written = total; + +- /* If we cannot permanently store the result, so be it. */ +- if (db->negtimeout == 0) ++ /* If we have a transient error or cannot permanently store ++ the result, so be it. */ ++ if (errno == EAGAIN || __builtin_expect (db->negtimeout == 0, 0)) + { + /* Mark the old entry as obsolete. */ + if (dh != NULL) +diff --git a/nscd/hstcache.c b/nscd/hstcache.c +index 4d68ade..c72feaa 100644 +--- a/nscd/hstcache.c ++++ b/nscd/hstcache.c +@@ -1,5 +1,5 @@ + /* Cache handling for host lookup. +- Copyright (C) 1998-2008, 2009, 2011 Free Software Foundation, Inc. ++ Copyright (C) 1998-2008, 2009, 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998. + +@@ -141,8 +141,9 @@ cache_addhst (struct database_dyn *db, int fd, request_header *req, + MSG_NOSIGNAL)) != total) + all_written = false; + +- /* If we cannot permanently store the result, so be it. */ +- if (__builtin_expect (db->negtimeout == 0, 0)) ++ /* If we have a transient error or cannot permanently store ++ the result, so be it. */ ++ if (errval == EAGAIN || __builtin_expect (db->negtimeout == 0, 0)) + { + /* Mark the old entry as obsolete. */ + if (dh != NULL) +diff --git a/nscd/initgrcache.c b/nscd/initgrcache.c +index 4ac9942..2019991 100644 +--- a/nscd/initgrcache.c ++++ b/nscd/initgrcache.c +@@ -1,5 +1,5 @@ + /* Cache handling for host lookup. +- Copyright (C) 2004-2006, 2008, 2009, 2011 Free Software Foundation, Inc. ++ Copyright (C) 2004-2006, 2008, 2009, 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@redhat.com>, 2004. + +@@ -202,8 +202,9 @@ addinitgroupsX (struct database_dyn *db, int fd, request_header *req, + written = TEMP_FAILURE_RETRY (send (fd, ¬found, total, + MSG_NOSIGNAL)); + +- /* If we cannot permanently store the result, so be it. */ +- if (__builtin_expect (db->negtimeout == 0, 0)) ++ /* If we have a transient error or cannot permanently store ++ the result, so be it. */ ++ if (all_tryagain || __builtin_expect (db->negtimeout == 0, 0)) + { + /* Mark the old entry as obsolete. */ + if (dh != NULL) +diff --git a/nscd/pwdcache.c b/nscd/pwdcache.c +index 49e130c..e2ba09d 100644 +--- a/nscd/pwdcache.c ++++ b/nscd/pwdcache.c +@@ -1,5 +1,5 @@ + /* Cache handling for passwd lookup. +- Copyright (C) 1998-2008, 2009, 2011 Free Software Foundation, Inc. ++ Copyright (C) 1998-2008, 2009, 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998. + +@@ -124,8 +124,9 @@ cache_addpw (struct database_dyn *db, int fd, request_header *req, + written = TEMP_FAILURE_RETRY (send (fd, ¬found, total, + MSG_NOSIGNAL)); + +- /* If we cannot permanently store the result, so be it. */ +- if (__builtin_expect (db->negtimeout == 0, 0)) ++ /* If we have a transient error or cannot permanently store ++ the result, so be it. */ ++ if (errno == EAGAIN || __builtin_expect (db->negtimeout == 0, 0)) + { + /* Mark the old entry as obsolete. */ + if (dh != NULL) +diff --git a/nscd/servicescache.c b/nscd/servicescache.c +index d3d5dce..a6337e3 100644 +--- a/nscd/servicescache.c ++++ b/nscd/servicescache.c +@@ -1,5 +1,5 @@ + /* Cache handling for services lookup. +- Copyright (C) 2007, 2008, 2009, 2011 Free Software Foundation, Inc. ++ Copyright (C) 2007, 2008, 2009, 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@drepper.com>, 2007. + +@@ -108,8 +108,9 @@ cache_addserv (struct database_dyn *db, int fd, request_header *req, + written = TEMP_FAILURE_RETRY (send (fd, ¬found, total, + MSG_NOSIGNAL)); + +- /* If we cannot permanently store the result, so be it. */ +- if (__builtin_expect (db->negtimeout == 0, 0)) ++ /* If we have a transient error or cannot permanently store ++ the result, so be it. */ ++ if (errval == EAGAIN || __builtin_expect (db->negtimeout == 0, 0)) + { + /* Mark the old entry as obsolete. */ + if (dh != NULL) diff --git a/testing/glibc/glibc-2.15-non-signalling-comparisons.patch b/testing/glibc/glibc-2.15-non-signalling-comparisons.patch new file mode 100644 index 000000000..874f8b4cb --- /dev/null +++ b/testing/glibc/glibc-2.15-non-signalling-comparisons.patch @@ -0,0 +1,886 @@ +diff --git a/math/w_acos.c b/math/w_acos.c +index 3138408..0490933 100644 +--- a/math/w_acos.c ++++ b/math/w_acos.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -25,7 +25,8 @@ + double + __acos (double x) + { +- if (__builtin_expect (fabs (x) > 1.0, 0) && _LIB_VERSION != _IEEE_) ++ if (__builtin_expect (isgreater (fabs (x), 1.0), 0) ++ && _LIB_VERSION != _IEEE_) + { + /* acos(|x|>1) */ + feraiseexcept (FE_INVALID); +diff --git a/math/w_acosf.c b/math/w_acosf.c +index 0e41a2c..2500a7d 100644 +--- a/math/w_acosf.c ++++ b/math/w_acosf.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -25,7 +25,8 @@ + float + __acosf (float x) + { +- if (__builtin_expect (fabsf (x) > 1.0f, 0) && _LIB_VERSION != _IEEE_) ++ if (__builtin_expect (isgreater (fabsf (x), 1.0f), 0) ++ && _LIB_VERSION != _IEEE_) + { + /* acos(|x|>1) */ + feraiseexcept (FE_INVALID); +diff --git a/math/w_acosh.c b/math/w_acosh.c +index 0bd2686..d632987 100644 +--- a/math/w_acosh.c ++++ b/math/w_acosh.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -24,7 +24,7 @@ + double + __acosh (double x) + { +- if (__builtin_expect (x < 1.0, 0) && _LIB_VERSION != _IEEE_) ++ if (__builtin_expect (isless (x, 1.0), 0) && _LIB_VERSION != _IEEE_) + /* acosh(x<1) */ + return __kernel_standard (x, x, 29); + +diff --git a/math/w_acoshf.c b/math/w_acoshf.c +index c59bf94..f77df2b 100644 +--- a/math/w_acoshf.c ++++ b/math/w_acoshf.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -24,7 +24,7 @@ + float + __acoshf (float x) + { +- if (__builtin_expect (x < 1.0f, 0) && _LIB_VERSION != _IEEE_) ++ if (__builtin_expect (isless (x, 1.0f), 0) && _LIB_VERSION != _IEEE_) + /* acosh(x<1) */ + return __kernel_standard_f (x, x, 129); + +diff --git a/math/w_acoshl.c b/math/w_acoshl.c +index 819bdfc..cc823b8 100644 +--- a/math/w_acoshl.c ++++ b/math/w_acoshl.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -24,7 +24,7 @@ + long double + __acoshl (long double x) + { +- if (__builtin_expect (x < 1.0L, 0) && _LIB_VERSION != _IEEE_) ++ if (__builtin_expect (isless (x, 1.0L), 0) && _LIB_VERSION != _IEEE_) + /* acosh(x<1) */ + return __kernel_standard (x, x, 229); + +diff --git a/math/w_acosl.c b/math/w_acosl.c +index 6417068..05023b4 100644 +--- a/math/w_acosl.c ++++ b/math/w_acosl.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -25,7 +25,8 @@ + long double + __acosl (long double x) + { +- if (__builtin_expect (fabsl (x) > 1.0L, 0) && _LIB_VERSION != _IEEE_) ++ if (__builtin_expect (isgreater (fabsl (x), 1.0L), 0) ++ && _LIB_VERSION != _IEEE_) + { + /* acos(|x|>1) */ + feraiseexcept (FE_INVALID); +diff --git a/math/w_asin.c b/math/w_asin.c +index d4e89ce..0fa9487 100644 +--- a/math/w_asin.c ++++ b/math/w_asin.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -25,7 +25,8 @@ + double + __asin (double x) + { +- if (__builtin_expect (fabs (x) > 1.0, 0) && _LIB_VERSION != _IEEE_) ++ if (__builtin_expect (isgreater (fabs (x), 1.0), 0) ++ && _LIB_VERSION != _IEEE_) + { + /* asin(|x|>1) */ + feraiseexcept (FE_INVALID); +diff --git a/math/w_asinf.c b/math/w_asinf.c +index 270961f..c28edab 100644 +--- a/math/w_asinf.c ++++ b/math/w_asinf.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -25,7 +25,8 @@ + float + __asinf (float x) + { +- if (__builtin_expect (fabsf (x) > 1.0f, 0) && _LIB_VERSION != _IEEE_) ++ if (__builtin_expect (isgreater (fabsf (x), 1.0f), 0) ++ && _LIB_VERSION != _IEEE_) + { + /* asin(|x|>1) */ + feraiseexcept (FE_INVALID); +diff --git a/math/w_asinl.c b/math/w_asinl.c +index 32e5273..e4036d8 100644 +--- a/math/w_asinl.c ++++ b/math/w_asinl.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -25,7 +25,8 @@ + long double + __asinl (long double x) + { +- if (__builtin_expect (fabsl (x) > 1.0L, 0) && _LIB_VERSION != _IEEE_) ++ if (__builtin_expect (isgreater (fabsl (x), 1.0L), 0) ++ && _LIB_VERSION != _IEEE_) + { + /* asin(|x|>1) */ + feraiseexcept (FE_INVALID); +diff --git a/math/w_atanh.c b/math/w_atanh.c +index 1022bd5..190d2e9 100644 +--- a/math/w_atanh.c ++++ b/math/w_atanh.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -24,7 +24,8 @@ + double + __atanh (double x) + { +- if (__builtin_expect (fabs (x) >= 1.0, 0) && _LIB_VERSION != _IEEE_) ++ if (__builtin_expect (isgreaterequal (fabs (x), 1.0), 0) ++ && _LIB_VERSION != _IEEE_) + return __kernel_standard (x, x, + fabs (x) > 1.0 + ? 30 /* atanh(|x|>1) */ +diff --git a/math/w_atanhf.c b/math/w_atanhf.c +index 3c8cf83..e0c5dc3 100644 +--- a/math/w_atanhf.c ++++ b/math/w_atanhf.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -24,7 +24,8 @@ + float + __atanhf (float x) + { +- if (__builtin_expect (fabsf (x) >= 1.0f, 0) && _LIB_VERSION != _IEEE_) ++ if (__builtin_expect (isgreaterequal (fabsf (x), 1.0f), 0) ++ && _LIB_VERSION != _IEEE_) + return __kernel_standard_f (x, x, + fabsf (x) > 1.0f + ? 130 /* atanh(|x|>1) */ +diff --git a/math/w_atanhl.c b/math/w_atanhl.c +index f582acf..319535d 100644 +--- a/math/w_atanhl.c ++++ b/math/w_atanhl.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -24,7 +24,8 @@ + long double + __atanhl (long double x) + { +- if (__builtin_expect (fabsl (x) >= 1.0L, 0) && _LIB_VERSION != _IEEE_) ++ if (__builtin_expect (isgreaterequal (fabsl (x), 1.0L), 0) ++ && _LIB_VERSION != _IEEE_) + return __kernel_standard (x, x, + fabsl (x) > 1.0L + ? 230 /* atanh(|x|>1) */ +diff --git a/math/w_exp2.c b/math/w_exp2.c +index bf22326..7a3b0af 100644 +--- a/math/w_exp2.c ++++ b/math/w_exp2.c +@@ -12,7 +12,8 @@ static const double u_threshold = (double) (DBL_MIN_EXP - DBL_MANT_DIG - 1); + double + __exp2 (double x) + { +- if (__builtin_expect (x <= u_threshold || x > o_threshold, 0) ++ if (__builtin_expect (islessequal (x, u_threshold) ++ || isgreater (x, o_threshold), 0) + && _LIB_VERSION != _IEEE_ && __finite (x)) + /* exp2 overflow: 44, exp2 underflow: 45 */ + return __kernel_standard (x, x, 44 + (x <= o_threshold)); +diff --git a/math/w_exp2f.c b/math/w_exp2f.c +index 7215fca..c4e9e94 100644 +--- a/math/w_exp2f.c ++++ b/math/w_exp2f.c +@@ -12,7 +12,8 @@ static const float u_threshold = (float) (FLT_MIN_EXP - FLT_MANT_DIG - 1); + float + __exp2f (float x) + { +- if (__builtin_expect (x <= u_threshold || x > o_threshold, 0) ++ if (__builtin_expect (islessequal (x, u_threshold) ++ || isgreater (x, o_threshold), 0) + && _LIB_VERSION != _IEEE_ && __finitef (x)) + /* exp2 overflow: 144, exp2 underflow: 145 */ + return __kernel_standard_f (x, x, 144 + (x <= o_threshold)); +diff --git a/math/w_exp2l.c b/math/w_exp2l.c +index ac8d231..442a637 100644 +--- a/math/w_exp2l.c ++++ b/math/w_exp2l.c +@@ -13,7 +13,8 @@ static const long double u_threshold + long double + __exp2l (long double x) + { +- if (__builtin_expect (x <= u_threshold || x > o_threshold, 0) ++ if (__builtin_expect (islessequal (x, u_threshold) ++ || isgreater (x, o_threshold), 0) + && _LIB_VERSION != _IEEE_ && __finitel (x)) + /* exp2 overflow: 244, exp2 underflow: 245 */ + return __kernel_standard (x, x, 244 + (x <= o_threshold)); +diff --git a/math/w_j0.c b/math/w_j0.c +index 1dff8b4..f8d3724 100644 +--- a/math/w_j0.c ++++ b/math/w_j0.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -25,7 +25,8 @@ + double + j0 (double x) + { +- if (__builtin_expect (fabs (x) > X_TLOSS, 0) && _LIB_VERSION != _IEEE_) ++ if (__builtin_expect (isgreater (fabs (x), X_TLOSS), 0) ++ && _LIB_VERSION != _IEEE_) + /* j0(|x|>X_TLOSS) */ + return __kernel_standard (x, x, 34); + +@@ -40,7 +41,8 @@ strong_alias (j0, j0l) + double + y0 (double x) + { +- if (__builtin_expect (x <= 0.0 || x > X_TLOSS, 0) && _LIB_VERSION != _IEEE_) ++ if (__builtin_expect (islessequal (x, 0.0) || isgreater (x, X_TLOSS), 0) ++ && _LIB_VERSION != _IEEE_) + { + if (x < 0.0) + { +diff --git a/math/w_j0f.c b/math/w_j0f.c +index fc52f26..cef36aa 100644 +--- a/math/w_j0f.c ++++ b/math/w_j0f.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -25,7 +25,7 @@ + float + j0f (float x) + { +- if (__builtin_expect (fabsf (x) > (float) X_TLOSS, 0) ++ if (__builtin_expect (isgreater (fabsf (x), (float) X_TLOSS), 0) + && _LIB_VERSION != _IEEE_) + /* j0(|x|>X_TLOSS) */ + return __kernel_standard_f (x, x, 134); +@@ -38,7 +38,8 @@ j0f (float x) + float + y0f (float x) + { +- if (__builtin_expect (x <= 0.0f || x > (float) X_TLOSS, 0) ++ if (__builtin_expect (islessequal (x, 0.0f) ++ || isgreater (x, (float) X_TLOSS), 0) + && _LIB_VERSION != _IEEE_) + { + if (x < 0.0f) +diff --git a/math/w_j0l.c b/math/w_j0l.c +index 8d72d50..144f33c 100644 +--- a/math/w_j0l.c ++++ b/math/w_j0l.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -25,7 +25,8 @@ + long double + __j0l (long double x) + { +- if (__builtin_expect (fabsl (x) > X_TLOSS, 0) && _LIB_VERSION != _IEEE_) ++ if (__builtin_expect (isgreater (fabsl (x), X_TLOSS), 0) ++ && _LIB_VERSION != _IEEE_) + /* j0(|x|>X_TLOSS) */ + return __kernel_standard (x, x, 234); + +@@ -38,7 +39,8 @@ weak_alias (__j0l, j0l) + long double + __y0l (long double x) + { +- if (__builtin_expect (x <= 0.0L || x > X_TLOSS, 0) && _LIB_VERSION != _IEEE_) ++ if (__builtin_expect (islessequal (x, 0.0L) || isgreater (x, X_TLOSS), 0) ++ && _LIB_VERSION != _IEEE_) + { + if (x < 0.0L) + { +diff --git a/math/w_j1.c b/math/w_j1.c +index 358e0e1..e9a5357 100644 +--- a/math/w_j1.c ++++ b/math/w_j1.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -25,7 +25,8 @@ + double + j1 (double x) + { +- if (__builtin_expect (fabs (x) > X_TLOSS, 0) && _LIB_VERSION != _IEEE_) ++ if (__builtin_expect (isgreater (fabs (x), X_TLOSS), 0) ++ && _LIB_VERSION != _IEEE_) + /* j1(|x|>X_TLOSS) */ + return __kernel_standard (x, x, 36); + +@@ -40,7 +41,8 @@ strong_alias (j1, j1l) + double + y1 (double x) + { +- if (__builtin_expect (x <= 0.0 || x > X_TLOSS, 0) && _LIB_VERSION != _IEEE_) ++ if (__builtin_expect (islessequal (x, 0.0) || isgreater (x, X_TLOSS), 0) ++ && _LIB_VERSION != _IEEE_) + { + if (x < 0.0) + { +diff --git a/math/w_j1f.c b/math/w_j1f.c +index 096fdf5..29bd949 100644 +--- a/math/w_j1f.c ++++ b/math/w_j1f.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -25,7 +25,8 @@ + float + j1f (float x) + { +- if (__builtin_expect (fabsf (x) > X_TLOSS, 0) && _LIB_VERSION != _IEEE_) ++ if (__builtin_expect (isgreater (fabsf (x), X_TLOSS), 0) ++ && _LIB_VERSION != _IEEE_) + /* j1(|x|>X_TLOSS) */ + return __kernel_standard_f (x, x, 136); + +@@ -37,7 +38,8 @@ j1f (float x) + float + y1f (float x) + { +- if (__builtin_expect (x <= 0.0f || x > (float) X_TLOSS, 0) ++ if (__builtin_expect (islessequal (x, 0.0f) ++ || isgreater (x, (float) X_TLOSS), 0) + && _LIB_VERSION != _IEEE_) + { + if (x < 0.0f) +diff --git a/math/w_j1l.c b/math/w_j1l.c +index 93e4ee4..01b8551 100644 +--- a/math/w_j1l.c ++++ b/math/w_j1l.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -25,7 +25,8 @@ + long double + __j1l (long double x) + { +- if (__builtin_expect (fabsl (x) > X_TLOSS, 0) && _LIB_VERSION != _IEEE_) ++ if (__builtin_expect (isgreater (fabsl (x), X_TLOSS), 0) ++ && _LIB_VERSION != _IEEE_) + /* j1(|x|>X_TLOSS) */ + return __kernel_standard (x, x, 236); + +@@ -38,7 +39,8 @@ weak_alias (__j1l, j1l) + long double + __y1l (long double x) + { +- if (__builtin_expect (x <= 0.0L || x > X_TLOSS, 0) && _LIB_VERSION != _IEEE_) ++ if (__builtin_expect (islessequal (x, 0.0L) || isgreater (x, X_TLOSS), 0) ++ && _LIB_VERSION != _IEEE_) + { + if (x < 0.0L) + { +diff --git a/math/w_jn.c b/math/w_jn.c +index f0dd8c6..fd3fb16 100644 +--- a/math/w_jn.c ++++ b/math/w_jn.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -25,7 +25,8 @@ + double + jn (int n, double x) + { +- if (__builtin_expect (fabs (x) > X_TLOSS, 0) && _LIB_VERSION != _IEEE_) ++ if (__builtin_expect (isgreater (fabs (x), X_TLOSS), 0) ++ && _LIB_VERSION != _IEEE_) + /* jn(n,|x|>X_TLOSS) */ + return __kernel_standard (n, x, 38); + +@@ -40,7 +41,8 @@ strong_alias (jn, jnl) + double + yn (int n, double x) + { +- if (__builtin_expect (x <= 0.0 || x > X_TLOSS, 0) && _LIB_VERSION != _IEEE_) ++ if (__builtin_expect (islessequal (x, 0.0) || isgreater (x, X_TLOSS), 0) ++ && _LIB_VERSION != _IEEE_) + { + if (x < 0.0) + { +diff --git a/math/w_jnf.c b/math/w_jnf.c +index ef29eb4..36d6f6d 100644 +--- a/math/w_jnf.c ++++ b/math/w_jnf.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -25,7 +25,7 @@ + float + jnf (int n, float x) + { +- if (__builtin_expect (fabsf (x) > (float) X_TLOSS, 0) ++ if (__builtin_expect (isgreater (fabsf (x), (float) X_TLOSS), 0) + && _LIB_VERSION != _IEEE_) + /* jn(n,|x|>X_TLOSS) */ + return __kernel_standard_f (n, x, 138); +@@ -38,7 +38,8 @@ jnf (int n, float x) + float + ynf (int n, float x) + { +- if (__builtin_expect (x <= 0.0f || x > (float) X_TLOSS, 0) ++ if (__builtin_expect (islessequal (x, 0.0f) ++ || isgreater (x, (float) X_TLOSS), 0) + && _LIB_VERSION != _IEEE_) + { + if (x < 0.0f) +diff --git a/math/w_log.c b/math/w_log.c +index efc1c4c..ec33605 100644 +--- a/math/w_log.c ++++ b/math/w_log.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -25,7 +25,7 @@ + double + __log (double x) + { +- if (__builtin_expect (x <= 0.0, 0) && _LIB_VERSION != _IEEE_) ++ if (__builtin_expect (islessequal (x, 0.0), 0) && _LIB_VERSION != _IEEE_) + { + if (x == 0.0) + { +diff --git a/math/w_log10.c b/math/w_log10.c +index 2717ade..fe799ad 100644 +--- a/math/w_log10.c ++++ b/math/w_log10.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -25,7 +25,7 @@ + double + __log10 (double x) + { +- if (__builtin_expect (x <= 0.0, 0) && _LIB_VERSION != _IEEE_) ++ if (__builtin_expect (islessequal (x, 0.0), 0) && _LIB_VERSION != _IEEE_) + { + if (x == 0.0) + { +diff --git a/math/w_log10f.c b/math/w_log10f.c +index 60737ca..4b821f7 100644 +--- a/math/w_log10f.c ++++ b/math/w_log10f.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -25,7 +25,7 @@ + float + __log10f (float x) + { +- if (__builtin_expect (x <= 0.0f, 0) && _LIB_VERSION != _IEEE_) ++ if (__builtin_expect (islessequal (x, 0.0f), 0) && _LIB_VERSION != _IEEE_) + { + if (x == 0.0f) + { +diff --git a/math/w_log10l.c b/math/w_log10l.c +index b26f18c..0e5a137 100644 +--- a/math/w_log10l.c ++++ b/math/w_log10l.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -25,7 +25,7 @@ + long double + __log10l (long double x) + { +- if (__builtin_expect (x <= 0.0L, 0) && _LIB_VERSION != _IEEE_) ++ if (__builtin_expect (islessequal (x, 0.0L), 0) && _LIB_VERSION != _IEEE_) + { + if (x == 0.0L) + { +diff --git a/math/w_log2.c b/math/w_log2.c +index 998e5d9..e58e109 100644 +--- a/math/w_log2.c ++++ b/math/w_log2.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -25,7 +25,7 @@ + double + __log2 (double x) + { +- if (__builtin_expect (x <= 0.0, 0) && _LIB_VERSION != _IEEE_) ++ if (__builtin_expect (islessequal (x, 0.0), 0) && _LIB_VERSION != _IEEE_) + { + if (x == 0.0) + { +diff --git a/math/w_log2f.c b/math/w_log2f.c +index 6d91bf4..6963ed2 100644 +--- a/math/w_log2f.c ++++ b/math/w_log2f.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -25,7 +25,7 @@ + float + __log2f (float x) + { +- if (__builtin_expect (x <= 0.0f, 0) && _LIB_VERSION != _IEEE_) ++ if (__builtin_expect (islessequal (x, 0.0f), 0) && _LIB_VERSION != _IEEE_) + { + if (x == 0.0) + { +diff --git a/math/w_log2l.c b/math/w_log2l.c +index e51c1bc..eed04ff6c 100644 +--- a/math/w_log2l.c ++++ b/math/w_log2l.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -25,7 +25,7 @@ + long double + __log2l (long double x) + { +- if (__builtin_expect (x <= 0.0L, 0) && _LIB_VERSION != _IEEE_) ++ if (__builtin_expect (islessequal (x, 0.0L), 0) && _LIB_VERSION != _IEEE_) + { + if (x == 0.0L) + { +diff --git a/math/w_logf.c b/math/w_logf.c +index 8aa27c8..38d408f 100644 +--- a/math/w_logf.c ++++ b/math/w_logf.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -25,7 +25,7 @@ + float + __logf (float x) + { +- if (__builtin_expect (x <= 0.0f, 0) && _LIB_VERSION != _IEEE_) ++ if (__builtin_expect (islessequal (x, 0.0f), 0) && _LIB_VERSION != _IEEE_) + { + if (x == 0.0f) + { +diff --git a/math/w_logl.c b/math/w_logl.c +index a3139ff..593b37d 100644 +--- a/math/w_logl.c ++++ b/math/w_logl.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -25,7 +25,7 @@ + long double + __logl (long double x) + { +- if (__builtin_expect (x <= 0.0L, 0) && _LIB_VERSION != _IEEE_) ++ if (__builtin_expect (islessequal (x, 0.0L), 0) && _LIB_VERSION != _IEEE_) + { + if (x == 0.0L) + { +diff --git a/math/w_sqrt.c b/math/w_sqrt.c +index 409a6df..f6ba542 100644 +--- a/math/w_sqrt.c ++++ b/math/w_sqrt.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -24,7 +24,7 @@ + double + __sqrt (double x) + { +- if (__builtin_expect (x < 0.0, 0) && _LIB_VERSION != _IEEE_) ++ if (__builtin_expect (isless (x, 0.0), 0) && _LIB_VERSION != _IEEE_) + return __kernel_standard (x, x, 26); /* sqrt(negative) */ + + return __ieee754_sqrt (x); +diff --git a/math/w_sqrtf.c b/math/w_sqrtf.c +index 3c3d2f8..c128e9b 100644 +--- a/math/w_sqrtf.c ++++ b/math/w_sqrtf.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -24,7 +24,7 @@ + float + __sqrtf (float x) + { +- if (__builtin_expect (x < 0.0f, 0) && _LIB_VERSION != _IEEE_) ++ if (__builtin_expect (isless (x, 0.0f), 0) && _LIB_VERSION != _IEEE_) + return __kernel_standard_f (x, x, 126); /* sqrt(negative) */ + + return __ieee754_sqrtf (x); +diff --git a/math/w_sqrtl.c b/math/w_sqrtl.c +index 5e18f44..2a4a048 100644 +--- a/math/w_sqrtl.c ++++ b/math/w_sqrtl.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -24,7 +24,7 @@ + long double + __sqrtl (long double x) + { +- if (__builtin_expect (x < 0.0L, 0) && _LIB_VERSION != _IEEE_) ++ if (__builtin_expect (isless (x, 0.0L), 0) && _LIB_VERSION != _IEEE_) + return __kernel_standard (x, x, 226); /* sqrt(negative) */ + + return __ieee754_sqrtl (x); +diff --git a/sysdeps/ieee754/dbl-64/e_atanh.c b/sysdeps/ieee754/dbl-64/e_atanh.c +index 9fc21ab..5f471b1 100644 +--- a/sysdeps/ieee754/dbl-64/e_atanh.c ++++ b/sysdeps/ieee754/dbl-64/e_atanh.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -46,7 +46,7 @@ __ieee754_atanh (double x) + { + double xa = fabs (x); + double t; +- if (xa < 0.5) ++ if (isless (xa, 0.5)) + { + if (__builtin_expect (xa < 0x1.0p-28, 0)) + { +@@ -57,11 +57,11 @@ __ieee754_atanh (double x) + t = xa + xa; + t = 0.5 * __log1p (t + t * xa / (1.0 - xa)); + } +- else if (__builtin_expect (xa < 1.0, 1)) ++ else if (__builtin_expect (isless (xa, 1.0), 1)) + t = 0.5 * __log1p ((xa + xa) / (1.0 - xa)); + else + { +- if (xa > 1.0) ++ if (isgreater (xa, 1.0)) + return (x - x) / (x - x); + + return x / 0.0; +diff --git a/sysdeps/ieee754/dbl-64/w_exp.c b/sysdeps/ieee754/dbl-64/w_exp.c +index ee42587..b584ed8 100644 +--- a/sysdeps/ieee754/dbl-64/w_exp.c ++++ b/sysdeps/ieee754/dbl-64/w_exp.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -28,12 +28,12 @@ u_threshold= -7.45133219101941108420e+02; /* 0xc0874910, 0xD52D3051 */ + double + __exp (double x) + { +- if (__builtin_expect (x > o_threshold, 0)) ++ if (__builtin_expect (isgreater (x, o_threshold), 0)) + { + if (_LIB_VERSION != _IEEE_) + return __kernel_standard_f (x, x, 6); + } +- else if (__builtin_expect (x < u_threshold, 0)) ++ else if (__builtin_expect (isless (x, u_threshold), 0)) + { + if (_LIB_VERSION != _IEEE_) + return __kernel_standard_f (x, x, 7); +diff --git a/sysdeps/ieee754/flt-32/e_atanhf.c b/sysdeps/ieee754/flt-32/e_atanhf.c +index 75ed691..7af2f6c 100644 +--- a/sysdeps/ieee754/flt-32/e_atanhf.c ++++ b/sysdeps/ieee754/flt-32/e_atanhf.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -46,7 +46,7 @@ __ieee754_atanhf (float x) + { + float xa = fabsf (x); + float t; +- if (xa < 0.5f) ++ if (isless (xa, 0.5f)) + { + if (__builtin_expect (xa < 0x1.0p-28f, 0)) + { +@@ -57,11 +57,11 @@ __ieee754_atanhf (float x) + t = xa + xa; + t = 0.5f * __log1pf (t + t * xa / (1.0f - xa)); + } +- else if (__builtin_expect (xa < 1.0f, 1)) ++ else if (__builtin_expect (isless (xa, 1.0f), 1)) + t = 0.5f * __log1pf ((xa + xa) / (1.0f - xa)); + else + { +- if (xa > 1.0f) ++ if (isgreater (xa, 1.0f)) + return (x - x) / (x - x); + + return x / 0.0f; +diff --git a/sysdeps/ieee754/flt-32/w_expf.c b/sysdeps/ieee754/flt-32/w_expf.c +index 5500872..bc3b2f6 100644 +--- a/sysdeps/ieee754/flt-32/w_expf.c ++++ b/sysdeps/ieee754/flt-32/w_expf.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -28,12 +28,12 @@ u_threshold= -1.0397208405e+02; /* 0xc2cff1b5 */ + float + __expf (float x) + { +- if (__builtin_expect (x > o_threshold, 0)) ++ if (__builtin_expect (isgreater (x, o_threshold), 0)) + { + if (_LIB_VERSION != _IEEE_) + return __kernel_standard_f (x, x, 106); + } +- else if (__builtin_expect (x < u_threshold, 0)) ++ else if (__builtin_expect (isless (x, u_threshold), 0)) + { + if (_LIB_VERSION != _IEEE_) + return __kernel_standard_f (x, x, 107); +diff --git a/sysdeps/ieee754/ldbl-96/w_expl.c b/sysdeps/ieee754/ldbl-96/w_expl.c +index ec9d8a7..d61c0a3 100644 +--- a/sysdeps/ieee754/ldbl-96/w_expl.c ++++ b/sysdeps/ieee754/ldbl-96/w_expl.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2011 Free Software Foundation, Inc. ++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@gmail.com>, 2011. + +@@ -30,12 +30,12 @@ u_threshold= -1.140019167866942050398521670162263001513e4; + long double + __expl (long double x) + { +- if (__builtin_expect (x > o_threshold, 0)) ++ if (__builtin_expect (isgreater (x, o_threshold), 0)) + { + if (_LIB_VERSION != _IEEE_) + return __kernel_standard (x, x, 206); + } +- else if (__builtin_expect (x < u_threshold, 0)) ++ else if (__builtin_expect (isless (x, u_threshold), 0)) + { + if (_LIB_VERSION != _IEEE_) + return __kernel_standard (x, x, 207); diff --git a/testing/glibc/glibc-2.15-regex.patch b/testing/glibc/glibc-2.15-regex.patch new file mode 100644 index 000000000..6385f2c08 --- /dev/null +++ b/testing/glibc/glibc-2.15-regex.patch @@ -0,0 +1,16 @@ +diff --git a/posix/regex_internal.c b/posix/regex_internal.c +index bc19243..124f8cc 100644 +--- a/posix/regex_internal.c ++++ b/posix/regex_internal.c +@@ -868,7 +868,7 @@ re_string_peek_byte_case (const re_string_t *pstr, int idx) + } + + static unsigned char +-internal_function __attribute ((pure)) ++internal_function + re_string_fetch_byte_case (re_string_t *pstr) + { + if (BE (!pstr->mbs_allocated, 1)) +-- +1.7.3.4 + diff --git a/testing/glibc/glibc-2.15-revert-c5a0802a.patch b/testing/glibc/glibc-2.15-revert-c5a0802a.patch new file mode 100644 index 000000000..f532b95e8 --- /dev/null +++ b/testing/glibc/glibc-2.15-revert-c5a0802a.patch @@ -0,0 +1,229 @@ +diff -rup a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S +--- a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S 2011-12-22 18:04:12.937212834 +0000 ++++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S 2011-12-22 18:04:42.104222278 +0000 +@@ -137,7 +137,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 +@@ -151,9 +150,6 @@ __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. */ + cmpl $-ENOSYS, %eax +@@ -398,78 +394,6 @@ __pthread_cond_wait: + #endif + 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) +@@ -642,10 +566,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 +Only in b/nptl/sysdeps/unix/sysv/linux/i386/i486: pthread_cond_wait.S.orig +diff -rup a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S +--- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S 2011-12-22 18:04:12.941212837 +0000 ++++ b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S 2011-12-22 18:05:05.155229737 +0000 +@@ -23,7 +23,6 @@ + #include <lowlevelcond.h> + #include <tcb-offsets.h> + #include <pthread-pi-defines.h> +-#include <pthread-errnos.h> + + #include <kernel-features.h> + +@@ -137,14 +136,11 @@ __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 + #ifdef __ASSUME_REQUEUE_PI + jmp 62f + #else +@@ -331,70 +327,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 +- cmpq $-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 +- cmpq $-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 +- movq dep_mutex(%rdi), %r8 +- 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,15 +479,11 @@ __condvar_cleanup1: + .uleb128 .LcleanupSTART-.LSTARTCODE + .uleb128 .LcleanupEND-.LcleanupSTART + .uleb128 __condvar_cleanup1-.LSTARTCODE +- .uleb128 0 +- .uleb128 .LcleanupSTART2-.LSTARTCODE +- .uleb128 .LcleanupEND2-.LcleanupSTART2 +- .uleb128 __condvar_cleanup1-.LSTARTCODE +- .uleb128 0 ++ .uleb128 0 + .uleb128 .LcallUR-.LSTARTCODE + .uleb128 .LENDCODE-.LcallUR + .uleb128 0 +- .uleb128 0 ++ .uleb128 0 + .Lcstend: + + +Only in b/nptl/sysdeps/unix/sysv/linux/x86_64: pthread_cond_wait.S.orig +Only in b/nptl/sysdeps/unix/sysv/linux/x86_64: pthread_cond_wait.S.rej diff --git a/testing/glibc/glibc-2.15-revert-netlink-cache.patch b/testing/glibc/glibc-2.15-revert-netlink-cache.patch new file mode 100644 index 000000000..87d04c794 --- /dev/null +++ b/testing/glibc/glibc-2.15-revert-netlink-cache.patch @@ -0,0 +1,680 @@ +diff --git a/include/ifaddrs.h b/include/ifaddrs.h +index e1c6cac..50e4c48 100644 +--- a/include/ifaddrs.h ++++ b/include/ifaddrs.h +@@ -21,13 +21,8 @@ struct in6addrinfo + extern void __check_pf (bool *seen_ipv4, bool *seen_ipv6, + struct in6addrinfo **in6ai, size_t *in6ailen) + attribute_hidden; +-extern void __free_in6ai (struct in6addrinfo *in6ai) attribute_hidden; + extern void __check_native (uint32_t a1_index, int *a1_native, + uint32_t a2_index, int *a2_native) + attribute_hidden; + +-#ifdef IS_IN_nscd +-extern uint32_t __bump_nl_timestamp (void) attribute_hidden; +-#endif +- + #endif /* ifaddrs.h */ +diff --git a/inet/check_pf.c b/inet/check_pf.c +index 0fa34cc..b015432 100644 +--- a/inet/check_pf.c ++++ b/inet/check_pf.c +@@ -1,5 +1,5 @@ + /* Determine protocol families for which interfaces exist. Generic version. +- Copyright (C) 2003, 2006, 2011 Free Software Foundation, Inc. ++ Copyright (C) 2003, 2006 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 +@@ -54,19 +54,3 @@ __check_pf (bool *seen_ipv4, bool *seen_ipv6, + + (void) freeifaddrs (ifa); + } +- +- +-void +-__free_in6ai (struct in6addrinfo *in6ai) +-{ +- /* Nothing to do. */ +-} +- +- +-#ifdef IS_IN_nscd +-uint32_t +-__bump_nl_timestamp (void) +-{ +- return 0; +-} +-#endif +diff --git a/nscd/connections.c b/nscd/connections.c +index c741996..2b5c7ef 100644 +--- a/nscd/connections.c ++++ b/nscd/connections.c +@@ -24,7 +24,6 @@ + #include <errno.h> + #include <fcntl.h> + #include <grp.h> +-#include <ifaddrs.h> + #include <libintl.h> + #include <pthread.h> + #include <pwd.h> +@@ -33,10 +32,6 @@ + #include <stdlib.h> + #include <unistd.h> + #include <arpa/inet.h> +-#ifdef HAVE_NETLINK +-# include <linux/netlink.h> +-# include <linux/rtnetlink.h> +-#endif + #ifdef HAVE_EPOLL + # include <sys/epoll.h> + #endif +@@ -252,11 +247,6 @@ static int sock; + int inotify_fd = -1; + #endif + +-#ifdef HAVE_NETLINK +-/* Descriptor for netlink status updates. */ +-static int nl_status_fd = -1; +-#endif +- + #ifndef __ASSUME_SOCK_CLOEXEC + /* Negative if SOCK_CLOEXEC is not supported, positive if it is, zero + before be know the result. */ +@@ -913,65 +903,6 @@ cannot set socket to close on exec: %s; disabling paranoia mode"), + exit (1); + } + +-#ifdef HAVE_NETLINK +- if (dbs[hstdb].enabled) +- { +- /* Try to open netlink socket to monitor network setting changes. */ +- nl_status_fd = socket (AF_NETLINK, +- SOCK_RAW | SOCK_CLOEXEC | SOCK_NONBLOCK, +- NETLINK_ROUTE); +- if (nl_status_fd != -1) +- { +- struct sockaddr_nl snl; +- memset (&snl, '\0', sizeof (snl)); +- snl.nl_family = AF_NETLINK; +- /* XXX Is this the best set to use? */ +- snl.nl_groups = (RTMGRP_IPV4_IFADDR | RTMGRP_TC | RTMGRP_IPV4_MROUTE +- | RTMGRP_IPV4_ROUTE | RTMGRP_IPV4_RULE +- | RTMGRP_IPV6_IFADDR | RTMGRP_IPV6_MROUTE +- | RTMGRP_IPV6_ROUTE | RTMGRP_IPV6_IFINFO +- | RTMGRP_IPV6_PREFIX); +- +- if (bind (nl_status_fd, (struct sockaddr *) &snl, sizeof (snl)) != 0) +- { +- close (nl_status_fd); +- nl_status_fd = -1; +- } +- else +- { +- /* Start the timestamp process. */ +- dbs[hstdb].head->extra_data[NSCD_HST_IDX_CONF_TIMESTAMP] +- = __bump_nl_timestamp (); +- +-# ifndef __ASSUME_SOCK_CLOEXEC +- if (have_sock_cloexec < 0) +- { +- /* We don't want to get stuck on accept. */ +- int fl = fcntl (nl_status_fd, F_GETFL); +- if (fl == -1 +- || fcntl (nl_status_fd, F_SETFL, fl | O_NONBLOCK) == -1) +- { +- dbg_log (_("\ +-cannot change socket to nonblocking mode: %s"), +- strerror (errno)); +- exit (1); +- } +- +- /* The descriptor needs to be closed on exec. */ +- if (paranoia +- && fcntl (nl_status_fd, F_SETFD, FD_CLOEXEC) == -1) +- { +- dbg_log (_("cannot set socket to close on exec: %s"), +- strerror (errno)); +- exit (1); +- } +- } +-# endif +- } +- } +- } +-#endif +- + /* Change to unprivileged uid/gid/groups if specified in config file */ + if (server_user != NULL) + finish_drop_privileges (); +@@ -1895,18 +1826,6 @@ main_loop_poll (void) + } + #endif + +-#ifdef HAVE_NETLINK +- size_t idx_nl_status_fd = 0; +- if (nl_status_fd != -1) +- { +- idx_nl_status_fd = nused; +- conns[nused].fd = nl_status_fd; +- conns[nused].events = POLLRDNORM; +- ++nused; +- firstfree = nused; +- } +-#endif +- + while (1) + { + /* Wait for any event. We wait at most a couple of seconds so +@@ -2049,20 +1968,6 @@ disabled inotify after read error %d"), + } + #endif + +-#ifdef HAVE_NETLINK +- if (idx_nl_status_fd != 0 && conns[idx_nl_status_fd].revents != 0) +- { +- char buf[4096]; +- /* Read all the data. We do not interpret it here. */ +- while (TEMP_FAILURE_RETRY (read (nl_status_fd, buf, +- sizeof (buf))) != -1) +- ; +- +- dbs[hstdb].head->extra_data[NSCD_HST_IDX_CONF_TIMESTAMP] +- = __bump_nl_timestamp (); +- } +-#endif +- + for (size_t cnt = first; cnt < nused && n > 0; ++cnt) + if (conns[cnt].revents != 0) + { +@@ -2141,17 +2046,6 @@ main_loop_epoll (int efd) + } + # endif + +-# ifdef HAVE_NETLINK +- if (nl_status_fd != -1) +- { +- ev.events = EPOLLRDNORM; +- ev.data.fd = nl_status_fd; +- if (epoll_ctl (efd, EPOLL_CTL_ADD, nl_status_fd, &ev) == -1) +- /* We cannot use epoll. */ +- return; +- } +-# endif +- + while (1) + { + struct epoll_event revs[100]; +@@ -2268,18 +2162,6 @@ main_loop_epoll (int efd) + } + } + # endif +-# ifdef HAVE_NETLINK +- else if (revs[cnt].data.fd == nl_status_fd) +- { +- char buf[4096]; +- /* Read all the data. We do not interpret it here. */ +- while (TEMP_FAILURE_RETRY (read (nl_status_fd, buf, +- sizeof (buf))) != -1) +- ; +- +- __bump_nl_timestamp (); +- } +-# endif + else + { + /* Remove the descriptor from the epoll descriptor. */ +@@ -2303,7 +2185,6 @@ main_loop_epoll (int efd) + time_t laststart = now - ACCEPT_TIMEOUT; + assert (starttime[sock] == 0); + assert (inotify_fd == -1 || starttime[inotify_fd] == 0); +- assert (nl_status_fd == -1 || starttime[nl_status_fd] == 0); + for (int cnt = highest; cnt > STDERR_FILENO; --cnt) + if (starttime[cnt] != 0 && starttime[cnt] < laststart) + { +diff --git a/nscd/nscd-client.h b/nscd/nscd-client.h +index b5cd2d2..caad26a 100644 +--- a/nscd/nscd-client.h ++++ b/nscd/nscd-client.h +@@ -260,17 +260,12 @@ struct hashentry + + + /* Current persistent database version. */ +-#define DB_VERSION 2 ++#define DB_VERSION 1 + + /* Maximum time allowed between updates of the timestamp. */ + #define MAPPING_TIMEOUT (5 * 60) + + +-/* Used indices for the EXTRA_DATA element of 'database_pers_head'. +- Each database has its own indices. */ +-#define NSCD_HST_IDX_CONF_TIMESTAMP 0 +- +- + /* Header of persistent database file. */ + struct database_pers_head + { +@@ -279,8 +274,6 @@ struct database_pers_head + volatile int32_t gc_cycle; + volatile int32_t nscd_certainly_running; + volatile nscd_time_t timestamp; +- /* Room for extensions. */ +- volatile uint32_t extra_data[4]; + + nscd_ssize_t module; + nscd_ssize_t data_size; +@@ -329,12 +322,6 @@ extern int __nscd_open_socket (const char *key, size_t keylen, + request_type type, void *response, + size_t responselen) attribute_hidden; + +-/* Try to get a file descriptor for the shared meory segment +- containing the database. */ +-extern struct mapped_database *__nscd_get_mapping (request_type type, +- const char *key, +- struct mapped_database **mappedp) attribute_hidden; +- + /* Get reference of mapping. */ + extern struct mapped_database *__nscd_get_map_ref (request_type type, + const char *name, +@@ -384,7 +371,4 @@ extern ssize_t writeall (int fd, const void *buf, size_t len) + extern ssize_t sendfileall (int tofd, int fromfd, off_t off, size_t len) + attribute_hidden; + +-/* Get netlink timestamp counter from mapped area or zero. */ +-extern uint32_t __nscd_get_nl_timestamp (void); +- + #endif /* nscd.h */ +diff --git a/nscd/nscd_gethst_r.c b/nscd/nscd_gethst_r.c +index 6ee142d..70631fa 100644 +--- a/nscd/nscd_gethst_r.c ++++ b/nscd/nscd_gethst_r.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 1998-2005, 2006, 2007, 2008, 2009, 2011 ++/* Copyright (C) 1998-2005, 2006, 2007, 2008, 2009 + Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998. +@@ -98,27 +98,6 @@ libc_freeres_fn (hst_map_free) + } + + +-uint32_t +-__nscd_get_nl_timestamp (void) +-{ +- if (__nss_not_use_nscd_hosts != 0) +- return 0; +- +- struct mapped_database *map = __hst_map_handle.mapped; +- +- if (map == NULL +- || (map != NO_MAPPING +- && map->head->nscd_certainly_running == 0 +- && map->head->timestamp + MAPPING_TIMEOUT < time (NULL))) +- map = __nscd_get_mapping (GETFDHST, "hosts", &__hst_map_handle.mapped); +- +- if (map == NO_MAPPING) +- return 0; +- +- return map->head->extra_data[NSCD_HST_IDX_CONF_TIMESTAMP]; +-} +- +- + int __nss_have_localdomain attribute_hidden; + + static int +diff --git a/nscd/nscd_helper.c b/nscd/nscd_helper.c +index 365b599..fe63f9a 100644 +--- a/nscd/nscd_helper.c ++++ b/nscd/nscd_helper.c +@@ -277,9 +277,9 @@ __nscd_unmap (struct mapped_database *mapped) + + /* Try to get a file descriptor for the shared meory segment + containing the database. */ +-struct mapped_database * +-__nscd_get_mapping (request_type type, const char *key, +- struct mapped_database **mappedp) ++static struct mapped_database * ++get_mapping (request_type type, const char *key, ++ struct mapped_database **mappedp) + { + struct mapped_database *result = NO_MAPPING; + #ifdef SCM_RIGHTS +@@ -449,8 +449,8 @@ __nscd_get_map_ref (request_type type, const char *name, + || (cur->head->nscd_certainly_running == 0 + && cur->head->timestamp + MAPPING_TIMEOUT < time (NULL)) + || cur->head->data_size > cur->datasize) +- cur = __nscd_get_mapping (type, name, +- (struct mapped_database **) &mapptr->mapped); ++ cur = get_mapping (type, name, ++ (struct mapped_database **) &mapptr->mapped); + + if (__builtin_expect (cur != NO_MAPPING, 1)) + { +diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c +index 1a023f9..4979805 100644 +--- a/sysdeps/posix/getaddrinfo.c ++++ b/sysdeps/posix/getaddrinfo.c +@@ -2386,7 +2386,7 @@ getaddrinfo (const char *name, const char *service, + || (hints->ai_family == PF_INET6 && ! seen_ipv6)) + { + /* We cannot possibly return a valid answer. */ +- __free_in6ai (in6ai); ++ free (in6ai); + return EAI_NONAME; + } + } +@@ -2400,7 +2400,7 @@ getaddrinfo (const char *name, const char *service, + { + if (hints->ai_flags & AI_NUMERICSERV) + { +- __free_in6ai (in6ai); ++ free (in6ai); + return EAI_NONAME; + } + +@@ -2422,7 +2422,7 @@ getaddrinfo (const char *name, const char *service, + if (last_i != 0) + { + freeaddrinfo (p); +- __free_in6ai (in6ai); ++ free (in6ai); + + return -(last_i & GAIH_EAI); + } +@@ -2434,7 +2434,7 @@ getaddrinfo (const char *name, const char *service, + } + else + { +- __free_in6ai (in6ai); ++ free (in6ai); + return EAI_FAMILY; + } + +@@ -2622,7 +2622,7 @@ getaddrinfo (const char *name, const char *service, + p->ai_canonname = canonname; + } + +- __free_in6ai (in6ai); ++ free (in6ai); + + if (p) + { +diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile +index e684b16..c907af4 100644 +--- a/sysdeps/unix/sysv/linux/Makefile ++++ b/sysdeps/unix/sysv/linux/Makefile +@@ -173,6 +173,6 @@ CFLAGS-mq_receive.c += -fexceptions + endif + + ifeq ($(subdir),nscd) +-sysdep-CFLAGS += -DHAVE_EPOLL -DHAVE_SENDFILE -DHAVE_INOTIFY -DHAVE_NETLINK ++sysdep-CFLAGS += -DHAVE_EPOLL -DHAVE_SENDFILE -DHAVE_INOTIFY + CFLAGS-gai.c += -DNEED_NETLINK + endif +diff --git a/sysdeps/unix/sysv/linux/check_pf.c b/sysdeps/unix/sysv/linux/check_pf.c +index 0738a70..d5ad7ea 100644 +--- a/sysdeps/unix/sysv/linux/check_pf.c ++++ b/sysdeps/unix/sysv/linux/check_pf.c +@@ -1,5 +1,5 @@ + /* Determine protocol families for which interfaces exist. Linux version. +- Copyright (C) 2003, 2006-2008, 2010, 2011 Free Software Foundation, Inc. ++ Copyright (C) 2003, 2006, 2007, 2008, 2010, 2011 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 +@@ -33,9 +33,6 @@ + + #include <not-cancel.h> + #include <kernel-features.h> +-#include <bits/libc-lock.h> +-#include <atomic.h> +-#include <nscd/nscd-client.h> + + + #ifndef IFA_F_HOMEADDRESS +@@ -46,42 +43,9 @@ + #endif + + +-struct cached_data +-{ +- uint32_t timestamp; +- uint32_t usecnt; +- bool seen_ipv4; +- bool seen_ipv6; +- size_t in6ailen; +- struct in6addrinfo in6ai[0]; +-}; +- +-static struct cached_data noai6ai_cached = +- { +- .usecnt = 1, /* Make sure we never try to delete this entry. */ +- .in6ailen = 0 +- }; +- +-static struct cached_data *cache; +-__libc_lock_define_initialized (static, lock); +- +- +-#ifdef IS_IN_nscd +-static uint32_t nl_timestamp; +- +-uint32_t +-__bump_nl_timestamp (void) +-{ +- if (atomic_increment_val (&nl_timestamp) == 0) +- atomic_increment (&nl_timestamp); +- +- return nl_timestamp; +-} +-#endif +- +- +-static struct cached_data * +-make_request (int fd, pid_t pid) ++static int ++make_request (int fd, pid_t pid, bool *seen_ipv4, bool *seen_ipv6, ++ struct in6addrinfo **in6ai, size_t *in6ailen) + { + struct req + { +@@ -135,6 +99,9 @@ make_request (int fd, pid_t pid) + sizeof (nladdr))) < 0) + goto out_fail; + ++ *seen_ipv4 = false; ++ *seen_ipv6 = false; ++ + bool done = false; + struct in6ailist + { +@@ -142,8 +109,6 @@ make_request (int fd, pid_t pid) + struct in6ailist *next; + } *in6ailist = NULL; + size_t in6ailistlen = 0; +- bool seen_ipv4 = false; +- bool seen_ipv6 = false; + + do + { +@@ -207,12 +172,12 @@ make_request (int fd, pid_t pid) + { + if (*(const in_addr_t *) address + != htonl (INADDR_LOOPBACK)) +- seen_ipv4 = true; ++ *seen_ipv4 = true; + } + else + { + if (!IN6_IS_ADDR_LOOPBACK (address)) +- seen_ipv6 = true; ++ *seen_ipv6 = true; + } + } + +@@ -246,47 +211,30 @@ make_request (int fd, pid_t pid) + } + while (! done); + +- struct cached_data *result; +- if (seen_ipv6 && in6ailist != NULL) ++ if (*seen_ipv6 && in6ailist != NULL) + { +- result = malloc (sizeof (*result) +- + in6ailistlen * sizeof (struct in6addrinfo)); +- if (result == NULL) ++ *in6ai = malloc (in6ailistlen * sizeof (**in6ai)); ++ if (*in6ai == NULL) + goto out_fail; + +-#ifdef IS_IN_nscd +- result->timestamp = nl_timestamp; +-#else +- result->timestamp = __nscd_get_nl_timestamp (); +-#endif +- result->usecnt = 2; +- result->seen_ipv4 = seen_ipv4; +- result->seen_ipv6 = true; +- result->in6ailen = in6ailistlen; ++ *in6ailen = in6ailistlen; + + do + { +- result->in6ai[--in6ailistlen] = in6ailist->info; ++ (*in6ai)[--in6ailistlen] = in6ailist->info; + in6ailist = in6ailist->next; + } + while (in6ailist != NULL); + } +- else +- { +- atomic_add (&noai6ai_cached.usecnt, 2); +- noai6ai_cached.seen_ipv4 = seen_ipv4; +- noai6ai_cached.seen_ipv6 = seen_ipv6; +- result = &noai6ai_cached; +- } + + if (use_malloc) + free (buf); +- return result; ++ return 0; + + out_fail: + if (use_malloc) + free (buf); +- return NULL; ++ return -1; + } + + +@@ -310,65 +258,28 @@ __check_pf (bool *seen_ipv4, bool *seen_ipv6, + + if (! __no_netlink_support) + { +- struct cached_data *olddata = NULL; +- struct cached_data *data = NULL; ++ int fd = __socket (PF_NETLINK, SOCK_RAW, NETLINK_ROUTE); + +- __libc_lock_lock (lock); +- +-#ifdef IS_IN_nscd +-# define cache_valid() nl_timestamp != 0 && cache->timestamp == nl_timestamp +-#else +-# define cache_valid() \ +- ({ uint32_t val = __nscd_get_nl_timestamp (); \ +- val != 0 && cache->timestamp == val; }) +-#endif +- if (cache != NULL && cache_valid ()) +- { +- data = cache; +- atomic_increment (&cache->usecnt); +- } +- else ++ if (__builtin_expect (fd >= 0, 1)) + { +- int fd = __socket (PF_NETLINK, SOCK_RAW, NETLINK_ROUTE); ++ struct sockaddr_nl nladdr; ++ memset (&nladdr, '\0', sizeof (nladdr)); ++ nladdr.nl_family = AF_NETLINK; + +- if (__builtin_expect (fd >= 0, 1)) +- { +- struct sockaddr_nl nladdr; +- memset (&nladdr, '\0', sizeof (nladdr)); +- nladdr.nl_family = AF_NETLINK; +- +- socklen_t addr_len = sizeof (nladdr); +- +- if(__bind (fd, (struct sockaddr *) &nladdr, sizeof (nladdr)) == 0 +- && __getsockname (fd, (struct sockaddr *) &nladdr, +- &addr_len) == 0) +- data = make_request (fd, nladdr.nl_pid); +- +- close_not_cancel_no_status (fd); +- } +- +- if (data != NULL) +- { +- olddata = cache; +- cache = data; +- } +- } ++ socklen_t addr_len = sizeof (nladdr); + +- __libc_lock_unlock (lock); ++ bool success ++ = (__bind (fd, (struct sockaddr *) &nladdr, sizeof (nladdr)) == 0 ++ && __getsockname (fd, (struct sockaddr *) &nladdr, ++ &addr_len) == 0 ++ && make_request (fd, nladdr.nl_pid, seen_ipv4, seen_ipv6, ++ in6ai, in6ailen) == 0); + +- if (data != NULL) +- { +- /* It worked. */ +- *seen_ipv4 = data->seen_ipv4; +- *seen_ipv6 = data->seen_ipv6; +- *in6ailen = data->in6ailen; +- *in6ai = data->in6ai; +- +- if (olddata != NULL && olddata->usecnt > 0 +- && atomic_add_zero (&olddata->usecnt, -1)) +- free (olddata); ++ close_not_cancel_no_status (fd); + +- return; ++ if (success) ++ /* It worked. */ ++ return; + } + + #if __ASSUME_NETLINK_SUPPORT == 0 +@@ -407,26 +318,3 @@ __check_pf (bool *seen_ipv4, bool *seen_ipv6, + (void) freeifaddrs (ifa); + #endif + } +- +- +-void +-__free_in6ai (struct in6addrinfo *ai) +-{ +- if (ai != NULL) +- { +- struct cached_data *data = +- (struct cached_data *) ((char *) ai +- - offsetof (struct cached_data, in6ai)); +- +- if (atomic_add_zero (&data->usecnt, -1)) +- { +- __libc_lock_lock (lock); +- +- if (data->usecnt == 0) +- /* Still unused. */ +- free (data); +- +- __libc_lock_unlock (lock); +- } +- } +-} diff --git a/testing/glibc/glibc-2.15-rintf-rounding.patch b/testing/glibc/glibc-2.15-rintf-rounding.patch new file mode 100644 index 000000000..e0240ac6c --- /dev/null +++ b/testing/glibc/glibc-2.15-rintf-rounding.patch @@ -0,0 +1,158 @@ +diff --git a/math/libm-test.inc b/math/libm-test.inc +index 6243e1e..c8186c8 100644 +--- a/math/libm-test.inc ++++ b/math/libm-test.inc +@@ -5037,6 +5037,22 @@ rint_test (void) + TEST_f_f (rint, 262142.75, 262143.0); + TEST_f_f (rint, 524286.75, 524287.0); + TEST_f_f (rint, 524288.75, 524289.0); ++ TEST_f_f (rint, 1048576.75, 1048577.0); ++ TEST_f_f (rint, 2097152.75, 2097153.0); ++ TEST_f_f (rint, -1048576.75, -1048577.0); ++ TEST_f_f (rint, -2097152.75, -2097153.0); ++#ifndef TEST_FLOAT ++ TEST_f_f (rint, 70368744177664.75, 70368744177665.0); ++ TEST_f_f (rint, 140737488355328.75, 140737488355329.0); ++ TEST_f_f (rint, 281474976710656.75, 281474976710657.0); ++ TEST_f_f (rint, 562949953421312.75, 562949953421313.0); ++ TEST_f_f (rint, 1125899906842624.75, 1125899906842625.0); ++ TEST_f_f (rint, -70368744177664.75, -70368744177665.0); ++ TEST_f_f (rint, -140737488355328.75, -140737488355329.0); ++ TEST_f_f (rint, -281474976710656.75, -281474976710657.0); ++ TEST_f_f (rint, -562949953421312.75, -562949953421313.0); ++ TEST_f_f (rint, -1125899906842624.75, -1125899906842625.0); ++#endif + #ifdef TEST_LDOUBLE + /* The result can only be represented in long double. */ + TEST_f_f (rint, 4503599627370495.5L, 4503599627370496.0L); +@@ -5137,6 +5153,22 @@ rint_test_tonearest (void) + TEST_f_f (rint, -0.1, -0.0); + TEST_f_f (rint, -0.25, -0.0); + TEST_f_f (rint, -0.625, -1.0); ++ TEST_f_f (rint, 1048576.75, 1048577.0); ++ TEST_f_f (rint, 2097152.75, 2097153.0); ++ TEST_f_f (rint, -1048576.75, -1048577.0); ++ TEST_f_f (rint, -2097152.75, -2097153.0); ++#ifndef TEST_FLOAT ++ TEST_f_f (rint, 70368744177664.75, 70368744177665.0); ++ TEST_f_f (rint, 140737488355328.75, 140737488355329.0); ++ TEST_f_f (rint, 281474976710656.75, 281474976710657.0); ++ TEST_f_f (rint, 562949953421312.75, 562949953421313.0); ++ TEST_f_f (rint, 1125899906842624.75, 1125899906842625.0); ++ TEST_f_f (rint, -70368744177664.75, -70368744177665.0); ++ TEST_f_f (rint, -140737488355328.75, -140737488355329.0); ++ TEST_f_f (rint, -281474976710656.75, -281474976710657.0); ++ TEST_f_f (rint, -562949953421312.75, -562949953421313.0); ++ TEST_f_f (rint, -1125899906842624.75, -1125899906842625.0); ++#endif + #ifdef TEST_LDOUBLE + /* The result can only be represented in long double. */ + TEST_f_f (rint, 4503599627370495.5L, 4503599627370496.0L); +@@ -5207,6 +5239,22 @@ rint_test_towardzero (void) + TEST_f_f (rint, -0.1, -0.0); + TEST_f_f (rint, -0.25, -0.0); + TEST_f_f (rint, -0.625, -0.0); ++ TEST_f_f (rint, 1048576.75, 1048576.0); ++ TEST_f_f (rint, 2097152.75, 2097152.0); ++ TEST_f_f (rint, -1048576.75, -1048576.0); ++ TEST_f_f (rint, -2097152.75, -2097152.0); ++#ifndef TEST_FLOAT ++ TEST_f_f (rint, 70368744177664.75, 70368744177664.0); ++ TEST_f_f (rint, 140737488355328.75, 140737488355328.0); ++ TEST_f_f (rint, 281474976710656.75, 281474976710656.0); ++ TEST_f_f (rint, 562949953421312.75, 562949953421312.0); ++ TEST_f_f (rint, 1125899906842624.75, 1125899906842624.0); ++ TEST_f_f (rint, -70368744177664.75, -70368744177664.0); ++ TEST_f_f (rint, -140737488355328.75, -140737488355328.0); ++ TEST_f_f (rint, -281474976710656.75, -281474976710656.0); ++ TEST_f_f (rint, -562949953421312.75, -562949953421312.0); ++ TEST_f_f (rint, -1125899906842624.75, -1125899906842624.0); ++#endif + #ifdef TEST_LDOUBLE + /* The result can only be represented in long double. */ + TEST_f_f (rint, 4503599627370495.5L, 4503599627370495.0L); +@@ -5277,6 +5325,22 @@ rint_test_downward (void) + TEST_f_f (rint, -0.1, -1.0); + TEST_f_f (rint, -0.25, -1.0); + TEST_f_f (rint, -0.625, -1.0); ++ TEST_f_f (rint, 1048576.75, 1048576.0); ++ TEST_f_f (rint, 2097152.75, 2097152.0); ++ TEST_f_f (rint, -1048576.75, -1048577.0); ++ TEST_f_f (rint, -2097152.75, -2097153.0); ++#ifndef TEST_FLOAT ++ TEST_f_f (rint, 70368744177664.75, 70368744177664.0); ++ TEST_f_f (rint, 140737488355328.75, 140737488355328.0); ++ TEST_f_f (rint, 281474976710656.75, 281474976710656.0); ++ TEST_f_f (rint, 562949953421312.75, 562949953421312.0); ++ TEST_f_f (rint, 1125899906842624.75, 1125899906842624.0); ++ TEST_f_f (rint, -70368744177664.75, -70368744177665.0); ++ TEST_f_f (rint, -140737488355328.75, -140737488355329.0); ++ TEST_f_f (rint, -281474976710656.75, -281474976710657.0); ++ TEST_f_f (rint, -562949953421312.75, -562949953421313.0); ++ TEST_f_f (rint, -1125899906842624.75, -1125899906842625.0); ++#endif + #ifdef TEST_LDOUBLE + /* The result can only be represented in long double. */ + TEST_f_f (rint, 4503599627370495.5L, 4503599627370495.0L); +@@ -5347,6 +5411,22 @@ rint_test_upward (void) + TEST_f_f (rint, -0.1, -0.0); + TEST_f_f (rint, -0.25, -0.0); + TEST_f_f (rint, -0.625, -0.0); ++ TEST_f_f (rint, 1048576.75, 1048577.0); ++ TEST_f_f (rint, 2097152.75, 2097153.0); ++ TEST_f_f (rint, -1048576.75, -1048576.0); ++ TEST_f_f (rint, -2097152.75, -2097152.0); ++#ifndef TEST_FLOAT ++ TEST_f_f (rint, 70368744177664.75, 70368744177665.0); ++ TEST_f_f (rint, 140737488355328.75, 140737488355329.0); ++ TEST_f_f (rint, 281474976710656.75, 281474976710657.0); ++ TEST_f_f (rint, 562949953421312.75, 562949953421313.0); ++ TEST_f_f (rint, 1125899906842624.75, 1125899906842625.0); ++ TEST_f_f (rint, -70368744177664.75, -70368744177664.0); ++ TEST_f_f (rint, -140737488355328.75, -140737488355328.0); ++ TEST_f_f (rint, -281474976710656.75, -281474976710656.0); ++ TEST_f_f (rint, -562949953421312.75, -562949953421312.0); ++ TEST_f_f (rint, -1125899906842624.75, -1125899906842624.0); ++#endif + #ifdef TEST_LDOUBLE + /* The result can only be represented in long double. */ + TEST_f_f (rint, 4503599627370495.5L, 4503599627370496.0L); +diff --git a/sysdeps/ieee754/flt-32/s_rintf.c b/sysdeps/ieee754/flt-32/s_rintf.c +index 9ea9b6f..9ba6b57 100644 +--- a/sysdeps/ieee754/flt-32/s_rintf.c ++++ b/sysdeps/ieee754/flt-32/s_rintf.c +@@ -26,34 +26,22 @@ float + __rintf(float x) + { + int32_t i0,j0,sx; +- u_int32_t i,i1; + float w,t; + GET_FLOAT_WORD(i0,x); + sx = (i0>>31)&1; + j0 = ((i0>>23)&0xff)-0x7f; + if(j0<23) { + if(j0<0) { +- if((i0&0x7fffffff)==0) return x; +- i1 = (i0&0x07fffff); +- i0 &= 0xfff00000; +- i0 |= ((i1|-i1)>>9)&0x400000; +- SET_FLOAT_WORD(x,i0); + w = TWO23[sx]+x; + t = w-TWO23[sx]; + GET_FLOAT_WORD(i0,t); + SET_FLOAT_WORD(t,(i0&0x7fffffff)|(sx<<31)); + return t; +- } else { +- i = (0x007fffff)>>j0; +- if((i0&i)==0) return x; /* x is integral */ +- i>>=1; +- if((i0&i)!=0) i0 = (i0&(~i))|((0x100000)>>j0); + } + } else { + if(j0==0x80) return x+x; /* inf or NaN */ + else return x; /* x is integral */ + } +- SET_FLOAT_WORD(x,i0); + w = TWO23[sx]+x; + return w-TWO23[sx]; + } diff --git a/testing/glibc/glibc-2.15-scanf.patch b/testing/glibc/glibc-2.15-scanf.patch new file mode 100644 index 000000000..a2561b232 --- /dev/null +++ b/testing/glibc/glibc-2.15-scanf.patch @@ -0,0 +1,19 @@ +diff --git a/stdio-common/vfscanf.c b/stdio-common/vfscanf.c +index 0e71deb..e18a6c3 100644 +--- a/stdio-common/vfscanf.c ++++ b/stdio-common/vfscanf.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 1991-2006, 2007, 2010, 2011 Free Software Foundation, Inc. ++/* Copyright (C) 1991-2007, 2010, 2011, 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 +@@ -274,7 +274,7 @@ _IO_vfscanf_internal (_IO_FILE *s, const char *format, _IO_va_list argptr, + CHAR_T *old = wp; \ + size_t newsize = (UCHAR_MAX + 1 > 2 * wpmax \ + ? UCHAR_MAX + 1 : 2 * wpmax); \ +- if (use_malloc || __libc_use_alloca (newsize)) \ ++ if (use_malloc || !__libc_use_alloca (newsize)) \ + { \ + wp = realloc (use_malloc ? wp : NULL, newsize); \ + if (wp == NULL) \ diff --git a/testing/glibc/glibc-2.15-strcasecmp-disable-avx.patch b/testing/glibc/glibc-2.15-strcasecmp-disable-avx.patch new file mode 100644 index 000000000..4c104fa55 --- /dev/null +++ b/testing/glibc/glibc-2.15-strcasecmp-disable-avx.patch @@ -0,0 +1,48 @@ +diff --git a/sysdeps/x86_64/multiarch/strcmp.S b/sysdeps/x86_64/multiarch/strcmp.S +index f93c83d..d8aa889 100644 +--- a/sysdeps/x86_64/multiarch/strcmp.S ++++ b/sysdeps/x86_64/multiarch/strcmp.S +@@ -105,11 +105,6 @@ ENTRY(__strcasecmp) + jne 1f + call __init_cpu_features + 1: +-# ifdef HAVE_AVX_SUPPORT +- leaq __strcasecmp_avx(%rip), %rax +- testl $bit_AVX, __cpu_features+CPUID_OFFSET+index_AVX(%rip) +- jnz 2f +-# endif + leaq __strcasecmp_sse42(%rip), %rax + testl $bit_SSE4_2, __cpu_features+CPUID_OFFSET+index_SSE4_2(%rip) + jnz 2f +@@ -128,11 +123,6 @@ ENTRY(__strncasecmp) + jne 1f + call __init_cpu_features + 1: +-# ifdef HAVE_AVX_SUPPORT +- leaq __strncasecmp_avx(%rip), %rax +- testl $bit_AVX, __cpu_features+CPUID_OFFSET+index_AVX(%rip) +- jnz 2f +-# endif + leaq __strncasecmp_sse42(%rip), %rax + testl $bit_SSE4_2, __cpu_features+CPUID_OFFSET+index_SSE4_2(%rip) + jnz 2f +@@ -152,19 +142,6 @@ weak_alias (__strncasecmp, strncasecmp) + # include "strcmp-sse42.S" + + +-# ifdef HAVE_AVX_SUPPORT +-# if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L +-# define LABEL(l) .L##l##_avx +-# define GLABEL(l) l##_avx +-# define USE_AVX 1 +-# undef STRCMP_SSE42 +-# define STRCMP_SSE42 STRCMP_AVX +-# define SECTION avx +-# include "strcmp-sse42.S" +-# endif +-# endif +- +- + # undef ENTRY + # define ENTRY(name) \ + .type STRCMP_SSE2, @function; \ diff --git a/testing/glibc/glibc-2.15-testsuite.patch b/testing/glibc/glibc-2.15-testsuite.patch new file mode 100644 index 000000000..7eaeaed65 --- /dev/null +++ b/testing/glibc/glibc-2.15-testsuite.patch @@ -0,0 +1,110 @@ +From d4c2917fc5091dae7ab1b30c165becb70d3c3453 Mon Sep 17 00:00:00 2001 +From: Allan McRae <allan@archlinux.org> +Date: Mon, 16 Apr 2012 14:06:47 +1000 +Subject: [PATCH] Fix test-suite failues with -Wl,--as-needed + +Signed-off-by: Allan McRae <allan@archlinux.org> +--- + ChangeLog | 24 ++++++++++++++++++++++++ + elf/Makefile | 21 ++++++++++++++++++++- + nptl/ChangeLog | 5 +++++ + nptl/Makefile | 3 ++- + stdlib/Makefile | 1 + + 5 files changed, 52 insertions(+), 2 deletions(-) + +diff --git a/elf/Makefile b/elf/Makefile +index 57dcab0..47729c3 100644 +--- a/elf/Makefile ++++ b/elf/Makefile +@@ -500,6 +500,18 @@ $(objpfx)tst-initordera3.so: $(objpfx)tst-initorderb2.so $(objpfx)tst-initorderb + $(objpfx)tst-initordera4.so: $(objpfx)tst-initordera3.so + $(objpfx)tst-initorder: $(objpfx)tst-initordera4.so $(objpfx)tst-initordera1.so $(objpfx)tst-initorderb2.so + ++LDFLAGS-nodel2mod3.so = $(no-as-needed) ++LDFLAGS-reldepmod5.so = $(no-as-needed) ++LDFLAGS-reldep6mod1.so = $(no-as-needed) ++LDFLAGS-reldep6mod4.so = $(no-as-needed) ++LDFLAGS-reldep8mod3.so = $(no-as-needed) ++LDFLAGS-unload4mod1.so = $(no-as-needed) ++LDFLAGS-unload4mod2.so = $(no-as-needed) ++LDFLAGS-tst-initorder = $(no-as-needed) ++LDFLAGS-tst-initordera2.so = $(no-as-needed) ++LDFLAGS-tst-initordera3.so = $(no-as-needed) ++LDFLAGS-tst-initordera4.so = $(no-as-needed) ++LDFLAGS-tst-initorderb2.so = $(no-as-needed) + LDFLAGS-tst-tlsmod5.so = -nostdlib + LDFLAGS-tst-tlsmod6.so = -nostdlib + +@@ -633,7 +645,7 @@ $(objpfx)vismain.out: $(addprefix $(objpfx),vismod3.so) + vismain-ENV = LD_PRELOAD=$(addprefix $(objpfx),vismod3.so) + + $(objpfx)noload: $(objpfx)testobj1.so $(common-objpfx)dlfcn/libdl.so +-LDFLAGS-noload = -rdynamic ++LDFLAGS-noload = -rdynamic $(no-as-needed) + $(objpfx)noload.out: $(objpfx)testobj5.so + + $(objpfx)noload-mem: $(objpfx)noload.out +@@ -678,6 +690,7 @@ $(objpfx)reldep4: $(libdl) + $(objpfx)reldep4.out: $(objpfx)reldep4mod1.so $(objpfx)reldep4mod2.so + + $(objpfx)next: $(objpfx)nextmod1.so $(objpfx)nextmod2.so $(libdl) ++LDFLAGS-next = $(no-as-needed) + + $(objpfx)unload2: $(libdl) + $(objpfx)unload2.out: $(objpfx)unload2mod.so $(objpfx)unload2dep.so +@@ -1025,6 +1038,8 @@ $(objpfx)order2mod1.so: $(objpfx)order2mod4.so + $(objpfx)order2mod4.so: $(objpfx)order2mod3.so + $(objpfx)order2mod2.so: $(objpfx)order2mod3.so + order2mod2.so-no-z-defs = yes ++LDFLAGS-order2mod1.so = $(no-as-needed) ++LDFLAGS-order2mod2.so = $(no-as-needed) + + tst-stackguard1-ARGS = --command "$(built-program-cmd) --child" + tst-stackguard1-static-ARGS = --command "$(objpfx)tst-stackguard1-static --child" +@@ -1113,6 +1128,10 @@ $(objpfx)tst-initorder2: $(objpfx)tst-initorder2a.so $(objpfx)tst-initorder2d.so + $(objpfx)tst-initorder2a.so: $(objpfx)tst-initorder2b.so + $(objpfx)tst-initorder2b.so: $(objpfx)tst-initorder2c.so + $(objpfx)tst-initorder2c.so: $(objpfx)tst-initorder2d.so ++LDFLAGS-tst-initorder2 = $(no-as-needed) ++LDFLAGS-tst-initorder2a.so = $(no-as-needed) ++LDFLAGS-tst-initorder2b.so = $(no-as-needed) ++LDFLAGS-tst-initorder2c.so = $(no-as-needed) + define o-iterator-doit + $(objpfx)tst-initorder2$o.os: tst-initorder2.c; \ + $$(compile-command.c) -DNAME=\"$o\" +diff --git a/nptl/Makefile b/nptl/Makefile +index 09acd8a..07a1022 100644 +--- a/nptl/Makefile ++++ b/nptl/Makefile +@@ -458,6 +458,7 @@ $(objpfx)tst-tls4: $(libdl) $(shared-thread-library) + $(objpfx)tst-tls4.out: $(objpfx)tst-tls4moda.so $(objpfx)tst-tls4modb.so + + $(objpfx)tst-tls5: $(objpfx)tst-tls5mod.so $(shared-thread-library) ++LDFLAGS-tst-tls5 = $(no-as-needed) + LDFLAGS-tst-tls5mod.so = -Wl,-soname,tst-tls5mod.so + + ifeq ($(build-shared),yes) +@@ -503,7 +504,7 @@ $(objpfx)tst-clock2: $(common-objpfx)rt/librt.a + $(objpfx)tst-rwlock14: $(common-objpfx)rt/librt.a + endif + +-LDFLAGS-tst-cancel24 = -lstdc++ ++LDFLAGS-tst-cancel24 = $(no-as-needed) -lstdc++ + + extra-B-pthread.so = -B$(common-objpfx)nptl/ + $(objpfx)libpthread.so: $(addprefix $(objpfx),$(crti-objs) $(crtn-objs)) +diff --git a/stdlib/Makefile b/stdlib/Makefile +index 44eb20d..f7811c5 100644 +--- a/stdlib/Makefile ++++ b/stdlib/Makefile +@@ -138,6 +138,7 @@ $(objpfx)tst-fmtmsg.out: tst-fmtmsg.sh $(objpfx)tst-fmtmsg + $(SHELL) -e $< $(common-objpfx) '$(run-program-prefix)' $(common-objpfx)stdlib/ + + $(objpfx)tst-putenv: $(objpfx)tst-putenvmod.so ++LDFLAGS-tst-putenv = $(no-as-needed) + + $(objpfx)tst-putenvmod.so: $(objpfx)tst-putenvmod.os + $(build-module) +-- +1.7.3.4 + diff --git a/testing/glibc/glibc-2.15-vdso.patch b/testing/glibc/glibc-2.15-vdso.patch new file mode 100644 index 000000000..7fd394f90 --- /dev/null +++ b/testing/glibc/glibc-2.15-vdso.patch @@ -0,0 +1,40 @@ +diff --git a/elf/Makefile b/elf/Makefile +index 8234ba7..25ffc57 100644 +--- a/elf/Makefile ++++ b/elf/Makefile +@@ -1203,3 +1203,14 @@ $(objpfx)tst-relsort1mod1.so: $(libm) $(objpfx)tst-relsort1mod2.so + $(objpfx)tst-relsort1mod2.so: $(libm) + $(objpfx)tst-relsort1.out: $(objpfx)tst-relsort1mod1.so \ + $(objpfx)tst-relsort1mod2.so ++ ++tests: $(objpfx)tst-unused-dep.out ++ ++$(objpfx)tst-unused-dep.out: $(objpfx)testobj1.so ++ LD_TRACE_LOADED_OBJECTS=1 \ ++ LD_DEBUG=unused \ ++ LD_PRELOAD= \ ++ $(elf-objpfx)${rtld-installed-name} \ ++ --library-path $(rpath-link)$(patsubst %,:%,$(sysdep-library-path)) \ ++ $< > $@ ++ cmp $@ /dev/null > /dev/null +diff --git a/elf/rtld.c b/elf/rtld.c +index 2e4f97f..3e15447 100644 +--- a/elf/rtld.c ++++ b/elf/rtld.c +@@ -1,5 +1,5 @@ + /* Run time dynamic linker. +- Copyright (C) 1995-2010, 2011 Free Software Foundation, Inc. ++ Copyright (C) 1995-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 +@@ -1375,6 +1375,9 @@ of this helper program; chances are you did not intend to run this program.\n\ + _dl_setup_hash (l); + l->l_relocated = 1; + ++ /* The vDSO is always used. */ ++ l->l_used = 1; ++ + /* Initialize l_local_scope to contain just this map. This allows + the use of dl_lookup_symbol_x to resolve symbols within the vdso. + So we create a single entry list pointing to l_real as its only diff --git a/testing/glibc/glibc-2.15-vfprintf-nargs.patch b/testing/glibc/glibc-2.15-vfprintf-nargs.patch new file mode 100644 index 000000000..f8dde53f5 --- /dev/null +++ b/testing/glibc/glibc-2.15-vfprintf-nargs.patch @@ -0,0 +1,180 @@ +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index a847b28..080badc 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -59,7 +59,8 @@ tests := tstscanf test_rdwr test-popen tstgetln test-fseek \ + tst-popen tst-unlockedio tst-fmemopen2 tst-put-error tst-fgets \ + tst-fwrite bug16 bug17 tst-swscanf tst-sprintf2 bug18 bug18a \ + bug19 bug19a tst-popen2 scanf13 scanf14 scanf15 bug20 bug21 bug22 \ +- scanf16 scanf17 tst-setvbuf1 tst-grouping bug23 bug24 ++ scanf16 scanf17 tst-setvbuf1 tst-grouping bug23 bug24 \ ++ bug-vfprintf-nargs + + test-srcs = tst-unbputc tst-printf + +diff --git a/stdio-common/bug-vfprintf-nargs.c b/stdio-common/bug-vfprintf-nargs.c +new file mode 100644 +index 0000000..13c66c0 +--- /dev/null ++++ b/stdio-common/bug-vfprintf-nargs.c +@@ -0,0 +1,78 @@ ++/* Test for vfprintf nargs allocation overflow (BZ #13656). ++ Copyright (C) 2012 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Kees Cook <keescook@chromium.org>, 2012. ++ ++ 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, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include <stdio.h> ++#include <stdlib.h> ++#include <stdint.h> ++#include <unistd.h> ++#include <inttypes.h> ++#include <string.h> ++#include <signal.h> ++ ++static int ++format_failed (const char *fmt, const char *expected) ++{ ++ char output[80]; ++ ++ printf ("%s : ", fmt); ++ ++ memset (output, 0, sizeof output); ++ /* Having sprintf itself detect a failure is good. */ ++ if (sprintf (output, fmt, 1, 2, 3, "test") > 0 ++ && strcmp (output, expected) != 0) ++ { ++ printf ("FAIL (output '%s' != expected '%s')\n", output, expected); ++ return 1; ++ } ++ puts ("ok"); ++ return 0; ++} ++ ++static int ++do_test (void) ++{ ++ int rc = 0; ++ char buf[64]; ++ ++ /* Regular positionals work. */ ++ if (format_failed ("%1$d", "1") != 0) ++ rc = 1; ++ ++ /* Regular width positionals work. */ ++ if (format_failed ("%1$*2$d", " 1") != 0) ++ rc = 1; ++ ++ /* Positional arguments are constructed via read_int, so nargs can only ++ overflow on 32-bit systems. On 64-bit systems, it will attempt to ++ allocate a giant amount of memory and possibly crash, which is the ++ expected situation. Since the 64-bit behavior is arch-specific, only ++ test this on 32-bit systems. */ ++ if (sizeof (long int) == 4) ++ { ++ sprintf (buf, "%%1$d %%%" PRIdPTR "$d", UINT32_MAX / sizeof (int)); ++ if (format_failed (buf, "1 %$d") != 0) ++ rc = 1; ++ } ++ ++ return rc; ++} ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/stdio-common/vfprintf.c b/stdio-common/vfprintf.c +index 863cd5d..c802e46 100644 +--- a/stdio-common/vfprintf.c ++++ b/stdio-common/vfprintf.c +@@ -235,6 +235,9 @@ vfprintf (FILE *s, const CHAR_T *format, va_list ap) + 0 if unknown. */ + int readonly_format = 0; + ++ /* For the argument descriptions, which may be allocated on the heap. */ ++ void *args_malloced = NULL; ++ + /* This table maps a character into a number representing a + class. In each step there is a destination label for each + class. */ +@@ -1647,9 +1650,10 @@ do_positional: + determine the size of the array needed to store the argument + attributes. */ + size_t nargs = 0; +- int *args_type; +- union printf_arg *args_value = NULL; ++ size_t bytes_per_arg; ++ union printf_arg *args_value; + int *args_size; ++ int *args_type; + + /* Positional parameters refer to arguments directly. This could + also determine the maximum number of arguments. Track the +@@ -1698,13 +1702,38 @@ do_positional: + + /* Determine the number of arguments the format string consumes. */ + nargs = MAX (nargs, max_ref_arg); ++ /* Calculate total size needed to represent a single argument across ++ all three argument-related arrays. */ ++ bytes_per_arg = sizeof (*args_value) + sizeof (*args_size) ++ + sizeof (*args_type); ++ ++ /* Check for potential integer overflow. */ ++ if (__builtin_expect (nargs > SIZE_MAX / bytes_per_arg, 0)) ++ { ++ __set_errno (ERANGE); ++ done = -1; ++ goto all_done; ++ } + +- /* Allocate memory for the argument descriptions. */ +- args_type = alloca (nargs * sizeof (int)); ++ /* Allocate memory for all three argument arrays. */ ++ if (__libc_use_alloca (nargs * bytes_per_arg)) ++ args_value = alloca (nargs * bytes_per_arg); ++ else ++ { ++ args_value = args_malloced = malloc (nargs * bytes_per_arg); ++ if (args_value == NULL) ++ { ++ done = -1; ++ goto all_done; ++ } ++ } ++ ++ /* Set up the remaining two arrays to each point past the end of the ++ prior array, since space for all three has been allocated now. */ ++ args_size = &args_value[nargs].pa_int; ++ args_type = &args_size[nargs]; + memset (args_type, s->_flags2 & _IO_FLAGS2_FORTIFY ? '\xff' : '\0', +- nargs * sizeof (int)); +- args_value = alloca (nargs * sizeof (union printf_arg)); +- args_size = alloca (nargs * sizeof (int)); ++ nargs * sizeof (*args_type)); + + /* XXX Could do sanity check here: If any element in ARGS_TYPE is + still zero after this loop, format is invalid. For now we +@@ -1973,8 +2002,8 @@ do_positional: + } + + all_done: +- if (__builtin_expect (workstart != NULL, 0)) +- free (workstart); ++ free (args_malloced); ++ free (workstart); + /* Unlock the stream. */ + _IO_funlockfile (s); + _IO_cleanup_region_end (0); diff --git a/testing/glibc/glibc-__i686.patch b/testing/glibc/glibc-__i686.patch new file mode 100644 index 000000000..16f84c536 --- /dev/null +++ b/testing/glibc/glibc-__i686.patch @@ -0,0 +1,31 @@ +diff --git a/nptl/sysdeps/pthread/pt-initfini.c b/nptl/sysdeps/pthread/pt-initfini.c +index 9c00dc0..f5d4df8 100644 +--- a/nptl/sysdeps/pthread/pt-initfini.c ++++ b/nptl/sysdeps/pthread/pt-initfini.c +@@ -45,6 +45,11 @@ + /* Embed an #include to pull in the alignment and .end directives. */ + asm ("\n#include \"defs.h\""); + ++asm ("\n#if defined __i686 && defined __ASSEMBLER__"); ++asm ("\n#undef __i686"); ++asm ("\n#define __i686 __i686"); ++asm ("\n#endif"); ++ + /* The initial common code ends here. */ + asm ("\n/*@HEADER_ENDS*/"); + +diff --git a/sysdeps/unix/sysv/linux/i386/sysdep.h b/sysdeps/unix/sysv/linux/i386/sysdep.h +index 64ef400..726b1df 100644 +--- a/sysdeps/unix/sysv/linux/i386/sysdep.h ++++ b/sysdeps/unix/sysv/linux/i386/sysdep.h +@@ -29,6 +29,10 @@ + #include <dl-sysdep.h> + #include <tls.h> + ++#if defined __i686 && defined __ASSEMBLER__ ++#undef __i686 ++#define __i686 __i686 ++#endif + + /* For Linux we can use the system call table in the header file + /usr/include/asm/unistd.h diff --git a/testing/glibc/glibc.install b/testing/glibc/glibc.install new file mode 100644 index 000000000..7f85ade96 --- /dev/null +++ b/testing/glibc/glibc.install @@ -0,0 +1,20 @@ +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 + + [ -x usr/bin/install-info ] || return 0 + for file in ${filelist[@]}; do + usr/bin/install-info $infodir/$file.gz $infodir/dir 2> /dev/null + done +} + +pre_remove() { + [ -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 + done +} diff --git a/testing/glibc/locale-gen b/testing/glibc/locale-gen new file mode 100755 index 000000000..5aff344c4 --- /dev/null +++ b/testing/glibc/locale-gen @@ -0,0 +1,42 @@ +#!/bin/sh + +set -e + +LOCALEGEN=/etc/locale.gen +LOCALES=/usr/share/i18n/locales +if [ -n "$POSIXLY_CORRECT" ]; then + unset POSIXLY_CORRECT +fi + + +[ -f $LOCALEGEN -a -s $LOCALEGEN ] || exit 0; + +# Remove all old locale dir and locale-archive before generating new +# locale data. +rm -rf /usr/lib/locale/* || true + +umask 022 + +is_entry_ok() { + if [ -n "$locale" -a -n "$charset" ] ; then + true + else + echo "error: Bad entry '$locale $charset'" + false + fi +} + +echo "Generating locales..." +while read locale charset; do \ + case $locale in \#*) continue;; "") continue;; esac; \ + is_entry_ok || continue + echo -n " `echo $locale | sed 's/\([^.\@]*\).*/\1/'`"; \ + echo -n ".$charset"; \ + echo -n `echo $locale | sed 's/\([^\@]*\)\(\@.*\)*/\2/'`; \ + echo -n '...'; \ + if [ -f $LOCALES/$locale ]; then input=$locale; else \ + input=`echo $locale | sed 's/\([^.]*\)[^@]*\(.*\)/\1\2/'`; fi; \ + localedef -i $input -c -f $charset -A /usr/share/locale/locale.alias $locale; \ + echo ' done'; \ +done < $LOCALEGEN +echo "Generation complete." diff --git a/testing/glibc/locale.gen.txt b/testing/glibc/locale.gen.txt new file mode 100644 index 000000000..ccdd81734 --- /dev/null +++ b/testing/glibc/locale.gen.txt @@ -0,0 +1,23 @@ +# Configuration file for locale-gen +# +# lists of locales that are to be generated by the locale-gen command. +# +# Each line is of the form: +# +# <locale> <charset> +# +# where <locale> is one of the locales given in /usr/share/i18n/locales +# and <charset> is one of the character sets listed in /usr/share/i18n/charmaps +# +# Examples: +# en_US ISO-8859-1 +# en_US.UTF-8 UTF-8 +# de_DE ISO-8859-1 +# de_DE@euro ISO-8859-15 +# +# The locale-gen command will generate all the locales, +# placing them in /usr/lib/locale. +# +# A list of supported locales is included in this file. +# Uncomment the ones you need. +# diff --git a/testing/glibc/nscd b/testing/glibc/nscd new file mode 100755 index 000000000..8b14f2a3f --- /dev/null +++ b/testing/glibc/nscd @@ -0,0 +1,40 @@ +#!/bin/bash + +. /etc/rc.conf +. /etc/rc.d/functions + +PID=`pidof -o %PPID /usr/sbin/nscd` +case "$1" in + start) + stat_busy "Starting nscd" + # create necessary directories if they don't already exist + mkdir -p /var/run/nscd /var/db/nscd 2>/dev/null + # remove stale files + rm -f /var/db/nscd/* /var/run/nscd/* 2>/dev/null + [ -z "$PID" ] && /usr/sbin/nscd + if [ $? -gt 0 ]; then + stat_fail + else + add_daemon nscd + stat_done + fi + ;; + stop) + stat_busy "Stopping nscd" + [ ! -z "$PID" ] && kill $PID &> /dev/null + if [ $? -gt 0 ]; then + stat_fail + else + rm_daemon nscd + stat_done + fi + ;; + restart) + $0 stop + sleep 1 + $0 start + ;; + *) + echo "usage: $0 {start|stop|restart}" +esac +exit 0 |