*/*: sync with upstream

Taken from: FreeBSD
This commit is contained in:
Franco Fichtner 2015-08-17 07:00:27 +02:00
parent 885cb462cf
commit 5ff40cb1aa
483 changed files with 5296 additions and 3272 deletions

View File

@ -3,6 +3,7 @@
PORTNAME= advancecomp
PORTVERSION= 1.19
PORTREVISION= 1
CATEGORIES= archivers
MASTER_SITES= SF/advancemame/${PORTNAME}/${PORTVERSION}
@ -11,7 +12,12 @@ COMMENT= Recompression utilities for .ZIP, .PNG, .MNG, and .GZ files
LICENSE= GPLv3
LIB_DEPENDS= libzopfli.so:${PORTSDIR}/archivers/zopfli
USES= gmake
GNU_CONFIGURE= yes
MAKE_ARGS= zopfli_SOURCES="" am__objects_2=""
CPPFLAGS+= -I${LOCALBASE}/include/zopfli
LDFLAGS+= -L${LOCALBASE}/lib -lzopfli
.include <bsd.port.mk>

View File

@ -3,6 +3,7 @@
PORTNAME= pigz
PORTVERSION= 2.3.3
PORTREVISION= 1
CATEGORIES= archivers
MASTER_SITES= http://www.zlib.net/pigz/ \
http://freebsd.unixfreunde.de/sources/
@ -10,15 +11,24 @@ MASTER_SITES= http://www.zlib.net/pigz/ \
MAINTAINER= delphij@FreeBSD.org
COMMENT= Parallel GZIP
USES= cpe gmake
LICENSE= ZLIB
LIB_DEPENDS= libzopfli.so:${PORTSDIR}/archivers/zopfli
USES= cpe gmake localbase
CPE_VENDOR= zlib
MAKE_FLAGS+= ZOPFLI=zopfli/src/zopfli/
ALL_TARGET= dev
MAKE_ARGS= CC="${CC}" CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}"
LDFLAGS+= -lz -lzopfli
PLIST_FILES= bin/pigz bin/pigzn bin/pigzt bin/unpigz
PLIST_FILES+= man/man1/pigz.1.gz
post-patch:
${REINPLACE_CMD} -e 's/ -lz/ -lm -lz/g' ${WRKSRC}/Makefile
${REINPLACE_CMD} -e 's/$${ZOPFLI}.*//' \
${WRKSRC}/Makefile
${REINPLACE_CMD} -e 's,zopfli/src/,,' \
${WRKSRC}/pigz.c
do-install:
.for FILE in pigz pigzn pigzt unpigz

View File

@ -1,9 +0,0 @@
--- ./Makefile.orig 2013-03-10 10:38:22.000000000 -0700
+++ ./Makefile 2013-11-26 13:32:03.000000000 -0800
@@ -1,5 +1,4 @@
-CC=cc
-CFLAGS=-O3 -Wall -Wextra
+all: dev
pigz: pigz.o yarn.o zopfli/deflate.o zopfli/blocksplitter.o zopfli/tree.o zopfli/lz77.o zopfli/cache.o zopfli/hash.o zopfli/util.o zopfli/squeeze.o zopfli/katajainen.o

View File

@ -7,4 +7,4 @@ The library can only handle files and directories at this point.
The command line utility, minitar, can only create archives, extract from
archives, and list archive contents.
WWW: http://rubygems.org/gems/archive-tar-minitar/
WWW: https://github.com/halostatue/minitar

View File

@ -1,3 +1,3 @@
Ruby C bindings to libbzip2
WWW: http://rubygems.org/gems/bzip2-ruby
WWW: https://github.com/brianmario/bzip2-ruby

View File

@ -1,3 +1,3 @@
Ruby library and command-line utility for tar archives.
WWW: http://rubygems.org/gems/minitar/
WWW: https://github.com/atoulme/minitar

View File

@ -2,21 +2,23 @@
# $FreeBSD$
PORTNAME= rvm
PORTVERSION= 1.07
PORTVERSION= 1.11
CATEGORIES= archivers
MASTER_SITES= SF
PKGNAMESUFFIX= an
DISTNAME= ${PORTNAME}_${PORTVERSION}
MAINTAINER= ports@FreeBSD.org
MAINTAINER= portmaster@BSDforge.com
COMMENT= Archive manager that uses rsync to manage backups
LICENSE= GPLv2
BUILD_DEPENDS= rsync:${PORTSDIR}/net/rsync
RUN_DEPENDS:= ${BUILD_DEPENDS}
WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION}
USES= gmake compiler:c++11-lang
USES= compiler:c++11-lang gmake
GNU_CONFIGURE= yes
CONFIGURE_ARGS= --with-default-config-file=${PREFIX}/etc/rvm.conf \
--enable-assume-stl-memory-exception

View File

@ -1,2 +1,2 @@
SHA256 (rvm_1.07.tar.gz) = 76700d1881a372fbf898f88ad3d2b66894e72c75802aa895ea08ee58c74dc55c
SIZE (rvm_1.07.tar.gz) = 294761
SHA256 (rvm_1.11.tar.gz) = 7a0c126b9e6e01b406c5900d890ed901c7a7cb00bf40e419e4aa49e39bd2303e
SIZE (rvm_1.11.tar.gz) = 323502

View File

@ -2,24 +2,39 @@
# $FreeBSD$
PORTNAME= zopfli
PORTVERSION= 1.0.0
DISTVERSION= 1.0.0-31
DISTVERSIONSUFFIX= -g6ff3ba2
CATEGORIES= archivers
MASTER_SITES= GOOGLE_CODE
MAINTAINER= freebsd@nagilum.org
COMMENT= Zopfli Compression Algorithm
LICENSE= APACHE20
USES= zip
PLIST_FILES= bin/zopfli
USE_GITHUB= yes
GH_ACCOUNT= google
do-build:
${CC} -O2 -W -Wall -Wextra -ansi -pedantic -lm \
${CFLAGS} ${EXTRA_DEFINES} -o ${WRKSRC}/${PORTNAME} \
${WRKSRC}/src/${PORTNAME}/*.c
USES= gmake
ALL_TARGET= ${PORTNAME} ${PORTNAME}png \
lib${PORTNAME} lib${PORTNAME}png
MAKE_ARGS= CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS} ${LDFLAGS}" \
CXXFLAGS="${CXXFLAGS}"
CFLAGS+= -fPIC # XXX Convert into an implicit rule
LDFLAGS+= -lm
USE_LDCONFIG= yes
do-install:
${INSTALL_PROGRAM} ${WRKSRC}/${PORTNAME} ${STAGEDIR}${PREFIX}/bin
.for f in ${PORTNAME} ${PORTNAME}png
${INSTALL_PROGRAM} ${WRKSRC}/${f} ${STAGEDIR}${PREFIX}/bin
.endfor
.for f in lib${PORTNAME}.so.1.0.1 lib${PORTNAME}png.so.1.0.0
${INSTALL_LIB} ${WRKSRC}/${f} ${STAGEDIR}${PREFIX}/lib
${LN} -fs ${f} ${STAGEDIR}${PREFIX}/lib/${f:R:R}
${LN} -fs ${f:R:R} ${STAGEDIR}${PREFIX}/lib/${f:R:R:R}
.endfor
(cd ${WRKSRC}/src && ${COPYTREE_SHARE} \
"zopfli zopflipng" ${STAGEDIR}${PREFIX}/include \
"-name *.h")
.include <bsd.port.mk>

View File

@ -1,2 +1,2 @@
SHA256 (zopfli-1.0.0.zip) = e20d73b56620285e6cce5b510d8e5da6835a81940e48cdf35a69090e666f3adb
SIZE (zopfli-1.0.0.zip) = 57873
SHA256 (google-zopfli-1.0.0-31-g6ff3ba2_GH0.tar.gz) = bafc6d90a4ce57c768fe2810d83d8f72292fed8ec3a9c605e4f90077f4dab95b
SIZE (google-zopfli-1.0.0-31-g6ff3ba2_GH0.tar.gz) = 127974

View File

@ -0,0 +1,23 @@
bin/zopfli
bin/zopflipng
include/zopfli/blocksplitter.h
include/zopfli/cache.h
include/zopfli/deflate.h
include/zopfli/gzip_container.h
include/zopfli/hash.h
include/zopfli/katajainen.h
include/zopfli/lz77.h
include/zopfli/squeeze.h
include/zopfli/tree.h
include/zopfli/util.h
include/zopfli/zlib_container.h
include/zopfli/zopfli.h
include/zopflipng/lodepng/lodepng.h
include/zopflipng/lodepng/lodepng_util.h
include/zopflipng/zopflipng_lib.h
lib/libzopfli.so
lib/libzopfli.so.1
lib/libzopfli.so.1.0.1
lib/libzopflipng.so
lib/libzopflipng.so.1
lib/libzopflipng.so.1.0.0

View File

@ -18,9 +18,12 @@ USES= cmake
OPTIONS_DEFINE= ALSA ASSEMBLY FAAC FAAD FLAC LAME AO CUE MAC4DECODER \
MACDECODER MPG123 NCURSES OSS QT4 SDK TAGLIB VORBIS \
WAVDECODER WAVENCODER WMA
OPTIONS_DEFAULT= ASSEMBLY FAAC FAAD FLAC LAME CUE MAC4DECODER \
OPTIONS_DEFAULT= FAAC FAAD FLAC LAME CUE MAC4DECODER \
MPG123 NCURSES OSS QT4 TAGLIB VORBIS WAVDECODER \
WAVENCODER WMA
OPTIONS_DEFAULT_amd64= ASSEMBLY
OPTIONS_DEFAULT_i386= ASSEMBLY
OPTIONS_SUB= yes
ALSA_LIB_DEPENDS= libasound.so:${PORTSDIR}/audio/alsa-lib

View File

@ -2,7 +2,7 @@
# $FreeBSD$
PORTNAME= mpg123
PORTVERSION= 1.22.3
PORTVERSION= 1.22.4
CATEGORIES= audio ipv6
MASTER_SITES= SF \
http://www.mpg123.de/download/

View File

@ -1,2 +1,2 @@
SHA256 (mpg123-1.22.3.tar.bz2) = 23d2a843c3efc746a326eb4e56d5488b4c67fa6c3c7c71f4d26d98ee4c1f5c2d
SIZE (mpg123-1.22.3.tar.bz2) = 870218
SHA256 (mpg123-1.22.4.tar.bz2) = 5069e02e50138600f10cc5f7674e44e9bf6f1930af81d0e1d2f869b3c0ee40d2
SIZE (mpg123-1.22.4.tar.bz2) = 870889

View File

@ -5,7 +5,7 @@ bin/out123
include/mpg123.h
lib/libmpg123.so
lib/libmpg123.so.0
lib/libmpg123.so.0.41.1
lib/libmpg123.so.0.41.2
lib/mpg123/output_dummy.so
lib/mpg123/output_oss.so
libdata/pkgconfig/libmpg123.pc

View File

@ -1,4 +1,4 @@
Ogginfo gives you access to low level information on ogg files (bitrate,
length, samplerate, encoder, etc... ), as well as tag.
WWW: http://rubygems.org/gems/ruby-ogginfo/
WWW: https://github.com/moumar/ruby-ogginfo

View File

@ -2,20 +2,21 @@
PORTNAME= chirp
PORTVERSION= 0.4.1
PORTREVISION= 1
PORTREVISION= 2
CATEGORIES= comms hamradio
MASTER_SITES= http://chirp.danplanet.com/download/${PORTVERSION}/ \
LOCAL/db
MAINTAINER= hamradio@FreeBSD.org
COMMENT= Chirp is a free, open-source tool for programming your amateur radio
COMMENT= Free, open-source tool for programming your amateur radio
LICENSE= GPLv3
BUILD_DEPENDS= ${PYTHON_SITELIBDIR}/serial:${PORTSDIR}/comms/py-serial \
${PYTHON_SITELIBDIR}/libxml2.py:${PORTSDIR}/textproc/py-libxml2
BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}libxml2>0:${PORTSDIR}/textproc/py-libxml2 \
${PYTHON_PKGNAMEPREFIX}serial>0:${PORTSDIR}/comms/py-serial
RUN_DEPENDS= ${BUILD_DEPENDS}
USES= gettext python desktop-file-utils
USES= desktop-file-utils gettext python
USE_PYTHON= distutils
OPTIONS_DEFINE= DOCS

View File

@ -1,7 +1,7 @@
# $FreeBSD$
PORTNAME= fldigi
PORTVERSION= 3.22.10
PORTVERSION= 3.22.13
CATEGORIES= comms hamradio
MASTER_SITES= http://www.w1hkj.com/downloads/fldigi/\
LOCAL/shurd
@ -22,7 +22,7 @@ LIB_DEPENDS= libexecinfo.so:${PORTSDIR}/devel/libexecinfo \
USE_CXXSTD= gnu++0x
GNU_CONFIGURE= yes
USES= gmake pkgconfig compiler:c++11-lib perl5 shebangfix
USES= compiler:c++11-lib gmake perl5 pkgconfig shebangfix
CONFIGURE_ENV= FLTK_CONFIG="${LOCALBASE}/bin/fltk-config" \
EXTRA_LIBS="-lexecinfo"
@ -79,10 +79,8 @@ post-configure:
${RM} ${WRKSRC}/doc/*.1
post-install:
.if ${PORT_OPTIONS:MDOCS}
${MKDIR} ${STAGEDIR}${DOCSDIR}
${INSTALL_DATA} ${WRKSRC}/README ${STAGEDIR}${DOCSDIR}
${INSTALL_DATA} ${WRKSRC}/doc/guide.html ${STAGEDIR}${DOCSDIR}
.endif
.include <bsd.port.post.mk>

View File

@ -1,2 +1,2 @@
SHA256 (fldigi-3.22.10.tar.gz) = 5b31d111b7158936ad7cf5317c91c99ef811686cafbb73ab2f26a044676a6a39
SIZE (fldigi-3.22.10.tar.gz) = 2876358
SHA256 (fldigi-3.22.13.tar.gz) = f055b607dd28bde847541bd4518e5ceac49e0eccf4bda97c4c589d598c4a3baf
SIZE (fldigi-3.22.13.tar.gz) = 2909523

View File

@ -0,0 +1,14 @@
--- src/fsq/fsq.cxx.orig 2015-08-15 03:43:43 UTC
+++ src/fsq/fsq.cxx
@@ -1198,8 +1198,9 @@ int fsq::rx_process(const double *buf, i
BLOCK_SIZE*sizeof(*rx_stream)); // # bytes
memset(fft_data, 0, sizeof(fft_data));
for (int i = 0; i < BLOCK_SIZE; i++)
- fft_data[i].real() = fft_data[i].imag() =
- rx_stream[i] * a_blackman[i];
+ fft_data[i] = complex <double>
+ (rx_stream[i] * a_blackman[i],
+ rx_stream[i] * a_blackman[i]);
fft->ComplexFFT(fft_data);
process_tones();
}

View File

@ -1,8 +1,7 @@
# $FreeBSD$
PORTNAME= qsstv
PORTVERSION= 8.2.11
PORTREVISION= 1
PORTVERSION= 8.2.12
CATEGORIES= comms hamradio
MASTER_SITES= http://users.telenet.be/on4qz/qsstv/downloads/ \
LOCAL/shurd
@ -22,7 +21,6 @@ BUILD_DEPENDS= v4l_compat>=0:${PORTSDIR}/multimedia/v4l_compat
USES= qmake
USE_QT4= gui network xml moc_build rcc_build uic_build
.include <bsd.port.options.mk>
PLIST_FILES= bin/qsstv
.include <bsd.port.mk>

View File

@ -1,2 +1,2 @@
SHA256 (qsstv_8.2.11.tar.gz) = c948c104e58664f4da8001f7a14c76cfeb46664ae0bbdfb7f5e22cac9de1aa77
SIZE (qsstv_8.2.11.tar.gz) = 1055598
SHA256 (qsstv_8.2.12.tar.gz) = 3bb6cff072747981d387196780de4414f8766a5a620dc1629cb4ba4de1d3bc4d
SIZE (qsstv_8.2.12.tar.gz) = 942737

View File

@ -1,6 +1,6 @@
--- qsstv/configform.ui.orig 2014-04-10 15:00:46.000000000 -0700
+++ qsstv/configform.ui 2014-04-10 15:00:52.000000000 -0700
@@ -2293,7 +2293,6 @@
--- qsstv/configform.ui.orig 2014-12-06 14:41:00 UTC
+++ qsstv/configform.ui
@@ -2611,7 +2611,6 @@
</layout>
</widget>
<layoutdefault spacing="6" margin="11"/>

View File

@ -1,5 +1,5 @@
--- qsstv/drmrx/channeldecode.cpp.orig 2014-04-08 02:02:06.000000000 -0700
+++ qsstv/drmrx/channeldecode.cpp 2014-04-08 02:03:28.000000000 -0700
--- qsstv/drmrx/channeldecode.cpp.orig 2014-12-06 14:41:00 UTC
+++ qsstv/drmrx/channeldecode.cpp
@@ -29,7 +29,6 @@
#include <stdlib.h>
#include <sys/types.h>

View File

@ -1,5 +1,5 @@
--- qsstv/drmrx/deinterleaver.cpp.orig 2014-04-08 02:02:11.000000000 -0700
+++ qsstv/drmrx/deinterleaver.cpp 2014-04-08 02:03:30.000000000 -0700
--- qsstv/drmrx/deinterleaver.cpp.orig 2014-12-06 14:41:00 UTC
+++ qsstv/drmrx/deinterleaver.cpp
@@ -30,7 +30,6 @@
#include <stdio.h>

View File

@ -1,6 +1,6 @@
--- qsstv/drmrx/demodulator.cpp.orig 2014-04-10 14:48:35.000000000 -0700
+++ qsstv/drmrx/demodulator.cpp 2014-04-10 14:49:48.000000000 -0700
@@ -941,7 +941,7 @@
--- qsstv/drmrx/demodulator.cpp.orig 2014-12-06 14:41:00 UTC
+++ qsstv/drmrx/demodulator.cpp
@@ -941,7 +941,7 @@ bool demodulator::channelEstimation()
temp2 += actual_pilots[2 * j] * next_pilots[2 * j + 1] -actual_pilots[2 * j + 1] * next_pilots[2 * j];
}

View File

@ -1,5 +1,5 @@
--- qsstv/drmrx/getmode.cpp.orig 2014-04-08 02:02:16.000000000 -0700
+++ qsstv/drmrx/getmode.cpp 2014-04-08 02:03:32.000000000 -0700
--- qsstv/drmrx/getmode.cpp.orig 2014-12-06 14:41:00 UTC
+++ qsstv/drmrx/getmode.cpp
@@ -34,7 +34,6 @@
#include <stdlib.h>
#include <math.h>

View File

@ -1,5 +1,5 @@
--- qsstv/drmrx/mkfacmap.cpp.orig 2014-04-08 02:02:22.000000000 -0700
+++ qsstv/drmrx/mkfacmap.cpp 2014-04-08 02:03:34.000000000 -0700
--- qsstv/drmrx/mkfacmap.cpp.orig 2014-12-06 14:41:00 UTC
+++ qsstv/drmrx/mkfacmap.cpp
@@ -27,7 +27,6 @@
#include <stdio.h>

View File

@ -1,5 +1,5 @@
--- qsstv/drmrx/mkmscmap.cpp.orig 2014-04-08 02:02:32.000000000 -0700
+++ qsstv/drmrx/mkmscmap.cpp 2014-04-08 02:03:36.000000000 -0700
--- qsstv/drmrx/mkmscmap.cpp.orig 2014-12-06 14:41:00 UTC
+++ qsstv/drmrx/mkmscmap.cpp
@@ -32,7 +32,6 @@
#include <stdlib.h>
#include <sys/types.h>

View File

@ -1,5 +1,5 @@
--- qsstv/drmrx/psdcmean.cpp.orig 2014-04-08 02:02:38.000000000 -0700
+++ qsstv/drmrx/psdcmean.cpp 2014-04-08 02:03:38.000000000 -0700
--- qsstv/drmrx/psdcmean.cpp.orig 2014-12-06 14:41:00 UTC
+++ qsstv/drmrx/psdcmean.cpp
@@ -36,7 +36,6 @@
#include <stdlib.h>
#include <math.h>

View File

@ -1,5 +1,5 @@
--- qsstv/drmrx/psdmean.cpp.orig 2014-04-08 02:02:47.000000000 -0700
+++ qsstv/drmrx/psdmean.cpp 2014-04-08 02:03:40.000000000 -0700
--- qsstv/drmrx/psdmean.cpp.orig 2014-12-06 14:41:00 UTC
+++ qsstv/drmrx/psdmean.cpp
@@ -36,7 +36,6 @@
#include <stdlib.h>
#include <math.h>

View File

@ -1,6 +1,6 @@
--- qsstv/qsstv.pro.orig 2014-12-06 06:41:00.000000000 -0800
+++ qsstv/qsstv.pro 2014-12-07 16:17:46.000000000 -0800
@@ -420,20 +420,17 @@
--- qsstv/qsstv.pro.orig 2014-12-06 14:41:00 UTC
+++ qsstv/qsstv.pro
@@ -420,20 +420,17 @@ HEADERS += scope/scopeoffset.h \
FORMS += scope/scopeoffset.ui \
scope/plotform.ui

View File

@ -1,6 +1,6 @@
--- qsstv/sound/soundcontrol.cpp.orig 2014-04-09 10:27:08.000000000 -0700
+++ qsstv/sound/soundcontrol.cpp 2014-04-09 10:27:28.000000000 -0700
@@ -53,8 +53,8 @@
--- qsstv/sound/soundcontrol.cpp.orig 2014-12-06 14:41:00 UTC
+++ qsstv/sound/soundcontrol.cpp
@@ -53,8 +53,8 @@ void soundControl::readSettings()
txClock=qSettings.value("txclock",BASESAMPLERATE).toDouble();
if(fabs(1-rxClock/BASESAMPLERATE)>0.002) rxClock=BASESAMPLERATE;
if(fabs(1-txClock/BASESAMPLERATE)>0.002) txClock=BASESAMPLERATE;
@ -11,7 +11,7 @@
soundIOPtr->soundRoutingInput= (soundIO::edataSrc)qSettings.value("soundRoutingInput", 0 ).toInt();
soundIOPtr->soundRoutingOutput= (soundIO::edataDst)qSettings.value("soundRoutingOutput", 0 ).toInt();
soundIOPtr->recordingSize= qSettings.value("recordingSize", 100 ).toInt();
@@ -69,8 +69,8 @@
@@ -69,8 +69,8 @@ void soundControl::writeSettings()
qSettings.beginGroup("Sound");
qSettings.setValue("rxclock",rxClock);
qSettings.setValue("txclock",txClock);
@ -22,7 +22,7 @@
qSettings.setValue ("soundRoutingInput", soundIOPtr->soundRoutingInput );
qSettings.setValue ("soundRoutingOutput",soundIOPtr->soundRoutingOutput );
qSettings.setValue ("recordingSize",soundIOPtr->recordingSize );
@@ -82,8 +82,8 @@
@@ -82,8 +82,8 @@ void soundControl::setParams()
{
setValue(rxClock,ui->inputClockLineEdit,9);
setValue(txClock,ui->outputClockLineEdit,9);
@ -33,7 +33,7 @@
soundIOPtr->inputAudioDevice=ui->inputPCMNameComboBox->currentText();
soundIOPtr->outputAudioDevice=ui->outputPCMNameComboBox->currentText();
@@ -99,13 +99,13 @@
@@ -99,13 +99,13 @@ void soundControl::setParams()
void soundControl::getParams()
{
changed=false;
@ -51,7 +51,7 @@
if (ui->inFromCard->isChecked()) soundIOPtr->soundRoutingInput=soundIO::SNDINCARD;
else if(ui->inFromFile->isChecked()) soundIOPtr->soundRoutingInput=soundIO::SNDINFILE;
@@ -114,7 +114,7 @@
@@ -114,7 +114,7 @@ void soundControl::getParams()
if (ui->outToCard->isChecked()) soundIOPtr->soundRoutingOutput=soundIO::SNDOUTCARD;
else soundIOPtr->soundRoutingOutput=soundIO::SNDOUTTOFILE;
getValue(soundIOPtr->recordingSize,ui->mbSpinBox);

View File

@ -1,6 +1,6 @@
--- qsstv/sound/soundcontrol.h.orig 2014-04-09 10:27:16.000000000 -0700
+++ qsstv/sound/soundcontrol.h 2014-04-09 10:27:28.000000000 -0700
@@ -22,8 +22,8 @@
--- qsstv/sound/soundcontrol.h.orig 2014-12-06 14:41:00 UTC
+++ qsstv/sound/soundcontrol.h
@@ -22,8 +22,8 @@ public:
private:
Ui::soundControl *ui;

View File

@ -1,6 +1,6 @@
--- qsstv/sound/soundio.cpp.orig 2014-04-03 11:15:08.000000000 -0700
+++ qsstv/sound/soundio.cpp 2014-04-09 21:47:59.000000000 -0700
@@ -328,7 +328,9 @@
--- qsstv/sound/soundio.cpp.orig 2015-02-28 15:05:28 UTC
+++ qsstv/sound/soundio.cpp
@@ -328,7 +328,9 @@ int soundIO::capture()
if ( count == -EPIPE )
{
// Overrun
@ -11,7 +11,7 @@
snd_pcm_start (captureHandle);
qDebug()<< "Overrun";
}
@@ -573,8 +575,6 @@
@@ -573,8 +575,6 @@ bool soundIO::listCards()
// int totalDevices;
snd_pcm_info_t *pcmInfo;
snd_ctl_t *cardHandle;
@ -20,7 +20,7 @@
// No cards found yet
totalCards = 0;
@@ -582,6 +582,11 @@
@@ -582,6 +582,11 @@ bool soundIO::listCards()
// Start with first card
cardNum = -1;
@ -32,7 +32,7 @@
for (;;)
{
@@ -599,8 +604,6 @@
@@ -599,8 +604,6 @@ bool soundIO::listCards()
qDebug() << "Can't open card "<< cardNum << snd_strerror(err);
continue;
}
@ -41,7 +41,7 @@
// Tell ALSA to fill in our snd_ctl_card_info_t with info about this card
if ((err = snd_ctl_card_info(cardHandle, cardInfo)) >= 0)
@@ -619,9 +622,6 @@
@@ -619,9 +622,6 @@ bool soundIO::listCards()
// NOTE: It's possible that this sound card may have no wave devices on it
// at all, for example if it's only a MIDI card
if (devNum < 0) break;
@ -51,7 +51,7 @@
memset(pcmInfo, 0, snd_pcm_info_sizeof());
// Tell ALSA which device (number) we want info about
@@ -636,6 +636,22 @@
@@ -636,6 +636,22 @@ bool soundIO::listCards()
// qDebug() << "Found:" << totalDevices << " digital audio devices on card " << cardNum;
}

View File

@ -1,5 +1,5 @@
--- qsstv/widgets/freqform.ui.orig 2014-04-10 14:59:37.000000000 -0700
+++ qsstv/widgets/freqform.ui 2014-04-10 14:59:45.000000000 -0700
--- qsstv/widgets/freqform.ui.orig 2014-12-06 14:41:00 UTC
+++ qsstv/widgets/freqform.ui
@@ -242,7 +242,6 @@
</layout>
</widget>

View File

@ -1,5 +1,5 @@
--- qsstv/widgets/sweepform.ui.orig 2014-04-10 15:00:13.000000000 -0700
+++ qsstv/widgets/sweepform.ui 2014-04-10 15:00:18.000000000 -0700
--- qsstv/widgets/sweepform.ui.orig 2014-12-06 14:41:00 UTC
+++ qsstv/widgets/sweepform.ui
@@ -248,7 +248,6 @@
</layout>
</widget>

View File

@ -1,6 +1,6 @@
--- qwt/qwt.pro.orig 2014-11-22 18:51:18.000000000 -0800
+++ qwt/qwt.pro 2014-11-22 18:51:34.000000000 -0800
@@ -209,5 +209,4 @@
--- qwt/qwt.pro.orig 2014-12-06 14:41:00 UTC
+++ qwt/qwt.pro
@@ -209,5 +209,4 @@ unix:!symbian {
} else {
target.path = /usr/lib
}

View File

@ -1 +0,0 @@
bin/qsstv

View File

@ -2,8 +2,7 @@
# $FreeBSD$
PORTNAME= quisk
PORTVERSION= 3.6.22
PORTREVISION= 1
PORTVERSION= 3.7.4
CATEGORIES= comms hamradio
MASTER_SITES= http://james.ahlstrom.name/quisk/ \
LOCAL/shurd

View File

@ -1,2 +1,2 @@
SHA256 (quisk-3.6.22.tar.gz) = 909427e525a78b31f17175fce2a14f5536194ab66aa3e41fdd0468c3b8ceb6e7
SIZE (quisk-3.6.22.tar.gz) = 1678143
SHA256 (quisk-3.7.4.tar.gz) = 18b1895d098b0e087d6ae9fa38859fc46e6f5d3c92b2efbe40d1d79719ad4c59
SIZE (quisk-3.7.4.tar.gz) = 2207348

View File

@ -2,63 +2,42 @@
# $FreeBSD$
PORTNAME= syncterm
PORTVERSION= 0.9.${PORTVER}
PORTREVISION= 2
PORTVERSION= 1.0
CATEGORIES= comms
MASTER_SITES= SF/${PORTNAME}/${PORTNAME}/${PORTNAME}-0.9.5
DISTNAME= syncterm-src-${PORTVER}
MASTER_SITES= SF/${PORTNAME}/${PORTNAME}/${PORTNAME}-${PORTVERSION}
MAINTAINER= shurd@FreeBSD.org
COMMENT= ANSI-BBS terminal which supports telnet, rlogin, and SSH
LICENSE= GPLv2
WRKSRC= ${WRKDIR}/syncterm-${PORTVER}/src/syncterm
USES= gmake tar:tgz
WRKSRC= ${WRKDIR}/syncterm-${PORTVERSION}/src/syncterm
USES= gmake tar:tgz perl5
USE_PERL5= build
MAKEFILE= GNUmakefile
MAKE_ARGS+= DONT_CLOBBER_CC=please
PORTVER= 20140603
INSTALLS_ICONS= yes
PLIST_FILES= bin/syncterm \
man/man1/syncterm.1.gz \
share/applications/syncterm.desktop \
share/icons/hicolor/64x64/apps/syncterm.png
OPTIONS_DEFINE= X11 SDL DEBUG
OPTIONS_DEFAULT= X11 SDL
.include <bsd.port.options.mk>
ONLY_FOR_ARCHS= i386 amd64
ONLY_FOR_ARCHS_REASON= does not configure except on i386 amd64
.if ${ARCH} == "i386" || ${ARCH} == "amd64"
LIB_DEPENDS+= libcl.so:${PORTSDIR}/security/cryptlib
MAKE_ARGS+= CRYPTLIBINCLUDE=${LOCALBASE}/include
MAKE_ARGS+= CRYPTLIBDIR=${LOCALBASE}/lib
.else
MAKE_ARGS+= WITHOUT_CRYPTLIB=yes
.endif
DISABLE_MAKE_JOBS= yes
MAKE_ARGS+= WITHOUT_PORTAUDIO=yes
MAKE_ARGS+= -C ${WRKSRC}
MAKE_ARGS+= PREFIX="${PREFIX}"
MAKE_ARGS+= INSTALL_EXE="${INSTALL_PROGRAM}"
.if ${PORT_OPTIONS:MX11}
USE_XORG= x11
.else
MAKE_ARGS+= NO_X=1
.endif
.if ${PORT_OPTIONS:MSDL}
USE_SDL= sdl
MAKE_ARGS+= USE_SDL=1
.endif
.if ${PORT_OPTIONS:MDEBUG}
MAKE_ARGS+= DEBUG=1
.else
MAKE_ARGS+= RELEASE=1
.endif
pre-build:
if ( nm -D ${LOCALBASE}/lib/libcl.so | ${GREP} 'U __stack_chk_fail_local' ) then echo "LDFLAGS+=-fstack-protector" >> ${WRKSRC}/localdefs.mk ; fi
OPTIONS_DEFINE= X11 SDL
OPTIONS_DEFAULT= X11 SDL
X11_USE= xorg=x11
X11_MAKE_ARGS_OFF= NO_X=1
SDL_USE= SDL=sdl
SDL_MAKE_ARGS= USE_SDL=1
SDL_MAKE_ARGS_OFF= WITHOUT_SDL=1
ONLY_FOR_ARCHS= i386 amd64
ONLY_FOR_ARCHS_REASON= does not configure except on i386 amd64
.include <bsd.port.mk>

View File

@ -1,2 +1,2 @@
SHA256 (syncterm-src-20140603.tgz) = 6ef3a36ab1c106b7f1a390630d937f63371b3806243cfe49dee5658ad230db7e
SIZE (syncterm-src-20140603.tgz) = 8153746
SHA256 (syncterm-1.0.tgz) = e77f28580b22b6ea077ab377be15a35b5a965adb731cec9a71573647fe824b37
SIZE (syncterm-1.0.tgz) = 8310619

View File

@ -4,7 +4,7 @@
# it still works as well.
PORTNAME?= unixcw
PORTVERSION= 3.4.1
PORTVERSION= 3.4.2
CATEGORIES= comms hamradio
MASTER_SITES= SF/unixcw/unixcw-${PORTVERSION}
DISTNAME= unixcw_${PORTVERSION}.orig
@ -28,6 +28,6 @@ USE_CSTD= gnu99
WRKSRC= ${WRKDIR}/unixcw-${PORTVERSION}
post-install:
${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libcw.so.6.3.1
${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libcw.so.6.4.1
.include <bsd.port.mk>

View File

@ -1,2 +1,2 @@
SHA256 (unixcw_3.4.1.orig.tar.gz) = dc948b495fe76654cede5cd607ea0e3be73959f7af8e6ba8a0c57e314a7637e0
SIZE (unixcw_3.4.1.orig.tar.gz) = 673658
SHA256 (unixcw_3.4.2.orig.tar.gz) = 8c26f80861cb88de7554f1d693fb6288cf49ab5c7a6af31ee727860f56d76075
SIZE (unixcw_3.4.2.orig.tar.gz) = 710813

View File

@ -1,6 +1,6 @@
--- src/libcw/Makefile.in.orig 2014-12-12 03:00:52.000000000 -0800
+++ src/libcw/Makefile.in 2014-12-12 03:04:21.000000000 -0800
@@ -663,7 +663,7 @@
--- src/libcw/Makefile.in.orig 2015-06-10 20:55:54 UTC
+++ src/libcw/Makefile.in
@@ -690,7 +690,7 @@ libcw_test_simple_gen_LDADD = -lm -lpthr
libcw_test_simple_gen_CFLAGS = -rdynamic
# target: libcw.pc

View File

@ -6,7 +6,7 @@ include/libcw_debug.h
lib/libcw.a
lib/libcw.so
lib/libcw.so.6
lib/libcw.so.6.3.1
lib/libcw.so.6.4.1
libdata/pkgconfig/libcw.pc
man/man1/cw.1.gz
man/man1/cwgen.1.gz

View File

@ -2,8 +2,7 @@
# $FreeBSD$
PORTNAME= xnec2c
PORTVERSION= 3.3
PORTEVISION= 1
PORTVERSION= 3.4
CATEGORIES= comms hamradio
MASTER_SITES= http://www.qsl.net/5b4az/pkg/nec2/xnec2c/ \
LOCAL/shurd

View File

@ -1,2 +1,2 @@
SHA256 (xnec2c-3.3.tar.bz2) = 53914ea4ddf9d349551c2ce52693621e87dde0c8a9df7807fae99d6e02630242
SIZE (xnec2c-3.3.tar.bz2) = 921522
SHA256 (xnec2c-3.4.tar.bz2) = 92f25ee844d58109f99839854afacc14c37f4fdbc79f9d00c3a6c5f56248e537
SIZE (xnec2c-3.4.tar.bz2) = 922548

View File

@ -1,5 +1,5 @@
--- src/common.h.orig 2014-06-08 17:50:43.000000000 -0700
+++ src/common.h 2014-06-08 17:50:53.000000000 -0700
--- src/common.h.orig 2015-04-10 07:22:25 UTC
+++ src/common.h
@@ -37,6 +37,7 @@
#include <sys/types.h>
#include <sys/times.h>

View File

@ -1,5 +1,5 @@
--- src/somnec.c.orig 2013-12-01 23:01:31.000000000 -0800
+++ src/somnec.c 2014-06-08 17:51:47.000000000 -0700
--- src/somnec.c.orig 2015-02-18 05:31:10 UTC
+++ src/somnec.c
@@ -38,6 +38,9 @@
#include "somnec.h"
#include "shared.h"

View File

@ -2,7 +2,6 @@
# $FreeBSD$
PORTNAME= mysql
PORTREVISION= 2
PKGNAMESUFFIX= 56-client
COMMENT= Multithreaded SQL database (client)

View File

@ -2,7 +2,7 @@
# $FreeBSD$
PORTNAME?= mysql
PORTVERSION= 5.6.25
PORTVERSION= 5.6.26
PORTREVISION?= 0
CATEGORIES= databases ipv6
MASTER_SITES= MYSQL/MySQL-5.6

View File

@ -1,2 +1,2 @@
SHA256 (mysql-5.6.25.tar.gz) = 15079c0b83d33a092649cbdf402c9225bcd3f33e87388407be5cdbf1432c7fbd
SIZE (mysql-5.6.25.tar.gz) = 33203321
SHA256 (mysql-5.6.26.tar.gz) = b44c6ce5f95172c56c73edfa8b710b39242ec7af0ab182c040208c41866e5070
SIZE (mysql-5.6.26.tar.gz) = 33278710

View File

@ -2,7 +2,7 @@
# $FreeBSD$
PORTNAME= Mojo-Pg
PORTVERSION= 2.07
PORTVERSION= 2.08
CATEGORIES= databases www perl5
MASTER_SITES= CPAN
MASTER_SITE_SUBDIR= CPAN:SRI

View File

@ -1,2 +1,2 @@
SHA256 (Mojo-Pg-2.07.tar.gz) = 5d4584cc15a315ac909c6b81cd905ddacf175c41b8f1bf8d9568b1fb73b73cd5
SIZE (Mojo-Pg-2.07.tar.gz) = 23500
SHA256 (Mojo-Pg-2.08.tar.gz) = 9d0b0e183ae07183e6095dba7849285a07611ca9bc897f4a97bcfc4fc999a26b
SIZE (Mojo-Pg-2.08.tar.gz) = 23651

View File

@ -58,16 +58,10 @@ RASTER_CONFIGURE_ON= --with-gdalconfig=${LOCALBASE}/bin/gdal-config --with-raste
RASTER_LIB_DEPENDS= libgdal.so:${PORTSDIR}/graphics/gdal
TOPOLOGY_CONFIGURE_WITH=topology
.include <bsd.port.pre.mk>
.if ${PORT_OPTIONS:MRASTER} && ${OSVERSION} < 900033
BROKEN= Raster support is broken on FreeBSD 8.x
.endif
post-install:
${MKDIR} ${STAGEDIR}/${DATADIR}/utils/ ${STAGEDIR}/${DATADIR}/tiger_2010/
cd ${WRKSRC}/utils/ && ${COPYTREE_SHARE} . ${STAGEDIR}/${DATADIR}/utils/
cd ${WRKSRC}/extras/tiger_geocoder/tiger_2010/ && ${COPYTREE_SHARE} . ${STAGEDIR}/${DATADIR}/tiger_2010/
${STRIP_CMD} ${STAGEDIR}/${PREFIX}/bin/* ${STAGEDIR}/${PREFIX}/lib/*.so ${STAGEDIR}/${PREFIX}/lib/postgresql/*.so
.include <bsd.port.post.mk>
.include <bsd.port.mk>

View File

@ -3,6 +3,7 @@
PORTNAME= gnote
PORTVERSION= 3.16.2
PORTREVISION= 1
CATEGORIES= deskutils gnome
MASTER_SITES= GNOME

View File

@ -741,6 +741,7 @@ share/locale/lv/LC_MESSAGES/gnote.mo
share/locale/ml/LC_MESSAGES/gnote.mo
share/locale/mr/LC_MESSAGES/gnote.mo
share/locale/nb/LC_MESSAGES/gnote.mo
share/locale/oc/LC_MESSAGES/gnote.mo
share/locale/or/LC_MESSAGES/gnote.mo
share/locale/pa/LC_MESSAGES/gnote.mo
share/locale/pl/LC_MESSAGES/gnote.mo

View File

@ -2,7 +2,7 @@
# $FreeBSD$
PORTNAME= treesheets
PORTVERSION= 0.0.20150519
PORTVERSION= 0.0.20150711
CATEGORIES= deskutils
MAINTAINER= lightside@gmx.com
@ -13,10 +13,12 @@ LICENSE_FILE= ${WRKSRC}/ZLIB_LICENSE.txt
USE_GITHUB= yes
GH_ACCOUNT= aardappel
GH_TAGNAME= 69990a2
GH_TAGNAME= 3a6be83
BUILD_WRKSRC= ${WRKSRC}/src
EXTRACT_AFTER_ARGS= --exclude .gitignore
PACKAGE_VERSION= \"${PORTVERSION}\"
MAKE_ENV= PACKAGE_VERSION=${PACKAGE_VERSION:Q}
USES= compiler:c++11-lib
USE_WX= 3.0+

View File

@ -1,2 +1,2 @@
SHA256 (aardappel-treesheets-0.0.20150519-69990a2_GH0.tar.gz) = 2abc2073340474859c510c4b8d68feb73b12932ae17f763bd37ad13c44a630a9
SIZE (aardappel-treesheets-0.0.20150519-69990a2_GH0.tar.gz) = 1788998
SHA256 (aardappel-treesheets-0.0.20150711-3a6be83_GH0.tar.gz) = 93929ac8d470e697e4ee33b6e79ca91f6e40502316ad199e86846824dd284a4e
SIZE (aardappel-treesheets-0.0.20150711-3a6be83_GH0.tar.gz) = 1789118

View File

@ -2434,6 +2434,8 @@
SUBDIR += p5-List-Flatten
SUBDIR += p5-List-Gen
SUBDIR += p5-List-Group
SUBDIR += p5-List-Objects-Types
SUBDIR += p5-List-Objects-WithUtils
SUBDIR += p5-List-Permutor
SUBDIR += p5-List-PowerSet
SUBDIR += p5-List-Rotation-Cycle

View File

@ -2,7 +2,7 @@
# $FreeBSD$
PORTNAME= evaluate
PORTVERSION= 0.7
PORTVERSION= 0.7.2
CATEGORIES= devel
DISTNAME= ${PORTNAME}_${PORTVERSION}

View File

@ -1,2 +1,2 @@
SHA256 (evaluate_0.7.tar.gz) = 731d91d8de223bab974461aea72e579fbb01b670e03e446d8ce12fa5fd45056a
SIZE (evaluate_0.7.tar.gz) = 17707
SHA256 (evaluate_0.7.2.tar.gz) = bb9f8cba7d6873cce7f6ebf00df681e546353820421d2a0e49fc04d4c4a09264
SIZE (evaluate_0.7.2.tar.gz) = 17928

View File

@ -1,7 +1,7 @@
# $FreeBSD$
DISTVERSION= m-preview-190
DISTVERSIONSUFFIX= -g683790a
DISTVERSION= m-preview-890
DISTVERSIONSUFFIX= -g94a845d
PORTREVISION= 0
PKGNAMESUFFIX= -devel

View File

@ -1,4 +1,4 @@
SHA256 (android-platform_system_core-android-m-preview-190-g683790a_GH0.tar.gz) = 326d855249844a20feee9c5e826a34cf675965d2785ae513c9b5f592d3187faa
SIZE (android-platform_system_core-android-m-preview-190-g683790a_GH0.tar.gz) = 1185812
SHA256 (android-platform_system_core-android-m-preview-890-g94a845d_GH0.tar.gz) = c10c0b901070721a74a5c84b4de83e92bd61cbb7093e4b14ba54fafb817f4ed9
SIZE (android-platform_system_core-android-m-preview-890-g94a845d_GH0.tar.gz) = 1336992
SHA256 (bash_completion.d/adb?id=2b8cfec) = 0d7989596a3e4937834d582eb0ddc88b8186505570772304fe51870d473916a7
SIZE (bash_completion.d/adb?id=2b8cfec) = 5198

View File

@ -1,12 +1,12 @@
# $FreeBSD$
DISTVERSION= m-preview-190
DISTVERSIONSUFFIX= -g683790a
PORTREVISION= 1
DISTVERSION= m-preview-890
DISTVERSIONSUFFIX= -g94a845d
PORTREVISION= 0
PKGNAMESUFFIX= -devel
GH_TAGNAME= m-preview-100-gdece0f9:extras \
m-preview-6-g6d0b91b:libselinux
GH_TAGNAME= ${DISTVERSIONFULL:C/-[0-9].*//}-136-g89a2254:extras \
${DISTVERSIONFULL:C/-[0-9].*//}-17-g95736e8:libselinux
CONFLICTS_INSTALL= ${PORTNAME}-[0-9]*

View File

@ -2,9 +2,9 @@ SHA256 (bash_completion.d/fastboot?id=2b8cfec) = 12ef37bff8230e5e164e4ef5b9c1be1
SIZE (bash_completion.d/fastboot?id=2b8cfec) = 3051
SHA256 (fastboot.1?id=706e754) = 2af01b064440952a82f1602691a0fecc030302722a71444946fb70d9c423d283
SIZE (fastboot.1?id=706e754) = 5906
SHA256 (android-platform_system_core-android-m-preview-190-g683790a_GH0.tar.gz) = 326d855249844a20feee9c5e826a34cf675965d2785ae513c9b5f592d3187faa
SIZE (android-platform_system_core-android-m-preview-190-g683790a_GH0.tar.gz) = 1185812
SHA256 (jbeich-platform_system_extras-m-preview-100-gdece0f9_GH0.tar.gz) = 39beaaafb7bb903d75eeda4ecc9e8e9a10c37d966c89b0967d617c8ee641b894
SIZE (jbeich-platform_system_extras-m-preview-100-gdece0f9_GH0.tar.gz) = 666874
SHA256 (jbeich-platform_external_libselinux-m-preview-6-g6d0b91b_GH0.tar.gz) = 67b529cb3f7281622de3d22618ee0c8674099fb40f6fc01f819848e6d4cb4014
SIZE (jbeich-platform_external_libselinux-m-preview-6-g6d0b91b_GH0.tar.gz) = 56984
SHA256 (android-platform_system_core-android-m-preview-890-g94a845d_GH0.tar.gz) = c10c0b901070721a74a5c84b4de83e92bd61cbb7093e4b14ba54fafb817f4ed9
SIZE (android-platform_system_core-android-m-preview-890-g94a845d_GH0.tar.gz) = 1336992
SHA256 (jbeich-platform_system_extras-android-m-preview-136-g89a2254_GH0.tar.gz) = 33813515ba14743085b8e95a4a74025ac4cefd7d308d5870cc8e279ef5380d4a
SIZE (jbeich-platform_system_extras-android-m-preview-136-g89a2254_GH0.tar.gz) = 665360
SHA256 (jbeich-platform_external_libselinux-android-m-preview-17-g95736e8_GH0.tar.gz) = dc1d01e7ce3199e6d68328d976d75ec04f59492bba764888d282f1d2909f57e1
SIZE (jbeich-platform_external_libselinux-android-m-preview-17-g95736e8_GH0.tar.gz) = 58318

View File

@ -17,8 +17,8 @@ USE_GITHUB= yes
GH_ACCOUNT= android:bionic,core jbeich
GH_PROJECT= platform_bionic:bionic platform_system_core:core \
platform_system_extras
GH_TAGNAME= android-m-preview-232-gb4f2112:bionic \
android-m-preview-868-gb81c410:core
GH_TAGNAME= ${DISTVERSIONFULL:C/-[0-9].*//}-232-gb4f2112:bionic \
${DISTVERSIONFULL:C/-[0-9].*//}-868-gb81c410:core
USES= compiler:c++11-lib uidfix
BUILD_WRKSRC= ${WRKSRC}/simpleperf

View File

@ -8,7 +8,7 @@ PKGNAMESUFFIX= -fppkg
MAINTAINER= freebsd-fpc@FreeBSD.org
COMMENT= Free Pascal package unit
USE_FPC= fcl-base fcl-process fcl-web fcl-xml
USE_FPC= fcl-base fcl-net fcl-passrc fcl-process fcl-web fcl-xml fpmkunit
MASTERDIR= ${.CURDIR}/../../lang/fpc
WRKUNITDIR= ${FPCSRCDIR}/packages/${PKGNAMESUFFIX:S/-//}

View File

@ -2,9 +2,9 @@
# $FreeBSD$
PORTNAME= ccid
PORTVERSION= 1.4.19
PORTVERSION= 1.4.20
CATEGORIES= devel
MASTER_SITES= https://alioth.debian.org/frs/download.php/file/4132/
MASTER_SITES= https://alioth.debian.org/frs/download.php/file/4140/
MAINTAINER= arved@FreeBSD.org
COMMENT= Generic USB CCID (Chip/Smart Card Interface Devices) driver

View File

@ -1,2 +1,2 @@
SHA256 (ccid-1.4.19.tar.bz2) = cccb2c2bb4e56689efe34559f713102d92f94735542e58d3e4334e1459e934e1
SIZE (ccid-1.4.19.tar.bz2) = 423238
SHA256 (ccid-1.4.20.tar.bz2) = 400cb865bb63eed6d7668b2d971cb4644038b9b7a6cda121450d0c6cf6251cbc
SIZE (ccid-1.4.20.tar.bz2) = 567553

View File

@ -2,6 +2,7 @@
PORTNAME= llvm
DISTVERSION= 3.7.0rc2
PORTREVISION= 1
CATEGORIES= devel lang
MASTER_SITES= http://llvm.org/${PRE_}releases/${LLVM_RELEASE}/${RCDIR}
DISTNAME= ${PORTNAME}-${DISTVERSION}.src
@ -37,7 +38,10 @@ OPTIONS_DEFAULT_amd64= OPENMP
OPTIONS_SUB= yes
CLANG_DESC= Build clang
CLANG_EXTRA_PATCHES= ${PATCHDIR}/clang-patch-tools_clang_lib_Headers_CMakeLists.txt
CLANG_EXTRA_PATCHES= \
${PATCHDIR}/clang-patch-tools_clang_lib_Headers_CMakeLists.txt \
${PATCHDIR}/clang-patch-svn-244209 \
${PATCHDIR}/clang-patch-svn-245041
CLANG_CONFLICTS_INSTALL= clang-devel-3.[1234567]*
CLANG_DISTFILES= cfe-${DISTVERSION}.src${EXTRACT_SUFX}
CLANG_CMAKE_ON= -DCLANG_DEFAULT_OPENMP_RUNTIME=libomp
@ -266,4 +270,16 @@ check-commands:
test -e ${STAGEDIR}${LLVM_PREFIX}/bin/${command}
.endfor
.if make(svn-patch-clang)
.if !defined(PATCH_REV)
.error svn-patch-clang requires that PATCH_REV be set
.endif
_PATCH_FILE=${FILESDIR}/clang-patch-svn-${PATCH_REV}
_LLVM_BASE=http://llvm.org/svn/llvm-project/cfe/trunk
svn-patch-clang:
svn log -c ${PATCH_REV} ${_LLVM_BASE} >> ${_PATCH_FILE}
svn diff -c ${PATCH_REV} ${_LLVM_BASE} | \
sed -E -e 's;^(---|\+\+\+) ;\1 tools/clang/;' >> ${_PATCH_FILE}
.endif
.include <bsd.port.post.mk>

View File

@ -0,0 +1,688 @@
------------------------------------------------------------------------
r244209 | abataev | 2015-08-06 12:30:57 +0000 (Thu, 06 Aug 2015) | 4 lines
[OPENMP 4.1] Allow references in init expression for loop-based constructs.
OpenMP 4.1 allows to use variables with reference types in private clauses and, therefore, in init expressions of the cannonical loop forms.
------------------------------------------------------------------------
Index: lib/CodeGen/CGStmtOpenMP.cpp
===================================================================
--- tools/clang/lib/CodeGen/CGStmtOpenMP.cpp (revision 244208)
+++ tools/clang/lib/CodeGen/CGStmtOpenMP.cpp (revision 244209)
@@ -680,15 +680,22 @@
static void emitPrivateLoopCounters(CodeGenFunction &CGF,
CodeGenFunction::OMPPrivateScope &LoopScope,
- ArrayRef<Expr *> Counters) {
+ ArrayRef<Expr *> Counters,
+ ArrayRef<Expr *> PrivateCounters) {
+ auto I = PrivateCounters.begin();
for (auto *E : Counters) {
- auto VD = cast<VarDecl>(cast<DeclRefExpr>(E)->getDecl());
- (void)LoopScope.addPrivate(VD, [&]() -> llvm::Value *{
+ auto *VD = cast<VarDecl>(cast<DeclRefExpr>(E)->getDecl());
+ auto *PrivateVD = cast<VarDecl>(cast<DeclRefExpr>(*I)->getDecl());
+ llvm::Value *Addr;
+ (void)LoopScope.addPrivate(PrivateVD, [&]() -> llvm::Value * {
// Emit var without initialization.
- auto VarEmission = CGF.EmitAutoVarAlloca(*VD);
+ auto VarEmission = CGF.EmitAutoVarAlloca(*PrivateVD);
CGF.EmitAutoVarCleanups(VarEmission);
- return VarEmission.getAllocatedAddress();
+ Addr = VarEmission.getAllocatedAddress();
+ return Addr;
});
+ (void)LoopScope.addPrivate(VD, [&]() -> llvm::Value * { return Addr; });
+ ++I;
}
}
@@ -697,7 +704,8 @@
llvm::BasicBlock *FalseBlock, uint64_t TrueCount) {
{
CodeGenFunction::OMPPrivateScope PreCondScope(CGF);
- emitPrivateLoopCounters(CGF, PreCondScope, S.counters());
+ emitPrivateLoopCounters(CGF, PreCondScope, S.counters(),
+ S.private_counters());
const VarDecl *IVDecl =
cast<VarDecl>(cast<DeclRefExpr>(S.getIterationVariable())->getDecl());
bool IsRegistered = PreCondScope.addPrivate(IVDecl, [&]() -> llvm::Value *{
@@ -835,7 +843,8 @@
bool HasLastprivateClause;
{
OMPPrivateScope LoopScope(CGF);
- emitPrivateLoopCounters(CGF, LoopScope, S.counters());
+ emitPrivateLoopCounters(CGF, LoopScope, S.counters(),
+ S.private_counters());
emitPrivateLinearVars(CGF, S, LoopScope);
CGF.EmitOMPPrivateClause(S, LoopScope);
CGF.EmitOMPReductionClauseInit(S, LoopScope);
@@ -1124,7 +1133,8 @@
EmitOMPPrivateClause(S, LoopScope);
HasLastprivateClause = EmitOMPLastprivateClauseInit(S, LoopScope);
EmitOMPReductionClauseInit(S, LoopScope);
- emitPrivateLoopCounters(*this, LoopScope, S.counters());
+ emitPrivateLoopCounters(*this, LoopScope, S.counters(),
+ S.private_counters());
emitPrivateLinearVars(*this, S, LoopScope);
(void)LoopScope.Privatize();
Index: lib/Serialization/ASTWriterStmt.cpp
===================================================================
--- tools/clang/lib/Serialization/ASTWriterStmt.cpp (revision 244208)
+++ tools/clang/lib/Serialization/ASTWriterStmt.cpp (revision 244209)
@@ -1957,6 +1957,9 @@
for (auto I : D->counters()) {
Writer.AddStmt(I);
}
+ for (auto I : D->private_counters()) {
+ Writer.AddStmt(I);
+ }
for (auto I : D->updates()) {
Writer.AddStmt(I);
}
Index: lib/Serialization/ASTReaderStmt.cpp
===================================================================
--- tools/clang/lib/Serialization/ASTReaderStmt.cpp (revision 244208)
+++ tools/clang/lib/Serialization/ASTReaderStmt.cpp (revision 244209)
@@ -2113,6 +2113,10 @@
Sub.clear();
for (unsigned i = 0; i < CollapsedNum; ++i)
Sub.push_back(Reader.ReadSubExpr());
+ D->setPrivateCounters(Sub);
+ Sub.clear();
+ for (unsigned i = 0; i < CollapsedNum; ++i)
+ Sub.push_back(Reader.ReadSubExpr());
D->setUpdates(Sub);
Sub.clear();
for (unsigned i = 0; i < CollapsedNum; ++i)
Index: lib/Sema/SemaOpenMP.cpp
===================================================================
--- tools/clang/lib/Sema/SemaOpenMP.cpp (revision 244208)
+++ tools/clang/lib/Sema/SemaOpenMP.cpp (revision 244209)
@@ -2251,6 +2251,9 @@
Expr *BuildPreCond(Scope *S, Expr *Cond) const;
/// \brief Build reference expression to the counter be used for codegen.
Expr *BuildCounterVar() const;
+ /// \brief Build reference expression to the private counter be used for
+ /// codegen.
+ Expr *BuildPrivateCounterVar() const;
/// \brief Build initization of the counter be used for codegen.
Expr *BuildCounterInit() const;
/// \brief Build step of the counter be used for codegen.
@@ -2414,7 +2417,7 @@
} else if (auto DS = dyn_cast<DeclStmt>(S)) {
if (DS->isSingleDecl()) {
if (auto Var = dyn_cast_or_null<VarDecl>(DS->getSingleDecl())) {
- if (Var->hasInit()) {
+ if (Var->hasInit() && !Var->getType()->isReferenceType()) {
// Accept non-canonical init form here but emit ext. warning.
if (Var->getInitStyle() != VarDecl::CInit && EmitDiags)
SemaRef.Diag(S->getLocStart(),
@@ -2699,9 +2702,21 @@
/// \brief Build reference expression to the counter be used for codegen.
Expr *OpenMPIterationSpaceChecker::BuildCounterVar() const {
- return buildDeclRefExpr(SemaRef, Var, Var->getType(), DefaultLoc);
+ return buildDeclRefExpr(SemaRef, Var, Var->getType().getNonReferenceType(),
+ DefaultLoc);
}
+Expr *OpenMPIterationSpaceChecker::BuildPrivateCounterVar() const {
+ if (Var && !Var->isInvalidDecl()) {
+ auto Type = Var->getType().getNonReferenceType();
+ auto *PrivateVar = buildVarDecl(SemaRef, DefaultLoc, Type, Var->getName());
+ if (PrivateVar->isInvalidDecl())
+ return nullptr;
+ return buildDeclRefExpr(SemaRef, PrivateVar, Type, DefaultLoc);
+ }
+ return nullptr;
+}
+
/// \brief Build initization of the counter be used for codegen.
Expr *OpenMPIterationSpaceChecker::BuildCounterInit() const { return LB; }
@@ -2717,6 +2732,8 @@
Expr *NumIterations;
/// \brief The loop counter variable.
Expr *CounterVar;
+ /// \brief Private loop counter variable.
+ Expr *PrivateCounterVar;
/// \brief This is initializer for the initial value of #CounterVar.
Expr *CounterInit;
/// \brief This is step for the #CounterVar used to generate its update:
@@ -2801,7 +2818,7 @@
// A variable of signed or unsigned integer type.
// For C++, a variable of a random access iterator type.
// For C, a variable of a pointer type.
- auto VarType = Var->getType();
+ auto VarType = Var->getType().getNonReferenceType();
if (!VarType->isDependentType() && !VarType->isIntegerType() &&
!VarType->isPointerType() &&
!(SemaRef.getLangOpts().CPlusPlus && VarType->isOverloadableType())) {
@@ -2877,6 +2894,7 @@
ResultIterSpace.NumIterations = ISC.BuildNumIterations(
DSA.getCurScope(), /* LimitedType */ isOpenMPWorksharingDirective(DKind));
ResultIterSpace.CounterVar = ISC.BuildCounterVar();
+ ResultIterSpace.PrivateCounterVar = ISC.BuildPrivateCounterVar();
ResultIterSpace.CounterInit = ISC.BuildCounterInit();
ResultIterSpace.CounterStep = ISC.BuildCounterStep();
ResultIterSpace.InitSrcRange = ISC.GetInitSrcRange();
@@ -2887,6 +2905,7 @@
HasErrors |= (ResultIterSpace.PreCond == nullptr ||
ResultIterSpace.NumIterations == nullptr ||
ResultIterSpace.CounterVar == nullptr ||
+ ResultIterSpace.PrivateCounterVar == nullptr ||
ResultIterSpace.CounterInit == nullptr ||
ResultIterSpace.CounterStep == nullptr);
@@ -3286,6 +3305,7 @@
}
// Save results
Built.Counters[Cnt] = IS.CounterVar;
+ Built.PrivateCounters[Cnt] = IS.PrivateCounterVar;
Built.Updates[Cnt] = Update.get();
Built.Finals[Cnt] = Final.get();
}
Index: lib/AST/Stmt.cpp
===================================================================
--- tools/clang/lib/AST/Stmt.cpp (revision 244208)
+++ tools/clang/lib/AST/Stmt.cpp (revision 244209)
@@ -1496,6 +1496,13 @@
std::copy(A.begin(), A.end(), getCounters().begin());
}
+void OMPLoopDirective::setPrivateCounters(ArrayRef<Expr *> A) {
+ assert(A.size() == getCollapsedNumber() && "Number of loop private counters "
+ "is not the same as the collapsed "
+ "number");
+ std::copy(A.begin(), A.end(), getPrivateCounters().begin());
+}
+
void OMPLoopDirective::setUpdates(ArrayRef<Expr *> A) {
assert(A.size() == getCollapsedNumber() &&
"Number of counter updates is not the same as the collapsed number");
@@ -1661,6 +1668,7 @@
Dir->setInit(Exprs.Init);
Dir->setInc(Exprs.Inc);
Dir->setCounters(Exprs.Counters);
+ Dir->setPrivateCounters(Exprs.PrivateCounters);
Dir->setUpdates(Exprs.Updates);
Dir->setFinals(Exprs.Finals);
return Dir;
@@ -1707,6 +1715,7 @@
Dir->setNextLowerBound(Exprs.NLB);
Dir->setNextUpperBound(Exprs.NUB);
Dir->setCounters(Exprs.Counters);
+ Dir->setPrivateCounters(Exprs.PrivateCounters);
Dir->setUpdates(Exprs.Updates);
Dir->setFinals(Exprs.Finals);
return Dir;
@@ -1753,6 +1762,7 @@
Dir->setNextLowerBound(Exprs.NLB);
Dir->setNextUpperBound(Exprs.NUB);
Dir->setCounters(Exprs.Counters);
+ Dir->setPrivateCounters(Exprs.PrivateCounters);
Dir->setUpdates(Exprs.Updates);
Dir->setFinals(Exprs.Finals);
return Dir;
@@ -1908,6 +1918,7 @@
Dir->setNextLowerBound(Exprs.NLB);
Dir->setNextUpperBound(Exprs.NUB);
Dir->setCounters(Exprs.Counters);
+ Dir->setPrivateCounters(Exprs.PrivateCounters);
Dir->setUpdates(Exprs.Updates);
Dir->setFinals(Exprs.Finals);
return Dir;
@@ -1952,6 +1963,7 @@
Dir->setNextLowerBound(Exprs.NLB);
Dir->setNextUpperBound(Exprs.NUB);
Dir->setCounters(Exprs.Counters);
+ Dir->setPrivateCounters(Exprs.PrivateCounters);
Dir->setUpdates(Exprs.Updates);
Dir->setFinals(Exprs.Finals);
return Dir;
Index: test/OpenMP/for_loop_messages.cpp
===================================================================
--- tools/clang/test/OpenMP/for_loop_messages.cpp (revision 244208)
+++ tools/clang/test/OpenMP/for_loop_messages.cpp (revision 244209)
@@ -66,24 +66,24 @@
c[(int)fi] = a[(int)fi] + b[(int)fi];
}
#pragma omp parallel
-// expected-error@+2 {{variable must be of integer or random access iterator type}}
+// expected-error@+2 {{initialization clause of OpenMP for loop is not in canonical form ('var = init' or 'T var = init')}}
#pragma omp for
for (int &ref = ii; ref < 10; ref++) {
}
#pragma omp parallel
-// expected-error@+2 {{initialization clause of OpenMP for loop must be of the form 'var = init' or 'T var = init'}}
+// expected-error@+2 {{initialization clause of OpenMP for loop is not in canonical form ('var = init' or 'T var = init')}}
#pragma omp for
for (int i; i < 10; i++)
c[i] = a[i];
#pragma omp parallel
-// expected-error@+2 {{initialization clause of OpenMP for loop must be of the form 'var = init' or 'T var = init'}}
+// expected-error@+2 {{initialization clause of OpenMP for loop is not in canonical form ('var = init' or 'T var = init')}}
#pragma omp for
for (int i = 0, j = 0; i < 10; ++i)
c[i] = a[i];
#pragma omp parallel
-// expected-error@+2 {{initialization clause of OpenMP for loop must be of the form 'var = init' or 'T var = init'}}
+// expected-error@+2 {{initialization clause of OpenMP for loop is not in canonical form ('var = init' or 'T var = init')}}
#pragma omp for
for (; ii < 10; ++ii)
c[ii] = a[ii];
@@ -90,13 +90,13 @@
#pragma omp parallel
// expected-warning@+3 {{expression result unused}}
-// expected-error@+2 {{initialization clause of OpenMP for loop must be of the form 'var = init' or 'T var = init'}}
+// expected-error@+2 {{initialization clause of OpenMP for loop is not in canonical form ('var = init' or 'T var = init')}}
#pragma omp for
for (ii + 1; ii < 10; ++ii)
c[ii] = a[ii];
#pragma omp parallel
-// expected-error@+2 {{initialization clause of OpenMP for loop must be of the form 'var = init' or 'T var = init'}}
+// expected-error@+2 {{initialization clause of OpenMP for loop is not in canonical form ('var = init' or 'T var = init')}}
#pragma omp for
for (c[ii] = 0; ii < 10; ++ii)
c[ii] = a[ii];
@@ -446,7 +446,7 @@
for (GoodIter I = begin; I < end; ++I)
++I;
#pragma omp parallel
-// expected-error@+2 {{variable must be of integer or random access iterator type}}
+// expected-error@+2 {{initialization clause of OpenMP for loop is not in canonical form ('var = init' or 'T var = init')}}
#pragma omp for
for (GoodIter &I = begin; I < end; ++I)
++I;
@@ -485,7 +485,7 @@
for (begin = begin0; begin < end; ++begin)
++begin;
#pragma omp parallel
-// expected-error@+2 {{initialization clause of OpenMP for loop must be of the form 'var = init' or 'T var = init'}}
+// expected-error@+2 {{initialization clause of OpenMP for loop is not in canonical form ('var = init' or 'T var = init')}}
#pragma omp for
for (++begin; begin < end; ++begin)
++begin;
Index: test/OpenMP/parallel_for_loop_messages.cpp
===================================================================
--- tools/clang/test/OpenMP/parallel_for_loop_messages.cpp (revision 244208)
+++ tools/clang/test/OpenMP/parallel_for_loop_messages.cpp (revision 244209)
@@ -54,32 +54,32 @@
for (double fi = 0; fi < 10.0; fi++) {
c[(int)fi] = a[(int)fi] + b[(int)fi];
}
-// expected-error@+2 {{variable must be of integer or random access iterator type}}
+// expected-error@+2 {{initialization clause of OpenMP for loop is not in canonical form ('var = init' or 'T var = init')}}
#pragma omp parallel for
for (int &ref = ii; ref < 10; ref++) {
}
-// expected-error@+2 {{initialization clause of OpenMP for loop must be of the form 'var = init' or 'T var = init'}}
+// expected-error@+2 {{initialization clause of OpenMP for loop is not in canonical form ('var = init' or 'T var = init')}}
#pragma omp parallel for
for (int i; i < 10; i++)
c[i] = a[i];
-// expected-error@+2 {{initialization clause of OpenMP for loop must be of the form 'var = init' or 'T var = init'}}
+// expected-error@+2 {{initialization clause of OpenMP for loop is not in canonical form ('var = init' or 'T var = init')}}
#pragma omp parallel for
for (int i = 0, j = 0; i < 10; ++i)
c[i] = a[i];
-// expected-error@+2 {{initialization clause of OpenMP for loop must be of the form 'var = init' or 'T var = init'}}
+// expected-error@+2 {{initialization clause of OpenMP for loop is not in canonical form ('var = init' or 'T var = init')}}
#pragma omp parallel for
for (; ii < 10; ++ii)
c[ii] = a[ii];
// expected-warning@+3 {{expression result unused}}
-// expected-error@+2 {{initialization clause of OpenMP for loop must be of the form 'var = init' or 'T var = init'}}
+// expected-error@+2 {{initialization clause of OpenMP for loop is not in canonical form ('var = init' or 'T var = init')}}
#pragma omp parallel for
for (ii + 1; ii < 10; ++ii)
c[ii] = a[ii];
-// expected-error@+2 {{initialization clause of OpenMP for loop must be of the form 'var = init' or 'T var = init'}}
+// expected-error@+2 {{initialization clause of OpenMP for loop is not in canonical form ('var = init' or 'T var = init')}}
#pragma omp parallel for
for (c[ii] = 0; ii < 10; ++ii)
c[ii] = a[ii];
@@ -374,7 +374,7 @@
#pragma omp parallel for
for (GoodIter I = begin; I < end; ++I)
++I;
-// expected-error@+2 {{variable must be of integer or random access iterator type}}
+// expected-error@+2 {{initialization clause of OpenMP for loop is not in canonical form ('var = init' or 'T var = init')}}
#pragma omp parallel for
for (GoodIter &I = begin; I < end; ++I)
++I;
@@ -405,7 +405,7 @@
#pragma omp parallel for
for (begin = begin0; begin < end; ++begin)
++begin;
-// expected-error@+2 {{initialization clause of OpenMP for loop must be of the form 'var = init' or 'T var = init'}}
+// expected-error@+2 {{initialization clause of OpenMP for loop is not in canonical form ('var = init' or 'T var = init')}}
#pragma omp parallel for
for (++begin; begin < end; ++begin)
++begin;
Index: test/OpenMP/simd_loop_messages.cpp
===================================================================
--- tools/clang/test/OpenMP/simd_loop_messages.cpp (revision 244208)
+++ tools/clang/test/OpenMP/simd_loop_messages.cpp (revision 244209)
@@ -45,32 +45,32 @@
for (double fi = 0; fi < 10.0; fi++) {
c[(int)fi] = a[(int)fi] + b[(int)fi];
}
- // expected-error@+2 {{variable must be of integer or random access iterator type}}
+ // expected-error@+2 {{initialization clause of OpenMP for loop is not in canonical form ('var = init' or 'T var = init')}}
#pragma omp simd
for (int &ref = ii; ref < 10; ref++) {
}
- // expected-error@+2 {{initialization clause of OpenMP for loop must be of the form 'var = init' or 'T var = init'}}
+ // expected-error@+2 {{initialization clause of OpenMP for loop is not in canonical form ('var = init' or 'T var = init')}}
#pragma omp simd
for (int i; i < 10; i++)
c[i] = a[i];
- // expected-error@+2 {{initialization clause of OpenMP for loop must be of the form 'var = init' or 'T var = init'}}
+ // expected-error@+2 {{initialization clause of OpenMP for loop is not in canonical form ('var = init' or 'T var = init')}}
#pragma omp simd
for (int i = 0, j = 0; i < 10; ++i)
c[i] = a[i];
- // expected-error@+2 {{initialization clause of OpenMP for loop must be of the form 'var = init' or 'T var = init'}}
+ // expected-error@+2 {{initialization clause of OpenMP for loop is not in canonical form ('var = init' or 'T var = init')}}
#pragma omp simd
for (;ii < 10; ++ii)
c[ii] = a[ii];
// expected-warning@+3 {{expression result unused}}
- // expected-error@+2 {{initialization clause of OpenMP for loop must be of the form 'var = init' or 'T var = init'}}
+ // expected-error@+2 {{initialization clause of OpenMP for loop is not in canonical form ('var = init' or 'T var = init')}}
#pragma omp simd
for (ii + 1;ii < 10; ++ii)
c[ii] = a[ii];
- // expected-error@+2 {{initialization clause of OpenMP for loop must be of the form 'var = init' or 'T var = init'}}
+ // expected-error@+2 {{initialization clause of OpenMP for loop is not in canonical form ('var = init' or 'T var = init')}}
#pragma omp simd
for (c[ii] = 0;ii < 10; ++ii)
c[ii] = a[ii];
@@ -364,7 +364,7 @@
#pragma omp simd
for (GoodIter I = begin; I < end; ++I)
++I;
- // expected-error@+2 {{variable must be of integer or random access iterator type}}
+ // expected-error@+2 {{initialization clause of OpenMP for loop is not in canonical form ('var = init' or 'T var = init')}}
#pragma omp simd
for (GoodIter &I = begin; I < end; ++I)
++I;
@@ -393,7 +393,7 @@
#pragma omp simd
for (begin = GoodIter(1,2); begin < end; ++begin)
++begin;
- // expected-error@+2 {{initialization clause of OpenMP for loop must be of the form 'var = init' or 'T var = init'}}
+ // expected-error@+2 {{initialization clause of OpenMP for loop is not in canonical form ('var = init' or 'T var = init')}}
#pragma omp simd
for (++begin; begin < end; ++begin)
++begin;
Index: test/OpenMP/parallel_for_simd_loop_messages.cpp
===================================================================
--- tools/clang/test/OpenMP/parallel_for_simd_loop_messages.cpp (revision 244208)
+++ tools/clang/test/OpenMP/parallel_for_simd_loop_messages.cpp (revision 244209)
@@ -54,32 +54,32 @@
for (double fi = 0; fi < 10.0; fi++) {
c[(int)fi] = a[(int)fi] + b[(int)fi];
}
-// expected-error@+2 {{variable must be of integer or random access iterator type}}
+// expected-error@+2 {{initialization clause of OpenMP for loop is not in canonical form ('var = init' or 'T var = init')}}
#pragma omp parallel for simd
for (int &ref = ii; ref < 10; ref++) {
}
-// expected-error@+2 {{initialization clause of OpenMP for loop must be of the form 'var = init' or 'T var = init'}}
+// expected-error@+2 {{initialization clause of OpenMP for loop is not in canonical form ('var = init' or 'T var = init')}}
#pragma omp parallel for simd
for (int i; i < 10; i++)
c[i] = a[i];
-// expected-error@+2 {{initialization clause of OpenMP for loop must be of the form 'var = init' or 'T var = init'}}
+// expected-error@+2 {{initialization clause of OpenMP for loop is not in canonical form ('var = init' or 'T var = init')}}
#pragma omp parallel for simd
for (int i = 0, j = 0; i < 10; ++i)
c[i] = a[i];
-// expected-error@+2 {{initialization clause of OpenMP for loop must be of the form 'var = init' or 'T var = init'}}
+// expected-error@+2 {{initialization clause of OpenMP for loop is not in canonical form ('var = init' or 'T var = init')}}
#pragma omp parallel for simd
for (; ii < 10; ++ii)
c[ii] = a[ii];
// expected-warning@+3 {{expression result unused}}
-// expected-error@+2 {{initialization clause of OpenMP for loop must be of the form 'var = init' or 'T var = init'}}
+// expected-error@+2 {{initialization clause of OpenMP for loop is not in canonical form ('var = init' or 'T var = init')}}
#pragma omp parallel for simd
for (ii + 1; ii < 10; ++ii)
c[ii] = a[ii];
-// expected-error@+2 {{initialization clause of OpenMP for loop must be of the form 'var = init' or 'T var = init'}}
+// expected-error@+2 {{initialization clause of OpenMP for loop is not in canonical form ('var = init' or 'T var = init')}}
#pragma omp parallel for simd
for (c[ii] = 0; ii < 10; ++ii)
c[ii] = a[ii];
@@ -375,7 +375,7 @@
#pragma omp parallel for simd
for (GoodIter I = begin; I < end; ++I)
++I;
-// expected-error@+2 {{variable must be of integer or random access iterator type}}
+// expected-error@+2 {{initialization clause of OpenMP for loop is not in canonical form ('var = init' or 'T var = init')}}
#pragma omp parallel for simd
for (GoodIter &I = begin; I < end; ++I)
++I;
@@ -406,7 +406,7 @@
#pragma omp parallel for simd
for (begin = begin0; begin < end; ++begin)
++begin;
-// expected-error@+2 {{initialization clause of OpenMP for loop must be of the form 'var = init' or 'T var = init'}}
+// expected-error@+2 {{initialization clause of OpenMP for loop is not in canonical form ('var = init' or 'T var = init')}}
#pragma omp parallel for simd
for (++begin; begin < end; ++begin)
++begin;
Index: test/OpenMP/for_codegen.cpp
===================================================================
--- tools/clang/test/OpenMP/for_codegen.cpp (revision 244208)
+++ tools/clang/test/OpenMP/for_codegen.cpp (revision 244209)
@@ -411,6 +411,21 @@
}
}
+// CHECK-LABEL: for_with_references
+void for_with_references() {
+// CHECK: [[I:%.+]] = alloca i8,
+// CHECK: [[CNT:%.+]] = alloca i8*,
+// CHECK: [[CNT_PRIV:%.+]] = alloca i8,
+// CHECK: call void @__kmpc_for_static_init_4(
+// CHECK-NOT: load i8, i8* [[CNT]],
+// CHECK: call void @__kmpc_for_static_fini(
+ char i = 0;
+ char &cnt = i;
+#pragma omp for
+ for (cnt = 0; cnt < 2; ++cnt)
+ k = cnt;
+}
+
struct Bool {
Bool(bool b) : b(b) {}
operator bool() const { return b; }
Index: test/OpenMP/for_simd_loop_messages.cpp
===================================================================
--- tools/clang/test/OpenMP/for_simd_loop_messages.cpp (revision 244208)
+++ tools/clang/test/OpenMP/for_simd_loop_messages.cpp (revision 244209)
@@ -63,24 +63,24 @@
c[(int)fi] = a[(int)fi] + b[(int)fi];
}
#pragma omp parallel
-// expected-error@+2 {{variable must be of integer or random access iterator type}}
+// expected-error@+2 {{initialization clause of OpenMP for loop is not in canonical form ('var = init' or 'T var = init')}}
#pragma omp for simd
for (int &ref = ii; ref < 10; ref++) {
}
#pragma omp parallel
-// expected-error@+2 {{initialization clause of OpenMP for loop must be of the form 'var = init' or 'T var = init'}}
+// expected-error@+2 {{initialization clause of OpenMP for loop is not in canonical form ('var = init' or 'T var = init')}}
#pragma omp for simd
for (int i; i < 10; i++)
c[i] = a[i];
#pragma omp parallel
-// expected-error@+2 {{initialization clause of OpenMP for loop must be of the form 'var = init' or 'T var = init'}}
+// expected-error@+2 {{initialization clause of OpenMP for loop is not in canonical form ('var = init' or 'T var = init')}}
#pragma omp for simd
for (int i = 0, j = 0; i < 10; ++i)
c[i] = a[i];
#pragma omp parallel
-// expected-error@+2 {{initialization clause of OpenMP for loop must be of the form 'var = init' or 'T var = init'}}
+// expected-error@+2 {{initialization clause of OpenMP for loop is not in canonical form ('var = init' or 'T var = init')}}
#pragma omp for simd
for (; ii < 10; ++ii)
c[ii] = a[ii];
@@ -87,13 +87,13 @@
#pragma omp parallel
// expected-warning@+3 {{expression result unused}}
-// expected-error@+2 {{initialization clause of OpenMP for loop must be of the form 'var = init' or 'T var = init'}}
+// expected-error@+2 {{initialization clause of OpenMP for loop is not in canonical form ('var = init' or 'T var = init')}}
#pragma omp for simd
for (ii + 1; ii < 10; ++ii)
c[ii] = a[ii];
#pragma omp parallel
-// expected-error@+2 {{initialization clause of OpenMP for loop must be of the form 'var = init' or 'T var = init'}}
+// expected-error@+2 {{initialization clause of OpenMP for loop is not in canonical form ('var = init' or 'T var = init')}}
#pragma omp for simd
for (c[ii] = 0; ii < 10; ++ii)
c[ii] = a[ii];
@@ -430,7 +430,7 @@
for (GoodIter I = begin; I < end; ++I)
++I;
#pragma omp parallel
-// expected-error@+2 {{variable must be of integer or random access iterator type}}
+// expected-error@+2 {{initialization clause of OpenMP for loop is not in canonical form ('var = init' or 'T var = init')}}
#pragma omp for simd
for (GoodIter &I = begin; I < end; ++I)
++I;
@@ -469,7 +469,7 @@
for (begin = begin0; begin < end; ++begin)
++begin;
#pragma omp parallel
-// expected-error@+2 {{initialization clause of OpenMP for loop must be of the form 'var = init' or 'T var = init'}}
+// expected-error@+2 {{initialization clause of OpenMP for loop is not in canonical form ('var = init' or 'T var = init')}}
#pragma omp for simd
for (++begin; begin < end; ++begin)
++begin;
Index: include/clang/Basic/DiagnosticSemaKinds.td
===================================================================
--- tools/clang/include/clang/Basic/DiagnosticSemaKinds.td (revision 244208)
+++ tools/clang/include/clang/Basic/DiagnosticSemaKinds.td (revision 244209)
@@ -7545,8 +7545,8 @@
def err_omp_local_var_in_threadprivate_init : Error<
"variable with local storage in initial value of threadprivate variable">;
def err_omp_loop_not_canonical_init : Error<
- "initialization clause of OpenMP for loop must be of the form "
- "'var = init' or 'T var = init'">;
+ "initialization clause of OpenMP for loop is not in canonical form "
+ "('var = init' or 'T var = init')">;
def ext_omp_loop_not_canonical_init : ExtWarn<
"initialization clause of OpenMP for loop is not in canonical form "
"('var = init' or 'T var = init')">, InGroup<OpenMPLoopForm>;
Index: include/clang/AST/StmtOpenMP.h
===================================================================
--- tools/clang/include/clang/AST/StmtOpenMP.h (revision 244208)
+++ tools/clang/include/clang/AST/StmtOpenMP.h (revision 244209)
@@ -311,11 +311,18 @@
return MutableArrayRef<Expr *>(Storage, CollapsedNum);
}
+ /// \brief Get the private counters storage.
+ MutableArrayRef<Expr *> getPrivateCounters() {
+ Expr **Storage = reinterpret_cast<Expr **>(&*std::next(
+ child_begin(), getArraysOffset(getDirectiveKind()) + CollapsedNum));
+ return MutableArrayRef<Expr *>(Storage, CollapsedNum);
+ }
+
/// \brief Get the updates storage.
MutableArrayRef<Expr *> getUpdates() {
Expr **Storage = reinterpret_cast<Expr **>(
&*std::next(child_begin(),
- getArraysOffset(getDirectiveKind()) + CollapsedNum));
+ getArraysOffset(getDirectiveKind()) + 2 * CollapsedNum));
return MutableArrayRef<Expr *>(Storage, CollapsedNum);
}
@@ -323,7 +330,7 @@
MutableArrayRef<Expr *> getFinals() {
Expr **Storage = reinterpret_cast<Expr **>(
&*std::next(child_begin(),
- getArraysOffset(getDirectiveKind()) + 2 * CollapsedNum));
+ getArraysOffset(getDirectiveKind()) + 3 * CollapsedNum));
return MutableArrayRef<Expr *>(Storage, CollapsedNum);
}
@@ -358,7 +365,7 @@
static unsigned numLoopChildren(unsigned CollapsedNum,
OpenMPDirectiveKind Kind) {
return getArraysOffset(Kind) +
- 3 * CollapsedNum; // Counters, Updates and Finals
+ 4 * CollapsedNum; // Counters, PrivateCounters, Updates and Finals
}
void setIterationVariable(Expr *IV) {
@@ -414,6 +421,7 @@
*std::next(child_begin(), NextUpperBoundOffset) = NUB;
}
void setCounters(ArrayRef<Expr *> A);
+ void setPrivateCounters(ArrayRef<Expr *> A);
void setUpdates(ArrayRef<Expr *> A);
void setFinals(ArrayRef<Expr *> A);
@@ -453,6 +461,8 @@
Expr *NUB;
/// \brief Counters Loop counters.
SmallVector<Expr *, 4> Counters;
+ /// \brief PrivateCounters Loop counters.
+ SmallVector<Expr *, 4> PrivateCounters;
/// \brief Expressions for loop counters update for CodeGen.
SmallVector<Expr *, 4> Updates;
/// \brief Final loop counter values for GodeGen.
@@ -484,10 +494,12 @@
NLB = nullptr;
NUB = nullptr;
Counters.resize(Size);
+ PrivateCounters.resize(Size);
Updates.resize(Size);
Finals.resize(Size);
for (unsigned i = 0; i < Size; ++i) {
Counters[i] = nullptr;
+ PrivateCounters[i] = nullptr;
Updates[i] = nullptr;
Finals[i] = nullptr;
}
@@ -584,6 +596,12 @@
return const_cast<OMPLoopDirective *>(this)->getCounters();
}
+ ArrayRef<Expr *> private_counters() { return getPrivateCounters(); }
+
+ ArrayRef<Expr *> private_counters() const {
+ return const_cast<OMPLoopDirective *>(this)->getPrivateCounters();
+ }
+
ArrayRef<Expr *> updates() { return getUpdates(); }
ArrayRef<Expr *> updates() const {

View File

@ -0,0 +1,707 @@
------------------------------------------------------------------------
r245041 | abataev | 2015-08-14 12:25:37 +0000 (Fri, 14 Aug 2015) | 4 lines
[OPENMP] Fix for http://llvm.org/PR24371: Assert failure compiling blender 2.75.
blender uses statements expression in condition of the loop under control of the '#pragma omp parallel for'. This condition is used several times in different expressions required for codegen of the loop directive. If there are some variables defined in statement expression, it fires an assert during codegen because of redefinition of the same variables.
We have to rebuild several expression to be sure that all variables are unique.
------------------------------------------------------------------------
Index: lib/Sema/SemaOpenMP.cpp
===================================================================
--- tools/clang/lib/Sema/SemaOpenMP.cpp (revision 245040)
+++ tools/clang/lib/Sema/SemaOpenMP.cpp (revision 245041)
@@ -12,6 +12,7 @@
///
//===----------------------------------------------------------------------===//
+#include "TreeTransform.h"
#include "clang/AST/ASTContext.h"
#include "clang/AST/ASTMutationListener.h"
#include "clang/AST/Decl.h"
@@ -2609,20 +2610,85 @@
return true;
}
+namespace {
+// Transform variables declared in GNU statement expressions to new ones to
+// avoid crash on codegen.
+class TransformToNewDefs : public TreeTransform<TransformToNewDefs> {
+ typedef TreeTransform<TransformToNewDefs> BaseTransform;
+
+public:
+ TransformToNewDefs(Sema &SemaRef) : BaseTransform(SemaRef) {}
+
+ Decl *TransformDefinition(SourceLocation Loc, Decl *D) {
+ if (auto *VD = cast<VarDecl>(D))
+ if (!isa<ParmVarDecl>(D) && !isa<VarTemplateSpecializationDecl>(D) &&
+ !isa<ImplicitParamDecl>(D)) {
+ auto *NewVD = VarDecl::Create(
+ SemaRef.Context, VD->getDeclContext(), VD->getLocStart(),
+ VD->getLocation(), VD->getIdentifier(), VD->getType(),
+ VD->getTypeSourceInfo(), VD->getStorageClass());
+ NewVD->setTSCSpec(VD->getTSCSpec());
+ NewVD->setInit(VD->getInit());
+ NewVD->setInitStyle(VD->getInitStyle());
+ NewVD->setExceptionVariable(VD->isExceptionVariable());
+ NewVD->setNRVOVariable(VD->isNRVOVariable());
+ NewVD->setCXXForRangeDecl(VD->isInExternCXXContext());
+ NewVD->setConstexpr(VD->isConstexpr());
+ NewVD->setInitCapture(VD->isInitCapture());
+ NewVD->setPreviousDeclInSameBlockScope(
+ VD->isPreviousDeclInSameBlockScope());
+ VD->getDeclContext()->addHiddenDecl(NewVD);
+ transformedLocalDecl(VD, NewVD);
+ return NewVD;
+ }
+ return BaseTransform::TransformDefinition(Loc, D);
+ }
+
+ ExprResult TransformDeclRefExpr(DeclRefExpr *E) {
+ if (auto *NewD = TransformDecl(E->getExprLoc(), E->getDecl()))
+ if (E->getDecl() != NewD) {
+ NewD->setReferenced();
+ NewD->markUsed(SemaRef.Context);
+ return DeclRefExpr::Create(
+ SemaRef.Context, E->getQualifierLoc(), E->getTemplateKeywordLoc(),
+ cast<ValueDecl>(NewD), E->refersToEnclosingVariableOrCapture(),
+ E->getNameInfo(), E->getType(), E->getValueKind());
+ }
+ return BaseTransform::TransformDeclRefExpr(E);
+ }
+};
+}
+
/// \brief Build the expression to calculate the number of iterations.
Expr *
OpenMPIterationSpaceChecker::BuildNumIterations(Scope *S,
const bool LimitedType) const {
+ TransformToNewDefs Transform(SemaRef);
ExprResult Diff;
- if (Var->getType()->isIntegerType() || Var->getType()->isPointerType() ||
+ auto VarType = Var->getType().getNonReferenceType();
+ if (VarType->isIntegerType() || VarType->isPointerType() ||
SemaRef.getLangOpts().CPlusPlus) {
// Upper - Lower
- Expr *Upper = TestIsLessOp ? UB : LB;
- Expr *Lower = TestIsLessOp ? LB : UB;
+ auto *UBExpr = TestIsLessOp ? UB : LB;
+ auto *LBExpr = TestIsLessOp ? LB : UB;
+ Expr *Upper = Transform.TransformExpr(UBExpr).get();
+ Expr *Lower = Transform.TransformExpr(LBExpr).get();
+ if (!Upper || !Lower)
+ return nullptr;
+ Upper = SemaRef.PerformImplicitConversion(Upper, UBExpr->getType(),
+ Sema::AA_Converting,
+ /*AllowExplicit=*/true)
+ .get();
+ Lower = SemaRef.PerformImplicitConversion(Lower, LBExpr->getType(),
+ Sema::AA_Converting,
+ /*AllowExplicit=*/true)
+ .get();
+ if (!Upper || !Lower)
+ return nullptr;
Diff = SemaRef.BuildBinOp(S, DefaultLoc, BO_Sub, Upper, Lower);
- if (!Diff.isUsable() && Var->getType()->getAsCXXRecordDecl()) {
+ if (!Diff.isUsable() && VarType->getAsCXXRecordDecl()) {
// BuildBinOp already emitted error, this one is to point user to upper
// and lower bound, and to tell what is passed to 'operator-'.
SemaRef.Diag(Upper->getLocStart(), diag::err_omp_loop_diff_cxx)
@@ -2643,8 +2709,15 @@
return nullptr;
// Upper - Lower [- 1] + Step
- Diff = SemaRef.BuildBinOp(S, DefaultLoc, BO_Add, Diff.get(),
- Step->IgnoreImplicit());
+ auto NewStep = Transform.TransformExpr(Step->IgnoreImplicit());
+ if (NewStep.isInvalid())
+ return nullptr;
+ NewStep = SemaRef.PerformImplicitConversion(
+ NewStep.get(), Step->IgnoreImplicit()->getType(), Sema::AA_Converting,
+ /*AllowExplicit=*/true);
+ if (NewStep.isInvalid())
+ return nullptr;
+ Diff = SemaRef.BuildBinOp(S, DefaultLoc, BO_Add, Diff.get(), NewStep.get());
if (!Diff.isUsable())
return nullptr;
@@ -2654,15 +2727,35 @@
return nullptr;
// (Upper - Lower [- 1] + Step) / Step
- Diff = SemaRef.BuildBinOp(S, DefaultLoc, BO_Div, Diff.get(),
- Step->IgnoreImplicit());
+ NewStep = Transform.TransformExpr(Step->IgnoreImplicit());
+ if (NewStep.isInvalid())
+ return nullptr;
+ NewStep = SemaRef.PerformImplicitConversion(
+ NewStep.get(), Step->IgnoreImplicit()->getType(), Sema::AA_Converting,
+ /*AllowExplicit=*/true);
+ if (NewStep.isInvalid())
+ return nullptr;
+ Diff = SemaRef.BuildBinOp(S, DefaultLoc, BO_Div, Diff.get(), NewStep.get());
if (!Diff.isUsable())
return nullptr;
// OpenMP runtime requires 32-bit or 64-bit loop variables.
+ QualType Type = Diff.get()->getType();
+ auto &C = SemaRef.Context;
+ bool UseVarType = VarType->hasIntegerRepresentation() &&
+ C.getTypeSize(Type) > C.getTypeSize(VarType);
+ if (!Type->isIntegerType() || UseVarType) {
+ unsigned NewSize =
+ UseVarType ? C.getTypeSize(VarType) : C.getTypeSize(Type);
+ bool IsSigned = UseVarType ? VarType->hasSignedIntegerRepresentation()
+ : Type->hasSignedIntegerRepresentation();
+ Type = C.getIntTypeForBitwidth(NewSize, IsSigned);
+ Diff = SemaRef.PerformImplicitConversion(
+ Diff.get(), Type, Sema::AA_Converting, /*AllowExplicit=*/true);
+ if (!Diff.isUsable())
+ return nullptr;
+ }
if (LimitedType) {
- auto &C = SemaRef.Context;
- QualType Type = Diff.get()->getType();
unsigned NewSize = (C.getTypeSize(Type) > 32) ? 64 : 32;
if (NewSize != C.getTypeSize(Type)) {
if (NewSize < C.getTypeSize(Type)) {
@@ -2671,7 +2764,8 @@
<< InitSrcRange << ConditionSrcRange;
}
QualType NewType = C.getIntTypeForBitwidth(
- NewSize, Type->hasSignedIntegerRepresentation());
+ NewSize, Type->hasSignedIntegerRepresentation() ||
+ C.getTypeSize(Type) < NewSize);
Diff = SemaRef.PerformImplicitConversion(Diff.get(), NewType,
Sema::AA_Converting, true);
if (!Diff.isUsable())
@@ -2686,10 +2780,24 @@
// Try to build LB <op> UB, where <op> is <, >, <=, or >=.
bool Suppress = SemaRef.getDiagnostics().getSuppressAllDiagnostics();
SemaRef.getDiagnostics().setSuppressAllDiagnostics(/*Val=*/true);
+ TransformToNewDefs Transform(SemaRef);
+
+ auto NewLB = Transform.TransformExpr(LB);
+ auto NewUB = Transform.TransformExpr(UB);
+ if (NewLB.isInvalid() || NewUB.isInvalid())
+ return Cond;
+ NewLB = SemaRef.PerformImplicitConversion(NewLB.get(), LB->getType(),
+ Sema::AA_Converting,
+ /*AllowExplicit=*/true);
+ NewUB = SemaRef.PerformImplicitConversion(NewUB.get(), UB->getType(),
+ Sema::AA_Converting,
+ /*AllowExplicit=*/true);
+ if (NewLB.isInvalid() || NewUB.isInvalid())
+ return Cond;
auto CondExpr = SemaRef.BuildBinOp(
S, DefaultLoc, TestIsLessOp ? (TestIsStrictOp ? BO_LT : BO_LE)
: (TestIsStrictOp ? BO_GT : BO_GE),
- LB, UB);
+ NewLB.get(), NewUB.get());
if (CondExpr.isUsable()) {
CondExpr = SemaRef.PerformImplicitConversion(
CondExpr.get(), SemaRef.Context.BoolTy, /*Action=*/Sema::AA_Casting,
@@ -2912,6 +3020,31 @@
return HasErrors;
}
+/// \brief Build 'VarRef = Start.
+static ExprResult BuildCounterInit(Sema &SemaRef, Scope *S, SourceLocation Loc,
+ ExprResult VarRef, ExprResult Start) {
+ TransformToNewDefs Transform(SemaRef);
+ // Build 'VarRef = Start.
+ auto NewStart = Transform.TransformExpr(Start.get()->IgnoreImplicit());
+ if (NewStart.isInvalid())
+ return ExprError();
+ NewStart = SemaRef.PerformImplicitConversion(
+ NewStart.get(), Start.get()->IgnoreImplicit()->getType(),
+ Sema::AA_Converting,
+ /*AllowExplicit=*/true);
+ if (NewStart.isInvalid())
+ return ExprError();
+ NewStart = SemaRef.PerformImplicitConversion(
+ NewStart.get(), VarRef.get()->getType(), Sema::AA_Converting,
+ /*AllowExplicit=*/true);
+ if (!NewStart.isUsable())
+ return ExprError();
+
+ auto Init =
+ SemaRef.BuildBinOp(S, Loc, BO_Assign, VarRef.get(), NewStart.get());
+ return Init;
+}
+
/// \brief Build 'VarRef = Start + Iter * Step'.
static ExprResult BuildCounterUpdate(Sema &SemaRef, Scope *S,
SourceLocation Loc, ExprResult VarRef,
@@ -2923,14 +3056,33 @@
!Step.isUsable())
return ExprError();
- ExprResult Update = SemaRef.BuildBinOp(S, Loc, BO_Mul, Iter.get(),
- Step.get()->IgnoreImplicit());
+ TransformToNewDefs Transform(SemaRef);
+ auto NewStep = Transform.TransformExpr(Step.get()->IgnoreImplicit());
+ if (NewStep.isInvalid())
+ return ExprError();
+ NewStep = SemaRef.PerformImplicitConversion(
+ NewStep.get(), Step.get()->IgnoreImplicit()->getType(),
+ Sema::AA_Converting,
+ /*AllowExplicit=*/true);
+ if (NewStep.isInvalid())
+ return ExprError();
+ ExprResult Update =
+ SemaRef.BuildBinOp(S, Loc, BO_Mul, Iter.get(), NewStep.get());
if (!Update.isUsable())
return ExprError();
// Build 'VarRef = Start + Iter * Step'.
+ auto NewStart = Transform.TransformExpr(Start.get()->IgnoreImplicit());
+ if (NewStart.isInvalid())
+ return ExprError();
+ NewStart = SemaRef.PerformImplicitConversion(
+ NewStart.get(), Start.get()->IgnoreImplicit()->getType(),
+ Sema::AA_Converting,
+ /*AllowExplicit=*/true);
+ if (NewStart.isInvalid())
+ return ExprError();
Update = SemaRef.BuildBinOp(S, Loc, (Subtract ? BO_Sub : BO_Add),
- Start.get()->IgnoreImplicit(), Update.get());
+ NewStart.get(), Update.get());
if (!Update.isUsable())
return ExprError();
@@ -3050,8 +3202,18 @@
// true).
auto PreCond = ExprResult(IterSpaces[0].PreCond);
auto N0 = IterSpaces[0].NumIterations;
- ExprResult LastIteration32 = WidenIterationCount(32 /* Bits */, N0, SemaRef);
- ExprResult LastIteration64 = WidenIterationCount(64 /* Bits */, N0, SemaRef);
+ ExprResult LastIteration32 = WidenIterationCount(
+ 32 /* Bits */, SemaRef.PerformImplicitConversion(
+ N0->IgnoreImpCasts(), N0->getType(),
+ Sema::AA_Converting, /*AllowExplicit=*/true)
+ .get(),
+ SemaRef);
+ ExprResult LastIteration64 = WidenIterationCount(
+ 64 /* Bits */, SemaRef.PerformImplicitConversion(
+ N0->IgnoreImpCasts(), N0->getType(),
+ Sema::AA_Converting, /*AllowExplicit=*/true)
+ .get(),
+ SemaRef);
if (!LastIteration32.isUsable() || !LastIteration64.isUsable())
return NestedLoopCount;
@@ -3068,11 +3230,19 @@
auto N = IterSpaces[Cnt].NumIterations;
AllCountsNeedLessThan32Bits &= C.getTypeSize(N->getType()) < 32;
if (LastIteration32.isUsable())
- LastIteration32 = SemaRef.BuildBinOp(CurScope, SourceLocation(), BO_Mul,
- LastIteration32.get(), N);
+ LastIteration32 = SemaRef.BuildBinOp(
+ CurScope, SourceLocation(), BO_Mul, LastIteration32.get(),
+ SemaRef.PerformImplicitConversion(N->IgnoreImpCasts(), N->getType(),
+ Sema::AA_Converting,
+ /*AllowExplicit=*/true)
+ .get());
if (LastIteration64.isUsable())
- LastIteration64 = SemaRef.BuildBinOp(CurScope, SourceLocation(), BO_Mul,
- LastIteration64.get(), N);
+ LastIteration64 = SemaRef.BuildBinOp(
+ CurScope, SourceLocation(), BO_Mul, LastIteration64.get(),
+ SemaRef.PerformImplicitConversion(N->IgnoreImpCasts(), N->getType(),
+ Sema::AA_Converting,
+ /*AllowExplicit=*/true)
+ .get());
}
// Choose either the 32-bit or 64-bit version.
@@ -3233,6 +3403,7 @@
// Build updates and final values of the loop counters.
bool HasErrors = false;
Built.Counters.resize(NestedLoopCount);
+ Built.Inits.resize(NestedLoopCount);
Built.Updates.resize(NestedLoopCount);
Built.Finals.resize(NestedLoopCount);
{
@@ -3266,6 +3437,12 @@
SemaRef, cast<VarDecl>(cast<DeclRefExpr>(IS.CounterVar)->getDecl()),
IS.CounterVar->getType(), IS.CounterVar->getExprLoc(),
/*RefersToCapture=*/true);
+ ExprResult Init = BuildCounterInit(SemaRef, CurScope, UpdLoc, CounterVar,
+ IS.CounterInit);
+ if (!Init.isUsable()) {
+ HasErrors = true;
+ break;
+ }
ExprResult Update =
BuildCounterUpdate(SemaRef, CurScope, UpdLoc, CounterVar,
IS.CounterInit, Iter, IS.CounterStep, IS.Subtract);
@@ -3306,6 +3483,7 @@
// Save results
Built.Counters[Cnt] = IS.CounterVar;
Built.PrivateCounters[Cnt] = IS.PrivateCounterVar;
+ Built.Inits[Cnt] = Init.get();
Built.Updates[Cnt] = Update.get();
Built.Finals[Cnt] = Final.get();
}
Index: lib/AST/Stmt.cpp
===================================================================
--- tools/clang/lib/AST/Stmt.cpp (revision 245040)
+++ tools/clang/lib/AST/Stmt.cpp (revision 245041)
@@ -1503,6 +1503,12 @@
std::copy(A.begin(), A.end(), getPrivateCounters().begin());
}
+void OMPLoopDirective::setInits(ArrayRef<Expr *> A) {
+ assert(A.size() == getCollapsedNumber() &&
+ "Number of counter inits is not the same as the collapsed number");
+ std::copy(A.begin(), A.end(), getInits().begin());
+}
+
void OMPLoopDirective::setUpdates(ArrayRef<Expr *> A) {
assert(A.size() == getCollapsedNumber() &&
"Number of counter updates is not the same as the collapsed number");
@@ -1669,6 +1675,7 @@
Dir->setInc(Exprs.Inc);
Dir->setCounters(Exprs.Counters);
Dir->setPrivateCounters(Exprs.PrivateCounters);
+ Dir->setInits(Exprs.Inits);
Dir->setUpdates(Exprs.Updates);
Dir->setFinals(Exprs.Finals);
return Dir;
@@ -1716,6 +1723,7 @@
Dir->setNextUpperBound(Exprs.NUB);
Dir->setCounters(Exprs.Counters);
Dir->setPrivateCounters(Exprs.PrivateCounters);
+ Dir->setInits(Exprs.Inits);
Dir->setUpdates(Exprs.Updates);
Dir->setFinals(Exprs.Finals);
return Dir;
@@ -1763,6 +1771,7 @@
Dir->setNextUpperBound(Exprs.NUB);
Dir->setCounters(Exprs.Counters);
Dir->setPrivateCounters(Exprs.PrivateCounters);
+ Dir->setInits(Exprs.Inits);
Dir->setUpdates(Exprs.Updates);
Dir->setFinals(Exprs.Finals);
return Dir;
@@ -1919,6 +1928,7 @@
Dir->setNextUpperBound(Exprs.NUB);
Dir->setCounters(Exprs.Counters);
Dir->setPrivateCounters(Exprs.PrivateCounters);
+ Dir->setInits(Exprs.Inits);
Dir->setUpdates(Exprs.Updates);
Dir->setFinals(Exprs.Finals);
return Dir;
@@ -1964,6 +1974,7 @@
Dir->setNextUpperBound(Exprs.NUB);
Dir->setCounters(Exprs.Counters);
Dir->setPrivateCounters(Exprs.PrivateCounters);
+ Dir->setInits(Exprs.Inits);
Dir->setUpdates(Exprs.Updates);
Dir->setFinals(Exprs.Finals);
return Dir;
Index: lib/CodeGen/CGStmtOpenMP.cpp
===================================================================
--- tools/clang/lib/CodeGen/CGStmtOpenMP.cpp (revision 245040)
+++ tools/clang/lib/CodeGen/CGStmtOpenMP.cpp (revision 245041)
@@ -706,27 +706,9 @@
CodeGenFunction::OMPPrivateScope PreCondScope(CGF);
emitPrivateLoopCounters(CGF, PreCondScope, S.counters(),
S.private_counters());
- const VarDecl *IVDecl =
- cast<VarDecl>(cast<DeclRefExpr>(S.getIterationVariable())->getDecl());
- bool IsRegistered = PreCondScope.addPrivate(IVDecl, [&]() -> llvm::Value *{
- // Emit var without initialization.
- auto VarEmission = CGF.EmitAutoVarAlloca(*IVDecl);
- CGF.EmitAutoVarCleanups(VarEmission);
- return VarEmission.getAllocatedAddress();
- });
- assert(IsRegistered && "counter already registered as private");
- // Silence the warning about unused variable.
- (void)IsRegistered;
(void)PreCondScope.Privatize();
- // Initialize internal counter to 0 to calculate initial values of real
- // counters.
- LValue IV = CGF.EmitLValue(S.getIterationVariable());
- CGF.EmitStoreOfScalar(
- llvm::ConstantInt::getNullValue(
- IV.getAddress()->getType()->getPointerElementType()),
- CGF.EmitLValue(S.getIterationVariable()), /*isInit=*/true);
// Get initial values of real counters.
- for (auto I : S.updates()) {
+ for (auto I : S.inits()) {
CGF.EmitIgnoredExpr(I);
}
}
Index: lib/Serialization/ASTWriterStmt.cpp
===================================================================
--- tools/clang/lib/Serialization/ASTWriterStmt.cpp (revision 245040)
+++ tools/clang/lib/Serialization/ASTWriterStmt.cpp (revision 245041)
@@ -1965,6 +1965,9 @@
for (auto I : D->private_counters()) {
Writer.AddStmt(I);
}
+ for (auto I : D->inits()) {
+ Writer.AddStmt(I);
+ }
for (auto I : D->updates()) {
Writer.AddStmt(I);
}
Index: lib/Serialization/ASTReaderStmt.cpp
===================================================================
--- tools/clang/lib/Serialization/ASTReaderStmt.cpp (revision 245040)
+++ tools/clang/lib/Serialization/ASTReaderStmt.cpp (revision 245041)
@@ -2125,6 +2125,10 @@
Sub.clear();
for (unsigned i = 0; i < CollapsedNum; ++i)
Sub.push_back(Reader.ReadSubExpr());
+ D->setInits(Sub);
+ Sub.clear();
+ for (unsigned i = 0; i < CollapsedNum; ++i)
+ Sub.push_back(Reader.ReadSubExpr());
D->setUpdates(Sub);
Sub.clear();
for (unsigned i = 0; i < CollapsedNum; ++i)
Index: test/OpenMP/for_codegen.cpp
===================================================================
--- tools/clang/test/OpenMP/for_codegen.cpp (revision 245040)
+++ tools/clang/test/OpenMP/for_codegen.cpp (revision 245041)
@@ -329,16 +329,11 @@
// CHECK: [[A_ADDR:%.+]] = alloca i8,
// CHECK: [[I_ADDR:%.+]] = alloca i8,
char a = 0;
- // CHECK: store i32 0, i32* [[IV_ADDR:%.+]],
+ // CHECK: store i8 0,
+ // CHECK: store i32
+ // CHECK: store i8
// CHECK: [[A:%.+]] = load i8, i8* [[A_ADDR]],
// CHECK: [[CONV:%.+]] = sext i8 [[A]] to i32
- // CHECK: [[IV:%.+]] = load i32, i32* [[IV_ADDR]],
- // CHECK: [[MUL:%.+]] = mul nsw i32 [[IV]], 1
- // CHECK: [[ADD:%.+]] = add nsw i32 [[CONV]], [[MUL]]
- // CHECK: [[CONV:%.+]] = trunc i32 [[ADD]] to i8
- // CHECK: store i8 [[CONV]], i8* [[I_ADDR]],
- // CHECK: [[A:%.+]] = load i8, i8* [[A_ADDR]],
- // CHECK: [[CONV:%.+]] = sext i8 [[A]] to i32
// CHECK: [[CMP:%.+]] = icmp slt i32 [[CONV]], 10
// CHECK: br i1 [[CMP]], label %[[PRECOND_THEN:[^,]+]], label %[[PRECOND_END:[^,]+]]
// CHECK: [[PRECOND_THEN]]
@@ -482,4 +477,14 @@
// CHECK: call void @__kmpc_for_static_init_8(
// CHECK: call void @__kmpc_for_static_fini(
+void loop_with_stmt_expr() {
+#pragma omp for
+ for (int i = __extension__({float b = 0;b; }); i < __extension__({double c = 1;c; }); i += __extension__({char d = 1; d; }))
+ ;
+}
+// CHECK-LABEL: loop_with_stmt_expr
+// CHECK: call i32 @__kmpc_global_thread_num(
+// CHECK: call void @__kmpc_for_static_init_4(
+// CHECK: call void @__kmpc_for_static_fini(
+
#endif // HEADER
Index: test/OpenMP/for_loop_messages.cpp
===================================================================
--- tools/clang/test/OpenMP/for_loop_messages.cpp (revision 245040)
+++ tools/clang/test/OpenMP/for_loop_messages.cpp (revision 245041)
@@ -422,12 +422,12 @@
typedef int difference_type;
typedef std::random_access_iterator_tag iterator_category;
};
-// expected-note@+2 {{candidate function not viable: no known conversion from 'const Iter0' to 'GoodIter' for 2nd argument}}
+// expected-note@+2 {{candidate function not viable: no known conversion from 'Iter0' to 'GoodIter' for 2nd argument}}
// expected-note@+1 2 {{candidate function not viable: no known conversion from 'Iter1' to 'GoodIter' for 1st argument}}
int operator-(GoodIter a, GoodIter b) { return 0; }
// expected-note@+1 3 {{candidate function not viable: requires single argument 'a', but 2 arguments were provided}}
GoodIter operator-(GoodIter a) { return a; }
-// expected-note@+2 {{candidate function not viable: no known conversion from 'const Iter0' to 'int' for 2nd argument}}
+// expected-note@+2 {{candidate function not viable: no known conversion from 'Iter0' to 'int' for 2nd argument}}
// expected-note@+1 2 {{candidate function not viable: no known conversion from 'Iter1' to 'GoodIter' for 1st argument}}
GoodIter operator-(GoodIter a, int v) { return GoodIter(); }
// expected-note@+1 2 {{candidate function not viable: no known conversion from 'Iter0' to 'GoodIter' for 1st argument}}
@@ -478,7 +478,7 @@
#pragma omp for
for (begin = GoodIter(0); begin < end; ++begin)
++begin;
-// expected-error@+4 {{invalid operands to binary expression ('GoodIter' and 'const Iter0')}}
+// expected-error@+4 {{invalid operands to binary expression ('GoodIter' and 'Iter0')}}
// expected-error@+3 {{could not calculate number of iterations calling 'operator-' with upper and lower loop bounds}}
#pragma omp parallel
#pragma omp for
Index: test/OpenMP/parallel_for_simd_loop_messages.cpp
===================================================================
--- tools/clang/test/OpenMP/parallel_for_simd_loop_messages.cpp (revision 245040)
+++ tools/clang/test/OpenMP/parallel_for_simd_loop_messages.cpp (revision 245041)
@@ -353,12 +353,12 @@
typedef int difference_type;
typedef std::random_access_iterator_tag iterator_category;
};
-// expected-note@+2 {{candidate function not viable: no known conversion from 'const Iter0' to 'GoodIter' for 2nd argument}}
+// expected-note@+2 {{candidate function not viable: no known conversion from 'Iter0' to 'GoodIter' for 2nd argument}}
// expected-note@+1 2 {{candidate function not viable: no known conversion from 'Iter1' to 'GoodIter' for 1st argument}}
int operator-(GoodIter a, GoodIter b) { return 0; }
// expected-note@+1 3 {{candidate function not viable: requires single argument 'a', but 2 arguments were provided}}
GoodIter operator-(GoodIter a) { return a; }
-// expected-note@+2 {{candidate function not viable: no known conversion from 'const Iter0' to 'int' for 2nd argument}}
+// expected-note@+2 {{candidate function not viable: no known conversion from 'Iter0' to 'int' for 2nd argument}}
// expected-note@+1 2 {{candidate function not viable: no known conversion from 'Iter1' to 'GoodIter' for 1st argument}}
GoodIter operator-(GoodIter a, int v) { return GoodIter(); }
// expected-note@+1 2 {{candidate function not viable: no known conversion from 'Iter0' to 'GoodIter' for 1st argument}}
@@ -401,7 +401,7 @@
#pragma omp parallel for simd
for (begin = GoodIter(0); begin < end; ++begin)
++begin;
-// expected-error@+3 {{invalid operands to binary expression ('GoodIter' and 'const Iter0')}}
+// expected-error@+3 {{invalid operands to binary expression ('GoodIter' and 'Iter0')}}
// expected-error@+2 {{could not calculate number of iterations calling 'operator-' with upper and lower loop bounds}}
#pragma omp parallel for simd
for (begin = begin0; begin < end; ++begin)
Index: test/OpenMP/for_simd_loop_messages.cpp
===================================================================
--- tools/clang/test/OpenMP/for_simd_loop_messages.cpp (revision 245040)
+++ tools/clang/test/OpenMP/for_simd_loop_messages.cpp (revision 245041)
@@ -406,12 +406,12 @@
typedef int difference_type;
typedef std::random_access_iterator_tag iterator_category;
};
-// expected-note@+2 {{candidate function not viable: no known conversion from 'const Iter0' to 'GoodIter' for 2nd argument}}
+// expected-note@+2 {{candidate function not viable: no known conversion from 'Iter0' to 'GoodIter' for 2nd argument}}
// expected-note@+1 2 {{candidate function not viable: no known conversion from 'Iter1' to 'GoodIter' for 1st argument}}
int operator-(GoodIter a, GoodIter b) { return 0; }
// expected-note@+1 3 {{candidate function not viable: requires single argument 'a', but 2 arguments were provided}}
GoodIter operator-(GoodIter a) { return a; }
-// expected-note@+2 {{candidate function not viable: no known conversion from 'const Iter0' to 'int' for 2nd argument}}
+// expected-note@+2 {{candidate function not viable: no known conversion from 'Iter0' to 'int' for 2nd argument}}
// expected-note@+1 2 {{candidate function not viable: no known conversion from 'Iter1' to 'GoodIter' for 1st argument}}
GoodIter operator-(GoodIter a, int v) { return GoodIter(); }
// expected-note@+1 2 {{candidate function not viable: no known conversion from 'Iter0' to 'GoodIter' for 1st argument}}
@@ -463,7 +463,7 @@
for (begin = GoodIter(0); begin < end; ++begin)
++begin;
#pragma omp parallel
-// expected-error@+3 {{invalid operands to binary expression ('GoodIter' and 'const Iter0')}}
+// expected-error@+3 {{invalid operands to binary expression ('GoodIter' and 'Iter0')}}
// expected-error@+2 {{could not calculate number of iterations calling 'operator-' with upper and lower loop bounds}}
#pragma omp for simd
for (begin = begin0; begin < end; ++begin)
Index: test/OpenMP/parallel_for_loop_messages.cpp
===================================================================
--- tools/clang/test/OpenMP/parallel_for_loop_messages.cpp (revision 245040)
+++ tools/clang/test/OpenMP/parallel_for_loop_messages.cpp (revision 245041)
@@ -352,12 +352,12 @@
typedef int difference_type;
typedef std::random_access_iterator_tag iterator_category;
};
-// expected-note@+2 {{candidate function not viable: no known conversion from 'const Iter0' to 'GoodIter' for 2nd argument}}
+// expected-note@+2 {{candidate function not viable: no known conversion from 'Iter0' to 'GoodIter' for 2nd argument}}
// expected-note@+1 2 {{candidate function not viable: no known conversion from 'Iter1' to 'GoodIter' for 1st argument}}
int operator-(GoodIter a, GoodIter b) { return 0; }
// expected-note@+1 3 {{candidate function not viable: requires single argument 'a', but 2 arguments were provided}}
GoodIter operator-(GoodIter a) { return a; }
-// expected-note@+2 {{candidate function not viable: no known conversion from 'const Iter0' to 'int' for 2nd argument}}
+// expected-note@+2 {{candidate function not viable: no known conversion from 'Iter0' to 'int' for 2nd argument}}
// expected-note@+1 2 {{candidate function not viable: no known conversion from 'Iter1' to 'GoodIter' for 1st argument}}
GoodIter operator-(GoodIter a, int v) { return GoodIter(); }
// expected-note@+1 2 {{candidate function not viable: no known conversion from 'Iter0' to 'GoodIter' for 1st argument}}
@@ -400,7 +400,7 @@
#pragma omp parallel for
for (begin = GoodIter(0); begin < end; ++begin)
++begin;
-// expected-error@+3 {{invalid operands to binary expression ('GoodIter' and 'const Iter0')}}
+// expected-error@+3 {{invalid operands to binary expression ('GoodIter' and 'Iter0')}}
// expected-error@+2 {{could not calculate number of iterations calling 'operator-' with upper and lower loop bounds}}
#pragma omp parallel for
for (begin = begin0; begin < end; ++begin)
Index: include/clang/AST/StmtOpenMP.h
===================================================================
--- tools/clang/include/clang/AST/StmtOpenMP.h (revision 245040)
+++ tools/clang/include/clang/AST/StmtOpenMP.h (revision 245041)
@@ -319,7 +319,7 @@
}
/// \brief Get the updates storage.
- MutableArrayRef<Expr *> getUpdates() {
+ MutableArrayRef<Expr *> getInits() {
Expr **Storage = reinterpret_cast<Expr **>(
&*std::next(child_begin(),
getArraysOffset(getDirectiveKind()) + 2 * CollapsedNum));
@@ -326,11 +326,19 @@
return MutableArrayRef<Expr *>(Storage, CollapsedNum);
}
+ /// \brief Get the updates storage.
+ MutableArrayRef<Expr *> getUpdates() {
+ Expr **Storage = reinterpret_cast<Expr **>(
+ &*std::next(child_begin(),
+ getArraysOffset(getDirectiveKind()) + 3 * CollapsedNum));
+ return MutableArrayRef<Expr *>(Storage, CollapsedNum);
+ }
+
/// \brief Get the final counter updates storage.
MutableArrayRef<Expr *> getFinals() {
Expr **Storage = reinterpret_cast<Expr **>(
&*std::next(child_begin(),
- getArraysOffset(getDirectiveKind()) + 3 * CollapsedNum));
+ getArraysOffset(getDirectiveKind()) + 4 * CollapsedNum));
return MutableArrayRef<Expr *>(Storage, CollapsedNum);
}
@@ -364,8 +372,9 @@
/// \brief Children number.
static unsigned numLoopChildren(unsigned CollapsedNum,
OpenMPDirectiveKind Kind) {
- return getArraysOffset(Kind) +
- 4 * CollapsedNum; // Counters, PrivateCounters, Updates and Finals
+ return getArraysOffset(Kind) + 5 * CollapsedNum; // Counters,
+ // PrivateCounters, Inits,
+ // Updates and Finals
}
void setIterationVariable(Expr *IV) {
@@ -422,6 +431,7 @@
}
void setCounters(ArrayRef<Expr *> A);
void setPrivateCounters(ArrayRef<Expr *> A);
+ void setInits(ArrayRef<Expr *> A);
void setUpdates(ArrayRef<Expr *> A);
void setFinals(ArrayRef<Expr *> A);
@@ -463,6 +473,8 @@
SmallVector<Expr *, 4> Counters;
/// \brief PrivateCounters Loop counters.
SmallVector<Expr *, 4> PrivateCounters;
+ /// \brief Expressions for loop counters inits for CodeGen.
+ SmallVector<Expr *, 4> Inits;
/// \brief Expressions for loop counters update for CodeGen.
SmallVector<Expr *, 4> Updates;
/// \brief Final loop counter values for GodeGen.
@@ -495,11 +507,13 @@
NUB = nullptr;
Counters.resize(Size);
PrivateCounters.resize(Size);
+ Inits.resize(Size);
Updates.resize(Size);
Finals.resize(Size);
for (unsigned i = 0; i < Size; ++i) {
Counters[i] = nullptr;
PrivateCounters[i] = nullptr;
+ Inits[i] = nullptr;
Updates[i] = nullptr;
Finals[i] = nullptr;
}
@@ -602,6 +616,12 @@
return const_cast<OMPLoopDirective *>(this)->getPrivateCounters();
}
+ ArrayRef<Expr *> inits() { return getInits(); }
+
+ ArrayRef<Expr *> inits() const {
+ return const_cast<OMPLoopDirective *>(this)->getInits();
+ }
+
ArrayRef<Expr *> updates() { return getUpdates(); }
ArrayRef<Expr *> updates() const {

View File

@ -16,6 +16,8 @@ RUN_DEPENDS= ${LOCALBASE}/lib/libgdiplus.a:${PORTSDIR}/x11-toolkits/libgdiplus \
exctags:${PORTSDIR}/devel/ctags \
mautil:${PORTSDIR}/devel/mono-addins
BROKEN= GUI does not start
USE_GNOME= gtksharp20 gnomesharp20
GNU_CONFIGURE= yes
CONFIGURE_ARGS= --disable-update-mimedb --disable-update-desktopdb

View File

@ -3,6 +3,7 @@
PORTNAME= ncurses
DISTVERSION= ${RELEASE}-20150214
PORTREVISION= 1
CATEGORIES= devel
MASTER_SITES= ftp://invisible-island.net/${PORTNAME}/current/
DIST_SUBDIR= ${PORTNAME}
@ -38,7 +39,8 @@ TRACE_DESC= Add trace() function to all models of ncurses
CONFIGURE_ENV= gnat_exists="no"
USE_LDCONFIG= yes
USES= tar:tgz
USES= shebangfix tar:tgz
SHEBANG_FILES= test/tracemunch
WIDEC_WRKSRC= ${WRKSRC}/build.widec
NOWIDEC_WRKSRC= ${WRKSRC}/build.nowidec

View File

@ -2,12 +2,12 @@
# $FreeBSD$
PORTNAME= ninja
PORTVERSION= 1.5.3
PORTVERSION= 1.6.0
DISTVERSIONPREFIX= v
PORTEPOCH= 1
CATEGORIES= devel
MAINTAINER= ports@FreeBSD.org
MAINTAINER= gblach@FreeBSD.org
COMMENT= Ninja is a small build system closest in spirit to Make
LICENSE= APACHE20

View File

@ -1,2 +1,2 @@
SHA256 (martine-ninja-v1.5.3_GH0.tar.gz) = 7c953b5a7c26cfcd082882e3f3e2cd08fee8848ad228bb47223b18ea18777ec0
SIZE (martine-ninja-v1.5.3_GH0.tar.gz) = 168829
SHA256 (martine-ninja-v1.6.0_GH0.tar.gz) = b43e88fb068fe4d92a3dfd9eb4d19755dae5c33415db2e9b7b61b4659009cde7
SIZE (martine-ninja-v1.6.0_GH0.tar.gz) = 174501

View File

@ -1,14 +1,5 @@
--- configure.py.orig 2014-11-24 18:37:47.000000000 +0100
+++ configure.py 2015-01-18 21:26:42.000000000 +0100
@@ -164,7 +164,7 @@
"""Run a subcommand, quietly. Prints the full command on error."""
try:
subprocess.check_call(cmdline, shell=True)
- except subprocess.CalledProcessError, e:
+ except subprocess.CalledProcessError:
print('when running: ', cmdline)
raise
+++ configure.py 2015-01-18 21:26:42.000000000 +0100
@@ -297,7 +297,7 @@
cflags += ['/Ox', '/DNDEBUG', '/GL']
ldflags += ['/LTCG', '/OPT:REF', '/OPT:ICF']

View File

@ -2,7 +2,7 @@
# $FreeBSD$
PORTNAME= lacaml
PORTVERSION= 7.1.5
PORTVERSION= 7.2.6
DISTVERSIONPREFIX= v
CATEGORIES= devel
PKGNAMEPREFIX= ocaml-
@ -26,11 +26,11 @@ USES= blaslapack fortran
HAS_CONFIGURE= yes
CONFIGURE_ARGS= --prefix ${PREFIX} --disable-docs --disable-examples \
--override conf_ccopt "${CFLAGS}" \
--override conf_cclib "${LDFLAGS:S,^.*[[:space:]],,}"
--override conf_cclib "${LDFLAGS}"
MAKE_JOBS_UNSAFE=yes
CFLAGS+= -fPIC -DEXTERNAL_EXP10
LDFLAGS+= -L${LOCALBASE}/lib ${BLASLIB} ${LAPACKLIB}
LDFLAGS+= -L${LOCALBASE}/lib
DOCSDIR= ${OCAML_DOCSDIR}/${PORTNAME}
EXAMPLESDIR= ${OCAML_EXAMPLESDIR}/${PORTNAME}
@ -40,6 +40,12 @@ PORTEXAMPLES= *
OPTIONS_DEFINE= DOCS EXAMPLES
post-patch:
@${REINPLACE_CMD} -e \
's|%%BLASLIB%%|${BLASLIB}| ; \
s|%%LAPACKLIB%%|${LAPACKLIB}| ; \
s|%%LOCALBASE%%|${LOCALBASE}|' ${WRKSRC}/myocamlbuild.ml
post-install:
@${MKDIR} ${STAGEDIR}${DOCSDIR}
.for i in AUTHORS.txt CHANGES.txt README.md TODO.md

View File

@ -1,2 +1,2 @@
SHA256 (mmottl-lacaml-v7.1.5_GH0.tar.gz) = bbb3f44c004d7eb1f1b462836929cc87148ea218122e9bece22ab05dc471cf4e
SIZE (mmottl-lacaml-v7.1.5_GH0.tar.gz) = 162972
SHA256 (mmottl-lacaml-v7.2.6_GH0.tar.gz) = ae525319ef146e6b661cde4442e188376982d6ca0767b228319129e4b0b7ab7c
SIZE (mmottl-lacaml-v7.2.6_GH0.tar.gz) = 171304

View File

@ -0,0 +1,18 @@
--- myocamlbuild.ml.orig 2015-03-17 03:34:14 UTC
+++ myocamlbuild.ml
@@ -1118,13 +1118,13 @@ let package_default =
(["oasis_library_lacaml_cclib"; "link"],
[
(OASISExpr.EBool true,
- S [A "-cclib"; A "-lblas"; A "-cclib"; A "-llapack"]);
+ S [A "-cclib"; A "-L/usr/local/lib"; A "-cclib"; A "-lblas"; A "-cclib"; A "-llapack"]);
(OASISExpr.ETest ("system", "macosx"),
S [A "-cclib"; A "-framework"; A "-cclib"; A "Accelerate"])
]);
(["oasis_library_lacaml_cclib"; "ocamlmklib"; "c"],
[
- (OASISExpr.EBool true, S [A "-lblas"; A "-llapack"]);
+ (OASISExpr.EBool true, S [A "-L/usr/local/lib"; A "-lblas"; A "-llapack"]);
(OASISExpr.ETest ("system", "macosx"),
S [A "-framework"; A "Accelerate"])
])

View File

@ -1,7 +1,7 @@
# $FreeBSD$
PORTNAME= onscripter
PORTVERSION= 20150208
PORTVERSION= 20150811
CATEGORIES= devel games
MASTER_SITES= http://onscripter.sourceforge.jp/

View File

@ -1,2 +1,2 @@
SHA256 (onscripter-20150208.tar.gz) = b123fb56419d659c24e29e8bfab6fe184f1059581beeb2b5b5c2acd47c269d2d
SIZE (onscripter-20150208.tar.gz) = 235129
SHA256 (onscripter-20150811.tar.gz) = 72808b18c516650fff31ab8bcdf8900bd36709857881c3b1aafb8889c2a0e419
SIZE (onscripter-20150811.tar.gz) = 236918

View File

@ -2,7 +2,7 @@
# $FreeBSD$
PORTNAME= p4d
PORTVERSION= 2015.1.1204891
PORTVERSION= 2015.1.1217912
CATEGORIES= devel
MASTER_SITES= ftp://ftp.perforce.com/perforce/${P4VERSION}/bin.${PLATFORM}/ \
http://filehost.perforce.com/perforce/${P4VERSION}/bin.${PLATFORM}/

View File

@ -1,2 +1,2 @@
SHA256 (perforce/2015.1.1204891/bin.freebsd100x86/p4d) = 64352599d74fe55a0fe6e9aa3b0df242e0fce76ad2703da96cb15be85c6841a4
SIZE (perforce/2015.1.1204891/bin.freebsd100x86/p4d) = 5222188
SHA256 (perforce/2015.1.1217912/bin.freebsd100x86/p4d) = 3510941abfcf76c46198fd00103d1ee5e235067a429916aafd129240089491b0
SIZE (perforce/2015.1.1217912/bin.freebsd100x86/p4d) = 5222196

View File

@ -1,2 +1,2 @@
SHA256 (perforce/2015.1.1204891/bin.freebsd100x86_64/p4d) = 666dfd4fb7eb07cc191d5a3f65d750354e0631b1fd0fce921fd72beea897887e
SIZE (perforce/2015.1.1204891/bin.freebsd100x86_64/p4d) = 5371744
SHA256 (perforce/2015.1.1217912/bin.freebsd100x86_64/p4d) = e7fe058462393084941533cae5dbc6ea8676855c850edc22eac8649eba5cc615
SIZE (perforce/2015.1.1217912/bin.freebsd100x86_64/p4d) = 5371920

View File

@ -1,2 +1,2 @@
SHA256 (perforce/2015.1.1204891/bin.freebsd70x86/p4d) = d6841e58624b6b946066d898dab3386a7a3c4e82ac18fd11620bacbdede51158
SIZE (perforce/2015.1.1204891/bin.freebsd70x86/p4d) = 5584896
SHA256 (perforce/2015.1.1217912/bin.freebsd70x86/p4d) = e4513dca951a8c342463b63b6b9261ee529835d7a8a13ecf51495227444fd08a
SIZE (perforce/2015.1.1217912/bin.freebsd70x86/p4d) = 5587712

View File

@ -1,2 +1,2 @@
SHA256 (perforce/2015.1.1204891/bin.freebsd70x86_64/p4d) = 0888fcffb1e6e537eb1820e7f3c7ad7adcab16b8baaabf6a572f3d7eccee86b1
SIZE (perforce/2015.1.1204891/bin.freebsd70x86_64/p4d) = 5762272
SHA256 (perforce/2015.1.1217912/bin.freebsd70x86_64/p4d) = 627d057c844456823629f0f48c4a65bdf2cc4b10c86ca658679b9faeec7673f8
SIZE (perforce/2015.1.1217912/bin.freebsd70x86_64/p4d) = 5762752

View File

@ -2,7 +2,7 @@
# $FreeBSD$
PORTNAME= Data-Object
PORTVERSION= 0.37
PORTVERSION= 0.40
CATEGORIES= devel perl5
MASTER_SITES= CPAN
PKGNAMEPREFIX= p5-

View File

@ -1,2 +1,2 @@
SHA256 (Data-Object-0.37.tar.gz) = 7555d0aa7b355471fe432b1f941f3e45654bf6870b35edf75b69dd4a05b66dd4
SIZE (Data-Object-0.37.tar.gz) = 67498
SHA256 (Data-Object-0.40.tar.gz) = 3dbcfbd195bc85975f7f3d8a70ecf9a0f9b9d48ea27c66be7c9a8768a225205b
SIZE (Data-Object-0.40.tar.gz) = 68379

View File

@ -68,6 +68,7 @@
%%PERL5_MAN3%%/Data::Object::Role::Undef.3.gz
%%PERL5_MAN3%%/Data::Object::Role::Universal.3.gz
%%PERL5_MAN3%%/Data::Object::Scalar.3.gz
%%PERL5_MAN3%%/Data::Object::Singleton.3.gz
%%PERL5_MAN3%%/Data::Object::String.3.gz
%%PERL5_MAN3%%/Data::Object::Undef.3.gz
%%PERL5_MAN3%%/Data::Object::Universal.3.gz

View File

@ -2,7 +2,7 @@
# $FreeBSD$
PORTNAME= Devel-OverloadInfo
PORTVERSION= 0.003
PORTVERSION= 0.004
CATEGORIES= devel perl5
MASTER_SITES= CPAN
PKGNAMEPREFIX= p5-

View File

@ -1,2 +1,2 @@
SHA256 (Devel-OverloadInfo-0.003.tar.gz) = bc79613ff8948dfc9be508c49276698bc42d6b92da4e33c8e961c42b765dfe01
SIZE (Devel-OverloadInfo-0.003.tar.gz) = 11485
SHA256 (Devel-OverloadInfo-0.004.tar.gz) = 83e88450064b0b0bbfd520cc9d7997fc7bed14ae257894eeadda28dc3e94937d
SIZE (Devel-OverloadInfo-0.004.tar.gz) = 12013

View File

@ -0,0 +1,24 @@
# Created by: Sunpoet Po-Chuan Hsieh <sunpoet@FreeBSD.org>
# $FreeBSD$
PORTNAME= List-Objects-Types
PORTVERSION= 1.003001
CATEGORIES= devel perl5
MASTER_SITES= CPAN
PKGNAMEPREFIX= p5-
MAINTAINER= sunpoet@FreeBSD.org
COMMENT= Type::Tiny-based types for List::Objects::WithUtils
LICENSE= ART10 GPLv1
LICENSE_COMB= dual
BUILD_DEPENDS= p5-List-Objects-WithUtils>=2:${PORTSDIR}/devel/p5-List-Objects-WithUtils \
p5-Type-Tiny>=0.022:${PORTSDIR}/devel/p5-Type-Tiny
RUN_DEPENDS:= ${BUILD_DEPENDS}
NO_ARCH= yes
USE_PERL5= configure
USES= perl5
.include <bsd.port.mk>

View File

@ -0,0 +1,2 @@
SHA256 (List-Objects-Types-1.003001.tar.gz) = a24c48598435eda5e06d9759fcc58d4984dbb3dcc27c9ccc6854856c38ab8e91
SIZE (List-Objects-Types-1.003001.tar.gz) = 17622

View File

@ -0,0 +1,4 @@
A set of Type::Tiny-based types & coercions matching the list objects found in
List::Objects::WithUtils.
WWW: http://search.cpan.org/dist/List-Objects-Types/

View File

@ -0,0 +1,2 @@
%%SITE_PERL%%/List/Objects/Types.pm
%%PERL5_MAN3%%/List::Objects::Types.3.gz

View File

@ -0,0 +1,36 @@
# Created by: Sunpoet Po-Chuan Hsieh <sunpoet@FreeBSD.org>
# $FreeBSD$
PORTNAME= List-Objects-WithUtils
PORTVERSION= 2.022001
CATEGORIES= devel perl5
MASTER_SITES= CPAN
PKGNAMEPREFIX= p5-
MAINTAINER= sunpoet@FreeBSD.org
COMMENT= List objects, kitchen sink included
LICENSE= ART10 GPLv1
LICENSE_COMB= dual
BUILD_DEPENDS= p5-Class-Method-Modifiers>=0:${PORTSDIR}/devel/p5-Class-Method-Modifiers \
p5-List-UtilsBy>=0.09:${PORTSDIR}/devel/p5-List-UtilsBy \
p5-Module-Runtime>=0.013:${PORTSDIR}/devel/p5-Module-Runtime \
p5-Role-Tiny>=1.003:${PORTSDIR}/devel/p5-Role-Tiny \
p5-Type-Tie>=0.004:${PORTSDIR}/devel/p5-Type-Tie \
p5-autobox>=0:${PORTSDIR}/devel/p5-autobox \
p5-strictures>=2:${PORTSDIR}/devel/p5-strictures
RUN_DEPENDS:= ${BUILD_DEPENDS}
NO_ARCH= yes
USE_PERL5= configure
USES= perl5
.include <bsd.port.pre.mk>
.if ${PERL_LEVEL} < 502000
BUILD_DEPENDS+= p5-Scalar-List-Utils>=1.33:${PORTSDIR}/lang/p5-Scalar-List-Utils
RUN_DEPENDS+= p5-Scalar-List-Utils>=1.33:${PORTSDIR}/lang/p5-Scalar-List-Utils
.endif
.include <bsd.port.post.mk>

Some files were not shown because too many files have changed in this diff Show More