Upgrade to svn revision r1677314, fixing the HWP filter

vulnerability documented in CVE-2015-1774 and
<http://www.openoffice.org/security/cves/CVE-2015-1774.html>

Differential Revision:	https://reviews.freebsd.org/D2470
Submitted by:	pi
Reviewed by:	pi, pfg
Approved by:	mat (mentor)
MFH:		2015Q2
Security:	b13af778-f4fc-11e4-a95d-ac9e174be3af
This commit is contained in:
Don Lewis 2015-05-08 00:07:13 +00:00
parent ce81ac1948
commit d83f8f9b98
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=385717
16 changed files with 5 additions and 583 deletions

View file

@ -75,7 +75,7 @@ AOOVERSION2= 2
AOOVERSION3= 0
# From solenv/inc/minor.mk SOURCEREVISION LAST_MINOR BUILD
AOOTAG= AOO420m1\(Build:9800\)
SVNREVISION= 1667428
SVNREVISION= 1677314
#AOORC=rc3
EXTSRC= ApacheOpenOffice.ext_sources.${AOOVERSION1}.x.x.20150118.tar.gz

View file

@ -1,6 +1,6 @@
SHA256 (openoffice/apache-openoffice-r1667428-src.tar.xz) = 2c481e0f14f3f804b303ae5468991b4b7cdc82ce20660545cfb8cef2f5117c2f
SIZE (openoffice/apache-openoffice-r1667428-src.tar.xz) = 215181884
SHA256 (openoffice/ApacheOpenOffice.ext_sources.4.x.x.20150118.tar.gz) = b01b8894469a80667b0551ea6c0abffd3fb9e79c8a304d48091ff57ab53f10b7
SIZE (openoffice/ApacheOpenOffice.ext_sources.4.x.x.20150118.tar.gz) = 102513542
SHA256 (openoffice/apache-openoffice-r1677314-src.tar.xz) = 7db08f046ae1cb87ac5d9788a4507d4bd70df1be73c9044a71182087f9ff231c
SIZE (openoffice/apache-openoffice-r1677314-src.tar.xz) = 215202736
SHA256 (openoffice/unowinreg.dll) = f563e522922133db9340b0306711c2d8767cc3481dd9e7d9b0d059906d12653c
SIZE (openoffice/unowinreg.dll) = 6144
SHA256 (openoffice/ApacheOpenOffice.ext_sources.4.x.x.20150118.tar.gz) = b01b8894469a80667b0551ea6c0abffd3fb9e79c8a304d48091ff57ab53f10b7
SIZE (openoffice/ApacheOpenOffice.ext_sources.4.x.x.20150118.tar.gz) = 102513542

View file

@ -1,14 +0,0 @@
--- bridges/source/cpp_uno/gcc3_freebsd_intel/cpp2uno.cxx.orig 2014-09-19 17:51:13 UTC
+++ bridges/source/cpp_uno/gcc3_freebsd_intel/cpp2uno.cxx
@@ -24,6 +24,11 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_bridges.hxx"
+#include <typeinfo>
+#include <exception>
+#include <cstddef>
+#include <cxxabi.h>
+
#include <com/sun/star/uno/genfunc.hxx>
#include "com/sun/star/uno/RuntimeException.hpp"
#include <uno/data.h>

View file

@ -1,37 +0,0 @@
--- bridges/source/cpp_uno/gcc3_freebsd_intel/except.cxx.orig 2014-09-19 17:51:13 UTC
+++ bridges/source/cpp_uno/gcc3_freebsd_intel/except.cxx
@@ -24,9 +24,9 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_bridges.hxx"
-#if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 6))
+#include <cstddef>
#include <exception>
-#endif
+#include <typeinfo>
#include <stdio.h>
#include <string.h>
@@ -182,7 +182,12 @@ type_info * RTTI::getRTTI( typelib_Compo
char const * rttiName = symName.getStr() +4;
#if OSL_DEBUG_LEVEL > 1
fprintf( stderr,"generated rtti for %s\n", rttiName );
+#ifndef __GLIBCXX__ /* #i124421# */
+ const OString aCUnoName = OUStringToOString( unoName, RTL_TEXTENCODING_UTF8);
+ OSL_TRACE( "TypeInfo for \"%s\" not found and cannot be generated.\n", aCUnoName.getStr());
+#endif /* __GLIBCXX__ */
#endif
+#ifdef __GLIBCXX__ /* #i124421# */
if (pTypeDescr->pBaseTypeDescription)
{
// ensure availability of base
@@ -196,6 +201,9 @@ type_info * RTTI::getRTTI( typelib_Compo
// this class has no base class
rtti = new __class_type_info( strdup( rttiName ) );
}
+#else /* __GLIBCXX__ */
+ rtti = NULL;
+#endif /* __GLIBCXX__ */
pair< t_rtti_map::iterator, bool > insertion(
m_generatedRttis.insert( t_rtti_map::value_type( unoName, rtti ) ) );

View file

@ -1,54 +0,0 @@
--- bridges/source/cpp_uno/gcc3_freebsd_intel/share.hxx.orig 2014-09-19 17:51:12 UTC
+++ bridges/source/cpp_uno/gcc3_freebsd_intel/share.hxx
@@ -23,10 +23,6 @@
#include "uno/mapping.h"
-#include <typeinfo>
-#include <exception>
-#include <cstddef>
-
namespace CPPU_CURRENT_NAMESPACE
{
@@ -34,6 +30,7 @@ void dummy_can_throw_anything( char cons
// ----- following decl from libstdc++-v3/libsupc++/unwind-cxx.h and unwind.h
+#ifdef __GLIBCXX__
struct _Unwind_Exception
{
unsigned exception_class __attribute__((__mode__(__DI__)));
@@ -62,18 +59,21 @@ struct __cxa_exception
_Unwind_Exception unwindHeader;
};
+#endif /* __GLIBCXX__ */
extern "C" void *__cxa_allocate_exception(
std::size_t thrown_size ) throw();
extern "C" void __cxa_throw (
void *thrown_exception, std::type_info *tinfo, void (*dest) (void *) ) __attribute__((noreturn));
+#ifdef __GLIBCXX__
struct __cxa_eh_globals
{
__cxa_exception *caughtExceptions;
unsigned int uncaughtExceptions;
};
extern "C" __cxa_eh_globals *__cxa_get_globals () throw();
+#endif /* __GLIBCXX__ */
// -----
@@ -81,6 +81,10 @@ extern "C" __cxa_eh_globals *__cxa_get_g
void raiseException(
uno_Any * pUnoExc, uno_Mapping * pUno2Cpp );
//==================================================================================================
+#ifndef __GLIBCXX__
+using __cxxabiv1:: __cxa_exception;
+#endif /* __GLIBCXX__ */
+
void fillUnoException(
__cxa_exception * header, uno_Any *, uno_Mapping * pCpp2Uno );
}

View file

@ -1,34 +0,0 @@
--- bridges/source/cpp_uno/gcc3_freebsd_intel/uno2cpp.cxx.orig 2014-09-19 17:51:13 UTC
+++ bridges/source/cpp_uno/gcc3_freebsd_intel/uno2cpp.cxx
@@ -24,6 +24,10 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_bridges.hxx"
+#include <typeinfo>
+#include <exception>
+#include <cstddef>
+#include <cxxabi.h>
#include <stdlib.h>
#include <com/sun/star/uno/genfunc.hxx>
@@ -39,6 +43,11 @@
using namespace ::rtl;
using namespace ::com::sun::star::uno;
+#ifdef __GLIBCXX__
+using CPPU_CURRENT_NAMESPACE::__cxa_get_globals;
+#else
+using __cxxabiv1::__cxa_get_globals;
+#endif
namespace
{
@@ -305,7 +314,7 @@ static void cpp_call(
catch (...)
{
// fill uno exception
- fillUnoException( CPPU_CURRENT_NAMESPACE::__cxa_get_globals()->caughtExceptions, *ppUnoExc, pThis->getBridge()->getCpp2Uno() );
+ CPPU_CURRENT_NAMESPACE::fillUnoException( __cxa_get_globals()->caughtExceptions, *ppUnoExc, pThis->getBridge()->getCpp2Uno() );
// temporary params
for ( ; nTempIndizes--; )

View file

@ -1,16 +0,0 @@
--- bridges/source/cpp_uno/gcc3_freebsd_x86-64/cpp2uno.cxx.orig 2014-09-19 17:51:12 UTC
+++ bridges/source/cpp_uno/gcc3_freebsd_x86-64/cpp2uno.cxx
@@ -24,9 +24,10 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_bridges.hxx"
-#include <stdio.h>
-#include <stdlib.h>
-#include <hash_map>
+#include <typeinfo>
+#include <exception>
+#include <cstddef>
+#include <cxxabi.h>
#include <rtl/alloc.h>
#include <osl/mutex.hxx>

View file

@ -1,39 +0,0 @@
--- bridges/source/cpp_uno/gcc3_freebsd_x86-64/except.cxx.orig 2014-09-19 17:51:13 UTC
+++ bridges/source/cpp_uno/gcc3_freebsd_x86-64/except.cxx
@@ -24,9 +24,9 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_bridges.hxx"
-#if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 6))
+#include <cstddef>
#include <exception>
-#endif
+#include <typeinfo>
#include <stdio.h>
#include <string.h>
@@ -182,7 +182,12 @@ type_info * RTTI::getRTTI( typelib_Compo
char const * rttiName = symName.getStr() +4;
#if OSL_DEBUG_LEVEL > 1
fprintf( stderr,"generated rtti for %s\n", rttiName );
+#ifndef __GLIBCXX__ /* #i124421# */
+ const OString aCUnoName = OUStringToOString( unoName, RTL_TEXTENCODING_UTF8);
+ OSL_TRACE( "TypeInfo for \"%s\" not found and cannot be generated.\n", aCUnoName.getStr());
+#endif /* __GLIBCXX__ */
#endif
+#ifdef __GLIBCXX__ /* #i124421# */
if (pTypeDescr->pBaseTypeDescription)
{
// ensure availability of base
@@ -196,7 +201,10 @@ type_info * RTTI::getRTTI( typelib_Compo
// this class has no base class
rtti = new __class_type_info( strdup( rttiName ) );
}
-
+#else /* __GLIBCXX__ */
+ rtti = NULL;
+#endif /* __GLIBCXX__ */
+
pair< t_rtti_map::iterator, bool > insertion(
m_generatedRttis.insert( t_rtti_map::value_type( unoName, rtti ) ) );
OSL_ENSURE( insertion.second, "### inserting new generated rtti failed?!" );

View file

@ -1,54 +0,0 @@
--- bridges/source/cpp_uno/gcc3_freebsd_x86-64/share.hxx.orig 2014-09-19 17:51:12 UTC
+++ bridges/source/cpp_uno/gcc3_freebsd_x86-64/share.hxx
@@ -23,10 +23,6 @@
#include "uno/mapping.h"
-#include <typeinfo>
-#include <exception>
-#include <cstddef>
-
namespace CPPU_CURRENT_NAMESPACE
{
@@ -34,6 +30,7 @@ void dummy_can_throw_anything( char cons
// ----- following decl from libstdc++-v3/libsupc++/unwind-cxx.h and unwind.h
+#ifdef __GLIBCXX__
struct _Unwind_Exception
{
unsigned exception_class __attribute__((__mode__(__DI__)));
@@ -62,18 +59,21 @@ struct __cxa_exception
_Unwind_Exception unwindHeader;
};
+#endif /* __GLIBCXX__ */
extern "C" void *__cxa_allocate_exception(
std::size_t thrown_size ) throw();
extern "C" void __cxa_throw (
void *thrown_exception, std::type_info *tinfo, void (*dest) (void *) ) __attribute__((noreturn));
+#ifdef __GLIBCXX__
struct __cxa_eh_globals
{
__cxa_exception *caughtExceptions;
unsigned int uncaughtExceptions;
};
extern "C" __cxa_eh_globals *__cxa_get_globals () throw();
+#endif /* __GLIBCXX__ */
// -----
@@ -81,6 +81,10 @@ extern "C" __cxa_eh_globals *__cxa_get_g
void raiseException(
uno_Any * pUnoExc, uno_Mapping * pUno2Cpp );
//==================================================================================================
+#ifndef __GLIBCXX__
+using __cxxabiv1:: __cxa_exception;
+#endif /* __GLIBCXX__ */
+
void fillUnoException(
__cxa_exception * header, uno_Any *, uno_Mapping * pCpp2Uno );
}

View file

@ -1,36 +0,0 @@
--- bridges/source/cpp_uno/gcc3_freebsd_x86-64/uno2cpp.cxx.orig 2014-09-19 17:51:13 UTC
+++ bridges/source/cpp_uno/gcc3_freebsd_x86-64/uno2cpp.cxx
@@ -24,9 +24,10 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_bridges.hxx"
-#include <exception>
#include <typeinfo>
-#include <stdio.h>
+#include <exception>
+#include <cstddef>
+#include <cxxabi.h>
#include <stdlib.h>
#include <string.h>
@@ -47,6 +48,11 @@
using namespace ::rtl;
using namespace ::com::sun::star::uno;
+#ifdef __GLIBCXX__
+using CPPU_CURRENT_NAMESPACE::__cxa_get_globals;
+#else
+using __cxxabiv1::__cxa_get_globals;
+#endif
//==================================================================================================
static void callVirtualMethod(void * pThis, sal_uInt32 nVtableIndex,
@@ -446,7 +452,7 @@ static void cpp_call(
catch (...)
{
// fill uno exception
- fillUnoException( CPPU_CURRENT_NAMESPACE::__cxa_get_globals()->caughtExceptions, *ppUnoExc, pThis->getBridge()->getCpp2Uno() );
+ CPPU_CURRENT_NAMESPACE::fillUnoException( __cxa_get_globals()->caughtExceptions, *ppUnoExc, pThis->getBridge()->getCpp2Uno() );
// temporary params
for ( ; nTempIndizes--; )

View file

@ -1,26 +0,0 @@
--- solenv/gbuild/platform/freebsd.mk.orig 2014-09-19 18:16:41 UTC
+++ solenv/gbuild/platform/freebsd.mk
@@ -96,6 +96,7 @@ gb_CXXFLAGS := \
-fvisibility-inlines-hidden \
-fvisibility=hidden \
-pipe \
+ -DHAVE_STL_INCLUDE_PATH \
ifneq ($(EXTERNAL_WARNINGS_NOT_ERRORS),TRUE)
gb_CFLAGS_WERROR := -Werror
@@ -110,7 +111,6 @@ endif
gb_LinkTarget_EXCEPTIONFLAGS := \
-DEXCEPTIONS_ON \
-fexceptions \
- -fno-enforce-eh-specs \
gb_LinkTarget_NOEXCEPTIONFLAGS := \
-DEXCEPTIONS_OFF \
@@ -121,6 +121,7 @@ gb_LinkTarget_LDFLAGS += \
-Wl,-z,combreloc \
-Wl,-z,defs \
$(subst -L../lib , ,$(SOLARLIB)) \
+ ${FBSD_LDFLAGS} \
\
ifeq ($(HAVE_LD_HASH_STYLE),TRUE)

View file

@ -1,112 +0,0 @@
Index: sal/inc/rtl/math.h
===================================================================
--- sal/inc/rtl/math.h (revision 1447988)
+++ sal/inc/rtl/math.h (working copy)
@@ -396,6 +396,21 @@
*/
double SAL_CALL rtl_math_pow10Exp(double fValue, int nExp) SAL_THROW_EXTERN_C();
+/** Similar to pow() with stricter exception handling for indeterminate values.
+
+ powr is specified in the IEEE 754 - 2008 Floating Point Standard.
+
+ @param fValue
+ The value to be raised.
+
+ @param fExp
+ The exponent.
+
+ @return
+ powr(fValue, fExp)
+ */
+double SAL_CALL rtl_math_powr(double fValue, double fExp) SAL_THROW_EXTERN_C();
+
/** Rounds value to 15 significant decimal digits.
@param fValue
Index: sal/inc/rtl/math.hxx
===================================================================
--- sal/inc/rtl/math.hxx (revision 1447988)
+++ sal/inc/rtl/math.hxx (working copy)
@@ -186,6 +186,13 @@
return rtl_math_pow10Exp(fValue, nExp);
}
+/** A wrapper around rtl_math_powr.
+ */
+inline double powr(double fValue, double fExp)
+{
+ return rtl_math_powr(fValue, fExp);
+}
+
/** A wrapper around rtl_math_approxValue.
*/
inline double approxValue(double fValue)
Index: sal/rtl/source/math.cxx
===================================================================
--- sal/rtl/source/math.cxx (revision 1447988)
+++ sal/rtl/source/math.cxx (working copy)
@@ -1113,7 +1113,20 @@
return (fe-1.0) * fValue / log(fe);
}
+double SAL_CALL rtl_math_powr( double fValue, double fExp ) SAL_THROW_EXTERN_C()
+{
+ if ((fValue == 0.0 && fExp == 0.0) ||
+ (rtl::math::isInf( fExp ) && !rtl::math::isSignBitSet( fExp )) ||
+ (rtl::math::isInf( fValue ) && !rtl::math::isSignBitSet( fValue )))
+ {
+ double fResult;
+ ::rtl::math::setNan( &fResult );
+ return fResult;
+ }
+ return pow(fValue, fExp);
+}
+
double SAL_CALL rtl_math_log1p( double fValue ) SAL_THROW_EXTERN_C()
{
// Use volatile because a compiler may be too smart "optimizing" the
Index: sal/util/sal.map
===================================================================
--- sal/util/sal.map (revision 1447988)
+++ sal/util/sal.map (working copy)
@@ -629,6 +629,8 @@
global:
osl_loadAsciiModule;
osl_loadAsciiModuleRelative;
+
+ rtl_math_powr;
} UDK_3.11;
PRIVATE_1.0 {
Index: sc/source/core/tool/interpr5.cxx
===================================================================
--- sc/source/core/tool/interpr5.cxx (revision 1447988)
+++ sc/source/core/tool/interpr5.cxx (working copy)
@@ -1611,14 +1611,14 @@
if (bFlag)
{ for ( SCSIZE i = 0; i < nCount; i++ )
if (pMat->IsValue(i))
- pResMat->PutDouble(pow(fVal,pMat->GetDouble(i)), i);
+ pResMat->PutDouble(::rtl::math::powr(fVal,pMat->GetDouble(i)), i);
else
pResMat->PutString(ScGlobal::GetRscString(STR_NO_VALUE), i);
}
else
{ for ( SCSIZE i = 0; i < nCount; i++ )
if (pMat->IsValue(i))
- pResMat->PutDouble(pow(pMat->GetDouble(i),fVal), i);
+ pResMat->PutDouble(::rtl::math::powr(pMat->GetDouble(i),fVal), i);
else
pResMat->PutString(ScGlobal::GetRscString(STR_NO_VALUE), i);
}
@@ -1628,7 +1628,7 @@
PushIllegalArgument();
}
else
- PushDouble(pow(fVal1,fVal2));
+ PushDouble(::rtl::math::powr(fVal1,fVal2));
}
void ScInterpreter::ScSumProduct()

View file

@ -1,13 +0,0 @@
--- sal/inc/rtl/string.hxx 2014-01-24 03:32:49.000000000 +0900
+++ sal/inc/rtl/string.hxx 2014-02-04 14:57:30.000000000 +0900
@@ -234,8 +234,9 @@
@return a pointer to a (not necessarily null-terminated) byte string
representing the characters of this string object.
*/
- operator const sal_Char *() const SAL_THROW(()) { return pData->buffer; }
+
public:
+ operator const sal_Char *() const SAL_THROW(()) { return pData->buffer; }
/** Returns a reference to a character of this string. */
sal_Char& operator[]( int n ) { return pData->buffer[n]; }
/** Returns a const reference to a character of this string. */

View file

@ -1,79 +0,0 @@
--- set_soenv.in.orig 2015-01-17 23:35:07.000000000 -0800
+++ set_soenv.in 2015-02-23 16:02:44.000000000 -0800
@@ -359,7 +359,7 @@
elsif ( $platform =~ m/freebsd/ )
{ $BIG_SVX = "TRUE";
$COM = "GCC";
- $COMPATH = '@COMPATH@';
+ $COMPATH = '@COMPATH@' . '/bin';
$CVER = "C300";
$GUI = "UNX";
$GUIBASE = "unx";
@@ -2617,26 +2617,37 @@
my @originalPairs = @_;
my @pairs = @originalPairs;
my @Path = split /$ps/, $oldPath;
+ my @buildPath;
+ my @sysPath;
+ my $elem;
+
+ for $elem (@Path) {
+ if ($elem eq '.' || $elem =~ m'^$SOLARENV/' ||
+ $elem =~ m'/solenv/') {
+ push @buildPath, $elem;
+ } else {
+ push @sysPath, $elem;
+ }
+ }
while (@pairs) {
my $path = shift @pairs;
my $cmd = shift @pairs;
my $to_append = 1;
- my $elem;
if (! -x "$path/$cmd") {
AddWarning ("Missing executable $path/$cmd\n");
}
- for $elem (@Path) {
+ for $elem (@sysPath) {
if ($elem eq $path) {
# print "Hit duplicate path in path; break\n";
$to_append = 0;
last;
}
- if (-f "$elem/$cmd") {
+ if (-f "$elem/$cmd" && ! -l "$elem/$cmd") {
# print "Element already in path ...\n";
- unshift @Path, $path;
+ unshift @sysPath, $path;
$to_append = 0;
last;
} else {
@@ -2644,7 +2655,7 @@
}
}
if ($to_append) {
- push @Path, $path;
+ push @sysPath, $path;
}
}
@@ -2654,14 +2665,14 @@
my $cmd = shift @pairs;
my $realpath;
- $realpath = PathLookup ($cmd, @Path);
+ $realpath = PathLookup ($cmd, @sysPath);
if (!($realpath eq $path)) {
AddWarning ("Path conflict for executables " .
"$path/$cmd against $realpath");
}
}
- return join $ps, CleanupPath (@Path);
+ return join $ps, @buildPath, CleanupPath (@sysPath);
}
#------------------------------------------------------------

View file

@ -1,10 +0,0 @@
--- shell/source/unix/sysshell/recently_used_file_handler.cxx.orig 2014-09-19 18:15:07 UTC
+++ shell/source/unix/sysshell/recently_used_file_handler.cxx
@@ -40,6 +40,7 @@
#include <algorithm>
#include <functional>
#include <string.h>
+#include <time.h>
namespace /* private */ {
//########################################

View file

@ -1,54 +0,0 @@
--- solenv/inc/unxfbsd.mk.orig 2014-09-19 18:16:56 UTC
+++ solenv/inc/unxfbsd.mk
@@ -27,7 +27,7 @@ ASM=
AFLAGS=
SOLAR_JAVA*=
-PICSWITCH*:=-fpic
+PICSWITCH*:=-fPIC
JAVAFLAGSDEBUG=-g
# Include arch specific makefile.
@@ -49,7 +49,7 @@ JAVAFLAGSDEBUG=-g
#LINKOUTPUT_FILTER=" |& $(SOLARENV)/bin/msg_filter"
# _PTHREADS is needed for the stl
-CDEFS+=$(PTHREAD_CFLAGS) -D_PTHREADS -D_REENTRANT -DNEW_SOLAR -D_USE_NAMESPACE=1 -DSTLPORT_VERSION=450
+CDEFS+=$(PTHREAD_CFLAGS) -D_PTHREADS -D_REENTRANT -DNEW_SOLAR -D_USE_NAMESPACE=1 -DSTLPORT_VERSION=450 -DHAVE_STL_INCLUDE_PATH
# enable visibility define in "sal/types.h"
.IF "$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE"
@@ -88,7 +88,7 @@ CFLAGSENABLESYMBOLS=-g # was temporarily
# flags for the C++ Compiler
CFLAGSCC= -pipe $(ARCH_FLAGS)
# Flags for enabling exception handling
-CFLAGSEXCEPTIONS=-fexceptions -fno-enforce-eh-specs
+CFLAGSEXCEPTIONS=-fexceptions
# Flags for disabling exception handling
CFLAGS_NO_EXCEPTIONS=-fno-exceptions
@@ -156,7 +156,7 @@ LINKFLAGSRUNPATH_OXT=
LINKFLAGSRUNPATH_BOXT=-Wl,-z,origin -Wl,-rpath,\''$$ORIGIN'\'
#LINKFLAGSRUNPATH_BOXT=-Wl,-z,origin -Wl,-rpath,\''$$ORIGIN/../../../basis-link/program'\'
LINKFLAGSRUNPATH_NONE=
-LINKFLAGS=-Wl,-z,combreloc $(LINKFLAGSDEFS) $(LINKFLAGS_SYSBASE)
+LINKFLAGS=-Wl,-z,combreloc $(LDFLAGS) $(LINKFLAGSDEFS) $(LINKFLAGS_SYSBASE)
# linker flags for linking applications
LINKFLAGSAPPGUI= -Wl,-export-dynamic -Wl,--noinhibit-exec \
@@ -199,11 +199,11 @@ STDSHLCUIMT+=-ltcmalloc
.ENDIF
# libraries for linking applications
-STDLIBGUIMT+=-Wl,--as-needed $(PTHREAD_LIBS) -lm -Wl,--no-as-needed
-STDLIBCUIMT+=-Wl,--as-needed $(PTHREAD_LIBS) -lm -Wl,--no-as-needed
+STDLIBGUIMT+=-Wl,--as-needed $(PTHREAD_LIBS) -lm -Wl,--no-as-needed ${FBSD_LDFLAGS}
+STDLIBCUIMT+=-Wl,--as-needed $(PTHREAD_LIBS) -lm -Wl,--no-as-needed ${FBSD_LDFLAGS}
# libraries for linking shared libraries
-STDSHLGUIMT+=-Wl,--as-needed $(PTHREAD_LIBS) -lm -Wl,--no-as-needed
-STDSHLCUIMT+=-Wl,--as-needed $(PTHREAD_LIBS) -lm -Wl,--no-as-needed
+STDSHLGUIMT+=-Wl,--as-needed $(PTHREAD_LIBS) -lm -Wl,--no-as-needed ${FBSD_LDFLAGS}
+STDSHLCUIMT+=-Wl,--as-needed $(PTHREAD_LIBS) -lm -Wl,--no-as-needed ${FBSD_LDFLAGS}
X11LINK_DYNAMIC = -Wl,--as-needed -lXext -lX11 -Wl,--no-as-needed