Remove support for AIX
As discussed in the mailing list thread starting at <https://lists.freedesktop.org/archives/libreoffice/2023-January/089808.html> "Plan to remove dead C++ UNO bridge implementations (bridges/source/cpp_uno/*)", the bridge implementation at bridges/source/cpp_uno/gcc3_aix_powerpc is apparently dead and should thus be removed. However, that was the only bridge implementation for AIX, which implies that support for the AIX platform as a whole is dead and should thus be removed. Change-Id: I96de3f7f97d4fd770ff78256f0ea435383688be9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146057 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
This commit is contained in:
parent
12a5e9bd92
commit
70bcf9e8be
77 changed files with 39 additions and 2401 deletions
|
@ -1015,13 +1015,13 @@ $(eval $(call gb_Helper_register_packages_for_install,ooo,\
|
|||
) \
|
||||
$(if $(filter SKIA,$(BUILD_TYPE)), \
|
||||
vcl_skia_denylist ) \
|
||||
$(if $(DISABLE_PYTHON),,$(if $(filter-out AIX,$(OS)), \
|
||||
$(if $(DISABLE_PYTHON),, \
|
||||
Pyuno/commonwizards \
|
||||
Pyuno/fax \
|
||||
Pyuno/letter \
|
||||
Pyuno/agenda \
|
||||
Pyuno/mailmerge \
|
||||
)) \
|
||||
) \
|
||||
sfx2_classification \
|
||||
$(if $(filter OPENCL,$(BUILD_TYPE)),sc_opencl_runtimetest) \
|
||||
$(if $(ENABLE_HTMLHELP),\
|
||||
|
|
|
@ -161,7 +161,6 @@ my $aclocal_flags = $ENV{ACLOCAL_FLAGS};
|
|||
|
||||
$aclocal_flags .= " -I $src_path/m4";
|
||||
$aclocal_flags .= " -I $src_path/m4/mac" if ($system eq 'Darwin');
|
||||
$aclocal_flags .= " -I /opt/freeware/share/aclocal" if ($system eq 'AIX');
|
||||
|
||||
$ENV{AUTOMAKE_EXTRA_FLAGS} = '--warnings=no-portability' if (!($system eq 'Darwin'));
|
||||
|
||||
|
|
|
@ -138,10 +138,6 @@ ifneq ($(filter DRAGONFLY FREEBSD LINUX NETBSD OPENBSD,$(OS)),)
|
|||
bridges_SELECTED_BRIDGE := gcc3_linux_powerpc
|
||||
bridge_noopt_objects := uno2cpp
|
||||
bridge_exception_objects := cpp2uno except
|
||||
else ifeq ($(OS),AIX)
|
||||
bridges_SELECTED_BRIDGE := gcc3_aix_powerpc
|
||||
bridge_exception_objects := except
|
||||
bridge_cxx_objects := cpp2uno uno2cpp
|
||||
endif
|
||||
|
||||
else ifeq ($(CPUNAME),POWERPC64)
|
||||
|
|
|
@ -1,658 +0,0 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
/*
|
||||
* This file is part of the LibreOffice project.
|
||||
*
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
*
|
||||
* This file incorporates work covered by the following license notice:
|
||||
*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed
|
||||
* with this work for additional information regarding copyright
|
||||
* ownership. The ASF licenses this file to you under the Apache
|
||||
* License, Version 2.0 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
|
||||
*/
|
||||
|
||||
#include <com/sun/star/uno/genfunc.hxx>
|
||||
#include <sal/log.hxx>
|
||||
#include <uno/data.h>
|
||||
#include <typelib/typedescription.hxx>
|
||||
|
||||
#include "bridge.hxx"
|
||||
#include "cppinterfaceproxy.hxx"
|
||||
#include "types.hxx"
|
||||
#include "vtablefactory.hxx"
|
||||
|
||||
#include "share.hxx"
|
||||
|
||||
#include <string.h>
|
||||
#include <typeinfo>
|
||||
|
||||
using namespace ::com::sun::star::uno;
|
||||
|
||||
namespace
|
||||
{
|
||||
|
||||
|
||||
static typelib_TypeClass cpp2uno_call(
|
||||
bridges::cpp_uno::shared::CppInterfaceProxy * pThis,
|
||||
const typelib_TypeDescription * pMemberTypeDescr,
|
||||
typelib_TypeDescriptionReference * pReturnTypeRef, // 0 indicates void return
|
||||
sal_Int32 nParams, typelib_MethodParameter * pParams,
|
||||
void ** gpreg, double * fpreg, void ** ovrflw,
|
||||
sal_uInt64 * pRegisterReturn /* space for register return */ )
|
||||
{
|
||||
// gpreg: [ret *], this, [gpr params]
|
||||
// fpreg: [fpr params]
|
||||
// ovrflw: [remainder of params]
|
||||
|
||||
// return
|
||||
typelib_TypeDescription * pReturnTypeDescr = 0;
|
||||
if (pReturnTypeRef)
|
||||
TYPELIB_DANGER_GET( &pReturnTypeDescr, pReturnTypeRef );
|
||||
|
||||
void * pUnoReturn = 0;
|
||||
void * pCppReturn = 0; // complex return ptr: if != 0 && != pUnoReturn, reconversion need
|
||||
|
||||
sal_Int32 ng = 0;
|
||||
sal_Int32 nf = 0;
|
||||
|
||||
ovrflw -= ppc::MAX_GPR_REGS;
|
||||
|
||||
if (pReturnTypeDescr)
|
||||
{
|
||||
if (bridges::cpp_uno::shared::isSimpleType( pReturnTypeDescr ))
|
||||
pUnoReturn = pRegisterReturn; // direct way for simple types
|
||||
else // complex return via ptr (pCppReturn)
|
||||
{
|
||||
pCppReturn = *gpreg;
|
||||
++gpreg;
|
||||
++ng;
|
||||
++ovrflw;
|
||||
|
||||
pUnoReturn = (bridges::cpp_uno::shared::relatesToInterfaceType( pReturnTypeDescr )
|
||||
? __builtin_alloca( pReturnTypeDescr->nSize )
|
||||
: pCppReturn); // direct way
|
||||
}
|
||||
}
|
||||
// pop this
|
||||
++gpreg;
|
||||
++ng;
|
||||
++ovrflw;
|
||||
|
||||
// stack space
|
||||
static_assert(sizeof(void *) == sizeof(sal_Int32), "### unexpected size!");
|
||||
// parameters
|
||||
void ** pUnoArgs = (void **)__builtin_alloca( 4 * sizeof(void *) * nParams );
|
||||
void ** pCppArgs = pUnoArgs + nParams;
|
||||
|
||||
// indices of values this have to be converted (interface conversion cpp<=>uno)
|
||||
sal_Int32 * pTempIndices = (sal_Int32 *)(pUnoArgs + (2 * nParams));
|
||||
|
||||
// type descriptions for reconversions
|
||||
typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pUnoArgs + (3 * nParams));
|
||||
|
||||
sal_Int32 nTempIndices = 0;
|
||||
|
||||
for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
|
||||
{
|
||||
const typelib_MethodParameter & rParam = pParams[nPos];
|
||||
typelib_TypeDescription * pParamTypeDescr = 0;
|
||||
TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
|
||||
|
||||
if (!rParam.bOut && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))
|
||||
// value
|
||||
{
|
||||
switch (pParamTypeDescr->eTypeClass)
|
||||
{
|
||||
case typelib_TypeClass_BOOLEAN:
|
||||
case typelib_TypeClass_BYTE:
|
||||
if (ng < ppc::MAX_GPR_REGS)
|
||||
{
|
||||
*ovrflw = *gpreg++;
|
||||
++ng;
|
||||
}
|
||||
pCppArgs[nPos] = pUnoArgs[nPos] = (((char *)ovrflw) + (sizeof(void*)-1));
|
||||
++ovrflw;
|
||||
break;
|
||||
case typelib_TypeClass_CHAR:
|
||||
case typelib_TypeClass_SHORT:
|
||||
case typelib_TypeClass_UNSIGNED_SHORT:
|
||||
if (ng < ppc::MAX_GPR_REGS)
|
||||
{
|
||||
*ovrflw = *gpreg++;
|
||||
++ng;
|
||||
}
|
||||
pCppArgs[nPos] = pUnoArgs[nPos] = (((char *)ovrflw) + (sizeof(void*)-2));
|
||||
++ovrflw;
|
||||
break;
|
||||
case typelib_TypeClass_HYPER:
|
||||
case typelib_TypeClass_UNSIGNED_HYPER:
|
||||
pCppArgs[nPos] = pUnoArgs[nPos] = ovrflw;
|
||||
for (int i = 0; i < 2; ++i)
|
||||
{
|
||||
if (ng < ppc::MAX_GPR_REGS)
|
||||
{
|
||||
*ovrflw = *gpreg++;
|
||||
++ng;
|
||||
}
|
||||
++ovrflw;
|
||||
}
|
||||
break;
|
||||
case typelib_TypeClass_DOUBLE:
|
||||
if (nf < ppc::MAX_SSE_REGS)
|
||||
{
|
||||
pCppArgs[nPos] = pUnoArgs[nPos] = fpreg;
|
||||
++fpreg;
|
||||
++nf;
|
||||
}
|
||||
else
|
||||
{
|
||||
pCppArgs[nPos] = pUnoArgs[nPos] = ovrflw;
|
||||
}
|
||||
if (ng < ppc::MAX_GPR_REGS)
|
||||
{
|
||||
ng+=2;
|
||||
gpreg+=2;
|
||||
}
|
||||
ovrflw+=2;
|
||||
break;
|
||||
case typelib_TypeClass_FLOAT:
|
||||
if (nf < ppc::MAX_SSE_REGS)
|
||||
{
|
||||
pCppArgs[nPos] = pUnoArgs[nPos] = fpreg;
|
||||
++fpreg;
|
||||
++nf;
|
||||
}
|
||||
else
|
||||
{
|
||||
pCppArgs[nPos] = pUnoArgs[nPos] = ovrflw;
|
||||
}
|
||||
if (ng < ppc::MAX_GPR_REGS)
|
||||
{
|
||||
++gpreg;
|
||||
++ng;
|
||||
}
|
||||
++ovrflw;
|
||||
break;
|
||||
default:
|
||||
if (ng < ppc::MAX_GPR_REGS)
|
||||
{
|
||||
*ovrflw = *gpreg++;
|
||||
++ng;
|
||||
}
|
||||
pCppArgs[nPos] = pUnoArgs[nPos] = ovrflw;
|
||||
++ovrflw;
|
||||
break;
|
||||
}
|
||||
|
||||
// no longer needed
|
||||
TYPELIB_DANGER_RELEASE( pParamTypeDescr );
|
||||
}
|
||||
else // ptr to complex value | ref
|
||||
{
|
||||
void *pCppStack; //temporary stack pointer
|
||||
|
||||
if (ng < ppc::MAX_GPR_REGS)
|
||||
{
|
||||
*ovrflw = *gpreg++;
|
||||
++ng;
|
||||
}
|
||||
pCppArgs[nPos] = pCppStack = *ovrflw++;
|
||||
|
||||
if (! rParam.bIn) // is pure out
|
||||
{
|
||||
// uno out is unconstructed mem!
|
||||
pUnoArgs[nPos] = __builtin_alloca( pParamTypeDescr->nSize );
|
||||
pTempIndices[nTempIndices] = nPos;
|
||||
// will be released at reconversion
|
||||
ppTempParamTypeDescr[nTempIndices++] = pParamTypeDescr;
|
||||
}
|
||||
// is in/inout
|
||||
else if (bridges::cpp_uno::shared::relatesToInterfaceType( pParamTypeDescr ))
|
||||
{
|
||||
uno_copyAndConvertData( pUnoArgs[nPos] = __builtin_alloca( pParamTypeDescr->nSize ),
|
||||
pCppStack, pParamTypeDescr,
|
||||
pThis->getBridge()->getCpp2Uno() );
|
||||
pTempIndices[nTempIndices] = nPos; // has to be reconverted
|
||||
// will be released at reconversion
|
||||
ppTempParamTypeDescr[nTempIndices++] = pParamTypeDescr;
|
||||
}
|
||||
else // direct way
|
||||
{
|
||||
pUnoArgs[nPos] = pCppStack;
|
||||
// no longer needed
|
||||
TYPELIB_DANGER_RELEASE( pParamTypeDescr );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ExceptionHolder
|
||||
uno_Any aUnoExc; // Any will be constructed by callee
|
||||
uno_Any * pUnoExc = &aUnoExc;
|
||||
|
||||
// invoke uno dispatch call
|
||||
(*pThis->getUnoI()->pDispatcher)(
|
||||
pThis->getUnoI(), pMemberTypeDescr, pUnoReturn, pUnoArgs, &pUnoExc );
|
||||
|
||||
// in case an exception occurred...
|
||||
if (pUnoExc)
|
||||
{
|
||||
// destruct temporary in/inout params
|
||||
for ( ; nTempIndices--; )
|
||||
{
|
||||
sal_Int32 nIndex = pTempIndices[nTempIndices];
|
||||
|
||||
if (pParams[nIndex].bIn) // is in/inout => was constructed
|
||||
uno_destructData( pUnoArgs[nIndex], ppTempParamTypeDescr[nTempIndices], 0 );
|
||||
TYPELIB_DANGER_RELEASE( ppTempParamTypeDescr[nTempIndices] );
|
||||
}
|
||||
if (pReturnTypeDescr)
|
||||
TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
|
||||
|
||||
CPPU_CURRENT_NAMESPACE::raiseException(
|
||||
&aUnoExc, pThis->getBridge()->getUno2Cpp() );
|
||||
// has to destruct the any
|
||||
// is here for dummy
|
||||
return typelib_TypeClass_VOID;
|
||||
}
|
||||
else // else no exception occurred...
|
||||
{
|
||||
// temporary params
|
||||
for ( ; nTempIndices--; )
|
||||
{
|
||||
sal_Int32 nIndex = pTempIndices[nTempIndices];
|
||||
typelib_TypeDescription * pParamTypeDescr = ppTempParamTypeDescr[nTempIndices];
|
||||
|
||||
if (pParams[nIndex].bOut) // inout/out
|
||||
{
|
||||
// convert and assign
|
||||
uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
|
||||
uno_copyAndConvertData( pCppArgs[nIndex], pUnoArgs[nIndex], pParamTypeDescr,
|
||||
pThis->getBridge()->getUno2Cpp() );
|
||||
}
|
||||
// destroy temp uno param
|
||||
uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 );
|
||||
|
||||
TYPELIB_DANGER_RELEASE( pParamTypeDescr );
|
||||
}
|
||||
// return
|
||||
if (pCppReturn) // has complex return
|
||||
{
|
||||
if (pUnoReturn != pCppReturn) // needs reconversion
|
||||
{
|
||||
uno_copyAndConvertData( pCppReturn, pUnoReturn, pReturnTypeDescr,
|
||||
pThis->getBridge()->getUno2Cpp() );
|
||||
// destroy temp uno return
|
||||
uno_destructData( pUnoReturn, pReturnTypeDescr, 0 );
|
||||
}
|
||||
// complex return ptr is set to return reg
|
||||
*(void **)pRegisterReturn = pCppReturn;
|
||||
}
|
||||
if (pReturnTypeDescr)
|
||||
{
|
||||
typelib_TypeClass eRet = (typelib_TypeClass)pReturnTypeDescr->eTypeClass;
|
||||
TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
|
||||
return eRet;
|
||||
}
|
||||
else
|
||||
return typelib_TypeClass_VOID;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static typelib_TypeClass cpp_mediate(
|
||||
sal_Int32 nFunctionIndex,
|
||||
sal_Int32 nVtableOffset,
|
||||
void ** gpreg, double * fpreg, void ** ovrflw,
|
||||
sal_uInt64 * pRegisterReturn /* space for register return */ )
|
||||
{
|
||||
static_assert(sizeof(sal_Int32)==sizeof(void *), "### unexpected!");
|
||||
|
||||
// gpreg: [ret *], this, [other gpr params]
|
||||
// fpreg: [fpr params]
|
||||
// ovrflw: [gpr or fpr params (in space allocated for all params properly aligned)]
|
||||
|
||||
void * pThis;
|
||||
if( nFunctionIndex & 0x8000 )
|
||||
{
|
||||
nFunctionIndex &= 0x7fff;
|
||||
pThis = gpreg[1];
|
||||
}
|
||||
else
|
||||
{
|
||||
pThis = gpreg[0];
|
||||
}
|
||||
|
||||
pThis = static_cast< char * >(pThis) - nVtableOffset;
|
||||
|
||||
bridges::cpp_uno::shared::CppInterfaceProxy * pCppI
|
||||
= bridges::cpp_uno::shared::CppInterfaceProxy::castInterfaceToProxy(pThis);
|
||||
|
||||
typelib_InterfaceTypeDescription * pTypeDescr = pCppI->getTypeDescr();
|
||||
|
||||
if (nFunctionIndex >= pTypeDescr->nMapFunctionIndexToMemberIndex)
|
||||
{
|
||||
SAL_WARN(
|
||||
"bridges",
|
||||
"illegal " << OUString::unacquired(&pTypeDescr->aBase.pTypeName)
|
||||
<< " vtable index " << nFunctionIndex << "/"
|
||||
<< pTypeDescr->nMapFunctionIndexToMemberIndex);
|
||||
throw RuntimeException(
|
||||
("illegal " + OUString::unacquired(&pTypeDescr->aBase.pTypeName)
|
||||
+ " vtable index " + OUString::number(nFunctionIndex) + "/"
|
||||
+ OUString::number(pTypeDescr->nMapFunctionIndexToMemberIndex)),
|
||||
(XInterface *)pThis);
|
||||
}
|
||||
|
||||
// determine called method
|
||||
sal_Int32 nMemberPos = pTypeDescr->pMapFunctionIndexToMemberIndex[nFunctionIndex];
|
||||
assert(nMemberPos < pTypeDescr->nAllMembers);
|
||||
|
||||
TypeDescription aMemberDescr( pTypeDescr->ppAllMembers[nMemberPos] );
|
||||
|
||||
typelib_TypeClass eRet;
|
||||
switch (aMemberDescr.get()->eTypeClass)
|
||||
{
|
||||
case typelib_TypeClass_INTERFACE_ATTRIBUTE:
|
||||
{
|
||||
if (pTypeDescr->pMapMemberIndexToFunctionIndex[nMemberPos] == nFunctionIndex)
|
||||
{
|
||||
// is GET method
|
||||
eRet = cpp2uno_call(
|
||||
pCppI, aMemberDescr.get(),
|
||||
((typelib_InterfaceAttributeTypeDescription *)aMemberDescr.get())->pAttributeTypeRef,
|
||||
0, 0, // no params
|
||||
gpreg, fpreg, ovrflw, pRegisterReturn );
|
||||
}
|
||||
else
|
||||
{
|
||||
// is SET method
|
||||
typelib_MethodParameter aParam;
|
||||
aParam.pTypeRef =
|
||||
((typelib_InterfaceAttributeTypeDescription *)aMemberDescr.get())->pAttributeTypeRef;
|
||||
aParam.bIn = sal_True;
|
||||
aParam.bOut = sal_False;
|
||||
|
||||
eRet = cpp2uno_call(
|
||||
pCppI, aMemberDescr.get(),
|
||||
0, // indicates void return
|
||||
1, &aParam,
|
||||
gpreg, fpreg, ovrflw, pRegisterReturn );
|
||||
}
|
||||
break;
|
||||
}
|
||||
case typelib_TypeClass_INTERFACE_METHOD:
|
||||
{
|
||||
// is METHOD
|
||||
switch (nFunctionIndex)
|
||||
{
|
||||
case 1: // acquire()
|
||||
pCppI->acquireProxy(); // non virtual call!
|
||||
eRet = typelib_TypeClass_VOID;
|
||||
break;
|
||||
case 2: // release()
|
||||
pCppI->releaseProxy(); // non virtual call!
|
||||
eRet = typelib_TypeClass_VOID;
|
||||
break;
|
||||
case 0: // queryInterface() opt
|
||||
{
|
||||
typelib_TypeDescription * pTD = 0;
|
||||
TYPELIB_DANGER_GET( &pTD, reinterpret_cast< Type * >( gpreg[2] )->getTypeLibType() );
|
||||
if (pTD)
|
||||
{
|
||||
XInterface * pInterface = 0;
|
||||
(*pCppI->getBridge()->getCppEnv()->getRegisteredInterface)(
|
||||
pCppI->getBridge()->getCppEnv(),
|
||||
(void **)&pInterface, pCppI->getOid().pData, (typelib_InterfaceTypeDescription *)pTD );
|
||||
|
||||
if (pInterface)
|
||||
{
|
||||
::uno_any_construct(
|
||||
reinterpret_cast< uno_Any * >( gpreg[0] ),
|
||||
&pInterface, pTD, cpp_acquire );
|
||||
pInterface->release();
|
||||
TYPELIB_DANGER_RELEASE( pTD );
|
||||
*(void **)pRegisterReturn = gpreg[0];
|
||||
eRet = typelib_TypeClass_ANY;
|
||||
break;
|
||||
}
|
||||
TYPELIB_DANGER_RELEASE( pTD );
|
||||
}
|
||||
} // else perform queryInterface()
|
||||
default:
|
||||
eRet = cpp2uno_call(
|
||||
pCppI, aMemberDescr.get(),
|
||||
((typelib_InterfaceMethodTypeDescription *)aMemberDescr.get())->pReturnTypeRef,
|
||||
((typelib_InterfaceMethodTypeDescription *)aMemberDescr.get())->nParams,
|
||||
((typelib_InterfaceMethodTypeDescription *)aMemberDescr.get())->pParams,
|
||||
gpreg, fpreg, ovrflw, pRegisterReturn );
|
||||
}
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
throw RuntimeException( "no member description found!", (XInterface *)pThis );
|
||||
}
|
||||
}
|
||||
|
||||
return eRet;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* is called on incoming vtable calls
|
||||
* (called by asm snippets)
|
||||
*/
|
||||
static sal_uInt64 cpp_vtable_call(sal_Int32 r3, sal_Int32 r4, sal_Int32 r5,
|
||||
sal_Int32 r6, sal_Int32 r7, sal_Int32 r8, sal_Int32 r9,
|
||||
sal_Int32 r10, sal_Int32 firstonstack)
|
||||
{
|
||||
volatile unsigned long nOffsetAndIndex;
|
||||
|
||||
__asm__ __volatile__(
|
||||
"mr %0, 11\n\t"
|
||||
: "=r" (nOffsetAndIndex) : );
|
||||
|
||||
sal_Int32 nVtableOffset = (nOffsetAndIndex >> 16);
|
||||
sal_Int32 nFunctionIndex = (nOffsetAndIndex & 0xFFFF);
|
||||
|
||||
void ** ovrflw = (void**)&firstonstack;
|
||||
|
||||
sal_Int32 gpreg[ppc::MAX_GPR_REGS];
|
||||
gpreg[0] = r3;
|
||||
gpreg[1] = r4;
|
||||
gpreg[2] = r5;
|
||||
gpreg[3] = r6;
|
||||
gpreg[4] = r7;
|
||||
gpreg[5] = r8;
|
||||
gpreg[6] = r9;
|
||||
gpreg[7] = r10;
|
||||
|
||||
double fpreg[ppc::MAX_SSE_REGS];
|
||||
register double d0 asm("fr1"); fpreg[0] = d0;
|
||||
register double d1 asm("fr2"); fpreg[1] = d1;
|
||||
register double d2 asm("fr3"); fpreg[2] = d2;
|
||||
register double d3 asm("fr4"); fpreg[3] = d3;
|
||||
register double d4 asm("fr5"); fpreg[4] = d4;
|
||||
register double d5 asm("fr6"); fpreg[5] = d5;
|
||||
register double d6 asm("fr7"); fpreg[6] = d6;
|
||||
register double d7 asm("fr8"); fpreg[7] = d7;
|
||||
register double d8 asm("fr9"); fpreg[8] = d8;
|
||||
register double d9 asm("fr10"); fpreg[9] = d9;
|
||||
register double d10 asm("fr11"); fpreg[10] = d10;
|
||||
register double d11 asm("fr12"); fpreg[11] = d11;
|
||||
register double d12 asm("fr13"); fpreg[12] = d12;
|
||||
|
||||
#if OSL_DEBUG_LEVEL > 2
|
||||
for(int i = 0; i < 8; ++i)
|
||||
{
|
||||
fprintf(stderr, "general reg %d is %x\n", i, gpreg[i]);
|
||||
}
|
||||
for(int i = 0; i < 13; ++i)
|
||||
{
|
||||
fprintf(stderr, "sse reg %d is %f\n", i, fpreg[i]);
|
||||
fprintf(stderr, "sse reg %d is %llx\n", i, fpreg[i]);
|
||||
}
|
||||
for(int i = -8; i < 8; ++i)
|
||||
{
|
||||
fprintf(stderr, "overflow arg %d is %x\n", i, ovrflw[i]);
|
||||
}
|
||||
#endif
|
||||
sal_uInt64 nRegReturn=0;
|
||||
|
||||
typelib_TypeClass aType =
|
||||
cpp_mediate( nFunctionIndex, nVtableOffset, (void**)gpreg, fpreg, ovrflw, &nRegReturn );
|
||||
|
||||
sal_uInt32 *pRegReturn = (sal_uInt32*)&nRegReturn;
|
||||
switch( aType )
|
||||
{
|
||||
case typelib_TypeClass_BOOLEAN:
|
||||
pRegReturn[0] = (sal_uInt32)(*(char *)pRegReturn);
|
||||
break;
|
||||
case typelib_TypeClass_BYTE:
|
||||
pRegReturn[0] = (sal_Int32)(*(unsigned char *)pRegReturn);
|
||||
break;
|
||||
case typelib_TypeClass_SHORT:
|
||||
pRegReturn[0] = (sal_Int32)(*(short *)pRegReturn);
|
||||
break;
|
||||
case typelib_TypeClass_CHAR:
|
||||
case typelib_TypeClass_UNSIGNED_SHORT:
|
||||
pRegReturn[0] = (sal_uInt32)(*(unsigned short *)pRegReturn);
|
||||
break;
|
||||
case typelib_TypeClass_FLOAT:
|
||||
__asm__("lfs 1,%0\n\t" : : "m"(*((float*)&nRegReturn)));
|
||||
break;
|
||||
case typelib_TypeClass_DOUBLE:
|
||||
__asm__("lfd 1,%0\n\t" : : "m"(*((double*)&nRegReturn)));
|
||||
break;
|
||||
case typelib_TypeClass_HYPER:
|
||||
case typelib_TypeClass_UNSIGNED_HYPER:
|
||||
break;
|
||||
default:
|
||||
pRegReturn[0] = (sal_uInt32)(*(unsigned int*)pRegReturn);
|
||||
break;
|
||||
}
|
||||
return nRegReturn;
|
||||
}
|
||||
|
||||
|
||||
int const codeSnippetSize = 3 * sizeof(void*);
|
||||
|
||||
unsigned char * codeSnippet( unsigned char * code, sal_Int16 functionIndex,
|
||||
sal_Int16 vtableOffset, bool simpleRetType )
|
||||
{
|
||||
sal_uInt32 nOffsetAndIndex = ( ( vtableOffset ) << 16 ) | (functionIndex );
|
||||
if (! simpleRetType )
|
||||
nOffsetAndIndex |= 0x8000;
|
||||
|
||||
void **raw = (void**)&code[0];
|
||||
memcpy(raw, (char*)cpp_vtable_call, 2 * sizeof(void*));
|
||||
raw[2] = (void*)nOffsetAndIndex;
|
||||
|
||||
return (code + codeSnippetSize);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void bridges::cpp_uno::shared::VtableFactory::flushCode(unsigned char const * bptr, unsigned char const * eptr)
|
||||
{
|
||||
int const lineSize = 32;
|
||||
for (unsigned char const * p = bptr; p < eptr + lineSize; p += lineSize) {
|
||||
__asm__ volatile ("dcbst 0, %0" : : "r"(p) : "memory");
|
||||
}
|
||||
__asm__ volatile ("sync" : : : "memory");
|
||||
for (unsigned char const * p = bptr; p < eptr + lineSize; p += lineSize) {
|
||||
__asm__ volatile ("icbi 0, %0" : : "r"(p) : "memory");
|
||||
}
|
||||
__asm__ volatile ("isync" : : : "memory");
|
||||
}
|
||||
|
||||
struct bridges::cpp_uno::shared::VtableFactory::Slot { void const * fn; };
|
||||
|
||||
bridges::cpp_uno::shared::VtableFactory::Slot *
|
||||
bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable(void * block)
|
||||
{
|
||||
return static_cast< Slot * >(block) + 2;
|
||||
}
|
||||
|
||||
std::size_t bridges::cpp_uno::shared::VtableFactory::getBlockSize(
|
||||
sal_Int32 slotCount)
|
||||
{
|
||||
return (slotCount + 2) * sizeof (Slot) + slotCount * codeSnippetSize;
|
||||
}
|
||||
|
||||
namespace {
|
||||
// Some dummy type whose RTTI is used in the synthesized proxy vtables to make uses of dynamic_cast
|
||||
// on such proxy objects not crash:
|
||||
struct ProxyRtti {};
|
||||
}
|
||||
|
||||
bridges::cpp_uno::shared::VtableFactory::Slot *
|
||||
bridges::cpp_uno::shared::VtableFactory::initializeBlock(
|
||||
void * block, sal_Int32 slotCount, sal_Int32,
|
||||
typelib_InterfaceTypeDescription *)
|
||||
{
|
||||
Slot * slots = mapBlockToVtable(block);
|
||||
slots[-2].fn = 0;
|
||||
slots[-1].fn = &typeid(ProxyRtti);
|
||||
return slots + slotCount;
|
||||
}
|
||||
|
||||
unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions(
|
||||
Slot ** slots, unsigned char * code,
|
||||
typelib_InterfaceTypeDescription const * type, sal_Int32 functionOffset,
|
||||
sal_Int32 functionCount, sal_Int32 vtableOffset)
|
||||
{
|
||||
(*slots) -= functionCount;
|
||||
Slot * s = *slots;
|
||||
|
||||
for (sal_Int32 i = 0; i < type->nMembers; ++i) {
|
||||
typelib_TypeDescription * member = 0;
|
||||
TYPELIB_DANGER_GET(&member, type->ppMembers[i]);
|
||||
assert(member != 0);
|
||||
switch (member->eTypeClass) {
|
||||
case typelib_TypeClass_INTERFACE_ATTRIBUTE:
|
||||
// Getter:
|
||||
(s++)->fn = code;
|
||||
code = codeSnippet(
|
||||
code, functionOffset++, vtableOffset,
|
||||
bridges::cpp_uno::shared::isSimpleType(
|
||||
reinterpret_cast<
|
||||
typelib_InterfaceAttributeTypeDescription * >(
|
||||
member)->pAttributeTypeRef));
|
||||
|
||||
// Setter:
|
||||
if (!reinterpret_cast<
|
||||
typelib_InterfaceAttributeTypeDescription * >(
|
||||
member)->bReadOnly)
|
||||
{
|
||||
(s++)->fn = code;
|
||||
code = codeSnippet(code, functionOffset++, vtableOffset, true);
|
||||
}
|
||||
break;
|
||||
|
||||
case typelib_TypeClass_INTERFACE_METHOD:
|
||||
(s++)->fn = code;
|
||||
code = codeSnippet(
|
||||
code, functionOffset++, vtableOffset,
|
||||
bridges::cpp_uno::shared::isSimpleType(
|
||||
reinterpret_cast<
|
||||
typelib_InterfaceMethodTypeDescription * >(
|
||||
member)->pReturnTypeRef));
|
||||
break;
|
||||
|
||||
default:
|
||||
assert(false);
|
||||
break;
|
||||
}
|
||||
TYPELIB_DANGER_RELEASE(member);
|
||||
}
|
||||
return code;
|
||||
}
|
||||
|
||||
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|
|
@ -1,260 +0,0 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
/*
|
||||
* This file is part of the LibreOffice project.
|
||||
*
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
*
|
||||
* This file incorporates work covered by the following license notice:
|
||||
*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed
|
||||
* with this work for additional information regarding copyright
|
||||
* ownership. The ASF licenses this file to you under the Apache
|
||||
* License, Version 2.0 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
|
||||
*/
|
||||
|
||||
|
||||
#include <stdio.h>
|
||||
#include <dlfcn.h>
|
||||
#include <cxxabi.h>
|
||||
|
||||
#include <rtl/strbuf.hxx>
|
||||
#include <rtl/ustrbuf.hxx>
|
||||
#include <osl/mutex.hxx>
|
||||
|
||||
#include <com/sun/star/uno/genfunc.hxx>
|
||||
#include <typelib/typedescription.hxx>
|
||||
#include <uno/any2.h>
|
||||
#include <unordered_map>
|
||||
#include "share.hxx"
|
||||
#include <string.h>
|
||||
|
||||
|
||||
using namespace ::std;
|
||||
using namespace ::osl;
|
||||
using namespace ::com::sun::star::uno;
|
||||
using namespace ::__cxxabiv1;
|
||||
|
||||
|
||||
namespace CPPU_CURRENT_NAMESPACE
|
||||
{
|
||||
|
||||
void dummy_can_throw_anything( char const * )
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
static OUString toUNOname( char const * p )
|
||||
{
|
||||
#ifdef DEBUG
|
||||
char const * start = p;
|
||||
#endif
|
||||
|
||||
// example: N3com3sun4star4lang24IllegalArgumentExceptionE
|
||||
|
||||
OUStringBuffer buf( 64 );
|
||||
assert( 'N' == *p );
|
||||
++p; // skip N
|
||||
|
||||
while ('E' != *p)
|
||||
{
|
||||
// read chars count
|
||||
long n = (*p++ - '0');
|
||||
while ('0' <= *p && '9' >= *p)
|
||||
{
|
||||
n *= 10;
|
||||
n += (*p++ - '0');
|
||||
}
|
||||
buf.appendAscii( p, n );
|
||||
p += n;
|
||||
if ('E' != *p)
|
||||
buf.append( '.' );
|
||||
}
|
||||
|
||||
#ifdef DEBUG
|
||||
OUString ret( buf.makeStringAndClear() );
|
||||
OString c_ret( OUStringToOString( ret, RTL_TEXTENCODING_ASCII_US ) );
|
||||
fprintf( stderr, "> toUNOname(): %s => %s\n", start, c_ret.getStr() );
|
||||
return ret;
|
||||
#else
|
||||
return buf.makeStringAndClear();
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
class RTTI
|
||||
{
|
||||
typedef std::unordered_map< OUString, type_info * > t_rtti_map;
|
||||
|
||||
Mutex m_mutex;
|
||||
t_rtti_map m_rttis;
|
||||
t_rtti_map m_generatedRttis;
|
||||
|
||||
void * m_hApp;
|
||||
|
||||
public:
|
||||
RTTI();
|
||||
~RTTI();
|
||||
|
||||
type_info * getRTTI( typelib_CompoundTypeDescription * );
|
||||
};
|
||||
|
||||
RTTI::RTTI()
|
||||
: m_hApp( dlopen( 0, RTLD_LAZY ) )
|
||||
{
|
||||
}
|
||||
|
||||
RTTI::~RTTI()
|
||||
{
|
||||
dlclose( m_hApp );
|
||||
}
|
||||
|
||||
|
||||
type_info * RTTI::getRTTI( typelib_CompoundTypeDescription *pTypeDescr )
|
||||
{
|
||||
type_info * rtti;
|
||||
|
||||
OUString const & unoName = *(OUString const *)&pTypeDescr->aBase.pTypeName;
|
||||
|
||||
MutexGuard guard( m_mutex );
|
||||
t_rtti_map::const_iterator iFind( m_rttis.find( unoName ) );
|
||||
if (iFind == m_rttis.end())
|
||||
{
|
||||
// RTTI symbol
|
||||
OStringBuffer buf( 64 );
|
||||
buf.append( "_ZTIN" );
|
||||
sal_Int32 index = 0;
|
||||
do
|
||||
{
|
||||
OUString token( unoName.getToken( 0, '.', index ) );
|
||||
buf.append( token.getLength() );
|
||||
OString c_token( OUStringToOString( token, RTL_TEXTENCODING_ASCII_US ) );
|
||||
buf.append( c_token );
|
||||
}
|
||||
while (index >= 0);
|
||||
buf.append( 'E' );
|
||||
|
||||
OString symName( buf.makeStringAndClear() );
|
||||
rtti = (type_info *)dlsym( m_hApp, symName.getStr() );
|
||||
|
||||
if (rtti)
|
||||
{
|
||||
pair< t_rtti_map::iterator, bool > insertion(
|
||||
m_rttis.insert( t_rtti_map::value_type( unoName, rtti ) ) );
|
||||
assert(insertion.second);
|
||||
}
|
||||
else
|
||||
{
|
||||
// try to lookup the symbol in the generated rtti map
|
||||
t_rtti_map::const_iterator iiFind( m_generatedRttis.find( unoName ) );
|
||||
if (iiFind == m_generatedRttis.end())
|
||||
{
|
||||
// we must generate it !
|
||||
// symbol and rtti-name is nearly identical,
|
||||
// the symbol is prefixed with _ZTI
|
||||
char const * rttiName = symName.getStr() +4;
|
||||
#ifdef DEBUG
|
||||
fprintf( stderr,"generated rtti for %s\n", rttiName );
|
||||
#endif
|
||||
if (pTypeDescr->pBaseTypeDescription)
|
||||
{
|
||||
// ensure availability of base
|
||||
type_info * base_rtti = getRTTI(
|
||||
(typelib_CompoundTypeDescription *)pTypeDescr->pBaseTypeDescription );
|
||||
rtti = new __si_class_type_info(
|
||||
strdup( rttiName ), (__class_type_info *)base_rtti );
|
||||
}
|
||||
else
|
||||
{
|
||||
// this class has no base class
|
||||
rtti = new __class_type_info( strdup( rttiName ) );
|
||||
}
|
||||
|
||||
pair< t_rtti_map::iterator, bool > insertion(
|
||||
m_generatedRttis.insert( t_rtti_map::value_type( unoName, rtti ) ) );
|
||||
assert(insertion.second);
|
||||
}
|
||||
else // taking already generated rtti
|
||||
{
|
||||
rtti = iiFind->second;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
rtti = iFind->second;
|
||||
}
|
||||
return rtti;
|
||||
}
|
||||
|
||||
|
||||
static void deleteException( void * pExc )
|
||||
{
|
||||
__cxa_exception const * header = ((__cxa_exception const *)pExc - 1);
|
||||
typelib_TypeDescription * pTD = 0;
|
||||
OUString unoName( toUNOname( header->exceptionType->name() ) );
|
||||
::typelib_typedescription_getByName( &pTD, unoName.pData );
|
||||
assert(pTD && "### unknown exception type! leaving out destruction => leaking!!!");
|
||||
if (pTD)
|
||||
{
|
||||
::uno_destructData( pExc, pTD, cpp_release );
|
||||
::typelib_typedescription_release( pTD );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void raiseException( uno_Any * pUnoExc, uno_Mapping * pUno2Cpp )
|
||||
{
|
||||
void * pCppExc;
|
||||
type_info * rtti;
|
||||
|
||||
{
|
||||
// construct cpp exception object
|
||||
typelib_TypeDescription * pTypeDescr = 0;
|
||||
TYPELIB_DANGER_GET( &pTypeDescr, pUnoExc->pType );
|
||||
if (! pTypeDescr)
|
||||
terminate();
|
||||
|
||||
pCppExc = __cxa_allocate_exception( pTypeDescr->nSize );
|
||||
::uno_copyAndConvertData( pCppExc, pUnoExc->pData, pTypeDescr, pUno2Cpp );
|
||||
|
||||
// destruct uno exception
|
||||
::uno_any_destruct( pUnoExc, 0 );
|
||||
// avoiding locked counts
|
||||
static RTTI rtti_data;
|
||||
rtti = (type_info*)rtti_data.getRTTI((typelib_CompoundTypeDescription*)pTypeDescr);
|
||||
TYPELIB_DANGER_RELEASE( pTypeDescr );
|
||||
if (! rtti)
|
||||
terminate();
|
||||
}
|
||||
|
||||
__cxa_throw( pCppExc, rtti, deleteException );
|
||||
}
|
||||
|
||||
|
||||
void fillUnoException(uno_Any * pExc, uno_Mapping * pCpp2Uno)
|
||||
{
|
||||
__cxa_exception * header = __cxa_get_globals()->caughtExceptions;
|
||||
if (! header)
|
||||
terminate();
|
||||
|
||||
std::type_info *exceptionType = __cxa_current_exception_type();
|
||||
|
||||
typelib_TypeDescription * pExcTypeDescr = 0;
|
||||
OUString unoName( toUNOname( exceptionType->name() ) );
|
||||
::typelib_typedescription_getByName( &pExcTypeDescr, unoName.pData );
|
||||
if (! pExcTypeDescr)
|
||||
terminate();
|
||||
|
||||
// construct uno exception any
|
||||
::uno_any_constructAndConvert( pExc, header->adjustedPtr, pExcTypeDescr, pCpp2Uno );
|
||||
::typelib_typedescription_release( pExcTypeDescr );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|
|
@ -1,89 +0,0 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
/*
|
||||
* This file is part of the LibreOffice project.
|
||||
*
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
*
|
||||
* This file incorporates work covered by the following license notice:
|
||||
*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed
|
||||
* with this work for additional information regarding copyright
|
||||
* ownership. The ASF licenses this file to you under the Apache
|
||||
* License, Version 2.0 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "uno/mapping.h"
|
||||
|
||||
#include <typeinfo>
|
||||
#include <exception>
|
||||
#include <cstddef>
|
||||
|
||||
namespace CPPU_CURRENT_NAMESPACE
|
||||
{
|
||||
|
||||
void dummy_can_throw_anything( char const * );
|
||||
|
||||
|
||||
// ----- following decl from libstdc++-v3/libsupc++/unwind-cxx.h and unwind.h
|
||||
|
||||
struct _Unwind_Exception
|
||||
{
|
||||
unsigned exception_class __attribute__((__mode__(__DI__)));
|
||||
void * exception_cleanup;
|
||||
unsigned private_1 __attribute__((__mode__(__word__)));
|
||||
unsigned private_2 __attribute__((__mode__(__word__)));
|
||||
} __attribute__((__aligned__));
|
||||
|
||||
struct __cxa_exception
|
||||
{
|
||||
std::type_info *exceptionType;
|
||||
void (*exceptionDestructor)(void *);
|
||||
|
||||
void (*unexpectedHandler)(); // std::unexpected_handler dropped from C++17
|
||||
std::terminate_handler terminateHandler;
|
||||
|
||||
__cxa_exception *nextException;
|
||||
|
||||
int handlerCount;
|
||||
|
||||
int handlerSwitchValue;
|
||||
const unsigned char *actionRecord;
|
||||
const unsigned char *languageSpecificData;
|
||||
void *catchTemp;
|
||||
void *adjustedPtr;
|
||||
|
||||
_Unwind_Exception unwindHeader;
|
||||
};
|
||||
|
||||
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));
|
||||
|
||||
struct __cxa_eh_globals
|
||||
{
|
||||
__cxa_exception *caughtExceptions;
|
||||
unsigned int uncaughtExceptions;
|
||||
};
|
||||
|
||||
extern "C" __cxa_eh_globals *__cxa_get_globals () throw();
|
||||
extern "C" std::type_info *__cxa_current_exception_type() throw();
|
||||
|
||||
void raiseException(
|
||||
uno_Any * pUnoExc, uno_Mapping * pUno2Cpp );
|
||||
|
||||
void fillUnoException(uno_Any *, uno_Mapping * pCpp2Uno);
|
||||
}
|
||||
|
||||
namespace ppc
|
||||
{
|
||||
enum ppclimits { MAX_GPR_REGS = 8, MAX_SSE_REGS = 13 };
|
||||
}
|
||||
|
||||
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|
|
@ -1,501 +0,0 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
/*
|
||||
* This file is part of the LibreOffice project.
|
||||
*
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
*
|
||||
* This file incorporates work covered by the following license notice:
|
||||
*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed
|
||||
* with this work for additional information regarding copyright
|
||||
* ownership. The ASF licenses this file to you under the Apache
|
||||
* License, Version 2.0 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
|
||||
*/
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/malloc.h>
|
||||
|
||||
#include <com/sun/star/uno/Exception.hxx>
|
||||
#include <com/sun/star/uno/RuntimeException.hxx>
|
||||
#include <com/sun/star/uno/genfunc.hxx>
|
||||
#include <o3tl/runtimetooustring.hxx>
|
||||
#include <uno/data.h>
|
||||
|
||||
#include "bridge.hxx"
|
||||
#include "types.hxx"
|
||||
#include "unointerfaceproxy.hxx"
|
||||
#include "vtables.hxx"
|
||||
|
||||
#include "share.hxx"
|
||||
|
||||
#include <exception>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <typeinfo>
|
||||
|
||||
using namespace ::com::sun::star::uno;
|
||||
|
||||
namespace
|
||||
{
|
||||
|
||||
void MapReturn(sal_uInt32 r3, sal_uInt32 r4, double dret, typelib_TypeClass eReturnType, void *pRegisterReturn)
|
||||
{
|
||||
switch( eReturnType )
|
||||
{
|
||||
case typelib_TypeClass_HYPER:
|
||||
case typelib_TypeClass_UNSIGNED_HYPER:
|
||||
((long*)pRegisterReturn)[1] = r4;
|
||||
// fall through on purpose
|
||||
case typelib_TypeClass_LONG:
|
||||
case typelib_TypeClass_UNSIGNED_LONG:
|
||||
case typelib_TypeClass_ENUM:
|
||||
((long*)pRegisterReturn)[0] = r3;
|
||||
break;
|
||||
case typelib_TypeClass_CHAR:
|
||||
case typelib_TypeClass_SHORT:
|
||||
case typelib_TypeClass_UNSIGNED_SHORT:
|
||||
*(unsigned short*)pRegisterReturn = (unsigned short)r3;
|
||||
break;
|
||||
case typelib_TypeClass_BOOLEAN:
|
||||
case typelib_TypeClass_BYTE:
|
||||
*(unsigned char*)pRegisterReturn = (unsigned char)r3;
|
||||
break;
|
||||
case typelib_TypeClass_FLOAT:
|
||||
*(float*)pRegisterReturn = (float)dret;
|
||||
break;
|
||||
case typelib_TypeClass_DOUBLE:
|
||||
*(double*)pRegisterReturn = dret;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
#define DISPLACEMENT -2
|
||||
|
||||
static void callVirtualMethod(
|
||||
void * pThis,
|
||||
sal_uInt32 nVtableIndex,
|
||||
void * pRegisterReturn,
|
||||
typelib_TypeClass eReturnType,
|
||||
sal_uInt32 * pStack,
|
||||
sal_uInt32 nStack,
|
||||
double *pFPR,
|
||||
sal_uInt32 nFPR)
|
||||
{
|
||||
sal_uInt32 nStackWords = nStack;
|
||||
if (nStackWords < ppc::MAX_GPR_REGS)
|
||||
nStackWords = 0;
|
||||
else
|
||||
nStackWords-=ppc::MAX_GPR_REGS;
|
||||
if (nStackWords)
|
||||
nStackWords = ( nStackWords + 1) & ~1;
|
||||
sal_uInt32 *stack = (sal_uInt32*)__builtin_alloca( nStackWords * sizeof(sal_uInt32) );
|
||||
memcpy(stack+DISPLACEMENT, pStack+ppc::MAX_GPR_REGS, nStack * sizeof(sal_uInt32));
|
||||
|
||||
// Get pointer to method
|
||||
sal_uInt32 pMethod = *((sal_uInt32 *)pThis);
|
||||
pMethod += 4 * nVtableIndex;
|
||||
pMethod = *((sal_uInt32 *)pMethod);
|
||||
|
||||
typedef void (* FunctionCall )( sal_uInt32, sal_uInt32, sal_uInt32, sal_uInt32, sal_uInt32, sal_uInt32, sal_uInt32, sal_uInt32 );
|
||||
FunctionCall pFunc = (FunctionCall)pMethod;
|
||||
|
||||
register double d0 asm("fr1"); d0 = pFPR[0];
|
||||
register double d1 asm("fr2"); d1 = pFPR[1];
|
||||
register double d2 asm("fr3"); d2 = pFPR[2];
|
||||
register double d3 asm("fr4"); d3 = pFPR[3];
|
||||
register double d4 asm("fr5"); d4 = pFPR[4];
|
||||
register double d5 asm("fr6"); d5 = pFPR[5];
|
||||
register double d6 asm("fr7"); d6 = pFPR[6];
|
||||
register double d7 asm("fr8"); d7 = pFPR[7];
|
||||
register double d8 asm("fr9"); d8 = pFPR[8];
|
||||
register double d9 asm("fr10"); d9 = pFPR[9];
|
||||
register double d10 asm("fr11"); d10 = pFPR[10];
|
||||
register double d11 asm("fr12"); d11 = pFPR[11];
|
||||
register double d12 asm("fr13"); d12 = pFPR[12];
|
||||
|
||||
(*pFunc)(pStack[0], pStack[1], pStack[2], pStack[3], pStack[4], pStack[5], pStack[6], pStack[7]);
|
||||
|
||||
register sal_uInt32 r3 asm("r3");
|
||||
register sal_uInt32 r4 asm("r4");
|
||||
MapReturn(r3, r4, d0, eReturnType, pRegisterReturn);
|
||||
}
|
||||
|
||||
#define INSERT_INT32(pSV, pDS) \
|
||||
{ \
|
||||
*pDS++ = *reinterpret_cast<sal_uInt32 *>(pSV); \
|
||||
}
|
||||
|
||||
#define INSERT_INT16(pSV, pDS) \
|
||||
{ \
|
||||
*pDS++ = *reinterpret_cast<sal_uInt16 *>(pSV); \
|
||||
}
|
||||
|
||||
#define INSERT_INT8(pSV, pDS) \
|
||||
{ \
|
||||
*pDS++ = *reinterpret_cast<sal_uInt8 *>(pSV); \
|
||||
}
|
||||
|
||||
#define INSERT_FLOAT(pSV, nr, pFPR, pDS) \
|
||||
{ \
|
||||
if (nr < ppc::MAX_SSE_REGS) \
|
||||
{ \
|
||||
sal_uInt32 *pDouble = (sal_uInt32 *)&(pFPR[nr++]); \
|
||||
pDouble[0] = *reinterpret_cast<sal_uInt32 *>(pSV); \
|
||||
} \
|
||||
*pDS++ = *reinterpret_cast<sal_uInt32 *>(pSV); \
|
||||
}
|
||||
|
||||
#define INSERT_DOUBLE(pSV, nr, pFPR, pDS) \
|
||||
{ \
|
||||
if (nr < ppc::MAX_SSE_REGS) \
|
||||
{ \
|
||||
pFPR[nr++] = *reinterpret_cast<double *>(pSV); \
|
||||
} \
|
||||
*pDS++ = reinterpret_cast<sal_uInt32 *>(pSV)[1]; \
|
||||
*pDS++ = reinterpret_cast<sal_uInt32 *>(pSV)[0]; \
|
||||
}
|
||||
|
||||
#define INSERT_INT64(pSV, pDS) \
|
||||
{ \
|
||||
INSERT_INT32(pSV, pDS) \
|
||||
INSERT_INT32(((sal_uInt32*)pSV)+1, pDS) \
|
||||
}
|
||||
|
||||
static void cpp_call(
|
||||
bridges::cpp_uno::shared::UnoInterfaceProxy * pThis,
|
||||
bridges::cpp_uno::shared::VtableSlot aVtableSlot,
|
||||
typelib_TypeDescriptionReference * pReturnTypeRef,
|
||||
sal_Int32 nParams, typelib_MethodParameter * pParams,
|
||||
void * pUnoReturn, void * pUnoArgs[], uno_Any ** ppUnoExc )
|
||||
{
|
||||
// max space for: [complex ret ptr], values|ptr ...
|
||||
sal_uInt32 * pStack = (sal_uInt32*)__builtin_alloca( sizeof(sal_Int32) + ((nParams+2) * sizeof(sal_Int64)) );
|
||||
sal_uInt32 * pStackStart = pStack;
|
||||
|
||||
double pFPR[ppc::MAX_SSE_REGS];
|
||||
sal_uInt32 nFPR = 0;
|
||||
|
||||
// return
|
||||
typelib_TypeDescription * pReturnTypeDescr = 0;
|
||||
TYPELIB_DANGER_GET( &pReturnTypeDescr, pReturnTypeRef );
|
||||
assert(pReturnTypeDescr && "### expected return type description!");
|
||||
|
||||
void * pCppReturn = 0; // if != 0 && != pUnoReturn, needs reconversion
|
||||
|
||||
if (pReturnTypeDescr)
|
||||
{
|
||||
if (bridges::cpp_uno::shared::isSimpleType( pReturnTypeDescr ))
|
||||
{
|
||||
pCppReturn = pUnoReturn; // direct way for simple types
|
||||
}
|
||||
else
|
||||
{
|
||||
// complex return via ptr
|
||||
pCppReturn = (bridges::cpp_uno::shared::relatesToInterfaceType( pReturnTypeDescr )
|
||||
? __builtin_alloca( pReturnTypeDescr->nSize )
|
||||
: pUnoReturn); // direct way
|
||||
INSERT_INT32(&pCppReturn, pStack);
|
||||
}
|
||||
}
|
||||
// push this
|
||||
void * pAdjustedThisPtr = reinterpret_cast< void ** >(pThis->getCppI()) + aVtableSlot.offset;
|
||||
INSERT_INT32(&pAdjustedThisPtr, pStack);
|
||||
|
||||
// stack space
|
||||
static_assert( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
|
||||
// args
|
||||
void ** pCppArgs = (void **)__builtin_alloca( 3 * sizeof(void *) * nParams );
|
||||
// indices of values this have to be converted (interface conversion cpp<=>uno)
|
||||
sal_Int32 * pTempIndices = (sal_Int32 *)(pCppArgs + nParams);
|
||||
// type descriptions for reconversions
|
||||
typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pCppArgs + (2 * nParams));
|
||||
|
||||
sal_Int32 nTempIndices = 0;
|
||||
|
||||
for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
|
||||
{
|
||||
const typelib_MethodParameter & rParam = pParams[nPos];
|
||||
typelib_TypeDescription * pParamTypeDescr = 0;
|
||||
TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
|
||||
|
||||
if (!rParam.bOut
|
||||
&& bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))
|
||||
{
|
||||
uno_copyAndConvertData( pCppArgs[nPos] = pStack, pUnoArgs[nPos], pParamTypeDescr,
|
||||
pThis->getBridge()->getUno2Cpp() );
|
||||
|
||||
switch (pParamTypeDescr->eTypeClass)
|
||||
{
|
||||
case typelib_TypeClass_LONG:
|
||||
case typelib_TypeClass_UNSIGNED_LONG:
|
||||
case typelib_TypeClass_ENUM:
|
||||
INSERT_INT32(pCppArgs[nPos], pStack);
|
||||
break;
|
||||
case typelib_TypeClass_SHORT:
|
||||
case typelib_TypeClass_CHAR:
|
||||
case typelib_TypeClass_UNSIGNED_SHORT:
|
||||
INSERT_INT16(pCppArgs[nPos], pStack);
|
||||
break;
|
||||
case typelib_TypeClass_BOOLEAN:
|
||||
case typelib_TypeClass_BYTE:
|
||||
INSERT_INT8(pCppArgs[nPos], pStack);
|
||||
break;
|
||||
case typelib_TypeClass_FLOAT:
|
||||
INSERT_FLOAT(pCppArgs[nPos], nFPR, pFPR, pStack);
|
||||
break;
|
||||
case typelib_TypeClass_DOUBLE:
|
||||
INSERT_DOUBLE(pCppArgs[nPos], nFPR, pFPR, pStack);
|
||||
break;
|
||||
case typelib_TypeClass_HYPER:
|
||||
case typelib_TypeClass_UNSIGNED_HYPER:
|
||||
INSERT_INT64(pCppArgs[nPos], pStack);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
// no longer needed
|
||||
TYPELIB_DANGER_RELEASE( pParamTypeDescr );
|
||||
}
|
||||
else // ptr to complex value | ref
|
||||
{
|
||||
if (! rParam.bIn) // is pure out
|
||||
{
|
||||
// cpp out is constructed mem, uno out is not!
|
||||
uno_constructData(
|
||||
pCppArgs[nPos] = __builtin_alloca( pParamTypeDescr->nSize ),
|
||||
pParamTypeDescr );
|
||||
pTempIndices[nTempIndices] = nPos; // default constructed for cpp call
|
||||
// will be released at reconversion
|
||||
ppTempParamTypeDescr[nTempIndices++] = pParamTypeDescr;
|
||||
}
|
||||
// is in/inout
|
||||
else if (bridges::cpp_uno::shared::relatesToInterfaceType( pParamTypeDescr ))
|
||||
{
|
||||
uno_copyAndConvertData(
|
||||
pCppArgs[nPos] = __builtin_alloca( pParamTypeDescr->nSize ),
|
||||
pUnoArgs[nPos], pParamTypeDescr, pThis->getBridge()->getUno2Cpp() );
|
||||
|
||||
pTempIndices[nTempIndices] = nPos; // has to be reconverted
|
||||
// will be released at reconversion
|
||||
ppTempParamTypeDescr[nTempIndices++] = pParamTypeDescr;
|
||||
}
|
||||
else // direct way
|
||||
{
|
||||
pCppArgs[nPos] = pUnoArgs[nPos];
|
||||
// no longer needed
|
||||
TYPELIB_DANGER_RELEASE( pParamTypeDescr );
|
||||
}
|
||||
INSERT_INT32(&(pCppArgs[nPos]), pStack);
|
||||
}
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
assert( !( (pCppStack - pCppStackStart ) & 3) && "UNALIGNED STACK !!! (Please DO panic)" );
|
||||
try {
|
||||
callVirtualMethod(
|
||||
pAdjustedThisPtr, aVtableSlot.index,
|
||||
pCppReturn, pReturnTypeDescr->eTypeClass,
|
||||
pStackStart, (pStack - pStackStart), pFPR, nFPR );
|
||||
} catch (css::uno::Exception &) {
|
||||
throw;
|
||||
} catch (std::exception & e) {
|
||||
throw css::uno::RuntimeException(
|
||||
"C++ code threw " + o3tl::runtimeToOUString(typeid(e).name()) + ": "
|
||||
+ o3tl::runtimeToOUString(e.what()));
|
||||
} catch (...) {
|
||||
throw css::uno::RuntimeException("C++ code threw unknown exception");
|
||||
}
|
||||
// NO exception occurred...
|
||||
*ppUnoExc = 0;
|
||||
|
||||
// reconvert temporary params
|
||||
for ( ; nTempIndices--; )
|
||||
{
|
||||
sal_Int32 nIndex = pTempIndices[nTempIndices];
|
||||
typelib_TypeDescription * pParamTypeDescr = ppTempParamTypeDescr[nTempIndices];
|
||||
|
||||
if (pParams[nIndex].bIn)
|
||||
{
|
||||
if (pParams[nIndex].bOut) // inout
|
||||
{
|
||||
uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 ); // destroy uno value
|
||||
uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
|
||||
pThis->getBridge()->getCpp2Uno() );
|
||||
}
|
||||
}
|
||||
else // pure out
|
||||
{
|
||||
uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
|
||||
pThis->getBridge()->getCpp2Uno() );
|
||||
}
|
||||
// destroy temp cpp param => cpp: every param was constructed
|
||||
uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
|
||||
|
||||
TYPELIB_DANGER_RELEASE( pParamTypeDescr );
|
||||
}
|
||||
// return value
|
||||
if (pCppReturn && pUnoReturn != pCppReturn)
|
||||
{
|
||||
uno_copyAndConvertData( pUnoReturn, pCppReturn, pReturnTypeDescr,
|
||||
pThis->getBridge()->getCpp2Uno() );
|
||||
uno_destructData( pCppReturn, pReturnTypeDescr, cpp_release );
|
||||
}
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
// fill uno exception
|
||||
CPPU_CURRENT_NAMESPACE::fillUnoException(*ppUnoExc, pThis->getBridge()->getCpp2Uno());
|
||||
|
||||
// temporary params
|
||||
for ( ; nTempIndices--; )
|
||||
{
|
||||
sal_Int32 nIndex = pTempIndices[nTempIndices];
|
||||
// destroy temp cpp param => cpp: every param was constructed
|
||||
uno_destructData( pCppArgs[nIndex], ppTempParamTypeDescr[nTempIndices], cpp_release );
|
||||
TYPELIB_DANGER_RELEASE( ppTempParamTypeDescr[nTempIndices] );
|
||||
}
|
||||
// return type
|
||||
if (pReturnTypeDescr)
|
||||
TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
namespace bridges::cpp_uno::shared {
|
||||
|
||||
void unoInterfaceProxyDispatch(
|
||||
uno_Interface * pUnoI, const typelib_TypeDescription * pMemberDescr,
|
||||
void * pReturn, void * pArgs[], uno_Any ** ppException )
|
||||
{
|
||||
// is my surrogate
|
||||
bridges::cpp_uno::shared::UnoInterfaceProxy * pThis
|
||||
= static_cast< bridges::cpp_uno::shared::UnoInterfaceProxy * > (pUnoI);
|
||||
// typelib_InterfaceTypeDescription * pTypeDescr = pThis->pTypeDescr;
|
||||
|
||||
switch (pMemberDescr->eTypeClass)
|
||||
{
|
||||
case typelib_TypeClass_INTERFACE_ATTRIBUTE:
|
||||
{
|
||||
|
||||
VtableSlot aVtableSlot(
|
||||
getVtableSlot(
|
||||
reinterpret_cast<
|
||||
typelib_InterfaceAttributeTypeDescription const * >(
|
||||
pMemberDescr)));
|
||||
|
||||
if (pReturn)
|
||||
{
|
||||
// dependent dispatch
|
||||
cpp_call(
|
||||
pThis, aVtableSlot,
|
||||
((typelib_InterfaceAttributeTypeDescription *)pMemberDescr)->pAttributeTypeRef,
|
||||
0, 0, // no params
|
||||
pReturn, pArgs, ppException );
|
||||
}
|
||||
else
|
||||
{
|
||||
// is SET
|
||||
typelib_MethodParameter aParam;
|
||||
aParam.pTypeRef =
|
||||
((typelib_InterfaceAttributeTypeDescription *)pMemberDescr)->pAttributeTypeRef;
|
||||
aParam.bIn = sal_True;
|
||||
aParam.bOut = sal_False;
|
||||
|
||||
typelib_TypeDescriptionReference * pReturnTypeRef = 0;
|
||||
OUString aVoidName("void");
|
||||
typelib_typedescriptionreference_new(
|
||||
&pReturnTypeRef, typelib_TypeClass_VOID, aVoidName.pData );
|
||||
|
||||
// dependent dispatch
|
||||
aVtableSlot.index += 1; //get then set method
|
||||
cpp_call(
|
||||
pThis, aVtableSlot,
|
||||
pReturnTypeRef,
|
||||
1, &aParam,
|
||||
pReturn, pArgs, ppException );
|
||||
|
||||
typelib_typedescriptionreference_release( pReturnTypeRef );
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
case typelib_TypeClass_INTERFACE_METHOD:
|
||||
{
|
||||
|
||||
VtableSlot aVtableSlot(
|
||||
getVtableSlot(
|
||||
reinterpret_cast<
|
||||
typelib_InterfaceMethodTypeDescription const * >(
|
||||
pMemberDescr)));
|
||||
switch (aVtableSlot.index)
|
||||
{
|
||||
// standard calls
|
||||
case 1: // acquire uno interface
|
||||
(*pUnoI->acquire)( pUnoI );
|
||||
*ppException = 0;
|
||||
break;
|
||||
case 2: // release uno interface
|
||||
(*pUnoI->release)( pUnoI );
|
||||
*ppException = 0;
|
||||
break;
|
||||
case 0: // queryInterface() opt
|
||||
{
|
||||
typelib_TypeDescription * pTD = 0;
|
||||
TYPELIB_DANGER_GET( &pTD, reinterpret_cast< Type * >( pArgs[0] )->getTypeLibType() );
|
||||
if (pTD)
|
||||
{
|
||||
uno_Interface * pInterface = 0;
|
||||
(*pThis->pBridge->getUnoEnv()->getRegisteredInterface)(
|
||||
pThis->pBridge->getUnoEnv(),
|
||||
(void **)&pInterface, pThis->oid.pData, (typelib_InterfaceTypeDescription *)pTD );
|
||||
|
||||
if (pInterface)
|
||||
{
|
||||
::uno_any_construct(
|
||||
reinterpret_cast< uno_Any * >( pReturn ),
|
||||
&pInterface, pTD, 0 );
|
||||
(*pInterface->release)( pInterface );
|
||||
TYPELIB_DANGER_RELEASE( pTD );
|
||||
*ppException = 0;
|
||||
break;
|
||||
}
|
||||
TYPELIB_DANGER_RELEASE( pTD );
|
||||
}
|
||||
} // else perform queryInterface()
|
||||
default:
|
||||
// dependent dispatch
|
||||
cpp_call(
|
||||
pThis, aVtableSlot,
|
||||
((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->pReturnTypeRef,
|
||||
((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->nParams,
|
||||
((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->pParams,
|
||||
pReturn, pArgs, ppException );
|
||||
}
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
::com::sun::star::uno::RuntimeException aExc(
|
||||
"illegal member type description!",
|
||||
::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >() );
|
||||
|
||||
Type const & rExcType = cppu::UnoType<decltype(aExc)>::get();
|
||||
// binary identical null reference
|
||||
::uno_type_any_construct( *ppException, &aExc, rExcType.getTypeLibType(), 0 );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|
43
configure.ac
43
configure.ac
|
@ -1092,15 +1092,6 @@ freebsd*)
|
|||
_os=NetBSD
|
||||
;;
|
||||
|
||||
aix*)
|
||||
using_freetype_fontconfig=yes
|
||||
using_x11=yes
|
||||
test_randr=no
|
||||
test_gstreamer_1_0=no
|
||||
PTHREAD_LIBS=-pthread
|
||||
_os=AIX
|
||||
;;
|
||||
|
||||
openbsd*)
|
||||
using_freetype_fontconfig=yes
|
||||
using_x11=yes
|
||||
|
@ -1271,13 +1262,6 @@ if test "$_os" = "Android" ; then
|
|||
fi
|
||||
fi
|
||||
|
||||
if test "$_os" = "AIX"; then
|
||||
AC_PATH_PROG(GAWK, gawk)
|
||||
if test -z "$GAWK"; then
|
||||
AC_MSG_ERROR([gawk not found in \$PATH])
|
||||
fi
|
||||
fi
|
||||
|
||||
AC_SUBST(SDKDIRNAME)
|
||||
|
||||
AC_SUBST(PTHREAD_CFLAGS)
|
||||
|
@ -2168,7 +2152,7 @@ AC_ARG_WITH(package-format,
|
|||
AS_HELP_STRING([--with-package-format],
|
||||
[Specify package format(s) for LibreOffice installation sets. The
|
||||
implicit --without-package-format leads to no installation sets being
|
||||
generated. Possible values: aix, archive, bsd, deb, dmg,
|
||||
generated. Possible values: archive, bsd, deb, dmg,
|
||||
installed, msi, pkg, and rpm.
|
||||
Example: --with-package-format='deb rpm']),
|
||||
,)
|
||||
|
@ -4961,16 +4945,6 @@ AC_SUBST(ENABLE_OPTIMIZED_DEBUG)
|
|||
#
|
||||
case "$host_os" in
|
||||
|
||||
aix*)
|
||||
COM=GCC
|
||||
CPUNAME=POWERPC
|
||||
OS=AIX
|
||||
RTL_OS=AIX
|
||||
RTL_ARCH=PowerPC
|
||||
PLATFORMID=aix_powerpc
|
||||
P_SEP=:
|
||||
;;
|
||||
|
||||
cygwin*|wsl*)
|
||||
# Already handled
|
||||
;;
|
||||
|
@ -5489,11 +5463,10 @@ AC_MSG_CHECKING([which package format to use])
|
|||
if test -n "$with_package_format" -a "$with_package_format" != no; then
|
||||
for i in $with_package_format; do
|
||||
case "$i" in
|
||||
aix | bsd | deb | pkg | rpm | archive | dmg | installed | msi)
|
||||
bsd | deb | pkg | rpm | archive | dmg | installed | msi)
|
||||
;;
|
||||
*)
|
||||
AC_MSG_ERROR([unsupported format $i. Supported by EPM are:
|
||||
aix - AIX software distribution
|
||||
bsd - FreeBSD, NetBSD, or OpenBSD software distribution
|
||||
deb - Debian software distribution
|
||||
pkg - Solaris software distribution
|
||||
|
@ -8881,12 +8854,6 @@ AC_SUBST(JAWTLIB)
|
|||
if test -n "$ENABLE_JAVA" -a -z "$JAVAINC"; then
|
||||
case "$host_os" in
|
||||
|
||||
aix*)
|
||||
JAVAINC="-I$JAVA_HOME/include"
|
||||
JAVAINC="$JAVAINC -I$JAVA_HOME/include/aix"
|
||||
test -d "$JAVA_HOME/include/native_thread" && JAVAINC="$JAVAINC -I$JAVA_HOME/include/native_thread"
|
||||
;;
|
||||
|
||||
cygwin*|wsl*)
|
||||
JAVAINC="-I$JAVA_HOME/include/win32"
|
||||
JAVAINC="$JAVAINC -I$JAVA_HOME/include"
|
||||
|
@ -9196,7 +9163,7 @@ if test "$enable_epm" = "yes"; then
|
|||
else
|
||||
for i in $PKGFORMAT; do
|
||||
case "$i" in
|
||||
aix | bsd | deb | pkg | rpm | native | portable)
|
||||
bsd | deb | pkg | rpm | native | portable)
|
||||
AC_MSG_ERROR(
|
||||
[--with-package-format='$PKGFORMAT' requires --enable-epm])
|
||||
;;
|
||||
|
@ -11561,7 +11528,7 @@ elif $GNUCP --version 2>/dev/null | grep "GNU fileutils" >/dev/null 2>/dev/null;
|
|||
AC_MSG_RESULT([yes])
|
||||
else
|
||||
case "$build_os" in
|
||||
darwin*|netbsd*|openbsd*|freebsd*|dragonfly*|aix*)
|
||||
darwin*|netbsd*|openbsd*|freebsd*|dragonfly*)
|
||||
x_GNUCP=[\#]
|
||||
GNUCP=''
|
||||
AC_MSG_RESULT([no gnucp found - using the system's cp command])
|
||||
|
@ -14654,7 +14621,7 @@ else
|
|||
|
||||
case "$host_os" in
|
||||
|
||||
aix*|dragonfly*|freebsd*|linux-gnu*|*netbsd*|openbsd*)
|
||||
dragonfly*|freebsd*|linux-gnu*|*netbsd*|openbsd*)
|
||||
if test "$ENABLE_JAVA" != ""; then
|
||||
pathmunge "$JAVA_HOME/bin" "after"
|
||||
fi
|
||||
|
|
|
@ -59,14 +59,7 @@ namespace {
|
|||
struct AlignSize_Impl
|
||||
{
|
||||
sal_Int16 nInt16;
|
||||
#ifdef AIX
|
||||
//double: doubleword aligned if -qalign=natural/-malign=natural
|
||||
//which isn't the default ABI. Otherwise word aligned, While a long long int
|
||||
//is always doubleword aligned, so use that instead.
|
||||
sal_Int64 dDouble;
|
||||
#else
|
||||
double dDouble;
|
||||
#endif
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
@ -55,14 +55,7 @@ namespace {
|
|||
struct AlignSize_Impl
|
||||
{
|
||||
sal_Int16 nInt16;
|
||||
#ifdef AIX
|
||||
//double: doubleword aligned if -qalign=natural/-malign=natural
|
||||
//which isn't the default ABI. Otherwise word aligned, While a long long int
|
||||
//is always doubleword aligned, so use that instead.
|
||||
sal_Int64 dDouble;
|
||||
#else
|
||||
double dDouble;
|
||||
#endif
|
||||
};
|
||||
|
||||
}
|
||||
|
@ -1724,13 +1717,7 @@ extern "C" sal_Int32 typelib_typedescription_getAlignedUnoSize(
|
|||
nSize = rMaxIntegralTypeSize = sal_Int32(sizeof( float ));
|
||||
break;
|
||||
case typelib_TypeClass_DOUBLE:
|
||||
#ifdef AIX
|
||||
//See previous AIX ifdef comment for an explanation
|
||||
nSize = (sal_Int32)(sizeof(double));
|
||||
rMaxIntegralTypeSize = (sal_Int32)(sizeof(void*));
|
||||
#else
|
||||
nSize = rMaxIntegralTypeSize = sal_Int32(sizeof( double ));
|
||||
#endif
|
||||
break;
|
||||
case typelib_TypeClass_BYTE:
|
||||
nSize = rMaxIntegralTypeSize = sal_Int32(sizeof( sal_Int8 ));
|
||||
|
|
|
@ -30,17 +30,8 @@ epath=$(dirname "$0")
|
|||
if [ -x "${epath}/javaldx" ] ; then
|
||||
jpath=$("${epath}/javaldx" $my_envargs)
|
||||
if [ -n "${jpath}" ]; then
|
||||
sd_platform=$(uname -s)
|
||||
case $sd_platform in
|
||||
AIX)
|
||||
LIBPATH=${jpath}${LIBPATH:+:${LIBPATH}}
|
||||
export LIBPATH
|
||||
;;
|
||||
*)
|
||||
LD_LIBRARY_PATH=${jpath}${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
|
||||
export LD_LIBRARY_PATH
|
||||
;;
|
||||
esac
|
||||
LD_LIBRARY_PATH=${jpath}${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
|
||||
export LD_LIBRARY_PATH
|
||||
fi
|
||||
fi
|
||||
|
||||
|
|
|
@ -163,10 +163,6 @@ NetBSD|DragonFly)
|
|||
LD_LIBRARY_PATH="$sd_prog${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
|
||||
export LD_LIBRARY_PATH
|
||||
;;
|
||||
AIX)
|
||||
LIBPATH="$sd_prog${LIBPATH:+:$LIBPATH}"
|
||||
export LIBPATH
|
||||
;;
|
||||
esac
|
||||
|
||||
# restore locale setting, avoiding to export empty LC_ALL, s. tdf#130080
|
||||
|
|
|
@ -49,10 +49,6 @@ NetBSD|FreeBSD|DragonFly)
|
|||
LD_LIBRARY_PATH="$sd_prog${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}"
|
||||
export LD_LIBRARY_PATH
|
||||
;;
|
||||
AIX)
|
||||
LIBPATH="$sd_prog${LIBPATH:+:${LIBPATH}}"
|
||||
export LIBPATH
|
||||
;;
|
||||
esac
|
||||
|
||||
for arg in "$@"
|
||||
|
@ -72,17 +68,8 @@ if [ -x "${sd_prog}/javaldx" ] ; then
|
|||
my_path=$("${sd_prog}/javaldx" "$BOOTSTRAPVARS" \
|
||||
"-env:INIFILENAME=vnd.sun.star.pathname:$sd_prog/redirectrc")
|
||||
if [ -n "$my_path" ] ; then
|
||||
sd_platform=$(uname -s)
|
||||
case "$sd_platform" in
|
||||
AIX)
|
||||
LIBPATH="$my_path${LIBPATH:+:$LIBPATH}"
|
||||
export LIBPATH
|
||||
;;
|
||||
*)
|
||||
LD_LIBRARY_PATH="$my_path${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
|
||||
export LD_LIBRARY_PATH
|
||||
;;
|
||||
esac
|
||||
LD_LIBRARY_PATH="$my_path${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
|
||||
export LD_LIBRARY_PATH
|
||||
fi
|
||||
fi
|
||||
|
||||
|
|
|
@ -81,8 +81,6 @@ namespace
|
|||
ret = checkOSandCPU(u"Solaris", u"SPARC64");
|
||||
else if (token == u"solaris_x86")
|
||||
ret = checkOSandCPU(u"Solaris", u"x86");
|
||||
else if (token == u"aix_powerpc")
|
||||
ret = checkOSandCPU(u"AIX", u"PowerPC");
|
||||
else if (token == u"macosx_aarch64")
|
||||
ret = checkOSandCPU(u"MacOSX", u"AARCH64");
|
||||
else if (token == u"macosx_x86_64")
|
||||
|
|
|
@ -584,14 +584,8 @@ static void exec_pagein (Args *args)
|
|||
static void extend_library_path(const char *new_element)
|
||||
{
|
||||
rtl_uString *pEnvName=NULL, *pOrigEnvVar=NULL, *pNewEnvVar=NULL;
|
||||
const char *pathname;
|
||||
#ifdef AIX
|
||||
pathname = "LIBPATH";
|
||||
#else
|
||||
pathname = "LD_LIBRARY_PATH";
|
||||
#endif
|
||||
|
||||
rtl_uString_newFromAscii(&pEnvName, pathname);
|
||||
rtl_uString_newFromAscii(&pEnvName, "LD_LIBRARY_PATH");
|
||||
rtl_uString_newFromAscii(&pNewEnvVar, new_element);
|
||||
|
||||
osl_getEnvironment(pEnvName, &pOrigEnvVar);
|
||||
|
|
1
external/clucene/UnpackedTarball_clucene.mk
vendored
1
external/clucene/UnpackedTarball_clucene.mk
vendored
|
@ -42,7 +42,6 @@ $(eval $(call gb_UnpackedTarball_add_patches,clucene,\
|
|||
external/clucene/patches/clucene-narrowing-conversions.patch \
|
||||
external/clucene/patches/clucene-nullptr.patch \
|
||||
external/clucene/patches/clucene-warnings.patch \
|
||||
external/clucene/patches/clucene-aix.patch \
|
||||
external/clucene/patches/clucene-git1-win64.patch \
|
||||
external/clucene/patches/clucene-ub.patch \
|
||||
external/clucene/patches/clucene-mutex.patch \
|
||||
|
|
40
external/clucene/patches/clucene-aix.patch
vendored
40
external/clucene/patches/clucene-aix.patch
vendored
|
@ -1,40 +0,0 @@
|
|||
diff -rc clucene.orig/src/core/CLucene/store/MMapInput.cpp clucene/src/core/CLucene/store/MMapInput.cpp
|
||||
*** src/core/CLucene/store/MMapInput.cpp Wed Apr 10 10:57:37 2013
|
||||
--- src/core/CLucene/store/MMapInput.cpp Wed Apr 10 10:58:30 2013
|
||||
***************
|
||||
*** 115,121 ****
|
||||
{
|
||||
}
|
||||
|
||||
! bool MMapIndexInput::open(const char* path, IndexInput*& ret, CLuceneError& error, int32_t __bufferSize ) {
|
||||
|
||||
//Func - Constructor.
|
||||
// Opens the file named path
|
||||
--- 115,121 ----
|
||||
{
|
||||
}
|
||||
|
||||
! bool MMapIndexInput::Open(const char* path, IndexInput*& ret, CLuceneError& error, int32_t __bufferSize ) {
|
||||
|
||||
//Func - Constructor.
|
||||
// Opens the file named path
|
||||
diff -rc clucene.orig/src/core/CLucene/store/_MMapIndexInput.h clucene/src/core/CLucene/store/_MMapIndexInput.h
|
||||
*** src/core/CLucene/store/_MMapIndexInput.h Wed Apr 10 10:57:37 2013
|
||||
--- src/core/CLucene/store/_MMapIndexInput.h Wed Apr 10 10:58:53 2013
|
||||
***************
|
||||
*** 18,24 ****
|
||||
MMapIndexInput(const MMapIndexInput& clone);
|
||||
MMapIndexInput(Internal* _internal);
|
||||
public:
|
||||
! static bool open(const char* path, IndexInput*& ret, CLuceneError& error, int32_t __bufferSize);
|
||||
|
||||
~MMapIndexInput();
|
||||
IndexInput* clone() const;
|
||||
--- 18,24 ----
|
||||
MMapIndexInput(const MMapIndexInput& clone);
|
||||
MMapIndexInput(Internal* _internal);
|
||||
public:
|
||||
! static bool Open(const char* path, IndexInput*& ret, CLuceneError& error, int32_t __bufferSize);
|
||||
|
||||
~MMapIndexInput();
|
||||
IndexInput* clone() const;
|
2
external/curl/ExternalPackage_curl.mk
vendored
2
external/curl/ExternalPackage_curl.mk
vendored
|
@ -17,8 +17,6 @@ ifeq ($(COM),MSC)
|
|||
$(eval $(call gb_ExternalPackage_add_file,curl,$(LIBO_LIB_FOLDER)/libcurl$(if $(MSVC_USE_DEBUG_RUNTIME),_debug).dll,builds/libcurl-vc12-$(gb_MSBUILD_PLATFORM)-$(gb_MSBUILD_CONFIG)-dll-zlib-static-ipv6-sspi-schannel/bin/libcurl$(if $(MSVC_USE_DEBUG_RUNTIME),_debug).dll))
|
||||
else ifeq ($(OS),MACOSX)
|
||||
$(eval $(call gb_ExternalPackage_add_file,curl,$(LIBO_LIB_FOLDER)/libcurl.4.dylib,lib/.libs/libcurl.4.dylib))
|
||||
else ifeq ($(OS),AIX)
|
||||
$(eval $(call gb_ExternalPackage_add_file,curl,$(LIBO_LIB_FOLDER)/libcurl.so,lib/.libs/libcurl.so.4))
|
||||
else
|
||||
$(eval $(call gb_ExternalPackage_add_file,curl,$(LIBO_LIB_FOLDER)/libcurl.so.4,lib/.libs/libcurl.so.4.8.0))
|
||||
endif
|
||||
|
|
|
@ -28,7 +28,6 @@ $(call gb_ExternalProject_get_state_target,hunspell,build):
|
|||
$(call gb_ExternalProject_run,build,\
|
||||
$(gb_RUN_CONFIGURE) ./configure --disable-shared --disable-nls --with-pic \
|
||||
$(gb_CONFIGURE_PLATFORMS) \
|
||||
$(if $(filter AIX,$(OS)),CFLAGS="-D_LINUX_SOURCE_COMPAT") \
|
||||
$(if $(hunspell_CPPFLAGS),CPPFLAGS='$(hunspell_CPPFLAGS)') \
|
||||
$(if $(hunspell_CXXFLAGS),CXXFLAGS='$(hunspell_CXXFLAGS)') \
|
||||
$(if $(hunspell_LDFLAGS),LDFLAGS='$(hunspell_LDFLAGS)') \
|
||||
|
|
2
external/icu/ExternalProject_icu.mk
vendored
2
external/icu/ExternalProject_icu.mk
vendored
|
@ -74,7 +74,7 @@ $(call gb_ExternalProject_get_state_target,icu,build) :
|
|||
--disable-layout --disable-samples \
|
||||
$(if $(filter FUZZERS,$(BUILD_TYPE)),--disable-release) \
|
||||
$(if $(filter EMSCRIPTEN ANDROID,$(OS)),--disable-strict ac_cv_c_bigendian=no) \
|
||||
$(if $(filter SOLARIS AIX,$(OS)),--disable-64bit-libs) \
|
||||
$(if $(filter SOLARIS,$(OS)),--disable-64bit-libs) \
|
||||
$(if $(filter TRUE,$(DISABLE_DYNLOADING)),\
|
||||
--with-data-packaging=static --enable-static --disable-shared --disable-dyload,\
|
||||
--disable-static --enable-shared $(if $(filter ANDROID,$(OS)),--with-library-suffix=lo)) \
|
||||
|
|
1
external/icu/UnpackedTarball_icu.mk
vendored
1
external/icu/UnpackedTarball_icu.mk
vendored
|
@ -23,7 +23,6 @@ $(eval $(call gb_UnpackedTarball_set_patchlevel,icu,0))
|
|||
|
||||
$(eval $(call gb_UnpackedTarball_add_patches,icu,\
|
||||
external/icu/icu4c-build.patch.1 \
|
||||
external/icu/icu4c-aix.patch.1 \
|
||||
external/icu/icu4c-warnings.patch.1 \
|
||||
external/icu/icu4c-macosx.patch.1 \
|
||||
external/icu/icu4c-solarisgcc.patch.1 \
|
||||
|
|
143
external/icu/icu4c-aix.patch.1
vendored
143
external/icu/icu4c-aix.patch.1
vendored
|
@ -1,143 +0,0 @@
|
|||
diff -ur icu.org/source/config/mh-aix-gcc icu/source/config/mh-aix-gcc
|
||||
--- icu.org/source/config/mh-aix-gcc 2021-10-28 18:04:57.000000000 +0200
|
||||
+++ icu/source/config/mh-aix-gcc 2021-11-15 18:35:48.737774348 +0100
|
||||
@@ -18,84 +18,29 @@
|
||||
GEN_DEPS.c= $(CC) -E -MM $(DEFS) $(CPPFLAGS)
|
||||
GEN_DEPS.cc= $(CXX) -E -MM $(DEFS) $(CPPFLAGS)
|
||||
|
||||
-## Commands to link
|
||||
-## We need to use the C++ linker, even when linking C programs, since
|
||||
-## our libraries contain C++ code (C++ static init not called)
|
||||
-LINK.c= $(AIX_PREDELETE) $(CXX) $(CXXFLAGS) $(LDFLAGS)
|
||||
-LINK.cc= $(AIX_PREDELETE) $(CXX) $(CXXFLAGS) $(LDFLAGS)
|
||||
-
|
||||
-## Shared library options
|
||||
-LD_SOOPTIONS= -Wl,-bsymbolic
|
||||
-
|
||||
-## Commands to make a shared library
|
||||
-SHLIB.c= $(AIX_PREDELETE) $(CC) $(CFLAGS) $(LDFLAGS) -shared $(LD_SOOPTIONS)
|
||||
-SHLIB.cc= $(AIX_PREDELETE) $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(LD_SOOPTIONS)
|
||||
-
|
||||
-## Compiler switch to embed a runtime search path
|
||||
-LD_RPATH= -I
|
||||
-LD_RPATH_PRE=
|
||||
+## Flags for position independent code
|
||||
+SHAREDLIBCFLAGS = -fPIC
|
||||
+SHAREDLIBCXXFLAGS = -fPIC
|
||||
+SHAREDLIBCPPFLAGS = -DPIC
|
||||
+
|
||||
+## Additional flags when building libraries and with threads
|
||||
+THREADSCPPFLAGS = -D_REENTRANT -D_THREAD_SAFE
|
||||
+LIBCPPFLAGS =
|
||||
|
||||
-## enable the shared lib loader
|
||||
-LDFLAGS += -Wl,-bbigtoc
|
||||
+LD_RPATH=
|
||||
+LD_RPATH_PRE=
|
||||
|
||||
## These are the library specific LDFLAGS
|
||||
LDFLAGSICUDT=-nodefaultlibs -nostdlib
|
||||
|
||||
-## We need to delete things prior to linking, or else we'll get
|
||||
-## SEVERE ERROR: output file in use .. on AIX.
|
||||
-## But, shell script version should NOT delete target as we don't
|
||||
-## have $@ in that context. (SH = only shell script, icu-config)
|
||||
-AIX_PREDELETE=rm -f $@ ;
|
||||
-#SH# AIX_PREDELETE=
|
||||
-
|
||||
## Environment variable to set a runtime search path
|
||||
LDLIBRARYPATH_ENVVAR = LIBPATH
|
||||
|
||||
-## Override Versioned target for a shared library.
|
||||
-FINAL_SO_TARGET= $(basename $(SO_TARGET))$(SO_TARGET_VERSION).$(SO)
|
||||
-MIDDLE_SO_TARGET= $(basename $(SO_TARGET))$(SO_TARGET_VERSION_MAJOR).$(SO)
|
||||
-SHARED_OBJECT = $(notdir $(FINAL_SO_TARGET:.$(SO)=.$(SOBJ)))
|
||||
-SHARED_OBJECT_NO_VERSION = $(basename $(SO_TARGET)).$(SOBJ)
|
||||
-
|
||||
-# The following is for Makefile.inc's use.
|
||||
-ICULIBSUFFIX_VERSION = $(LIB_VERSION_MAJOR)
|
||||
-
|
||||
-# this one is for icudefs.mk's use
|
||||
-ifeq ($(ENABLE_SHARED),YES)
|
||||
-SO_TARGET_VERSION_SUFFIX = $(SO_TARGET_VERSION_MAJOR)
|
||||
-endif
|
||||
-
|
||||
-## Compiler switch to embed a library name. Not present on AIX.
|
||||
-LD_SONAME =
|
||||
-
|
||||
-## The type of assembly needed when pkgdata is used for generating shared libraries.
|
||||
-GENCCODE_ASSEMBLY=-a xlc
|
||||
-
|
||||
## Shared object suffix
|
||||
-SOBJ= so
|
||||
-# without the -brtl option, the library names use .a. AIX is funny that way.
|
||||
-SO= a
|
||||
-A= a
|
||||
+SO= so
|
||||
|
||||
## Non-shared intermediate object suffix
|
||||
-STATIC_O = o
|
||||
-
|
||||
-## Special AIX rules
|
||||
-
|
||||
-## Build archive from shared object
|
||||
-%.a : %.so
|
||||
- ln -f $< $(SHARED_OBJECT_NO_VERSION)
|
||||
- $(AR) $(ARFLAGS) $@ $(SHARED_OBJECT_NO_VERSION)
|
||||
- rm -f $(SHARED_OBJECT_NO_VERSION)
|
||||
-$(LIBDIR)/%.a : %.so
|
||||
- ln -f $< $(SHARED_OBJECT_NO_VERSION)
|
||||
- $(AR) $(ARFLAGS) $@ $(SHARED_OBJECT_NO_VERSION)
|
||||
- rm -f $(SHARED_OBJECT_NO_VERSION)
|
||||
-
|
||||
-## Build import list from export list
|
||||
-%.e : %.exp
|
||||
- @echo "Building an import list for $<"
|
||||
- @$(SHELL) -ec "echo '#! $*.a($*.so)' | cat - $< > $@"
|
||||
+STATIC_O = ao
|
||||
|
||||
## Compilation rules
|
||||
%.$(STATIC_O): $(srcdir)/%.c
|
||||
@@ -123,10 +68,10 @@
|
||||
[ -s $@ ] || rm -f $@'
|
||||
|
||||
## Versioned libraries rules
|
||||
-%$(SO_TARGET_VERSION_MAJOR).$(SO): %$(SO_TARGET_VERSION).$(SO)
|
||||
- $(RM) $@ && ln -s ${*F}$(SO_TARGET_VERSION).$(SO) $@
|
||||
-%.$(SO): %$(SO_TARGET_VERSION).$(SO)
|
||||
- $(RM) $@ && ln -s ${*F}$(SO_TARGET_VERSION).$(SO) $@
|
||||
+%.$(SO).$(SO_TARGET_VERSION_MAJOR): %.$(SO).$(SO_TARGET_VERSION)
|
||||
+ $(RM) $@ && ln -s ${<F} $@
|
||||
+%.$(SO): %.$(SO).$(SO_TARGET_VERSION_MAJOR)
|
||||
+ $(RM) $@ && ln -s ${*F}.$(SO).$(SO_TARGET_VERSION) $@
|
||||
|
||||
|
||||
## BIR - bind with internal references [so app data and icu data doesn't collide]
|
||||
diff -ur icu.org/source/tools/pkgdata/pkgdata.cpp icu/source/tools/pkgdata/pkgdata.cpp
|
||||
--- icu.org/source/tools/pkgdata/pkgdata.cpp 2021-10-28 18:04:57.000000000 +0200
|
||||
+++ icu/source/tools/pkgdata/pkgdata.cpp 2021-11-15 18:28:38.342143852 +0100
|
||||
@@ -959,7 +959,7 @@
|
||||
|
||||
uprv_strcat(pkgDataFlags[SO_EXT], ".");
|
||||
uprv_strcat(pkgDataFlags[SO_EXT], pkgDataFlags[A_EXT]);
|
||||
-#elif U_PLATFORM == U_PF_OS400 || defined(_AIX)
|
||||
+#elif U_PLATFORM == U_PF_OS400
|
||||
sprintf(libFileNames[LIB_FILE_VERSION_TMP], "%s%s%s",
|
||||
libFileNames[LIB_FILE],
|
||||
FILE_EXTENSION_SEP,
|
||||
@@ -1439,15 +1439,6 @@
|
||||
pkgDataFlags[LDICUDTFLAGS],
|
||||
targetDir,
|
||||
libFileNames[LIB_FILE_CYGWIN_VERSION],
|
||||
-#elif U_PLATFORM == U_PF_AIX
|
||||
- sprintf(cmd, "%s %s%s;%s %s -o %s%s %s %s%s %s %s",
|
||||
- RM_CMD,
|
||||
- targetDir,
|
||||
- libFileNames[LIB_FILE_VERSION_TMP],
|
||||
- pkgDataFlags[GENLIB],
|
||||
- pkgDataFlags[LDICUDTFLAGS],
|
||||
- targetDir,
|
||||
- libFileNames[LIB_FILE_VERSION_TMP],
|
||||
#else
|
||||
sprintf(cmd, "%s %s -o %s%s %s %s%s %s %s",
|
||||
pkgDataFlags[GENLIB],
|
|
@ -21,8 +21,7 @@ $(call gb_ExternalProject_get_state_target,libexttextcat,build):
|
|||
$(if $(ENABLE_WERROR),--enable-werror,--disable-werror) \
|
||||
$(gb_CONFIGURE_PLATFORMS) \
|
||||
CFLAGS="$(CFLAGS) $(gb_VISIBILITY_FLAGS) $(gb_DEBUGINFO_FLAGS) $(call gb_ExternalProject_get_build_flags,libexttextcat) \
|
||||
$(if $(COM_IS_CLANG),-Qunused-arguments) \
|
||||
$(if $(filter AIX,$(OS)),-D_LINUX_SOURCE_COMPAT)" \
|
||||
$(if $(COM_IS_CLANG),-Qunused-arguments)" \
|
||||
LDFLAGS="$(call gb_ExternalProject_get_link_flags,libexttextcat)" \
|
||||
&& $(MAKE) \
|
||||
)
|
||||
|
|
|
@ -28,7 +28,6 @@ $(call gb_ExternalProject_get_state_target,libnumbertext,build):
|
|||
$(if $(verbose),--disable-silent-rules,--enable-silent-rules) \
|
||||
$(if $(ENABLE_WERROR),--enable-werror,--disable-werror) \
|
||||
$(gb_CONFIGURE_PLATFORMS) \
|
||||
$(if $(filter AIX,$(OS)),CFLAGS="-D_LINUX_SOURCE_COMPAT") \
|
||||
$(if $(libnumbertext_CPPFLAGS),CPPFLAGS='$(libnumbertext_CPPFLAGS)') \
|
||||
CXXFLAGS="$(libnumbertext_CXXFLAGS) \
|
||||
$(call gb_ExternalProject_get_build_flags,libnumbertext) \
|
||||
|
|
3
external/lpsolve/ExternalProject_lpsolve.mk
vendored
3
external/lpsolve/ExternalProject_lpsolve.mk
vendored
|
@ -29,8 +29,7 @@ $(call gb_ExternalProject_get_state_target,lpsolve,build):
|
|||
$(if $(filter MACOSX,$(OS)),EXTRA_LINKFLAGS='-install_name @__________________________________________________OOO/liblpsolve55.dylib') \
|
||||
sh -e $(if $(filter MACOSX,$(OS)),ccc.osx, \
|
||||
$(if $(filter TRUE,$(DISABLE_DYNLOADING)),ccc.static, \
|
||||
$(if $(filter AIXGCC,$(OS)$(COM)),ccc.aix.gcc, \
|
||||
ccc))) \
|
||||
ccc)) \
|
||||
,lpsolve55)
|
||||
$(call gb_Trace_EndRange,lpsolve,EXTERNAL)
|
||||
endif # $(OS)
|
||||
|
|
1
external/lpsolve/UnpackedTarball_lpsolve.mk
vendored
1
external/lpsolve/UnpackedTarball_lpsolve.mk
vendored
|
@ -23,7 +23,6 @@ $(eval $(call gb_UnpackedTarball_add_patches,lpsolve,\
|
|||
else
|
||||
|
||||
$(eval $(call gb_UnpackedTarball_add_patches,lpsolve,\
|
||||
external/lpsolve/lp_solve-aix.patch \
|
||||
external/lpsolve/lp_solve-fixed-warn.patch \
|
||||
external/lpsolve/lp_solve_5.5.patch \
|
||||
external/lpsolve/lpsolve-ubsan.patch.0 \
|
||||
|
|
39
external/lpsolve/lp_solve-aix.patch
vendored
39
external/lpsolve/lp_solve-aix.patch
vendored
|
@ -1,39 +0,0 @@
|
|||
--- /dev/null 2010-07-28 04:47:47.000000000 -0500
|
||||
+++ misc/build/lp_solve_5.5/lpsolve55/ccc.aix.gcc 2010-06-29 17:44:53.000000000 -0500
|
||||
@@ -0,0 +1,25 @@
|
||||
+src='../lp_MDO.c ../shared/commonlib.c ../shared/mmio.c ../shared/myblas.c ../ini.c ../fortify.c ../colamd/colamd.c ../lp_rlp.c ../lp_crash.c ../bfp/bfp_LUSOL/lp_LUSOL.c ../bfp/bfp_LUSOL/LUSOL/lusol.c ../lp_Hash.c ../lp_lib.c ../lp_wlp.c ../lp_matrix.c ../lp_mipbb.c ../lp_MPS.c ../lp_params.c ../lp_presolve.c ../lp_price.c ../lp_pricePSE.c ../lp_report.c ../lp_scale.c ../lp_simplex.c ../lp_SOS.c ../lp_utils.c ../yacc_read.c'
|
||||
+c=$CC
|
||||
+
|
||||
+def=
|
||||
+so=
|
||||
+if [ "$PLATFORM" = "SCO_UNIX" ]
|
||||
+then def='-dy -K PIC -DNOLONGLONG'
|
||||
+ dl=-lc
|
||||
+else dl=-ldl
|
||||
+ so=y
|
||||
+fi
|
||||
+
|
||||
+opts='-O3'
|
||||
+
|
||||
+$c -s -c -I.. -I../shared -I../bfp -I../bfp/bfp_LUSOL -I../bfp/bfp_LUSOL/LUSOL -I../colamd $opts $def -DYY_NEVER_INTERACTIVE -DPARSER_LP -DINVERSE_ACTIVE=INVERSE_LUSOL -DRoleIsExternalInvEngine $src
|
||||
+ar rv liblpsolve55.a `echo $src|sed s/[.]c/.o/g|sed 's/[^ ]*\///g'`
|
||||
+ranlib liblpsolve55.a
|
||||
+
|
||||
+if [ "$so" != "" ]
|
||||
+then
|
||||
+ $c -fpic -s -c -I.. -I../shared -I../bfp -I../bfp/bfp_LUSOL -I../bfp/bfp_LUSOL/LUSOL -I../colamd -I. $opts -DYY_NEVER_INTERACTIVE -DPARSER_LP -DINVERSE_ACTIVE=INVERSE_LUSOL -DRoleIsExternalInvEngine $src
|
||||
+ $c -shared $lpsolve_LDFLAGS -o liblpsolve55.so `echo $src|sed s/[.]c/.o/g|sed 's/[^ ]*\///g'` -lc -lm -ldl
|
||||
+fi
|
||||
+
|
||||
+rm *.o 2>/dev/null
|
||||
--- misc/lp_solve_5.5/lp_lib.h 2010-07-28 05:15:10.000000000 -0500
|
||||
+++ misc/build/lp_solve_5.5/lp_lib.h 2010-07-28 05:15:55.000000000 -0500
|
||||
@@ -56,7 +56,7 @@
|
||||
/* Define user program feature option switches */
|
||||
/* ------------------------------------------------------------------------- */
|
||||
|
||||
-#if !defined _WINDOWS && !defined _WIN32 && !defined WIN32
|
||||
+#if !defined _WINDOWS && !defined _WIN32 && !defined WIN32 && !defined(_AIX)
|
||||
# define _isnan(x) FALSE
|
||||
#endif
|
||||
|
1
external/nss/UnpackedTarball_nss.mk
vendored
1
external/nss/UnpackedTarball_nss.mk
vendored
|
@ -15,7 +15,6 @@ $(eval $(call gb_UnpackedTarball_update_autoconf_configs,nss,nspr/build/autoconf
|
|||
|
||||
$(eval $(call gb_UnpackedTarball_add_patches,nss,\
|
||||
external/nss/nss.patch \
|
||||
external/nss/nss.aix.patch \
|
||||
external/nss/nss_macosx.patch \
|
||||
external/nss/nss-win32-make.patch.1 \
|
||||
external/nss/ubsan.patch.0 \
|
||||
|
|
140
external/nss/nss.aix.patch
vendored
140
external/nss/nss.aix.patch
vendored
|
@ -1,140 +0,0 @@
|
|||
diff -ru a/nspr/configure b/nspr/configure
|
||||
--- a/a/nspr/configure 2014-09-29 16:47:42.984012225 +0100
|
||||
+++ b/b/nspr/configure 2014-09-29 16:50:33.907375937 +0100
|
||||
@@ -6325,7 +6325,6 @@
|
||||
AIX_LINK_OPTS='-brtl -bnso -berok'
|
||||
;;
|
||||
esac
|
||||
- CFLAGS="$CFLAGS -qro -qroconst"
|
||||
AIX_WRAP='$(DIST)/lib/aixwrap.o'
|
||||
AIX_TMP='./_aix_tmp.o'
|
||||
if test -n "$USE_64"; then
|
||||
diff -ru a/nspr/configure.in b/nspr/configure.in
|
||||
--- a/a/nspr/configure.in 2014-09-29 16:46:35.257394860 +0100
|
||||
+++ b/b/nspr/configure.in 2014-09-29 16:50:33.908375942 +0100
|
||||
@@ -1180,7 +1180,8 @@
|
||||
AC_DEFINE(XP_UNIX)
|
||||
AC_DEFINE(AIX)
|
||||
AC_DEFINE(SYSV)
|
||||
- DSO_LDOPTS='-brtl -bnortllib -bM:SRE -bnoentry -bexpall -blibpath:/usr/lib:/lib'
|
||||
+ DSO_LDOPTS='-Wl,-brtl -Wl,-bnortllib -Wl,-blibpath:/usr/lib:/lib'
|
||||
+ MKSHLIB='$(CCC) -shared $(DSO_LDOPTS) -o $@'
|
||||
AC_CHECK_HEADER(sys/atomic_op.h, AC_DEFINE(AIX_HAVE_ATOMIC_OP_H))
|
||||
case "${target_os}" in
|
||||
aix3.2*)
|
||||
@@ -1220,10 +1221,9 @@
|
||||
AC_DEFINE(HAVE_SOCKLEN_T)
|
||||
AC_DEFINE(HAVE_FCNTL_FILE_LOCKING)
|
||||
USE_IPV6=1
|
||||
- AIX_LINK_OPTS='-brtl -bnso -berok'
|
||||
+ AIX_LINK_OPTS='-Wl,-brtl -Wl,-bnso -Wl,-berok'
|
||||
;;
|
||||
esac
|
||||
- CFLAGS="$CFLAGS -qro -qroconst"
|
||||
AIX_WRAP='$(DIST)/lib/aixwrap.o'
|
||||
AIX_TMP='./_aix_tmp.o'
|
||||
if test -n "$USE_64"; then
|
||||
diff -ru a/nspr/pr/src/Makefile.in b/nspr/pr/src/Makefile.in
|
||||
--- a/a/nspr/pr/src/Makefile.in 2014-09-29 16:46:35.281395079 +0100
|
||||
+++ b/b/nspr/pr/src/Makefile.in 2014-09-29 16:50:33.909375948 +0100
|
||||
@@ -74,7 +74,6 @@
|
||||
endif # SunOS
|
||||
|
||||
ifeq ($(OS_ARCH),AIX)
|
||||
-DSO_LDOPTS += -binitfini::_PR_Fini
|
||||
OS_LIBS = -lodm -lcfg
|
||||
ifeq ($(CLASSIC_NSPR),1)
|
||||
ifeq ($(OS_RELEASE),4.1)
|
||||
diff -ru a/nss/cmd/platlibs.mk b/nss/cmd/platlibs.mk
|
||||
--- a/a/nss/cmd/platlibs.mk 2014-09-29 16:47:42.987012253 +0100
|
||||
+++ b/b/nss/cmd/platlibs.mk 2014-09-29 16:50:33.910375955 +0100
|
||||
@@ -171,7 +171,7 @@
|
||||
$(NULL)
|
||||
|
||||
ifeq ($(OS_ARCH), AIX)
|
||||
-EXTRA_SHARED_LIBS += -brtl
|
||||
+EXTRA_SHARED_LIBS += -Wl,-brtl
|
||||
endif
|
||||
|
||||
# $(PROGRAM) has NO explicit dependencies on $(EXTRA_SHARED_LIBS)
|
||||
@@ -217,7 +217,7 @@
|
||||
$(NULL)
|
||||
|
||||
ifeq ($(OS_ARCH), AIX)
|
||||
-EXTRA_SHARED_LIBS += -brtl
|
||||
+EXTRA_SHARED_LIBS += -Wl,-brtl
|
||||
endif
|
||||
|
||||
# $(PROGRAM) has NO explicit dependencies on $(EXTRA_SHARED_LIBS)
|
||||
diff -ru a/nss/cmd/shlibsign/Makefile b/nss/cmd/shlibsign/Makefile
|
||||
--- a/a/nss/cmd/shlibsign/Makefile 2014-09-29 16:46:35.139393785 +0100
|
||||
+++ b/b/nss/cmd/shlibsign/Makefile 2014-09-29 16:50:33.910375955 +0100
|
||||
@@ -43,6 +43,9 @@
|
||||
|
||||
endif
|
||||
|
||||
+ifeq ($(OS), AIX)
|
||||
+EXTRA_SHARED_LIBS += -lpthreads
|
||||
+endif
|
||||
|
||||
# sign any and all shared libraries that contain the word freebl
|
||||
ifeq ($(NSS_BUILD_WITHOUT_SOFTOKEN),1)
|
||||
diff -ru a/nss/cmd/shlibsign/mangle/Makefile b/nss/cmd/shlibsign/mangle/Makefile
|
||||
--- a/a/nss/cmd/shlibsign/mangle/Makefile 2014-09-29 16:46:35.139393785 +0100
|
||||
+++ b/b/nss/cmd/shlibsign/mangle/Makefile 2014-09-29 16:50:33.910375955 +0100
|
||||
@@ -43,7 +43,9 @@
|
||||
|
||||
endif
|
||||
|
||||
-
|
||||
+ifeq ($(OS), AIX)
|
||||
+EXTRA_SHARED_LIBS += -lpthreads
|
||||
+endif
|
||||
|
||||
#######################################################################
|
||||
# (5) Execute "global" rules. (OPTIONAL) #
|
||||
diff -ru a/nss/coreconf/AIX.mk b/nss/coreconf/AIX.mk
|
||||
--- a/a/nss/coreconf/AIX.mk 2014-09-29 16:46:35.040392883 +0100
|
||||
+++ b/b/nss/coreconf/AIX.mk 2014-09-29 16:50:33.909375948 +0100
|
||||
@@ -30,35 +30,30 @@
|
||||
|
||||
DEFAULT_COMPILER = xlc_r
|
||||
|
||||
-CC = xlc_r
|
||||
-CCC = xlC_r
|
||||
+CCC = $(CXX)
|
||||
|
||||
CPU_ARCH = rs6000
|
||||
|
||||
RANLIB = ranlib
|
||||
|
||||
OS_CFLAGS = -DAIX -DSYSV
|
||||
-OS_LIBS += -blibpath:/usr/lib:/lib -lc -lm
|
||||
+OS_LIBS += -Wl,-blibpath:/usr/lib:/lib -lc -lm
|
||||
|
||||
-DSO_LDOPTS = -brtl -bnortllib -bM:SRE -bnoentry
|
||||
-MKSHLIB = $(LD) $(DSO_LDOPTS) -blibpath:/usr/lib:/lib -lc -lm
|
||||
+DSO_LDOPTS = -Wl,-brtl -Wl,-bnortllib
|
||||
+MKSHLIB = $(CC) --shared $(DSO_LDOPTS) -Wl,-blibpath:/usr/lib:/lib -lc -lm
|
||||
|
||||
AIX_WRAP = $(DIST)/lib/aixwrap.o
|
||||
AIX_TMP = $(OBJDIR)/_aix_tmp.o
|
||||
|
||||
ifdef MAPFILE
|
||||
-DSO_LDOPTS += -bexport:$(MAPFILE)
|
||||
+DSO_LDOPTS += -Wl,-bexport:$(MAPFILE)
|
||||
else
|
||||
-DSO_LDOPTS += -bexpall
|
||||
+DSO_LDOPTS += -Wl,-bexpall
|
||||
endif
|
||||
|
||||
PROCESS_MAP_FILE = grep -v ';+' $< | grep -v ';-' | \
|
||||
sed -e 's; DATA ;;' -e 's,;;,,' -e 's,;.*,,' > $@
|
||||
|
||||
-ifdef BUILD_OPT
|
||||
- OPTIMIZER += -qmaxmem=-1
|
||||
-endif
|
||||
-
|
||||
ifeq ($(USE_64), 1)
|
||||
OS_CFLAGS += -DAIX_64BIT
|
||||
OBJECT_MODE=64
|
|
@ -26,8 +26,7 @@ endif
|
|||
|
||||
openldap_LDFLAGS = $(call gb_ExternalProject_get_link_flags,openldap)
|
||||
ifeq ($(SYSTEM_NSS),)
|
||||
openldap_LDFLAGS += -L$(call gb_UnpackedTarball_get_dir,nss)/dist/out/lib \
|
||||
$(if $(filter AIX,$(OS)),-Wl$(COMMA)-brtl)
|
||||
openldap_LDFLAGS += -L$(call gb_UnpackedTarball_get_dir,nss)/dist/out/lib
|
||||
endif
|
||||
# Help openldap's configure determine that it needs -lpthread even if libasan.so
|
||||
# contains a pthread_create override:
|
||||
|
|
23
external/openssl/openssl-no-ipc-cmd.patch.0
vendored
23
external/openssl/openssl-no-ipc-cmd.patch.0
vendored
|
@ -40,29 +40,6 @@
|
|||
|
||||
if ( $CC ) {
|
||||
# Find the compiler vendor and version number for certain compilers
|
||||
@@ -364,14 +365,14 @@
|
||||
}
|
||||
}
|
||||
|
||||
- if ( ${SYSTEM} eq 'AIX' ) {
|
||||
- # favor vendor cc over gcc
|
||||
- if (IPC::Cmd::can_run('cc')) {
|
||||
- $CC = 'cc';
|
||||
- $CCVENDOR = ''; # Determine later
|
||||
- $CCVER = 0;
|
||||
- }
|
||||
- }
|
||||
+# if ( ${SYSTEM} eq 'AIX' ) {
|
||||
+# # favor vendor cc over gcc
|
||||
+# if (IPC::Cmd::can_run('cc')) {
|
||||
+# $CC = 'cc';
|
||||
+# $CCVENDOR = ''; # Determine later
|
||||
+# $CCVER = 0;
|
||||
+# }
|
||||
+# }
|
||||
|
||||
if ( $SYSTEM eq "SunOS" ) {
|
||||
# check for Oracle Developer Studio, expected output is "cc: blah-blah C x.x blah-blah"
|
||||
--- util/perl/OpenSSL/config.pm.orig 2022-11-08 12:54:59.751298823 +0100
|
||||
+++ util/perl/OpenSSL/config.pm 2022-11-08 12:55:16.436287053 +0100
|
||||
@@ -52,13 +52,13 @@
|
||||
|
|
2
external/python3/ExternalPackage_python3.mk
vendored
2
external/python3/ExternalPackage_python3.mk
vendored
|
@ -57,7 +57,6 @@ $(eval $(call gb_ExternalPackage_add_file,python3,$(LIBO_BIN_FOLDER)/python.bin-
|
|||
# Obviously this list should not contain stuff with external dependencies
|
||||
# that may not be available on baseline systems.
|
||||
|
||||
ifneq ($(OS),AIX)
|
||||
python3_EXTENSION_MODULE_SUFFIX=cpython-$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)$(if $(ENABLE_DBGUTIL),d)
|
||||
python3_EXTENSION_MODULES= \
|
||||
LO_lib/array.$(python3_EXTENSION_MODULE_SUFFIX).so \
|
||||
|
@ -129,7 +128,6 @@ $(eval $(call gb_ExternalPackage_add_files,python3,$(LIBO_BIN_FOLDER)/python-cor
|
|||
$(python3_EXTENSION_MODULES) \
|
||||
))
|
||||
endif
|
||||
endif
|
||||
|
||||
# headers are not delivered, but used from unpacked dir Include/
|
||||
# (+ toplevel for pyconfig.h)
|
||||
|
|
2
external/python3/ExternalProject_python3.mk
vendored
2
external/python3/ExternalProject_python3.mk
vendored
|
@ -92,8 +92,6 @@ $(call gb_ExternalProject_get_state_target,python3,build) :
|
|||
$(if $(ENABLE_DBGUTIL),--with-pydebug) \
|
||||
--prefix=/python-inst \
|
||||
--with-system-expat \
|
||||
$(if $(filter AIX,$(OS)), \
|
||||
--disable-ipv6 --with-threads OPT="-g0 -fwrapv -O3 -Wall") \
|
||||
$(if $(filter MACOSX,$(OS)), \
|
||||
$(if $(filter INTEL,$(CPUNAME)),--enable-universalsdk=$(MACOSX_SDK_PATH) \
|
||||
--with-universal-archs=intel \
|
||||
|
|
1
external/redland/UnpackedTarball_rasqal.mk
vendored
1
external/redland/UnpackedTarball_rasqal.mk
vendored
|
@ -22,7 +22,6 @@ $(eval $(call gb_UnpackedTarball_add_patches,rasqal,\
|
|||
external/redland/rasqal/rasqal-pkgconfig.patch.1 \
|
||||
external/redland/rasqal/rasqal-freebsd.patch.1 \
|
||||
external/redland/rasqal/rasqal-msvc.patch.1 \
|
||||
external/redland/rasqal/rasqal-aix.patch.1 \
|
||||
$(if $(filter-out WNT,$(OS)),external/redland/rasqal/rasqal-bundled-soname.patch.1) \
|
||||
$(if $(filter ANDROID,$(OS)),external/redland/rasqal/rasqal-android.patch.1) \
|
||||
$(if $(CROSS_COMPILING),external/redland/rasqal/rasqal-xcompile.patch.1) \
|
||||
|
|
25
external/redland/rasqal/rasqal-aix.patch.1
vendored
25
external/redland/rasqal/rasqal-aix.patch.1
vendored
|
@ -1,25 +0,0 @@
|
|||
--- a/src/rasqal_literal.c 2013-03-29 21:22:57.413852072 +0100
|
||||
+++ b/src/rasqal_literal.c 2013-03-29 21:23:34.092851757 +0100
|
||||
@@ -46,10 +46,22 @@
|
||||
#include <stddef.h>
|
||||
#endif
|
||||
#include <stdarg.h>
|
||||
+#ifdef _AIX
|
||||
+# ifndef isnan
|
||||
+# define isnan(x) \
|
||||
+ (sizeof (x) == sizeof (long double) ? isnan_ld (x) \
|
||||
+ : sizeof (x) == sizeof (double) ? isnan_d (x) \
|
||||
+ : isnan_f (x))
|
||||
+ static inline int isnan_f (float x) { return x != x; }
|
||||
+ static inline int isnan_d (double x) { return x != x; }
|
||||
+ static inline int isnan_ld (long double x) { return x != x; }
|
||||
+# endif
|
||||
+#else
|
||||
/* for isnan() */
|
||||
#ifdef HAVE_MATH_H
|
||||
#include <math.h>
|
||||
#endif
|
||||
+#endif
|
||||
/* for INT_MIN and INT_MAX */
|
||||
#ifdef HAVE_LIMITS_H
|
||||
#include <limits.h>
|
1
external/xmlsec/ExternalProject_xmlsec.mk
vendored
1
external/xmlsec/ExternalProject_xmlsec.mk
vendored
|
@ -46,7 +46,6 @@ $(call gb_ExternalProject_get_state_target,xmlsec,build) :
|
|||
$(call gb_Trace_StartRange,xmlsec,EXTERNAL)
|
||||
$(call gb_ExternalProject_run,build,\
|
||||
$(if $(filter iOS MACOSX,$(OS_FOR_BUILD)),ACLOCAL="aclocal -I $(SRCDIR)/m4/mac") \
|
||||
$(if $(filter AIX,$(OS)),ACLOCAL="aclocal -I /opt/freeware/share/aclocal") \
|
||||
autoreconf \
|
||||
&& $(gb_RUN_CONFIGURE) ./configure \
|
||||
--with-pic --disable-shared --disable-crypto-dl --without-libxslt --without-gnutls --without-gcrypt --disable-apps --disable-docs \
|
||||
|
|
|
@ -26,10 +26,6 @@
|
|||
#include "HelpCompiler.hxx"
|
||||
#include <libxslt/xsltInternals.h>
|
||||
|
||||
#ifdef AIX
|
||||
# undef _THREAD_SAFE
|
||||
#endif
|
||||
|
||||
class L10N_DLLPUBLIC IndexerPreProcessor
|
||||
{
|
||||
private:
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
# define LOK_TOLERATE_UNUSED
|
||||
#endif
|
||||
|
||||
#if defined(__linux__) || defined (__FreeBSD__) || defined(_AIX) ||\
|
||||
#if defined(__linux__) || defined (__FreeBSD__) ||\
|
||||
defined(_WIN32) || defined(__APPLE__) || defined (__NetBSD__) ||\
|
||||
defined (__sun) || defined(__OpenBSD__) || defined(__EMSCRIPTEN__)
|
||||
|
||||
|
@ -31,9 +31,6 @@
|
|||
|
||||
#include <dlfcn.h>
|
||||
|
||||
#ifdef _AIX
|
||||
# include <sys/ldr.h>
|
||||
#endif
|
||||
#ifdef __APPLE__
|
||||
#define TARGET_LIB "lib" "sofficeapp" ".dylib"
|
||||
#define TARGET_MERGED_LIB "lib" "mergedlo" ".dylib"
|
||||
|
@ -359,7 +356,7 @@ int lok_preinit( const char *install_path, const char *user_profile_url )
|
|||
}
|
||||
#endif
|
||||
|
||||
#endif // defined(__linux__) || defined (__FreeBSD__) || defined(_AIX) || defined(_WIN32) || defined(__APPLE__)
|
||||
#endif // defined(__linux__) || defined (__FreeBSD__) || defined(_WIN32) || defined(__APPLE__)
|
||||
|
||||
#endif // INCLUDED_LIBREOFFICEKIT_LIBREOFFICEKITINIT_H
|
||||
|
||||
|
|
|
@ -60,13 +60,6 @@ extern "C" {
|
|||
# elif defined _BIG_ENDIAN
|
||||
# define OSL_BIGENDIAN
|
||||
# endif
|
||||
#elif defined AIX
|
||||
# include <sys/machine.h>
|
||||
# if BYTE_ORDER == LITTLE_ENDIAN
|
||||
# define OSL_LITENDIAN
|
||||
# elif BYTE_ORDER == BIG_ENDIAN
|
||||
# define OSL_BIGENDIAN
|
||||
# endif
|
||||
#elif defined __sun
|
||||
# include <sys/isa_defs.h>
|
||||
# if defined _LITTLE_ENDIAN
|
||||
|
|
|
@ -24,8 +24,8 @@
|
|||
#ifndef INCLUDED_SAL_ALLOCA_H
|
||||
#define INCLUDED_SAL_ALLOCA_H
|
||||
|
||||
#if defined(__sun) || defined(LINUX) || defined(AIX) || defined(ANDROID) || defined(HAIKU) \
|
||||
|| defined(MACOSX) || defined(IOS) || defined(EMSCRIPTEN)
|
||||
#if defined(__sun) || defined(LINUX) || defined(ANDROID) || defined(HAIKU) || defined(MACOSX) \
|
||||
|| defined(IOS) || defined(EMSCRIPTEN)
|
||||
|
||||
#ifndef INCLUDED_ALLOCA_H
|
||||
#include <alloca.h>
|
||||
|
|
|
@ -47,8 +47,8 @@
|
|||
|
||||
#endif /* defined _WIN32 */
|
||||
|
||||
#if defined(__sun) || defined(LINUX) || defined(NETBSD) || defined(FREEBSD) || defined(AIX) \
|
||||
|| defined(OPENBSD) || defined(DRAGONFLY) || defined(ANDROID) || defined(HAIKU)
|
||||
#if defined(__sun) || defined(LINUX) || defined(NETBSD) || defined(FREEBSD) || defined(OPENBSD) \
|
||||
|| defined(DRAGONFLY) || defined(ANDROID) || defined(HAIKU)
|
||||
#define SAL_UNX
|
||||
#define SAL_DLLEXTENSION ".so"
|
||||
#define SAL_EXEEXTENSION ""
|
||||
|
|
|
@ -29,10 +29,6 @@
|
|||
#include "sal/saldllapi.h"
|
||||
#include "sal/types.h"
|
||||
|
||||
#if defined AIX
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
|
|
@ -19,11 +19,7 @@
|
|||
|
||||
cat > /dev/null
|
||||
[[ "${PLATFORMID}" == "linux_x86_64" || "${PLATFORMID}" == "linux_aarch64" ]] && mark64="()(64bit)"
|
||||
if [[ "${OS}" == "AIX" ]]; then
|
||||
echo "libfreetype.a(libfreetype.so.6${mark64})"
|
||||
else
|
||||
echo "libfreetype.so.6${mark64}"
|
||||
if [[ "${XINERAMA_LINK}" == "dynamic" ]]; then
|
||||
echo "libXinerama.so.1${mark64}"
|
||||
fi
|
||||
echo "libfreetype.so.6${mark64}"
|
||||
if [[ "${XINERAMA_LINK}" == "dynamic" ]]; then
|
||||
echo "libXinerama.so.1${mark64}"
|
||||
fi
|
||||
|
|
|
@ -21,8 +21,6 @@ $(eval $(call gb_Package_add_file,jvmfwk_javavendors,$(LIBO_URE_MISC_FOLDER)/jav
|
|||
endif
|
||||
else ifeq ($(OS),LINUX)
|
||||
$(eval $(call gb_Package_add_file,jvmfwk_javavendors,$(LIBO_URE_MISC_FOLDER)/javavendors.xml,distributions/OpenOfficeorg/javavendors_linux.xml))
|
||||
else ifeq ($(OS),AIX)
|
||||
$(eval $(call gb_Package_add_file,jvmfwk_javavendors,$(LIBO_URE_MISC_FOLDER)/javavendors.xml,distributions/OpenOfficeorg/javavendors_linux.xml))
|
||||
else
|
||||
$(eval $(call gb_Package_add_file,jvmfwk_javavendors,$(LIBO_URE_MISC_FOLDER)/javavendors.xml,distributions/OpenOfficeorg/javavendors_unx.xml))
|
||||
endif
|
||||
|
|
|
@ -21,8 +21,7 @@ odk_PLATFORM := $(if $(filter WNT,$(OS)),windows,\
|
|||
$(if $(filter NETBSD,$(OS)),netbsd,\
|
||||
$(if $(filter FREEBSD,$(OS)),freebsd,\
|
||||
$(if $(filter DRAGONFLY,$(OS)),dragonfly,\
|
||||
$(if $(filter MACOSX,$(OS)),macosx,\
|
||||
$(if $(filter AIX,$(OS)),aix))))))))
|
||||
$(if $(filter MACOSX,$(OS)),macosx)))))))
|
||||
|
||||
.PHONY: $(call gb_CustomTarget_get_workdir,odk/check)/checkbin
|
||||
$(call gb_CustomTarget_get_workdir,odk/check)/checkbin : \
|
||||
|
|
|
@ -75,8 +75,6 @@ int main( int argc, char *argv[] )
|
|||
{
|
||||
#if defined(MACOSX)
|
||||
static const char* ENVVARNAME = "DYLD_LIBRARY_PATH";
|
||||
#elif defined(AIX)
|
||||
static const char* ENVVARNAME = "LIBPATH";
|
||||
#else
|
||||
static const char* ENVVARNAME = "LD_LIBRARY_PATH";
|
||||
#endif
|
||||
|
@ -263,14 +261,11 @@ char* createCommandName( char* argv0 )
|
|||
|
||||
char* cmdname = NULL;
|
||||
char* sep = NULL;
|
||||
#ifndef AIX
|
||||
Dl_info dl_info;
|
||||
#endif
|
||||
|
||||
/* get the executable file name from argv0 */
|
||||
prgname = argv0;
|
||||
|
||||
#ifndef AIX
|
||||
/*
|
||||
* if argv0 doesn't contain an absolute path name, try to get the absolute
|
||||
* path name from dladdr; note that this only works for Solaris, not for
|
||||
|
@ -282,7 +277,6 @@ char* createCommandName( char* argv0 )
|
|||
{
|
||||
prgname = dl_info.dli_fname;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* prefix the executable file name by '_' */
|
||||
if ( prgname != NULL )
|
||||
|
|
|
@ -140,10 +140,8 @@ oslFileError oslTranslateFileError(int Errno)
|
|||
#endif
|
||||
return osl_File_E_NOSYS;
|
||||
|
||||
#if !defined(AIX) || !(defined(_ALL_SOURCE) && !defined(_LINUX_SOURCE_COMPAT))
|
||||
case ENOTEMPTY:
|
||||
return osl_File_E_NOTEMPTY;
|
||||
#endif
|
||||
|
||||
case ELOOP:
|
||||
return osl_File_E_LOOP;
|
||||
|
|
|
@ -31,57 +31,9 @@
|
|||
#include "system.hxx"
|
||||
#include "file_url.hxx"
|
||||
|
||||
#ifdef AIX
|
||||
#include <sys/ldr.h>
|
||||
#endif
|
||||
|
||||
static bool getModulePathFromAddress(void * address, rtl_String ** path)
|
||||
{
|
||||
bool result = false;
|
||||
#if defined(AIX)
|
||||
int size = 4 * 1024;
|
||||
char *buf, *filename=NULL;
|
||||
struct ld_info *lp;
|
||||
|
||||
if ((buf = (char*)malloc(size)) == NULL)
|
||||
return false;
|
||||
|
||||
//figure out how big a buffer we need
|
||||
while (loadquery(L_GETINFO, buf, size) == -1 && errno == ENOMEM)
|
||||
{
|
||||
size += 4 * 1024;
|
||||
free(buf);
|
||||
if ((buf = (char*)malloc(size)) == NULL)
|
||||
return false;
|
||||
}
|
||||
|
||||
lp = (struct ld_info*) buf;
|
||||
while (lp)
|
||||
{
|
||||
unsigned long start = (unsigned long)lp->ldinfo_dataorg;
|
||||
unsigned long end = start + lp->ldinfo_datasize;
|
||||
if (start <= (unsigned long)address && end > (unsigned long)address)
|
||||
{
|
||||
filename = lp->ldinfo_filename;
|
||||
break;
|
||||
}
|
||||
if (!lp->ldinfo_next)
|
||||
break;
|
||||
lp = (struct ld_info*) ((char *) lp + lp->ldinfo_next);
|
||||
}
|
||||
|
||||
if (filename)
|
||||
{
|
||||
rtl_string_newFromStr(path, filename);
|
||||
result = sal_True;
|
||||
}
|
||||
else
|
||||
{
|
||||
result = sal_False;
|
||||
}
|
||||
|
||||
free(buf);
|
||||
#else
|
||||
#if HAVE_UNIX_DLAPI
|
||||
Dl_info dl_info;
|
||||
|
||||
|
@ -94,7 +46,6 @@ static bool getModulePathFromAddress(void * address, rtl_String ** path)
|
|||
#else
|
||||
(void) address;
|
||||
(void) path;
|
||||
#endif
|
||||
#endif
|
||||
return result;
|
||||
}
|
||||
|
|
|
@ -201,19 +201,6 @@
|
|||
# define IOCHANNEL_TRANSFER_BSD_RENO
|
||||
#endif
|
||||
|
||||
#ifdef AIX
|
||||
# define AF_IPX -1
|
||||
# include <strings.h>
|
||||
# include <pthread.h>
|
||||
# include <dlfcn.h>
|
||||
# include <sys/time.h>
|
||||
# include <sys/un.h>
|
||||
# include <netinet/tcp.h>
|
||||
# include <sys/machine.h>
|
||||
# define SLEEP_TIMESPEC(timespec) nsleep(×pec, 0)
|
||||
# define LIBPATH "LIBPATH"
|
||||
#endif
|
||||
|
||||
#ifdef __sun
|
||||
# include <shadow.h>
|
||||
# include <sys/un.h>
|
||||
|
@ -291,7 +278,6 @@ int macxp_resolveAlias(char *path, int buflen);
|
|||
|
||||
#if !defined(_WIN32) && \
|
||||
!defined(LINUX) && !defined(NETBSD) && !defined(FREEBSD) && \
|
||||
!defined(AIX) && \
|
||||
!defined(__sun) && !defined(MACOSX) && \
|
||||
!defined(OPENBSD) && !defined(DRAGONFLY) && \
|
||||
!defined(IOS) && !defined(ANDROID) && \
|
||||
|
|
|
@ -4715,7 +4715,7 @@ namespace osl_Directory
|
|||
if (tmp_x.lastIndexOf('/') != (tmp_x.getLength() - 1))
|
||||
tmp_x += "/";
|
||||
|
||||
#if !defined(_WIN32) && !defined(ANDROID) && !defined(AIX)
|
||||
#if !defined(_WIN32) && !defined(ANDROID)
|
||||
// FIXME would be nice to create unique dir even on Windows
|
||||
tmp_x += "XXXXXX";
|
||||
char *out = mkdtemp(const_cast<char*>(tmp_x.getStr()));
|
||||
|
|
|
@ -22,59 +22,6 @@
|
|||
#include "AutoInstall/ooo_images"
|
||||
#include "AutoInstall/ooobinarytable"
|
||||
|
||||
#ifdef AIX
|
||||
#ifndef SYSTEM_CURL
|
||||
Unixlink gid_Unixlink_File_Lib_Curl
|
||||
BIN_FILE_BODY;
|
||||
Dir = SCP2_OOO_BIN_DIR;
|
||||
Name = STRING(CONCAT2(libcurl,UNXSUFFIX));
|
||||
Styles = (PACKED);
|
||||
Target = STRING(CONCAT3(libcurl,UNXSUFFIX,.3));
|
||||
End
|
||||
#endif
|
||||
#ifndef SYSTEM_REDLAND
|
||||
Unixlink gid_Unixlink_File_Lib_Raptor
|
||||
BIN_FILE_BODY;
|
||||
Dir = SCP2_OOO_BIN_DIR;
|
||||
Name = STRING(CONCAT2(libraptor,UNXSUFFIX));
|
||||
Styles = (PACKED);
|
||||
Target = STRING(CONCAT3(libraptor,UNXSUFFIX,.1));
|
||||
End
|
||||
|
||||
Unixlink gid_Unixlink_File_Lib_Rasqal
|
||||
BIN_FILE_BODY;
|
||||
Dir = SCP2_OOO_BIN_DIR;
|
||||
Name = STRING(CONCAT2(librasqal,UNXSUFFIX));
|
||||
Styles = (PACKED);
|
||||
Target = STRING(CONCAT3(librasqal,UNXSUFFIX,.1));
|
||||
End
|
||||
|
||||
Unixlink gid_Unixlink_File_Lib_Rdf
|
||||
BIN_FILE_BODY;
|
||||
Dir = SCP2_OOO_BIN_DIR;
|
||||
Name = STRING(CONCAT2(librdf,UNXSUFFIX));
|
||||
Styles = (PACKED);
|
||||
Target = STRING(CONCAT3(librdf,UNXSUFFIX,.0));
|
||||
End
|
||||
#endif
|
||||
#ifndef SYSTEM_LIBXSLT
|
||||
Unixlink gid_Unixlink_File_Lib_Xslt
|
||||
BIN_FILE_BODY;
|
||||
Dir = SCP2_OOO_BIN_DIR;
|
||||
Name = STRING(CONCAT2(libxslt,UNXSUFFIX));
|
||||
Styles = (PACKED);
|
||||
Target = STRING(CONCAT3(libxslt,UNXSUFFIX,.1));
|
||||
End
|
||||
Unixlink gid_Unixlink_File_Lib_eXslt
|
||||
BIN_FILE_BODY;
|
||||
Dir = SCP2_OOO_BIN_DIR;
|
||||
Name = STRING(CONCAT2(libexslt,UNXSUFFIX));
|
||||
Styles = (PACKED);
|
||||
Target = STRING(CONCAT3(libexslt,UNXSUFFIX,.0));
|
||||
End
|
||||
#endif
|
||||
#endif
|
||||
|
||||
Module gid_Module_Root_Files_Images
|
||||
PackageInfo = "packinfo_office.txt";
|
||||
ParentID = gid_Module_Root;
|
||||
|
|
|
@ -32,12 +32,6 @@ Module gid_Module_Root
|
|||
gid_Starregistry_Services_Rdb,
|
||||
auto_ooo_ALL,
|
||||
auto_ooobinarytable_ALL,
|
||||
gid_Unixlink_File_Lib_Curl,
|
||||
gid_Unixlink_File_Lib_Raptor,
|
||||
gid_Unixlink_File_Lib_Rasqal,
|
||||
gid_Unixlink_File_Lib_Rdf,
|
||||
gid_Unixlink_File_Lib_Xslt,
|
||||
gid_Unixlink_File_Lib_eXslt,
|
||||
GID_FILE_LIB_WPD,
|
||||
gid_File_Lib_Cli_Oootypes_Assembly,
|
||||
gid_File_Lib_Policy_Cli_Oootypes_Assembly,
|
||||
|
@ -98,12 +92,6 @@ Module gid_Module_Root
|
|||
gid_File_Share_Registry_Forcedefault_Xcd,
|
||||
gid_File_Extra_Fontunxpsprint,
|
||||
gid_File_Extra_Fontunxafm);
|
||||
Unixlinks = (gid_Unixlink_File_Lib_Curl,
|
||||
gid_Unixlink_File_Lib_Raptor,
|
||||
gid_Unixlink_File_Lib_Rasqal,
|
||||
gid_Unixlink_File_Lib_Rdf,
|
||||
gid_Unixlink_File_Lib_Xslt,
|
||||
gid_Unixlink_File_Lib_eXslt);
|
||||
End
|
||||
|
||||
Module gid_Module_Prg
|
||||
|
|
|
@ -27,58 +27,6 @@ Directory gid_Dir_Ure_Share_Misc
|
|||
End
|
||||
#endif
|
||||
|
||||
// Public Dynamic Libraries:
|
||||
|
||||
#ifdef AIX
|
||||
Unixlink gid_Unixlink_File_Dl_Cppu
|
||||
BIN_FILE_BODY;
|
||||
Dir = SCP2_URE_DL_DIR;
|
||||
Name = SCP2_URE_DL_UNO_NORMAL("cppu");
|
||||
Styles = (PACKED);
|
||||
Target = SCP2_URE_DL_UNO_VER("cppu", "3");
|
||||
End
|
||||
#endif
|
||||
|
||||
#ifdef AIX
|
||||
Unixlink gid_Unixlink_File_Dl_Cppuhelper
|
||||
BIN_FILE_BODY;
|
||||
Dir = SCP2_URE_DL_DIR;
|
||||
Name = SCP2_URE_DL_UNO_COMID_NORMAL("cppuhelper");
|
||||
Styles = (PACKED);
|
||||
Target = SCP2_URE_DL_UNO_COMID_VER("cppuhelper", "3");
|
||||
End
|
||||
#endif
|
||||
|
||||
#ifdef AIX
|
||||
Unixlink gid_Unixlink_File_Dl_PurpEnvHelper
|
||||
BIN_FILE_BODY;
|
||||
Dir = SCP2_URE_DL_DIR;
|
||||
Name = SCP2_URE_DL_UNO_COMID_NORMAL("purpenvhelper");
|
||||
Styles = (PACKED);
|
||||
Target = SCP2_URE_DL_UNO_COMID_VER("purpenvhelper", "3");
|
||||
End
|
||||
#endif
|
||||
|
||||
#ifdef AIX
|
||||
Unixlink gid_Unixlink_File_Dl_Sal
|
||||
BIN_FILE_BODY;
|
||||
Dir = SCP2_URE_DL_DIR;
|
||||
Name = SCP2_URE_DL_UNO_NORMAL("sal");
|
||||
Styles = (PACKED);
|
||||
Target = SCP2_URE_DL_UNO_VER("sal", "3");
|
||||
End
|
||||
#endif
|
||||
|
||||
#ifdef AIX
|
||||
Unixlink gid_Unixlink_File_Dl_Salhelper
|
||||
BIN_FILE_BODY;
|
||||
Dir = SCP2_URE_DL_DIR;
|
||||
Name = SCP2_URE_DL_UNO_COMID_NORMAL("salhelper");
|
||||
Styles = (PACKED);
|
||||
Target = SCP2_URE_DL_UNO_COMID_VER("salhelper", "3");
|
||||
End
|
||||
#endif
|
||||
|
||||
// Private Dynamic Libraries:
|
||||
|
||||
#if defined _MSC_VER && ! defined _ARM64_
|
||||
|
@ -220,16 +168,6 @@ End
|
|||
|
||||
#endif
|
||||
|
||||
#ifdef AIX
|
||||
Unixlink gid_Unixlink_File_Dl_Libxml2
|
||||
BIN_FILE_BODY;
|
||||
Dir = SCP2_URE_DL_DIR;
|
||||
Name = SCP2_URE_DL_NORMAL("xml2");
|
||||
Styles = (PACKED);
|
||||
Target = SCP2_URE_DL_VER("xml2", "2");
|
||||
End
|
||||
#endif
|
||||
|
||||
// Public Miscellaneous Files:
|
||||
|
||||
File gid_File_Misc_TypesRdb
|
||||
|
@ -282,19 +220,8 @@ Module gid_Module_Root_Ure_Hidden
|
|||
gid_File_Lib_Cli_Cppuhelper_Assembly,
|
||||
gid_File_Lib_Policy_Cli_Cppuhelper_Assembly,
|
||||
gid_File_Lib_Policy_Cli_Cppuhelper_Config,
|
||||
gid_Unixlink_File_Dl_Cppu,
|
||||
gid_Unixlink_File_Dl_Cppuhelper,
|
||||
gid_Unixlink_File_Dl_PurpEnvHelper,
|
||||
gid_Unixlink_File_Dl_Sal,
|
||||
gid_Unixlink_File_Dl_Salhelper,
|
||||
gid_File_Misc_TypesRdb,
|
||||
gid_File_Misc_ServicesRdb);
|
||||
Unixlinks = (gid_Unixlink_File_Dl_Sal,
|
||||
gid_Unixlink_File_Dl_Salhelper,
|
||||
gid_Unixlink_File_Dl_Cppu,
|
||||
gid_Unixlink_File_Dl_Cppuhelper,
|
||||
gid_Unixlink_File_Dl_PurpEnvHelper,
|
||||
gid_Unixlink_File_Dl_Libxml2);
|
||||
End
|
||||
|
||||
// Windows Registry:
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
|
||||
#include "macros.inc"
|
||||
|
||||
#ifndef AIX
|
||||
#ifndef DISABLE_PYUNO
|
||||
File gid_File_Share_Registry_LibreLogo_Xcd
|
||||
TXT_FILE_BODY;
|
||||
|
@ -17,4 +16,3 @@ File gid_File_Share_Registry_LibreLogo_Xcd
|
|||
Name = "librelogo.xcd";
|
||||
End
|
||||
#endif
|
||||
#endif
|
||||
|
|
|
@ -10,7 +10,6 @@
|
|||
|
||||
#include "AutoInstall/python_librelogo"
|
||||
|
||||
#ifndef AIX
|
||||
#ifndef DISABLE_PYUNO
|
||||
Module gid_Module_Optional_Pyuno_LibreLogo
|
||||
PackageInfo = "packinfo_office.txt";
|
||||
|
@ -23,4 +22,3 @@ Module gid_Module_Optional_Pyuno_LibreLogo
|
|||
Styles = ( );
|
||||
End
|
||||
#endif
|
||||
#endif
|
||||
|
|
|
@ -17,11 +17,6 @@
|
|||
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
|
||||
*/
|
||||
|
||||
#ifdef AIX
|
||||
# undef _THREAD_SAFE
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef _WIN32
|
||||
#include <prewin.h>
|
||||
#include <postwin.h>
|
||||
|
|
|
@ -27,14 +27,7 @@ if [ "$sd_platform" = "Linux" ] ; then
|
|||
fi
|
||||
|
||||
# do not confuse the system mail clients with OOo and Java libraries
|
||||
case $sd_platform in
|
||||
AIX)
|
||||
unset LIBPATH
|
||||
;;
|
||||
*)
|
||||
unset LD_LIBRARY_PATH
|
||||
;;
|
||||
esac
|
||||
unset LD_LIBRARY_PATH
|
||||
|
||||
# tries to locate the executable specified
|
||||
# as first parameter in the user's path.
|
||||
|
|
|
@ -22,10 +22,6 @@
|
|||
#endif
|
||||
|
||||
#endif
|
||||
#ifdef _AIX
|
||||
#define CORE_BIG_ENDIAN
|
||||
#undef CORE_LITTLE_ENDIAN
|
||||
#endif /* Def _AIX */
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#undef CORE_BIG_ENDIAN
|
||||
|
|
|
@ -2022,10 +2022,6 @@ sub create_packages_without_epm
|
|||
{
|
||||
$target = "i586";
|
||||
}
|
||||
elsif ( $installer::globals::platformid eq 'aix_powerpc')
|
||||
{
|
||||
$target = "ppc";
|
||||
}
|
||||
elsif ( $installer::globals::os eq 'LINUX')
|
||||
{
|
||||
$target = (POSIX::uname())[4];
|
||||
|
@ -2238,11 +2234,6 @@ sub create_new_directory_structure
|
|||
{
|
||||
$rpmdir = "$installer::globals::epmoutpath/RPMS/i586";
|
||||
}
|
||||
elsif ( $installer::globals::platformid eq 'aix_powerpc')
|
||||
{
|
||||
$machine = "ppc";
|
||||
$rpmdir = "$installer::globals::epmoutpath/RPMS/$machine";
|
||||
}
|
||||
elsif ( $installer::globals::os eq 'LINUX')
|
||||
{
|
||||
$machine = (POSIX::uname())[4];
|
||||
|
|
|
@ -291,16 +291,6 @@ sub setglobalvariables
|
|||
}
|
||||
}
|
||||
|
||||
if ($installer::globals::os eq 'AIX')
|
||||
{
|
||||
if ( $installer::globals::packageformat eq "rpm" )
|
||||
{
|
||||
$installer::globals::isrpmbuild = 1;
|
||||
$installer::globals::epmoutpath = "RPMS";
|
||||
}
|
||||
if ( $installer::globals::rpm eq "" ) { installer::exiter::exit_program("ERROR: Environment variable \"\$RPM\" has to be defined!", "setglobalvariables"); }
|
||||
}
|
||||
|
||||
if ($installer::globals::os eq 'LINUX')
|
||||
{
|
||||
$installer::globals::islinuxbuild = 1;
|
||||
|
|
|
@ -431,10 +431,6 @@ bridges/inc/bridge.hxx
|
|||
bridges/inc/cppinterfaceproxy.hxx
|
||||
bridges/inc/unointerfaceproxy.hxx
|
||||
bridges/inc/vtablefactory.hxx
|
||||
bridges/source/cpp_uno/gcc3_aix_powerpc/cpp2uno.cxx
|
||||
bridges/source/cpp_uno/gcc3_aix_powerpc/except.cxx
|
||||
bridges/source/cpp_uno/gcc3_aix_powerpc/share.hxx
|
||||
bridges/source/cpp_uno/gcc3_aix_powerpc/uno2cpp.cxx
|
||||
bridges/source/cpp_uno/gcc3_ios/cpp2uno.cxx
|
||||
bridges/source/cpp_uno/gcc3_ios/except.cxx
|
||||
bridges/source/cpp_uno/gcc3_ios/rtti.h
|
||||
|
|
|
@ -308,8 +308,6 @@ gb_Executable_EXT_for_build :=
|
|||
|
||||
ifeq ($(OS_FOR_BUILD),MACOSX)
|
||||
gb_Helper_LIBRARY_PATH_VAR := DYLD_LIBRARY_PATH
|
||||
else ifeq ($(OS_FOR_BUILD),AIX)
|
||||
gb_Helper_LIBRARY_PATH_VAR := LIBPATH
|
||||
else ifeq ($(OS_FOR_BUILD),WNT)
|
||||
# In theory possible if cross-compiling to some Unix from Windows,
|
||||
# in practice strongly discouraged to even try that
|
||||
|
|
|
@ -21,7 +21,7 @@ $(eval $(call gb_Executable_add_cobjects,cpp,\
|
|||
soltools/cpp/_unix \
|
||||
))
|
||||
|
||||
ifneq ($(filter AIX MACOSX WNT,$(OS)),)
|
||||
ifneq ($(filter MACOSX WNT,$(OS)),)
|
||||
$(eval $(call gb_Executable_add_cobjects,cpp,\
|
||||
soltools/cpp/_getopt \
|
||||
))
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
|
||||
#include "cpp.h"
|
||||
|
||||
#if defined(MACOSX) || defined(AIX) || defined(_WIN32)
|
||||
#if defined(MACOSX) || defined(_WIN32)
|
||||
#include "_getopt.h"
|
||||
#else
|
||||
#include <getopt.h>
|
||||
|
@ -54,7 +54,7 @@ void
|
|||
Tokenrow tr;
|
||||
|
||||
setup_kwtab();
|
||||
#if defined(MACOSX) || defined(AIX) || defined(_WIN32)
|
||||
#if defined(MACOSX) || defined(_WIN32)
|
||||
while ((c = stgetopt(argc, argv, "NOPV:I:D:U:F:A:X:u:l:+")) != -1)
|
||||
#else
|
||||
while ((c = getopt(argc, argv, "NOPV:I:D:U:F:A:X:u:l:+")) != -1)
|
||||
|
|
|
@ -47,10 +47,6 @@ NetBSD|FreeBSD|DragonFly)
|
|||
LD_LIBRARY_PATH=$sd_prog${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
|
||||
export LD_LIBRARY_PATH
|
||||
;;
|
||||
AIX)
|
||||
LIBPATH=$sd_prog${LIBPATH:+:${LIBPATH}}
|
||||
export LIBPATH
|
||||
;;
|
||||
esac
|
||||
|
||||
#collect all bootstrap variables specified on the command line
|
||||
|
@ -67,17 +63,8 @@ if [ -x "$sd_prog/javaldx" ] ; then
|
|||
my_path=$("$sd_prog/javaldx" $BOOTSTRAPVARS \
|
||||
"-env:INIFILENAME=vnd.sun.star.pathname:$sd_prog/redirectrc")
|
||||
if [ -n "$my_path" ] ; then
|
||||
sd_platform=$(uname -s)
|
||||
case $sd_platform in
|
||||
AIX)
|
||||
LIBPATH=$my_path${LIBPATH:+:$LIBPATH}
|
||||
export LIBPATH
|
||||
;;
|
||||
*)
|
||||
LD_LIBRARY_PATH=$my_path${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
|
||||
export LD_LIBRARY_PATH
|
||||
;;
|
||||
esac
|
||||
LD_LIBRARY_PATH=$my_path${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
|
||||
export LD_LIBRARY_PATH
|
||||
fi
|
||||
fi
|
||||
|
||||
|
|
|
@ -111,7 +111,7 @@ static ErrCode GetSvError( int nErrno )
|
|||
{ EBADF, SVSTREAM_INVALID_HANDLE },
|
||||
#if defined(NETBSD) || \
|
||||
defined(FREEBSD) || defined(MACOSX) || defined(OPENBSD) || \
|
||||
defined(__FreeBSD_kernel__) || defined (AIX) || defined(DRAGONFLY) || \
|
||||
defined(__FreeBSD_kernel__) || defined(DRAGONFLY) || \
|
||||
defined(IOS) || defined(HAIKU)
|
||||
{ EDEADLK, SVSTREAM_LOCKING_VIOLATION },
|
||||
#else
|
||||
|
|
|
@ -23,10 +23,6 @@
|
|||
#if defined LINUX || defined FREEBSD || \
|
||||
defined NETBSD || defined OPENBSD || defined DRAGONFLY
|
||||
#include <sys/time.h>
|
||||
#elif defined AIX
|
||||
#include <time.h>
|
||||
#include <sys/time.h>
|
||||
#include <strings.h>
|
||||
#endif
|
||||
#include <sal/types.h>
|
||||
|
||||
|
|
|
@ -36,7 +36,7 @@ private:
|
|||
|
||||
std::optional<int> mnXScreenSaverTimeout;
|
||||
|
||||
#if !defined(__sun) && !defined(AIX)
|
||||
#if !defined(__sun)
|
||||
BOOL mbDPMSWasEnabled;
|
||||
CARD16 mnDPMSStandbyTimeout;
|
||||
CARD16 mnDPMSSuspendTimeout;
|
||||
|
|
|
@ -26,9 +26,6 @@
|
|||
#ifdef SUN
|
||||
#include <sys/systeminfo.h>
|
||||
#endif
|
||||
#ifdef AIX
|
||||
#include <strings.h>
|
||||
#endif
|
||||
#ifdef FREEBSD
|
||||
#include <sys/types.h>
|
||||
#include <sys/time.h>
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
#include <math.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#if defined(__sun) || defined(AIX)
|
||||
#if defined(__sun)
|
||||
#include <osl/module.h>
|
||||
#endif
|
||||
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
#include <X11/Xlib.h>
|
||||
#include <X11/Xatom.h>
|
||||
|
||||
#if !defined(__sun) && !defined(AIX)
|
||||
#if !defined(__sun)
|
||||
#include <X11/extensions/dpms.h>
|
||||
#endif
|
||||
|
||||
|
@ -329,7 +329,7 @@ void ScreenSaverInhibitor::inhibitXAutoLock( bool bInhibit, Display* pDisplay )
|
|||
|
||||
void ScreenSaverInhibitor::inhibitDPMS( bool bInhibit, Display* pDisplay )
|
||||
{
|
||||
#if !defined(__sun) && !defined(AIX)
|
||||
#if !defined(__sun)
|
||||
int dummy;
|
||||
// This won't change while X11 is running, hence
|
||||
// we can evaluate only once and store as static
|
||||
|
@ -364,7 +364,7 @@ void ScreenSaverInhibitor::inhibitDPMS( bool bInhibit, Display* pDisplay )
|
|||
mnDPMSSuspendTimeout,
|
||||
mnDPMSOffTimeout );
|
||||
}
|
||||
#endif // !defined(__sun) && !defined(AIX)
|
||||
#endif // !defined(__sun)
|
||||
}
|
||||
|
||||
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|
||||
|
|
|
@ -17,12 +17,6 @@
|
|||
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
|
||||
*/
|
||||
|
||||
#ifdef AIX
|
||||
#define _LINUX_SOURCE_COMPAT
|
||||
#include <sys/timer.h>
|
||||
#undef _LINUX_SOURCE_COMPAT
|
||||
#endif
|
||||
|
||||
#include <com/sun/star/accessibility/TextSegment.hpp>
|
||||
#include <com/sun/star/accessibility/AccessibleEventId.hpp>
|
||||
#include <com/sun/star/accessibility/AccessibleStateType.hpp>
|
||||
|
|
|
@ -17,12 +17,6 @@
|
|||
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
|
||||
*/
|
||||
|
||||
#ifdef AIX
|
||||
#define _LINUX_SOURCE_COMPAT
|
||||
#include <sys/timer.h>
|
||||
#undef _LINUX_SOURCE_COMPAT
|
||||
#endif
|
||||
|
||||
#include <com/sun/star/accessibility/XAccessibleEventBroadcaster.hpp>
|
||||
#include <com/sun/star/accessibility/XAccessibleSelection.hpp>
|
||||
#include <com/sun/star/accessibility/AccessibleEventId.hpp>
|
||||
|
|
|
@ -17,12 +17,6 @@
|
|||
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
|
||||
*/
|
||||
|
||||
#ifdef AIX
|
||||
#define _LINUX_SOURCE_COMPAT
|
||||
#include <sys/timer.h>
|
||||
#undef _LINUX_SOURCE_COMPAT
|
||||
#endif
|
||||
|
||||
#include <config_gio.h>
|
||||
|
||||
#include <com/sun/star/awt/SystemDependentXWindow.hpp>
|
||||
|
|
|
@ -17,12 +17,6 @@
|
|||
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
|
||||
*/
|
||||
|
||||
#ifdef AIX
|
||||
#define _LINUX_SOURCE_COMPAT
|
||||
#include <sys/timer.h>
|
||||
#undef _LINUX_SOURCE_COMPAT
|
||||
#endif
|
||||
|
||||
#include <config_gio.h>
|
||||
|
||||
#include <com/sun/star/awt/Toolkit.hpp>
|
||||
|
|
|
@ -17,12 +17,6 @@
|
|||
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
|
||||
*/
|
||||
|
||||
#ifdef AIX
|
||||
#define _LINUX_SOURCE_COMPAT
|
||||
#include <sys/timer.h>
|
||||
#undef _LINUX_SOURCE_COMPAT
|
||||
#endif
|
||||
|
||||
#include <com/sun/star/frame/TerminationVetoException.hpp>
|
||||
#include <com/sun/star/lang/XMultiComponentFactory.hpp>
|
||||
#include <com/sun/star/uri/ExternalUriReferenceTranslator.hpp>
|
||||
|
|
|
@ -17,12 +17,6 @@
|
|||
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
|
||||
*/
|
||||
|
||||
#ifdef AIX
|
||||
#define _LINUX_SOURCE_COMPAT
|
||||
#include <sys/timer.h>
|
||||
#undef _LINUX_SOURCE_COMPAT
|
||||
#endif
|
||||
|
||||
#include <unx/gtk/gtkbackend.hxx>
|
||||
#include <unx/gtk/gtkobject.hxx>
|
||||
#include <unx/gtk/gtkframe.hxx>
|
||||
|
|
Loading…
Reference in a new issue