build difficulty

classic Classic list List threaded Threaded
15 messages Options
dk122 dk122
Reply | Threaded
Open this post in threaded view
|

build difficulty

I am unable to build (after `make clean`) master 139a7d2 (pulled today
around 12:30 UTC).  The messages are, line-wrapped for e-mail, ...

     /home/terry/lo_hacking/git/libo2/workdir/unxlngi6/UnpackedTarball/
         boost/boost/noncopyable.hpp:27:21:
         error: ‘boost::noncopyable_::noncopyable::noncopyable()’ declared
         with non-public access cannot be defaulted in the class body
     /home/terry/lo_hacking/git/libo2/workdir/unxlngi6/UnpackedTarball/
         boost/boost/noncopyable.hpp:28:22:
         error: ‘boost::noncopyable_::noncopyable::~noncopyable()’
         declared with non-public access cannot be defaulted in the class body

I have to suspect that this has something to do with commit 4910c54
"Update the bundled boost to 1.54" combined with the fact that I am
building on an old release, ubuntu-natty (11.04) 32-bit.

Suggestions welcome.

Thanks,
Terry.
_______________________________________________
LibreOffice mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/libreoffice
Kohei Yoshida-5 Kohei Yoshida-5
Reply | Threaded
Open this post in threaded view
|

Re: build difficulty

On 08/29/2013 09:56 AM, [hidden email] wrote:

> I am unable to build (after `make clean`) master 139a7d2 (pulled today
> around 12:30 UTC). The messages are, line-wrapped for e-mail, ...
>
> /home/terry/lo_hacking/git/libo2/workdir/unxlngi6/UnpackedTarball/
> boost/boost/noncopyable.hpp:27:21:
> error: ‘boost::noncopyable_::noncopyable::noncopyable()’ declared
> with non-public access cannot be defaulted in the class body
> /home/terry/lo_hacking/git/libo2/workdir/unxlngi6/UnpackedTarball/
> boost/boost/noncopyable.hpp:28:22:
> error: ‘boost::noncopyable_::noncopyable::~noncopyable()’
> declared with non-public access cannot be defaulted in the class body
>
> I have to suspect that this has something to do with commit 4910c54
> "Update the bundled boost to 1.54" combined with the fact that I am
> building on an old release, ubuntu-natty (11.04) 32-bit.
>
> Suggestions welcome.

Try this change

diff --git a/solenv/gbuild/platform/com_GCC_defs.mk
b/solenv/gbuild/platform/com_GCC_defs.mk
index c9adf88..4b7e413 100644
--- a/solenv/gbuild/platform/com_GCC_defs.mk
+++ b/solenv/gbuild/platform/com_GCC_defs.mk
@@ -66,6 +66,7 @@ gb_CXXFLAGS_COMMON := \
-fmessage-length=0 \
-fno-common \
-pipe \
+ -DBOOST_NO_DEFAULTED_FUNCTIONS \

ifneq ($(HAVE_THREADSAFE_STATICS),TRUE)
gb_CXXFLAGS_COMMON += -fno-threadsafe-statics

I'm having the same issue on my machine running a slightly antiquated
version of openSUSE (11.4), and this change fixes it for me.

Kohei

--
Kohei Yoshida, LibreOffice Calc hacker, SUSE.

_______________________________________________
LibreOffice mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/libreoffice
Stephan van den Akker Stephan van den Akker
Reply | Threaded
Open this post in threaded view
|

Re: build difficulty

Hi Terry and Kohei,

Running openSUSE 11.4 as well, having the same problem as you two.
Over on #libreoffice-dev the suggestion was that my compiler and my
system boost libs are too old. I'm currently trying their suggestion
of:
1 - building boost 1.47 from source
2 - building LO with this boost version

I chose boost version 1.47 because is is the oldest version that has
all the functionality needed by LO. I is old enough to be compatible
with my compiler.

Kohei: Can you explain what your change does? I might try that too.

2013/8/29 Kohei Yoshida <[hidden email]>:

> On 08/29/2013 09:56 AM, [hidden email] wrote:
>>
>> I am unable to build (after `make clean`) master 139a7d2 (pulled today
>> around 12:30 UTC). The messages are, line-wrapped for e-mail, ...
>>
>> /home/terry/lo_hacking/git/libo2/workdir/unxlngi6/UnpackedTarball/
>> boost/boost/noncopyable.hpp:27:21:
>> error: ‘boost::noncopyable_::noncopyable::noncopyable()’ declared
>> with non-public access cannot be defaulted in the class body
>> /home/terry/lo_hacking/git/libo2/workdir/unxlngi6/UnpackedTarball/
>> boost/boost/noncopyable.hpp:28:22:
>> error: ‘boost::noncopyable_::noncopyable::~noncopyable()’
>> declared with non-public access cannot be defaulted in the class body
>>
>> I have to suspect that this has something to do with commit 4910c54
>> "Update the bundled boost to 1.54" combined with the fact that I am
>> building on an old release, ubuntu-natty (11.04) 32-bit.
>>
>> Suggestions welcome.
>
>
> Try this change
>
> diff --git a/solenv/gbuild/platform/com_GCC_defs.mk
> b/solenv/gbuild/platform/com_GCC_defs.mk
> index c9adf88..4b7e413 100644
> --- a/solenv/gbuild/platform/com_GCC_defs.mk
> +++ b/solenv/gbuild/platform/com_GCC_defs.mk
> @@ -66,6 +66,7 @@ gb_CXXFLAGS_COMMON := \
> -fmessage-length=0 \
> -fno-common \
> -pipe \
> + -DBOOST_NO_DEFAULTED_FUNCTIONS \
>
> ifneq ($(HAVE_THREADSAFE_STATICS),TRUE)
> gb_CXXFLAGS_COMMON += -fno-threadsafe-statics
>
> I'm having the same issue on my machine running a slightly antiquated
> version of openSUSE (11.4), and this change fixes it for me.
>
> Kohei
>
> --
> Kohei Yoshida, LibreOffice Calc hacker, SUSE.
>
>
> _______________________________________________
> LibreOffice mailing list
> [hidden email]
> http://lists.freedesktop.org/mailman/listinfo/libreoffice
_______________________________________________
LibreOffice mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/libreoffice
Kohei Yoshida-5 Kohei Yoshida-5
Reply | Threaded
Open this post in threaded view
|

Re: build difficulty

On 08/29/2013 03:27 PM, Stephan van den Akker wrote:
> Kohei: Can you explain what your change does? I might try that too.
No idea exactly, other than that it avoids the lines that cause error in
my build.  I got the idea by reading the offending boost header file
boost/boost/noncopyable.hpp.

Kohei

--
Kohei Yoshida, LibreOffice Calc hacker, SUSE.

_______________________________________________
LibreOffice mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/libreoffice
Kohei Yoshida-5 Kohei Yoshida-5
Reply | Threaded
Open this post in threaded view
|

Re: build difficulty

On 08/29/2013 03:30 PM, Kohei Yoshida wrote:
> On 08/29/2013 03:27 PM, Stephan van den Akker wrote:
>> Kohei: Can you explain what your change does? I might try that too.
> No idea exactly, other than that it avoids the lines that cause error
> in my build.  I got the idea by reading the offending boost header
> file boost/boost/noncopyable.hpp.

Having said that, if I were to guess, I think that macro would avoid
using the new C++11 only syntax that boost now uses by default, and
achieves the same effect using the pre-C++11 syntax equivalent.

Normally we would add some sort of configure check for such C++11 syntax
and take appropriate steps.  But since by my own admission I'm running
an OS that's considered too old, I just use my local fix to get around
this problem.  And I really really need to upgrade my openSUSE
installation on my machine... ;-)

Kohei

--
Kohei Yoshida, LibreOffice Calc hacker, SUSE.

_______________________________________________
LibreOffice mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/libreoffice
Stephan van den Akker Stephan van den Akker
Reply | Threaded
Open this post in threaded view
|

Re: build difficulty

Kohei, don't let me down. I spend most of the day educating the masses
on #libreoffice-dev that 11.4 is not *antiquated* of *end of life*,
but beautifully "Evergreen".

2013/8/29 Kohei Yoshida <[hidden email]>:

> On 08/29/2013 03:30 PM, Kohei Yoshida wrote:
>>
>> On 08/29/2013 03:27 PM, Stephan van den Akker wrote:
>>>
>>> Kohei: Can you explain what your change does? I might try that too.
>>
>> No idea exactly, other than that it avoids the lines that cause error in
>> my build.  I got the idea by reading the offending boost header file
>> boost/boost/noncopyable.hpp.
>
>
> Having said that, if I were to guess, I think that macro would avoid using
> the new C++11 only syntax that boost now uses by default, and achieves the
> same effect using the pre-C++11 syntax equivalent.
>
> Normally we would add some sort of configure check for such C++11 syntax and
> take appropriate steps.  But since by my own admission I'm running an OS
> that's considered too old, I just use my local fix to get around this
> problem.  And I really really need to upgrade my openSUSE installation on my
> machine... ;-)
>
>
> Kohei
>
> --
> Kohei Yoshida, LibreOffice Calc hacker, SUSE.
>
> _______________________________________________
> LibreOffice mailing list
> [hidden email]
> http://lists.freedesktop.org/mailman/listinfo/libreoffice
_______________________________________________
LibreOffice mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/libreoffice
Fridrich Strba-3 Fridrich Strba-3
Reply | Threaded
Open this post in threaded view
|

Re: build difficulty

In reply to this post by Kohei Yoshida-5
Sometimes my question is why on the earth one does not make something
non-copyable by declaring and not defining private copy constructor and
operator= and bothers with the complexity of boost for just this little
thing.

Get me right, I love boost, since it simplifies many things, but then
noncopyable is not one of those things that were difficult without it.

Cheers

Fridrich

On 29/08/13 21:30, Kohei Yoshida wrote:
> On 08/29/2013 03:27 PM, Stephan van den Akker wrote:
>> Kohei: Can you explain what your change does? I might try that too.
> No idea exactly, other than that it avoids the lines that cause error in
> my build.  I got the idea by reading the offending boost header file
> boost/boost/noncopyable.hpp.
>
> Kohei
>

_______________________________________________
LibreOffice mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/libreoffice
Bjoern Michaelsen Bjoern Michaelsen
Reply | Threaded
Open this post in threaded view
|

Re: build difficulty

On Fri, Aug 30, 2013 at 09:16:26AM +0200, Fridrich Strba wrote:
> Sometimes my question is why on the earth one does not make something
> non-copyable by declaring and not defining private copy constructor and
> operator= and bothers with the complexity of boost for just this little
> thing.
>
> Get me right, I love boost, since it simplifies many things, but then
> noncopyable is not one of those things that were difficult without it.

https://en.wikipedia.org/wiki/Inner-platform_effect

(and yes, a point could be made that this applies to gbuild too)

Best,

Bjoern
_______________________________________________
LibreOffice mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/libreoffice
sberg sberg
Reply | Threaded
Open this post in threaded view
|

Re: build difficulty

In reply to this post by Fridrich Strba-3
On 08/30/2013 09:16 AM, Fridrich Strba wrote:
> Sometimes my question is why on the earth one does not make something
> non-copyable by declaring and not defining private copy constructor and
> operator= and bothers with the complexity of boost for just this little
> thing.

...because boost::noncopyable has become the de-facto standard idiom for
this, at least for pre-C++11 code that depends on Boost anyway.
[citation missing]

Stephan
_______________________________________________
LibreOffice mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/libreoffice
Fridrich Strba-3 Fridrich Strba-3
Reply | Threaded
Open this post in threaded view
|

Re: build difficulty

On 30/08/13 11:11, Stephan Bergmann wrote:
> ...because boost::noncopyable has become the de-facto standard idiom for
> this, at least for pre-C++11 code that depends on Boost anyway.
> [citation missing]

Sure, nice to have standard idiom that causes us to have to work-around
implementation bugs. Where two private declarations could be enough. But
then maybe I am too low-level for the modern C++ developers. I even know
how to manage my memory myself :)

F.

_______________________________________________
LibreOffice mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/libreoffice
Thorsten Behrens Thorsten Behrens
Reply | Threaded
Open this post in threaded view
|

Re: build difficulty

In reply to this post by sberg
Stephan Bergmann wrote:
> ...because boost::noncopyable has become the de-facto standard idiom
> for this, at least for pre-C++11 code that depends on Boost anyway.
>
And it's just one line to parse, ~impossible to screw up subtly, and
declarative rather than implicit. It wins hands-down against any other
option there.

-- Thorsten

_______________________________________________
LibreOffice mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/libreoffice

signature.asc (853 bytes) Download Attachment
Bjoern Michaelsen Bjoern Michaelsen
Reply | Threaded
Open this post in threaded view
|

Re: build difficulty

In reply to this post by Fridrich Strba-3
On Fri, Aug 30, 2013 at 11:39:22AM +0200, Fridrich Strba wrote:
> I even know how to manage my memory myself :)

There are two kinds of people making this statement: Those that have been wrong
and those that will be. ;)

Best,

Bjoern
_______________________________________________
LibreOffice mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/libreoffice
sberg sberg
Reply | Threaded
Open this post in threaded view
|

Re: build difficulty

In reply to this post by Fridrich Strba-3
On 08/30/2013 11:39 AM, Fridrich Strba wrote:
> On 30/08/13 11:11, Stephan Bergmann wrote:
>> ...because boost::noncopyable has become the de-facto standard idiom for
>> this, at least for pre-C++11 code that depends on Boost anyway.
>> [citation missing]
>
> Sure, nice to have standard idiom that causes us to have to work-around
> implementation bugs. Where two private declarations could be enough. But
> then maybe I am too low-level for the modern C++ developers. I even know
> how to manage my memory myself :)

The working hypothesis is that if a configuration fails to process uses
of boost::noncopyable, it is sufficiently broken to fail on more
elaborate uses of Boost further down the LO build, too,

Stephan
_______________________________________________
LibreOffice mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/libreoffice
Fridrich Strba-3 Fridrich Strba-3
Reply | Threaded
Open this post in threaded view
|

Re: build difficulty

In reply to this post by Bjoern Michaelsen
On 30/08/13 12:15, bjoern wrote:
> There are two kinds of people making this statement: Those that have been wrong
> and those that will be. ;)

Sure, don't worry, I'll shut up :)

F.

_______________________________________________
LibreOffice mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/libreoffice
Terrence Enger Terrence Enger
Reply | Threaded
Open this post in threaded view
|

Re: build difficulty

In reply to this post by Kohei Yoshida-5
Quoting "Kohei Yoshida" <kohei.yoshida@suse.de>:
[snip]
> + -DBOOST_NO_DEFAULTED_FUNCTIONS \
[snip]
>
> I'm having the same issue on my machine running a slightly antiquated
> version of openSUSE (11.4), and this change fixes it for me.
>
> Kohei

Thank you, Kohei.  My build is making progress.

Terry.