public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
* problems with the recent snapshot (971207)
@ 1997-12-08 11:24 Tudor Hulubei
  1997-12-08 15:55 ` Paul Henning
  0 siblings, 1 reply; 6+ messages in thread
From: Tudor Hulubei @ 1997-12-08 11:24 UTC (permalink / raw)
  To: egcs

[-- Attachment #1: Type: text/plain, Size: 155 bytes --]

Hi,

My program used to compile/link fine with egcs-1.0.  Now I get a bunch
of errors at link-time.  Attached is the log.  Any suggestion?

Thanks,
Tudor


[-- Attachment #2: t.gz --]
[-- Type: application/x-gzip, Size: 1830 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: problems with the recent snapshot (971207)
  1997-12-08 11:24 problems with the recent snapshot (971207) Tudor Hulubei
@ 1997-12-08 15:55 ` Paul Henning
  1997-12-08 17:07   ` H.J. Lu
  1997-12-09  6:04   ` problems with the recent snapshot (971207) Orn E. Hansen
  0 siblings, 2 replies; 6+ messages in thread
From: Paul Henning @ 1997-12-08 15:55 UTC (permalink / raw)
  To: egcs; +Cc: jason, law

I'm refering to egcs-971207 on linux-2.1.71, glibc-2.0.5c with the
following config:

../egcs-971207/configure --host=i686-pc-linux-gnu --prefix=/usr/local/app/egcs --enable-shared --with-gnu-as --with-gnu-ld --norecursion 
# using "../egcs-971207/config/mh-x86pic" and "../egcs-971207/config/mt-x86pic"


I have the same problem the Tudor is having, which appears to be
similar to the problem Jim Peterson was having
(e.g. http://www.cygnus.com/ml/egcs-bugs/1997-Dec/0106.html ).

Essentially, this program won't link:

===
#include <iostream.h>
#include <string>
int main(void) { string s = "Hello, world"; cout << s << endl; return 0; }
===

Just to be sure that I am not running into old C++ libraries, I moved
all the libstc++* and libg++* files (not egcs) to a junk directory and
re-ran ldconfig.  Just to be really-really sure, I renamed
/usr/include/g++ as well.

When I do a "make bootstrap; make -k check", I run into tons of errors
during the g++ tests because ld.so can't find libstd++.so.2.8.0.
Annoying, but fixable.  Re-running "make -k check", I run into the
following failures during libstdc++ check:

Executing on host: /home/phenning/EGCS/Build/build/gcc/xgcc -B/home/phenning/EGCS/Build/build/gcc/ ../../../../egcs-971207/libstdc++/testsuite/libstdc++.tests/../../tests/tstring.cc  -I.. -I../../../../egcs-971207/libstdc++/testsuite/.. -I../../../../egcs-971207/libstdc++/testsuite/../stl -I.   -I/home/phenning/EGCS/Build/egcs-971207/libio -I/home/phenning/EGCS/Build/build/libraries/libio -g -L/home/phenning/EGCS/Build/build/libraries//libstdc++ -lstdc++   -lm  -o /home/phenning/EGCS/Build/build/libraries/libstdc++/testsuite/tstring   
compiler exited with status 1
output is:
/tmp/cca294841.o:/home/phenning/EGCS/Build/build/libraries/libstdc++/testsuite/../../../../egcs-971207/libstdc++/testsuite/../std/bastring.h:148: undefined reference to `ostream & operator<<<char, string_char_traits<char>, __default_alloc_template<false, 0> >(ostream &, basic_string<char, string_char_traits<char>, __default_alloc_template<false, 0> > const &)'
[plus a lot of other similar errors]


so, tstring.cc compilation and tstring.cc -O compilation fail unexpectedly.

What else can I provide to help resolve this?

Cheers,
Paul Henning

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: problems with the recent snapshot (971207)
  1997-12-08 15:55 ` Paul Henning
@ 1997-12-08 17:07   ` H.J. Lu
  1997-12-08 20:22     ` problems with the recent snapshot (971207) (Solved) Jody Goldberg
  1997-12-09  6:04   ` problems with the recent snapshot (971207) Orn E. Hansen
  1 sibling, 1 reply; 6+ messages in thread
From: H.J. Lu @ 1997-12-08 17:07 UTC (permalink / raw)
  To: Paul Henning; +Cc: egcs, jason, law

> 
> 
> I'm refering to egcs-971207 on linux-2.1.71, glibc-2.0.5c with the
> following config:
> 
> ../egcs-971207/configure --host=i686-pc-linux-gnu --prefix=/usr/local/app/egcs --enable-shared --with-gnu-as --with-gnu-ld --norecursion 
> # using "../egcs-971207/config/mh-x86pic" and "../egcs-971207/config/mt-x86pic"
> 
> 
> I have the same problem the Tudor is having, which appears to be
> similar to the problem Jim Peterson was having
> (e.g. http://www.cygnus.com/ml/egcs-bugs/1997-Dec/0106.html ).
> 
> Essentially, this program won't link:
> 
> ===
> #include <iostream.h>
> #include <string>
> int main(void) { string s = "Hello, world"; cout << s << endl; return 0; }
> ===
> 
> Just to be sure that I am not running into old C++ libraries, I moved
> all the libstc++* and libg++* files (not egcs) to a junk directory and
> re-ran ldconfig.  Just to be really-really sure, I renamed
> /usr/include/g++ as well.
> 
> When I do a "make bootstrap; make -k check", I run into tons of errors
> during the g++ tests because ld.so can't find libstd++.so.2.8.0.
> Annoying, but fixable.  Re-running "make -k check", I run into the
> following failures during libstdc++ check:
> 
> Executing on host: /home/phenning/EGCS/Build/build/gcc/xgcc -B/home/phenning/EGCS/Build/build/gcc/ ../../../../egcs-971207/libstdc++/testsuite/libstdc++.tests/../../tests/tstring.cc  -I.. -I../../../../egcs-971207/libstdc++/testsuite/.. -I../../../../egcs-971207/libstdc++/testsuite/../stl -I.   -I/home/phenning/EGCS/Build/egcs-971207/libio -I/home/phenning/EGCS/Build/build/libraries/libio -g -L/home/phenning/EGCS/Build/build/libraries//libstdc++ -lstdc++   -lm  -o /home/phenning/EGCS/Build/build/libraries/libstdc++/testsuite/tstring   
> compiler exited with status 1
> output is:
> /tmp/cca294841.o:/home/phenning/EGCS/Build/build/libraries/libstdc++/testsuite/../../../../egcs-971207/libstdc++/testsuite/../std/bastring.h:148: undefined reference to `ostream & operator<<<char, string_char_traits<char>, __default_alloc_template<false, 0> >(ostream &, basic_string<char, string_char_traits<char>, __default_alloc_template<false, 0> > const &)'
> [plus a lot of other similar errors]
> 
> 
> so, tstring.cc compilation and tstring.cc -O compilation fail unexpectedly.
> 
> What else can I provide to help resolve this?

Same here on i586-linux-gnu. But it was ok on i586-linux-glibc1.
Since egcs 971207 miscompiles things on x86, it is not that strange.

H.J.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: problems with the recent snapshot (971207) (Solved)
  1997-12-08 17:07   ` H.J. Lu
@ 1997-12-08 20:22     ` Jody Goldberg
  1997-12-09  0:46       ` H.J. Lu
  0 siblings, 1 reply; 6+ messages in thread
From: Jody Goldberg @ 1997-12-08 20:22 UTC (permalink / raw)
  To: egcs

On Mon, Dec 08, 1997 at 05:05:56PM -0800, H.J. Lu wrote:
> > /tmp/cca294841.o:/home/phenning/EGCS/Build/build/libraries/libstdc++/testsuite/../../../../egcs-971207/libstdc++/testsuite/../std/bastring.h:148: undefined reference to `ostream & operator<<<char, string_char_traits<char>, __default_alloc_template<false, 0> >(ostream &, basic_string<char, string_char_traits<char>, __default_alloc_template<false, 0> > const &)'
> > [plus a lot of other similar errors]
> > 
> > so, tstring.cc compilation and tstring.cc -O compilation fail unexpectedly.
> > 
> > What else can I provide to help resolve this?
> 
> Same here on i586-linux-gnu. But it was ok on i586-linux-glibc1.
> Since egcs 971207 miscompiles things on x86, it is not that strange.
> 

The patch I submitted for bastring is the source of these problems.  If
you look at the error messages carefully you'll notice

undefined reference to `ostream & operator<<<char, string_char_traits<char>,
		    __default_alloc_template<false, 0>
		                             ^^^^^
>(ostream &, basic_string<char, string_char_traits<char>,
		    __default_alloc_template<false, 0> > const &)'
		                             ^^^^^
In the library you find
    basic_string<char, string_char_traits<char>,
		__default_alloc_template<true, 0> >
		                         ^^^^^

The issue is the -D_PTHREAD during the compilation of sinst.cc.
This causes the thread safe allocator to be used by default under Linux
glibc2.  However, _PTHREAD is NOT defined when tstring.cc is compiled and
it attempts to use the NON-thread safe allocator which was not instantiated
in libstdc++.

I mentioned this issue with the patch but did not have a solution.

What version(s) should go into the library ?  SGI uses _PTHREAD in the stl
and egcs defines it for linux in libstdc++/config/linux.mt.  How should it be
defined for general programs ?

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
jodyg@idt.net  | By definition all answers are replies. Unfortunately,
               | not all replies are answers.  -- JMS

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: problems with the recent snapshot (971207) (Solved)
  1997-12-08 20:22     ` problems with the recent snapshot (971207) (Solved) Jody Goldberg
@ 1997-12-09  0:46       ` H.J. Lu
  0 siblings, 0 replies; 6+ messages in thread
From: H.J. Lu @ 1997-12-09  0:46 UTC (permalink / raw)
  To: jodyg; +Cc: egcs

> 
> On Mon, Dec 08, 1997 at 05:05:56PM -0800, H.J. Lu wrote:
> > > /tmp/cca294841.o:/home/phenning/EGCS/Build/build/libraries/libstdc++/testsuite/../../../../egcs-971207/libstdc++/testsuite/../std/bastring.h:148: undefined reference to `ostream & operator<<<char, string_char_traits<char>, __default_alloc_template<false, 0> >(ostream &, basic_string<char, string_char_traits<char>, __default_alloc_template<false, 0> > const &)'
> > > [plus a lot of other similar errors]
> > > 
> > > so, tstring.cc compilation and tstring.cc -O compilation fail unexpectedly.
> > > 
> > > What else can I provide to help resolve this?
> > 
> > Same here on i586-linux-gnu. But it was ok on i586-linux-glibc1.
> > Since egcs 971207 miscompiles things on x86, it is not that strange.
> > 
> 
> The patch I submitted for bastring is the source of these problems.  If
> you look at the error messages carefully you'll notice
> 
> undefined reference to `ostream & operator<<<char, string_char_traits<char>,
> 		    __default_alloc_template<false, 0>
> 		                             ^^^^^
> >(ostream &, basic_string<char, string_char_traits<char>,
> 		    __default_alloc_template<false, 0> > const &)'
> 		                             ^^^^^
> In the library you find
>     basic_string<char, string_char_traits<char>,
> 		__default_alloc_template<true, 0> >
> 		                         ^^^^^
> 
> The issue is the -D_PTHREAD during the compilation of sinst.cc.
> This causes the thread safe allocator to be used by default under Linux
> glibc2.  However, _PTHREAD is NOT defined when tstring.cc is compiled and
> it attempts to use the NON-thread safe allocator which was not instantiated
> in libstdc++.
> 
> I mentioned this issue with the patch but did not have a solution.
> 
> What version(s) should go into the library ?  SGI uses _PTHREAD in the stl
> and egcs defines it for linux in libstdc++/config/linux.mt.  How should it be
> defined for general programs ?
> 

I don't like to link with -lpthread for my single thread program.
Can we have both in libstdc++, like compiling anything which
includes <alloc.h> twice?

# .... -D_PTHREAD -c -o stlinst.omt stlinst.cc
# .... -c -o stlinst.o stlinst.cc

Will it work?


-- 
H.J. Lu (hjl@gnu.org)

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: problems with the recent snapshot (971207)
  1997-12-08 15:55 ` Paul Henning
  1997-12-08 17:07   ` H.J. Lu
@ 1997-12-09  6:04   ` Orn E. Hansen
  1 sibling, 0 replies; 6+ messages in thread
From: Orn E. Hansen @ 1997-12-09  6:04 UTC (permalink / raw)
  To: Paul Henning; +Cc: egcs, jason, law

Paul Henning writes:
 > 
 > 
 > Essentially, this program won't link:
 > 
 > ===
 > #include <iostream.h>
 > #include <string>
 > int main(void) { string s = "Hello, world"; cout << s << endl; return 0; }
 > ===
 > 

 As the bastring.cc is supplied in the include directory I compiled it
as a template class...

------
#include <string>

template class basic_string<char>;

#include <std/bastring.cc>
------

and then tried to compile a program I have, with this object for
string, but I got the following additional errors... which appears to
indicate that templates are broken.

Menu.o(.data+0x0): multiple definition of `__default_alloc_template<false, 0>::free_list'
main.o(.data+0x34c): first defined here


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~1997-12-09  6:04 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1997-12-08 11:24 problems with the recent snapshot (971207) Tudor Hulubei
1997-12-08 15:55 ` Paul Henning
1997-12-08 17:07   ` H.J. Lu
1997-12-08 20:22     ` problems with the recent snapshot (971207) (Solved) Jody Goldberg
1997-12-09  0:46       ` H.J. Lu
1997-12-09  6:04   ` problems with the recent snapshot (971207) Orn E. Hansen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).