| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fix parse tree pretty-printer.
* staptree.h (print_format): Add raw_components field.
* parse.cxx (parse_symbol): Set it.
* staptree.cxx (lex_cast_qstring): Copy it here too.
(binary_expression::print): Add a space around operator, due to
lexical ambiguity (expr % paren-expr) vs %( preprocessor op.
(array_in:: foreach_loop:: arrayindex::print): Print base as indexable.
(print_format::string_to_components): Use parse_error, not semantic.
(print_format::print): Properly quote formatting string. Print
histogram argument.
* translate.cxx (visit_print_format): Properly quote formatting string.
(varlock): Reword lock timeout error message.
* testsuite/buildok/printf.stp: Add some quoting troublemakers.
* testsuite/parseok/unparser.stp: New file.
|
|
|
|
|
|
|
|
|
| |
* translate.cxx (delete_statement_operand_visitor::visit_arrayindex):
Prohibit deleting histogram buckets.
(c_tmpcounter::visit_array_in): Direct to visit_arrayindex.
(c_unparser::visit_array_in): Likewise.
* testsuite/buildok/histogram_operator_in.stp: New test.
|
|
|
|
|
|
|
|
|
|
|
|
| |
* staptree.cxx (traversing_visitor::visit_foreach_loop): Visit
the base indexable of the foreach loop.
* translate.cxx (c_tmpcounter::visit_foreach_loop): Implement
histogram bucket iteration arm.
(c_unparser::visit_foreach_loop): Likewise.
(c_tmpcounter::visit_arrayindex): Fix typo.
* testsuite/buildok/iterate_histogram_buckets.stp: New test.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* elaborate.cxx (mutated_var_collector): Forward
traversal portion of calls to base class.
(mutated_var_collector::visit_arrayindex): Resolve
arrayindex-into-histogram expression as pe_long.
(typeresolution_info::visit_print_format): Traverse
into histogram if present.
* parse.cxx (parse_symbol): Handle parse ambiguity surrounding
print(@hist_op(...)[...]).
* staptree.cxx (traversing_visitor::visit_arrayindex): Visit
base member of arrayindex.
* translate.cxx (c_unparser::histogram_index_check): New method.
(var::hist): Fix bug.
(var::buckets): New method.
(stmt_expr::stmt_expr): Print with newline.
(c_unparser::load_map_indices): Handle indexing-histogram case.
(c_tmpcounter::visit_arrayindex): Likewise.
(c_unparser::visit_arrayindex): Likewise.
(c_tmpcounter_assignment::visit_arrayindex): Throw error when
user attempts to write to histogram bucket.
(c_unparser_assignment::visit_arrayindex): Likewise.
* testsuite/buildok/print_histogram_entry.stp: New test.
|
|
|
|
|
|
|
|
|
| |
PR 1276
From Josh Stone <joshua.i.stone@intel.com>:
* tapsets.cxx (profile_derived_probe, profile_builder,
register_standard_tapsets): Support timer.profile variety.
* stapprobes.5.in: Document it.
* testsuite/builok/fourteen.stp: Test its buildability.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2005-11-28 Graydon Hoare <graydon@redhat.com>
* translate.cxx (var::assert_hist_compatible): New method.
(var::hist): New method.
(c_unparser::load_aggregate): New method.
(hist_op_downcaster): Remove, it was a mistake.
(expression_is_hist_op): Likewise.
(c_tmpcounter::visit_print_format): Implement print(@hist(...)).
(c_unparser::visit_print_format): Likewise.
* staptree.h (struct print_format): Add optional hist_op* member.
* staptree.cxx (traversing_visitor::visit_functioncall): Visit
hist_op if present in print_format.
(deep_copy_visitor::visit_print_format): Likewise.
* parse.cxx (parse_symbol): Special case to consume print(@hist(...)).
* elaborate.cxx (typeresolution_info::visit_arrayindex): Fix type inference bug.
(typeresolution_info::visit_foreach_loop): Likewise.
* testsuite/buildok/print_histograms.stp: New test.
[runtime/ChangeLog]
2005-11-28 Graydon Hoare <graydon@redhat.com>
* stat-common.c (_stp_stat_print_histogram): Various formatting
corrections and aesthetic tweaks.
(__stp_stat_add): Correction to linear bucket underflow cases.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* elaborate.h (get_symbol_within_expression): Make visible.
* elaborate.cxx (get_symbol_within_expression): Make non-static.
(stat_decl_collector): New struct.
(semantic_pass_stats): New semantic pass.
(semantic_pass): Call it.
(semantic_pass_symbols): Remove collection of statistic_decls from files.
(visit_stat_op): Only fail if inferred type is not pe_long.
* parse.cxx (parser::parse): Don't pass per-file statistic_decl
into parse_global.
(parser::parse_global): Don't parse global statistic_decls,
they're obsolete.
* parse.hh (parser::parse_global): Adjust signature to match.
* session.h (statistic_decl::operator==): New method.
* staptree.h (print_format::is_empty): New method.
(stapfile::stat_decls): Remove field.
* staptree.cxx (string_to_components): Fix bugs in format-string
parser.
* translate.cxx (var): Make private fields protected.
(var::init): Support HIST_NONE stats.
(aggvar): New struct.
(mapvar::is_parallel): New method.
(mapvar::call_prefix): Use it.
(mapvar::calculate_aggregate): New method.
(mapvar::fetch_existing_aggregate): New method.
(mapvar::get): Support pe_stats.
(mapvar::init): Use is_parallel(), and support HIST_NONE.
(itervar::itervar): Only fault on pe_unknown.
(itervar::start): Use mapvar::is_parallel and
mapvar::fetch_existing_aggregate.
(emit_map_type_instantiations): Include alloc.c before pmap-gen.c.
Include pmap-gen.c for pe_stats maps.
(c_unparser::gensym_aggregate): New method.
(c_unparser::visit_foreach_loop): Handle mapvar::is_parallel case.
(arrayindex_downcaster): New struct.
(expression_is_arrayindex): New function.
(c_tmpcounter::visit_stat_op): New method.
(c_unparser::visit_stat_op): Implement.
(c_unparser::visit_hist_op): Add commentary, still not implemented.
* testsuite/buildok/stat_{insert,extract}.stp: New tests.
* testsuite/semok/ten.stp: Correct for changes to global declarations.
* testsuite/semko/*.stp: Likewise.
|
|
|
|
|
|
|
|
|
| |
PR 1276
From Josh Stone <joshua.i.stone@intel.com>:
* tapsets.cxx (timer_derived_probe, timer_builder,
register_standard_tapsets): Support timer.ms() variety.
* stapprobes.5.in: Document it.
* testsuite/builok/fourteen.stp: Test its buildability.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR 1837
* testsuite/buildko/one.stp: Replace printk.
* testsuite/buildok/one.stp: Ditto.
* testsuite/buildok/two.stp: Ditto.
* testsuite/semko/fifteen.stp: Ditto.
* testsuite/semko/fourteen.stp: Ditto.
* testsuite/semko/thirteen.stp: Ditto.
* testsuite/transok/eight.stp: Ditto.
* testsuite/transok/seven.stp: Ditto.
* testsuite/transok/six.stp: Ditto.
* tapsets.cxx (*::emit_probe_entries): Replace printk() calls
with _stp_warn().
* stap.1.in: Replace printk with printf in example.
* stapfuncs.5.in: Remove docs for printk and add for
print and printf.
* tapset/logging.stp (printk): Deleted.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* staptree.h (struct indexable): New struct.
(classify_indexable): New function.
(classify_const_indexable): New function.
(struct symbol): Implement indexable.
(struct arrayindex): Take indexable as base.
(struct foreach_loop): Take indexable as base.
(struct print_format): New struct.
(enum stat_component_type): New enum.
(struct stat_op): New struct.
(enum historgram_type): New enum.
(struct hist_op): New struct.
(struct visitor)
(struct traversing_visitor)
(struct throwing_visitor)
(struct deep_copy_visitor): Add new visitor methods.
(require): Specialize for indexable*.
* staptree.cxx (print_format::*)
(stat_op::*)
(hist_op::*)
(indexable::*)
(traversing_visitor::*)
(throwing_visitor::*)
(deep_copy_visitor::*)
(classify_indexable)
(classify_const_indexable): Implement
(deep_copy_visitor::*): Update to use indexables.
* parse.h (parser::parse_indexable): New method.
(parser::parse_hist_op_or_bare_name): New method.
* parse.cxx (lexer::scan): Accept @ in identifiers.
(parser::parse_array_in)
(parser::parse_foreach_loop): Call parse_indexable.
(parser::parse_hist_op_or_bare_name): Implement.
(parser::parse_indexable): Implement.
(parser::parse_symbol): Accept printf, stat_ops, hist_ops.
* elaborate.h (struct typeresolution_info): Add methods for
visiting print_format, stat_op, hist_op.
* elaborate.cxx (symbol_fetcher): New class.
(get_symbol_within_expression): New function.
(get_symbol_within_indexable): New function.
(mutated_var_collector): Replace mutated_map_collector.
(no_var_mutation_during_iteration_check): Replace
no_map_mutation_during_iteration_check.
(semantic_pass_vars): Replace semantic_pass_maps.
(semantic_pass): Update call accordingly.
(symresolution_info::*) Add new visitors, teach about indexables
(typeresolution_info::*) Likewise.
* translate.cxx
(c_unparser::getiter): Take symbol, not foreach_loop.
(c_unparser::*) Add new visitors, teach about indexables.
(c_tmpcounter::*)
(delete_statement_operand_visitor::visit_arrayindex)
(c_tmpcounter_assignment::*)
(c_unparser_assignment::*): Likewise.
(hist_op_downcaster): New struct.
(expression_is_hist_op): New function.
* testsuite/buildok/printf.stp: New test for print_format.
|
|
|
|
|
|
| |
Reported by Guang Lei Li <liguangl@cn.ibm.com>:
* tapset/context.stp (pid,ppid,tid): Correctly pick tgid vs pid.
* testsuite/buildok/context_test.stp: Print out tid() too.
|
|
|
|
| |
* testsuite/buildok/twentytwo.stp: Add another test for PR 1271.
|
|
|
|
|
|
|
| |
PR 1271 cont'd.
* testsuite/buildok/twentytwo.stp: New file.
* testsuite/buildok/twentythree.stp: New file.
* loc2c.c (discontiguify): Add missing ; in output.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* testsuite/semko/twentyone.stp: Check function doesn't match inline.
* testsuite/semko/twentytwo.stp: Check inline doesn't match function.
* testsuite/buildok/six.stp: Change "function" to "inline".
* stapprobes.5.in: Describe "inline" probes.
* tapsets.cxx (TOK_INLINE): New token "inline".
(dwarf_query::has_inline_str)
(dwarf_query::has_inline_num)
(dwarf_query::inline_str_val)
(dwarf_query::inline_num_val): New members.
(dwarf_query::dwarf_query): Load new members.
(query_dwarf_inline_instance)
(query_dwarf_func)
(query_cu)
(query_module)
(dwarf_derived_probe::add_probe_point)
(dwarf_builder::build):
Use inline-related members where appropriate.
(dwarf_derived_probe::register_inline_variants): New method.
(dwarf_derived_probe::register_function_and_statement_variants):
Call it.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR 1366.
* staptree.h (foreach_loop): Add sort_column, sort_direction fields.
* parse.cxx (parse_foreach_loop): Parse "+"/"-" suffix operators.
* stap.1.in, stapex.5.in: Document them.
* staptree.cxx (foreach_loop print, copy): Propagate them.
* translate.cxx (visit_foreach_loop): Support them.
* testsuite/parseok/fifteen.stp, parseko/thirteen.stp,
buildok/twentyone.stp: Test them.
2005-10-07 Frank Ch. Eigler <fche@elastic.org>
PR 1366.
* systemtap.samples/primes.*: Sort foreach gratuitiously.
|
|
|
|
|
|
|
|
|
| |
PR 1131.
* tapsets.cxx
(target_variable_flavour_calculating_visitor::visit_target_symbol)
(var_expanding_copy_visitor::visit_target_symbol):
Require guru mode for writing to target vars.
* testsuite/buildok/twenty.stp: Test writing to target vars.
|
|
|
|
|
|
|
| |
PR 1335
* translate.cxx (c_tmpcounter::visit_functioncall): Correct
recursion sequence.
* testsuite/buildok/nineteen.stp: New test case.
|
|
|
|
|
|
|
| |
* configure.ac: Require elfutils 0.115+.
* tapsets.cxx: Restore graydon's PR 1244 code.
* testsuite/buildok/eighteen.stp: Correct typing.
* configure: Regenerated.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR 1172.
* staptree.h, staptree.cxx: Make all ::print*(), operator<<
functions take const staptree objects.
(literal_string::print): \-prefix double-quotes.
* translate.cxx (emit_common_header): Add context probe_point field.
Switch to atomic_t busy flags.
(emit_module_exit): Use atomic operations for busy flag.
(visit_*): Use lex_cast_qstring for last_stmt strings.
* tapsets.cxx (lex_cast_quoted): \-prefix double-quotes too.
(*::emit_probe_entries): Populate probe_point. Use atomic operations
for busy flag.
* tapset/context.stp (pp): New function.
* stapfuncs.5.in: Document it.
* testsuite/buildok/context_test.stp: Test it.
|
|
|
|
|
|
|
| |
* testsuite/buildok/context_test.stp: New test.
* tapset/logging.stp (log): Call _stp_printf().
* stapfuncs.5.in: Add contextinfo funcs.
* tapset/context.stp: Minor cleanup.
|
|
|
|
|
|
|
|
|
|
| |
PR systemtap/1244
* testsuite/buildok/eighteen.stp: New test.
* tapsets.cxx (dwflpp::literal_stmt_for_local)
(query_statement, query_inline_instance_info)
(query_func_info, query_srcfile_line, query_cu)
(var_expanding_copy_visitor, visit_target_symbol)
(dwarf_derived_probe): Fix 1244.
|
|
|
|
|
|
|
|
|
| |
PR systemtap/1258
* tapsets.cxx (dwflpp::literal_stmt_for_local):
Support DW_TAG_enumeration_type tag as synonymous with
DW_TAG_base_type.
* loc2c.c (base_byte_size): Likewise.
* testsuite/buildok/seven.stp: Adjust to work on UP kernels.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* tapsets.cxx (dwflpp::literal_stmt_for_local): Handle dwarf
pointer-to-1-byte-means-char case (found in PR 1187)
* parse.cxx (parse_symbol): Eliminate use of "." from target
symbol parser, conflicting with string concatenation operator.
* staptree.h (target_symbol::component_type) Eliminate
comp_struct_pointer_member, since . and -> are considered the
same now.
* staptree.cxx (target_symbol::print): Likewise.
* testsuite/buildok/seventeen.stp: Test solution on PR 1191.
* testsuite/buildok/six.stp: Test working portion of PR 1155.
* testsuite/semko/nineteen.stp: Unresolved portion of PR 1155.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* tapsets.cxx (*::emit_probe_entries): Treat NULL and "" last_errors
both as clean early returns, not errors.
* translate.cxx: Revamp last_error handling logic. Remove all
"goto out" paths from expression context.
(visit_statement): Handle last_error exit one nesting level at a time.
(visit_return_statement, visit_functioncall): Set/reset last_error="".
(c_tmpcounter::visit_for_loop): New routine.
(c_unparser::visit_foreach, visit_for_loop): Rewrite to properly
support continue/breaks, non-local exits, (foreach) locks.
(emit_global): Emit lock variable.
(varlock ctor, dtor): Lock/unlock global variable.
(varlock_w, varlock_r): New concrete subclasses. Update all users.
* tapset/builtin_logging.stp (exit): Don't set last_error.
* src/testsuite/buildok/sixteen.stp: New test.
* tapsets.cxx: Temporarily rolled back graydon's changes.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR systemtap/1209
* tapsets.cxx
* elaborate.cxx (derived_probe_builder): Add get_param function.
* elaborate.h: Declare them.
* tapsets.cxx (dwarf_query::get_*_param): Call them.
(timer_derived_probe, timer_builder): New classes.
(register_standard_tapsets): Register timer.jiffies(N) and friend.
* translate.cxx (translate_pass): #include <linux/timers.h>.
* stap.1.in: Document timer.jiffies(N) probe points.
* testsuite/buildok/fourteen.stp: New test.
2005-08-19 Frank Ch. Eigler <fche@elastic.org>
* arith.c (_stp_random_pm): New function.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2005-08-12 Graydon Hoare <graydon@redhat.com>
* translate.cxx (c_tmpcounter::visit_array_in): Implement.
(c_unparser::visit_array_in): Likewise.
(mapvar::exists): New method.
[runtime/ChangeLog]
2005-08-12 Graydon Hoare <graydon@redhat.com>
* map-values.c (_stp_map_entry_exists): New function.
* map.h (_stp_map_entry_exists): Declare it.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR systemtap/1122 et alii
* parse.cxx (parse_literal): Parse and range-limit 64-bit numbers.
(parse_unary): Correct precedence glitch.
* staptree.h (literal_number): Store an int64_t.
* staptree.cxx: Corresponding changes.
* translate.cxx (check_dbz): Remove - insufficient.
(emit_function): Define CONTEXT macro sibling for THIS.
(c_typename): pe_long -> int64_t.
(visit_literal_number): Format literal rigorously and uglily.
(c_assignop, visit_binary_expression): Handle div/mod via new
helper functions in runtime.
* tapset/builtin_logging.stp: Add error, exit builtins.
* testsuite/buildok/ten,eleven.stp: New tests.
* testsuite/parse{ko,ok}/six.stp: Modify for larger numbers.
* testsuite/transok/one.stp: Add more ";"s, maybe unnecessarily.
2005-08-12 Frank Ch. Eigler <fche@elastic.org>
* arith.c: New file to contain arithmetic helper functions.
* builtin_functions.h: Remove, unused.
* runtime.h: Include it.
|
|
|
|
|
|
|
|
|
|
|
| |
PR translator/1186
* elaborate.cxx (resolve_2types): Accept a flag to tolerate unresolved
expression types.
(visit_functioncall): Call it thusly.
* translate.cxx (emit_function): Tolerate void functions.
* stap.1.in: Document possibility of void functions.
* tapset/builtin_{log,printk,warn}.stp: Make these void functions.
* testsuite/buildok/nine.stp, semok/eighteen.stp: New tests.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* elaborate.cxx:
(delete_statement_symresolution_info): New struct.
(symresolution_info::visit_delete_statement): Use it.
(delete_statement_typeresolution_info): New struct.
(typeresolution_info::visit_delete_statement): Use it.
(symresolution_info::find_var): Accept -1 as 'unknown' arity.
* elaborate.h: Update to reflect changes in .cxx.
* translate.cxx (mapvar::del): New method.
(c_unparser::getmap): Check arity >= 1;
(delete_statement_operand_visitor): New struct.
(c_unparser::visit_delete_statement): Use it.
* staptree.cxx (vardecl::set_arity): Accept and ignore -1.
(vardecl::compatible_arity): Likewise.
* testsuite/buildok/eight.stp: New test for 'delete' operator.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR translator/1175
* translate.cxx (*): Added unlikely() markers to most emitted error
checks.
(mapvar::get,set): Handle NULL<->"" impedance mismatch.
(itervar::get_key): Ditto. Use base index=1 for keys.
* testsuite/buildok/one.stp: Extend. And it runs with -p5 too.
* stap.1: Document use of ";" statament as mechanism for grammar
ambiguity resolution.
* stp_check.in: Set $prefix.
* systemtap.spec.in: Prereq kernel-devel, kernel-debuginfo,
and not tcl.
* tapsets.cxx: Make slightly less verbose.
* translate.cxx
|
| |
|
|
|
|
|
|
| |
* README: Be more specific about prerequisites.
* tapset/builtin_string.stp: New builtin.
* testsuite/buildok/seven.stp, semko/eighteen.stp: New tests.
|
|
|
|
|
|
|
|
|
| |
* loc2.c (emit_loc_address): Emit interleaved declaration into
its own nested { } block.
* tapsets.cxx (literal_stmt_for_local): Emit deref_fault block
unconditionally.
* tapset/builtin_hexstring.stp: New builtin.
* testsuite/buildok/six.stp: New test.
|
| |
|
|
|
|
|
| |
* tapsets.cxx: Support ".return" option for function probe points.
* testuite/buildok/five.stp: Try it.
|
|
|
|
|
|
|
|
|
| |
* elaborate.cxx (derive_probes, semantic_pass_symbols): Improve
error message specificity.
* translate.cxx (emit_module_init): Compact partial registration
recovery code.
(emit_module_exit): Invert deregistration sequence.
* testsuite/buildok/four.stp: Some module() test case.
|
|
|
|
|
|
|
|
|
| |
* translate.cxx: Add "pt_regs*" field to context.
* tapsets.cxx (*): Correct kprobes API interface.
* testsuite/buildok/three.stp: New test, copied from semok.
* Makefile.am (install-data-local): Also install runtime/relayfs,
so scripts can build against headers located thereunder.
* Makefile.in: Regenerated.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
translator/1120
* main.cxx (main): Preset -R and -I options from environment
variables (if set). Pass guru mode flags to parser.
* parse.cxx (privileged): New parser operation flag. Update callers.
(parse_embeddedcode): Throw an error if !privileged.
(parse_functiondecl): Change signature. Prevent duplicates.
(parse_globals): Ditto.
* parse.h: Corresponding changes.
* tapset/*.stp: Beginnings of real tapset library, to replace
previous builtins.
* tapsets.cxx: Greatly reduce verbose mode output.
* Makefile.am: Install & dist it.
* runtest.sh: Refer to it.
* Makefile.in, aclocal.m4: Regenerated.
* testsuite/*/*.stp: Set guru mode via /bin/sh if needed.
* testusite/*/*ko.stp: Homogenize shell scripts.
|
|
Support %{ embedded-c %}
* staptree.h (embeddedcode): New statement subtype. Stub support in
visitors.
* staptree.cxx: Ditto.
* parse.cxx: Parse %{ / %}. Accept "_" as identifier leading char.
(parse_probe): Simplify calling convention.
* elaborate.h: Store embedded code.
* elaborate.cxx: Pass it.
* translate.cxx: Transcribe it. Return some dropped module init/exit
code.
* Makefile.am: Add buildok/buildko tests.
* Makefile.in: Regenerated.
* main.cxx: Return EXIT_SUCCESS/FAILURE even for weird rc.
* testsuite/parseok/nine.stp: Test _identifiers.
* testsuite/transko/*.stp: Tweak to force -p3 rather than -p2 errors.
* testsuite/semok/transko.stp: ... and keep it that way in the future.
* testsuite/parse*/*: Some new tests for %{ %}.
* testsuite/build*/*: New tests for -p4.
|