V3 PATCH: Allow an OS to override _G_USING_THUNKS
Phil Edwards
pedwards@disaster.jaj.com
Mon Oct 30 09:40:00 GMT 2000
On Sun, Oct 29, 2000 at 01:26:38PM -0800, Mark Mitchell wrote:
>
> Because _G_config.h was hardwired to use thunks, we ran into pretty
> serious problems with libio on platforms that didn't use thunks.
>
> I bet this patch will allow Phil to fix the Solaris problem he
> reported on October 27 in this message:
>
> http://sources.redhat.com/ml/libstdc++/2000-10/msg00229.html
>
> Phil, try `#define _G_USING_THUNKS 0' in your OS override file, and
> see if that helps.
Holy cow...
>From 6 passing tests to 119, all at once. Of the remaining 63 failures,
I get 2 coredumps from cc1plus, and 49 from binutils' ld (mostly on
static builds).
The testsuite results are below. Shared executables have improved
considerably (go figure, the vtbls work now :-). The mkcheck output is
changed slightly; "-b" indicates a build failure, as distinguished from
all the other ways in which things can go wrong.
I made some small changes while trying to debug this problem, and will
post the patch to the v3 list.
Thanks, Mark!
Phil
--
pedwards at disaster dot jaj dot com | pme at sources dot redhat dot com
devphil at several other less interesting addresses in various dot domains
The gods do not protect fools. Fools are protected by more capable fools.
host: SunOS 5.8 Generic_108528-02 sun4u
compiler: gcc version 2.97 20001030 (experimental)
compiler flags: -ggdb3 -DDEBUG_ASSERT -ffunction-sections -fdata-sections
date: 20001030
pass/fail results: 119/63
p == pass/fail execution test
ctime == time to compile and link
etime == time for executable to run
text == size of the executable text section
data == size of the executable data section
total == size of the executable
(First static, then shared.)
p ctime etime text data total name
+ 1 0.007 159408 5628 293593 17_intro/header_ciso646.cc
+ 1 0.035 1256 12 4451 17_intro/header_ciso646.cc
+ 8 0.007 134556 5508 441807 17_intro/header_fstream.cc
+ 8 0.035 1040 32 200577 17_intro/header_fstream.cc
+ 4 0.006 29720 2268 196656 17_intro/header_iomanip.cc
+ 5 0.035 960 12 149439 17_intro/header_iomanip.cc
+ 4 0.006 29720 2268 163678 17_intro/header_ios.cc
+ 4 0.036 960 12 116461 17_intro/header_ios.cc
+ 0 0.006 29376 2268 54974 17_intro/header_iosfwd.cc
+ 0 0.036 616 12 6890 17_intro/header_iosfwd.cc
-b 6 0.036 0 0 0 17_intro/header_iostream.cc
+ 5 0.035 1160 12 147866 17_intro/header_iostream.cc
+ 5 0.006 29720 2268 194230 17_intro/header_istream.cc
+ 5 0.035 960 12 147013 17_intro/header_istream.cc
+ 4 0.007 29720 2268 163686 17_intro/header_ostream.cc
+ 4 0.036 960 12 116469 17_intro/header_ostream.cc
+ 5 0.006 29720 2268 194230 17_intro/header_sstream.cc
+ 5 0.035 960 12 147013 17_intro/header_sstream.cc
+ 4 0.006 29720 2268 163665 17_intro/header_streambuf.cc
+ 4 0.036 960 12 116448 17_intro/header_streambuf.cc
-b 15 0.036 0 0 0 17_intro/headers.cc
+ 14 0.035 1664 548 228574 17_intro/headers.cc
+ 1 0.006 189620 6240 429517 18_support/numeric_limits.cc
+ 1 0.035 2040 12 40963 18_support/numeric_limits.cc
-b 1 0.035 0 0 0 20_util/auto_ptr.cc
-b 2 0.035 0 0 0 20_util/auto_ptr.cc
+ 8 0.008 222204 6448 1038900 21_strings/append.cc
+ 7 0.041 23012 24 320540 21_strings/append.cc
+ 10 0.007 220728 6448 849995 21_strings/capacity.cc
+ 10 0.036 30044 28 384688 21_strings/capacity.cc
+ 6 0.007 202912 6456 679582 21_strings/char_traits.cc
+ 5 0.036 11812 32 200857 21_strings/char_traits.cc
+ 6 0.007 201608 6448 649652 21_strings/compare.cc
+ 5 0.035 10200 24 169078 21_strings/compare.cc
+ 7 0.008 208248 6448 745005 21_strings/ctor_copy_dtor.cc
+ 7 0.040 17160 24 283546 21_strings/ctor_copy_dtor.cc
+ 6 0.007 198068 6448 641748 21_strings/element_access.cc
+ 5 0.039 7516 24 159622 21_strings/element_access.cc
+ 6 0.007 223424 6448 925256 21_strings/find.cc
+ 5 0.036 11772 24 164440 21_strings/find.cc
+ 8 0.008 211584 6448 750469 21_strings/insert.cc
+ 7 0.040 20496 24 291346 21_strings/insert.cc
-b 15 0.040 0 0 0 21_strings/inserters_extractors.cc
+ 13 0.152 28772 528 358005 21_strings/inserters_extractors.cc
+ 7 0.007 206864 6448 683238 21_strings/invariants.cc
+ 6 0.035 15564 24 206899 21_strings/invariants.cc
+ 7 0.007 215260 6448 718644 21_strings/nonmember.cc
+ 7 0.035 23852 24 249489 21_strings/nonmember.cc
+ 5 0.007 198840 6448 643461 21_strings/operations.cc
+ 5 0.034 8228 24 163607 21_strings/operations.cc
+ 8 0.007 210684 6448 758539 21_strings/replace.cc
+ 7 0.035 19296 24 287845 21_strings/replace.cc
+ 6 0.007 198888 6448 641229 21_strings/rfind.cc
+ 5 0.035 7480 24 157052 21_strings/rfind.cc
+ 6 0.007 202724 6448 690900 21_strings/substr.cc
+ 6 0.039 11556 24 219155 21_strings/substr.cc
-b 11 0.039 0 0 0 22_locale/codecvt_char_char.cc
+ 8 0.035 3932 32 237276 22_locale/codecvt_char_char.cc
-b 9 0.035 0 0 0 22_locale/codecvt_unicode_char.cc
-b 9 0.035 0 0 0 22_locale/codecvt_unicode_char.cc
-b 9 0.035 0 0 0 22_locale/codecvt_unicode_wchar_t.cc
-b 8 0.035 0 0 0 22_locale/codecvt_unicode_wchar_t.cc
-b 11 0.035 0 0 0 22_locale/codecvt_wchar_t_char.cc
+ 8 0.035 4212 32 238952 22_locale/codecvt_wchar_t_char.cc
-b 9 0.035 0 0 0 22_locale/ctor_copy_dtor.cc
-b 9 0.035 0 0 0 22_locale/ctor_copy_dtor.cc
-b 10 0.035 0 0 0 22_locale/ctype.cc
+ 8 0.035 2416 544 212954 22_locale/ctype.cc
-b 10 0.035 0 0 0 22_locale/ctype_char_members.cc
+ 7 0.036 3424 128 210946 22_locale/ctype_char_members.cc
-b 10 0.036 0 0 0 22_locale/ctype_wchar_t_members.cc
+ 8 0.036 3460 160 212992 22_locale/ctype_wchar_t_members.cc
-b 16 0.036 0 0 0 22_locale/facet.cc
+ 14 0.035 42404 3320 473117 22_locale/facet.cc
-b 11 0.035 0 0 0 22_locale/global_templates.cc
+ 9 0.036 7788 120 270245 22_locale/global_templates.cc
-b 11 0.036 0 0 0 22_locale/operators.cc
+ 9 0.036 8708 120 275664 22_locale/operators.cc
-b 11 0.036 0 0 0 22_locale/static_members.cc
+ 9 0.035 8468 120 248989 22_locale/static_members.cc
-b 10 0.035 0 0 0 23_containers/bitset_ctor.cc
+ 8 0.039 16428 672 291736 23_containers/bitset_ctor.cc
-b 12 0.039 0 0 0 23_containers/bitset_shift.cc
+ 9 1.064 27120 672 306013 23_containers/bitset_shift.cc
-b 6 1.064 0 0 0 23_containers/map_operators.cc
-b 7 1.064 0 0 0 23_containers/map_operators.cc
-b 10 1.064 0 0 0 23_containers/multiset.cc
+ 7 0.000 10992 16 259327 23_containers/multiset.cc
-b 5 0.000 0 0 0 23_containers/set_operators.cc
-b 5 0.000 0 0 0 23_containers/set_operators.cc
+ 4 0.007 198752 6248 520960 23_containers/vector_capacity.cc
+ 4 0.035 11216 16 134157 23_containers/vector_capacity.cc
-b 11 0.035 0 0 0 23_containers/vector_ctor.cc
+ 9 0.036 39200 16 341008 23_containers/vector_ctor.cc
-b 5 0.036 0 0 0 23_containers/vector_element_access.cc
+ 3 0.040 3784 16 91196 23_containers/vector_element_access.cc
+ 6 0.007 208584 6248 641045 23_containers/vector_modifiers.cc
+ 6 0.035 21048 16 254300 23_containers/vector_modifiers.cc
-b 10 0.035 0 0 0 24_iterators/istreambuf_iterator.cc
+ 7 0.035 15824 360 261721 24_iterators/istreambuf_iterator.cc
+ 13 0.007 226372 6448 943188 24_iterators/iterator.cc
+ 12 0.036 35688 24 471903 24_iterators/iterator.cc
+ 3 0.007 160724 5628 346691 25_algorithms/lower_bound.cc
+ 2 0.035 2572 12 57554 25_algorithms/lower_bound.cc
+ 2 0.007 159476 5628 322560 25_algorithms/min_max.cc
+ 2 0.035 1324 12 33733 25_algorithms/min_max.cc
-b 11 0.035 0 0 0 26_numerics/binary_closure.cc
+ 10 0.000 5724 12 285044 26_numerics/binary_closure.cc
+ 0 0.006 29884 2268 59884 26_numerics/buggy_complex.cc
+ 1 0.035 1124 12 11941 26_numerics/buggy_complex.cc
+ 1 0.006 182204 5628 326410 26_numerics/c_math.cc
+ 0 0.036 1020 12 6543 26_numerics/c_math.cc
-b 11 0.036 0 0 0 26_numerics/complex_inserters_extractors.cc
+ 8 0.041 20232 360 265060 26_numerics/complex_inserters_extractors.cc
+ 6 0.007 190304 6240 498723 26_numerics/valarray.cc
+ 6 0.036 2264 12 108647 26_numerics/valarray.cc
-b 13 0.036 0 0 0 27_io/filebuf.cc
+ 11 0.040 25664 272 298414 27_io/filebuf.cc
-b 10 0.040 0 0 0 27_io/filebuf_members.cc
+ 10 0.036 8152 152 257232 27_io/filebuf_members.cc
+ 5 0.006 161736 5628 410823 27_io/fpos.cc
+ 4 0.036 3584 12 122987 27_io/fpos.cc
-b 12 0.036 0 0 0 27_io/ifstream_members.cc
+ 10 0.602 8692 152 255091 27_io/ifstream_members.cc
-b 9 0.602 0 0 0 27_io/ios_base_callbacks.cc
+ 7 0.036 12476 296 244178 27_io/ios_base_callbacks.cc
-b 9 0.036 0 0 0 27_io/ios_base_members_static.cc
+ 6 0.036 9928 300 233286 27_io/ios_base_members_static.cc
-b 9 0.036 0 0 0 27_io/ios_ctor.cc
+ 7 0.035 11848 296 237974 27_io/ios_ctor.cc
-b 14 0.035 0 0 0 27_io/ios_manip_basefield.cc
+ 11 777.000 19600 600 332456 27_io/ios_manip_basefield.cc
-b 14 777.000 0 0 0 27_io/ios_manip_fmtflags.cc
+ 12 0.000 21256 632 338371 27_io/ios_manip_fmtflags.cc
-b 8 0.000 0 0 0 27_io/ios_members.cc
+ 5 0.039 7764 80 181957 27_io/ios_members.cc
+ 5 0.006 29720 2268 194210 27_io/istream.cc
+ 5 0.035 960 12 146993 27_io/istream.cc
-b 16 0.035 0 0 0 27_io/istream_extractor_arith.cc
+ 13 1.000 35784 832 348571 27_io/istream_extractor_arith.cc
-b 9 1.000 0 0 0 27_io/istream_extractor_char.cc
+ 8 0.036 17884 360 257634 27_io/istream_extractor_char.cc
-b 12 0.036 0 0 0 27_io/istream_extractor_other.cc
+ 11 0.037 19344 368 316154 27_io/istream_extractor_other.cc
-b 9 0.037 0 0 0 27_io/istream_manip.cc
+ 8 0.036 13440 360 250659 27_io/istream_manip.cc
-b 14 0.036 0 0 0 27_io/istream_seeks.cc
+ 12 0.038 25792 432 328484 27_io/istream_seeks.cc
-b 9 0.038 0 0 0 27_io/istream_sentry.cc
+ 6 0.035 10856 328 241568 27_io/istream_sentry.cc
-b 15 0.035 0 0 0 27_io/istream_unformatted.cc
+ 12 0.137 29720 464 344647 27_io/istream_unformatted.cc
-b 9 0.137 0 0 0 27_io/istringstream_members.cc
+ 8 0.037 14788 392 277920 27_io/istringstream_members.cc
-b 16 0.037 0 0 0 27_io/narrow_stream_objects.cc
+ 14 0.000 2196 548 257929 27_io/narrow_stream_objects.cc
-b 12 0.000 0 0 0 27_io/ofstream_members.cc
+ 9 0.688 8708 152 253704 27_io/ofstream_members.cc
+ 4 0.006 29720 2268 163666 27_io/ostream.cc
+ 4 0.037 960 12 116449 27_io/ostream.cc
-b 17 0.037 0 0 0 27_io/ostream_inserter_arith.cc
+ 15 0.076 45556 1216 461540 27_io/ostream_inserter_arith.cc
-b 15 0.076 0 0 0 27_io/ostream_inserter_char.cc
+ 12 0.198 27372 432 341540 27_io/ostream_inserter_char.cc
-b 13 0.198 0 0 0 27_io/ostream_inserter_other.cc
+ 11 0.060 15992 464 296473 27_io/ostream_inserter_other.cc
-b 10 0.060 0 0 0 27_io/ostream_manip.cc
+ 8 0.036 18024 360 281363 27_io/ostream_manip.cc
-b 12 0.036 0 0 0 27_io/ostream_seeks.cc
+ 11 0.038 14656 432 287894 27_io/ostream_seeks.cc
-b 9 0.038 0 0 0 27_io/ostream_unformatted.cc
+ 7 0.036 10956 364 241411 27_io/ostream_unformatted.cc
-b 9 0.036 0 0 0 27_io/streambuf.cc
+ 7 0.038 17548 440 226034 27_io/streambuf.cc
-b 10 0.038 0 0 0 27_io/stringbuf.cc
+ 9 0.038 30508 272 288702 27_io/stringbuf.cc
-b 12 0.038 0 0 0 27_io/stringstream.cc
+ 9 0.038 21104 496 301216 27_io/stringstream.cc
-b 16 0.038 0 0 0 27_io/wide_stream_objects.cc
+ 14 0.000 2180 548 258408 27_io/wide_stream_objects.cc
-b 5 0.000 0 0 0 ext/headers.cc
-b 4 0.000 0 0 0 ext/headers.cc
testrun == 1564
More information about the Libstdc++
mailing list