Fixing USE_GCC for LibreOffice on i386

Tijl Coosemans tijl at coosemans.org
Sun May 12 19:40:25 UTC 2013


On 2013-05-12 17:28, Gabor Pali wrote:
> On Sun, May 12, 2013 at 12:45 PM, Tijl Coosemans <tijl at coosemans.org> wrote:
>> Can you test if creating /etc/libmap.conf helps?
> 
> No, it does not help.  Note that soffice.bin uses the right version of
> libstdc++ from base:
> 
> $ ldd /usr/local/lib/libreoffice/program/soffice.bin
> /usr/local/lib/libreoffice/program/soffice.bin:
> ..
>         libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x28138000)
> ..
> 
> This is quite sensible to me as poudriere did not pull anything that
> would depend on lang/gcc* while building the packages.  (I started
> from scratch.)
> 
> The application dies at the same place as before (excerpt from gdbtrace.log):

Ok. One other thing I thought of is this patch:
http://llvm.org/viewvc/llvm-project?view=revision&revision=175057

It has been applied to base system llvm, but not port llvm:
http://svnweb.freebsd.org/base?view=revision&revision=246858

Can you put the attached patch in devel/llvm/files/ and rebuild
llvm, clang and libreoffice?
-------------- next part --------------
--- lib/Target/X86/X86SelectionDAGInfo.cpp.orig
+++ lib/Target/X86/X86SelectionDAGInfo.cpp
@@ -202,6 +202,14 @@
       SrcPtrInfo.getAddrSpace() >= 256)
     return SDValue();
 
+  // ESI might be used as a base pointer, in that case we can't simply overwrite
+  // the register.  Fall back to generic code.
+  const X86RegisterInfo *TRI =
+      static_cast<const X86RegisterInfo *>(DAG.getTarget().getRegisterInfo());
+  if (TRI->hasBasePointer(DAG.getMachineFunction()) &&
+      TRI->getBaseRegister() == X86::ESI)
+    return SDValue();
+
   MVT AVT;
   if (Align & 1)
     AVT = MVT::i8;
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 228 bytes
Desc: OpenPGP digital signature
URL: <http://lists.freebsd.org/pipermail/freebsd-office/attachments/20130512/14744256/attachment.sig>


More information about the freebsd-office mailing list