ports/122102: New Port devel/tango - alternate library for the D programming language
Jeremy Faulkner
gldisater at gmail.com
Wed Mar 26 04:10:03 UTC 2008
>Number: 122102
>Category: ports
>Synopsis: New Port devel/tango - alternate library for the D programming language
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: change-request
>Submitter-Id: current-users
>Arrival-Date: Wed Mar 26 04:10:03 UTC 2008
>Closed-Date:
>Last-Modified:
>Originator: Jeremy Faulkner
>Release: FreeBSD 7.0-RELEASE
>Organization:
>Environment:
>Description:
New port to add the Tango library as a replacement for Phobos.
Patch for Tango 0.99.5 written by "Ralith" from tango ticket:
http://www.dsource.org/projects/tango/ticket/896
>How-To-Repeat:
>Fix:
Patch attached with submission follows:
# This is a shell archive. Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file". Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
# tango
# tango/distinfo
# tango/Makefile
# tango/pkg-plist
# tango/files
# tango/files/patch-bsd_final.diff
# tango/pkg-descr
#
echo c - tango
mkdir -p tango > /dev/null 2>&1
echo x - tango/distinfo
sed 's/^X//' >tango/distinfo << 'END-of-tango/distinfo'
XMD5 (tango-0.99.5-src.tar.gz) = 6d6b9fcaa25ee253b48f3871823b2ac2
XSHA256 (tango-0.99.5-src.tar.gz) = 7f2a28c43293587208d70ffa6c92e1528236a4df751de249467ccecbc2f6da56
XSIZE (tango-0.99.5-src.tar.gz) = 1810097
END-of-tango/distinfo
echo x - tango/Makefile
sed 's/^X//' >tango/Makefile << 'END-of-tango/Makefile'
X# New ports collection makefile for: tango
X# Date created: 24 March 2008
X# Whom: Jeremy Faulkner <gldisater at gmail.com>
X#
X# $FreeBSD$
X#
X
XPORTNAME= tango
XPORTVERSION= 0.99.5
XCATEGORIES= devel
XMASTER_SITES= http://downloads.dsource.org/projects/${PORTNAME}/${PORTVERSION}/
XDISTNAME= ${PORTNAME}-${PORTVERSION}-src
X
XMAINTAINER= gldisater at gmail.com
XCOMMENT= Alternate standard library for the D programing language
X
XBUILD_DEPENDS= gdc:$(PORTSDIR)/lang/gdc \
X bash:${PORTSDIR}/shells/bash
X
XGDCVERSION= 4.1.3
X
Xdo-build:
X cd ${WRKSRC}/lib && ${LOCALBASE}/bin/bash build-gdc.sh
X cd ${WRKSRC}/lib && ${LOCALBASE}/bin/bash build-tango.sh gdc
X
Xdo-install:
X ${INSTALL_PROGRAM} ${WRKSRC}/lib/libgphobos.a ${LOCALBASE}/lib/
X ${INSTALL_PROGRAM} ${WRKSRC}/lib/libgtango.a ${LOCALBASE}/lib/
X ${INSTALL_DATA} ${WRKSRC}/object.di ${LOCALBASE}/include/d/${GDCVERSION}/
X ${CP} -r ${WRKSRC}/tango/ ${LOCALBASE}/include/d/${GDCVERSION}/tango/
X ${FIND} ${LOCALBASE}/include/d/${GDCVERSION}/tango -type d -print0 | ${XARGS} -0 -J % ${CHMOD} 755 %
X ${FIND} ${LOCALBASE}/include/d/${GDCVERSION}/tango -type f -print0 | ${XARGS} -0 -J % ${CHMOD} 644 %
X
Xmaintainer-buildplist:
X cd ${LOCALBASE} && ${FIND} include/d/${GDCVERSION}/tango -type f > ~/tmp/tango/pkg-plist
X echo "include/d/${GDCVERSION}/object.di" >> ~/tmp/tango/pkg-list
X echo "lib/libgphobos.a" >> ~/tmp/tango/pkg-plist
X echo "lib/libgtango.a" >> ~/tmp/tango/pkg-plist
X cd ${LOCALBASE} && ${FIND} include/d/${GDCVERSION}/tango -type d | ${CAT} -b | ${SORT} -nr | ${AWK} '{ print "@dirrm " $2 }' >> ~/tmp/tango/pkg-plist
X
X.include <bsd.port.mk>
END-of-tango/Makefile
echo x - tango/pkg-plist
sed 's/^X//' >tango/pkg-plist << 'END-of-tango/pkg-plist'
Xinclude/d/4.1.3/tango/core/sync/ReadWriteMutex.d
Xinclude/d/4.1.3/tango/core/sync/Semaphore.d
Xinclude/d/4.1.3/tango/core/sync/Config.d
Xinclude/d/4.1.3/tango/core/sync/Mutex.d
Xinclude/d/4.1.3/tango/core/sync/Barrier.d
Xinclude/d/4.1.3/tango/core/sync/Condition.d
Xinclude/d/4.1.3/tango/core/Variant.d
Xinclude/d/4.1.3/tango/core/BitArray.d
Xinclude/d/4.1.3/tango/core/Exception.di
Xinclude/d/4.1.3/tango/core/ByteSwap.d
Xinclude/d/4.1.3/tango/core/Atomic.d
Xinclude/d/4.1.3/tango/core/Memory.di
Xinclude/d/4.1.3/tango/core/Tuple.d
Xinclude/d/4.1.3/tango/core/Version.d
Xinclude/d/4.1.3/tango/core/Array.d
Xinclude/d/4.1.3/tango/core/Runtime.di
Xinclude/d/4.1.3/tango/core/Thread.di
Xinclude/d/4.1.3/tango/core/Traits.d
Xinclude/d/4.1.3/tango/core/Vararg.d
Xinclude/d/4.1.3/tango/core/BitManip.di
Xinclude/d/4.1.3/tango/core/Signal.d
Xinclude/d/4.1.3/tango/net/model/UriView.d
Xinclude/d/4.1.3/tango/net/ftp/Telnet.d
Xinclude/d/4.1.3/tango/net/ftp/FtpClient.d
Xinclude/d/4.1.3/tango/net/cluster/model/IMessage.d
Xinclude/d/4.1.3/tango/net/cluster/model/ICluster.d
Xinclude/d/4.1.3/tango/net/cluster/model/IChannel.d
Xinclude/d/4.1.3/tango/net/cluster/model/ICache.d
Xinclude/d/4.1.3/tango/net/cluster/model/IConsumer.d
Xinclude/d/4.1.3/tango/net/cluster/tina/util/model/IServer.d
Xinclude/d/4.1.3/tango/net/cluster/tina/util/ServerThread.d
Xinclude/d/4.1.3/tango/net/cluster/tina/util/AbstractServer.d
Xinclude/d/4.1.3/tango/net/cluster/tina/QueueServer.d
Xinclude/d/4.1.3/tango/net/cluster/tina/Cluster.d
Xinclude/d/4.1.3/tango/net/cluster/tina/ClusterServer.d
Xinclude/d/4.1.3/tango/net/cluster/tina/CacheServer.d
Xinclude/d/4.1.3/tango/net/cluster/tina/RollCall.d
Xinclude/d/4.1.3/tango/net/cluster/tina/TaskServer.d
Xinclude/d/4.1.3/tango/net/cluster/tina/TaskThread.d
Xinclude/d/4.1.3/tango/net/cluster/tina/ClusterCache.d
Xinclude/d/4.1.3/tango/net/cluster/tina/ClusterTypes.d
Xinclude/d/4.1.3/tango/net/cluster/tina/ClusterQueue.d
Xinclude/d/4.1.3/tango/net/cluster/tina/CmdParser.d
Xinclude/d/4.1.3/tango/net/cluster/tina/CacheThread.d
Xinclude/d/4.1.3/tango/net/cluster/tina/ClusterThread.d
Xinclude/d/4.1.3/tango/net/cluster/tina/QueueFile.d
Xinclude/d/4.1.3/tango/net/cluster/tina/ClusterTask.d
Xinclude/d/4.1.3/tango/net/cluster/tina/QueueThread.d
Xinclude/d/4.1.3/tango/net/cluster/tina/ProtocolWriter.d
Xinclude/d/4.1.3/tango/net/cluster/tina/ProtocolReader.d
Xinclude/d/4.1.3/tango/net/cluster/NetworkRegistry.d
Xinclude/d/4.1.3/tango/net/cluster/NetworkCall.d
Xinclude/d/4.1.3/tango/net/cluster/CacheInvalidatee.d
Xinclude/d/4.1.3/tango/net/cluster/NetworkAlert.d
Xinclude/d/4.1.3/tango/net/cluster/NetworkQueue.d
Xinclude/d/4.1.3/tango/net/cluster/QueuedCache.d
Xinclude/d/4.1.3/tango/net/cluster/NetworkCache.d
Xinclude/d/4.1.3/tango/net/cluster/NetworkTask.d
Xinclude/d/4.1.3/tango/net/cluster/NetworkClient.d
Xinclude/d/4.1.3/tango/net/cluster/NetworkMessage.d
Xinclude/d/4.1.3/tango/net/cluster/CacheInvalidator.d
Xinclude/d/4.1.3/tango/net/C/OpenSSL.d
Xinclude/d/4.1.3/tango/net/C/OpenSSL.d.orig
Xinclude/d/4.1.3/tango/net/http/model/HttpParamsView.d
Xinclude/d/4.1.3/tango/net/http/HttpStack.d
Xinclude/d/4.1.3/tango/net/http/HttpPost.d
Xinclude/d/4.1.3/tango/net/http/HttpParams.d
Xinclude/d/4.1.3/tango/net/http/HttpConst.d
Xinclude/d/4.1.3/tango/net/http/HttpGet.d
Xinclude/d/4.1.3/tango/net/http/HttpClient.d
Xinclude/d/4.1.3/tango/net/http/HttpTokens.d
Xinclude/d/4.1.3/tango/net/http/HttpCookies.d
Xinclude/d/4.1.3/tango/net/http/HttpTriplet.d
Xinclude/d/4.1.3/tango/net/http/ChunkStream.d
Xinclude/d/4.1.3/tango/net/http/HttpHeaders.d
Xinclude/d/4.1.3/tango/net/DatagramConduit.d
Xinclude/d/4.1.3/tango/net/SSLSocketConduit.d
Xinclude/d/4.1.3/tango/net/SocketListener.d
Xinclude/d/4.1.3/tango/net/ServerSocket.d
Xinclude/d/4.1.3/tango/net/Uri.d
Xinclude/d/4.1.3/tango/net/PKI.d
Xinclude/d/4.1.3/tango/net/InternetAddress.d
Xinclude/d/4.1.3/tango/net/SocketConduit.d
Xinclude/d/4.1.3/tango/net/MulticastConduit.d
Xinclude/d/4.1.3/tango/net/Socket.d
Xinclude/d/4.1.3/tango/net/Socket.d.orig
Xinclude/d/4.1.3/tango/net/SSLServerSocket.d
Xinclude/d/4.1.3/tango/group/collection.d
Xinclude/d/4.1.3/tango/group/log.d
Xinclude/d/4.1.3/tango/group/http.d
Xinclude/d/4.1.3/tango/group/file.d
Xinclude/d/4.1.3/tango/group/text.d
Xinclude/d/4.1.3/tango/group/stream.d
Xinclude/d/4.1.3/tango/group/math.d
Xinclude/d/4.1.3/tango/group/net.d
Xinclude/d/4.1.3/tango/group/digest.d
Xinclude/d/4.1.3/tango/group/time.d
Xinclude/d/4.1.3/tango/group/convert.d
Xinclude/d/4.1.3/tango/io/selector/model/ISelector.d
Xinclude/d/4.1.3/tango/io/selector/AbstractSelector.d
Xinclude/d/4.1.3/tango/io/selector/EpollSelector.d
Xinclude/d/4.1.3/tango/io/selector/Selector.d
Xinclude/d/4.1.3/tango/io/selector/PollSelector.d
Xinclude/d/4.1.3/tango/io/selector/SelectSelector.d
Xinclude/d/4.1.3/tango/io/selector/SelectorException.d
Xinclude/d/4.1.3/tango/io/compress/c/zlib.d
Xinclude/d/4.1.3/tango/io/compress/c/bzlib.d
Xinclude/d/4.1.3/tango/io/compress/BzipStream.d
Xinclude/d/4.1.3/tango/io/compress/ZlibStream.d
Xinclude/d/4.1.3/tango/io/archive/Zip.d
Xinclude/d/4.1.3/tango/io/protocol/model/IProtocol.d
Xinclude/d/4.1.3/tango/io/protocol/model/IWriter.d
Xinclude/d/4.1.3/tango/io/protocol/model/IReader.d
Xinclude/d/4.1.3/tango/io/protocol/PickleProtocol.d
Xinclude/d/4.1.3/tango/io/protocol/Allocator.d
Xinclude/d/4.1.3/tango/io/protocol/Reader.d
Xinclude/d/4.1.3/tango/io/protocol/NativeProtocol.d
Xinclude/d/4.1.3/tango/io/protocol/EndianProtocol.d
Xinclude/d/4.1.3/tango/io/protocol/Writer.d
Xinclude/d/4.1.3/tango/io/model/IBuffer.d
Xinclude/d/4.1.3/tango/io/model/IListener.d
Xinclude/d/4.1.3/tango/io/model/IConduit.d
Xinclude/d/4.1.3/tango/io/stream/SnoopStream.d
Xinclude/d/4.1.3/tango/io/stream/FormatStream.d
Xinclude/d/4.1.3/tango/io/stream/FileStream.d
Xinclude/d/4.1.3/tango/io/stream/EndianStream.d
Xinclude/d/4.1.3/tango/io/stream/DigestStream.d
Xinclude/d/4.1.3/tango/io/stream/LineStream.d
Xinclude/d/4.1.3/tango/io/stream/BufferStream.d
Xinclude/d/4.1.3/tango/io/stream/DataFileStream.d
Xinclude/d/4.1.3/tango/io/stream/DataStream.d
Xinclude/d/4.1.3/tango/io/stream/GreedyStream.d
Xinclude/d/4.1.3/tango/io/stream/TextFileStream.d
Xinclude/d/4.1.3/tango/io/stream/TypedStream.d
Xinclude/d/4.1.3/tango/io/stream/UtfStream.d
Xinclude/d/4.1.3/tango/io/stream/MapStream.d
Xinclude/d/4.1.3/tango/io/digest/MerkleDamgard.d
Xinclude/d/4.1.3/tango/io/digest/Sha256.d
Xinclude/d/4.1.3/tango/io/digest/Tiger.d
Xinclude/d/4.1.3/tango/io/digest/Md4.d
Xinclude/d/4.1.3/tango/io/digest/Sha01.d
Xinclude/d/4.1.3/tango/io/digest/Sha512.d
Xinclude/d/4.1.3/tango/io/digest/Sha0.d
Xinclude/d/4.1.3/tango/io/digest/Sha1.d
Xinclude/d/4.1.3/tango/io/digest/Crc32.d
Xinclude/d/4.1.3/tango/io/digest/Digest.d
Xinclude/d/4.1.3/tango/io/digest/Md2.d
Xinclude/d/4.1.3/tango/io/digest/Md5.d
Xinclude/d/4.1.3/tango/io/vfs/model/Vfs.d
Xinclude/d/4.1.3/tango/io/vfs/ZipFolder.d
Xinclude/d/4.1.3/tango/io/vfs/VirtualFolder.d
Xinclude/d/4.1.3/tango/io/vfs/FileFolder.d
Xinclude/d/4.1.3/tango/io/vfs/LinkedFolder.d
Xinclude/d/4.1.3/tango/io/FileScan.d
Xinclude/d/4.1.3/tango/io/FileSystem.d
Xinclude/d/4.1.3/tango/io/FileRoots.d
Xinclude/d/4.1.3/tango/io/GrowBuffer.d
Xinclude/d/4.1.3/tango/io/TempFile.d
Xinclude/d/4.1.3/tango/io/FileConst.d
Xinclude/d/4.1.3/tango/io/Console.d
Xinclude/d/4.1.3/tango/io/UnicodeFile.d
Xinclude/d/4.1.3/tango/io/Buffer.d
Xinclude/d/4.1.3/tango/io/Print.d
Xinclude/d/4.1.3/tango/io/FileConduit.d
Xinclude/d/4.1.3/tango/io/DeviceConduit.d
Xinclude/d/4.1.3/tango/io/Conduit.d
Xinclude/d/4.1.3/tango/io/FilePath.d
Xinclude/d/4.1.3/tango/io/File.d
Xinclude/d/4.1.3/tango/io/FilePath.d.orig
Xinclude/d/4.1.3/tango/io/Stdout.d
Xinclude/d/4.1.3/tango/io/MappedBuffer.d
Xinclude/d/4.1.3/tango/math/IEEE.d
Xinclude/d/4.1.3/tango/math/Probability.d
Xinclude/d/4.1.3/tango/math/Random.d
Xinclude/d/4.1.3/tango/math/Bessel.d
Xinclude/d/4.1.3/tango/math/IEEE.d.orig
Xinclude/d/4.1.3/tango/math/Elliptic.d
Xinclude/d/4.1.3/tango/math/Math.d
Xinclude/d/4.1.3/tango/math/GammaFunction.d
Xinclude/d/4.1.3/tango/math/ErrorFunction.d
Xinclude/d/4.1.3/tango/time/chrono/Gregorian.d
Xinclude/d/4.1.3/tango/time/chrono/Hebrew.d
Xinclude/d/4.1.3/tango/time/chrono/Taiwan.d
Xinclude/d/4.1.3/tango/time/chrono/Korean.d
Xinclude/d/4.1.3/tango/time/chrono/Calendar.d
Xinclude/d/4.1.3/tango/time/chrono/Hijri.d
Xinclude/d/4.1.3/tango/time/chrono/Japanese.d
Xinclude/d/4.1.3/tango/time/chrono/ThaiBuddhist.d
Xinclude/d/4.1.3/tango/time/chrono/GregorianBased.d
Xinclude/d/4.1.3/tango/time/WallClock.d
Xinclude/d/4.1.3/tango/time/StopWatch.d
Xinclude/d/4.1.3/tango/time/Time.d
Xinclude/d/4.1.3/tango/time/Clock.d
Xinclude/d/4.1.3/tango/time/ISO8601.d
Xinclude/d/4.1.3/tango/sys/linux/linux.d
Xinclude/d/4.1.3/tango/sys/linux/epoll.d
Xinclude/d/4.1.3/tango/sys/linux/socket.d
Xinclude/d/4.1.3/tango/sys/freebsd/freebsd.d
Xinclude/d/4.1.3/tango/sys/darwin/darwin.d
Xinclude/d/4.1.3/tango/sys/win32/CodePage.d
Xinclude/d/4.1.3/tango/sys/win32/Types.di
Xinclude/d/4.1.3/tango/sys/win32/UserGdi.di
Xinclude/d/4.1.3/tango/sys/win32/Macros.di
Xinclude/d/4.1.3/tango/sys/win32/IUnknown.d
Xinclude/d/4.1.3/tango/sys/win32/Process.di
Xinclude/d/4.1.3/tango/sys/Pipe.d
Xinclude/d/4.1.3/tango/sys/Environment.d
Xinclude/d/4.1.3/tango/sys/SharedLib.d
Xinclude/d/4.1.3/tango/sys/Common.d
Xinclude/d/4.1.3/tango/sys/Process.d
Xinclude/d/4.1.3/tango/text/convert/Float.d.orig
Xinclude/d/4.1.3/tango/text/convert/TimeStamp.d
Xinclude/d/4.1.3/tango/text/convert/Format.d
Xinclude/d/4.1.3/tango/text/convert/Float.d
Xinclude/d/4.1.3/tango/text/convert/Integer.d
Xinclude/d/4.1.3/tango/text/convert/Sprint.d
Xinclude/d/4.1.3/tango/text/convert/Utf.d
Xinclude/d/4.1.3/tango/text/convert/Layout.d
Xinclude/d/4.1.3/tango/text/convert/UnicodeBom.d
Xinclude/d/4.1.3/tango/text/xml/SaxParser.d
Xinclude/d/4.1.3/tango/text/xml/XmlPrinter.d
Xinclude/d/4.1.3/tango/text/xml/PullParser.d
Xinclude/d/4.1.3/tango/text/xml/Document.d
Xinclude/d/4.1.3/tango/text/locale/Convert.d
Xinclude/d/4.1.3/tango/text/locale/Data.d
Xinclude/d/4.1.3/tango/text/locale/Collation.d
Xinclude/d/4.1.3/tango/text/locale/Win32.d
Xinclude/d/4.1.3/tango/text/locale/Posix.d
Xinclude/d/4.1.3/tango/text/locale/Locale.d
Xinclude/d/4.1.3/tango/text/locale/Parse.d
Xinclude/d/4.1.3/tango/text/locale/Core.d
Xinclude/d/4.1.3/tango/text/stream/RegexIterator.d
Xinclude/d/4.1.3/tango/text/stream/QuoteIterator.d
Xinclude/d/4.1.3/tango/text/stream/StreamIterator.d
Xinclude/d/4.1.3/tango/text/stream/LineIterator.d
Xinclude/d/4.1.3/tango/text/stream/SimpleIterator.d
Xinclude/d/4.1.3/tango/text/Ascii.d
Xinclude/d/4.1.3/tango/text/Unicode.d
Xinclude/d/4.1.3/tango/text/Util.d
Xinclude/d/4.1.3/tango/text/Text.d
Xinclude/d/4.1.3/tango/text/UnicodeData.d
Xinclude/d/4.1.3/tango/text/Regex.d
Xinclude/d/4.1.3/tango/text/Properties.d
Xinclude/d/4.1.3/tango/stdc/posix/net/if_.d
Xinclude/d/4.1.3/tango/stdc/posix/arpa/inet.d
Xinclude/d/4.1.3/tango/stdc/posix/netinet/tcp.d
Xinclude/d/4.1.3/tango/stdc/posix/netinet/in_.d
Xinclude/d/4.1.3/tango/stdc/posix/sys/mman.d
Xinclude/d/4.1.3/tango/stdc/posix/sys/types.d
Xinclude/d/4.1.3/tango/stdc/posix/sys/select.d
Xinclude/d/4.1.3/tango/stdc/posix/sys/socket.d
Xinclude/d/4.1.3/tango/stdc/posix/sys/types.d.orig
Xinclude/d/4.1.3/tango/stdc/posix/sys/mman.d.orig
Xinclude/d/4.1.3/tango/stdc/posix/sys/uio.d
Xinclude/d/4.1.3/tango/stdc/posix/sys/stat.d.orig
Xinclude/d/4.1.3/tango/stdc/posix/sys/time.d
Xinclude/d/4.1.3/tango/stdc/posix/sys/ipc.d
Xinclude/d/4.1.3/tango/stdc/posix/sys/shm.d
Xinclude/d/4.1.3/tango/stdc/posix/sys/wait.d
Xinclude/d/4.1.3/tango/stdc/posix/sys/stat.d
Xinclude/d/4.1.3/tango/stdc/posix/poll.d
Xinclude/d/4.1.3/tango/stdc/posix/time.d
Xinclude/d/4.1.3/tango/stdc/posix/stdlib.d.orig
Xinclude/d/4.1.3/tango/stdc/posix/pwd.d
Xinclude/d/4.1.3/tango/stdc/posix/fcntl.d
Xinclude/d/4.1.3/tango/stdc/posix/signal.d.orig
Xinclude/d/4.1.3/tango/stdc/posix/unistd.d
Xinclude/d/4.1.3/tango/stdc/posix/termios.d
Xinclude/d/4.1.3/tango/stdc/posix/dirent.d
Xinclude/d/4.1.3/tango/stdc/posix/inttypes.d
Xinclude/d/4.1.3/tango/stdc/posix/dlfcn.d
Xinclude/d/4.1.3/tango/stdc/posix/config.d
Xinclude/d/4.1.3/tango/stdc/posix/pthread.d.orig
Xinclude/d/4.1.3/tango/stdc/posix/utime.d
Xinclude/d/4.1.3/tango/stdc/posix/time.d.orig
Xinclude/d/4.1.3/tango/stdc/posix/stdlib.d
Xinclude/d/4.1.3/tango/stdc/posix/semaphore.d.orig
Xinclude/d/4.1.3/tango/stdc/posix/ucontext.d
Xinclude/d/4.1.3/tango/stdc/posix/setjmp.d
Xinclude/d/4.1.3/tango/stdc/posix/semaphore.d
Xinclude/d/4.1.3/tango/stdc/posix/stdio.d
Xinclude/d/4.1.3/tango/stdc/posix/signal.d
Xinclude/d/4.1.3/tango/stdc/posix/pthread.d
Xinclude/d/4.1.3/tango/stdc/posix/sched.d
Xinclude/d/4.1.3/tango/stdc/limits.d
Xinclude/d/4.1.3/tango/stdc/fenv.d.orig
Xinclude/d/4.1.3/tango/stdc/ctype.d
Xinclude/d/4.1.3/tango/stdc/math.d.orig
Xinclude/d/4.1.3/tango/stdc/time.d
Xinclude/d/4.1.3/tango/stdc/stdint.d
Xinclude/d/4.1.3/tango/stdc/stdarg.d
Xinclude/d/4.1.3/tango/stdc/stdio.d
Xinclude/d/4.1.3/tango/stdc/string.d
Xinclude/d/4.1.3/tango/stdc/signal.d
Xinclude/d/4.1.3/tango/stdc/complex.d
Xinclude/d/4.1.3/tango/stdc/errno.d
Xinclude/d/4.1.3/tango/stdc/locale.d
Xinclude/d/4.1.3/tango/stdc/wctype.d
Xinclude/d/4.1.3/tango/stdc/inttypes.d
Xinclude/d/4.1.3/tango/stdc/time.d.orig
Xinclude/d/4.1.3/tango/stdc/stringz.d
Xinclude/d/4.1.3/tango/stdc/stddef.d
Xinclude/d/4.1.3/tango/stdc/tgmath.d
Xinclude/d/4.1.3/tango/stdc/fenv.d
Xinclude/d/4.1.3/tango/stdc/config.d
Xinclude/d/4.1.3/tango/stdc/math.d
Xinclude/d/4.1.3/tango/stdc/stdlib.d
Xinclude/d/4.1.3/tango/util/log/model/IHierarchy.d
Xinclude/d/4.1.3/tango/util/log/model/ILevel.d
Xinclude/d/4.1.3/tango/util/log/NullAppender.d
Xinclude/d/4.1.3/tango/util/log/Hierarchy.d
Xinclude/d/4.1.3/tango/util/log/Trace.d
Xinclude/d/4.1.3/tango/util/log/ConsoleAppender.d
Xinclude/d/4.1.3/tango/util/log/Event.d
Xinclude/d/4.1.3/tango/util/log/Configurator.d
Xinclude/d/4.1.3/tango/util/log/PropertyConfigurator.d
Xinclude/d/4.1.3/tango/util/log/EventLayout.d
Xinclude/d/4.1.3/tango/util/log/Logger.d
Xinclude/d/4.1.3/tango/util/log/RollingFileAppender.d
Xinclude/d/4.1.3/tango/util/log/Log.d
Xinclude/d/4.1.3/tango/util/log/SocketAppender.d
Xinclude/d/4.1.3/tango/util/log/Log4Layout.d
Xinclude/d/4.1.3/tango/util/log/MailAppender.d
Xinclude/d/4.1.3/tango/util/log/DateLayout.d
Xinclude/d/4.1.3/tango/util/log/FileAppender.d
Xinclude/d/4.1.3/tango/util/log/Appender.d
Xinclude/d/4.1.3/tango/util/collection/impl/BagCollection.d
Xinclude/d/4.1.3/tango/util/collection/impl/SeqCollection.d
Xinclude/d/4.1.3/tango/util/collection/impl/Cell.d
Xinclude/d/4.1.3/tango/util/collection/impl/Collection.d
Xinclude/d/4.1.3/tango/util/collection/impl/LLPair.d
Xinclude/d/4.1.3/tango/util/collection/impl/RBPair.d
Xinclude/d/4.1.3/tango/util/collection/impl/SetCollection.d
Xinclude/d/4.1.3/tango/util/collection/impl/MapCollection.d
Xinclude/d/4.1.3/tango/util/collection/impl/LLCell.d
Xinclude/d/4.1.3/tango/util/collection/impl/RBCell.d
Xinclude/d/4.1.3/tango/util/collection/impl/CLCell.d
Xinclude/d/4.1.3/tango/util/collection/impl/AbstractIterator.d
Xinclude/d/4.1.3/tango/util/collection/impl/DefaultComparator.d
Xinclude/d/4.1.3/tango/util/collection/iterator/InterleavingIterator.d
Xinclude/d/4.1.3/tango/util/collection/iterator/FilteringIterator.d
Xinclude/d/4.1.3/tango/util/collection/iterator/ArrayIterator.d
Xinclude/d/4.1.3/tango/util/collection/model/SortedValues.d
Xinclude/d/4.1.3/tango/util/collection/model/Sortable.d
Xinclude/d/4.1.3/tango/util/collection/model/Iterator.d
Xinclude/d/4.1.3/tango/util/collection/model/Comparator.d
Xinclude/d/4.1.3/tango/util/collection/model/SeqView.d
Xinclude/d/4.1.3/tango/util/collection/model/SortedKeys.d
Xinclude/d/4.1.3/tango/util/collection/model/BagView.d
Xinclude/d/4.1.3/tango/util/collection/model/Bag.d
Xinclude/d/4.1.3/tango/util/collection/model/Dispenser.d
Xinclude/d/4.1.3/tango/util/collection/model/Set.d
Xinclude/d/4.1.3/tango/util/collection/model/Map.d
Xinclude/d/4.1.3/tango/util/collection/model/SetView.d
Xinclude/d/4.1.3/tango/util/collection/model/Seq.d
Xinclude/d/4.1.3/tango/util/collection/model/MapView.d
Xinclude/d/4.1.3/tango/util/collection/model/HashParams.d
Xinclude/d/4.1.3/tango/util/collection/model/View.d
Xinclude/d/4.1.3/tango/util/collection/model/GuardIterator.d
Xinclude/d/4.1.3/tango/util/collection/TreeMap.d
Xinclude/d/4.1.3/tango/util/collection/HashSet.d
Xinclude/d/4.1.3/tango/util/collection/CircularSeq.d
Xinclude/d/4.1.3/tango/util/collection/HashMap.d
Xinclude/d/4.1.3/tango/util/collection/ArrayBag.d
Xinclude/d/4.1.3/tango/util/collection/ArraySeq.d
Xinclude/d/4.1.3/tango/util/collection/LinkMap.d
Xinclude/d/4.1.3/tango/util/collection/LinkSeq.d
Xinclude/d/4.1.3/tango/util/collection/TreeBag.d
Xinclude/d/4.1.3/tango/util/Convert.d
Xinclude/d/4.1.3/tango/util/PathUtil.d
Xinclude/d/4.1.3/tango/util/ArgParser.d
X at dirrm include/d/4.1.3/tango/util/collection/model
X at dirrm include/d/4.1.3/tango/util/collection/iterator
X at dirrm include/d/4.1.3/tango/util/collection/impl
X at dirrm include/d/4.1.3/tango/util/collection
X at dirrm include/d/4.1.3/tango/util/log/model
X at dirrm include/d/4.1.3/tango/util/log
X at dirrm include/d/4.1.3/tango/util
X at dirrm include/d/4.1.3/tango/stdc/posix/sys
X at dirrm include/d/4.1.3/tango/stdc/posix/netinet
X at dirrm include/d/4.1.3/tango/stdc/posix/arpa
X at dirrm include/d/4.1.3/tango/stdc/posix/net
X at dirrm include/d/4.1.3/tango/stdc/posix
X at dirrm include/d/4.1.3/tango/stdc
X at dirrm include/d/4.1.3/tango/text/stream
X at dirrm include/d/4.1.3/tango/text/locale
X at dirrm include/d/4.1.3/tango/text/xml
X at dirrm include/d/4.1.3/tango/text/convert
X at dirrm include/d/4.1.3/tango/text
X at dirrm include/d/4.1.3/tango/sys/win32
X at dirrm include/d/4.1.3/tango/sys/darwin
X at dirrm include/d/4.1.3/tango/sys/freebsd
X at dirrm include/d/4.1.3/tango/sys/linux
X at dirrm include/d/4.1.3/tango/sys
X at dirrm include/d/4.1.3/tango/time/chrono
X at dirrm include/d/4.1.3/tango/time
X at dirrm include/d/4.1.3/tango/math
X at dirrm include/d/4.1.3/tango/io/vfs/model
X at dirrm include/d/4.1.3/tango/io/vfs
X at dirrm include/d/4.1.3/tango/io/digest
X at dirrm include/d/4.1.3/tango/io/stream
X at dirrm include/d/4.1.3/tango/io/model
X at dirrm include/d/4.1.3/tango/io/protocol/model
X at dirrm include/d/4.1.3/tango/io/protocol
X at dirrm include/d/4.1.3/tango/io/archive
X at dirrm include/d/4.1.3/tango/io/compress/c
X at dirrm include/d/4.1.3/tango/io/compress
X at dirrm include/d/4.1.3/tango/io/selector/model
X at dirrm include/d/4.1.3/tango/io/selector
X at dirrm include/d/4.1.3/tango/io
X at dirrm include/d/4.1.3/tango/group
X at dirrm include/d/4.1.3/tango/net/http/model
X at dirrm include/d/4.1.3/tango/net/http
X at dirrm include/d/4.1.3/tango/net/C
X at dirrm include/d/4.1.3/tango/net/cluster/tina/util/model
X at dirrm include/d/4.1.3/tango/net/cluster/tina/util
X at dirrm include/d/4.1.3/tango/net/cluster/tina
X at dirrm include/d/4.1.3/tango/net/cluster/model
X at dirrm include/d/4.1.3/tango/net/cluster
X at dirrm include/d/4.1.3/tango/net/ftp
X at dirrm include/d/4.1.3/tango/net/model
X at dirrm include/d/4.1.3/tango/net
X at dirrm include/d/4.1.3/tango/core/sync
X at dirrm include/d/4.1.3/tango/core
X at dirrm include/d/4.1.3/tango
END-of-tango/pkg-plist
echo c - tango/files
mkdir -p tango/files > /dev/null 2>&1
echo x - tango/files/patch-bsd_final.diff
sed 's/^X//' >tango/files/patch-bsd_final.diff << 'END-of-tango/files/patch-bsd_final.diff'
XIndex: lib/common/tango/core/Thread.d
X===================================================================
X--- lib/common/tango/core/Thread.d (revision 3329)
X+++ lib/common/tango/core/Thread.d (working copy)
X@@ -7,7 +7,6 @@
X */
X module tango.core.Thread;
X
X-
X // this should be true for most architectures
X version = StackGrowsDown;
X
X@@ -20,7 +19,6 @@
X {
X import tango.core.Exception;
X
X-
X //
X // exposed by compiler runtime
X //
X@@ -181,8 +179,20 @@
X // implementation actually requires default initialization
X // then pthread_cleanup should be restructured to maintain
X // the current lack of a link dependency.
X- pthread_cleanup cleanup = void;
X- cleanup.push( &thread_cleanupHandler, cast(void*) obj );
X+ version(linux)
X+ {
X+ pthread_cleanup cleanup = void;
X+ cleanup.push( &thread_cleanupHandler, cast(void*) obj );
X+ }
X+ else version(darwin)
X+ {
X+ pthread_cleanup cleanup = void;
X+ cleanup.push( &thread_cleanupHandler, cast(void*) obj );
X+ }
X+ else
X+ {
X+ pthread_cleanup_push(&thread_cleanupHandler, cast(void*) obj);
X+ }
X
X // NOTE: For some reason this does not always work for threads.
X //obj.m_main.bstack = getStackBottom();
X@@ -2802,11 +2812,11 @@
X status = pthread_key_create( &sm_this, null );
X assert( status == 0 );
X
X- static if( is( typeof( ucontext_t ) ) )
X- {
X- status = getcontext( &sm_utxt );
X- assert( status == 0 );
X- }
X+ static if( is( typeof( ucontext_t ) ) )
X+ {
X+ status = getcontext( &sm_utxt );
X+ assert( status == 0 );
X+ }
X }
X }
X
XIndex: lib/build-gdc.sh
X===================================================================
X--- lib/build-gdc.sh (revision 3329)
X+++ lib/build-gdc.sh (working copy)
X@@ -54,9 +54,9 @@
X
X OLDHOME=$HOME
X export HOME=`pwd`
X-$MAKE clean -fgdc-posix.mak DC="$GDMD" || exit 1
X-$MAKE lib doc install -fgdc-posix.mak DC="$GDMD" ADD_CFLAGS="$ADD_CFLAGS" || exit 1
X-$MAKE clean -fgdc-posix.mak DC="$GDMD" || exit 1
X-chmod 644 ../tango/core/*.di || exit 1
X+$MAKE clean -fgdc-posix.mak DC="$GDMD" || (echo "Build failed!" && exit 1)
X+$MAKE lib doc install -fgdc-posix.mak DC="$GDMD" ADD_CFLAGS="$ADD_CFLAGS" || (echo "Build failed!" && exit 1)
X+$MAKE clean -fgdc-posix.mak DC="$GDMD" || (echo "Build failed!" && exit 1)
X+chmod 644 ../tango/core/*.di || (echo "Build failed! Missing crucial .di files." && exit 1)
X
X export HOME=$OLDHOME
XIndex: tango/text/convert/Float.d
X===================================================================
X--- tango/text/convert/Float.d (revision 3329)
X+++ tango/text/convert/Float.d (working copy)
X@@ -27,10 +27,10 @@
X
X private import Integer = tango.text.convert.Integer;
X
X+private import tango.stdc.math;
X+
X private alias real NumType;
X
X-private extern (C) NumType log10l(NumType x);
X-
X /******************************************************************************
X
X Constants
XIndex: tango/net/C/OpenSSL.d
X===================================================================
X--- tango/net/C/OpenSSL.d (revision 3329)
X+++ tango/net/C/OpenSSL.d (working copy)
X@@ -728,6 +728,11 @@
X {
X char[][] loadPath = [ "/usr/lib/libssl.dylib", "libssl.dylib" ];
X }
X+ version (freebsd)
X+ {
X+ // TODO: Support other ssl libraries(?)
X+ char[][] loadPath = [ "libgnutls-openssl.so" ];
X+ }
X if ((ssllib = loadLib(loadPath)) !is null)
X {
X
XIndex: tango/net/Socket.d
X===================================================================
X--- tango/net/Socket.d (revision 3329)
X+++ tango/net/Socket.d (working copy)
X@@ -68,7 +68,6 @@
X
X private import tango.core.Exception;
X
X-
X /*******************************************************************************
X
X
X@@ -195,7 +194,19 @@
X int fcntl(socket_t s, int f, ...);
X uint inet_addr(char* cp);
X int bind(socket_t s, sockaddr* name, int namelen);
X- int connect(socket_t s, sockaddr* name, int namelen);
X+ version(linux)
X+ {
X+ int connect(socket_t s, sockaddr* name, int namelen);
X+ }
X+ else version(darwin)
X+ {
X+ int connect(socket_t s, sockaddr* name, int namelen);
X+ }
X+ else version(freebsd)
X+ {
X+ int connect(socket_t s, sockaddr* name, uint namelen);
X+ }
X+
X int listen(socket_t s, int backlog);
X socket_t accept(socket_t s, sockaddr* addr, int* addrlen);
X int close(socket_t s);
X@@ -248,8 +259,9 @@
X
X struct sockaddr
X {
X- ushort sa_family;
X- char[14] sa_data = [0];
X+ version(freebsd) ubyte sa_len = this.sizeof;
X+ ushort sa_family;
X+ char[14] sa_data;
X }
X
X
X@@ -506,6 +518,62 @@
X UDP = 17, // appears to be correct
X }
X }
X+else version (freebsd)
X+{
X+ enum SocketOption: int
X+ {
X+ SO_DEBUG = 0x0001, /* turn on debugging info recording */
X+ SO_BROADCAST = 0x0020, /* permit sending of broadcast msgs */
X+ SO_REUSEADDR = 0x0004, /* allow local address reuse */
X+ SO_LINGER = 0x0080, /* linger on close if data present */
X+ //SO_DONTLINGER = ~(SO_LINGER),
X+ SO_OOBINLINE = 0x0100, /* leave received OOB data in line */
X+ SO_ACCEPTCONN = 0x0002, /* socket has had listen() */
X+ SO_KEEPALIVE = 0x0008, /* keep connections alive */
X+ SO_DONTROUTE = 0x0010, /* just use interface addresses */
X+ SO_TYPE = 0x1008, /* get socket type */
X+
X+ /*
X+ * Additional options, not kept in so_options.
X+ */
X+ SO_SNDBUF = 0x1001, /* send buffer size */
X+ SO_RCVBUF = 0x1002, /* receive buffer size */
X+ SO_ERROR = 0x1007, /* get error status and clear */
X+
X+ // OptionLevel.IP settings
X+ IP_MULTICAST_TTL = 10,
X+ IP_MULTICAST_LOOP = 11,
X+ IP_ADD_MEMBERSHIP = 12,
X+ IP_DROP_MEMBERSHIP = 13,
X+
X+ // OptionLevel.TCP settings
X+ TCP_NODELAY = 0x01,
X+ }
X+
X+
X+ union linger
X+ {
X+ struct {
X+ int l_onoff; // option on/off
X+ int l_linger; // linger time
X+ };
X+ int[2] array; // combined
X+ }
X+
X+ /***************************************************************
X+
X+ Question: are these correct for FreeBSD?
X+
X+ ***************************************************************/
X+
X+ enum SocketOptionLevel
X+ {
X+ SOCKET = 0xffff,
X+ IP = 0, // appears to be correct
X+ TCP = 6, // appears to be correct
X+ UDP = 17, // appears to be correct
X+ }
X+}
X else version (linux)
X {
X /***************************************************************
X@@ -662,6 +730,18 @@
X //INET6 = 10,
X }
X }
X+ else version (freebsd)
X+ {
X+ enum AddressFamily: ushort
X+ {
X+ UNSPEC = 0,
X+ UNIX = 1,
X+ INET = 2,
X+ IPX = 23,
X+ APPLETALK = 16,
X+ INET6 = 28,
X+ }
X+ }
X else version (linux)
X {
X enum AddressFamily: int
X@@ -851,9 +931,9 @@
X
X Socket connect(Address to)
X {
X- if(SOCKET_ERROR == .connect (sock, to.name(), to.nameLen()))
X- {
X- if(!blocking)
X+ if(SOCKET_ERROR == .connect (sock, to.name(), to.nameLen()))
X+ {
X+ if(!blocking)
X {
X version(Win32)
X {
X@@ -1006,7 +1086,8 @@
X
X auto option = (onOff) ? SocketOption.IP_ADD_MEMBERSHIP : SocketOption.IP_DROP_MEMBERSHIP;
X mrq.imr_interface = 0;
X- mrq.imr_multiaddr = address.sin.sin_addr;
X+ version(freebsd) mrq.imr_multiaddr = address.sin.sin_addr.s_addr;
X+ else mrq.imr_multiaddr = address.sin.sin_addr;
X
X if (.setsockopt(sock, SocketOptionLevel.IP, option, &mrq, mrq.sizeof) == SOCKET_ERROR)
X exception ("Unable to perform multicast join: ");
X@@ -1446,7 +1527,7 @@
X
X int nameLen()
X {
X- return sa.sizeof;
X+ return sa.sizeof;
X }
X
X
X@@ -1666,14 +1747,33 @@
X
X ***********************************************************************/
X
X- struct sockaddr_in
X- {
X- ushort sinfamily = AddressFamily.INET;
X- ushort sin_port;
X- uint sin_addr; //in_addr
X- char[8] sin_zero = [0];
X- }
X+ version(freebsd)
X+ {
X+ struct in_addr
X+ {
X+ uint s_addr;
X+ }
X
X+ struct sockaddr_in
X+ {
X+ ubyte sin_len = this.sizeof;
X+ ubyte sin_family = AddressFamily.INET;
X+ ushort sin_port;
X+ in_addr sin_addr;
X+ char[8] sin_zero;
X+ }
X+ }
X+ else
X+ {
X+ struct sockaddr_in
X+ {
X+ ushort sin_family = AddressFamily.INET;
X+ ushort sin_port;
X+ uint sin_addr; //in_addr
X+ char[8] sin_zero;
X+ }
X+ }
X+
X sockaddr_in sin;
X
X
X@@ -1695,7 +1795,7 @@
X
X int nameLen()
X {
X- return sin.sizeof;
X+ return sin.sizeof;
X }
X
X
X@@ -1745,7 +1845,8 @@
X
X uint addr()
X {
X- return ntohl(sin.sin_addr);
X+ version(freebsd) return ntohl(sin.sin_addr.s_addr);
X+ else return ntohl(sin.sin_addr);
X }
X
X
X@@ -1766,7 +1867,8 @@
X exception ("Unable to resolve '"~addr~"': ");
X uiaddr = ih.addrList[0];
X }
X- sin.sin_addr = htonl(uiaddr);
X+ version(freebsd) sin.sin_addr.s_addr = htonl(uiaddr);
X+ else sin.sin_addr = htonl(uiaddr);
X sin.sin_port = htons(cast(ushort) port);
X }
X
X@@ -1778,8 +1880,9 @@
X
X this(uint addr, ushort port)
X {
X- sin.sin_addr = htonl(addr);
X- sin.sin_port = htons(port);
X+ version(freebsd) sin.sin_addr.s_addr = htonl(addr);
X+ else sin.sin_addr = htonl(addr);
X+ sin.sin_port = htons(port);
X }
X
X
X@@ -1790,8 +1893,9 @@
X
X this(ushort port)
X {
X- sin.sin_addr = 0; //any, "0.0.0.0"
X- sin.sin_port = htons(port);
X+ version(freebsd) sin.sin_addr.s_addr = 0; //any, "0.0.0.0"
X+ else sin.sin_addr = 0; //any, "0.0.0.0"
X+ sin.sin_port = htons(port);
X }
X
X /***********************************************************************
X@@ -1801,7 +1905,8 @@
X
X synchronized char[] toAddrString()
X {
X- return .toString(inet_ntoa(sin.sin_addr)).dup;
X+ version(freebsd) return .toString(inet_ntoa(sin.sin_addr.s_addr)).dup;
X+ else return .toString(inet_ntoa(sin.sin_addr)).dup;
X }
X
X
XIndex: tango/io/FilePath.d
X===================================================================
X--- tango/io/FilePath.d (revision 3329)
X+++ tango/io/FilePath.d (working copy)
X@@ -1648,9 +1648,25 @@
X
X getInfo (name, stats);
X
X- time.modified = convert (cast(timeval*) &stats.st_mtime);
X- time.accessed = convert (cast(timeval*) &stats.st_atime);
X- time.created = convert (cast(timeval*) &stats.st_ctime);
X+ version(linux)
X+ {
X+ time.modified = convert (cast(timeval*) &stats.st_mtime);
X+ time.accessed = convert (cast(timeval*) &stats.st_atime);
X+ time.created = convert (cast(timeval*) &stats.st_ctime);
X+ }
X+ version(darwin)
X+ {
X+ time.modified = convert (cast(timeval*) &stats.st_mtime);
X+ time.accessed = convert (cast(timeval*) &stats.st_atime);
X+ time.created = convert (cast(timeval*) &stats.st_ctime);
X+ }
X+ else version(freebsd)
X+ {
X+ time.modified = convert (cast(timeval*) &stats.st_mtimespec.tv_sec);
X+ time.accessed = convert (cast(timeval*) &stats.st_atimespec.tv_sec);
X+ time.created = convert (cast(timeval*) &stats.st_ctimespec.tv_sec);
X+ }
X+
X return time;
X }
X
X@@ -1701,8 +1717,21 @@
X exception (source);
X
X utimbuf utim;
X- utim.actime = stats.st_atime;
X- utim.modtime = stats.st_mtime;
X+ version(linux)
X+ {
X+ utim.actime = stats.st_atime;
X+ utim.modtime = stats.st_mtime;
X+ }
X+ version(darwin)
X+ {
X+ utim.actime = stats.st_atime;
X+ utim.modtime = stats.st_mtime;
X+ }
X+ version(freebsd)
X+ {
X+ utim.actime = stats.st_atimespec.tv_sec;
X+ utim.modtime = stats.st_mtimespec.tv_sec;
X+ }
X if (utime (dest.ptr, &utim) is -1)
X exception (dest);
X }
XIndex: tango/math/IEEE.d
X===================================================================
X--- tango/math/IEEE.d (revision 3329)
X+++ tango/math/IEEE.d (working copy)
X@@ -552,7 +552,7 @@
X }
X } else {
X exp = (ex - F.EXPBIAS) >>> 4;
X- ve[F.EXPPOS_SHORT] = (0x8000 & ve[F.EXPPOS_SHORT]) | 0x3FE0;
X+ vu[F.EXPPOS_SHORT] = (0x8000 & vu[F.EXPPOS_SHORT]) | 0x3FE0;
X }
X } else if (!(*vl & 0x7FFF_FFFF_FFFF_FFFF)) {
X // value is +-0.0
X@@ -560,7 +560,7 @@
X } else {
X // denormal
X ushort sgn;
X- sgn = (0x8000 & ve[F.EXPPOS_SHORT])| 0x3FE0;
X+ sgn = (0x8000 & vu[F.EXPPOS_SHORT])| 0x3FE0;
X *vl &= 0x7FFF_FFFF_FFFF_FFFF;
X
X int i = -0x3FD+11;
X@@ -569,7 +569,7 @@
X *vl <<= 1;
X } while (*vl > 0);
X exp = i;
X- ve[F.EXPPOS_SHORT] = sgn;
X+ vu[F.EXPPOS_SHORT] = sgn;
X }
X return value;
X }else { //static if(real.mant_dig==106) // doubledouble
XIndex: tango/stdc/time.d
X===================================================================
X--- tango/stdc/time.d (revision 3329)
X+++ tango/stdc/time.d (working copy)
X@@ -93,3 +93,7 @@
X {
X void tzset();
X }
X+else version( freebsd )
X+{
X+ void tzset();
X+}
X\ No newline at end of file
XIndex: tango/stdc/fenv.d
X===================================================================
X--- tango/stdc/fenv.d (revision 3329)
X+++ tango/stdc/fenv.d (working copy)
X@@ -110,6 +110,11 @@
X private extern fenv_t _FE_DFL_ENV;
X fenv_t* FE_DFL_ENV = &_FE_DFL_ENV;
X }
X+else version( freebsd )
X+{
X+ private extern fenv_t _FE_DFL_ENV;
X+ fenv_t* FE_DFL_ENV = &_FE_DFL_ENV;
X+}
X else
X {
X static assert( false );
XIndex: tango/stdc/posix/time.d
X===================================================================
X--- tango/stdc/posix/time.d (revision 3329)
X+++ tango/stdc/posix/time.d (working copy)
X@@ -250,6 +250,7 @@
X }
X else version( freebsd )
X {
X+ extern c_long timezone; // Is this right for BSD?
X //tm* getdate(char *);
X char* strptime(char*, char*, tm*);
X }
XIndex: tango/stdc/posix/signal.d
X===================================================================
X--- tango/stdc/posix/signal.d (revision 3329)
X+++ tango/stdc/posix/signal.d (working copy)
X@@ -88,12 +88,6 @@
X SIGEV_THREAD
X }
X
X-union sigval
X-{
X- int sival_int;
X- void* sival_ptr;
X-}
X-
X private extern (C) int __libc_current_sigrtmin();
X private extern (C) int __libc_current_sigrtmax();
X
X@@ -257,6 +251,11 @@
X
X version( linux )
X {
X+ union sigval
X+ {
X+ int sival_int;
X+ void* sival_ptr;
X+ }
X const SIG_HOLD = cast(sigfn_t) 1;
X
X private const _SIGSET_NWORDS = 1024 / (8 * c_ulong.sizeof);
X@@ -378,6 +377,11 @@
X }
X else version( darwin )
X {
X+ union sigval
X+ {
X+ int sival_int;
X+ void* sival_ptr;
X+ }
X //SIG_HOLD
X
X alias uint sigset_t;
X@@ -487,7 +491,7 @@
X }
X
X int kill(pid_t, int);
X- int sigaction(int, sigaction_t*, sigaction_t);
X+ int sigaction(int, sigaction_t*, sigaction_t*);
X int sigaddset(sigset_t*, int);
X int sigdelset(sigset_t*, int);
X int sigemptyset(sigset_t *);
X@@ -798,6 +802,28 @@
X int sigtimedwait( sigset_t*, siginfo_t*, timespec*);
X int sigwaitinfo( sigset_t*, siginfo_t*);
X }
X+else version( freebsd )
X+{
X+ alias uint __lwpid_t;
X+ struct sigevent
X+ {
X+ int sigev_notify;
X+ int sigev_signo;
X+ sigval sigev_value;
X+ private union __sigev_un
X+ {
X+ __lwpid_t _threadid;
X+ struct __sigev_thread
X+ {
X+ void function(sigval) _function;
X+ void* _attribute;
X+ }
X+ __sigev_thread _sigev_thread;
X+ c_long[8] __spare__;
X+ }
X+ __sigev_un _sigev_un;
X+ }
X+}
X
X //
X // Threads (THR)
XIndex: tango/stdc/posix/stdlib.d
X===================================================================
X--- tango/stdc/posix/stdlib.d (revision 3329)
X+++ tango/stdc/posix/stdlib.d (working copy)
X@@ -78,6 +78,10 @@
X {
X int posix_memalign(void**, size_t, size_t);
X }
X+else version( freebsd )
X+{
X+ int posix_memalign(void**, size_t, size_t);
X+}
X
X //
X // C Extension (CX)
X@@ -101,6 +105,11 @@
X
X void* valloc(size_t); // LEGACY non-standard
X }
X+else version( freebsd )
X+{
X+ int setenv(char*, char*, int);
X+ int unsetenv(char*);
X+}
X
X //
X // Thread-Safe Functions (TSF)
X@@ -258,9 +267,93 @@
X
X c_long a64l(char*);
X double drand48();
X- //char* ecvt(double, int, int *, int *); // LEGACY
X- double erand48(ushort[3]);
X- //char* fcvt(double, int, int *, int *); // LEGACY
X+
X+ // Unimplemented on FreeBSD, but required by tango
X+ import tango.stdc.math : modf;
X+ char* ecvt(double arg, int ndigits, int* decpt, int* sign)
X+ {
X+ return(cvt(arg, ndigits, decpt, sign, true));
X+ }
X+ char* fcvt(double arg, int ndigits, int* decpt, int* sign)
X+ {
X+ return(cvt(arg, ndigits, decpt, sign, false));
X+ }
X+ private char* cvt(double arg, int ndigits, int* decpt, int* sign, bool eflag)
X+ {
X+ int r2;
X+ double fi, fj;
X+ char* p, p1;
X+ char[] buf;
X+
X+ if (ndigits<0)
X+ ndigits = 0;
X+ buf = new char[ndigits];
X+
X+ r2 = 0;
X+ *sign = 0;
X+ p = &buf[0];
X+ if (arg<0) {
X+ *sign = 1;
X+ arg = -arg;
X+ }
X+ arg = modf(arg, &fi);
X+ p1 = &buf[$-1];
X+ /*
X+ * Do integer part
X+ */
X+ if (fi != 0) {
X+ p1 = &buf[$-1];
X+ while (fi != 0) {
X+ fj = modf(fi/10, &fi);
X+ *--p1 = cast(int)((fj+.03)*10) + '0';
X+ r2++;
X+ }
X+ while (p1 < &buf[$-1])
X+ *p++ = *p1++;
X+ } else if (arg > 0) {
X+ while ((fj = arg*10) < 1) {
X+ arg = fj;
X+ r2--;
X+ }
X+ }
X+ p1 = &buf[ndigits];
X+ if (!eflag)
X+ p1 += r2;
X+ *decpt = r2;
X+ if (p1 < &buf[0]) {
X+ buf[0] = '\0';
X+ return(buf.ptr);
X+ }
X+ while (p<=p1 && p<&buf[$-1]) {
X+ arg *= 10;
X+ arg = modf(arg, &fj);
X+ *p++ = cast(int)fj + '0';
X+ }
X+ if (p1 >= &buf[$-1]) {
X+ buf[$-2] = '\0';
X+ return(buf.ptr);
X+ }
X+ p = p1;
X+ *p1 += 5;
X+ while (*p1 > '9') {
X+ *p1 = '0';
X+ if (p1>buf.ptr)
X+ ++*--p1;
X+ else {
X+ *p1 = '1';
X+ (*decpt)++;
X+ if (!eflag) {
X+ if (p>buf.ptr)
X+ *p = '0';
X+ p++;
X+ }
X+ }
X+ }
X+ *p = '\0';
X+ return(buf.ptr);
X+ }
X+
X+ double erand48(ushort[3]);
X //char* gcvt(double, int, char*); // LEGACY
X int getsubopt(char**, char**, char**);
X int grantpt(int);
XIndex: tango/stdc/posix/semaphore.d
X===================================================================
X--- tango/stdc/posix/semaphore.d (revision 3329)
X+++ tango/stdc/posix/semaphore.d (working copy)
X@@ -58,9 +58,7 @@
X }
X else version( freebsd )
X {
X- const uint SEM_MAGIC = 0x09fa4012;
X- const SEM_USER = 0;
X- struct sem_t
X+ struct sem
X {
X uint magic;
X pthread_mutex_t lock;
X@@ -75,10 +73,9 @@
X sem** le_prev;
X }
X _entry entry;
X- sem_t** backpointer;
X+ sem** backpointer;
X }
X-
X- const SEM_FAILED = cast(sem_t*) null;
X+ alias sem* sem_t;
X }
X
X int sem_close(sem_t*);
XIndex: tango/stdc/posix/pthread.d
X===================================================================
X--- tango/stdc/posix/pthread.d (revision 3329)
X+++ tango/stdc/posix/pthread.d (working copy)
X@@ -282,7 +282,19 @@
X int pthread_barrierattr_init(pthread_barrierattr_t*);
X int pthread_barrierattr_setpshared(pthread_barrierattr_t*, int);
X }
X+else version( freebsd )
X+{
X+ const PTHREAD_BARRIER_SERIAL_THREAD = -1;
X
X+ int pthread_barrier_destroy(pthread_barrier_t*);
X+ int pthread_barrier_init(pthread_barrier_t*, pthread_barrierattr_t*, uint);
X+ int pthread_barrier_wait(pthread_barrier_t*);
X+ int pthread_barrierattr_destroy(pthread_barrierattr_t*);
X+ int pthread_barrierattr_getpshared(pthread_barrierattr_t*, int*);
X+ int pthread_barrierattr_init(pthread_barrierattr_t*);
X+ int pthread_barrierattr_setpshared(pthread_barrierattr_t*, int);
X+}
X+
X //
X // Clock (CS)
X //
X@@ -310,6 +322,14 @@
X int pthread_spin_trylock(pthread_spinlock_t*);
X int pthread_spin_unlock(pthread_spinlock_t*);
X }
X+version( freebsd )
X+{
X+ int pthread_spin_destroy(pthread_spinlock_t*);
X+ int pthread_spin_init(pthread_spinlock_t*, int);
X+ int pthread_spin_lock(pthread_spinlock_t*);
X+ int pthread_spin_trylock(pthread_spinlock_t*);
X+ int pthread_spin_unlock(pthread_spinlock_t*);
X+}
X
X //
X // XOpen (XSI)
X@@ -356,7 +376,22 @@
X int pthread_mutexattr_settype(pthread_mutexattr_t*, int);
X int pthread_setconcurrency(int);
X }
X+else version( freebsd )
X+{
X+ const PTHREAD_MUTEX_NORMAL = 3;
X+ const PTHREAD_MUTEX_ERRORCHECK = 1;
X+ const PTHREAD_MUTEX_RECURSIVE = 2;
X+ const PTHREAD_MUTEX_ADAPTIVE_NP = 4;
X+ const PTHREAD_MUTEX_TYPE_MAX = 5;
X
X+ int pthread_attr_getguardsize(pthread_attr_t*, size_t*);
X+ int pthread_attr_setguardsize(pthread_attr_t*, size_t);
X+ int pthread_getconcurrency();
X+ int pthread_mutexattr_gettype(pthread_mutexattr_t*, int*);
X+ int pthread_mutexattr_settype(pthread_mutexattr_t*, int);
X+ int pthread_setconcurrency(int);
X+}
X+
X //
X // CPU Time (TCT)
X //
X@@ -390,6 +425,12 @@
X int pthread_rwlock_timedrdlock(pthread_rwlock_t*, timespec*);
X int pthread_rwlock_timedwrlock(pthread_rwlock_t*, timespec*);
X }
X+else version( freebsd )
X+{
X+ int pthread_mutex_timedlock(pthread_mutex_t*, timespec*);
X+ int pthread_rwlock_timedrdlock(pthread_rwlock_t*, timespec*);
X+ int pthread_rwlock_timedwrlock(pthread_rwlock_t*, timespec*);
X+}
X
X //
X // Priority (TPI|TPP)
X@@ -461,7 +502,25 @@
X int pthread_setschedparam(pthread_t, int, sched_param*);
X //int pthread_setschedprio(pthread_t, int);
X }
X+else version( freebsd )
X+{
X+ enum
X+ {
X+ PTHREAD_SCOPE_SYSTEM = 0x2,
X+ PTHREAD_SCOPE_PROCESS = 0
X+ }
X
X+ int pthread_attr_getinheritsched(pthread_attr_t*, int*);
X+ int pthread_attr_getschedpolicy(pthread_attr_t*, int*);
X+ int pthread_attr_getscope(pthread_attr_t*, int*);
X+ int pthread_attr_setinheritsched(pthread_attr_t*, int);
X+ int pthread_attr_setschedpolicy(pthread_attr_t*, int);
X+ int pthread_attr_setscope(pthread_attr_t*, int);
X+ int pthread_getschedparam(pthread_t, int*, sched_param*);
X+ int pthread_setschedparam(pthread_t, int, sched_param*);
X+ //int pthread_setschedprio(pthread_t, int);
X+}
X+
X //
X // Stack (TSA|TSS)
X //
X@@ -492,6 +551,15 @@
X int pthread_attr_setstackaddr(pthread_attr_t*, void*);
X int pthread_attr_setstacksize(pthread_attr_t*, size_t);
X }
X+else version( freebsd )
X+{
X+ int pthread_attr_getstack(pthread_attr_t*, void**, size_t*);
X+ int pthread_attr_getstackaddr(pthread_attr_t*, void**);
X+ int pthread_attr_getstacksize(pthread_attr_t*, size_t*);
X+ int pthread_attr_setstack(pthread_attr_t*, void*, size_t);
X+ int pthread_attr_setstackaddr(pthread_attr_t*, void*);
X+ int pthread_attr_setstacksize(pthread_attr_t*, size_t);
X+}
X
X //
X // Shared Synchronization (TSH)
XIndex: tango/stdc/posix/sys/types.d
X===================================================================
X--- tango/stdc/posix/sys/types.d (revision 3329)
X+++ tango/stdc/posix/sys/types.d (working copy)
X@@ -90,6 +90,7 @@
X alias size_t ssize_t;
X //time_t (defined in tango.stdc.time)
X alias uint uid_t;
X+ alias uint fflags_t;
X }
X
X //
X@@ -135,13 +136,13 @@
X }
X else version( freebsd )
X {
X- //clock_t
X+ alias c_ulong clock_t;
X alias ulong fsblkcnt_t;
X alias ulong fsfilcnt_t;
X alias long id_t;
X- // key_t
X- alias c_long suseconds_t; // C long
X- alias uint useconds_t; // C unsigned int
X+ alias c_long key_t;
X+ alias c_long suseconds_t;
X+ alias uint useconds_t;
X }
X
X //
X@@ -346,26 +347,118 @@
X }
X else version( freebsd )
X {
X- struct pthread;
X-
X- /*
X-
X- {
X-
X- c_long tid;
X- umutex lock;
X- umtx_t cycle;
X- int locklevel; // C int
X- int critical_count; // C int
X- int sigblock; // C int
X- TAILQ_ENTRY(pthread) tle;
X- TAILQ_ENTRY(pthread) gcle;
X- LIST_ENTRY(pthread) hle;
X- int refcount; // C int
X- }
X- */
X-
X- alias pthread* pthread_t;
X+ private
X+ {
X+ version = pthread_libkse; // Is this always right?
X+
X+ version(pthread_libc_r)
X+ {
X+ enum : size_t
X+ {
X+ ATTR_SIZE = 44,
X+ COND_SIZE = 44,
X+ CONDATTR_SIZE = 8,
X+ KEY_SIZE = int.sizeof,
X+ MUTEX_SIZE = 64,
X+ MUTEXATTR_SIZE = 16,
X+ ONCE_SIZE = 8,
X+ RWLOCK_SIZE = 20,
X+ RWLOCKATTR_SIZE = 4,
X+ PTHREAD_SIZE = 1024
X+ }
X+ }
X+ else version(pthread_libkse)
X+ {
X+ enum : size_t
X+ {
X+ ATTR_SIZE = 44,
X+ COND_SIZE = 44,
X+ CONDATTR_SIZE = 8,
X+ KEY_SIZE = 16,
X+ MUTEX_SIZE = 68,
X+ MUTEXATTR_SIZE = 16,
X+ ONCE_SIZE = 8,
X+ RWLOCK_SIZE = 20,
X+ RWLOCKATTR_SIZE = 4,
X+ PTHREAD_SIZE = 476
X+ }
X+ }
X+ else version(pthread_libthr)
X+ {
X+ enum : size_t
X+ {
X+ ATTR_SIZE = 32,
X+ COND_SIZE = 56,
X+ CONDATTR_SIZE = 8,
X+ KEY_SIZE = 12,
X+ MUTEX_SIZE = 60,
X+ MUTEXATTR_SIZE = 16,
X+ ONCE_SIZE = 8,
X+ RWLOCK_SIZE = 20,
X+ RWLOCKATTR_SIZE = 4,
X+ PTHREAD_SIZE = 248
X+ }
X+ }
X+ }
X+ struct pthread_attr
X+ {
X+ byte[ATTR_SIZE] __opaque;
X+ }
X+ alias pthread_attr* pthread_attr_t;
X+
X+ struct pthread_cond
X+ {
X+ byte[COND_SIZE] __opaque;
X+ }
X+ alias pthread_cond* pthread_cond_t;
X+
X+ struct pthread_cond_attr
X+ {
X+ byte[CONDATTR_SIZE] __opaque;
X+ }
X+ alias pthread_cond_attr* pthread_condattr_t;
X+
X+ struct pthread_key
X+ {
X+ byte[KEY_SIZE] __opaque;
X+ }
X+ alias pthread_key* pthread_key_t;
X+
X+ struct pthread_mutex
X+ {
X+ byte[MUTEX_SIZE] __opaque;
X+ }
X+ alias pthread_mutex* pthread_mutex_t;
X+
X+ struct pthread_mutex_attr
X+ {
X+ byte[MUTEXATTR_SIZE] __opaque;
X+ }
X+ alias pthread_mutex_attr* pthread_mutexattr_t;
X+
X+ struct pthread_once
X+ {
X+ byte[ONCE_SIZE] __opaque;
X+ }
X+ alias pthread_once* pthread_once_t;
X+
X+ struct pthread_rwlock
X+ {
X+ byte[RWLOCK_SIZE] __opaque;
X+ }
X+ alias pthread_rwlock* pthread_rwlock_t;
X+
X+ struct pthread_rwlockattr
X+ {
X+ byte[RWLOCKATTR_SIZE] __opaque;
X+ }
X+ alias pthread_rwlockattr* pthread_rwlockattr_t;
X+
X+ struct pthread
X+ {
X+ byte[PTHREAD_SIZE] __opaque;
X+ }
X+ alias pthread* pthread_t;
X }
X
X //
X@@ -412,6 +505,23 @@
X }
X else version( freebsd )
X {
X+ alias uint __lwpid_t;
X+
X+ struct umutex
X+ {
X+ __lwpid_t m_owner; // volatile
X+ uint m_flags;
X+ uint[2] m_ceilings;
X+ uint[4] m_spare;
X+ }
X+
X+ struct ucond
X+ {
X+ uint c_has_waiters;
X+ uint c_flags;
X+ uint[2] c_spare; // volatile
X+ }
X+
X struct pthread_barrier {
X umutex b_lock;
X ucond b_cv;
X@@ -447,9 +557,11 @@
X }
X else version( freebsd )
X {
X- private struct pthread_spinlock;
X-
X- alias pthread_spinlock* pthread_spinlock_t;
X+ struct pthread_spinlock
X+ {
X+ umutex s_lock;
X+ }
X+ alias pthread_spinlock* pthread_spinlock_t;
X }
X
X //
XIndex: tango/stdc/posix/sys/mman.d
X===================================================================
X--- tango/stdc/posix/sys/mman.d (revision 3329)
X+++ tango/stdc/posix/sys/mman.d (working copy)
X@@ -161,7 +161,7 @@
X
X int msync(void*, size_t, int);
X }
X-else version( darwin )
X+else version( freebsd )
X {
X const MAP_SHARED = 0x0001;
X const MAP_PRIVATE = 0x0002;
XIndex: tango/stdc/posix/sys/stat.d
X===================================================================
X--- tango/stdc/posix/sys/stat.d (revision 3329)
X+++ tango/stdc/posix/sys/stat.d (working copy)
X@@ -272,27 +272,28 @@
X {
X struct stat_t
X {
X- dev_t st_dev;
X- ino_t st_ino;
X- mode_t st_mode;
X- nlink_t st_nlink;
X- uid_t st_uid;
X- gid_t st_gid;
X- dev_t st_rdev;
X- time_t st_atime;
X- c_long st_atimensec;
X- time_t st_mtime;
X- c_long st_mtimensec;
X- time_t st_ctime;
X- c_long st_ctimensec;
X- off_t st_size;
X- blkcnt_t st_blocks;
X- blksize_t st_blksize;
X- uint st_flags;
X- uint st_gen;
X- int st_lspare;
X- time_t st_birthtime;
X- c_long st_birthtimensec;
X+ dev_t st_dev;
X+ ino_t st_ino;
X+ mode_t st_mode;
X+ nlink_t st_nlink;
X+ uid_t st_uid;
X+ gid_t st_gid;
X+ dev_t st_rdev;
X+
X+ timespec st_atimespec;
X+ timespec st_mtimespec;
X+ timespec st_ctimespec;
X+
X+ off_t st_size;
X+ blkcnt_t st_blocks;
X+ blksize_t st_blksize;
X+ fflags_t st_flags;
X+ uint st_gen;
X+ int st_lspare;
X+
X+ timespec st_birthtimespec;
X+
X+ byte[16 - timespec.sizeof] padding;
X }
X
X const S_IRUSR = 0000400;
XIndex: tango/stdc/math.d
X===================================================================
X--- tango/stdc/math.d (revision 3329)
X+++ tango/stdc/math.d (working copy)
X@@ -363,22 +363,11 @@
X }
X else version( freebsd )
X {
X- enum
X- {
X- FP_INFINITE = 0x01,
X- FP_NAN = 0x02,
X- FP_NORMAL = 0x04,
X- FP_SUBNORMAL = 0x08,
X- FP_ZERO = 0x10
X- }
X+ // Because FreeBSD <8.0 lacks certain math functions, we must
X+ // use gcc's built-in versions. At the time of this writing it
X+ // is safe to assme that gdc is the compiler in use on this platform.
X+ import gcc.builtins;
X
X- enum
X- {
X- FP_FAST_FMA = 0,
X- FP_FAST_FMAF = 0,
X- FP_FAST_FMAL = 0,
X- }
X-
X int __fpclassifyd(double);
X int __fpclassifyf(float);
X int __fpclassifyl(real);
X@@ -405,7 +394,7 @@
X //int isfinite(real-floating x);
X int isfinite(float x) { return __isfinitef(x); }
X int isfinite(double x) { return __isfinite(x); }
X- int isfinite(double x) { return __isfinitel(x); }
X+ int isfinite(real x) { return __isfinitel(x); }
X
X //int isinf(real-floating x);
X int isinf(float x) { return __isinff(x); }
X@@ -425,7 +414,7 @@
X //int signbit(real-floating x);
X int signbit(float x) { return __signbitf(x); }
X int signbit(double x) { return __signbit(x); }
X- int signbit(double x) { return __signbit(x); }
X+ int signbit(real x) { return __signbit(x); }
X }
X }
X
X@@ -464,31 +453,38 @@
X
X double acos(double x);
X float acosf(float x);
X-real acosl(real x);
X+version(freebsd) real acosl(real x) { return __builtin_acosl(x); }
X+else real acosl(real x);
X
X double asin(double x);
X float asinf(float x);
X-real asinl(real x);
X+version(freebsd) real asinl(real x) { return __builtin_asinl(x); }
X+else real asinl(real x);
X
X double atan(double x);
X float atanf(float x);
X-real atanl(real x);
X+version(freebsd) real atanl(real x) { return __builtin_atanl(x); }
X+else real atanl(real x);
X
X double atan2(double y, double x);
X float atan2f(float y, float x);
X-real atan2l(real y, real x);
X+version(freebsd) real atan2l(real y, real x) { return __builtin_atan2l(y, x); }
X+else real atan2l(real y, real x);
X
X double cos(double x);
X float cosf(float x);
X-real cosl(real x);
X+version(freebsd) real cosl(real x) { return __builtin_cosl(x); }
X+else real cosl(real x);
X
X double sin(double x);
X float sinf(float x);
X-real sinl(real x);
X+version(freebsd) real sinl(real x) { return __builtin_sinl(x); }
X+else real sinl(real x);
X
X double tan(double x);
X float tanf(float x);
X-real tanl(real x);
X+version(freebsd) real tanl(real x) { return __builtin_tanl(x); }
X+else real tanl(real x);
X
X double acosh(double x);
X float acoshf(float x);
X@@ -504,27 +500,33 @@
X
X double cosh(double x);
X float coshf(float x);
X-real coshl(real x);
X+version(freebsd) real coshl(real x) { return __builtin_coshl(x); }
X+else real coshl(real x);
X
X double sinh(double x);
X float sinhf(float x);
X-real sinhl(real x);
X+version(freebsd) real sinhl(real x) { return __builtin_sinhl(x); }
X+else real sinhl(real x);
X
X double tanh(double x);
X float tanhf(float x);
X-real tanhl(real x);
X+version(freebsd) real tanhl(real x) { return __builtin_tanhl(x); }
X+else real tanhl(real x);
X
X double exp(double x);
X float expf(float x);
X-real expl(real x);
X+version(freebsd) real expl(real x) { return __builtin_expl(x); }
X+else real expl(real x);
X
X double exp2(double x);
X float exp2f(float x);
X-real exp2l(real x);
X+version(freebsd) real exp2l(real x) { return __builtin_exp2l(x); }
X+else real exp2l(real x);
X
X double expm1(double x);
X float expm1f(float x);
X-real expm1l(real x);
X+version(freebsd) real expm1l(real x) { return __builtin_expm1l(x); }
X+else real expm1l(real x);
X
X double frexp(double value, int* exp);
X float frexpf(float value, int* exp);
X@@ -540,23 +542,28 @@
X
X double log(double x);
X float logf(float x);
X-real logl(real x);
X+version(freebsd) real logl(real x) { return __builtin_logl(x); }
X+else real logl(real x);
X
X double log10(double x);
X float log10f(float x);
X-real log10l(real x);
X+version(freebsd) real log10l(real x) { return __builtin_log10l(x);}
X+else real log10l(real x);
X
X double log1p(double x);
X float log1pf(float x);
X-real log1pl(real x);
X+version(freebsd) real log1pl(real x) { return __builtin_log1pl(x); }
X+else real log1pl(real x);
X
X double log2(double x);
X float log2f(float x);
X-real log2l(real x);
X+version(freebsd) real log2l(real x) { return __builtin_log2l(x); }
X+else real log2l(real x);
X
X double logb(double x);
X float logbf(float x);
X-real logbl(real x);
X+version(freebsd) real logbl(real x) { return __builtin_logbl(x); }
X+else real logbl(real x);
X
X double modf(double value, double* iptr);
X float modff(float value, float* iptr);
X@@ -572,7 +579,8 @@
X
X double cbrt(double x);
X float cbrtf(float x);
X-real cbrtl(real x);
X+version(freebsd) real cbrtl(real x) { return __builtin_cbrtl(x); }
X+else real cbrtl(real x);
X
X double fabs(double x);
X float fabsf(float x);
X@@ -584,7 +592,8 @@
X
X double pow(double x, double y);
X float powf(float x, float y);
X-real powl(real x, real y);
X+version(freebsd) real powl(real x, real y) { return __builtin_powl(x, y); }
X+else real powl(real x, real y);
X
X double sqrt(double x);
X float sqrtf(float x);
X@@ -624,11 +633,13 @@
X
X c_long lrint(double x);
X c_long lrintf(float x);
X-c_long lrintl(real x);
X+version(freebsd) c_long lrintl(real x) { return __builtin_lrintl(x); }
X+else c_long lrintl(real x);
X
X-long llrint(double x);
X-long llrintf(float x);
X-long llrintl(real x);
X+long llrint(double x);
X+long llrintf(float x);
X+version(freebsd) long llrintl(real x) { return __builtin_llrintl(x); }
X+else long llrintl(real x);
X
X double round(double x);
X float roundf(float x);
X@@ -648,7 +659,8 @@
X
X double fmod(double x, double y);
X float fmodf(float x, float y);
X-real fmodl(real x, real y);
X+version(freebsd) real fmodl(real x, real y) { return __builtin_fmodl(x, y); }
X+else real fmodl(real x, real y);
X
X double remainder(double x, double y);
X float remainderf(float x, float y);
END-of-tango/files/patch-bsd_final.diff
echo x - tango/pkg-descr
sed 's/^X//' >tango/pkg-descr << 'END-of-tango/pkg-descr'
XTango is a cross-platform open-source software library, written in the D
Xprogramming language for D programmers. It is structured as a cohesive and
Xcomprehensive library for general purpose usage, and is supported by a growing
Xnumber of recognized D enthusiasts.
X
XWWW: http://www.dsource.org/projects/tango
END-of-tango/pkg-descr
exit
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list