[sigc] Re: [gtkmm] Re: Problems compiling libsigc++-2.0.3 on Slackware



Hi Juergen,

obviously I did miss your email. I think we should try to reproduce the error with a test case. I will ask you to compile such test cases until we know what causes the compiler error in trackable.h and how to avoid it. If anyone has any idea, please speak up! Attached is a second test case that follows the code from trackable.h more closely than the first trivial test.

Juergen, could you please submit a bug report to bugzilla.gnome.org including the compiler error and your configuration? We can move the discussion there.

Regards,

 Martin


Am 14.08.2004 10:21:14 schrieb(en) Juergen Rose:
Hi Martin,

On Fri, 2004-08-13 at 10:34 +0200, wrote:
> Hi Juergen,
>
> if I remember correctly, Yaakov (whom you refer to below) had a
different
> problem. I think he ran 'autoconf' but that resulted in a wrong
> sigc++config.h being created during configure.
>
> As regards to your problem I'm afraid that I don't have any idea
what is
> causing it. Have you tried the simple std::list compile test that I
posted
> earlier on the mailing list? I can repost it tonight if you missed
that
> mail.
...
I suppose you missed my answer, I send one week ago, to your mail ;-).


         Tue, 2004-08-03 at 10:53 +0200, Martin Schulze wrote:
        ...
        > Woops, sorry - I thaught you were familier with the stl
        library.
        > Obviously, you didn't '#include <list>' ?!

        I am even a C++ beginner. After inclusion of <list> the test
        program was
        perfectly compiled. I.e., the test program has no problems,
but
        still .../libsigc++-2.0.3/sigc++/trackable.h. Do you have a
        further
        suggestion?

What can I still do? I already tested to compile libsigc++-2.0.4- test4
on a gentoo system, (libsigc++-2.0.1 was already installed by emerge)
it
compiles without problems. The gcc specs are rather different from the
gcc specs on my slackware system:

root antigua:/usr/src/Test/libsigc++-2.0.4(7)# gcc -v
Reading specs from /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.4/specs
Configured with: /var/tmp/portage/gcc-3.3.4-r1/work/gcc-3.3.4/ configure
--prefix=/usr --bindir=/usr/i686-pc-linux-gnu/gcc-bin/3.3 --
includedir=/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.4/include --
datadir=/usr/share/gcc-data/i686-pc-linux-gnu/3.3 --
mandir=/usr/share/gcc-data/i686-pc-linux-gnu/3.3/man --
infodir=/usr/share/gcc-data/i686-pc-linux-gnu/3.3/info --enable- shared --host=i686-pc-linux-gnu --target=i686-pc-linux-gnu --with-system- zlib
--enable-languages=c,c++,f77,java --enable-threads=posix
--enable-long-
long --disable-checking --disable-libunwind-exceptions --enable-
cstdio=stdio --enable-version-specific-runtime-libs
--with-gxx-include-
dir=/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.4/include/g++-v3 --with-
local-prefix=/usr/local --enable-shared --enable-nls
--without-included-
gettext --x-includes=/usr/X11R6/include --x-libraries=/usr/X11R6/lib
--
enable-interpreter --enable-java-awt=xlib --with-x --disable-multilib
--
enable-__cxa_atexit --enable-clocale=generic
Thread model: posix
gcc version 3.3.4 20040623 (Gentoo Linux 3.3.4-r1, ssp-3.3.2-2,
pie-8.7.6)

The gcc specs on the slackware systems you find below in the quoted
text.

> > I just test it (to be precise, I used
http://www.hippogriff.de/libsigc+
> > +-2.0.4-test4.tar.gz) , but I still have the same error.
> >
> > make[3]: Entering directory
> > `/usr/src_mousehomenet/Desktops/Gnome/libsigc++-2.0.4/sigc++'
> > if /bin/sh ../libtool --mode=compile g++ -DHAVE_CONFIG_H   -I..
-I..   -
> > g -O2 -MT signal_base.lo -MD -MP -MF ".deps/signal_base.Tpo" -c - o
> > signal_base.lo signal_base.cc; \
> > then mv -f ".deps/signal_base.Tpo" ".deps/signal_base.Plo"; else
rm -f
> > ".deps/signal_base.Tpo"; exit 1; fi
> > g++ -DHAVE_CONFIG_H -I.. -I.. -g -O2 -MT signal_base.lo -MD -MP -
> > MF .deps/signal_base.Tpo -c signal_base.cc  -fPIC -DPIC -
> > o .libs/signal_base.o
> > In file included from signal.h:10,
> >                  from /usr/include/pthread.h:24,
> >                  from /usr/include/c++/3.3.4/i686-pc-linux-
> > gnu/bits/gthr-default.h:37,
> >                  from /usr/include/c++/3.3.4/i686-pc-linux-
> > gnu/bits/gthr.h:98,
> > from /usr/include/c++/3.3.4/i686-pc-linux-gnu/ bits/c+
> > +io.h:37,
> >                  from /usr/include/c++/3.3.4/bits/fpos.h:44,
> >                  from /usr/include/c++/3.3.4/iosfwd:49,
> > from /usr/include/c++/3.3.4/bits/stl_algobase. h:70,
> >                  from /usr/include/c++/3.3.4/list:67,
> >                  from ../sigc++/signal_base.h:24,
> >                  from signal_base.cc:20:
> > ../sigc++/trackable.h:76: error: template-id `
> >    list<sigc::internal::trackable_callback>' used as a declarator
> > ../sigc++/trackable.h:76: error: parse error before `;' token
> > ../sigc++/trackable.h:77: error: 'callback_list' is used as a
type, but
> > is not
> >    defined as a type.
> >
> > I find the same behaviour on three systems, all slackware and
gcc-3.3.2
> > or gcc-3.3.4. Everywhere I have the following gcc specs (gcc -v)
> > Reading specs from /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.[24]/ specs > > Configured with: ../gcc-3.3.[24]/configure --prefix=/usr -- enable-
> > threads
> > Thread model: posix
> > gcc version 3.3.[24]
> > Is there something wrong with these specs?
...

	Regards Juergen

--
Juergen Rose <rose rz uni-potsdam de>
University of Potsdam


#include <list>

namespace test {

namespace internal {

typedef void* (*func_destroy_notify) (void* data);

struct foo
{
  void* data_;
  func_destroy_notify func_;
};

struct bar
{
  bar()
    : clearing_(false) {}

private:
  typedef std::list<foo> callback_list;
  callback_list callbacks_;
  bool          clearing_;
};

} /* namespace internal */

struct pub
{
  internal::bar* the_bar;
};

} /* namespace test */


int main() {
  test::internal::bar my_bar;
  test::pub my_pub;
  return 0;
}


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]