This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Bug in -frepo (gcc-2.95 and earlier egcs releases)
- To: gcc-bugs at gcc dot gnu dot org
- Subject: Bug in -frepo (gcc-2.95 and earlier egcs releases)
- From: "Knut-Håvard Aksnes" <knut at orion dot no>
- Date: Tue, 3 Aug 1999 11:08:16 +0200 (CEST)
-frepo fails to instantiate all necesary templates in some
situations. Some templates leads require new templates iterated
invokation of the linker is probably needed.:
cd /home/knut/devroot/src/TS/ValueAtRisk/
cat foo.cpp; echo; echo; c++ -v --save-temps -frepo -g -O2 -c foo.cpp ; c++ -v --save-temps -frepo -o foo foo.cpp
#include<string>
#include<map>
int main(int argc, char* argv[])
{
std::map<std::string, int> foo;
foo["bar"]=1;
cerr << foo["bar"] << endl;
return 0;
}
Reading specs from /usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95/specs
gcc version 2.95 19990728 (release)
/usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95/cpp -lang-c++ -v -D__GNUC__=2 -D__GNUG__=2 -D__GNUC_MINOR__=95 -D__cplusplus -D__ELF__ -Dunix -D__i386__ -Dlinux -D__ELF__ -D__unix__ -D__i386__ -D__linux__ -D__unix -D__linux -Asystem(posix) -D__EXCEPTIONS -D__OPTIMIZE__ -g -Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ -Di686 -Dpentiumpro -D__i686 -D__i686__ -D__pentiumpro -D__pentiumpro__ foo.cpp foo.ii
GNU CPP version 2.95 19990728 (release) (i386 Linux/ELF)
#include "..." search starts here:
#include <...> search starts here:
/usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95/../../../../include/g++-3
/usr/local/include
/usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95/../../../../i686-pc-linux-gnu/include
/usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95/include
/usr/include
End of search list.
The following default directories have been omitted from the search path:
End of omitted list.
/usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95/cc1plus foo.ii -quiet -dumpbase foo.cc -g -O2 -version -frepo -o foo.s
GNU C++ version 2.95 19990728 (release) (i686-pc-linux-gnu) compiled by GNU C version 2.95 19990728 (release).
/usr/local/i686-pc-linux-gnu/bin/as -V -Qy -o foo.o foo.s
GNU assembler version 2.9.1 (i686-pc-linux-gnu), using BFD version 2.9.1.0.19
Reading specs from /usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95/specs
gcc version 2.95 19990728 (release)
/usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95/cpp -lang-c++ -v -D__GNUC__=2 -D__GNUG__=2 -D__GNUC_MINOR__=95 -D__cplusplus -D__ELF__ -Dunix -D__i386__ -Dlinux -D__ELF__ -D__unix__ -D__i386__ -D__linux__ -D__unix -D__linux -Asystem(posix) -D__EXCEPTIONS -Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ -Di686 -Dpentiumpro -D__i686 -D__i686__ -D__pentiumpro -D__pentiumpro__ foo.cpp foo.ii
GNU CPP version 2.95 19990728 (release) (i386 Linux/ELF)
#include "..." search starts here:
#include <...> search starts here:
/usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95/../../../../include/g++-3
/usr/local/include
/usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95/../../../../i686-pc-linux-gnu/include
/usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95/include
/usr/include
End of search list.
The following default directories have been omitted from the search path:
End of omitted list.
/usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95/cc1plus foo.ii -quiet -dumpbase foo.cc -version -frepo -o foo.s
GNU C++ version 2.95 19990728 (release) (i686-pc-linux-gnu) compiled by GNU C version 2.95 19990728 (release).
foo.cpp:0: warning: -frepo must be used with -c
/usr/local/i686-pc-linux-gnu/bin/as -V -Qy -o foo.o foo.s
GNU assembler version 2.9.1 (i686-pc-linux-gnu), using BFD version 2.9.1.0.19
/usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95/collect2 -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 -o foo /usr/lib/crt1.o /usr/lib/crti.o /usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95/crtbegin.o -L/usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95 -L/usr/local/i686-pc-linux-gnu/lib -L/usr/local/lib foo.o -lstdc++ -lm -lgcc -lc -lgcc /usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95/crtend.o /usr/lib/crtn.o
foo.o: In function `map<basic_string<char, string_char_traits<char>, __default_alloc_template<1, 0> >, int, less<basic_string<char, string_char_traits<char>, __default_alloc_template<1, 0> > >, allocator<int> >::lower_bound(basic_string<char, string_char_traits<char>, __default_alloc_template<1, 0> > const &)':
foo.o(.map<basic_string<char, string_char_traits<char>, __default_alloc_template<true, 0> >, int, less<basic_string<char, string_char_traits<char>, __default_alloc_template<true, 0> > >, allocator<int> >::gnu.linkonce.t.lower_bound(basic_string<char, string_char_traits<char>, __default_alloc_template<true, 0> > const &)+0x19): undefined reference to `_Rb_tree<basic_string<char, string_char_traits<char>, __default_alloc_template<1, 0> >, pair<basic_string<char, string_char_traits<char>, __default_alloc_template<1, 0> > const, int>, _Select1st<pair<basic_string<char, string_char_traits<char>, __default_alloc_template<1, 0> > const, int> >, less<basic_string<char, string_char_traits<char>, __default_alloc_template<1, 0> > >, allocator<int> >::lower_bound(basic_string<char, string_char_traits<char>, __default_alloc_template<1, 0> > const &)'
foo.o: In function `map<basic_string<char, string_char_traits<char>, __default_alloc_template<1, 0> >, int, less<basic_string<char, string_char_traits<char>, __default_alloc_template<1, 0> > >, allocator<int> >::insert(_Rb_tree_iterator<pair<basic_string<char, string_char_traits<char>, __default_alloc_template<1, 0> > const, int>, pair<basic_string<char, string_char_traits<char>, __default_alloc_template<1, 0> > const, int> &, pair<basic_string<char, string_char_traits<char>, __default_alloc_template<1, 0> > const, int> *>, pair<basic_string<char, string_char_traits<char>, __default_alloc_template<1, 0> > const, int> const &)':
foo.o(.map<basic_string<char, string_char_traits<char>, __default_alloc_template<true, 0> >, int, less<basic_string<char, string_char_traits<char>, __default_alloc_template<true, 0> > >, allocator<int> >::gnu.linkonce.t.insert(_Rb_tree_iterator<pair<basic_string<char, string_char_traits<char>, __default_alloc_template<true, 0> > const, int>, pair<basic_string<char, string_char_traits<char>, __default_alloc_template<true, 0> > const, int> &, pair<basic_string<char, string_char_traits<char>, __default_alloc_template<true, 0> > const, int> *>, pair<basic_string<char, string_char_traits<char>, __default_alloc_template<true, 0> > const, int> const &)+0x2f): undefined reference to `_Rb_tree<basic_string<char, string_char_traits<char>, __default_alloc_template<1, 0> >, pair<basic_string<char, string_char_traits<char>, __default_alloc_template<1, 0> > const, int>, _Select1st<pair<basic_string<char, string_char_traits<char>, __default_alloc_template<1, 0> > const, int> >, less<basic_string<char, string_char_traits<char>, __default_alloc_template<1, 0> > >, allocator<int> >::insert_unique(_Rb_tree_iterator<pair<basic_string<char, string_char_traits<char>, __default_alloc_template<1, 0> > const, int>, pair<basic_string<char, string_char_traits<char>, __default_alloc_template<1, 0> > const, int> &, pair<basic_string<char, string_char_traits<char>, __default_alloc_template<1, 0> > const, int> *>, pair<basic_string<char, string_char_traits<char>, __default_alloc_template<1, 0> > const, int> const &)'
foo.o: In function `_Rb_tree<basic_string<char, string_char_traits<char>, __default_alloc_template<1, 0> >, pair<basic_string<char, string_char_traits<char>, __default_alloc_template<1, 0> > const, int>, _Select1st<pair<basic_string<char, string_char_traits<char>, __default_alloc_template<1, 0> > const, int> >, less<basic_string<char, string_char_traits<char>, __default_alloc_template<1, 0> > >, allocator<int> >::clear(void)':
foo.o(._Rb_tree<basic_string<char, string_char_traits<char>, __default_alloc_template<true, 0> >, pair<basic_string<char, string_char_traits<char>, __default_alloc_template<true, 0> > const, int>, _Select1st<pair<basic_string<char, string_char_traits<char>, __default_alloc_template<true, 0> > const, int> >, less<basic_string<char, string_char_traits<char>, __default_alloc_template<true, 0> > >, allocator<int> >::gnu.linkonce.t.clear(void)+0x28): undefined reference to `_Rb_tree<basic_string<char, string_char_traits<char>, __default_alloc_template<1, 0> >, pair<basic_string<char, string_char_traits<char>, __default_alloc_template<1, 0> > const, int>, _Select1st<pair<basic_string<char, string_char_traits<char>, __default_alloc_template<1, 0> > const, int> >, less<basic_string<char, string_char_traits<char>, __default_alloc_template<1, 0> > >, allocator<int> >::_M_erase(_Rb_tree_node<pair<basic_string<char, string_char_traits<char>, __default_alloc_template<1, 0> > const, int> > *)'
collect2: ld returned 1 exit status
foo.ii.bz2