This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: armv4l bootstrap problem in libstdc++-v3


[It's taken me most of today to get this far, the ARM back-end is not a 
place I considered looking for a front-end bug ;-[

This is being triggered by the following code that Nick recently added:

arm.c:

void
arm_init_builtins()
{
  tree endlink = tree_cons (NULL_TREE, void_type_node, NULL_TREE);
  tree int_endlink = tree_cons (NULL_TREE, integer_type_node, endlink);
  tree pchar_type_node = build_pointer_type (char_type_node);

  tree int_ftype_int, void_ftype_pchar;

  /* void func (void *) */
  void_ftype_pchar
    = build_function_type (void_type_node,
			   tree_cons (NULL_TREE, pchar_type_node, endlink));

  ...

However, I can see nothing wrong with the code above -- it's certainly not 
semantically different from the way the i386 backend does this.  But when 
I comment the code out the bug goes away.

Somehow, with the above code in place, the code in 
libstdc++-v3/include/backward/strstream that defines void _M_free (char*) 
is getting mangled at some point between the definition and its use in 
src/strstream.cc

I'm afraid I really don't understand enough about the way the front-end 
(particularly the C++ front-end) works, so I've no idea how to take this 
forward.

Mark (or one of the C++ experts), can you shed any light on this? it's 
causing a fairly major hold-up.

> 
> I've been seeing this error since Dec. 6th (although my last fully
> successful bootstrap was on Dec. 3rd).  CVS trees are pulled shortly after
> 12 AM EST.
> 
> This is a native build on armv4l-unknown-linux-gnu, picked up on the
> nigthly builds...
> 
> [build@compton gcc]$ ./xgcc -v
> Using builtin specs.
> Configured with: /home/build-rpm/BUILD/gcc/configure --enable-debug
> --prefix=/usr/local --with-cpu=strongarm --enable-shared
> --enable-threads=posix --without-cvs armv4l-unknown-linux-gnu
> gcc version 2.97 20001208 (experimental)
> 
> 
> The Error message I get follows.  I can send any more info which is
> needed, simply ask.
> 
> Thanks,
> -Rms
> 
> /home/build-rpm/BUILD/t/gcc/g++ -B/home/build-rpm/BUILD/t/gcc/ -nostdinc++
> -L/home/build-rpm/BUILD/t/armv4l-unknown-linux-gnu/libstdc++-v3/src
> -L/home/build-rpm/BUILD/t/armv4l-unknown-linux-gnu/libstdc++-v3/src/.libs
> -B/usr/local/armv4l-unknown-linux-gnu/bin/
> -B/usr/local/armv4l-unknown-linux-gnu/lib/ -isystem
> /usr/local/armv4l-unknown-linux-gnu/include -nostdinc++
> -I/home/build-rpm/BUILD/gcc/libstdc++-v3/include/std
> -I/home/build-rpm/BUILD/gcc/libstdc++-v3/include/c
> -I/home/build-rpm/BUILD/gcc/libstdc++-v3/libsupc++
> -I/home/build-rpm/BUILD/gcc/libstdc++-v3/include -I../libio
> -I/home/build-rpm/BUILD/gcc/libstdc++-v3/libio
> -I/home/build-rpm/BUILD/gcc/libstdc++-v3/libmath -I../include -g -O2
> -fvtable-thunks -D_GNU_SOURCE -fno-implicit-templates -Wall -Wno-format -W
> -Wwrite-strings -Winline -fdiagnostics-show-location=once
> -ffunction-sections -fdata-sections -O0 -ggdb3 -c
> /home/build-rpm/BUILD/gcc/libstdc++-v3/src/strstream.cc  -fPIC -DPIC -o
> .libs/strstream.o
> /home/build-rpm/BUILD/gcc/libstdc++-v3/src/strstream.cc: In destructor
> `virtual 
>    std::strstreambuf::~strstreambuf()':
> /home/build-rpm/BUILD/gcc/libstdc++-v3/src/strstream.cc:111: no matching 
>    function for call to `std::strstreambuf::_M_free (char*)'
> /home/build-rpm/BUILD/gcc/libstdc++-v3/include/backward/strstream:77:
> candidates
>    are: void std::strstreambuf::_M_free(char*, void, ...)
> /home/build-rpm/BUILD/gcc/libstdc++-v3/src/strstream.cc: In member
> function 
>    `virtual unsigned int std::strstreambuf::overflow(unsigned int)':
> /home/build-rpm/BUILD/gcc/libstdc++-v3/src/strstream.cc:158: no matching 
>    function for call to `std::strstreambuf::_M_free (char*&)'
> /home/build-rpm/BUILD/gcc/libstdc++-v3/include/backward/strstream:77:
> candidates
>    are: void std::strstreambuf::_M_free(char*, void, ...)
> make[4]: *** [strstream.lo] Error 1
> make[4]: Leaving directory
> `/home/build-rpm/BUILD/t/armv4l-unknown-linux-gnu/libstdc++-v3/src'
> 
> 



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]