c++/4626

Chris Rankin rankincj@yahoo.com
Sat Oct 20 20:56:00 GMT 2001


The following reply was made to PR c++/4626; it has been noted by GNATS.

From: Chris Rankin <rankincj@yahoo.com>
To: gcc-bugs@gcc.gnu.org, gcc-gnats@gcc.gnu.org
Cc:  
Subject: Re: c++/4626
Date: Sat, 20 Oct 2001 20:48:18 -0700 (PDT)

 Preprocessed source is irrelevant here. You will need
 a compiler with the following configuration:
 
 $ g++ -v
 Reading specs from
 /usr/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/specs
 Configured with: ../gcc-3.0.1/configure --prefix=/usr
 --enable-shared --enable-nls --enable-threads=posix
 --enable-version-specific-runtime-libs
 Thread model: posix
 gcc version 3.0.1
 
 The rest is just ANY code that uses "-frepo". I
 knocked this trivial example together in 5 minutes
 flat:
 
 -- Makefile----------------------------------
 SRC=bug_stl.cpp main.cpp
 OBJ=$(SRC:.cpp=.o)
 
 BINARIES=bug
 
 bug: $(OBJ)
   $(CXX) $(LDFLAGS) $(CXXFLAGS) -o $@ $^
 
 .PHONY: clean
 
 clean:
   $(RM) *.o *.rpo $(BINARIES)
 
 %.o: %.cpp
   $(CXX) $(CXXFLAGS) -frepo -c $< -o $@
 
 
 -- bug_stl.h -----------------------------
 #ifndef BUG_STL_H
 #define BUG_STL_H
 
 void any_old_template_crap();
 
 #endif
 
 -- bug_stl.cpp ---------------------------
 #include <vector>
 #include <string>
 using namespace std;
 
 #include "bug_stl.h"
 
 typedef vector<string>  VECTOR;
 
 
 void
 any_old_template_crap()
 {
   VECTOR  v;
 
   for (int i = 0; i < 100; ++i)
   {
     v.push_back("FOR FUCK'S SAKE!");
   } /* for */
 }
 
 -- main.cpp ---------------------------------
 #include "bug_stl.h"
 
 int
 main()
 {
   any_old_template_crap();
   return 0;
 }
 
 ----------------------------------------------
 Then you type "make":
 
 $ make
 g++  -frepo -c bug_stl.cpp -o bug_stl.o
 g++  -frepo -c main.cpp -o main.o
 g++   -o bug bug_stl.o main.o
 collect: recompiling bug_stl.cpp
 In file included from
 /usr/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/include/g++/bits/std_cstring.h:37,
                  from
 /usr/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/include/g++/bits/stl_algobase.h:71,
                  from
 /usr/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/include/g++/bits/std_vector.h:62,
                  from
 /usr/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/include/g++/vector:31,
                  from bug_stl.cpp:1:
 /usr/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/include/g++/bits/std_cstddef.h:38:25:
 stddef.h: No such file or directory
 
 You can work around by copying those include files
 into /usr/i686-pc-linux-gnu/include:
 
 $ make clean
 rm -f *.o *.rpo bug
 $ ls -als /usr/i686-pc-linux-gnu/include/
 total 24
    4 drwxr-xr-x    2 root     root         4096 Oct 20
 20:47 .
    4 drwxr-xr-x    5 root     root         4096 Jul 22
  2000 ..
    4 -rw-r--r--    1 root     root         3554 Oct 20
 12:49 limits.h
   12 -rw-r--r--    1 root     root        11242 Oct 20
 12:45 stddef.h
 $ make
 g++  -frepo -c bug_stl.cpp -o bug_stl.o
 g++  -frepo -c main.cpp -o main.o
 g++   -o bug bug_stl.o main.o
 collect: recompiling bug_stl.cpp
 collect: relinking
 collect: recompiling bug_stl.cpp
 collect: relinking
 
 Ta Da!
 
 Chris
 
 
 __________________________________________________
 Do You Yahoo!?
 Make a great connection at Yahoo! Personals.
 http://personals.yahoo.com



More information about the Gcc-prs mailing list