[haiku-development] Re: Question
- From: Ingo Weinhold <bonefish@xxxxxxxxxxxxxxx>
- To: haiku-development@xxxxxxxxxxxxx
- Date: Wed, 05 Sep 2007 00:13:52 +0200
On 2007-09-04 at 23:11:45 [+0200], HOST <HOST.HAIKU@xxxxxx> wrote:
>
> while building HAIKU with gcc4 we noticed a bunch of warnings thrown
> from gcc. mostly BStatable and others declared without a virtual
> destructor. looking in to the source file of
> ~/headers/os/storage/Statable.h there is an statemant like #if __GNUC__
> > 3 but it seems the header used comes from
> ~/headers/build/os/storage/Statable.h that does not have the above
> statement.
It's just general laziness, that the "build" version has not been fixed
yet. There the destructor can be even be added unconditionally.
> can one give some hints of the use of the build folder?
It's the headers directory used when building build tools that use the BeOS
API (rc, xres, setversion, mimeset, etc.) on build platforms other than
BeOS (e.g. Linux or FreeBSD). The corresponding libraries live in
src/build/{libroot,libbe}. The latter is a stripped down and modified
version of the Haiku's libbe (probably somewhat outdated). The libroot
build implementation tries to map the BeOS API to available POSIX functions
or extensions. E.g. on Linux we can emulate BeOS attribute support using
xattrs, otherwise we're using files in a dedicated directory.
> the second thing we noticed is the following:
> ...
> ../../../headers/os/interface/View.h:516: warning: 'virtual BAlignment
> BView::Alignment()' was hidden
> ../../../headers/os/interface/TextView.h:222: warning: by 'alignment
> BTextView::Alignment() const
> ...
> maybe it was done intentionally while integrating the layout system and
> is meant to stay as of R1 and BTextView::Alignment and others get
> renamed afterwards? It also applys for BStringView and some others. any
> infos on that?
That was indeed unintended. I didn't realize it until way later when
compiling with gcc 4. I'm not sure how to solve this best. It's either
renaming the new Alignment() (the virtual one) e.g. to GetAlignment() (we
already have a GetLayout() due to that), or breaking source compatibility
by renaming the old ones (while keeping the symbols for binary
compatibility).
CU, Ingo
- References:
- [haiku-development] Question
- From: HOST
Other related posts:
- » [haiku-development] Question
- » [haiku-development] Re: Question
- [haiku-development] Question
- From: HOST