Hello Don, All,

On Wed, Mar 29, 2023 at 11:58:06PM -0700, Don Lewis wrote:

> A FreeBSD user is trying to unbreak the ppc64 build and ran into an
> issue with the sot module.  I dig into it pretty deeply and it looks to
> me like a gcc bug.  It's reproducable in amd64.  It seems to affect
> gcc10, gcc11, and gcc12 builds.  The build failure does not happen with
> gcc9.
> 
> It is not limited to FreeBSD.  I get the same failure on Debian
> bullseye:
>  cc --version
> cc (Debian 10.2.1-6) 10.2.1 20210110
> Copyright (C) 2020 Free Software Foundation, Inc.
> This is free software; see the source for copying conditions.  There is NO
> warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
> 
> [ build LNK ] Library/libsot.so
> /usr/bin/ld: 
> /home/dl/aoo/openoffice/main/solver/4111/unxlngx6.pro/workdir/CxxObject/sot/source/sdstor/ucbstorage.o:
>  in function `UCBStorage_Impl::Init()':
> ucbstorage.cxx:(.text+0x72b4): undefined reference to `non-virtual thunk to 
> cppu::WeakImplHelper1<com::sun::star::io::XInputStream>::acquire()'
> collect2: error: ld returned 1 exit status
> 
> 
> The problem appears to be that gcc is getting confused when compiling
> line 1884 of ucbstorage.cxx.  It ends up trying to call the thunk to the
> acquire() method of a non-existent class.  That thunk isn't defined, so
> the linker bombs on the undefined symbol.

I reproduced it with OpenSUSE Linux Leap 15.4, using the provided gcc-10.

However, the problem seems to be at line 1879:

> > com::sun::star::uno::Reference < ::com::sun::star::io::XInputStream > 
> > xInputStream( pHelper );

It seems to compile if we split it as follows:

> > com::sun::star::uno::Reference < ::com::sun::star::io::XInputStream > 
> > xInputStream;
> > xInputStream = pHelper;

This _should_ work as it is how method
Reference<XInputStream> UCBStorageStream_Impl::GetXInputStream()
does: it returns an instance of Reference<XInputStream> on which
it calls calls operator= with a OInputStreamWrapper

I have no idea how to test this, though.

Can you please verify if the above restores compilation?

Best regards,
-- 
Arrigo

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@openoffice.apache.org
For additional commands, e-mail: dev-h...@openoffice.apache.org

Reply via email to