diff options
Diffstat (limited to 'gcc-4.4.3/libstdc++-v3/scripts')
-rwxr-xr-x | gcc-4.4.3/libstdc++-v3/scripts/check_compile | 56 | ||||
-rwxr-xr-x | gcc-4.4.3/libstdc++-v3/scripts/check_performance | 95 | ||||
-rwxr-xr-x | gcc-4.4.3/libstdc++-v3/scripts/create_testsuite_files | 54 | ||||
-rwxr-xr-x | gcc-4.4.3/libstdc++-v3/scripts/extract_symvers | 59 | ||||
-rw-r--r-- | gcc-4.4.3/libstdc++-v3/scripts/gen_bind_includers.pl | 30 | ||||
-rw-r--r-- | gcc-4.4.3/libstdc++-v3/scripts/gen_includers.pl | 126 | ||||
-rw-r--r-- | gcc-4.4.3/libstdc++-v3/scripts/gen_includers2.pl | 31 | ||||
-rw-r--r-- | gcc-4.4.3/libstdc++-v3/scripts/make_exports.pl | 144 | ||||
-rwxr-xr-x | gcc-4.4.3/libstdc++-v3/scripts/make_graph.py | 576 | ||||
-rwxr-xr-x | gcc-4.4.3/libstdc++-v3/scripts/make_graphs.py | 160 | ||||
-rw-r--r-- | gcc-4.4.3/libstdc++-v3/scripts/run_doxygen | 354 | ||||
-rwxr-xr-x | gcc-4.4.3/libstdc++-v3/scripts/testsuite_flags.in | 81 |
12 files changed, 0 insertions, 1766 deletions
diff --git a/gcc-4.4.3/libstdc++-v3/scripts/check_compile b/gcc-4.4.3/libstdc++-v3/scripts/check_compile deleted file mode 100755 index 76762e675..000000000 --- a/gcc-4.4.3/libstdc++-v3/scripts/check_compile +++ /dev/null @@ -1,56 +0,0 @@ -#!/usr/bin/env bash - -# Script to do performance testing. - -# Invocation -# check_performance SRC_DIR BUILD_DIR - -# 1: variables -# -SRC_DIR=$1 -BUILD_DIR=$2 - -# Now that we've successfully translated the numerical option into -# a symbolic one, we can safely ignore it. -shift - -# This has been true all along. Found out about it the hard way... -case $BASH_VERSION in - 1*) - echo 'You need bash 2.x to run check_performance. Exiting.'; - exit 1 ;; - *) ;; -esac - -flags_script=$BUILD_DIR/scripts/testsuite_flags -INCLUDES=`$flags_script --build-includes` -PCH_FLAGS=`$flags_script --cxxpchflags` -FLAGS=`$flags_script --cxxflags` -TEST_FLAGS="-S" -COMPILER=`$flags_script --build-cxx` -CXX="$COMPILER $INCLUDES $PCH_FLAGS $FLAGS -Wfatal-errors $TEST_FLAGS" - -echo "compile line is:" -echo $CXX -echo "" - -TESTS_FILE="testsuite_files" - -#mkdir binaries -UNIQUE_ID=0 - -for NAME in `cat $TESTS_FILE` -do - if $RUN; then - echo $NAME - OUTPUT_NAME=$UNIQUE_ID - $CXX $SRC_DIR/testsuite/$NAME -o $OUTPUT_NAME - if [ -f $OUTPUT_NAME ]; then -# mv $OUTPUT_NAME binaries - rm $OUTPUT_NAME - fi - let UNIQUE_ID+=1 - fi -done - -exit 0 diff --git a/gcc-4.4.3/libstdc++-v3/scripts/check_performance b/gcc-4.4.3/libstdc++-v3/scripts/check_performance deleted file mode 100755 index 4e70106a0..000000000 --- a/gcc-4.4.3/libstdc++-v3/scripts/check_performance +++ /dev/null @@ -1,95 +0,0 @@ -#!/usr/bin/env bash - -# Script to do performance testing. - -# Invocation -# check_performance SRC_DIR BUILD_DIR - -# 1: variables -# -SRC_DIR=$1 -BUILD_DIR=$2 - -# Now that we've successfully translated the numerical option into -# a symbolic one, we can safely ignore it. -shift - -# This has been true all along. Found out about it the hard way... -case $BASH_VERSION in - 1*) - echo 'You need bash 2.x to run check_performance. Exiting.'; - exit 1 ;; - *) ;; -esac - -flags_script=$BUILD_DIR/scripts/testsuite_flags -INCLUDES=`$flags_script --build-includes` -PCH_FLAGS=`$flags_script --cxxpchflags` -FLAGS=`$flags_script --cxxflags` -THREAD_FLAG='-pthread' -COMPILER=`$flags_script --build-cxx` -SH_FLAG="-Wl,--rpath -Wl,$BUILD_DIR/../../gcc \ - -Wl,--rpath -Wl,$BUILD_DIR/src/.libs" -ST_FLAG="-static" -LINK=$SH_FLAG -CXX="$COMPILER $INCLUDES $FLAGS $CXXFLAGS $LINK" -LIBS="./libtestc++.a" -TESTS_FILE="testsuite_files_performance" - -echo CXX is $CXX - -for NAME in `cat $TESTS_FILE` -do - RUN=true - TESTNAME=$SRC_DIR/testsuite/$NAME - FILE_NAME="`basename $NAME`" - FILE_NAME="`echo $FILE_NAME | sed 's/.cc//g'`" - - # TEST_S == single thread - # TEST_B == do both single and multi-thread - # TEST_T == multi-thread - for CYCLE in `sed -n 's,.*\(TEST_[SB][0-9]*\)$,\1,p' $TESTNAME` - do - RUN=false - echo $NAME $CYCLE - EXE_NAME="`echo $FILE_NAME-$CYCLE.exe`" - $CXX -DNOTHREAD -D$CYCLE $TESTNAME $LIBS -o $EXE_NAME - if [ -f $EXE_NAME ]; then - ./$EXE_NAME - else - echo "compile error:" - echo "$CXX -DNOTHREAD -D$CYCLE $TESTNAME $LIBS -o $EXE_NAME" - fi - done - - for CYCLE in `sed -n 's,.*\(TEST_[TB][0-9]*\)$,\1,p' $TESTNAME` - do - RUN=false - echo $NAME $CYCLE thread - EXE_NAME="`echo $FILE_NAME-$CYCLE.exe`" - $CXX $THREAD_FLAG -D$CYCLE $TESTNAME $LIBS -o $EXE_NAME - if [ -f $EXE_NAME ]; then - ./$EXE_NAME - else - echo "compile error:" - echo "$CXX $THREAD_FLAG -D$CYCLE $TESTNAME $LIBS -o $EXE_NAME" - fi - done - - if $RUN; then - echo $NAME - EXE_NAME="`echo $FILE_NAME.exe`" - $CXX $TESTNAME $LIBS -o $EXE_NAME - if [ -f $EXE_NAME ]; then - ./$EXE_NAME >& tmp.$FILE_NAME - else - echo "compile error:" - echo "$CXX $TESTNAME $LIBS -o $EXE_NAME" - fi - if [ -s tmp.$FILE_NAME ]; then - mv tmp.$FILE_NAME $FILE_NAME.xml - fi - fi -done - -exit 0 diff --git a/gcc-4.4.3/libstdc++-v3/scripts/create_testsuite_files b/gcc-4.4.3/libstdc++-v3/scripts/create_testsuite_files deleted file mode 100755 index edb9e4a2c..000000000 --- a/gcc-4.4.3/libstdc++-v3/scripts/create_testsuite_files +++ /dev/null @@ -1,54 +0,0 @@ -#!/bin/sh - -# Constructs lists of source files (full pathnames) to test. Two -# files are constructed: testsuite_files, which is used to test with -# the default dg-runtest command, and testsuite_files_interactive, -# which is used to test cases that require input to be entered. In -# addition, both lists are pruned of wchar_t tests if the toolchain -# under test does not support wchar_t functionality. -# -# We mimic the mkcheck script in that the first time this is run, all -# existing files are listed in "testsuite_files" in the output -# directory. Subsequent runs pull the list from that file, allowing -# users to trim the list down to problematic tests, or just run -# paticular directories or sub-directories of tests. -# -# Selecting individual tests can also be done with RUNTESTFLAGS, but -# that doesn't really do all that we are trying to accomplish here. - -LC_ALL=C -export LC_ALL - -# Both of these are in the appropriate testsuite subdirectories. -srcdir="$1" -outdir="$2" - -tmp="${TMPDIR:-/tmp}/ctt$$" -tests_file_normal="$outdir/testsuite_files" -tests_file_inter="$outdir/testsuite_files_interactive" -tests_file_perf="$outdir/testsuite_files_performance" - -cd $srcdir -# This is the ugly version of "everything but the current directory". It's -# what has to happen when find(1) doesn't support -mindepth, or -xtype. -dlist=`echo [0-9][0-9]*` -dlist="$dlist abi backward ext performance tr1" -find $dlist "(" -type f -o -type l ")" -name "*.cc" -print > $tmp.01 -find $dlist "(" -type f -o -type l ")" -name "*.c" -print > $tmp.02 -cat $tmp.01 $tmp.02 | sort > $tmp.1 -if test ! -s "$tmp.1"; then - exit 1 -fi - -# Now filter out classes of tests. These classes are run using special rules. -grep _xin $tmp.1 > $tests_file_inter -grep -v _xin $tmp.1 > $tmp.4 - -grep performance $tmp.4 > $tests_file_perf -grep -v performance $tmp.4 > $tmp.5 - -# ...more filters go here. -cp $tmp.5 $tests_file_normal - -rm $tmp* -exit 0 diff --git a/gcc-4.4.3/libstdc++-v3/scripts/extract_symvers b/gcc-4.4.3/libstdc++-v3/scripts/extract_symvers deleted file mode 100755 index 5a0f3659c..000000000 --- a/gcc-4.4.3/libstdc++-v3/scripts/extract_symvers +++ /dev/null @@ -1,59 +0,0 @@ -#!/bin/sh - -# Copyright (C) 2002, 2003, 2009 Free Software Foundation, Inc. -# -# This file is part of the GNU ISO C++ Library. This library is free -# software; you can redistribute it and/or modify it under the -# terms of the GNU General Public License as published by the -# Free Software Foundation; either version 3, or (at your option) -# any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License along -# with this library; see the file COPYING3. If not see -# <http://www.gnu.org/licenses/>. - - -if test ${#} -lt 2 || test $1 = '--help'; then - echo "Usage: extract_symvers shared_lib output_file" 1>&2 - exit 1 -fi - -lib=$1 -output=$2 - -# GNU binutils, somewhere after version 2.11.2, requires -W/--wide to avoid -# default line truncation. -W is not supported and truncation did not occur -# by default before that point. -readelf="readelf --symbols" -if readelf --help | grep -- --wide > /dev/null; then - readelf="$readelf --wide" -fi - -# This avoids weird sorting problems later. -LC_ALL=C -export LC_ALL -LANG=C -export LANG - -tmp=extract.$$ - -${readelf} ${lib} |\ -sed -e 's/ \[<other>: [A-Fa-f0-9]*\] //' -e '/\.dynsym/,/^$/p;d' |\ -egrep -v ' (LOCAL|UND) ' |\ -awk '{ if ($4 == "FUNC" || $4 == "NOTYPE") - printf "%s:%s\n", $4, $8; - else if ($4 == "OBJECT") - printf "%s:%s:%s\n", $4, $3, $8; - }' | sort | uniq > $tmp 2>&1 -# else printf "Huh? What is %s?\n", $8; - - -# I think we'll be doing some more with this file, but for now, dump. -mv $tmp $output - -exit 0 diff --git a/gcc-4.4.3/libstdc++-v3/scripts/gen_bind_includers.pl b/gcc-4.4.3/libstdc++-v3/scripts/gen_bind_includers.pl deleted file mode 100644 index 52b11d283..000000000 --- a/gcc-4.4.3/libstdc++-v3/scripts/gen_bind_includers.pl +++ /dev/null @@ -1,30 +0,0 @@ -#!/usr/bin/perl -w -use English; - -$max = shift @ARGV; - -$template_params = "typename _U1"; -$template_args = "_U1"; -$params = "_U1& __u1"; -$args = "__u1"; - -for ($num_args = 2; $num_args <= $max; ++$num_args) { - $template_params .= ", typename _U$num_args"; - $template_args .= ", _U$num_args"; - $params .= ", _U$num_args& __u$num_args"; - $args .= ", __u$num_args"; - print "#define _GLIBCXX_BIND_NUM_ARGS $num_args\n"; - print "#define _GLIBCXX_BIND_COMMA ,\n"; - print "#define _GLIBCXX_BIND_TEMPLATE_PARAMS $template_params\n"; - print "#define _GLIBCXX_BIND_TEMPLATE_ARGS $template_args\n"; - print "#define _GLIBCXX_BIND_PARAMS $params\n"; - print "#define _GLIBCXX_BIND_ARGS $args\n"; - print "#include _GLIBCXX_BIND_REPEAT_HEADER\n"; - print "#undef _GLIBCXX_BIND_ARGS\n"; - print "#undef _GLIBCXX_BIND_PARAMS\n"; - print "#undef _GLIBCXX_BIND_TEMPLATE_ARGS\n"; - print "#undef _GLIBCXX_BIND_TEMPLATE_PARAMS\n"; - print "#undef _GLIBCXX_BIND_COMMA\n"; - print "#undef _GLIBCXX_BIND_NUM_ARGS\n"; - print "\n"; -} diff --git a/gcc-4.4.3/libstdc++-v3/scripts/gen_includers.pl b/gcc-4.4.3/libstdc++-v3/scripts/gen_includers.pl deleted file mode 100644 index 477f02840..000000000 --- a/gcc-4.4.3/libstdc++-v3/scripts/gen_includers.pl +++ /dev/null @@ -1,126 +0,0 @@ -#!/usr/bin/perl -w -use English; - -$max = shift @ARGV; - -$template_params = "typename _T1"; -$template_params_unnamed = "typename"; -$template_args = "_T1"; -$params = "_T1 __a1"; -$ref_params = "_T1& __a1"; -$args = "__a1"; -$bind_members = "_T1 _M_arg1;"; -$bind_members_init = "_M_arg1(__a1)"; -$mu_get_tuple_args = "::std::tr1::get<0>(__tuple)"; -$bind_v_template_args = "typename result_of<_Mu<_T1> _CV(_T1, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type"; -$bind_v_args = "_Mu<_T1>()(_M_arg1, ::std::tr1::tie(_GLIBCXX_BIND_ARGS))"; -$tuple_add_cref = "typename __add_c_ref<_T1>::type __a1"; -$tuple_copy_init = "_M_arg1(__in._M_arg1)"; -$tuple_assign = "_M_arg1 = __in._M_arg1;"; -$template_params_null_class = "typename _T1 = _NullClass"; -$template_args_stripped = "typename __strip_reference_wrapper<_T1>::__type"; -$template_params_u = "typename _U1"; -$template_args_u = "_U1"; -$ref_wrap_params = "ref(__a1)"; -$ref_template_args = "_T1&"; -for ($num_args = 2; $num_args <= $max; ++$num_args) { - $prev_args = $num_args - 1; - $next_args = $num_args + 1; - $template_params_shifted = $template_params; - $template_args_shifted = $template_args; - $params_shifted = $params; - $args_shifted = $args; - $template_params .= ", typename _T$num_args"; - $template_params_unnamed .= ", typename"; - $template_args .= ", _T$num_args"; - $params .= ", _T$num_args __a$num_args"; - $ref_params .=", _T$num_args& __a$num_args"; - $args .= ", __a$num_args"; - $bind_members .= " _T$num_args _M_arg$num_args;"; - $bind_members_init .= ", _M_arg$num_args(__a$num_args)"; - $mu_get_tuple_args .= ", ::std::tr1::get<$prev_args>(__tuple)"; - $bind_v_template_args .= ", typename result_of<_Mu<_T$num_args> _CV(_T$num_args, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type"; - $bind_v_args .= ", _Mu<_T$num_args>()(_M_arg$num_args, ::std::tr1::tie(_GLIBCXX_BIND_ARGS))"; - $tuple_add_cref .= ", typename __add_c_ref<_T$num_args>::type __a$num_args"; - $tuple_copy_init .= ", _M_arg$num_args(__in._M_arg$num_args)"; - $tuple_assign .= " _M_arg$num_args = __in._M_arg$num_args;"; - $template_params_null_class .= ", typename _T$num_args = _NullClass"; - $template_args_stripped .= ", typename __strip_reference_wrapper<_T$num_args>::__type"; - $template_params_u .= ", typename _U$num_args"; - $template_args_u .= ", _U$num_args"; - $ref_wrap_params .= ", ref(__a$num_args)"; - $ref_template_args .= ", _T$num_args&"; - - if ($num_args == $max) { - print "#define _GLIBCXX_LAST_INCLUDE\n" - } - print "#define _GLIBCXX_NUM_ARGS $num_args\n"; - print "#define _GLIBCXX_COMMA ,\n"; - print "#define _GLIBCXX_TEMPLATE_PARAMS $template_params\n"; - print "#define _GLIBCXX_TEMPLATE_ARGS $template_args\n"; - print "#define _GLIBCXX_PARAMS $params\n"; - print "#define _GLIBCXX_REF_PARAMS $ref_params\n"; - print "#define _GLIBCXX_ARGS $args\n"; - print "#define _GLIBCXX_COMMA_SHIFTED ,\n"; - print "#define _GLIBCXX_TEMPLATE_PARAMS_SHIFTED $template_params_shifted\n"; - print "#define _GLIBCXX_TEMPLATE_ARGS_SHIFTED $template_args_shifted\n"; - print "#define _GLIBCXX_PARAMS_SHIFTED $params_shifted\n"; - print "#define _GLIBCXX_ARGS_SHIFTED $args_shifted\n"; - print "#define _GLIBCXX_BIND_MEMBERS $bind_members\n"; - print "#define _GLIBCXX_BIND_MEMBERS_INIT $bind_members_init\n"; - print "#define _GLIBCXX_MU_GET_TUPLE_ARGS $mu_get_tuple_args\n"; - print "#define _GLIBCXX_BIND_V_TEMPLATE_ARGS(_CV) $bind_v_template_args\n"; - print "#define _GLIBCXX_BIND_V_ARGS $bind_v_args\n"; - print "#define _GLIBCXX_TUPLE_ADD_CREF $tuple_add_cref\n"; - print "#define _GLIBCXX_TUPLE_COPY_INIT $tuple_copy_init\n"; - print "#define _GLIBCXX_TUPLE_ASSIGN $tuple_assign\n"; - print "#define _GLIBCXX_TEMPLATE_PARAMS_NULL_CLASS $template_params_null_class\n"; - print "#define _GLIBCXX_TEMPLATE_ARGS_STRIPPED $template_args_stripped\n"; - print "#define _GLIBCXX_TEMPLATE_PARAMS_U $template_params_u\n"; - print "#define _GLIBCXX_TEMPLATE_ARGS_U $template_args_u\n"; - print "#define _GLIBCXX_REF_WRAP_PARAMS $ref_wrap_params\n"; - print "#define _GLIBCXX_REF_TEMPLATE_ARGS $ref_template_args\n"; - print "#define _GLIBCXX_NUM_ARGS_PLUS_1 $next_args\n"; - print "#define _GLIBCXX_T_NUM_ARGS_PLUS_1 _T$next_args\n"; - print "#include _GLIBCXX_REPEAT_HEADER\n"; - print "#undef _GLIBCXX_T_NUM_ARGS_PLUS_1\n"; - print "#undef _GLIBCXX_NUM_ARGS_PLUS_1\n"; - print "#undef _GLIBCXX_REF_TEMPLATE_ARGS\n"; - print "#undef _GLIBCXX_REF_WRAP_PARAMS\n"; - print "#undef _GLIBCXX_TEMPLATE_ARGS_U\n"; - print "#undef _GLIBCXX_TEMPLATE_PARAMS_U\n"; - print "#undef _GLIBCXX_TEMPLATE_ARGS_STRIPPED\n"; - print "#undef _GLIBCXX_TEMPLATE_PARAMS_NULL_CLASS\n"; - print "#undef _GLIBCXX_TUPLE_ASSIGN\n"; - print "#undef _GLIBCXX_TUPLE_COPY_INIT\n"; - print "#undef _GLIBCXX_TUPLE_ADD_CREF\n"; - print "#undef _GLIBCXX_BIND_V_ARGS\n"; - print "#undef _GLIBCXX_BIND_V_TEMPLATE_ARGS\n"; - print "#undef _GLIBCXX_MU_GET_TUPLE_ARGS\n"; - print "#undef _GLIBCXX_BIND_MEMBERS_INIT\n"; - print "#undef _GLIBCXX_BIND_MEMBERS\n"; - print "#undef _GLIBCXX_ARGS_SHIFTED\n"; - print "#undef _GLIBCXX_PARAMS_SHIFTED\n"; - print "#undef _GLIBCXX_TEMPLATE_ARGS_SHIFTED\n"; - print "#undef _GLIBCXX_TEMPLATE_PARAMS_SHIFTED\n"; - print "#undef _GLIBCXX_COMMA_SHIFTED\n"; - print "#undef _GLIBCXX_ARGS\n"; - print "#undef _GLIBCXX_REF_PARAMS\n"; - print "#undef _GLIBCXX_PARAMS\n"; - print "#undef _GLIBCXX_TEMPLATE_ARGS\n"; - print "#undef _GLIBCXX_TEMPLATE_PARAMS\n"; - print "#undef _GLIBCXX_COMMA\n"; - print "#undef _GLIBCXX_NUM_ARGS\n"; - if ($num_args == $max) { - print "#undef _GLIBCXX_LAST_INCLUDE\n" - } -} - -print "\n"; -print "#ifndef _GLIBCXX_TUPLE_ALL_TEMPLATE_PARAMS\n"; -print "# define _GLIBCXX_TUPLE_ALL_TEMPLATE_PARAMS $template_params\n"; -print "# define _GLIBCXX_TUPLE_ALL_TEMPLATE_PARAMS_UNNAMED $template_params_unnamed\n"; -print "# define _GLIBCXX_TUPLE_ALL_TEMPLATE_ARGS $template_args\n"; -print "#endif\n"; -print "\n"; - diff --git a/gcc-4.4.3/libstdc++-v3/scripts/gen_includers2.pl b/gcc-4.4.3/libstdc++-v3/scripts/gen_includers2.pl deleted file mode 100644 index 88e9becd1..000000000 --- a/gcc-4.4.3/libstdc++-v3/scripts/gen_includers2.pl +++ /dev/null @@ -1,31 +0,0 @@ -#!/usr/bin/perl -w -use English; - -$max = shift @ARGV; - -$template_params = "typename _U1"; -$template_args = "_U1"; -$params = "_U1& __u1"; -$args = "__u1"; - -for ($num_args = 2; $num_args <= $max; ++$num_args) { - $template_params .= ", typename _U$num_args"; - $template_args .= ", _U$num_args"; - $params .= ", _U$num_args& __u$num_args"; - $args .= ", __u$num_args"; - print "#define _GLIBCXX_BIND_NUM_ARGS $num_args\n"; - print "#define _GLIBCXX_BIND_COMMA ,\n"; - print "#define _GLIBCXX_BIND_TEMPLATE_PARAMS $template_params\n"; - print "#define _GLIBCXX_BIND_TEMPLATE_ARGS $template_args\n"; - print "#define _GLIBCXX_BIND_PARAMS $params\n"; - print "#define _GLIBCXX_BIND_ARGS $args\n"; - print "#include _GLIBCXX_BIND_REPEAT_HEADER\n"; - print "#undef _GLIBCXX_BIND_ARGS\n"; - print "#undef _GLIBCXX_BIND_PARAMS\n"; - print "#undef _GLIBCXX_BIND_TEMPLATE_ARGS\n"; - print "#undef _GLIBCXX_BIND_TEMPLATE_PARAMS\n"; - print "#undef _GLIBCXX_BIND_COMMA\n"; - print "#undef _GLIBCXX_BIND_NUM_ARGS\n"; - print "\n"; -} - diff --git a/gcc-4.4.3/libstdc++-v3/scripts/make_exports.pl b/gcc-4.4.3/libstdc++-v3/scripts/make_exports.pl deleted file mode 100644 index 7c9e4e31d..000000000 --- a/gcc-4.4.3/libstdc++-v3/scripts/make_exports.pl +++ /dev/null @@ -1,144 +0,0 @@ -#!/usr/bin/perl -w - -# This script takes two arguments, a version script and a dynamic library -# (in that order), and prints a list of symbols to be exported from the -# library. -# It expects a 'nm' with the POSIX '-P' option, but everyone has one of -# those, right? It also expects that symbol names have a leading underscore, -# which is somewhat less likely. - -use File::Glob ':glob'; -use FileHandle; -use IPC::Open2; - -# The glob patterns that are to be applied to the demangled name -my @cxx_globs = (); -# The glob patterns that apply directly to the name in the .o files -my @globs = (); -# The patterns for local variables (usually just '*'). -my @ignored = (); - -########## -# Fill in the various glob arrays. - -# The next pattern will go into this array. -my $glob = \@globs; -my $symvers = shift; - -open F,$symvers or die $!; - -while (<F>) { - chomp; - # Lines of the form '} SOME_VERSION_NAME_1.0;' - if (/^[ \t]*\}[ \tA-Z0-9_.a-z]*;[ \t]*$/) { - $glob = \@globs; - next; - } - # Comment and blank lines - next if (/^[ \t]*\#/); - next if (/^[ \t]*$/); - # Lines of the form 'SOME_VERSION_NAME_1.1 {' - next if (/^[A-Z0-9_. \t]*{$/); - # Ignore 'global:' - next if (/^[ \t]*global:$/); - # After 'local:', globs should be ignored, they won't be exported. - if (/^[ \t]*local:$/) { - $glob = \@ignored; - next; - } - # After 'extern "C++"', globs are C++ patterns - if (/^[ \t]*extern \"C\+\+\"[ \t]*$/) { - $glob = \@cxx_globs; - next; - } - # Catch globs. Note that '{}' is not allowed in globs by this script, - # so only '*' and '[]' are available. - if (/^[ \t]*([^ \t;{}#]+);?[ \t]*$/) { - my $ptn = $1; - # Turn the glob into a regex by replacing '*' with '.*'. - $ptn =~ s/\*/\.\*/g; - push @$glob,$ptn; - next; - } - # Important sanity check. This script can't handle lots of formats - # that GNU ld can, so be sure to error out if one is seen! - die "strange line `$_'"; -} -close F; - -# Make 'if (1)' for debugging. -if (0) { - print "cxx:\n"; - (printf "%s\n",$_) foreach (@cxx_globs); - print "globs:\n"; - (printf "%s\n", $_) foreach (@globs); - print "ignored:\n"; - (printf "%s\n", $_) foreach (@ignored); -} - -########## -# Combine the arrays into single regular expressions -# This cuts the time required from about 30 seconds to about 0.5 seconds. - -my $glob_regex = '^_(' . (join '|',@globs) . ')$'; -my $cxx_regex = (join '|',@cxx_globs); - -########## -# Get all the symbols from the library, match them, and add them to a hash. - -my %export_hash = (); -my $nm = $ENV{'NM_FOR_TARGET'} || "nm"; -# Process each symbol. -print STDERR $nm.' -P '.(join ' ',@ARGV).'|'; -open NM,$nm.' -P '.(join ' ',@ARGV).'|' or die $!; -# Talk to c++filt through a pair of file descriptors. -open2(*FILTIN, *FILTOUT, "c++filt -_") or die $!; -NAME: while (<NM>) { - my $i; - chomp; - - # nm prints out stuff at the start, ignore it. - next if (/^$/); - next if (/:$/); - # Ignore undefined and local symbols. - next if (/^([^ ]+) [Ua-z] /); - - # $sym is the name of the symbol, $noeh_sym is the same thing with - # any '.eh' suffix removed. - die "unknown nm output $_" if (! /^([^ ]+) [A-Z] /); - my $sym = $1; - my $noeh_sym = $sym; - $noeh_sym =~ s/\.eh$//; - - # Maybe it matches one of the patterns based on the symbol in the .o file. - if ($noeh_sym =~ /$glob_regex/) { - $export_hash{$sym} = 1; - next NAME; - } - - # No? Well, maybe its demangled form matches one of those patterns. - printf FILTOUT "%s\n",$noeh_sym; - my $dem = <FILTIN>; - chomp $dem; - if ($dem =~ /$cxx_regex/) { - $export_hash{$sym} = 2; - next NAME; - } - - # No? Well, then ignore it. -} -close NM or die "nm error"; -close FILTOUT or die "c++filt error"; -close FILTIN or die "c++filt error"; - -########## -# Print out the export file - -# Print information about generating this file -print "# This is a generated file.\n"; -print "# It was generated by:\n"; -printf "# %s %s %s\n", $0, $symvers, (join ' ',@ARGV); - -foreach my $i (keys %export_hash) { - printf "%s\n",$i or die; -} diff --git a/gcc-4.4.3/libstdc++-v3/scripts/make_graph.py b/gcc-4.4.3/libstdc++-v3/scripts/make_graph.py deleted file mode 100755 index 61e18be47..000000000 --- a/gcc-4.4.3/libstdc++-v3/scripts/make_graph.py +++ /dev/null @@ -1,576 +0,0 @@ -#!/usr/bin/python - -import string -import sys -import re -import os -import platform -import commands -from Numeric import * -from pychart import * -from xml.dom import minidom - -class exception: - pass - - -def comp_platform_info(compiler): - ret = '<ul>\n' - so = commands.getstatusoutput('cat /proc/cpuinfo | grep \'cpu MHz\'') - if so[0] == 0: - ret += '<li>CPU speed - %s</li>\n' % so[1] - so = commands.getstatusoutput('cat /proc/meminfo | grep \'MemTotal\'') - if so[0] == 0: - ret += '<li>Memory - %s</li>\n' % so[1] - ret += '<li>Platform - %s</li>\n' % platform.platform() - so = commands.getstatusoutput(compiler + ' --version') - if so[0] == 0: - ret += '<li>Compiler - %s</li>\n' % so[1] - ret += '</ul>\n' - return ret - - -class res: - """ - A 'structure' representing the results of a test. - """ - def __init__(self, x_label, y_label, cntnr_list, cntnr_descs, res_sets): - self.x_label = x_label - self.y_label = y_label - self.cntnr_list = cntnr_list - self.cntnr_descs = cntnr_descs - self.res_sets = res_sets - - -class res_getter: - """ - This class returns a res object for some test. - """ - class __sorter: - def __accum(self, results): - total = 0 - for result in results: - total = total + result[1] - return total - - def sort(self, cntnr_list, res_sets): - cntnrs_and_totals = [] - for cntnr in cntnr_list: - results = res_sets[cntnr] - total = self.__accum(results) - cntnrs_and_totals.append((cntnr, total)) - by_total = lambda x,y: x[1] > y[1] and -1 or 1 - cntnrs_and_totals.sort(by_total) - ret = [] - for cntnr_and_total in cntnrs_and_totals: - cntnr = cntnr_and_total[0] - ret.append(cntnr) - return ret - - def __init__(self, test_infos_f_name): - self.__test_to_container_res_sets = {} - self.__test_to_f_names = {} - tests_dat = minidom.parse(test_infos_f_name) - for test in tests_dat.getElementsByTagName('test'): - test_name = test.attributes['name'].value - self.__test_to_f_names[test_name] = test.getElementsByTagName('file')[0].attributes['name'].value - cntnr_list = [] - for cntnr in test.getElementsByTagName('cntnr'): - cntnr_list.append(cntnr.attributes['name'].value) - self.__test_to_container_res_sets[test_name] = cntnr_list - - def __get_label(self, tst_dat, label_name): - label = tst_dat.getElementsByTagName(label_name)[0].firstChild.data - label = string.strip(label, '\n') - label = string.strip(label) - return label - - def __parse_res_sets(self, f_name, cntnr_list): - tst_dat = minidom.parse(f_name) - x_label = self.__get_label(tst_dat, 'x_name') - y_label = self.__get_label(tst_dat, 'y_name') - parsed_container_list = tst_dat.getElementsByTagName('cntnr') - res_sets = {} - cntnr_descs = {} - for cntnr in parsed_container_list: - cntnr_name = cntnr.attributes["name"].value - res_sets[cntnr_name] = [] - for cntnr in parsed_container_list: - cntnr_name = cntnr.attributes["name"].value - cntnr_desc = cntnr.getElementsByTagName('desc') - if res_sets.has_key(cntnr_name): - res_set = [] - result_list = cntnr.getElementsByTagName('result') - for result in result_list: - x = string.atol(result.attributes["x"].value) - y = string.atof(result.attributes["y"].value) - res_set.append((x, y)) - res_sets[cntnr_name] = res_set - cntnr_descs[cntnr_name] = cntnr_desc[0] - return (x_label, y_label, cntnr_descs, res_sets) - - def get(self, res_dir, test_name): - cntnr_list = self.__test_to_container_res_sets[test_name] - f_name = res_dir + '/' + self.__test_to_f_names[test_name] - parsed = self.__parse_res_sets(f_name, cntnr_list) - x_label = parsed[0] - y_label = parsed[1] - cntnr_descs = parsed[2] - res_sets = parsed[3] - cntnr_list = self.__sorter().sort(cntnr_list, res_sets) - return res(x_label, y_label, cntnr_list, cntnr_descs, res_sets) - - -class png_maker: - """ - This class creates a png file from a result set. - """ - class __style_chooser: - def __init__(self): - self.native_re = re.compile(r'n_(?:.*?)') - - self.native_tick_mark_0 = tick_mark.Circle(size = 4) - self.native_tick_mark_1 = tick_mark.Square(size = 4) - self.native_line_style_0 = line_style.T(color = color.black, width=2) - self.native_line_style_1 = line_style.T(color = color.black, width=2) - - self.mask_re = re.compile(r'mask(?:.*?)') - self.mod_re = re.compile(r'mod(?:.*?)') - - self.rb_tree_mmap_rb_tree_set_re = re.compile(r'rb_tree_mmap_rb_tree_set(?:.*?)') - self.rb_tree_mmap_lu_mtf_set_re = re.compile(r'rb_tree_mmap_lu_mtf_set(?:.*?)') - - self.splay_re = re.compile(r'splay(?:.*?)') - self.rb_tree_re = re.compile(r'rb_tree(?:.*?)') - self.ov_tree_re = re.compile(r'ov_tree(?:.*?)') - self.splay_tree_re = re.compile(r'splay_tree(?:.*?)') - - self.pat_trie_re = re.compile(r'pat_trie(?:.*?)') - - self.lc_1div8_1div2_re = re.compile(r'lc_1div8_1div2(?:.*?)') - self.lc_1div8_1div1_re = re.compile(r'lc_1div8_1div1(?:.*?)') - self.mcolc_1div2_re = re.compile(r'mcolc_1div2(?:.*?)') - - def choose(self, cntnr): - if self.native_re.search(cntnr): - if cntnr == 'n_pq_vector': - return (self.native_tick_mark_1, self.native_line_style_1) - - return (self.native_tick_mark_0, self.native_line_style_0) - - # tick_mark predefined - # square, circle3, dia, tri, dtri, star, plus5, x5, gray70dia, blackdtri, blackdia - if self.mask_re.search(cntnr): - clr = color.navy - elif self.mod_re.search(cntnr): - clr = color.green4 - elif self.rb_tree_mmap_rb_tree_set_re.search(cntnr): - clr = color.mediumblue - tm = tick_mark.square - elif self.rb_tree_mmap_lu_mtf_set_re.search(cntnr) or cntnr == 'rc_binomial_heap': - clr = color.gray50 - tm = tick_mark.dia - elif self.splay_tree_re.search(cntnr) or cntnr == 'binomial_heap': - clr = color.gray58 - tm = tick_mark.tri - elif self.rb_tree_re.search(cntnr) or cntnr == 'binary_heap': - clr = color.red3 - tm = tick_mark.dtri - elif self.ov_tree_re.search(cntnr) or cntnr == 'thin_heap': - clr = color.orangered1 - tm = tick_mark.star - elif self.pat_trie_re.search(cntnr) or cntnr == 'pairing_heap': - clr = color.blueviolet - tm = tick_mark.plus5 - else: - sys.stderr.write(cntnr + '\n') - raise exception - - # mask / mod - if cntnr.find('lc_1div8_1div') <> -1: - if cntnr.find('mask') <> -1: - # mask - if self.lc_1div8_1div2_re.search(cntnr): - if cntnr.find('nsth') <> -1: - tm = tick_mark.x5 - else: - tm = tick_mark.gray70dia - if self.lc_1div8_1div1_re.search(cntnr): - if cntnr.find('nsth') <> -1: - tm = tick_mark.dia - else: - tm = tick_mark.circle3 - else: - # mod - if self.lc_1div8_1div2_re.search(cntnr): - if cntnr.find('nsth') <> -1: - tm = tick_mark.tri - else: - tm = tick_mark.square - if self.lc_1div8_1div1_re.search(cntnr): - if cntnr.find('nsth') <> -1: - tm = tick_mark.dtri - else: - tm = tick_mark.star - - if self.mcolc_1div2_re.search(cntnr): - tm = tick_mark.circle3 - - return (tm, line_style.T(color = clr, width = 2)) - - - def __init__(self): - self.__sc = self.__style_chooser() - self.__mmap_re = re.compile('mmap_') - - def __container_label_name(self, cntnr): - return self.__mmap_re.sub('\nmmap_\n', cntnr) - - def make(self, res, of_name): - theme.output_format = 'png' - theme.output_file = of_name - theme.scale_factor = 2 -# theme.default_font_size = 5 - theme.use_color = 1 - theme.reinitialize() - y_tick_interval = self.__get_y_tics(res) - xaxis = axis.X(format = '/a90/hL%d', - tic_interval = 200, - label = res.x_label) - yaxis = axis.Y(format = '%.2e', - tic_interval = y_tick_interval, - label = res.y_label) - legend_lines = len(res.cntnr_list) - legend_vloc = 50 + (legend_lines * 10) - ar = area.T(x_axis = xaxis, y_axis = yaxis, - legend = legend.T(loc=(0,-legend_vloc), - frame_line_style=None, - inter_row_sep=2), - size=(240,110)) - plot_list = [] - for cntnr in res.cntnr_list: - style = self.__sc.choose(cntnr) - print cntnr - pl = line_plot.T(label = self.__container_label_name(cntnr), - data = res.res_sets[cntnr], - tick_mark = style[0], - line_style = style[1]) - plot_list.append(pl) - for plot in plot_list: - ar.add_plot(plot) - ar.draw() - - - def __get_y_tics(self, res): - mx = 0 - for cntnr in res.cntnr_list: - m = max(d[1] for d in res.res_sets[cntnr]) - mx = max(m, mx) - return mx / 5 - - - -def make_tt(s): - return '<tt>' + s + '</tt>' - -def make_b(s): - return '<b>' + s + '</b>' - -def make_ttb(s): - return '<tt><b>' + s + '</b></tt>' - -def make_i(s): - return '<i>' + s + '</i>' - -def make_pb_ds_class_href(c_name): - return '<a href = "' + c_name + '.html">' + make_tt(c_name) + '</a>\n' - -def build_value_to_pb_ds_class_href(s_desc): - value = s_desc.attributes['value'].value - ret = make_pb_ds_class_href(value) - return ret - -class hash_desc_to_html_builder: - def build_specific_comb_hash_fn(self, s_desc): - comb_hash_fn_desc = s_desc.getElementsByTagName('Comb_Hash_Fn')[0] - ret = make_tt('Comb_Hash_Fn') - ret = ret + ' = ' - ret = ret + build_value_to_pb_ds_class_href(comb_hash_fn_desc) - return ret - - def __build_nom_denom(self, s_desc): - nom_denom = s_desc.attributes['nom'].value + '/' + s_desc.attributes['denom'].value - return make_i(nom_denom) - - def __build_lc_trigger_desc(self, s_desc): - ret = build_value_to_pb_ds_class_href(s_desc) - ret = ret + ' with ' + make_i('α<sub>min</sub>') - ret = ret + ' = ' + self.__build_nom_denom(s_desc.getElementsByTagName('alpha_min')[0]) - ret = ret + ' and ' + make_i('α<sub>max</sub>') - ret = ret + ' = ' + self.__build_nom_denom(s_desc.getElementsByTagName('alpha_max')[0]) - return ret - - def build_specific_resize_policy(self, s_desc): - ret = make_tt('Resize_Policy') - ret = ret + ' = ' - resize_policy_desc = s_desc.getElementsByTagName('Resize_Policy')[0] - ret = ret + build_value_to_pb_ds_class_href(resize_policy_desc) - ret = ret + ' with ' + make_tt('Size_Policy') - ret = ret + ' = ' - size_policy_desc = resize_policy_desc.getElementsByTagName('Size_Policy')[0] - ret = ret + build_value_to_pb_ds_class_href(size_policy_desc) - ret = ret + ', and ' + make_tt('Trigger_Policy') - ret = ret + ' = ' - trigger_policy_desc = resize_policy_desc.getElementsByTagName('Trigger_Policy')[0] - if trigger_policy_desc.attributes['value'].value == 'hash_load_check_resize_trigger': - ret = ret + self.__build_lc_trigger_desc(trigger_policy_desc) - else: - raise exception - return ret - - -class cc_hash_desc_to_html_builder: - def __init__(self): - self.__hash_builder = hash_desc_to_html_builder() - - def build(self, s_desc): - ret = build_value_to_pb_ds_class_href(s_desc) - ret = ret + 'with ' + self.__hash_builder.build_specific_comb_hash_fn(s_desc) - ret = ret + ', and ' + self.__hash_builder.build_specific_resize_policy(s_desc) - return ret - - -class gp_hash_desc_to_html_builder: - def __init__(self): - self.__hash_builder = hash_desc_to_html_builder() - - def build(self, s_desc): - ret = build_value_to_pb_ds_class_href(s_desc) - ret = ret + ' with ' + self.__hash_builder.build_specific_comb_hash_fn(s_desc) - ret = ret + ', ' + self.__hash_builder.build_specific_resize_policy(s_desc) - ret = ret + ', and ' + make_tt('Probe_Fn') - ret = ret + ' = ' - probe_fn = s_desc.getElementsByTagName('Probe_Fn')[0].attributes['value'].value - ret = ret + make_pb_ds_class_href(probe_fn) - return ret - - -class basic_tree_like_desc_to_html_builder: - def build_tag(self, s_desc): - ret = make_tt('Tag') - ret = ret + ' = ' - tag_desc = s_desc.getElementsByTagName('Tag')[0] - ret = ret + build_value_to_pb_ds_class_href(tag_desc) - return ret - - def build_node_update(self, s_desc): - ret = make_tt('Node_Update') - ret = ret + ' = ' - node_update_desc = s_desc.getElementsByTagName('Node_Update')[0] - ret = ret + build_value_to_pb_ds_class_href(node_update_desc) - return ret - - -class basic_tree_desc_to_html_builder: - def __init__(self): - self.__tree_like_builder = basic_tree_like_desc_to_html_builder() - - def build(self, s_desc): - ret = build_value_to_pb_ds_class_href(s_desc) - ret = ret + ' with ' + self.__tree_like_builder.build_tag(s_desc) - ret = ret + ', and ' + self.__tree_like_builder.build_node_update(s_desc) - return ret - - -class basic_trie_desc_to_html_builder: - def __init__(self): - self.__tree_like_builder = basic_tree_like_desc_to_html_builder() - - def build(self, s_desc): - ret = build_value_to_pb_ds_class_href(s_desc) - ret = ret + ' with ' + self.__tree_like_builder.build_tag(s_desc) - ret = ret + ', and ' + self.__tree_like_builder.build_node_update(s_desc) - return ret - -class lu_desc_to_html_builder: - def build(self, s_desc): - ret = build_value_to_pb_ds_class_href(s_desc) - ret = ret + ' with ' + make_tt('Update_Policy') - ret = ret + ' = ' - update_policy_desc = s_desc.getElementsByTagName('Update_Policy')[0] - ret = ret + build_value_to_pb_ds_class_href(update_policy_desc) - return ret - - -class std_desc_to_html_builder: - def build(self, s_desc): - value = s_desc.attributes['value'].value - return make_tt(value.replace('std_', 'std::')) - - -class std_tr1_desc_to_html_builder: - def build(self, s_desc): - value = s_desc.attributes['value'].value - ret = make_tt(value.replace('std_tr1_', 'std::tr1::')) - ret = ret + ' with ' + make_tt('cache_hash_code') - ret = ret + ' = ' - cache_hash_code = s_desc.getElementsByTagName('cache_hash_code')[0].attributes['value'].value - ret = ret + make_ttb(cache_hash_code) - return ret - -class gnucxx_desc_to_html_builder: - def build(self, s_desc): - value = s_desc.attributes['value'].value - return make_tt(value.replace('__gnucxx_', '__gnucxx::')) - -class stdext_desc_to_html_builder: - def build(self, s_desc): - value = s_desc.attributes['value'].value - return make_tt(value.replace('stdext_', 'stdext::')) - -class npq_desc_to_html_builder: - def build(self, vector): - if vector: - under = make_tt('std::vector') - else: - under = make_tt('std::deque') - - return make_tt('std::priority_queue') + ' adapting ' + under - -class binary_heap_desc_to_html_builder: - def build(self, s_desc): - ret = make_pb_ds_class_href('priority_queue') - ret = ret + ' with ' + make_tt('Tag') - ret = ret + ' = ' + make_pb_ds_class_href('binary_heap_tag') - return ret - -class thin_heap_desc_to_html_builder: - def build(self, s_desc): - ret = make_pb_ds_class_href('priority_queue') - ret = ret + ' with ' + make_tt('Tag') - ret = ret + ' = ' + make_pb_ds_class_href('thin_heap_tag') - return ret - -class binomial_heap_desc_to_html_builder: - def build(self, s_desc): - ret = make_pb_ds_class_href('priority_queue') - ret = ret + ' with ' + make_tt('Tag') - ret = ret + ' = ' + make_pb_ds_class_href('binomial_heap_tag') - return ret - -class rc_binomial_heap_desc_to_html_builder: - def build(self, s_desc): - ret = make_pb_ds_class_href('priority_queue') - ret = ret + ' with ' + make_tt('Tag') - ret = ret + ' = ' + make_pb_ds_class_href('rc_binomial_heap_tag') - return ret - -class pairing_heap_desc_to_html_builder: - def build(self, s_desc): - ret = make_pb_ds_class_href('priority_queue') - ret = ret + ' with ' + make_tt('Tag') - ret = ret + ' = ' + make_pb_ds_class_href('pairing_heap_tag') - return ret - -class legend_desc_builder: - """ - Returns a string corresponding to a specific container type. - """ - def __init__(self): - self.__cc_hash_builder = cc_hash_desc_to_html_builder() - self.__gp_hash_builder = gp_hash_desc_to_html_builder() - self.__basic_tree_builder = basic_tree_desc_to_html_builder() - self.__basic_trie_builder = basic_trie_desc_to_html_builder() - self.__lu_builder = lu_desc_to_html_builder() - self.__std_builder = std_desc_to_html_builder() - self.__std_tr1_builder = std_tr1_desc_to_html_builder() - self.__gnucxx_builder = gnucxx_desc_to_html_builder() - self.__stdext_builder = stdext_desc_to_html_builder() - self.__npq_builder = npq_desc_to_html_builder() - self.__thin_heap_builder = thin_heap_desc_to_html_builder() - self.__thin_heap_builder = thin_heap_desc_to_html_builder() - self.__binary_heap_builder = binary_heap_desc_to_html_builder() - self.__binomial_heap_builder = binomial_heap_desc_to_html_builder() - self.__rc_binomial_heap_builder = rc_binomial_heap_desc_to_html_builder() - self.__pairing_heap_builder = pairing_heap_desc_to_html_builder() - - def __build_specific(self, s_desc): - type = s_desc.attributes['value'].value - - if type == 'thin_heap': - return self.__thin_heap_builder.build(s_desc) - if type == 'binary_heap': - return self.__binary_heap_builder.build(s_desc) - if type == 'binomial_heap': - return self.__binomial_heap_builder.build(s_desc) - if type == 'rc_binomial_heap': - return self.__rc_binomial_heap_builder.build(s_desc) - if type == 'pairing_heap': - return self.__pairing_heap_builder.build(s_desc) - if type == 'cc_hash_table': - ret = self.__cc_hash_builder.build(s_desc) - elif type == 'gp_hash_table': - ret = self.__gp_hash_builder.build(s_desc) - elif type == 'tree': - ret = self.__basic_tree_builder.build(s_desc) - elif type == 'trie': - ret = self.__basic_trie_builder.build(s_desc) - elif type == 'list_update': - ret = self.__lu_builder.build(s_desc) - elif type == 'std::priority_queue_vector': - return self.__npq_builder.build(True) - elif type == 'std::priority_queue_deque': - return self.__npq_builder.build(False) - elif type == 'std_set' or type == 'std_map' or type == 'std_multimap': - return self.__std_builder.build(s_desc) - elif type == 'std_tr1_unordered_set' or type == 'std_tr1_unordered_map': - return self.__std_tr1_builder.build(s_desc) - elif type == 'stdext_hash_set' or type == 'stdext_hash_map' or type == 'stdext_hash_multimap': - return self.__stdext_builder.build(s_desc) - elif type == '__gnucxx_hash_set' or type == '__gnucxx_hash_map' or type == '__gnucxx_hash_multimap': - return self.__gnucxx_builder.build(s_desc) - else: - sys.stderr.write('cannot recognize %s\n' % type) - raise exception - return ret - - - def build(self, desc): - s_descs = desc.getElementsByTagName('type') - if s_descs.length == 0: - print desc.toxml() - raise exception - ret = '' - count = 0 - for s_desc in s_descs: - if count > 0: - ret = ret + ', mapping each key to ' - ret = ret + self.__build_specific(s_desc) - count = count + 1 - return ret - - -def main(doc_dir, res_dir, test_infos_f_name, test_name, build_name): - res_gtr = res_getter(test_infos_f_name) - res = res_gtr.get(res_dir, test_name) - png_mkr = png_maker() - png_of_name = doc_dir + '/' + test_name + '_' + build_name + '.png' - print png_of_name - png_mkr.make(res, png_of_name) - - -if __name__ == "__main__": - """ - This module takes 6 parameters from the command line: - Docs directory - Results directory - Tests info XML file name - Test name - Build name - Compiler name - """ - usg = "make_graph.py <doc_dir> <res_dir> <test_info_file> <test_name> <build_name>\n" - if len(sys.argv) != 6: - sys.stderr.write(usg) - raise exception - main(sys.argv[1], sys.argv[2], sys.argv[3], sys.argv[4], sys.argv[5]) diff --git a/gcc-4.4.3/libstdc++-v3/scripts/make_graphs.py b/gcc-4.4.3/libstdc++-v3/scripts/make_graphs.py deleted file mode 100755 index e230e7a99..000000000 --- a/gcc-4.4.3/libstdc++-v3/scripts/make_graphs.py +++ /dev/null @@ -1,160 +0,0 @@ -#!/usr/bin/python - -import sys -import commands -import re -from xml.dom import minidom -from BeautifulSoup import BeautifulSoup -import make_graph - -class exception: - pass - -res_div_re = re.compile('(.*?)_res_div') -settings_div_re = re.compile('(.*?)_settings_div') - - -gray_border_div_str = '<div style = "border-style: dotted; border-width: 1px; border-color: lightgray">' -space_div_str = '<div style = "width: 100%; height: 20px">' - - - -def logical_build_from_build(build): - if build == 'gcc': - return 'g++' - if build == 'msvc': - return 'msvc++' - if build == 'local': - return 'local' - sys.stderr.write(build) - raise exception - - -def img_title_from_origs(label, title, base_build_ref, build_name, logical_build_name): - title = title.replace('_tt_', '<tt>') - title = title.replace('_455tt_', '</tt>') - title = title.replace('_b_', '<b>') - title = title.replace('_455b_', '</b>') - title = title.replace('_456', ',') - title = title.replace('_457', '[]') - title = title.replace('_', ' ') - return '%s: %s - <a href = "%s_performance_tests.html#%s">%s</a>' % ( - label, - title, - base_build_ref, - build_name, - logical_build_name) - - -def make_png(src_dir, doc_dir, res_dir, tests_info_xml_f_name, build_name, test_name): - cmd_str = '%s/scripts/make_graph.py %s %s %s %s %s' % ( - src_dir, doc_dir, - res_dir, - tests_info_xml_f_name, - test_name, - build_name) - # Must start a new process for pychart - otherwise pngs overlap. - so = commands.getstatusoutput(cmd_str) - if(so[0] != 0): - sys.stderr.write(cmd_str + '\n') - sys.stderr.write(so[1] + '\n') - sys.exit(-1) - - -def make_png_str(label, test_name, build): - ret = '<h6 class="c1">' - ret += '<a name="%s" id= "%s">' % (label, label) - ret += '<img src="%s" ' % (test_name + '_' + build + '.png') - ret += 'alt="no image" />' - ret += '</a></h6>' - return ret - -def process_html(html_f_name, src_dir, build_dir, htmls_xml_f_name, tests_info_xml_f_name, build_name, compiler_name): - doc_dir = src_dir + "/doc/html/ext/pb_ds" - res_dir = build_dir - html_f = open(doc_dir + '/' + html_f_name) - soup = BeautifulSoup(html_f.read()) - html_f.close() - platform_comp_re = re.compile('platform_comp_%s' % build_name) - for d in soup('div'): - try: - settings_m = settings_div_re.match(d['id']) - res_m = res_div_re.match(d['id']) - except: - settings_m = None - res_m = None - - if settings_m: - build = settings_m.groups()[0] - if build == build_name: - logical_build_name = logical_build_from_build(build) - info = gray_border_div_str - info += '<h3><a name = "%s"><u>%s</u></a></h3>' % (build, logical_build_name) - info += make_graph.comp_platform_info(compiler_name) - info += '</div>%s</div>' % space_div_str - d.contents = info - elif res_m: - label = res_m.groups()[0] - d = d.divTag - - build = d['id'].replace('%s_' % label, '') - - if build == build_name: - logical_build_name = logical_build_from_build(build) - d = d.divTag - test_name = d['id'].replace('%s_' % label, '') - d = d.divTag - base_build_ref = d['id'].replace('%s_' % label, '') - d = d.divTag - title = d['id'].replace('%s_' % label, '') - img_title = img_title_from_origs(label, title, base_build_ref, build, logical_build_name) - - make_png(src_dir, doc_dir, res_dir, tests_info_xml_f_name, build_name, test_name) - png_str = make_png_str(label, test_name, build) - content = gray_border_div_str - content += png_str - content += img_title -# content += make_graph.legend(doc_dir, res_dir, tests_info_xml_f_name, test_name, build_name) - content += '</div>%s</div>' % space_div_str - d.contents = content - - return soup - - - -if __name__ == "__main__": - """ - Doc dir - This module takes 6 parameters from the command line: - Source directory - Build directory - HTMLs XML file name - Tests info XML file name - Build name - Compiler name - """ - - usg = "make_graph.py <src_dir> <build_dir> <htmls_xml_f_name> <tests_info_xml_f_name> <build_name> <compiler_name>\n" - - if len(sys.argv) != 7: - sys.stderr.write(usg) - raise exception - - src_dir = sys.argv[1] - build_dir = sys.argv[2] - htmls_xml_f_name = sys.argv[3] - tests_info_xml_f_name = sys.argv[4] - build_name = sys.argv[5] - compiler_name = sys.argv[6] - doc_dir = src_dir + "/doc/html/ext/pb_ds" - htmls_dat = minidom.parse(htmls_xml_f_name) - for html in htmls_dat.getElementsByTagName('html'): - html_f_name = html.attributes['name'].value - - new_soup = process_html(html_f_name, src_dir, build_dir, htmls_xml_f_name, tests_info_xml_f_name, build_name, compiler_name) - - html_f = open(doc_dir + '/' + html_f_name, 'w') - html_f.write(str(new_soup)) - html_f.close() - - diff --git a/gcc-4.4.3/libstdc++-v3/scripts/run_doxygen b/gcc-4.4.3/libstdc++-v3/scripts/run_doxygen deleted file mode 100644 index dd0df653f..000000000 --- a/gcc-4.4.3/libstdc++-v3/scripts/run_doxygen +++ /dev/null @@ -1,354 +0,0 @@ -#!/bin/bash - -# Runs doxygen and massages the output files. -# Copyright (C) 2001, 2002, 2003, 2004, 2008, 2009 -# Free Software Foundation, Inc. -# -# Synopsis: run_doxygen --mode=[html|man|xml] --host_alias=<alias> \ -# v3srcdir v3builddir -# -# Originally hacked together by Phil Edwards <pme@gcc.gnu.org> - - -# We can check now that the version of doxygen is >= this variable. -DOXYVER=1.5.1 - -find_doxygen() { - local -r v_required=`echo $DOXYVER | \ - awk -F. '{if(NF<3)$3=0;print ($1*100+$2)*100+$3}'` - local testing_version doxygen maybedoxy v_found - # thank you goat book - set `IFS=:; X="$PATH:/usr/local/bin:/bin:/usr/bin"; echo $X` - for dir - do - # AC_EXEEXT could come in useful here - maybedoxy="$dir/doxygen" - test -f "$maybedoxy" && testing_version=`$maybedoxy --version` - if test -n "$testing_version"; then - v_found=`echo $testing_version | \ - awk -F. '{if(NF<3)$3=0;print ($1*100+$2)*100+$3}'` - if test $v_found -ge $v_required; then - doxygen="$maybedoxy" - break - fi - fi - done - if test -z "$doxygen"; then - echo run_doxygen error: Could not find Doxygen $DOXYVER in path. 1>&2 - print_usage - fi - # We need to use other tools from the same package/version. - echo :: Using Doxygen tools from ${dir}. - PATH=$dir:$PATH - hash -r -} - -print_usage() { - cat 1>&2 <<EOF -Usage: run_doxygen --mode=MODE --host_alias=BUILD_ALIAS [<options>] - <v3-src-dir> <v3-build-dir> - MODE is one of: - html Generate user-level HTML library documentation. - man Generate user-level man pages. - xml Generate user-level XML pages. - - BUILD_ALIAS is the GCC build alias set at configure time. - -Note: Requires Doxygen ${DOXYVER} or later; get it at - ftp://ftp.stack.nl/pub/users/dimitri/doxygen-${DOXYVER}.src.tar.gz - -EOF - exit 1 -} - -parse_options() { - for o - do - # Blatantly ripped from autoconf, er, I mean, "gratefully standing - # on the shoulders of those giants who have gone before us." - case "$o" in - -*=*) arg=`echo "$o" | sed 's/[-_a-zA-Z0-9]*=//'` ;; - *) arg= ;; - esac - - case "$o" in - --mode=*) - mode=$arg ;; - --host_alias=*) - host_alias=$arg ;; - --mode | --host_alias | --help | -h) - print_usage ;; - *) - # this turned out to be a mess, maybe change to --srcdir=, etc - if test $srcdir = unset; then - srcdir=$o - elif test $outdir = unset; then - builddir=${o} - outdir=${o}/doc/doxygen - else - echo run_doxygen error: Too many arguments 1>&2 - exit 1 - fi - ;; - esac - done -} - - -# script begins here -mode=unset -host_alias=unset -srcdir=unset -outdir=unset -do_html=false -do_man=false -do_xml=false -enabled_sections= -generate_tagfile= -DATEtext=`date '+%Y-%m-%d'` - -# Show how this script is called. -echo run_doxygen $* - -parse_options $* -find_doxygen - -if test $srcdir = unset || test $outdir = unset || test $mode = unset || test $host_alias = unset; then - # this could be better - echo run_doxygen error: You have not given enough information...! 1>&2 - print_usage -fi - -case x"$mode" in - xhtml) - do_html=true - enabled_sections=maint - generate_tagfile="$outdir/html/libstdc++.tag" - ;; - xman) - do_man=true - ;; - xxml) - do_xml=true - enabled_sections=maint - ;; - *) - echo run_doxygen error: $mode is an invalid mode 1>&2 - exit 1 ;; -esac - -mkdir -p $outdir -chmod u+w $outdir - -# work around a stupid doxygen bug -if $do_man; then - mkdir -p $outdir/man/man3/ext - chmod -R u+w $outdir/man/man3/ext -fi - -if $do_xml; then - mkdir -p $outdir/xml -fi - -( - set -e - cd $builddir - sed -e "s=@outdir@=${outdir}=g" \ - -e "s=@srcdir@=${srcdir}=g" \ - -e "s=@builddir@=${builddir}=g" \ - -e "s=@host_alias@=${host_alias}=g" \ - -e "s=@enabled_sections@=${enabled_sections}=" \ - -e "s=@do_html@=${do_html}=" \ - -e "s=@do_man@=${do_man}=" \ - -e "s=@do_xml@=${do_xml}=" \ - -e "s=@generate_tagfile@=${generate_tagfile}=" \ - ${srcdir}/doc/doxygen/user.cfg.in > ${outdir}/${mode}.cfg - echo :: NOTE that this may take some time... - echo doxygen ${outdir}/${mode}.cfg - doxygen ${outdir}/${mode}.cfg - echo :: Finished, exit code was $? -) -ret=$? -test $ret -ne 0 && exit $ret - -if $do_html; then - cd ${outdir}/html - - #doxytag -t libstdc++.tag . > /dev/null 2>&1 - sed -e '/<path>/d' libstdc++.tag > TEMP - mv TEMP libstdc++.tag - - sed -e "s=@DATE@=${DATEtext}=" \ - ${srcdir}/doc/doxygen/mainpage.html > index.html - - # The following bit of line noise changes annoying - # std::foo < typename _Ugly1, typename _Ugly2, .... _DefaultUgly17 > - # to user-friendly - # std::foo - # in the major "Compound List" page. - sed -e 's=\(::[[:alnum:]_]*\)< .* >=\1=' annotated.html > annstrip.html - mv annstrip.html annotated.html - - # Work around a bug in doxygen 1.3. -# for f in class*html struct*html; do - for f in class*html; do - sed '1,10s!^<title> Template!<title>Template !' $f > TEMP - mv TEMP $f - done - - cp ${srcdir}/doc/doxygen/tables.html tables.html - echo :: - echo :: HTML pages begin with - echo :: ${outdir}/html/index.html -fi - -# Mess with the man pages. We don't need documentation of the internal -# headers, since the man pages for those contain nothing useful anyhow. The -# man pages for doxygen modules need to be renamed (or deleted). And the -# generated #include lines need to be changed from the internal names to the -# standard ones (e.g., "#include <stl_tempbuf.h>" -> "#include <memory>"). -if $do_man; then -echo :: -echo :: Fixing up the man pages... -cd $outdir/man/man3 - -# here's the other end of the "stupid doxygen bug" mentioned above -rm -rf ext - -# File names with embedded spaces (EVIL!) need to be....? renamed or removed? -find . -name "* *" -print0 | xargs -0r rm # requires GNU tools - -# Cleanups before tr1* files get killed. -mv tr1_random_distributions.3 random_distributions.3 -mv tr1_random_distributions_continuous.3 random_distributions_continuous.3 -mv tr1_random_distributions_discrete.3 random_distributions_discrete.3 -mv tr1_random_generators.3 random_generators.3 - -# man pages are for functions/types/other entities, not source files -# directly. who the heck would type "man foo.h" anyhow? -find . -name "[a-z]*" -a ! -name "std_*" -print | xargs rm -rm -f *.h.3 *.hpp.3 *config* *.cc.3 *.tcc.3 *_t.3 -#rm ext_*.3 tr1_*.3 debug_*.3 - -# this is used to examine what we would have deleted, for debugging -#mkdir trash -#find . -name "[a-z]*" -a ! -name "std_*" -print | xargs -i mv {} trash -#mv *.h.3 *config* *.cc.3 *.tcc.3 *_t.3 trash - -# Standardize the displayed header names. If anyone who knows perl cares -# enough to rewrite all this, feel free. This only gets run once a century, -# and I'm off getting coffee then anyhow, so I didn't care enough to make -# this super-fast. -g++ ${srcdir}/doc/doxygen/stdheader.cc -o ./stdheader -problematic=`egrep -l '#include <.*_.*>' [a-z]*.3` -for f in $problematic; do - # this is also slow, but safe and easy to debug - oldh=`sed -n '/fC#include </s/.*<\(.*\)>.*/\1/p' $f` - newh=`echo $oldh | ./stdheader` - sed "s=${oldh}=${newh}=" $f > TEMP - mv TEMP $f -done -rm stdheader - -# Some of the pages for generated modules have text that confuses certain -# implementations of man(1), e.g., Linux's. We need to have another top-level -# *roff tag to /stop/ the .SH NAME entry. -problematic=`egrep --files-without-match '^\.SH SYNOPSIS' [A-Z]*.3` -#problematic='Containers.3 Sequences.3 Assoc_containers.3 Iterator_types.3' - -for f in $problematic; do - sed '/^\.SH NAME/{ -n -a\ -\ -.SH SYNOPSIS - }' $f > TEMP - mv TEMP $f -done - -# Also, break this (generated) line up. It's ugly as sin. -problematic=`grep -l '[^^]Definition at line' *.3` -for f in $problematic; do - sed 's/Definition at line/\ -.PP\ -&/' $f > TEMP - mv TEMP $f -done - -cp ${srcdir}/doc/doxygen/Intro.3 C++Intro.3 - -# Why didn't I do this at the start? Were rabid weasels eating my brain? -# Who the fsck would "man std_vector" when the class isn't named that? - -# First, deal with nested namespaces. -for f in *__detail_*; do - newname=`echo $f | sed 's/__detail_/__detail::/'` - mv $f $newname -done -for f in *__parallel_*; do - newname=`echo $f | sed 's/__parallel_/__parallel::/'` - mv $f $newname -done - -# Then, clean up other top-level namespaces. -for f in std_tr1_*; do - newname=`echo $f | sed 's/^std_tr1_/std::tr1::/'` - mv $f $newname -done -for f in std_*; do - newname=`echo $f | sed 's/^std_/std::/'` - mv $f $newname -done -for f in __gnu_cxx_*; do - newname=`echo $f | sed 's/^__gnu_cxx_/__gnu_cxx::/'` - mv $f $newname -done -for f in __gnu_debug_*; do - newname=`echo $f | sed 's/^__gnu_debug_/__gnu_debug::/'` - mv $f $newname -done -for f in __gnu_parallel_*; do - newname=`echo $f | sed 's/^__gnu_parallel_/__gnu_parallel::/'` - mv $f $newname -done -for f in __atomic0_*; do - newname=`echo $f | sed 's/^__atomic0_/std::__atomic0::/'` - mv $f $newname -done -for f in __atomic2_*; do - newname=`echo $f | sed 's/^__atomic2_/std::__atomic2::/'` - mv $f $newname -done -for f in __cxxabiv1_*; do - newname=`echo $f | sed 's/^__cxxabiv1_/abi::/'` - mv $f $newname -done - -# Generic removal bits, where there are things in the generated man -# pages that need to be killed. -for f in *_libstdc__-v3_*; do - rm $f -done - -for f in *_src_*; do - rm $f -done - - -# Also, for some reason, typedefs don't get their own man pages. Sigh. -for f in ios streambuf istream ostream iostream stringbuf \ - istringstream ostringstream stringstream filebuf ifstream \ - ofstream fstream string; -do - echo ".so man3/std::basic_${f}.3" > std::${f}.3 - echo ".so man3/std::basic_${f}.3" > std::w${f}.3 -done - -echo :: -echo :: Man pages in ${outdir}/man -fi - -# all done -echo :: - -exit 0 diff --git a/gcc-4.4.3/libstdc++-v3/scripts/testsuite_flags.in b/gcc-4.4.3/libstdc++-v3/scripts/testsuite_flags.in deleted file mode 100755 index 457adaf4d..000000000 --- a/gcc-4.4.3/libstdc++-v3/scripts/testsuite_flags.in +++ /dev/null @@ -1,81 +0,0 @@ -#!/bin/sh - -# -# This script computes the various flags needed to run GNU C++ testsuites -# (compiler specific as well as library specific). -# -# Written by Benjamin Kosnik <bkoz@redhat.com> -# Gabriel Dos Reis <gdr@codesourcery.com> -# - -# Print a message saying how this script is intended to be invoked -print_usage() { - cat <<EOF -Usage: - testsuite_flags --install-includes - --build-includes - --build-cxx - --build-cc - --install-cxx - --cxxflags - --cxxpchflags - --cxxldflags -EOF -} - -# Establish configure-generated directory structure. -BUILD_DIR=@glibcxx_builddir@ -SRC_DIR=@glibcxx_srcdir@ -PREFIX_DIR=@glibcxx_prefixdir@ -query=$1 - -case ${query} in - --install-includes) - INCLUDES="-I${SRC_DIR}/testsuite/util" - echo ${INCLUDES} - ;; - --build-includes) - INCLUDES="-nostdinc++ @GLIBCXX_INCLUDES@ - -I${SRC_DIR}/include/backward -I${SRC_DIR}/testsuite/util" - echo ${INCLUDES} - ;; - --install-cxx) - CXX=${PREFIX_DIR}/bin/g++ - echo ${CXX} - ;; - --build-cxx) - CXX_build="@CXX@" - CXX=`echo "$CXX_build" | sed 's,gcc/xgcc ,gcc/g++ ,'` - echo ${CXX} - ;; - --build-cc) - CC_build="@CC@" - CC="$CC_build" - echo ${CC} - ;; - --cxxflags) - CXXFLAGS_default="-g -O2 -D_GLIBCXX_ASSERT -fmessage-length=0" - CXXFLAGS_config="@SECTION_FLAGS@ @CXXFLAGS@ @EXTRA_CXX_FLAGS@" - echo ${CXXFLAGS_default} ${CXXFLAGS_config} - ;; - --cxxparallelflags) - CXXFLAGS_parallel="-D_GLIBCXX_PARALLEL -fopenmp - -B${BUILD_DIR}/../libgomp - -I${BUILD_DIR}/../libgomp - -L${BUILD_DIR}/../libgomp/.libs -lgomp" - echo ${CXXFLAGS_parallel} - ;; - --cxxpchflags) - PCHFLAGS="@glibcxx_PCHFLAGS@" - echo ${PCHFLAGS} - ;; - --cxxldflags) - SECTIONLDFLAGS="@SECTION_LDFLAGS@ @LIBICONV@" - echo ${SECTIONLDFLAGS} - ;; - *) - print_usage - ;; -esac - -exit 0 |