B20.1/EGCS1.1.1: undefineds with -frepo

Graham Dumpleton Graham.Dumpleton@ra.pad.otc.com.au
Wed Feb 17 22:10:00 GMT 1999

Am getting many undefined symbols when using -frepo option on EGCS 1.1.1 to
handle templates. The package I am trying to build is OSE.

I have also been having trouble using -frepo with Cygnus GNUPro C++ 98r2 on
Solaris as well. When I got a small test program together to show the
problem in Cygnus GNUPro, I found it also showed a problem in EGCS 1.1.1
although the set of undefined symbols was actually quite different which
was quite amusing. The good thing was I could send the same test program to
this mailing list and Cygnus which saved me a bit of work, although I think
this may only be the start of the problems I find. :-(

The test program is:

  template<class T>
  class ONE
      virtual ~ONE();

  template<class T>
  ONE<T>::~ONE() { }

  template<class T>
  class TWO

  template<class T>
    new ONE<T>;

  main(int argc, char* argv[])
    TWO<int> obj;

    return 0;

When put in a file called bug.cc and with the commands:

  g++ -frepo -c bug.cc
  g++ bug.o

it generates:

  bug.o(.text+0x10):bug.cc: undefined reference to `TWO<int>::TWO(void)'
  collect2: ld returned 1 exit status

Adding -frepo to the final link line makes no difference.

On Cygnus GNUPro C++ 98r1 this test program works fine, although it has
problems on Cygnus GNUPro C++ 98r2.

I have actually gone back now and managed to build OSE fine using -frepo
with Cygnus GNUPro C++ 98r1, so it isn't the way I am doing things.

Graham Dumpleton (grahamd@nms.otc.com.au)

Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe@sourceware.cygnus.com

More information about the Cygwin mailing list