* 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