public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* Unreviewed C++ patch for PA (HP assembler)
@ 2001-11-21 15:42 John David Anglin
  2001-11-30 18:45 ` John David Anglin
  2001-12-03  2:38 ` Jason Merrill
  0 siblings, 2 replies; 19+ messages in thread
From: John David Anglin @ 2001-11-21 15:42 UTC (permalink / raw)
  To: gcc-patches; +Cc: mark

This patch needs review:

<http://gcc.gnu.org/ml/gcc-patches/2001-09/msg00899.html>.

Thanks,
Dave
-- 
J. David Anglin                                  dave.anglin@nrc.ca
National Research Council of Canada              (613) 990-0752 (FAX: 952-6605)

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

* Unreviewed C++ patch for PA (HP assembler)
  2001-11-21 15:42 Unreviewed C++ patch for PA (HP assembler) John David Anglin
@ 2001-11-30 18:45 ` John David Anglin
  2001-12-03  2:38 ` Jason Merrill
  1 sibling, 0 replies; 19+ messages in thread
From: John David Anglin @ 2001-11-30 18:45 UTC (permalink / raw)
  To: gcc-patches; +Cc: mark

This patch needs review:

< http://gcc.gnu.org/ml/gcc-patches/2001-09/msg00899.html >.

Thanks,
Dave
-- 
J. David Anglin                                  dave.anglin@nrc.ca
National Research Council of Canada              (613) 990-0752 (FAX: 952-6605)

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

* Re: Unreviewed C++ patch for PA (HP assembler)
  2001-11-21 15:42 Unreviewed C++ patch for PA (HP assembler) John David Anglin
  2001-11-30 18:45 ` John David Anglin
@ 2001-12-03  2:38 ` Jason Merrill
  2001-12-03  8:25   ` John David Anglin
  2001-12-03 10:22   ` John David Anglin
  1 sibling, 2 replies; 19+ messages in thread
From: Jason Merrill @ 2001-12-03  2:38 UTC (permalink / raw)
  To: John David Anglin; +Cc: gcc-patches, mark

This seems like the wrong fix; there's nothing special about the type_info
classes that would merit this kind of treatment.  Why doesn't it work for
them to be internal?

Jason

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

* Re: Unreviewed C++ patch for PA (HP assembler)
  2001-12-03  2:38 ` Jason Merrill
@ 2001-12-03  8:25   ` John David Anglin
  2001-12-03 11:04     ` Jason Merrill
  2001-12-03 10:22   ` John David Anglin
  1 sibling, 1 reply; 19+ messages in thread
From: John David Anglin @ 2001-12-03  8:25 UTC (permalink / raw)
  To: Jason Merrill; +Cc: gcc-patches, mark

> This seems like the wrong fix; there's nothing special about the type_info
> classes that would merit this kind of treatment.  Why doesn't it work for
> them to be internal?

It doesn't work because no implementation is generated for these classes
when they are "internal".  The type_info classes are implemented with global
linkage in libstdc++.  Thus, either the type_info classes need to have
external linkage or a local implementation needs to be provided in each
object.  In the latter case, the type_info classes probably shouldn't have
global scope in libstdc++.

There are definitely more issues like this.  The GNU assembler treats
undefined references as external whereas this is an error with the HP
assembler.  I haven't done any sort of complete investigation on this
matter but I do know that many of the additional failures observed in
the testsuite with HP assembler are due to undefined symbols.

Here is a run with the HP assembler:
<http://gcc.gnu.org/ml/gcc-testresults/2001-08/msg00762.html>.

Here is one with the GNU assembler:
<http://gcc.gnu.org/ml/gcc-testresults/2001-08/msg00614.html>.

This is problably a separate issue but the most serious issue with
libstdc++ on systems without weak support is some templates are not
properly being instantiated:

Executing on host: /xxx/gnu/gcc-3.1/objdir/gcc/g++ -B/xxx/gnu/gcc-3.1/objdir/gcc/ -nostdinc++ -L/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.11/libstdc++-v3/src -L/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.11/libstdc++-v3/src/.libs -B/opt/gnu/hppa2.0w-hp-hpux11.11/bin/ -B/opt/gnu/hppa2.0w-hp-hpux11.11/lib/ -isystem /opt/gnu/hppa2.0w-hp-hpux11.11/include -g -DDEBUG_ASSERT -DLOCALEDIR="/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.11/libstdc++-v3/po/share/locale" -nostdinc++ -I/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.11/libstdc++-v3/include/hppa2.0w-hp-hpux11.11 -I/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.11/libstdc++-v3/include -I/xxx/gnu/gcc-3.1/libstdc++-v3/libsupc++ -I/xxx/gnu/gcc-3.1/libstdc++-v3/libio -I/xxx/gnu/gcc-3.1/libstdc++-v3/include/backward -I/xxx/gnu/gcc-3.1/libstdc++-v3/testsuite /xxx/gnu/gcc-3.1/libstdc++-v3/testsuite/22_locale/collate.cc    -DDEBUG_ASSERT  -lm   -o ./collate    (timeout = 300)
/usr/ccs/bin/ld: Unsatisfied symbols:
   std::basic_string<unsigned char, std::char_traits<unsigned char>, std::allocator<unsigned char> >::_Rep::_S_max_size(data)
   std::basic_string<unsigned char, std::char_traits<unsigned char>, std::allocator<unsigned char> >::_Rep::_S_terminal(data)
collect2: ld returned 1 exit status

I mention this because it again involves undefined symbols.

Dave
-- 
J. David Anglin                                  dave.anglin@nrc.ca
National Research Council of Canada              (613) 990-0752 (FAX: 952-6605)

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

* Re: Unreviewed C++ patch for PA (HP assembler)
  2001-12-03  2:38 ` Jason Merrill
  2001-12-03  8:25   ` John David Anglin
@ 2001-12-03 10:22   ` John David Anglin
  1 sibling, 0 replies; 19+ messages in thread
From: John David Anglin @ 2001-12-03 10:22 UTC (permalink / raw)
  To: Jason Merrill; +Cc: gcc-patches, mark

> This seems like the wrong fix; there's nothing special about the type_info
> classes that would merit this kind of treatment.  Why doesn't it work for
> them to be internal?

/xxx/gnu/gcc-3.1/objdir/gcc/xgcc -B/xxx/gnu/gcc-3.1/objdir/gcc/ -nostdinc++ -L/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.11/libstdc++-v3/src -L/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.11/libstdc++-v3/src/.libs -B/opt/gnu/hppa2.0w-hp-hpux11.11/bin/ -B/opt/gnu/hppa2.0w-hp-hpux11.11/lib/ -isystem /opt/gnu/hppa2.0w-hp-hpux11.11/include -I../../../../libstdc++-v3/../gcc -I../../../../libstdc++-v3/../include -I/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.11/libstdc++-v3/include/hppa2.0w-hp-hpux11.11 -I/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.11/libstdc++-v3/include -I../../../../libstdc++-v3/libsupc++ -g -O2 -fno-implicit-templates -Wall -Wno-format -W -Wwrite-strings -Winline -fdiagnostics-show-location=once -g -c ../../../../libstdc++-v3/libsupc++/eh_aux_runtime.cc
cc1plus: warning: -g is only supported when using GAS on this processor,
cc1plus: warning: -g option disabled.
as: error 7403: undefined label - _ZTVN10__cxxabiv120__si_class_type_infoE (7403)
make[3]: *** [eh_aux_runtime.lo] Error 1

Dave
-- 
J. David Anglin                                  dave.anglin@nrc.ca
National Research Council of Canada              (613) 990-0752 (FAX: 952-6605)

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

* Re: Unreviewed C++ patch for PA (HP assembler)
  2001-12-03  8:25   ` John David Anglin
@ 2001-12-03 11:04     ` Jason Merrill
  2001-12-03 11:13       ` John David Anglin
                         ` (3 more replies)
  0 siblings, 4 replies; 19+ messages in thread
From: Jason Merrill @ 2001-12-03 11:04 UTC (permalink / raw)
  To: John David Anglin; +Cc: gcc-patches, mark

>>>>> "John" == John David Anglin <dave@hiauly1.hia.nrc.ca> writes:

>> This seems like the wrong fix; there's nothing special about the type_info
>> classes that would merit this kind of treatment.  Why doesn't it work for
>> them to be internal?

> It doesn't work because no implementation is generated for these classes
> when they are "internal".  The type_info classes are implemented with global
> linkage in libstdc++.  Thus, either the type_info classes need to have
> external linkage or a local implementation needs to be provided in each
> object.  In the latter case, the type_info classes probably shouldn't have global
> scope in libstdc++.

OK, they shouldn't be internal.  The vtables for the *_type_info classes
have global linkage in libstdc++ because the compiler can see that they
have a non-inline, non-pure virtual function which it can use to decide
where the vtable should go.  But that should be the case everywhere these
classes are used; what code are you compiling that results in these classes
being internal?

> /usr/ccs/bin/ld: Unsatisfied symbols:
>    std::basic_string<unsigned char, std::char_traits<unsigned char>, std::allocator<unsigned char> >::_Rep::_S_max_size(data)
>    std::basic_string<unsigned char, std::char_traits<unsigned char>, std::allocator<unsigned char> >::_Rep::_S_terminal(data)
> collect2: ld returned 1 exit status

Hmm.  _S_max_size should already be instantiated in src/string-inst.cc, but
it looks like we need to add an explicit instantiation for _S_terminal.

Jason

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

* Re: Unreviewed C++ patch for PA (HP assembler)
  2001-12-03 11:04     ` Jason Merrill
@ 2001-12-03 11:13       ` John David Anglin
  2001-12-03 11:24         ` Jason Merrill
  2001-12-03 11:40       ` Jason Merrill
                         ` (2 subsequent siblings)
  3 siblings, 1 reply; 19+ messages in thread
From: John David Anglin @ 2001-12-03 11:13 UTC (permalink / raw)
  To: Jason Merrill; +Cc: gcc-patches, mark

> where the vtable should go.  But that should be the case everywhere these
> classes are used; what code are you compiling that results in these classes
> being internal?

It happens building libstdc++.  I sent an example a few minutes ago.

Dave
-- 
J. David Anglin                                  dave.anglin@nrc.ca
National Research Council of Canada              (613) 990-0752 (FAX: 952-6605)

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

* Re: Unreviewed C++ patch for PA (HP assembler)
  2001-12-03 11:13       ` John David Anglin
@ 2001-12-03 11:24         ` Jason Merrill
  0 siblings, 0 replies; 19+ messages in thread
From: Jason Merrill @ 2001-12-03 11:24 UTC (permalink / raw)
  To: John David Anglin; +Cc: gcc-patches, mark

>>>>> "John" == John David Anglin <dave@hiauly1.hia.nrc.ca> writes:

>> where the vtable should go.  But that should be the case everywhere these
>> classes are used; what code are you compiling that results in these classes
>> being internal?

> It happens building libstdc++.  I sent an example a few minutes ago.

I'll take a look.

Jason

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

* Re: Unreviewed C++ patch for PA (HP assembler)
  2001-12-03 11:04     ` Jason Merrill
  2001-12-03 11:13       ` John David Anglin
@ 2001-12-03 11:40       ` Jason Merrill
  2001-12-03 12:16         ` John David Anglin
  2001-12-03 12:46       ` John David Anglin
  2001-12-03 13:29       ` John David Anglin
  3 siblings, 1 reply; 19+ messages in thread
From: Jason Merrill @ 2001-12-03 11:40 UTC (permalink / raw)
  To: John David Anglin; +Cc: gcc-patches, mark

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

>>>>> "Jason" == Jason Merrill <jason@redhat.com> writes:

> OK, they shouldn't be internal.  The vtables for the *_type_info classes
> have global linkage in libstdc++ because the compiler can see that they
> have a non-inline, non-pure virtual function which it can use to decide
> where the vtable should go.  But that should be the case everywhere these
> classes are used; what code are you compiling that results in these classes
> being internal?

OK, the problem was that we were looking up the vtable of a class we've
never seen, so the usual heuristics don't work.  Does this patch do the
trick for you?


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: Type: text/x-patch, Size: 912 bytes --]

2001-12-03  Jason Merrill  <jason@redhat.com>

	* rtti.c (create_pseudo_type_info): Set CLASSTYPE_INTERFACE_ONLY
	on the __*_type_info type if we haven't seen a definition.

*** rtti.c.~1~	Mon Nov 26 13:08:48 2001
--- rtti.c	Mon Dec  3 19:34:05 2001
*************** create_pseudo_type_info VPARAMS((const c
*** 1162,1167 ****
--- 1162,1176 ----
    
    /* Get the vtable decl. */
    real_type = xref_tag (class_type_node, get_identifier (real_name), 1);
+   if (! TYPE_SIZE (real_type))
+     {
+       /* We never saw a definition of this type, so we need to tell the
+ 	 compiler that this is an exported class, as indeed all of the
+ 	 __*_type_info classes are.  */
+       SET_CLASSTYPE_INTERFACE_KNOWN (real_type);
+       CLASSTYPE_INTERFACE_ONLY (real_type) = 1;
+     }
+ 
    vtable_decl = get_vtable_decl (real_type, /*complete=*/1);
    vtable_decl = build_unary_op (ADDR_EXPR, vtable_decl, 0);
  

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

* Re: Unreviewed C++ patch for PA (HP assembler)
  2001-12-03 11:40       ` Jason Merrill
@ 2001-12-03 12:16         ` John David Anglin
  0 siblings, 0 replies; 19+ messages in thread
From: John David Anglin @ 2001-12-03 12:16 UTC (permalink / raw)
  To: Jason Merrill; +Cc: gcc-patches, mark

> OK, the problem was that we were looking up the vtable of a class we've
> never seen, so the usual heuristics don't work.  Does this patch do the
> trick for you?
> 
> 
> --=-=-=
> Content-Type: text/x-patch
> Content-Disposition: inline
> 
> 2001-12-03  Jason Merrill  <jason@redhat.com>
> 
> 	* rtti.c (create_pseudo_type_info): Set CLASSTYPE_INTERFACE_ONLY
> 	on the __*_type_info type if we haven't seen a definition.

Yes, it does.  The libstdc++ test results with the HP assembler appear
identical to that obtained with the GNU assembler.  I should have g++
results in an hour or so.

Thanks very much for looking into this problem.

Dave
-- 
J. David Anglin                                  dave.anglin@nrc.ca
National Research Council of Canada              (613) 990-0752 (FAX: 952-6605)

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

* Re: Unreviewed C++ patch for PA (HP assembler)
  2001-12-03 11:04     ` Jason Merrill
  2001-12-03 11:13       ` John David Anglin
  2001-12-03 11:40       ` Jason Merrill
@ 2001-12-03 12:46       ` John David Anglin
  2001-12-03 13:29       ` John David Anglin
  3 siblings, 0 replies; 19+ messages in thread
From: John David Anglin @ 2001-12-03 12:46 UTC (permalink / raw)
  To: Jason Merrill; +Cc: gcc-patches, mark

> > /usr/ccs/bin/ld: Unsatisfied symbols:
> >    std::basic_string<unsigned char, std::char_traits<unsigned char>, std::allocator<unsigned char> >::_Rep::_S_max_size(data)
> >    std::basic_string<unsigned char, std::char_traits<unsigned char>, std::allocator<unsigned char> >::_Rep::_S_terminal(data)
> > collect2: ld returned 1 exit status
> 
> Hmm.  _S_max_size should already be instantiated in src/string-inst.cc, but
> it looks like we need to add an explicit instantiation for _S_terminal.

I see:

000000d4 T std::string::_Rep::_S_max_size

in src/string-inst.o.  However, we don't have the above.  I have enclosed
below the complete list of undefined symbols found from the libstdc++
testsuite run.

Dave
-- 
J. David Anglin                                  dave.anglin@nrc.ca
National Research Council of Canada              (613) 990-0752 (FAX: 952-6605)

Executing on host: /xxx/gnu/gcc-3.1/objdir/gcc/g++ -B/xxx/gnu/gcc-3.1/objdir/gcc/ -nostdinc++ -L/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.00/libstdc++-v3/src -L/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.00/libstdc++-v3/src/.libs -B/opt/gnu/hppa2.0w-hp-hpux11.00/bin/ -B/opt/gnu/hppa2.0w-hp-hpux11.00/lib/ -isystem /opt/gnu/hppa2.0w-hp-hpux11.00/include -g -DDEBUG_ASSERT -DLOCALEDIR="/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.00/libstdc++-v3/po/share/locale" -nostdinc++ -I/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.00/libstdc++-v3/include/hppa2.0w-hp-hpux11.00 -I/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.00/libstdc++-v3/include -I/xxx/gnu/gcc-3.1/libstdc++-v3/libsupc++ -I/xxx/gnu/gcc-3.1/libstdc++-v3/libio -I/xxx/gnu/gcc-3.1/libstdc++-v3/include/backward -I/xxx/gnu/gcc-3.1/libstdc++-v3/testsuite /xxx/gnu/gcc-3.1/libstdc++-v3/testsuite/18_support/numeric_limits.cc    -DDEBUG_ASSERT  -lm   -o ./numeric_limits    (timeout = 300)
/usr/ccs/bin/ld: Unsatisfied symbols:
   std::numeric_limits<B>::traps    (data)
   std::numeric_limits<B>::max_exponent10     (data)
   std::numeric_limits<B>::digits    (data)
   std::numeric_limits<B>::digits10    (data)

Executing on host: /xxx/gnu/gcc-3.1/objdir/gcc/g++ -B/xxx/gnu/gcc-3.1/objdir/gcc/ -nostdinc++ -L/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.00/libstdc++-v3/src -L/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.00/libstdc++-v3/src/.libs -B/opt/gnu/hppa2.0w-hp-hpux11.00/bin/ -B/opt/gnu/hppa2.0w-hp-hpux11.00/lib/ -isystem /opt/gnu/hppa2.0w-hp-hpux11.00/include -g -DDEBUG_ASSERT -DLOCALEDIR="/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.00/libstdc++-v3/po/share/locale" -nostdinc++ -I/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.00/libstdc++-v3/include/hppa2.0w-hp-hpux11.00 -I/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.00/libstdc++-v3/include -I/xxx/gnu/gcc-3.1/libstdc++-v3/libsupc++ -I/xxx/gnu/gcc-3.1/libstdc++-v3/libio -I/xxx/gnu/gcc-3.1/libstdc++-v3/include/backward -I/xxx/gnu/gcc-3.1/libstdc++-v3/testsuite /xxx/gnu/gcc-3.1/libstdc++-v3/testsuite/22_locale/collate.cc    -DDEBUG_ASSERT  -lm   -o ./collate    (timeout = 300)
/usr/ccs/bin/ld: Unsatisfied symbols:
   std::basic_string<unsigned char, std::char_traits<unsigned char>, std::allocator<unsigned char> >::_Rep::_S_max_size(data)
   std::basic_string<unsigned char, std::char_traits<unsigned char>, std::allocator<unsigned char> >::_Rep::_S_terminal(data)

Executing on host: /xxx/gnu/gcc-3.1/objdir/gcc/g++ -B/xxx/gnu/gcc-3.1/objdir/gcc/ -nostdinc++ -L/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.00/libstdc++-v3/src -L/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.00/libstdc++-v3/src/.libs -B/opt/gnu/hppa2.0w-hp-hpux11.00/bin/ -B/opt/gnu/hppa2.0w-hp-hpux11.00/lib/ -isystem /opt/gnu/hppa2.0w-hp-hpux11.00/include -g -DDEBUG_ASSERT -DLOCALEDIR="/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.00/libstdc++-v3/po/share/locale" -nostdinc++ -I/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.00/libstdc++-v3/include/hppa2.0w-hp-hpux11.00 -I/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.00/libstdc++-v3/include -I/xxx/gnu/gcc-3.1/libstdc++-v3/libsupc++ -I/xxx/gnu/gcc-3.1/libstdc++-v3/libio -I/xxx/gnu/gcc-3.1/libstdc++-v3/include/backward -I/xxx/gnu/gcc-3.1/libstdc++-v3/testsuite /xxx/gnu/gcc-3.1/libstdc++-v3/testsuite/22_locale/messages.cc    -DDEBUG_ASSERT  -lm   -o ./messages    (timeout = 300)
/usr/ccs/bin/ld: Unsatisfied symbols:
   std::basic_string<unsigned char, std::char_traits<unsigned char>, std::allocator<unsigned char> >::_Rep::_S_max_size(data)

Executing on host: /xxx/gnu/gcc-3.1/objdir/gcc/g++ -B/xxx/gnu/gcc-3.1/objdir/gcc/ -nostdinc++ -L/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.00/libstdc++-v3/src -L/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.00/libstdc++-v3/src/.libs -B/opt/gnu/hppa2.0w-hp-hpux11.00/bin/ -B/opt/gnu/hppa2.0w-hp-hpux11.00/lib/ -isystem /opt/gnu/hppa2.0w-hp-hpux11.00/include -g -DDEBUG_ASSERT -DLOCALEDIR="/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.00/libstdc++-v3/po/share/locale" -nostdinc++ -I/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.00/libstdc++-v3/include/hppa2.0w-hp-hpux11.00 -I/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.00/libstdc++-v3/include -I/xxx/gnu/gcc-3.1/libstdc++-v3/libsupc++ -I/xxx/gnu/gcc-3.1/libstdc++-v3/libio -I/xxx/gnu/gcc-3.1/libstdc++-v3/include/backward -I/xxx/gnu/gcc-3.1/libstdc++-v3/testsuite /xxx/gnu/gcc-3.1/libstdc++-v3/testsuite/22_locale/money_get.cc    -DDEBUG_ASSERT  -lm   -o ./money_get    (timeout = 300)
/usr/ccs/bin/ld: Unsatisfied symbols:
   std::basic_string<unsigned char, std::char_traits<unsigned char>, std::allocator<unsigned char> >::_Rep::_S_max_size(data)
   std::basic_string<unsigned char, std::char_traits<unsigned char>, std::allocator<unsigned char> >::_Rep::_S_terminal(data)

Executing on host: /xxx/gnu/gcc-3.1/objdir/gcc/g++ -B/xxx/gnu/gcc-3.1/objdir/gcc/ -nostdinc++ -L/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.00/libstdc++-v3/src -L/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.00/libstdc++-v3/src/.libs -B/opt/gnu/hppa2.0w-hp-hpux11.00/bin/ -B/opt/gnu/hppa2.0w-hp-hpux11.00/lib/ -isystem /opt/gnu/hppa2.0w-hp-hpux11.00/include -g -DDEBUG_ASSERT -DLOCALEDIR="/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.00/libstdc++-v3/po/share/locale" -nostdinc++ -I/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.00/libstdc++-v3/include/hppa2.0w-hp-hpux11.00 -I/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.00/libstdc++-v3/include -I/xxx/gnu/gcc-3.1/libstdc++-v3/libsupc++ -I/xxx/gnu/gcc-3.1/libstdc++-v3/libio -I/xxx/gnu/gcc-3.1/libstdc++-v3/include/backward -I/xxx/gnu/gcc-3.1/libstdc++-v3/testsuite /xxx/gnu/gcc-3.1/libstdc++-v3/testsuite/22_locale/money_put.cc    -DDEBUG_ASSERT  -lm   -o ./money_put    (timeout = 300)
/usr/ccs/bin/ld: Unsatisfied symbols:
   std::basic_string<unsigned char, std::char_traits<unsigned char>, std::allocator<unsigned char> >::_Rep::_S_max_size(data)
   std::basic_string<unsigned char, std::char_traits<unsigned char>, std::allocator<unsigned char> >::_Rep::_S_terminal(data)

Executing on host: /xxx/gnu/gcc-3.1/objdir/gcc/g++ -B/xxx/gnu/gcc-3.1/objdir/gcc/ -nostdinc++ -L/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.00/libstdc++-v3/src -L/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.00/libstdc++-v3/src/.libs -B/opt/gnu/hppa2.0w-hp-hpux11.00/bin/ -B/opt/gnu/hppa2.0w-hp-hpux11.00/lib/ -isystem /opt/gnu/hppa2.0w-hp-hpux11.00/include -g -DDEBUG_ASSERT -DLOCALEDIR="/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.00/libstdc++-v3/po/share/locale" -nostdinc++ -I/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.00/libstdc++-v3/include/hppa2.0w-hp-hpux11.00 -I/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.00/libstdc++-v3/include -I/xxx/gnu/gcc-3.1/libstdc++-v3/libsupc++ -I/xxx/gnu/gcc-3.1/libstdc++-v3/libio -I/xxx/gnu/gcc-3.1/libstdc++-v3/include/backward -I/xxx/gnu/gcc-3.1/libstdc++-v3/testsuite /xxx/gnu/gcc-3.1/libstdc++-v3/testsuite/22_locale/moneypunct.cc    -DDEBUG_ASSERT  -lm   -o ./moneypunct    (timeout = 300)
/usr/ccs/bin/ld: Unsatisfied symbols:
   std::basic_string<unsigned char, std::char_traits<unsigned char>, std::allocator<unsigned char> >::_Rep::_S_max_size(data)

Executing on host: /xxx/gnu/gcc-3.1/objdir/gcc/g++ -B/xxx/gnu/gcc-3.1/objdir/gcc/ -nostdinc++ -L/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.00/libstdc++-v3/src -L/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.00/libstdc++-v3/src/.libs -B/opt/gnu/hppa2.0w-hp-hpux11.00/bin/ -B/opt/gnu/hppa2.0w-hp-hpux11.00/lib/ -isystem /opt/gnu/hppa2.0w-hp-hpux11.00/include -g -DDEBUG_ASSERT -DLOCALEDIR="/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.00/libstdc++-v3/po/share/locale" -nostdinc++ -I/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.00/libstdc++-v3/include/hppa2.0w-hp-hpux11.00 -I/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.00/libstdc++-v3/include -I/xxx/gnu/gcc-3.1/libstdc++-v3/libsupc++ -I/xxx/gnu/gcc-3.1/libstdc++-v3/libio -I/xxx/gnu/gcc-3.1/libstdc++-v3/include/backward -I/xxx/gnu/gcc-3.1/libstdc++-v3/testsuite /xxx/gnu/gcc-3.1/libstdc++-v3/testsuite/22_locale/num_get.cc    -DDEBUG_ASSERT  -lm   -o ./num_get    (timeout = 300)
/usr/ccs/bin/ld: Unsatisfied symbols:
   std::basic_string<unsigned char, std::char_traits<unsigned char>, std::allocator<unsigned char> >::_Rep::_S_terminal(data)
collect2: ld returned 1 exit status
compiler exited with status 1
output is:
/usr/ccs/bin/ld: Unsatisfied symbols:
   std::basic_string<unsigned char, std::char_traits<unsigned char>, std::allocator<unsigned char> >::_Rep::_S_terminal(data)

Executing on host: /xxx/gnu/gcc-3.1/objdir/gcc/g++ -B/xxx/gnu/gcc-3.1/objdir/gcc/ -nostdinc++ -L/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.00/libstdc++-v3/src -L/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.00/libstdc++-v3/src/.libs -B/opt/gnu/hppa2.0w-hp-hpux11.00/bin/ -B/opt/gnu/hppa2.0w-hp-hpux11.00/lib/ -isystem /opt/gnu/hppa2.0w-hp-hpux11.00/include -g -DDEBUG_ASSERT -DLOCALEDIR="/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.00/libstdc++-v3/po/share/locale" -nostdinc++ -I/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.00/libstdc++-v3/include/hppa2.0w-hp-hpux11.00 -I/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.00/libstdc++-v3/include -I/xxx/gnu/gcc-3.1/libstdc++-v3/libsupc++ -I/xxx/gnu/gcc-3.1/libstdc++-v3/libio -I/xxx/gnu/gcc-3.1/libstdc++-v3/include/backward -I/xxx/gnu/gcc-3.1/libstdc++-v3/testsuite /xxx/gnu/gcc-3.1/libstdc++-v3/testsuite/22_locale/num_put.cc    -DDEBUG_ASSERT  -lm   -o ./num_put    (timeout = 300)
/usr/ccs/bin/ld: Unsatisfied symbols:
   std::basic_string<unsigned char, std::char_traits<unsigned char>, std::allocator<unsigned char> >::_Rep::_S_terminal(data)

Executing on host: /xxx/gnu/gcc-3.1/objdir/gcc/g++ -B/xxx/gnu/gcc-3.1/objdir/gcc/ -nostdinc++ -L/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.00/libstdc++-v3/src -L/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.00/libstdc++-v3/src/.libs -B/opt/gnu/hppa2.0w-hp-hpux11.00/bin/ -B/opt/gnu/hppa2.0w-hp-hpux11.00/lib/ -isystem /opt/gnu/hppa2.0w-hp-hpux11.00/include -g -DDEBUG_ASSERT -DLOCALEDIR="/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.00/libstdc++-v3/po/share/locale" -nostdinc++ -I/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.00/libstdc++-v3/include/hppa2.0w-hp-hpux11.00 -I/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.00/libstdc++-v3/include -I/xxx/gnu/gcc-3.1/libstdc++-v3/libsupc++ -I/xxx/gnu/gcc-3.1/libstdc++-v3/libio -I/xxx/gnu/gcc-3.1/libstdc++-v3/include/backward -I/xxx/gnu/gcc-3.1/libstdc++-v3/testsuite /xxx/gnu/gcc-3.1/libstdc++-v3/testsuite/22_locale/numpunct.cc    -DDEBUG_ASSERT  -lm   -o ./numpunct    (timeout = 300)
/usr/ccs/bin/ld: Unsatisfied symbols:
   std::basic_string<unsigned char, std::char_traits<unsigned char>, std::allocator<unsigned char> >::_Rep::_S_max_size(data)

Executing on host: /xxx/gnu/gcc-3.1/objdir/gcc/g++ -B/xxx/gnu/gcc-3.1/objdir/gcc/ -nostdinc++ -L/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.00/libstdc++-v3/src -L/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.00/libstdc++-v3/src/.libs -B/opt/gnu/hppa2.0w-hp-hpux11.00/bin/ -B/opt/gnu/hppa2.0w-hp-hpux11.00/lib/ -isystem /opt/gnu/hppa2.0w-hp-hpux11.00/include -g -DDEBUG_ASSERT -DLOCALEDIR="/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.00/libstdc++-v3/po/share/locale" -nostdinc++ -I/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.00/libstdc++-v3/include/hppa2.0w-hp-hpux11.00 -I/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.00/libstdc++-v3/include -I/xxx/gnu/gcc-3.1/libstdc++-v3/libsupc++ -I/xxx/gnu/gcc-3.1/libstdc++-v3/libio -I/xxx/gnu/gcc-3.1/libstdc++-v3/include/backward -I/xxx/gnu/gcc-3.1/libstdc++-v3/testsuite /xxx/gnu/gcc-3.1/libstdc++-v3/testsuite/22_locale/numpunct_members_wchar_t.cc    -DDEBUG_ASSERT  -lm   -o ./numpunct_members_wchar_t    (timeout = 300)
/xxx/gnu/gcc-3.1/libstdc++-v3/testsuite/22_locale/numpunct_members_wchar_t.cc: In
   function `void test01()':
/xxx/gnu/gcc-3.1/libstdc++-v3/testsuite/22_locale/numpunct_members_wchar_t.cc:55: `
   wstring' undeclared (first use this function)
/xxx/gnu/gcc-3.1/libstdc++-v3/testsuite/22_locale/numpunct_members_wchar_t.cc:55: (Each
   undeclared identifier is reported only once for each function it appears 
   in.)
/xxx/gnu/gcc-3.1/libstdc++-v3/testsuite/22_locale/numpunct_members_wchar_t.cc:55: parse
   error before `=' token
/xxx/gnu/gcc-3.1/libstdc++-v3/testsuite/22_locale/numpunct_members_wchar_t.cc:61: parse
   error before `=' token
/xxx/gnu/gcc-3.1/libstdc++-v3/testsuite/22_locale/numpunct_members_wchar_t.cc:67: parse
   error before `=' token
/xxx/gnu/gcc-3.1/libstdc++-v3/testsuite/22_locale/numpunct_members_wchar_t.cc:73: parse
   error before `=' token

Executing on host: /xxx/gnu/gcc-3.1/objdir/gcc/g++ -B/xxx/gnu/gcc-3.1/objdir/gcc/ -nostdinc++ -L/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.00/libstdc++-v3/src -L/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.00/libstdc++-v3/src/.libs -B/opt/gnu/hppa2.0w-hp-hpux11.00/bin/ -B/opt/gnu/hppa2.0w-hp-hpux11.00/lib/ -isystem /opt/gnu/hppa2.0w-hp-hpux11.00/include -g -DDEBUG_ASSERT -DLOCALEDIR="/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.00/libstdc++-v3/po/share/locale" -nostdinc++ -I/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.00/libstdc++-v3/include/hppa2.0w-hp-hpux11.00 -I/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.00/libstdc++-v3/include -I/xxx/gnu/gcc-3.1/libstdc++-v3/libsupc++ -I/xxx/gnu/gcc-3.1/libstdc++-v3/libio -I/xxx/gnu/gcc-3.1/libstdc++-v3/include/backward -I/xxx/gnu/gcc-3.1/libstdc++-v3/testsuite /xxx/gnu/gcc-3.1/libstdc++-v3/testsuite/26_numerics/complex_inserters_extractors.cc    -DDEBUG_ASSERT  -lm   -o ./complex_inserters_extractors    (timeout = 300)
/usr/ccs/bin/ld: Unsatisfied symbols:
   std::basic_string<char, gnu_char_traits, std::allocator<char> >::_Rep::_S_terminal(data)
   std::basic_string<char, gnu_char_traits, std::allocator<char> >::_Rep::_S_max_size(data)

Executing on host: /xxx/gnu/gcc-3.1/objdir/gcc/g++ -B/xxx/gnu/gcc-3.1/objdir/gcc/ -nostdinc++ -L/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.00/libstdc++-v3/src -L/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.00/libstdc++-v3/src/.libs -B/opt/gnu/hppa2.0w-hp-hpux11.00/bin/ -B/opt/gnu/hppa2.0w-hp-hpux11.00/lib/ -isystem /opt/gnu/hppa2.0w-hp-hpux11.00/include -g -DDEBUG_ASSERT -DLOCALEDIR="/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.00/libstdc++-v3/po/share/locale" -nostdinc++ -I/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.00/libstdc++-v3/include/hppa2.0w-hp-hpux11.00 -I/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.00/libstdc++-v3/include -I/xxx/gnu/gcc-3.1/libstdc++-v3/libsupc++ -I/xxx/gnu/gcc-3.1/libstdc++-v3/libio -I/xxx/gnu/gcc-3.1/libstdc++-v3/include/backward -I/xxx/gnu/gcc-3.1/libstdc++-v3/testsuite /xxx/gnu/gcc-3.1/libstdc++-v3/testsuite/ext/rope.cc    -DDEBUG_ASSERT  -lm   -o ./rope    (timeout = 300)
/usr/ccs/bin/ld: Unsatisfied symbols:
   std::_Swap_lock_struct<0>::_S_swap_lock       (data)
   std::rope<char, std::allocator<char> >::_S_min_len(data)
collect2: ld returned 1 exit status
compiler exited with status 1
output is:
/usr/ccs/bin/ld: Unsatisfied symbols:
   std::_Swap_lock_struct<0>::_S_swap_lock       (data)
   std::rope<char, std::allocator<char> >::_S_min_len(data)

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

* Re: Unreviewed C++ patch for PA (HP assembler)
  2001-12-03 11:04     ` Jason Merrill
                         ` (2 preceding siblings ...)
  2001-12-03 12:46       ` John David Anglin
@ 2001-12-03 13:29       ` John David Anglin
  3 siblings, 0 replies; 19+ messages in thread
From: John David Anglin @ 2001-12-03 13:29 UTC (permalink / raw)
  To: Jason Merrill; +Cc: gcc-patches, mark

> > /usr/ccs/bin/ld: Unsatisfied symbols:
> >    std::basic_string<unsigned char, std::char_traits<unsigned char>, std::allocator<unsigned char> >::_Rep::_S_max_size(data)
> >    std::basic_string<unsigned char, std::char_traits<unsigned char>, std::allocator<unsigned char> >::_Rep::_S_terminal(data)
> > collect2: ld returned 1 exit status
> 
> Hmm.  _S_max_size should already be instantiated in src/string-inst.cc, but
> it looks like we need to add an explicit instantiation for _S_terminal.

I looked at the assembler output for the libstdc++ test collate.cc.  On
i686-linux, we have for _ZNSbIhSt11char_traitsIhESaIhEE4_Rep11_S_max_size:

        .weak   _ZNSbIhSt11char_traitsIhESaIhEE4_Rep11_S_max_sizeE
	.section        .gnu.linkonce.r._ZNSbIhSt11char_traitsIhESaIhEE4_Rep11_S_max_sizeE,"a",@progbits
	.align 4
	.type   _ZNSbIhSt11char_traitsIhESaIhEE4_Rep11_S_max_sizeE,@object
	.size   _ZNSbIhSt11char_traitsIhESaIhEE4_Rep11_S_max_sizeE,4
_ZNSbIhSt11char_traitsIhESaIhEE4_Rep11_S_max_sizeE:
	.long   1073741820

On the PA:

        .IMPORT _ZNSbIhSt11char_traitsIhESaIhEE4_Rep11_S_max_sizeE,DATA

I think we need explicit instantiation for _S_max_size
Dave
-- 
J. David Anglin                                  dave.anglin@nrc.ca
National Research Council of Canada              (613) 990-0752 (FAX: 952-6605)

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

* Re: Unreviewed C++ patch for PA (HP assembler)
  2001-12-08  9:29     ` John David Anglin
  2001-12-09 19:25       ` Jason Merrill
@ 2001-12-09 19:27       ` Phil Edwards
  1 sibling, 0 replies; 19+ messages in thread
From: Phil Edwards @ 2001-12-09 19:27 UTC (permalink / raw)
  To: John David Anglin; +Cc: Jason Merrill, gcc-patches, mark, libstdc++

On Sat, Dec 08, 2001 at 12:28:02PM -0500, John David Anglin wrote:
> > > g++.jason/template31.C
> > > /usr/ccs/bin/ld: Duplicate symbol "std::__malloc_alloc_template<0>::__malloc_alloc_oom_handler" in files /var/tmp//cc8IHMur.o and /xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.11//libstdc++-v3/src/.libs/libstdc++.a(stl-inst.o)
> > 
> > Try removing the explicit instantiations from the testcase.
> 
> Is this revision OK for the main?  It fixes the problem on hppa2.0w-hp-hpux11.11
> with the HP assembler.

This should be okay; we need to be testing library instantiations in the
library testsuite anyhow, rather than in the compiler testsuite.  (I have
a larval-stage testcase for allocators, but we need to finish deciding
what to do with allocator design first, before any of it will be of use.)

Jason or Mark will need to approve the change.


Phil

-- 
If ye love wealth greater than liberty, the tranquility of servitude greater
than the animating contest for freedom, go home and leave us in peace.  We seek
not your counsel, nor your arms.  Crouch down and lick the hand that feeds you;
and may posterity forget that ye were our countrymen.            - Samuel Adams

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

* Re: Unreviewed C++ patch for PA (HP assembler)
  2001-12-08  9:29     ` John David Anglin
@ 2001-12-09 19:25       ` Jason Merrill
  2001-12-09 19:27       ` Phil Edwards
  1 sibling, 0 replies; 19+ messages in thread
From: Jason Merrill @ 2001-12-09 19:25 UTC (permalink / raw)
  To: John David Anglin; +Cc: gcc-patches, mark, libstdc++

>>>>> "John" == John David Anglin <dave@hiauly1.hia.nrc.ca> writes:

> -template class std::__malloc_alloc_template<0>;
>  #ifndef __USE_MALLOC
>  template class std::__default_alloc_template<false, 0>;
>  #endif

I'd remove the other explicit instantiation, too.  If that doesn't break
things for you, go ahead and check it in on the trunk.

Jason

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

* Re: Unreviewed C++ patch for PA (HP assembler)
  2001-12-04  8:25   ` Jason Merrill
  2001-12-04  9:18     ` John David Anglin
@ 2001-12-08  9:29     ` John David Anglin
  2001-12-09 19:25       ` Jason Merrill
  2001-12-09 19:27       ` Phil Edwards
  1 sibling, 2 replies; 19+ messages in thread
From: John David Anglin @ 2001-12-08  9:29 UTC (permalink / raw)
  To: Jason Merrill; +Cc: gcc-patches, mark, libstdc++

> > g++.jason/template31.C
> > /usr/ccs/bin/ld: Duplicate symbol "std::__malloc_alloc_template<0>::__malloc_alloc_oom_handler" in files /var/tmp//cc8IHMur.o and /xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.11//libstdc++-v3/src/.libs/libstdc++.a(stl-inst.o)
> 
> Try removing the explicit instantiations from the testcase.

Is this revision OK for the main?  It fixes the problem on hppa2.0w-hp-hpux11.11
with the HP assembler.

Dave
-- 
J. David Anglin                                  dave.anglin@nrc.ca
National Research Council of Canada              (613) 990-0752 (FAX: 952-6605)

2001-12-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* g++.old-deja/g++.jason/template31.C: Remove template for class
	std::__malloc_alloc_template<0>.

--- template31.C.orig	Wed Jul 25 08:06:20 2001
+++ template31.C	Tue Dec  4 12:03:43 2001
@@ -37,7 +37,6 @@
     std::exit(0);
 }
 
-template class std::__malloc_alloc_template<0>;
 #ifndef __USE_MALLOC
 template class std::__default_alloc_template<false, 0>;
 #endif

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

* Re: Unreviewed C++ patch for PA (HP assembler)
  2001-12-04  8:25   ` Jason Merrill
@ 2001-12-04  9:18     ` John David Anglin
  2001-12-08  9:29     ` John David Anglin
  1 sibling, 0 replies; 19+ messages in thread
From: John David Anglin @ 2001-12-04  9:18 UTC (permalink / raw)
  To: Jason Merrill; +Cc: gcc-patches, mark, libstdc++

> > g++.jason/template31.C
> > /usr/ccs/bin/ld: Duplicate symbol "std::__malloc_alloc_template<0>::__malloc_alloc_oom_handler" in files /var/tmp//cc8IHMur.o and /xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.11//libstdc++-v3/src/.libs/libstdc++.a(stl-inst.o)
> 
> Try removing the explicit instantiations from the testcase.

That does the trick.

Dave
-- 
J. David Anglin                                  dave.anglin@nrc.ca
National Research Council of Canada              (613) 990-0752 (FAX: 952-6605)

2001-12-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* g++.old-deja/g++.jason/template31.C: Remove template for class
	std::__malloc_alloc_template<0>.

--- template31.C.orig	Wed Jul 25 08:06:20 2001
+++ template31.C	Tue Dec  4 12:03:43 2001
@@ -37,7 +37,6 @@
     std::exit(0);
 }
 
-template class std::__malloc_alloc_template<0>;
 #ifndef __USE_MALLOC
 template class std::__default_alloc_template<false, 0>;
 #endif

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

* Re: Unreviewed C++ patch for PA (HP assembler)
  2001-12-03 14:20 ` John David Anglin
  2001-12-03 14:49   ` Benjamin Kosnik
@ 2001-12-04  8:25   ` Jason Merrill
  2001-12-04  9:18     ` John David Anglin
  2001-12-08  9:29     ` John David Anglin
  1 sibling, 2 replies; 19+ messages in thread
From: Jason Merrill @ 2001-12-04  8:25 UTC (permalink / raw)
  To: John David Anglin; +Cc: gcc-patches, mark, libstdc++

>>>>> "John" == John David Anglin <dave@hiauly1.hia.nrc.ca> writes:

> The difference between the g++ testsuite results with the gnu and HP
> assemblers is now much less than when I first looked at it a few months
> ago.  There are now only two additional FAILs with the HP assembler:

> g++.brendan/union1.C
> as: error 7403: undefined label - _ZZ4hashdE5asint (7403)

Hmm, this is a target-independent bug that is only caught on the PA because
of assembler pedanticism.  I'll make the test linkable so the failure shows
up on other targets, too.

> g++.jason/template31.C
> /usr/ccs/bin/ld: Duplicate symbol "std::__malloc_alloc_template<0>::__malloc_alloc_oom_handler" in files /var/tmp//cc8IHMur.o and /xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.11//libstdc++-v3/src/.libs/libstdc++.a(stl-inst.o)

Try removing the explicit instantiations from the testcase.

Jason

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

* Re: Unreviewed C++ patch for PA (HP assembler)
  2001-12-03 14:20 ` John David Anglin
@ 2001-12-03 14:49   ` Benjamin Kosnik
  2001-12-04  8:25   ` Jason Merrill
  1 sibling, 0 replies; 19+ messages in thread
From: Benjamin Kosnik @ 2001-12-03 14:49 UTC (permalink / raw)
  To: John David Anglin; +Cc: John David Anglin, jason, gcc-patches, mark, libstdc++


John can you try this please?

2001-12-03  Benjamin Kosnik  <bkoz@redhat.com>

	* src/string-inst.cc: Add static data member instantiations.
Index: src/string-inst.cc
===================================================================
RCS file: /cvs/gcc/gcc/libstdc++-v3/src/string-inst.cc,v
retrieving revision 1.19
diff -c -p -r1.19 string-inst.cc
*** string-inst.cc      2001/10/31 08:27:20     1.19
--- string-inst.cc      2001/12/03 22:48:06
*************** namespace std 
*** 46,51 ****
--- 46,52 ----
    typedef basic_string<C> S;
  
    template class basic_string<C>;
+   template const C S::_Rep::_S_terminal;
    template S::size_type S::_Rep::_S_max_size;
  
    template S operator+(const C*, const S&)

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

* Re: Unreviewed C++ patch for PA (HP assembler)
       [not found] <no.id>
@ 2001-12-03 14:20 ` John David Anglin
  2001-12-03 14:49   ` Benjamin Kosnik
  2001-12-04  8:25   ` Jason Merrill
  0 siblings, 2 replies; 19+ messages in thread
From: John David Anglin @ 2001-12-03 14:20 UTC (permalink / raw)
  To: John David Anglin; +Cc: jason, gcc-patches, mark, libstdc++

> > 2001-12-03  Jason Merrill  <jason@redhat.com>
> > 
> > 	* rtti.c (create_pseudo_type_info): Set CLASSTYPE_INTERFACE_ONLY
> > 	on the __*_type_info type if we haven't seen a definition.
> 
> Yes, it does.  The libstdc++ test results with the HP assembler appear
> identical to that obtained with the GNU assembler.  I should have g++
> results in an hour or so.

The difference between the g++ testsuite results with the gnu and HP
assemblers is now much less than when I first looked at it a few months
ago.  There are now only two additional FAILs with the HP assembler:

Executing on host: /xxx/gnu/gcc-3.1/objdir/gcc/testsuite/../g++ -B/xxx/gnu/gcc-3.1/objdir/gcc/testsuite/../  -nostdinc++ -I/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.11/libstdc++-v3/include/hppa2.0w-hp-hpux11.11 -I/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.11/libstdc++-v3/include -I/xxx/gnu/gcc-3.1/libstdc++-v3/libsupc++ -I/xxx/gnu/gcc-3.1/libstdc++-v3/libio -I/xxx/gnu/gcc-3.1/libstdc++-v3/include/backward -I/xxx/gnu/gcc-3.1/libstdc++-v3/testsuite -fmessage-length=0  -ansi -pedantic-errors -Wno-long-long  -c  -o /xxx/gnu/gcc-3.1/objdir/gcc/testsuite/union1.o /xxx/gnu/gcc-3.1/gcc/testsuite/g++.old-deja/g++.brendan/union1.C    (timeout = 300)
as: error 7403: undefined label - _ZZ4hashdE5asint (7403)
compiler exited with status 1
output is:
as: error 7403: undefined label - _ZZ4hashdE5asint (7403)

Executing on host: /xxx/gnu/gcc-3.1/objdir/gcc/testsuite/../g++ -B/xxx/gnu/gcc-3.1/objdir/gcc/testsuite/../ /xxx/gnu/gcc-3.1/gcc/testsuite/g++.old-deja/g++.jason/template31.C  -nostdinc++ -I/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.11/libstdc++-v3/include/hppa2.0w-hp-hpux11.11 -I/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.11/libstdc++-v3/include -I/xxx/gnu/gcc-3.1/libstdc++-v3/libsupc++ -I/xxx/gnu/gcc-3.1/libstdc++-v3/libio -I/xxx/gnu/gcc-3.1/libstdc++-v3/include/backward -I/xxx/gnu/gcc-3.1/libstdc++-v3/testsuite -fmessage-length=0  -ansi -pedantic-errors -Wno-long-long    -L/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.11//libstdc++-v3/src/.libs -L/xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.11//libiberty  -lstdc++ -lm   -o /xxx/gnu/gcc-3.1/objdir/gcc/testsuite/g++-jason-template31-C.exe    (timeout = 300)
/usr/ccs/bin/ld: Duplicate symbol "std::__malloc_alloc_template<0>::__malloc_alloc_oom_handler" in files /var/tmp//cc8IHMur.o and /xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.11//libstdc++-v3/src/.libs/libstdc++.a(stl-inst.o)
/usr/ccs/bin/ld: Duplicate symbol "std::__malloc_alloc_template<0>::_S_oom_malloc(unsigned long)" in files /var/tmp//cc8IHMur.o and /xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.11//libstdc++-v3/src/.libs/libstdc++.a(stl-inst.o)
/usr/ccs/bin/ld: Duplicate symbol "std::__malloc_alloc_template<0>::_S_oom_realloc(void*, unsigned long)" in files /var/tmp//cc8IHMur.o and /xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.11//libstdc++-v3/src/.libs/libstdc++.a(stl-inst.o)
/usr/ccs/bin/ld: Duplicate symbol "std::__malloc_alloc_template<0>::allocate(unsigned long)" in files /var/tmp//cc8IHMur.o and /xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.11//libstdc++-v3/src/.libs/libstdc++.a(stl-inst.o)
/usr/ccs/bin/ld: Duplicate symbol "std::__malloc_alloc_template<0>::deallocate(void*, unsigned long)" in files /var/tmp//cc8IHMur.o and /xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.11//libstdc++-v3/src/.libs/libstdc++.a(stl-inst.o)
/usr/ccs/bin/ld: Duplicate symbol "std::__malloc_alloc_template<0>::reallocate(void*, unsigned long, unsigned long)" in files /var/tmp//cc8IHMur.o and /xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.11//libstdc++-v3/src/.libs/libstdc++.a(stl-inst.o)
/usr/ccs/bin/ld: Duplicate symbol "std::__malloc_alloc_template<0>::__set_malloc_handler(void (*)())" in files /var/tmp//cc8IHMur.o and /xxx/gnu/gcc-3.1/objdir/hppa2.0w-hp-hpux11.11//libstdc++-v3/src/.libs/libstdc++.a(stl-inst.o)
/usr/ccs/bin/ld: Found 7 duplicate symbol(s)
collect2: ld returned 1 exit status

Possibly, the smaller difference is because libtool didn't think it
could build shared libraries on the test system:

checking if libtool supports shared libraries... no
checking whether to build shared libraries... no

I'll have to figure out why libtool didn't build a shared libstdc++.

Dave
-- 
J. David Anglin                                  dave.anglin@nrc.ca
National Research Council of Canada              (613) 990-0752 (FAX: 952-6605)

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

end of thread, other threads:[~2001-12-10  3:27 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-11-21 15:42 Unreviewed C++ patch for PA (HP assembler) John David Anglin
2001-11-30 18:45 ` John David Anglin
2001-12-03  2:38 ` Jason Merrill
2001-12-03  8:25   ` John David Anglin
2001-12-03 11:04     ` Jason Merrill
2001-12-03 11:13       ` John David Anglin
2001-12-03 11:24         ` Jason Merrill
2001-12-03 11:40       ` Jason Merrill
2001-12-03 12:16         ` John David Anglin
2001-12-03 12:46       ` John David Anglin
2001-12-03 13:29       ` John David Anglin
2001-12-03 10:22   ` John David Anglin
     [not found] <no.id>
2001-12-03 14:20 ` John David Anglin
2001-12-03 14:49   ` Benjamin Kosnik
2001-12-04  8:25   ` Jason Merrill
2001-12-04  9:18     ` John David Anglin
2001-12-08  9:29     ` John David Anglin
2001-12-09 19:25       ` Jason Merrill
2001-12-09 19:27       ` Phil Edwards

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).