mirror of
https://git.freebsd.org/ports.git
synced 2025-07-18 01:39:16 -04:00
- Fix build on head with clang and libc++/libcxxrt. Note the patches were
heavily inspired by several upstream patches and a crucial hint from tijl. - Remove a redundant compiler flag for MDDS. The GXX_INCLUDE_PATH variable was removed with STLport support and it seems it is not necessary any more. - Add an upstream patch. It may work around a potential compiler problem. - Convert to new LIB_DEPENDS format.
This commit is contained in:
parent
dece678575
commit
5f02ab9efa
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=327589
4 changed files with 560 additions and 51 deletions
|
@ -20,34 +20,34 @@ BUILD_DEPENDS= p5-Archive-Zip>=0:${PORTSDIR}/archivers/p5-Archive-Zip \
|
||||||
bash:${PORTSDIR}/shells/bash \
|
bash:${PORTSDIR}/shells/bash \
|
||||||
gsed:${PORTSDIR}/textproc/gsed
|
gsed:${PORTSDIR}/textproc/gsed
|
||||||
|
|
||||||
LIB_DEPENDS= icutu:${PORTSDIR}/devel/icu \
|
LIB_DEPENDS= libicutu.so:${PORTSDIR}/devel/icu \
|
||||||
langtag:${PORTSDIR}/devel/liblangtag \
|
liblangtag.so:${PORTSDIR}/devel/liblangtag \
|
||||||
orcus-0.6:${PORTSDIR}/devel/liborcus \
|
liborcus-0.6.so:${PORTSDIR}/devel/liborcus \
|
||||||
curl:${PORTSDIR}/ftp/curl \
|
libcurl.so:${PORTSDIR}/ftp/curl \
|
||||||
cairo.2:${PORTSDIR}/graphics/cairo \
|
libcairo.so:${PORTSDIR}/graphics/cairo \
|
||||||
graphite2:${PORTSDIR}/graphics/graphite2 \
|
libgraphite2.so:${PORTSDIR}/graphics/graphite2 \
|
||||||
jpeg.11:${PORTSDIR}/graphics/jpeg \
|
libjpeg.so:${PORTSDIR}/graphics/jpeg \
|
||||||
cdr:${PORTSDIR}/graphics/libcdr \
|
libcdr-0.0.so:${PORTSDIR}/graphics/libcdr \
|
||||||
lcms2:${PORTSDIR}/graphics/lcms2 \
|
liblcms2.so:${PORTSDIR}/graphics/lcms2 \
|
||||||
wpg-0.2.2:${PORTSDIR}/graphics/libwpg \
|
libwpg-0.2.so:${PORTSDIR}/graphics/libwpg \
|
||||||
png15:${PORTSDIR}/graphics/png \
|
libpng15.so:${PORTSDIR}/graphics/png \
|
||||||
poppler:${PORTSDIR}/graphics/poppler \
|
libpoppler.so:${PORTSDIR}/graphics/poppler \
|
||||||
lpsolve55:${PORTSDIR}/math/lp_solve \
|
liblpsolve55.so:${PORTSDIR}/math/lp_solve \
|
||||||
cmis-0.4:${PORTSDIR}/net/libcmis \
|
libcmis-0.4.so:${PORTSDIR}/net/libcmis \
|
||||||
mspub-0.0:${PORTSDIR}/print/libmspub \
|
libmspub-0.0.so:${PORTSDIR}/print/libmspub \
|
||||||
nss3.1:${PORTSDIR}/security/nss \
|
libnss3.so:${PORTSDIR}/security/nss \
|
||||||
clucene-core:${PORTSDIR}/textproc/clucene \
|
libclucene-core.so:${PORTSDIR}/textproc/clucene \
|
||||||
expat.6:${PORTSDIR}/textproc/expat2 \
|
libexpat.so:${PORTSDIR}/textproc/expat2 \
|
||||||
hunspell-1.3.0:${PORTSDIR}/textproc/hunspell \
|
libhunspell-1.3.so:${PORTSDIR}/textproc/hunspell \
|
||||||
hyphen.2:${PORTSDIR}/textproc/hyphen \
|
libhyphen.so:${PORTSDIR}/textproc/hyphen \
|
||||||
exttextcat-2.0.0:${PORTSDIR}/textproc/libexttextcat \
|
libexttextcat-2.0.so:${PORTSDIR}/textproc/libexttextcat \
|
||||||
visio-0.0.0:${PORTSDIR}/textproc/libvisio \
|
libvisio-0.0.so:${PORTSDIR}/textproc/libvisio \
|
||||||
xml2.5:${PORTSDIR}/textproc/libxml2 \
|
libxml2.so:${PORTSDIR}/textproc/libxml2 \
|
||||||
xslt.2:${PORTSDIR}/textproc/libxslt \
|
libxslt.so:${PORTSDIR}/textproc/libxslt \
|
||||||
wpd-0.9.9:${PORTSDIR}/textproc/libwpd \
|
libwpd-0.9.so:${PORTSDIR}/textproc/libwpd \
|
||||||
wps-0.2.2:${PORTSDIR}/textproc/libwps \
|
libwps-0.2.so:${PORTSDIR}/textproc/libwps \
|
||||||
mythes-1.2.0:${PORTSDIR}/textproc/mythes \
|
libmythes-1.2.so:${PORTSDIR}/textproc/mythes \
|
||||||
rdf.0:${PORTSDIR}/textproc/redland
|
librdf.so:${PORTSDIR}/textproc/redland
|
||||||
|
|
||||||
RUN_DEPENDS= ${LOCALBASE}/lib/X11/fonts/dejavu/DejaVuSans.ttf:${PORTSDIR}/x11-fonts/dejavu \
|
RUN_DEPENDS= ${LOCALBASE}/lib/X11/fonts/dejavu/DejaVuSans.ttf:${PORTSDIR}/x11-fonts/dejavu \
|
||||||
${LOCALBASE}/lib/X11/fonts/GentiumBasic/GenBasI.ttf:${PORTSDIR}/x11-fonts/gentium-basic \
|
${LOCALBASE}/lib/X11/fonts/GentiumBasic/GenBasI.ttf:${PORTSDIR}/x11-fonts/gentium-basic \
|
||||||
|
@ -187,7 +187,7 @@ WEBDAV_DESC= Enable webdav protocol
|
||||||
.include <bsd.port.options.mk>
|
.include <bsd.port.options.mk>
|
||||||
|
|
||||||
.if ${PORT_OPTIONS:MCUPS}
|
.if ${PORT_OPTIONS:MCUPS}
|
||||||
LIB_DEPENDS+= cups:${PORTSDIR}/print/cups-client
|
LIB_DEPENDS+= libcups.so:${PORTSDIR}/print/cups-client
|
||||||
CONFIGURE_ARGS+= --enable-cups --without-ppds
|
CONFIGURE_ARGS+= --enable-cups --without-ppds
|
||||||
.else
|
.else
|
||||||
CONFIGURE_ARGS+= --disable-cups
|
CONFIGURE_ARGS+= --disable-cups
|
||||||
|
@ -204,7 +204,7 @@ CONFIGURE_ARGS+= --enable-release-build
|
||||||
.endif
|
.endif
|
||||||
|
|
||||||
.if ${PORT_OPTIONS:MGNOME}
|
.if ${PORT_OPTIONS:MGNOME}
|
||||||
LIB_DEPENDS+= dbus-glib-1:${PORTSDIR}/devel/dbus-glib
|
LIB_DEPENDS+= libdbus-glib-1.so:${PORTSDIR}/devel/dbus-glib
|
||||||
USE_GNOME+= gconf2
|
USE_GNOME+= gconf2
|
||||||
CONFIGURE_ARGS+= --enable-dbus --enable-gconf --enable-gio \
|
CONFIGURE_ARGS+= --enable-dbus --enable-gconf --enable-gio \
|
||||||
--enable-lockdown
|
--enable-lockdown
|
||||||
|
@ -327,7 +327,7 @@ CONFIGURE_ARGS+= --disable-cve-tests
|
||||||
|
|
||||||
.if ${PORT_OPTIONS:MWEBDAV}
|
.if ${PORT_OPTIONS:MWEBDAV}
|
||||||
CONFIGURE_ARGS+= --enable-neon --with-system-neon
|
CONFIGURE_ARGS+= --enable-neon --with-system-neon
|
||||||
LIB_DEPENDS+= neon.27:${PORTSDIR}/www/neon29
|
LIB_DEPENDS+= libneon.so:${PORTSDIR}/www/neon29
|
||||||
.else
|
.else
|
||||||
CONFIGURE_ARGS+= --disable-neon
|
CONFIGURE_ARGS+= --disable-neon
|
||||||
.endif
|
.endif
|
||||||
|
@ -343,6 +343,9 @@ CC= /usr/bin/clang
|
||||||
CPP= /usr/bin/clang-cpp
|
CPP= /usr/bin/clang-cpp
|
||||||
CXX= /usr/bin/clang++
|
CXX= /usr/bin/clang++
|
||||||
CONFIGURE_ENV+= CXXCPP="${CPP}"
|
CONFIGURE_ENV+= CXXCPP="${CPP}"
|
||||||
|
.if ${OSVERSION} > 100054
|
||||||
|
EXTRA_PATCHES+= ${FILESDIR}/extra-patch-libc++
|
||||||
|
.endif
|
||||||
.else
|
.else
|
||||||
# XXX Clang PR13308 (http://llvm.org/bugs/show_bug.cgi?id=13308)
|
# XXX Clang PR13308 (http://llvm.org/bugs/show_bug.cgi?id=13308)
|
||||||
BUILD_DEPENDS+= clang>=3.2_4:${PORTSDIR}/lang/clang
|
BUILD_DEPENDS+= clang>=3.2_4:${PORTSDIR}/lang/clang
|
||||||
|
|
495
editors/libreoffice/files/extra-patch-libc++
Normal file
495
editors/libreoffice/files/extra-patch-libc++
Normal file
|
@ -0,0 +1,495 @@
|
||||||
|
--- configure.ac.orig 2013-08-13 16:11:48.000000000 -0400
|
||||||
|
+++ configure.ac 2013-09-13 17:50:41.000000000 -0400
|
||||||
|
@@ -5518,7 +5518,7 @@
|
||||||
|
CPPFLAGS="-isysroot $MACOSX_SDK_PATH $CPPFLAGS"
|
||||||
|
fi
|
||||||
|
|
||||||
|
- if test "$HAVE_GCC_VISIBILITY_FEATURE" = "TRUE"; then
|
||||||
|
+ if test "$HAVE_GCC_VISIBILITY_FEATURE" = "TRUE" -a "$COM_GCC_IS_CLANG" != "TRUE"; then
|
||||||
|
dnl gcc#19664, gcc#22482, rhbz#162935
|
||||||
|
AC_MSG_CHECKING([if STL headers are visibility safe (GCC bug 22482)])
|
||||||
|
AC_EGREP_HEADER(visibility push, string, stlvisok=yes, stlvisok=no)
|
||||||
|
--- binaryurp/source/cache.hxx.orig 2013-08-13 16:11:48.000000000 -0400
|
||||||
|
+++ binaryurp/source/cache.hxx 2013-09-13 18:14:53.000000000 -0400
|
||||||
|
@@ -25,6 +25,7 @@
|
||||||
|
#include <cassert>
|
||||||
|
#include <cstddef>
|
||||||
|
#include <map>
|
||||||
|
+#include <list>
|
||||||
|
|
||||||
|
#include "boost/noncopyable.hpp"
|
||||||
|
#include "sal/types.h"
|
||||||
|
@@ -37,88 +38,57 @@
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
-template< typename T > class Cache: private boost::noncopyable {
|
||||||
|
+template< typename T > class Cache : private boost::noncopyable {
|
||||||
|
public:
|
||||||
|
+ typedef sal_uInt16 IdxType;
|
||||||
|
+
|
||||||
|
explicit Cache(std::size_t size):
|
||||||
|
- size_(size), first_(map_.end()), last_(map_.end())
|
||||||
|
+ size_(size)
|
||||||
|
{
|
||||||
|
assert(size < cache::ignore);
|
||||||
|
}
|
||||||
|
|
||||||
|
- sal_uInt16 add(T const & content, bool * found) {
|
||||||
|
- assert(found != 0);
|
||||||
|
- typename Map::iterator i(map_.find(content));
|
||||||
|
- *found = i != map_.end();
|
||||||
|
- if (i == map_.end()) {
|
||||||
|
- typename Map::size_type n = map_.size();
|
||||||
|
- if (n < size_) {
|
||||||
|
- i =
|
||||||
|
- (map_.insert(
|
||||||
|
- typename Map::value_type(
|
||||||
|
- content,
|
||||||
|
- Entry(
|
||||||
|
- static_cast< sal_uInt16 >(n), map_.end(),
|
||||||
|
- first_)))).
|
||||||
|
- first;
|
||||||
|
- if (first_ == map_.end()) {
|
||||||
|
- last_ = i;
|
||||||
|
- } else {
|
||||||
|
- first_->second.prev = i;
|
||||||
|
- }
|
||||||
|
- first_ = i;
|
||||||
|
- } else if (last_ != map_.end()) {
|
||||||
|
- i =
|
||||||
|
- (map_.insert(
|
||||||
|
- typename Map::value_type(
|
||||||
|
- content,
|
||||||
|
- Entry(last_->second.index, map_.end(), first_)))).
|
||||||
|
- first;
|
||||||
|
- first_->second.prev = i;
|
||||||
|
- first_ = i;
|
||||||
|
- typename Map::iterator j(last_);
|
||||||
|
- last_ = last_->second.prev;
|
||||||
|
- last_->second.next = map_.end();
|
||||||
|
- map_.erase(j);
|
||||||
|
- } else {
|
||||||
|
- // Reached iff size_ == 0:
|
||||||
|
- return cache::ignore;
|
||||||
|
- }
|
||||||
|
- } else if (i != first_) {
|
||||||
|
- // Move to front (reached only if size_ > 1):
|
||||||
|
- i->second.prev->second.next = i->second.next;
|
||||||
|
- if (i->second.next == map_.end()) {
|
||||||
|
- last_ = i->second.prev;
|
||||||
|
- } else {
|
||||||
|
- i->second.next->second.prev = i->second.prev;
|
||||||
|
- }
|
||||||
|
- i->second.prev = map_.end();
|
||||||
|
- i->second.next = first_;
|
||||||
|
- first_->second.prev = i;
|
||||||
|
- first_ = i;
|
||||||
|
- }
|
||||||
|
- return i->second.index;
|
||||||
|
+ IdxType add( const T& rContent, bool* pbFound) {
|
||||||
|
+ assert( pbFound != NULL);
|
||||||
|
+ if( !size_) {
|
||||||
|
+ *pbFound = false;
|
||||||
|
+ return cache::ignore;
|
||||||
|
+ }
|
||||||
|
+ // try to insert into the map
|
||||||
|
+ list_.push_front( rContent); // create a temp entry
|
||||||
|
+ typedef std::pair<typename LruList::iterator, IdxType> MappedType;
|
||||||
|
+ typedef std::pair<typename LruItMap::iterator,bool> MapPair;
|
||||||
|
+ MapPair aMP = map_.insert( MappedType( list_.begin(), 0));
|
||||||
|
+ *pbFound = !aMP.second;
|
||||||
|
+
|
||||||
|
+ if( !aMP.second) { // insertion not needed => found the entry
|
||||||
|
+ list_.pop_front(); // remove the temp entry
|
||||||
|
+ list_.splice( list_.begin(), list_, aMP.first->first); // the found entry is moved to front
|
||||||
|
+ return aMP.first->second;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ // test insertion successful => it was new so we keep it
|
||||||
|
+ IdxType n = static_cast<IdxType>( map_.size() - 1);
|
||||||
|
+ if( n >= size_) { // cache full => replace the LRU entry
|
||||||
|
+ // find the least recently used element in the map
|
||||||
|
+ typename LruItMap::iterator it = map_.find( --list_.end());
|
||||||
|
+ n = it->second;
|
||||||
|
+ map_.erase( it); // remove it from the map
|
||||||
|
+ list_.pop_back(); // remove from the list
|
||||||
|
+ }
|
||||||
|
+ aMP.first->second = n;
|
||||||
|
+ return n;
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
- struct Entry;
|
||||||
|
-
|
||||||
|
- typedef std::map< T, Entry > Map;
|
||||||
|
-
|
||||||
|
- struct Entry {
|
||||||
|
- sal_uInt16 index;
|
||||||
|
- typename Map::iterator prev;
|
||||||
|
- typename Map::iterator next;
|
||||||
|
-
|
||||||
|
- Entry(
|
||||||
|
- sal_uInt16 theIndex, typename Map::iterator thePrev,
|
||||||
|
- typename Map::iterator theNext):
|
||||||
|
- index(theIndex), prev(thePrev), next(theNext) {}
|
||||||
|
- };
|
||||||
|
+ typedef std::list<T> LruList; // last recently used list
|
||||||
|
+ typedef typename LruList::iterator LruListIt;
|
||||||
|
+ struct CmpT{ bool operator()( const LruListIt& rA, const LruListIt& rB) const { return (*rA<*rB);}};
|
||||||
|
+ typedef ::std::map< LruListIt, IdxType, CmpT > LruItMap; // a map into a LruList
|
||||||
|
|
||||||
|
std::size_t size_;
|
||||||
|
- Map map_;
|
||||||
|
- typename Map::iterator first_;
|
||||||
|
- typename Map::iterator last_;
|
||||||
|
+ LruItMap map_;
|
||||||
|
+ LruList list_;
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
--- binaryurp/source/lessoperators.cxx.orig 2013-08-13 16:11:48.000000000 -0400
|
||||||
|
+++ binaryurp/source/lessoperators.cxx 2013-09-13 18:15:58.000000000 -0400
|
||||||
|
@@ -38,8 +38,30 @@
|
||||||
|
typelib_TypeClass tc2 = right.get()->eTypeClass;
|
||||||
|
return tc1 < tc2 ||
|
||||||
|
(tc1 == tc2 &&
|
||||||
|
- (OUString(left.get()->pTypeName) <
|
||||||
|
- OUString(right.get()->pTypeName)));
|
||||||
|
+ (OUString::unacquired(&left.get()->pTypeName) <
|
||||||
|
+ OUString::unacquired(&right.get()->pTypeName)));
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+bool TypeDescEqual::operator()( const TypeDescription& rLeft, const TypeDescription& rRight) const
|
||||||
|
+{
|
||||||
|
+ assert( rLeft.is() && rRight.is());
|
||||||
|
+ const typelib_TypeDescription& rA = *rLeft.get();
|
||||||
|
+ const typelib_TypeDescription& rB = *rRight.get();
|
||||||
|
+ if( rA.eTypeClass != rB.eTypeClass)
|
||||||
|
+ return false;
|
||||||
|
+ const sal_Int32 nCmp = rtl_ustr_compare_WithLength(
|
||||||
|
+ rA.pTypeName->buffer, rA.pTypeName->length,
|
||||||
|
+ rB.pTypeName->buffer, rB.pTypeName->length);
|
||||||
|
+ return (nCmp == 0);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+sal_Int32 TypeDescHash::operator()( const TypeDescription& rTD) const
|
||||||
|
+{
|
||||||
|
+ assert( rTD.is());
|
||||||
|
+ const typelib_TypeDescription& rA = *rTD.get();
|
||||||
|
+ sal_Int32 h = rtl_ustr_hashCode_WithLength( rA.pTypeName->buffer, rA.pTypeName->length);
|
||||||
|
+ h ^= static_cast<sal_Int32>(rA.eTypeClass);
|
||||||
|
+ return h;
|
||||||
|
}
|
||||||
|
|
||||||
|
} } } }
|
||||||
|
@@ -47,8 +69,8 @@
|
||||||
|
namespace rtl {
|
||||||
|
|
||||||
|
bool operator <(ByteSequence const & left, ByteSequence const & right) {
|
||||||
|
- for (sal_Int32 i = 0; i != std::min(left.getLength(), right.getLength());
|
||||||
|
- ++i)
|
||||||
|
+ const sal_Int32 nLen = std::min( left.getLength(), right.getLength());
|
||||||
|
+ for( sal_Int32 i = 0; i < nLen; ++i )
|
||||||
|
{
|
||||||
|
if (left[i] < right[i]) {
|
||||||
|
return true;
|
||||||
|
--- binaryurp/source/lessoperators.hxx.orig 2013-08-13 16:11:48.000000000 -0400
|
||||||
|
+++ binaryurp/source/lessoperators.hxx 2013-09-13 18:14:53.000000000 -0400
|
||||||
|
@@ -31,6 +31,10 @@
|
||||||
|
|
||||||
|
bool operator <(TypeDescription const & left, TypeDescription const & right);
|
||||||
|
|
||||||
|
+struct TypeDescHash { sal_Int32 operator()( const TypeDescription&) const; };
|
||||||
|
+
|
||||||
|
+struct TypeDescEqual { bool operator()( const TypeDescription&, const TypeDescription&) const; };
|
||||||
|
+
|
||||||
|
} } } }
|
||||||
|
|
||||||
|
namespace rtl {
|
||||||
|
--- bridges/source/cpp_uno/gcc3_linux_intel/except.cxx.orig 2013-08-13 16:11:48.000000000 -0400
|
||||||
|
+++ bridges/source/cpp_uno/gcc3_linux_intel/except.cxx 2013-09-18 13:06:42.000000000 -0400
|
||||||
|
@@ -22,11 +22,6 @@
|
||||||
|
#include <dlfcn.h>
|
||||||
|
#include <boost/unordered_map.hpp>
|
||||||
|
|
||||||
|
-#include <cxxabi.h>
|
||||||
|
-#ifndef _GLIBCXX_CDTOR_CALLABI // new in GCC 4.7 cxxabi.h
|
||||||
|
-#define _GLIBCXX_CDTOR_CALLABI
|
||||||
|
-#endif
|
||||||
|
-
|
||||||
|
#include <rtl/strbuf.hxx>
|
||||||
|
#include <rtl/ustrbuf.hxx>
|
||||||
|
#include <osl/diagnose.h>
|
||||||
|
@@ -248,7 +243,11 @@
|
||||||
|
Reference< XInterface >() );
|
||||||
|
}
|
||||||
|
|
||||||
|
+#ifdef _LIBCPP_VERSION
|
||||||
|
+ pCppExc = __cxxabiv1::__cxa_allocate_exception( pTypeDescr->nSize );
|
||||||
|
+#else
|
||||||
|
pCppExc = __cxa_allocate_exception( pTypeDescr->nSize );
|
||||||
|
+#endif
|
||||||
|
::uno_copyAndConvertData( pCppExc, pUnoExc->pData, pTypeDescr, pUno2Cpp );
|
||||||
|
|
||||||
|
// destruct uno exception
|
||||||
|
@@ -280,7 +279,11 @@
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+#ifdef _LIBCPP_VERSION
|
||||||
|
+ __cxxabiv1::__cxa_throw( pCppExc, rtti, deleteException );
|
||||||
|
+#else
|
||||||
|
__cxa_throw( pCppExc, rtti, deleteException );
|
||||||
|
+#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
//==================================================================================================
|
||||||
|
--- bridges/source/cpp_uno/gcc3_linux_intel/share.hxx.orig 2013-08-13 16:11:48.000000000 -0400
|
||||||
|
+++ bridges/source/cpp_uno/gcc3_linux_intel/share.hxx 2013-09-18 13:06:17.000000000 -0400
|
||||||
|
@@ -25,6 +25,37 @@
|
||||||
|
|
||||||
|
#include <uno/any2.h>
|
||||||
|
|
||||||
|
+#include <cxxabi.h>
|
||||||
|
+#ifndef _GLIBCXX_CDTOR_CALLABI // new in GCC 4.7 cxxabi.h
|
||||||
|
+#define _GLIBCXX_CDTOR_CALLABI
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
+#ifdef _LIBCPP_VERSION
|
||||||
|
+
|
||||||
|
+namespace __cxxabiv1
|
||||||
|
+{
|
||||||
|
+ struct __class_type_info : public std::type_info
|
||||||
|
+ {
|
||||||
|
+ explicit __class_type_info( const char *__n ) : type_info( __n ) { }
|
||||||
|
+ virtual ~__class_type_info();
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ struct __si_class_type_info : public __class_type_info
|
||||||
|
+ {
|
||||||
|
+ explicit __si_class_type_info( const char *__n, const __class_type_info *__b ) :
|
||||||
|
+ __class_type_info( __n ), __base_type( __b ) { }
|
||||||
|
+ virtual ~__si_class_type_info();
|
||||||
|
+ const __class_type_info *__base_type;
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+extern "C" void *__cxa_allocate_exception( std::size_t thrown_size ) _NOEXCEPT;
|
||||||
|
+
|
||||||
|
+extern "C" _LIBCPP_NORETURN void __cxa_throw(
|
||||||
|
+ void *thrown_exception, std::type_info *tinfo, void (*dest) (void *) );
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+#else
|
||||||
|
+
|
||||||
|
namespace CPPU_CURRENT_NAMESPACE
|
||||||
|
{
|
||||||
|
|
||||||
|
@@ -86,6 +117,13 @@
|
||||||
|
void *thrown_exception, void *tinfo, void (*dest) (void *) ) __attribute__((noreturn));
|
||||||
|
#endif
|
||||||
|
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
+namespace CPPU_CURRENT_NAMESPACE
|
||||||
|
+{
|
||||||
|
+
|
||||||
|
// -----
|
||||||
|
|
||||||
|
//==================================================================================================
|
||||||
|
@@ -93,8 +132,11 @@
|
||||||
|
uno_Any * pUnoExc, uno_Mapping * pUno2Cpp );
|
||||||
|
//==================================================================================================
|
||||||
|
void fillUnoException(
|
||||||
|
+#ifdef _LIBCPP_VERSION
|
||||||
|
+ __cxxabiv1::__cxa_exception * header, uno_Any *, uno_Mapping * pCpp2Uno );
|
||||||
|
+#else
|
||||||
|
__cxa_exception * header, uno_Any *, uno_Mapping * pCpp2Uno );
|
||||||
|
-
|
||||||
|
+#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
namespace x86
|
||||||
|
--- bridges/source/cpp_uno/gcc3_linux_intel/uno2cpp.cxx.orig 2013-08-13 16:11:48.000000000 -0400
|
||||||
|
+++ bridges/source/cpp_uno/gcc3_linux_intel/uno2cpp.cxx 2013-09-18 13:05:25.000000000 -0400
|
||||||
|
@@ -203,7 +203,11 @@
|
||||||
|
catch (...)
|
||||||
|
{
|
||||||
|
// fill uno exception
|
||||||
|
+#ifdef _LIBCPP_VERSION
|
||||||
|
+ CPPU_CURRENT_NAMESPACE::fillUnoException( __cxxabiv1::__cxa_get_globals()->caughtExceptions, *ppUnoExc, pThis->getBridge()->getCpp2Uno() );
|
||||||
|
+#else
|
||||||
|
fillUnoException( __cxa_get_globals()->caughtExceptions, *ppUnoExc, pThis->getBridge()->getCpp2Uno() );
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
// temporary params
|
||||||
|
for ( ; nTempIndizes--; )
|
||||||
|
--- bridges/source/cpp_uno/gcc3_linux_x86-64/except.cxx.orig 2013-08-13 16:11:48.000000000 -0400
|
||||||
|
+++ bridges/source/cpp_uno/gcc3_linux_x86-64/except.cxx 2013-09-18 12:55:37.000000000 -0400
|
||||||
|
@@ -22,11 +22,6 @@
|
||||||
|
#include <string.h>
|
||||||
|
#include <dlfcn.h>
|
||||||
|
|
||||||
|
-#include <cxxabi.h>
|
||||||
|
-#ifndef _GLIBCXX_CDTOR_CALLABI // new in GCC 4.7 cxxabi.h
|
||||||
|
-#define _GLIBCXX_CDTOR_CALLABI
|
||||||
|
-#endif
|
||||||
|
-
|
||||||
|
#include <boost/unordered_map.hpp>
|
||||||
|
|
||||||
|
#include <rtl/strbuf.hxx>
|
||||||
|
@@ -255,7 +250,11 @@
|
||||||
|
Reference< XInterface >() );
|
||||||
|
}
|
||||||
|
|
||||||
|
+#ifdef _LIBCPP_VERSION
|
||||||
|
+ pCppExc = __cxxabiv1::__cxa_allocate_exception( pTypeDescr->nSize );
|
||||||
|
+#else
|
||||||
|
pCppExc = __cxa_allocate_exception( pTypeDescr->nSize );
|
||||||
|
+#endif
|
||||||
|
::uno_copyAndConvertData( pCppExc, pUnoExc->pData, pTypeDescr, pUno2Cpp );
|
||||||
|
|
||||||
|
// destruct uno exception
|
||||||
|
@@ -274,7 +273,11 @@
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+#ifdef _LIBCPP_VERSION
|
||||||
|
+ __cxxabiv1::__cxa_throw( pCppExc, rtti, deleteException );
|
||||||
|
+#else
|
||||||
|
__cxa_throw( pCppExc, rtti, deleteException );
|
||||||
|
+#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
//==================================================================================================
|
||||||
|
--- bridges/source/cpp_uno/gcc3_linux_x86-64/share.hxx.orig 2013-08-13 16:11:48.000000000 -0400
|
||||||
|
+++ bridges/source/cpp_uno/gcc3_linux_x86-64/share.hxx 2013-09-18 12:53:27.000000000 -0400
|
||||||
|
@@ -23,6 +23,37 @@
|
||||||
|
#include <exception>
|
||||||
|
#include <cstddef>
|
||||||
|
|
||||||
|
+#include <cxxabi.h>
|
||||||
|
+#ifndef _GLIBCXX_CDTOR_CALLABI // new in GCC 4.7 cxxabi.h
|
||||||
|
+#define _GLIBCXX_CDTOR_CALLABI
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
+#ifdef _LIBCPP_VERSION
|
||||||
|
+
|
||||||
|
+namespace __cxxabiv1
|
||||||
|
+{
|
||||||
|
+ struct __class_type_info : public std::type_info
|
||||||
|
+ {
|
||||||
|
+ explicit __class_type_info( const char *__n ) : type_info( __n ) { }
|
||||||
|
+ virtual ~__class_type_info();
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ struct __si_class_type_info : public __class_type_info
|
||||||
|
+ {
|
||||||
|
+ explicit __si_class_type_info( const char *__n, const __class_type_info *__b ) :
|
||||||
|
+ __class_type_info( __n ), __base_type( __b ) { }
|
||||||
|
+ virtual ~__si_class_type_info();
|
||||||
|
+ const __class_type_info *__base_type;
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+extern "C" void *__cxa_allocate_exception( std::size_t thrown_size ) _NOEXCEPT;
|
||||||
|
+
|
||||||
|
+extern "C" _LIBCPP_NORETURN void __cxa_throw(
|
||||||
|
+ void *thrown_exception, std::type_info *tinfo, void (*dest) (void *) );
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+#else
|
||||||
|
+
|
||||||
|
namespace CPPU_CURRENT_NAMESPACE
|
||||||
|
{
|
||||||
|
|
||||||
|
@@ -82,6 +113,13 @@
|
||||||
|
void *thrown_exception, void *tinfo, void (*dest) (void *) ) __attribute__((noreturn));
|
||||||
|
#endif
|
||||||
|
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
+namespace CPPU_CURRENT_NAMESPACE
|
||||||
|
+{
|
||||||
|
+
|
||||||
|
// -----
|
||||||
|
|
||||||
|
//==================================================================================================
|
||||||
|
@@ -89,7 +128,11 @@
|
||||||
|
uno_Any * pUnoExc, uno_Mapping * pUno2Cpp );
|
||||||
|
//==================================================================================================
|
||||||
|
void fillUnoException(
|
||||||
|
+#ifdef _LIBCPP_VERSION
|
||||||
|
+ __cxxabiv1::__cxa_exception * header, uno_Any *, uno_Mapping * pCpp2Uno );
|
||||||
|
+#else
|
||||||
|
__cxa_exception * header, uno_Any *, uno_Mapping * pCpp2Uno );
|
||||||
|
+#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|
||||||
|
--- bridges/source/cpp_uno/gcc3_linux_x86-64/uno2cpp.cxx.orig 2013-08-13 16:11:48.000000000 -0400
|
||||||
|
+++ bridges/source/cpp_uno/gcc3_linux_x86-64/uno2cpp.cxx 2013-09-18 12:58:22.000000000 -0400
|
||||||
|
@@ -291,7 +291,11 @@
|
||||||
|
catch (...)
|
||||||
|
{
|
||||||
|
// fill uno exception
|
||||||
|
+#ifdef _LIBCPP_VERSION
|
||||||
|
+ CPPU_CURRENT_NAMESPACE::fillUnoException( __cxxabiv1::__cxa_get_globals()->caughtExceptions, *ppUnoExc, pThis->getBridge()->getCpp2Uno() );
|
||||||
|
+#else
|
||||||
|
fillUnoException( __cxa_get_globals()->caughtExceptions, *ppUnoExc, pThis->getBridge()->getCpp2Uno() );
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
// temporary params
|
||||||
|
for ( ; nTempIndizes--; )
|
||||||
|
--- sal/inc/rtl/allocator.hxx.orig 2013-08-13 16:11:48.000000000 -0400
|
||||||
|
+++ sal/inc/rtl/allocator.hxx 2013-09-12 16:56:43.000000000 -0400
|
||||||
|
@@ -125,7 +125,7 @@
|
||||||
|
}
|
||||||
|
|
||||||
|
//-----------------------------------------
|
||||||
|
-#if defined HAVE_CXX11_PERFECT_FORWARDING
|
||||||
|
+#if defined(HAVE_CXX11_PERFECT_FORWARDING) && !defined(_LIBCPP_VERSION)
|
||||||
|
template< typename... Args >
|
||||||
|
void construct (pointer p, Args &&... value)
|
||||||
|
{
|
||||||
|
--- sal/inc/sal/log.hxx.orig 2013-08-13 16:11:48.000000000 -0400
|
||||||
|
+++ sal/inc/sal/log.hxx 2013-09-13 05:27:31.000000000 -0400
|
||||||
|
@@ -177,9 +177,13 @@
|
||||||
|
|
||||||
|
@since LibreOffice 3.5
|
||||||
|
*/
|
||||||
|
+#ifdef _LIBCPP_VERSION
|
||||||
|
#define SAL_STREAM(stream) \
|
||||||
|
- (dynamic_cast< ::std::ostringstream & >(::std::ostringstream() << stream). \
|
||||||
|
- str())
|
||||||
|
+ (::std::ostringstream() << stream).str()
|
||||||
|
+#else
|
||||||
|
+#define SAL_STREAM(stream) \
|
||||||
|
+ (dynamic_cast< ::std::ostringstream & >(::std::ostringstream() << stream).str())
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
@page sal_log Basic logging functionality.
|
||||||
|
--- slideshow/source/engine/activities/activitiesfactory.cxx.orig 2013-08-13 16:11:48.000000000 -0400
|
||||||
|
+++ slideshow/source/engine/activities/activitiesfactory.cxx 2013-09-13 05:47:27.000000000 -0400
|
||||||
|
@@ -557,7 +557,7 @@
|
||||||
|
// interpolate between nIndex and nIndex+1 values
|
||||||
|
(*mpAnim)(
|
||||||
|
getPresentationValue(
|
||||||
|
- accumulate( maValues.back(),
|
||||||
|
+ accumulate<ValueType>( maValues.back(),
|
||||||
|
mbCumulative ? nRepeatCount : 0,
|
||||||
|
maInterpolator( maValues[ nIndex ],
|
||||||
|
maValues[ nIndex+1 ],
|
||||||
|
@@ -577,7 +577,7 @@
|
||||||
|
// this is discrete, thus no lerp here.
|
||||||
|
(*mpAnim)(
|
||||||
|
getPresentationValue(
|
||||||
|
- accumulate( maValues.back(),
|
||||||
|
+ accumulate<ValueType>( maValues.back(),
|
||||||
|
mbCumulative ? nRepeatCount : 0,
|
||||||
|
maValues[ nFrame ] ) ) );
|
||||||
|
}
|
|
@ -0,0 +1,26 @@
|
||||||
|
--- bridges/source/cpp_uno/gcc3_linux_x86-64/callvirtualmethod.cxx.orig 2013-08-13 16:11:48.000000000 -0400
|
||||||
|
+++ bridges/source/cpp_uno/gcc3_linux_x86-64/callvirtualmethod.cxx 2013-09-17 14:52:46.000000000 -0400
|
||||||
|
@@ -63,11 +63,12 @@
|
||||||
|
pMethod = *((sal_uInt64 *)pMethod);
|
||||||
|
|
||||||
|
// Load parameters to stack, if necessary
|
||||||
|
+ sal_uInt64* pCallStack = NULL;
|
||||||
|
if ( nStack )
|
||||||
|
{
|
||||||
|
// 16-bytes aligned
|
||||||
|
sal_uInt32 nStackBytes = ( ( nStack + 1 ) >> 1 ) * 16;
|
||||||
|
- sal_uInt64 *pCallStack = (sal_uInt64 *) __builtin_alloca( nStackBytes );
|
||||||
|
+ pCallStack = (sal_uInt64 *) __builtin_alloca( nStackBytes );
|
||||||
|
std::memcpy( pCallStack, pStack, nStackBytes );
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -112,7 +113,8 @@
|
||||||
|
"movsd %%xmm0, %2\n\t"
|
||||||
|
"movsd %%xmm1, %3\n\t"
|
||||||
|
: "=m" ( rax ), "=m" ( rdx ), "=m" ( xmm0 ), "=m" ( xmm1 )
|
||||||
|
- : "m" ( pMethod ), "m" ( pGPR ), "m" ( pFPR ), "m" ( nFPR )
|
||||||
|
+ : "m" ( pMethod ), "m" ( pGPR ), "m" ( pFPR ), "m" ( nFPR ),
|
||||||
|
+ "m" ( pCallStack ) // dummy input to prevent the compiler from optimizing the alloca out
|
||||||
|
: "rax", "rdi", "rsi", "rdx", "rcx", "r8", "r9", "r10", "r11",
|
||||||
|
"xmm0", "xmm1", "xmm2", "xmm3", "xmm4", "xmm5", "xmm6", "xmm7",
|
||||||
|
"xmm8", "xmm9", "xmm10", "xmm11", "xmm12", "xmm13", "xmm14", "xmm15"
|
|
@ -1,5 +1,5 @@
|
||||||
--- configure.ac.orig 2013-08-13 16:11:48.000000000 -0400
|
--- configure.ac.orig 2013-08-13 16:11:48.000000000 -0400
|
||||||
+++ configure.ac 2013-08-16 18:17:08.000000000 -0400
|
+++ configure.ac 2013-09-13 17:50:41.000000000 -0400
|
||||||
@@ -3637,7 +3637,7 @@
|
@@ -3637,7 +3637,7 @@
|
||||||
PLATFORMID=freebsd_x86
|
PLATFORMID=freebsd_x86
|
||||||
OUTPATH=unxfbsdi
|
OUTPATH=unxfbsdi
|
||||||
|
@ -43,22 +43,7 @@
|
||||||
else
|
else
|
||||||
AC_MSG_RESULT([internal])
|
AC_MSG_RESULT([internal])
|
||||||
SYSTEM_LIBCMIS=NO
|
SYSTEM_LIBCMIS=NO
|
||||||
@@ -7929,9 +7921,13 @@
|
@@ -8298,7 +8290,7 @@
|
||||||
AC_MSG_CHECKING([which hash container mdds shall use])
|
|
||||||
if test "x$HAVE_CXX0X" = "xTRUE"; then
|
|
||||||
MDDS_CPPFLAGS="-std=gnu++0x"
|
|
||||||
+ else
|
|
||||||
+ MDDS_CPPFLAGS="-std=gnu++98"
|
|
||||||
+ fi
|
|
||||||
+ if test "x`basename $GXX_INCLUDE_PATH 2>/dev/null`" != "x4.2"; then
|
|
||||||
AC_MSG_RESULT([std::unordered_map])
|
|
||||||
else
|
|
||||||
- MDDS_CPPFLAGS="-DMDDS_HASH_CONTAINER_BOOST"
|
|
||||||
+ MDDS_CPPFLAGS="$MDDS_CPPFLAGS -DMDDS_HASH_CONTAINER_BOOST"
|
|
||||||
AC_MSG_RESULT([boost::unordered_map])
|
|
||||||
fi
|
|
||||||
|
|
||||||
@@ -8298,7 +8294,7 @@
|
|
||||||
dnl ===================================================================
|
dnl ===================================================================
|
||||||
|
|
||||||
AC_MSG_CHECKING([whether to enable graphite support])
|
AC_MSG_CHECKING([whether to enable graphite support])
|
||||||
|
@ -67,7 +52,7 @@
|
||||||
AC_MSG_RESULT([yes])
|
AC_MSG_RESULT([yes])
|
||||||
ENABLE_GRAPHITE="TRUE"
|
ENABLE_GRAPHITE="TRUE"
|
||||||
AC_MSG_CHECKING([which graphite to use])
|
AC_MSG_CHECKING([which graphite to use])
|
||||||
@@ -8550,8 +8546,8 @@
|
@@ -8550,8 +8542,8 @@
|
||||||
AC_MSG_RESULT([external])
|
AC_MSG_RESULT([external])
|
||||||
# Mac OS builds should get out without extra stuff is the Mac porters'
|
# Mac OS builds should get out without extra stuff is the Mac porters'
|
||||||
# wish. And pkg-config is although Xcode ships a .pc for openssl
|
# wish. And pkg-config is although Xcode ships a .pc for openssl
|
||||||
|
@ -78,7 +63,7 @@
|
||||||
OPENSSL_CFLAGS=
|
OPENSSL_CFLAGS=
|
||||||
OPENSSL_LIBS="-lssl -lcrypto"
|
OPENSSL_LIBS="-lssl -lcrypto"
|
||||||
else
|
else
|
||||||
@@ -8605,7 +8601,7 @@
|
@@ -8605,7 +8597,7 @@
|
||||||
if test "$with_system_orcus" = "yes"; then
|
if test "$with_system_orcus" = "yes"; then
|
||||||
AC_MSG_RESULT([external])
|
AC_MSG_RESULT([external])
|
||||||
SYSTEM_LIBORCUS=YES
|
SYSTEM_LIBORCUS=YES
|
||||||
|
@ -87,7 +72,7 @@
|
||||||
else
|
else
|
||||||
AC_MSG_RESULT([internal])
|
AC_MSG_RESULT([internal])
|
||||||
BUILD_TYPE="$BUILD_TYPE ORCUS"
|
BUILD_TYPE="$BUILD_TYPE ORCUS"
|
||||||
@@ -10419,10 +10415,10 @@
|
@@ -10419,10 +10411,10 @@
|
||||||
|
|
||||||
dnl Check for Meta Object Compiler
|
dnl Check for Meta Object Compiler
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue