All of lore.kernel.org
 help / color / mirror / Atom feed
* [LTP] [PATCH v2 0/7] m4: Fix warnings, remove old checks
@ 2022-01-26 12:35 Petr Vorel
  2022-01-26 12:35 ` [LTP] [RFC PATCH v2 1/7] pan: Remove ltp-scanner Petr Vorel
                   ` (7 more replies)
  0 siblings, 8 replies; 19+ messages in thread
From: Petr Vorel @ 2022-01-26 12:35 UTC (permalink / raw)
  To: ltp; +Cc: automated-testing

Hi,

changes v1->v2:
* new commits to remove ltp-scanner and various checks.

There are still some AC_LINK_IFELSE left and some check could be for
sure fixed (e.g. LIBNUMA_API_VERSION 2 is old enough to remove the check),
but let§s postpone it to later.

I also wanted to further clean lib/cloner.c - I wanted to remove
ltp_clone_ and __clone2 for ia64 [1]. ia64 is EOL [2], but hppa is still
supported [3]. Maybe I should ask James Bottomley and
linux-parisc@vger.kernel.org whether they even use LTP for testing.

Tested:
https://github.com/pevik/ltp/actions/runs/1750787899
(opensuse/leap has installation problem, not related to this issue)

Kind regards,
Petr

[1] https://github.com/pevik/ltp/commit/e7da898e16ad592f6bc311c3bad6e0c82977fec4
[2] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=228345bf98cd78f91d007478a51f9a471489e44a
[3] https://parisc.wiki.kernel.org/index.php/Main_Page#PA-RISC_NEWS


Petr Vorel (7):
  pan: Remove ltp-scanner
  m4: Remove check for io_set_eventfd
  m4: Remove check for struct perf_event_attr
  realtime/m4: Simplify exp10 check
  m4: Remove check for MREMAP_FIXED
  m4: Remove check for clone() supports 7 args
  m4: Fix warnings

 .gitignore                                    |   1 -
 INSTALL                                       |   2 -
 configure.ac                                  |  28 +-
 lib/cloner.c                                  |  10 -
 m4/ltp-clone7args.m4                          |  17 -
 m4/ltp-eventfd.m4                             |  11 +-
 m4/ltp-kernel_devel.m4                        |   6 +-
 m4/ltp-mremap_fixed.m4                        |  12 -
 m4/ltp-perf_event_open.m4                     |  16 -
 pan/Makefile                                  |   8 -
 pan/debug.c                                   |  84 ---
 pan/debug.h                                   |  67 ---
 pan/ltp-scanner.c                             | 175 -------
 pan/reporter.c                                | 270 ----------
 pan/reporter.h                                |  80 ---
 pan/scan.h                                    |  42 --
 pan/scan.l                                    | 456 -----------------
 pan/symbol.c                                  | 467 -----------------
 pan/symbol.h                                  | 104 ----
 pan/tag_report.c                              | 478 ------------------
 testcases/cve/cve-2015-3290.c                 |   7 +-
 testcases/kernel/mem/thp/thp02.c              |   5 -
 testcases/kernel/syscalls/eventfd/eventfd01.c |  18 +-
 testcases/kernel/syscalls/mremap/mremap05.c   |  11 -
 .../perf_event_open/perf_event_open01.c       |  16 +-
 .../perf_event_open/perf_event_open02.c       |   8 +-
 .../perf_event_open/perf_event_open03.c       |   7 +-
 testcases/realtime/configure.ac               |   4 +-
 testcases/realtime/m4/check.m4                |   6 +-
 testcases/realtime/m4/ltp-exp10.m4            |  37 --
 30 files changed, 30 insertions(+), 2423 deletions(-)
 delete mode 100644 m4/ltp-clone7args.m4
 delete mode 100644 m4/ltp-mremap_fixed.m4
 delete mode 100644 m4/ltp-perf_event_open.m4
 delete mode 100644 pan/debug.c
 delete mode 100644 pan/debug.h
 delete mode 100644 pan/ltp-scanner.c
 delete mode 100644 pan/reporter.c
 delete mode 100644 pan/reporter.h
 delete mode 100644 pan/scan.h
 delete mode 100644 pan/scan.l
 delete mode 100644 pan/symbol.c
 delete mode 100644 pan/symbol.h
 delete mode 100644 pan/tag_report.c
 delete mode 100644 testcases/realtime/m4/ltp-exp10.m4

-- 
2.34.1


-- 
Mailing list info: https://lists.linux.it/listinfo/ltp

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

* [LTP] [RFC PATCH v2 1/7] pan: Remove ltp-scanner
  2022-01-26 12:35 [LTP] [PATCH v2 0/7] m4: Fix warnings, remove old checks Petr Vorel
@ 2022-01-26 12:35 ` Petr Vorel
  2022-01-26 14:50   ` Cyril Hrubis
  2022-01-27  8:38   ` Jan Stancek
  2022-01-26 12:35 ` [LTP] [RFC PATCH v2 2/7] m4: Remove check for io_set_eventfd Petr Vorel
                   ` (6 subsequent siblings)
  7 siblings, 2 replies; 19+ messages in thread
From: Petr Vorel @ 2022-01-26 12:35 UTC (permalink / raw)
  To: ltp; +Cc: automated-testing

We believe that nobody uses it.

Suggested-by: Cyril Hrubis <chrubis@suse.cz>
Signed-off-by: Petr Vorel <pvorel@suse.cz>
---
New in v2

 .gitignore        |   1 -
 INSTALL           |   2 -
 configure.ac      |   1 -
 pan/Makefile      |   8 -
 pan/debug.c       |  84 --------
 pan/debug.h       |  67 -------
 pan/ltp-scanner.c | 175 -----------------
 pan/reporter.c    | 270 --------------------------
 pan/reporter.h    |  80 --------
 pan/scan.h        |  42 ----
 pan/scan.l        | 456 -------------------------------------------
 pan/symbol.c      | 467 --------------------------------------------
 pan/symbol.h      | 104 ----------
 pan/tag_report.c  | 478 ----------------------------------------------
 14 files changed, 2235 deletions(-)
 delete mode 100644 pan/debug.c
 delete mode 100644 pan/debug.h
 delete mode 100644 pan/ltp-scanner.c
 delete mode 100644 pan/reporter.c
 delete mode 100644 pan/reporter.h
 delete mode 100644 pan/scan.h
 delete mode 100644 pan/scan.l
 delete mode 100644 pan/symbol.c
 delete mode 100644 pan/symbol.h
 delete mode 100644 pan/tag_report.c

diff --git a/.gitignore b/.gitignore
index 3efac384f6..fd66dac786 100644
--- a/.gitignore
+++ b/.gitignore
@@ -45,7 +45,6 @@ autom4te.cache
 /lib/ltp.pc
 /pan/ltp-bump
 /pan/ltp-pan
-/pan/ltp-scanner
 
 cscope.*
 ncscope.*
diff --git a/INSTALL b/INSTALL
index 3bb37d60b9..eb63539a8c 100644
--- a/INSTALL
+++ b/INSTALL
@@ -27,8 +27,6 @@ configure file).
 pkgconf is recommended also for compilation from tarball as it
 does automatic detection of some library support.
 
-GNU Bison / Berkeley Yacc is required for ltp-scanner.
-
 Configuration
 -------------
 
diff --git a/configure.ac b/configure.ac
index 3c56d19224..8becd74c2c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -24,7 +24,6 @@ AC_PROG_CC
 # 2.62.
 AC_DEFUN([AC_PROG_AR], [AC_CHECK_TOOL(AR, ar, :)])
 AC_PROG_AR
-AC_PROG_LEX
 AC_PROG_RANLIB
 AC_DEFUN([AC_PROG_STRIP], [AC_CHECK_TOOL(STRIP, strip, :)])
 AC_PROG_STRIP
diff --git a/pan/Makefile b/pan/Makefile
index 8cefa99ae6..e8596ec26b 100644
--- a/pan/Makefile
+++ b/pan/Makefile
@@ -39,18 +39,10 @@ INSTALL_DIR		:= bin
 
 MAKE_TARGETS		:= ltp-bump ltp-pan
 
-ifeq ($(strip $(LEXLIB)),)
-$(warning ltp-scanner will not be built because a working copy of lex was not found)
-else
-MAKE_TARGETS		+= ltp-scanner
-endif
-
 ltp-bump: ltp-bump.o zoolib.o
 
 ltp-pan: ltp-pan.o zoolib.o splitstr.o
 
-ltp-scanner: scan.o ltp-scanner.o reporter.o tag_report.o symbol.o splitstr.o debug.o
-
 # flex does some whacky junk when it generates files on the fly, so let's make
 # sure gcc doesn't get lost...
 vpath %.c $(abs_srcdir):$(abs_builddir)))
diff --git a/pan/debug.c b/pan/debug.c
deleted file mode 100644
index 9027f9bac8..0000000000
--- a/pan/debug.c
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Copyright (c) 2000 Silicon Graphics, Inc.  All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of version 2 of the GNU General Public License as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it would be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- * Further, this software is distributed without any warranty that it is
- * free of the rightful claim of any third person regarding infringement
- * or the like.  Any license provided herein, whether implied or
- * otherwise, applies only to this software file.  Patent licenses, if
- * any, provided herein do not apply to combinations of this program with
- * other software, or any other product whatsoever.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
- * Mountain View, CA  94043, or:
- *
- * http://www.sgi.com
- *
- * For further information regarding this notice, see:
- *
- * http://oss.sgi.com/projects/GenInfo/NoticeExplan/
- *
- */
-/* $Id: debug.c,v 1.1 2000/09/21 21:35:06 alaffin Exp $ */
-#include <stdio.h>
-#include <string.h>
-#include "reporter.h"
-
-#ifdef DEBUGGING
-int Debug[MAXDEBUG];		/* Debug level in their areas */
-#endif
-
-/*
- *	set debug areas & levels
- *
- * Syntax:   area[,area]:level[,area[,area]:level]...
- */
-int set_debug(char *optarg)
-{
-#ifdef DEBUGGING
-	/* pointers to the debug area and level in the option's arguments */
-	char *d_area, *d_level;
-	/* debug area and level after converted to integers */
-	int db_area, db_level;
-
-	d_area = optarg;
-
-	while (*d_area) {
-		d_level = strchr(d_area, ':');
-		*d_level++ = '\0';
-		db_level = atoi(d_level);
-		db_area = atoi(d_area);
-
-		if (db_area > MAXDEBUG) {
-			printf("Error - Debug area %s > maximum of %d\n",
-			       d_area, MAXDEBUG);
-			exit(-1);
-		}
-
-		while (d_area != NULL) {
-			db_area = atoi(d_area);
-			printf("Debug area %d set to %d\n", db_area, db_level);
-			Debug[db_area] = db_level;
-			if ((d_area = strchr(d_area, ',')) != NULL)
-				d_area++;
-		}
-		if ((d_area = strchr(d_level, ',')) == NULL)
-			break;
-	}
-#else
-	printf("Debugging is not enabled.  -D has been ignored\n");
-#endif
-
-	return 0;
-}
diff --git a/pan/debug.h b/pan/debug.h
deleted file mode 100644
index fd8182a53d..0000000000
--- a/pan/debug.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright (c) 2000 Silicon Graphics, Inc.  All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of version 2 of the GNU General Public License as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it would be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- * Further, this software is distributed without any warranty that it is
- * free of the rightful claim of any third person regarding infringement
- * or the like.  Any license provided herein, whether implied or
- * otherwise, applies only to this software file.  Patent licenses, if
- * any, provided herein do not apply to combinations of this program with
- * other software, or any other product whatsoever.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
- * Mountain View, CA  94043, or:
- *
- * http://www.sgi.com
- *
- * For further information regarding this notice, see:
- *
- * http://oss.sgi.com/projects/GenInfo/NoticeExplan/
- *
- */
-/* $Id: debug.h,v 1.1 2000/09/21 21:35:06 alaffin Exp $ */
-#ifndef _DEBUG_H_
-#define _DEBUG_H_
-
-int set_debug( char * );
-
-/*
- * DEBUG support
- *
- * use -DDEBUGGING with cc to enable debugging
- */
-#ifdef DEBUGGING
-
-extern int Debug[];
-#define MAXDEBUG        30
-#define DEBUG(a,l)      if (Debug[a] >= l)
-#define DEBUGO(a,l,c)   if (Debug[a] >= l || c)
-
-#else
-
-#define	DEBUG(a,l)	if (0)
-#define DEBUGO(a,l,c)   if (0)
-
-#endif
-
-#define D_INIT		1
-#define D_SCAN		2
-#define D_SCAN_LEX	3
-#define D_SCAN_CUTS	4
-#define D_REPORT	5
-#define D_REP_H		6
-#define D_REP_CUTS	7
-
-
-#endif
diff --git a/pan/ltp-scanner.c b/pan/ltp-scanner.c
deleted file mode 100644
index afdd757759..0000000000
--- a/pan/ltp-scanner.c
+++ /dev/null
@@ -1,175 +0,0 @@
-/*
- * Copyright (c) 2000 Silicon Graphics, Inc.  All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of version 2 of the GNU General Public License as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it would be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- * Further, this software is distributed without any warranty that it is
- * free of the rightful claim of any third person regarding infringement
- * or the like.  Any license provided herein, whether implied or
- * otherwise, applies only to this software file.  Patent licenses, if
- * any, provided herein do not apply to combinations of this program with
- * other software, or any other product whatsoever.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
- * Mountain View, CA  94043, or:
- *
- * http://www.sgi.com
- *
- * For further information regarding this notice, see:
- *
- * http://oss.sgi.com/projects/GenInfo/NoticeExplan/
- *
- */
-/* $Id: ltp-scanner.c,v 1.1 2009/05/19 09:39:11 subrata_modak Exp $ */
-/*
- * An RTS/pan driver output processing program.
- *
- * This program reads an RTS/pan driver output format file, parses it using lex
- * and saves the information into an in-memory hierarchical keyword table.
- *
- * The reporting segment of the program reads that keyword table to produce
- * it's reports.
- *
- * Synopsis:
- * 	ltp-scanner [ -e ] [ -D area:level ] [ -h ]
- *
- * Description:
- *   Scanner is part of the RTS 2.0 reporting mechanism or pan.
- *   It processes RTS/pan driver format output and produces a single simple report
- *   of each test tag executed, the TCIDs it executed, and their testcases.
- *
- * Options:
- *   -e
- *	use an "extended" output format
- *
- *   -D
- *	enable debug statements.  Areas are listed in report2.h and levels
- *	are in the code.  Must be compiled with "-DDEBUGGING"
- *
- *   -h
- *	print out a command usage statement and exit.
- *
- * INPUT
- *   The input must conform to the RTS/pan driver format.
- *
- * Report Format
- *   A single report style is used.  It consists of a header made of all
- *   keywords in the rts_keywords fields of the driver output, and the test
- *   information.
- *	interpretation of CUTS "number of testcases" field when there are
- *	multiple TCIDs.  It must be the sum of all TCIDs' testcases.
- *
- * System Configuration:
- * ARCHITECTURE         IOS_MODEL_E CRAY_YMP YMP7XX
- * CONFIG               JOBCNTL AVL BMD EMA HPM SECURE TFM_UDB_6 SDS SSD
- * RELEASE              82
- * UNAME                sn1703c cool 8.2.0ae d82.25
- * date                 03/24/94
- *
- * tag		tcid		testcase	status		contact
- * ------------------------------------------------------------------------
- *
- *   When a report is made for only a tag, the TCID and Testcase fields
- *   contain a dash ( "-" ).  The intention is that the output be usable
- *   by other Unix programs.
- *
- *   When a report is made for all TCIDs and Testcases, a star ( "*" ) is used.
- *
- *   When in extended mode, an additional output line is produced for each
- *   tag.
- *
- *	This line is identified with a "!" in the TCID and Testcase fields.
- *
- *	It has no minimum and maximum field widths, so the output does not
- *	line up in columns
- *
- *	the "status" field contains the initiation status
- *
- *	the "contact" field does not expand multiple comma-separated contacts
- *
- *	fields:
- *		tag, tcid, testcase, status, contact,
- *		start time, duration, termination type, termination id,
- *		output starting line, output ending line
- *
- * RELATED DOCUMENTS
- *	Regression Test System Phase 2 Test Result Reporting System
- *
- * AUTHOR
- *   Glen Overby wrote the code.
- *
- * Internal Data Format
- *   All data is maintained in a hierarchical key database.  While there are
- *   many available databases, this impliments a simple ASCII comma-separated
- *   keyed database.
- *
- *   Key Naming
- *	- The top-level keys are named after the RTS or pan test tags.
- *	- The top-level key named "_RTS" contains the RTS Keywords
- *	- Each tag has a "_keys" tag that contains the key fields from
- *	  the TEST_START and EXECUTION_STATUS fields.
- */
-
-#include <getopt.h>
-#include <stdarg.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include "scan.h"
-#include "debug.h"
-#include "reporter.h"
-#include "symbol.h"
-
-char *cnf;			/* current filename */
-int extended = 0;		/* -e option        */
-
-int main(int argc, char *argv[])
-{
-	SYM tags;		/* tag data */
-	int c;
-
-	while ((c = getopt(argc, argv, "D:ehi")) != -1) {
-		switch (c) {
-		case 'i':
-			set_iscanner();
-			break;
-		case 'D':
-			set_debug(optarg);
-			break;
-		case 'e':
-			extended++;
-			break;
-		case 'h':
-			fprintf(stderr,
-				"%s [-e] [-i] [ -D area, level ] input-filenames\n",
-				argv[0]);
-			exit(0);
-		default:
-			fprintf(stderr, "invalid argument, %c\n", c);
-			exit(1);
-		}
-	}
-
-	lex_files(&argv[optind]);	/* I hope that argv[argc+1] == NULL */
-	tags = sym_open(0, 0, 0);
-
-	scanner(tags);
-#ifdef DEBUGGING
-	DEBUG(D_INIT, 1)
-	    sym_dump_s(tags, 0);
-#endif
-	reporter(tags);
-
-	exit(0);
-}
diff --git a/pan/reporter.c b/pan/reporter.c
deleted file mode 100644
index b9ec482d41..0000000000
--- a/pan/reporter.c
+++ /dev/null
@@ -1,270 +0,0 @@
-/*
- * Copyright (c) 2000 Silicon Graphics, Inc.  All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of version 2 of the GNU General Public License as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it would be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- * Further, this software is distributed without any warranty that it is
- * free of the rightful claim of any third person regarding infringement
- * or the like.  Any license provided herein, whether implied or
- * otherwise, applies only to this software file.  Patent licenses, if
- * any, provided herein do not apply to combinations of this program with
- * other software, or any other product whatsoever.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
- * Mountain View, CA  94043, or:
- *
- * http://www.sgi.com
- *
- * For further information regarding this notice, see:
- *
- * http://oss.sgi.com/projects/GenInfo/NoticeExplan/
- *
- */
-/* $Id: reporter.c,v 1.1 2000/09/21 21:35:06 alaffin Exp $ */
-/*
- * This is the report generator half of the scanner program.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-#include <unistd.h>
-#include "reporter.h"
-#include "symbol.h"
-#include "tag_report.h"
-#include "splitstr.h"
-
-/************************************************************************
- *                      Report Generation                               *
- ************************************************************************/
-
-static int scanner_reporter(SYM);
-static int iscanner_reporter(SYM);
-static int scanner_test_end(SYM, SYM, SYM);
-static int iscanner_test_end(SYM, SYM, SYM);
-
-static int (*reporter_func) (SYM) = scanner_reporter;
-static int (*test_end_func) (SYM, SYM, SYM) = scanner_test_end;
-
-/*
- * Do the report generation.
- *
- * A problem: I really need multiple cursors.  I'd rather not look into
- * the depths of the current symbol table implimentation (there are the
- * cursors there that I could use) so that a different (faster!) symbol
- * table can be used in the future.
- *
- * I could get a key (tag), get it's sub-keys (TCIDs), then get the key
- * again to reset to the top level, _then_ get the next key.  That would
- * be very inefficient.
- *
- * The solution I chose is to extract all tags into a list (char array),
- * then go thru that list with the cursor free for other levels to use.
- *
- *  (1) make a list (2d char array) of all Tags
- *  (2) search for the first tag that has a "stime" record, and use that as
- *      the date (MMDDYY) that the tests were run.
- *  (3) print the report header
- *  (4) go thru all tags and report each as described at the beginning of
- *      this file
- */
-static int scanner_reporter(SYM tags)
-{
-	DBT Key, Data;
-	SYM Tag, Keys;
-
-	time_t clock;
-	struct tm *tm;
-
-	/* a list of tags, a count of the number of tags allocated to the list,
-	   and a pointer to go thru the list */
-	char **taglist, **tl;
-	int ntags;
-	int tagcount;		/* how many tags used */
-
-	char key_get[KEYSIZE];
-	char *info;
-
-	/*
-	 * extract tag names from data
-	 */
-	ntags = NTAGS_START;
-	taglist = malloc(sizeof(char *) * ntags);
-	tagcount = 0;
-
-	tl = taglist;
-	sym_seq(tags, &Key, &Data, R_FIRST);
-	do {
-		if (tagcount == ntags) {
-			/* exceeded tag array size -- realloc */
-			ntags += NTAGS_START;
-			taglist =
-			    (char **)realloc(taglist, sizeof(char *) * ntags);
-			tl = taglist + tagcount;
-		}
-
-		*tl++ = Key.data;
-		tagcount++;
-	} while (sym_seq(tags, &Key, &Data, R_NEXT) == 0);
-
-	if (tagcount == ntags) {
-		/* exceeded tag array size -- realloc */
-		ntags += NTAGS_START;
-		taglist = (char **)realloc(taglist, sizeof(char *) * ntags);
-		tl = taglist + tagcount;
-	}
-
-	*tl++ = NULL;
-	ntags = tagcount;
-	/* Retrieve one "stime" to get the date. */
-	for (tl = taglist; *tl != NULL; tl++) {
-		strcpy(key_get, *tl);
-		strcat(key_get, ",_keys,stime");
-		if ((info = (char *)sym_get(tags, key_get)) != NULL) {
-			clock = atoi(info);
-			tm = gmtime(&clock);
-			strftime(key_get, KEYSIZE, "%x", tm);
-			sym_put(tags, strdup("_RTS,date"), strdup(key_get), 0);
-			break;
-		}
-	}
-
-	print_header(tags);
-
-	/*
-	 * The way that I am using 'Keys' and 'Tag' makes assumptions about the
-	 * internals of the sym_* data structure.
-	 */
-	/* dump 'em all */
-	for (tl = taglist; *tl != NULL; tl++) {
-		if (!strcmp(*tl, "_RTS"))
-			continue;
-
-		strcpy(key_get, *tl);
-		strcat(key_get, ",_keys");
-		if ((Keys = sym_get(tags, key_get)) == NULL) {
-			return 0;
-		}
-
-		strcpy(key_get, *tl);
-		if ((Tag = sym_get(tags, key_get)) != NULL) {
-			tag_report(NULL, Tag, Keys);
-		}
-	}
-	free(taglist);
-
-	return 0;
-}
-
-/*
- * End-Of-Test seen, insert this tag into the global tag data.
- * (1) Get the test's tag
- * (2) insert the keywords in the "_keys" tag
- * (3) insert it into the global data under this tag, replacing any existing
- *      data.
- *
- * a "feature" of the key implimentation: I can insert a key tree
- * under another key tree with almost zero brainwork because a SYM
- * is what the DATA area points to.
- */
-static int scanner_test_end(SYM alltags, SYM ctag, SYM keys)
-{
-	static int notag = 0;	/* counter for records with no tag (error) */
-	char tagname[KEYSIZE];	/* used when creating name (see above) */
-	char *tag;		/* tag name to look things up in */
-	char *status;		/* initiation status of old tag */
-	SYM rm;			/* pointer to old tag -- to remove it */
-
-	if (alltags == NULL || keys == NULL || ctag == NULL)
-		return -1;	/* for really messed up test output */
-
-	/* insert keys into tag */
-	sym_put(ctag, "_keys", (void *)keys, 0);
-
-	/* get the tag, or build a new one */
-	if ((tag = (char *)sym_get(keys, "tag")) == NULL) {
-		/* this is an "impossible" situation: test_output checks for this
-		 * and creates a dummy tag. */
-		sprintf(tagname, "no_tag_%d", notag++);
-		fprintf(stderr, "No TAG key!  Using %s\n", tagname);
-		sym_put(keys, "tag", strdup(tagname), 0);
-		tag = strdup(tagname);
-	}
-
-	/*
-	 * Special case: duplicate tag that has an initiation_status failure
-	 * is thrown away.
-	 */
-	if ((rm = (SYM) sym_get(alltags, tag)) != NULL) {
-		if ((status =
-		     (char *)sym_get(keys, "initiation_status")) != NULL) {
-			if (strcmp(status, "ok")) {
-				/* do not take new data.  remove new data */
-				sym_rm(ctag, RM_KEY | RM_DATA);
-				return 1;
-			} else {
-				/* remove old data in alltags */
-				sym_rm(rm, RM_KEY | RM_DATA);
-			}
-		} else {
-			/* new data does not have an initiation_status -- throw it away */
-			sym_rm(ctag, RM_KEY | RM_DATA);
-			return 1;
-		}
-	}
-
-	/* put new data.. replaces existing "tag" key if it exists
-	 * (it's data should have been removed above) */
-	sym_put(alltags, tag, ctag, PUT_REPLACE);
-
-	return 0;
-}
-
-static int iscanner_reporter(SYM tags)
-{
-	return 0;
-}
-
-static int iscanner_test_end(SYM alltags, SYM ctag, SYM keys)
-{
-	if (alltags == NULL || keys == NULL || ctag == NULL)
-		return -1;	/* for really messed up test output */
-
-	/* insert keys into tag */
-	sym_put(ctag, "_keys", (void *)keys, 0);
-
-	return tag_report(alltags, ctag, keys);
-}
-
-int reporter(SYM s)
-{
-	return reporter_func(s);
-}
-
-int test_end(SYM a, SYM b, SYM c)
-{
-	return test_end_func(a, b, c);
-}
-
-void set_scanner(void)
-{
-	reporter_func = scanner_reporter;
-	test_end_func = scanner_test_end;
-}
-
-void set_iscanner(void)
-{
-	reporter_func = iscanner_reporter;
-	test_end_func = iscanner_test_end;
-}
diff --git a/pan/reporter.h b/pan/reporter.h
deleted file mode 100644
index 9af554c6a7..0000000000
--- a/pan/reporter.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Copyright (c) 2000 Silicon Graphics, Inc.  All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of version 2 of the GNU General Public License as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it would be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- * Further, this software is distributed without any warranty that it is
- * free of the rightful claim of any third person regarding infringement
- * or the like.  Any license provided herein, whether implied or
- * otherwise, applies only to this software file.  Patent licenses, if
- * any, provided herein do not apply to combinations of this program with
- * other software, or any other product whatsoever.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
- * Mountain View, CA  94043, or:
- *
- * http://www.sgi.com
- *
- * For further information regarding this notice, see:
- *
- * http://oss.sgi.com/projects/GenInfo/NoticeExplan/
- *
- */
-/* $Id: reporter.h,v 1.1 2000/09/21 21:35:06 alaffin Exp $ */
-#ifndef _REPORT_H_
-#define _REPORT_H_
-#include "symbol.h"
-
-void set_scanner(void);
-void set_iscanner(void);
-
-int reporter( SYM );
-int test_end( SYM, SYM, SYM );
-
-/*
- * how much TCID space to start with (table)
- */
-#define NTCID_START 5
-
-/*
- * how much tag space to start with (table)
- */
-#define	NTAGS_START	500
-
-/* Return Tokens (from lex) */
-#define		KW_START	100
-#define		KW_END		101
-#define		TEST_START	102
-#define		TEST_OUTPUT	103
-#define		EXEC_STATUS	104
-#define		TEST_END	105
-#define		TEXT_LINE	106
-#define		KEYWORD		107
-#define		KEYWORD_QUOTED	108
-#define		CUTS_RESULT	109
-#define		CUTS_RESULT_R	110
-#define		SPACE		999
-
-/* Scan Modes (above and beyond what I use lex for) */
-#define		SCAN_OUTSIDE	10	/* not in anything */
-#define		SCAN_RTSKEY	20	/* keywords: rts_keyword */
-#define		SCAN_TSTKEY	21	/* keywords: either test_start or
-					   execution_status */
-#define		SCAN_OUTPUT	30	/* test_output */
-
-/*
- *	Configuration type things
- */
-#define KEYSIZE	255	/* maximum key size */
-
-#endif
diff --git a/pan/scan.h b/pan/scan.h
deleted file mode 100644
index 6e01a323cd..0000000000
--- a/pan/scan.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (c) 2000 Silicon Graphics, Inc.  All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of version 2 of the GNU General Public License as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it would be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- * Further, this software is distributed without any warranty that it is
- * free of the rightful claim of any third person regarding infringement
- * or the like.  Any license provided herein, whether implied or
- * otherwise, applies only to this software file.  Patent licenses, if
- * any, provided herein do not apply to combinations of this program with
- * other software, or any other product whatsoever.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
- * Mountain View, CA  94043, or:
- *
- * http://www.sgi.com
- *
- * For further information regarding this notice, see:
- *
- * http://oss.sgi.com/projects/GenInfo/NoticeExplan/
- *
- */
-/* $Id: scan.h,v 1.1 2000/09/21 21:35:06 alaffin Exp $ */
-#ifndef _SCAN_H_
-#define _SCAN_H_
-#include "symbol.h"
-
-int scanner ( SYM );
-int sym_dump_s ( SYM, int );
-int lex_files( char ** );
-
-#endif
diff --git a/pan/scan.l b/pan/scan.l
deleted file mode 100644
index fdc33f330e..0000000000
--- a/pan/scan.l
+++ /dev/null
@@ -1,456 +0,0 @@
-%{
-/*
- * Copyright (c) 2000 Silicon Graphics, Inc.  All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of version 2 of the GNU General Public License as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it would be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- * Further, this software is distributed without any warranty that it is
- * free of the rightful claim of any third person regarding infringement
- * or the like.  Any license provided herein, whether implied or
- * otherwise, applies only to this software file.  Patent licenses, if
- * any, provided herein do not apply to combinations of this program with
- * other software, or any other product whatsoever.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
- * Mountain View, CA  94043, or:
- *
- * http://www.sgi.com
- *
- * For further information regarding this notice, see:
- *
- * http://oss.sgi.com/projects/GenInfo/NoticeExplan/
- *
- */
-/* $Id: scan.l,v 1.1 2000/09/21 21:35:06 alaffin Exp $ */
-/*
- * Lex rules for input processing.
- *
- * This handles all of the input parsing.  The rules liste here properly
- * store or process the pertenant input data in the proper ways.  The rules
- * for the various patterns maintains a "state" to determine if corrupted
- * input is seen (%Start keys + internal ones that only flag errors).
- *
- * See scanner.c for routines called from the actions.
- *
- * States:
- *	SCAN_OUTSIDE
- *		start-up state, inbetween tests
- *	SCAN_RTSKEY			valid from SCAN_OUTSIDE
- *		from rts_keyword_start to _end
- *		accompanied by lex KEY state.
- *	SCAN_TSTKEY			valid from SCAN_OUTSIDE
- *		test_start to test_output or test_end,
- *		execution_status to test_end
- *		accompanied by lex KEY state.
- *	SCAN_OUTPUT
- *		test_output to execution_status.
- *		accompanied by lex OUT or CUTS states.
- */
-
-#include <stdarg.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "scan.h"
-#include "reporter.h"
-#include "symbol.h"
-#include "tag_report.h"
-
-int scan_mode = SCAN_OUTSIDE;	/* current mode */
-char *key, *cont;	/* keyword pieces */
-SYM keys=NULL;		/* stored keywords */
-SYM ctag=NULL;		/* temporary - for storing current tag's info */
-SYM alltags;		/* entire tag database.  set to scanner 'tags' param.*/
-SYM k;			/* temporary sym pointer -- for key removal */
-char info[KEYSIZE];	/* tmp string for inserting line numbers */
-static int test_output( SYM, SYM);
-static int check_mode(int, int, ...);
-
-/*
- * Lex Definitions:
- * UI	Unsigned Integer
- * A	Alphabetic
- * W	"Word" characters (Alpha, Numeric, Hyphens, Underscores)
- * S    Space characters
- */
-%}
-
-%option noc++
-%option noinput
-%option nolex-compat
-%option nounput
-%option yylineno
-
-UI      [0-9]+
-A       [a-zA-Z]+
-W	[a-zA-Z0-9_-]+
-S	[ \t]+
-
-%Start KEY OUT CUTS
-%%
-^<<<rts_keyword_start>>>$	{
-    BEGIN KEY;
-    check_mode(scan_mode, SCAN_OUTSIDE, 0);
-    scan_mode = SCAN_RTSKEY;
-
-    /* remove any keys that exist right now */
-    if(keys != NULL)
-	sym_rm(keys, RM_KEY | RM_DATA);
-    /* start a new table of keys */
-    keys = sym_open(0, 0, 0);
-    return(KW_START);
-    /* NOTREACHED */
-}
-
-^<<<rts_keyword_end>>>$		{
-    BEGIN 0;
-    check_mode(scan_mode, SCAN_RTSKEY, 0);
-    scan_mode = SCAN_OUTSIDE;
-#ifdef DEBUGGING
-    DEBUG(D_SCAN_LEX, 10) {
-	printf("RTS Keywords:\n");
-	sym_dump_s(keys, 0);
-    }
-#endif
-    /* remove _RTS key, if it exists, before replacing it */
-    if( (k=(SYM)sym_get(alltags, "_RTS")) != NULL) {
-	sym_rm(k, RM_KEY | RM_DATA);
-    }
-
-    sym_put(alltags, "_RTS", (void *)keys, PUT_REPLACE);
-    keys = NULL;
-
-    return(KW_END);
-    /* NOTREACHED */
-}
-
-^<<<test_start>>>$		{
-    BEGIN KEY;
-    check_mode(scan_mode, SCAN_OUTSIDE, 0);
-    scan_mode = SCAN_TSTKEY;
-
-    /*
-     * set up new "tag" and "keys" tables
-     * to put the new data into.
-     */
-
-    /* remove any keys that exist right now */
-    if(keys != NULL)
-	sym_rm(keys, RM_KEY | RM_DATA);
-    keys = sym_open(0, 0, 0);
-
-    sprintf(info, "%d", yylineno);
-    sym_put(keys, "_Start_line", strdup(info), 0);
-
-    /* remove any tag info that exists right now */
-    if(ctag != NULL)
-	sym_rm(ctag, RM_KEY | RM_DATA);
-    ctag = sym_open(0, 0, 0);
-
-    return(TEST_START);
-    /* NOTREACHED */
-}
-
-^<<<test_output>>>$		{
-    BEGIN OUT;
-    check_mode(scan_mode, SCAN_TSTKEY, 0);
-    scan_mode = SCAN_OUTPUT;
-
-    test_output(ctag, keys);
-
-    return(TEST_OUTPUT);
-    /* NOTREACHED */
-}
-
-^<<<execution_status>>>$	{
-    BEGIN KEY;
-    check_mode(scan_mode, SCAN_TSTKEY, SCAN_OUTPUT, 0);
-    scan_mode = SCAN_TSTKEY;
-    return(EXEC_STATUS);
-    /* NOTREACHED */
-}
-
-^<<<test_end>>>$		{
-    BEGIN 0;
-    check_mode(scan_mode, SCAN_TSTKEY, 0);
-    scan_mode = SCAN_OUTSIDE;
-
-    sprintf(info, "%d", yylineno);
-
-    sym_put(keys, "_End_line", strdup(info), 0);
-#ifdef DEBUGGING
-    DEBUG(D_SCAN_LEX, 10) {
-	printf("Tag's Keywords:\n");
-	sym_dump_s(keys, 0);
-    }
-#endif
-    test_end(alltags, ctag, keys);
-    ctag = keys = NULL;
-
-    return(TEST_END);
-    /* NOTREACHED */
-}
-
-<KEY>[a-zA-Z_-]+=\"[^\"\n]+\"	{
-    key = yytext;
-    cont = strchr(yytext, '=');
-    *cont++ = '\0';
-    if(*cont == '"') cont++;
-    if(yytext[yyleng-1] == '"')
-	yytext[yyleng-1] = '\0';
-#ifdef DEBUGGING
-    DEBUG(D_SCAN_LEX, 5)
-	printf("A quoted keyword: %s = %s\n", key, cont);
-#endif
-    sym_put(keys, key, strdup(cont), 0);
-
-    return(KEYWORD_QUOTED);
-    /* NOTREACHED */
-}
-
-<KEY>[a-zA-Z_-]+=[^\t \n]+	{
-    key = yytext;
-    cont = strchr(yytext, '=');
-    *cont++ = '\0';
-#ifdef DEBUGGING
-    DEBUG(D_SCAN_LEX, 5)
-	printf("A keyword: %s = %s\n", key, cont);
-#endif
-    sym_put(keys, key, strdup(cont), 0);
-
-    return(KEYWORD);
-    /* NOTREACHED */
-}
-
-<KEY>[ \t\n]*			{
-    return(SPACE);
-    /* NOTREACHED */
-}
-
-<OUT>^.+$			{
-#ifdef DEBUGGING
-    DEBUG(D_SCAN_LEX, 5)
-	printf("TEXT_LINE: %s\n", yytext);
-#endif
-
-    return(TEXT_LINE);
-    /* NOTREACHED */
-}
-
-<CUTS>^{W}{S}{UI}{S}{A}{S}":"	   {
-#ifdef DEBUGGING
-    DEBUG(D_SCAN_LEX, 5)
-	printf("CUTS Result: %s\n", yytext);
-#endif
-    cuts_testcase(ctag, keys);
-
-    return(CUTS_RESULT);
-    /* NOTREACHED */
-}
-
-<CUTS>^{W}{S}{UI}-{UI}{S}{A}{S}":" {
-#ifdef DEBUGGING
-    DEBUG(D_SCAN_LEX, 5)
-	printf("CUTS Result: %s\n", yytext);
-#endif
-    cuts_testcase(ctag, keys);
-
-    return(CUTS_RESULT_R);
-    /* NOTREACHED */
-}
-
-.				{
-    return(SPACE);
-    /* NOTREACHED */
-
-}
-"\n"				{
-    return(SPACE);
-    /* NOTREACHED */
-}
-%%
-/*
- * the BEGIN macro only exists in the lex file, so define a routine to
- * BEGIN the CUTS state.
- */
-int
-begin_cuts(void)
-{
-    BEGIN CUTS;
-    return 0;
-}
-
-/*
- * Calls lex repeatedly until all input is seen.
- */
-int
-scanner(SYM tags)
-{
-    alltags = tags;		/* move into global scope for lex actions */
-
-    while(yylex())
-	;
-
-    return 0;
-}
-
-/*
- * Test-Output record
- *  check if this is a CUTS test; if so, enter the lex "cuts" state;
- *  otherwise do nothing and lex will be in a "data" mode that will just
- *  toss all the output.
- */
-static int
-test_output(SYM tag, SYM keys)
-{
-    char *at;
-
-    if((at=(char *)sym_get(keys, "analysis")) != NULL) {
-	/* CUTS:number_of_testcases  || CUTS-1:number_of_testcases */
-	if(strncasecmp("cuts", at, 4) == 0) {
-	    begin_cuts();
-	    /*printf("CUTS output expected\n");*/
-	}
-    }
-    return 0;
-}
-
-/* Input Data State Check
- * RTS driver output goes thru specific
- * phases; this is used to verify that the new state is a legal state
- * to change to from the current state.
- * This accepts a variable number of arguments (valid states to be
- * in).  The last argument MUST be zero
- */
-struct parse_states {
-	char *name;
-	int bits;
-} parse_states[] = {
-  { "outside",				SCAN_OUTSIDE },
-  { "rts_keyword_start",		SCAN_RTSKEY },
-  { "test_start | execution_status", 	SCAN_TSTKEY },
-  { "test_output",			SCAN_OUTPUT },
-  { "unknown",				0 }, /*end sentinel: bits = 0 */
-};
-
-static int
-check_mode(int scan_mode, int fst, ...)
-{
-    va_list ap;			/* used for variable argument functions*/
-    int found=0;		/* set to true if a valid state was found */
-    int ckm;			/* Check Mode: the mode to look for */
-    register struct parse_states *ps; /* for looking thru parse_states */
-    char exp_mode[KEYSIZE];	/* expected mode list (for error message) */
-
-    extern int yylineno;	/* Line number from Lex */
-
-    /* look thru parse_states; end sentinel is "bits" = 0 */
-    for(ps=parse_states; ps->bits && (ps->bits != fst);ps++)
-	;
-    strcpy(exp_mode, ps->name);
-
-    /* look at first variable argument */
-    if(fst == scan_mode)
-	found++;
-    else {
-	/* not first... look at variable args */
-	va_start(ap, fst);
-	while(((ckm = va_arg(ap, int)) != 0) && (ckm != scan_mode)) {
-	    for(ps=parse_states; ps->bits && (ps->bits != ckm);ps++)
-		;
-	    strcat(exp_mode, ", ");
-	    strcat(exp_mode, ps->name);
-	}
-	va_end(ap);
-
-	if(ckm == scan_mode)
-	    found++;
-    }
-
-    if(!found) {
-	for(ps=parse_states; ps->bits && (ps->bits != scan_mode);ps++)
-	    ;
-
-	fprintf(stderr, "PARSE ERROR -- Line %d found %s in mode %s[%d] expected { %s }\n",
-		yylineno, yytext, ps->name, scan_mode, exp_mode);
-    }
-
-    return 0;
-}
-
-/*
- * This part of the file contains subroutines called by a lex scanner which
- * is parsing rts-driver-format input and putting it into a multi-level
- * symbol table.
- */
-
-/*
- * References to lex variables
- */
-/*extern char yytext[];		/ * text matched by last pattern */
-/*extern long yyleng;		/ * length of above */
-
-char **filenames;
-
-int
-lex_files(char **names)
-{
-    /* lex */
-    extern FILE *yyin;
-
-    filenames = names;
-
-    if(*filenames != NULL) {
-#ifdef DEBUGGING
-	DEBUG(D_SCAN, 1)
-	    printf("lex_files: first file is %s\n", *filenames);
-#endif
-	if((yyin = fopen(*filenames, "r")) == NULL) {
-	    printf("Error opening %s for reading\n", *filenames);
-	    exit(1);
-	}
-    }
-
-    return 0;
-}
-
-/*
- * Called by lex's end-of-file processing.
- *  Open the next file on the command line.  If there is no next file,
- *  return "-1" and lex will end.
- */
-int
-yywrap(void)
-{
-    extern FILE *yyin;
-    extern int yylineno;	/* Line number from Lex */
-
-    if(*filenames != NULL)
-	if(*++filenames != NULL) {
-#ifdef DEBUGGING
-	DEBUG(D_SCAN, 1)
-	    printf("yywrap: next file is %s\n", *filenames);
-#endif
-	    yylineno=1;
-	    if((yyin = fopen(*filenames, "r")) != NULL)
-		return(0);
-	    else {
-		printf("Error opening %s for reading\n", *filenames);
-		return(1);
-	    }
-	}
-
-    return(-1);
-}
-
diff --git a/pan/symbol.c b/pan/symbol.c
deleted file mode 100644
index 37521143ed..0000000000
--- a/pan/symbol.c
+++ /dev/null
@@ -1,467 +0,0 @@
-/*
- * Copyright (c) 2000 Silicon Graphics, Inc.  All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of version 2 of the GNU General Public License as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it would be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- * Further, this software is distributed without any warranty that it is
- * free of the rightful claim of any third person regarding infringement
- * or the like.  Any license provided herein, whether implied or
- * otherwise, applies only to this software file.  Patent licenses, if
- * any, provided herein do not apply to combinations of this program with
- * other software, or any other product whatsoever.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
- * Mountain View, CA  94043, or:
- *
- * http://www.sgi.com
- *
- * For further information regarding this notice, see:
- *
- * http://oss.sgi.com/projects/GenInfo/NoticeExplan/
- *
- */
-/* $Id: symbol.c,v 1.4 2002/05/28 16:26:16 robbiew Exp $ */
-/*
- *			Generic Symbol Table
- *
- * This is intended to look a lot like ndbm, except that all information
- * is kept in memory, and a multi-key, hierarchical access mode is provided.
- * This is largely patterned after the Berkeley "DB" package.
- *
- *			    Requirements
- *
- *	- "key" is ASCII (a C string, in fact)
- *
- *			Symbol Table Structure
- *
- *	Two data structures:
- *		Symbol Table Header
- *		Symbol Table Node
- *
- *	A symbol table header consists of a magic number, a pointer to
- *	the first node in the symbol table, and a cursor that is used
- *	when sequentialy stepping thru the entire list.
- *
- *	Symbol table nodes contain a pointer to a key, a pointer to this
- *	key's data, and a pointer to the next node in the chain.
- *	Note that to create a hierarchical symbol table, a node is created
- *	whose data points to a symbol table header.
- */
-
-#include <stdio.h>
-#include <errno.h>
-#include <stdlib.h>
-#include <string.h>
-#include <assert.h>
-#include "symbol.h"
-#include "splitstr.h"
-
-#define SYM_MAGIC	0xbadc0de
-
-/*
- * Some functions can report an error message by assigning it to this
- * string.
- */
-
-static char *sym_error = NULL;
-
-/*
- *	Memory Allocators
- *
- * newsym() allocates a new symbol table header node
- * mknode(...) allocates a new symbol table entry
- */
-
-SYM newsym(void)
-{
-	SYM h;
-
-	if ((h = malloc(sizeof(struct symh))) == NULL) {
-		sym_error = "sym header malloc failed!";
-		return (NULL);
-	}
-
-	h->magic = SYM_MAGIC;
-	h->sym = NULL;
-	h->cursor = NULL;
-	return (h);
-}
-
-static struct sym *mknode(struct sym *next, char *key, void *data)
-{
-	struct sym *n;
-
-	if ((n = malloc(sizeof(struct sym))) == NULL) {
-		sym_error = "sym node malloc failed!";
-		return (NULL);
-	}
-
-	n->next = next;
-	n->key = strdup(key);
-	n->data = data;
-
-	if (n->key == NULL) {
-		sym_error = "sym node strdup(key) failed!";
-		free(n);
-		return (NULL);
-	}
-	return (n);
-}
-
-/*
- * Search for a key in a single-level symbol table hierarchy.
- */
-static struct sym *find_key1(struct sym *sym, char *key)
-{
-	while (sym != NULL)
-		if (strcmp(sym->key, key) == 0)
-			return (sym);
-		else
-			sym = sym->next;
-	return (NULL);
-}
-
-/*
- * Create a new key node, add it to the *end* of this list
- */
-static int add_key(SYM sym, char *key, void *data)
-{
-	register struct sym *sn;
-
-	if (sym->sym == NULL) {
-		sym->sym = mknode(NULL, key, data);
-		if (sym->sym == NULL) {
-			return (-1);
-		}
-	} else {
-		for (sn = sym->sym; sn != NULL && sn->next != NULL;
-		     sn = sn->next) ;
-		sn->next = mknode(NULL, key, data);
-		assert(sn->next != NULL);
-		if (sn->next == NULL)
-			return (-1);
-	}
-	return (0);
-}
-
-/*
- *  Create a new symbol table
- */
-SYM sym_open(int flags, int mode, int openinfo)
-{
-	return (newsym());
-}
-
-/*
- *	Add (key, data) to an existing symbol table
- *
- *  If the key does not exist, a new key is added to the end of the list.
- *  If the key exists and the PUT_REPLACE flag is not supplied, return EEXIST.
- *  If a symbol table entry in a multi-part key is not a symbol table (i.e.
- *  element two of a three or more element key), return ENOTDIR.
- *
- *  "data" is not duplicated and must not point to a static area that could
- *  go away before the element is deleted (such as a local string in a
- *  function)
- *
- *  "key" is duplicated as needed, and is not modified.
- *
- * Code:
- * chop up key on commas
- *
- * search until a key element isn't found in the key tree, the key list is
- * exhausted, or a key's data element is not a sub-tree
- *
- * if the key list is exhausted, return a "duplicate entry" error
- *
- * if the last found key's data element is not a sub-tree, return
- * something like "ENOTDIR".
- *
- * add new keys for sub-trees until key list is exhausted;
- * last node gets 'data'.
- *
- */
-int sym_put(SYM sym, char *key, void *data, int flags)
-{
-	const char **keys;	/* key split into a 2d string array */
-	char **kk;
-	char *nkey;		/* copy of 'key' -- before split */
-	SYM csym, ncsym;	/* search: current symbol table */
-	struct sym *nsym = NULL;	/* search: found symbol entry */
-
-	if (sym == NULL)
-		return (EINVAL);
-
-	nkey = strdup(key);
-	keys = splitstr(key, ",", NULL);
-
-	if (keys == NULL) {
-		free(nkey);
-		return (EINVAL);
-	}
-
-	for (kk = (char **)keys, csym = sym;
-	     *kk != NULL && (nsym = find_key1(csym->sym, *kk)) != NULL;
-	     csym = nsym->data) {
-
-		if (*++kk == NULL)
-			break;
-
-		if (nsym->data == NULL) {	/* fatal error */
-			free(nkey);
-			splitstr_free(keys);
-			return (ENOTDIR);
-		}
-		if (((SYM) (nsym->data))->magic != SYM_MAGIC) {
-			free(nkey);
-			splitstr_free(keys);
-			return (ENOTDIR);
-		}
-	}
-
-	if (*kk == NULL) {	/* found a complete match */
-		free(nkey);
-		splitstr_free(keys);
-
-		if (flags == PUT_REPLACE) {
-			nsym->data = data;
-			return (0);
-		} else {
-			return (EEXIST);
-		}
-	}
-
-	/* csym is a ptr to a list */
-	for (; *kk != NULL; kk++) {
-		if (*(kk + 1) != NULL) {
-			add_key(csym, *kk, (void *)(ncsym = newsym()));
-			csym = ncsym;
-		} else {
-			add_key(csym, *kk, data);	/* last key */
-		}
-	}
-
-	free(nkey);
-	splitstr_free(keys);
-	return (0);
-}
-
-/*
- *	Retrieve a Symbol's Contents
- *
- *  "key" is not modified.
- *  If the key cannot be found, NULL is returned
- */
-void *sym_get(SYM sym, char *key)
-{
-	char *nkey;
-	const char **keys;	/* key split into a 2d string array */
-	char **kk;
-	SYM csym;		/* search: current symbol table */
-	struct sym *nsym = NULL;	/* search: found symbol entry */
-
-	if (sym == NULL)
-		return (NULL);
-
-	nkey = strdup(key);
-	keys = splitstr(nkey, ",", NULL);
-	if (keys == NULL)
-		return (NULL);
-
-	for (kk = (char **)keys, csym = sym;
-	     *kk != NULL && (nsym = find_key1(csym->sym, *kk)) != NULL;
-	     csym = nsym->data) {
-
-		if (*++kk == NULL)
-			break;
-
-		if (nsym->data == NULL) {	/* fatal error */
-			free(nkey);
-			splitstr_free(keys);
-			return (NULL);
-		}
-		if (((SYM) (nsym->data))->magic != SYM_MAGIC) {
-			free(nkey);
-			splitstr_free(keys);
-			return (NULL);
-		}
-	}
-
-	if (*kk == NULL) {	/* found a complete match */
-		splitstr_free(keys);
-		free(nkey);
-		return (nsym->data);
-	} else {
-		splitstr_free(keys);
-		free(nkey);
-		return (NULL);
-	}
-}
-
-/*
- *  Step thru a symbol table list
- *
- *  The cursor must be set by R_CURSOR, R_FIRST before using R_NEXT.
- *  NULL is returned when no more items are available.
- */
-int sym_seq(SYM sym, DBT * key, DBT * data, int flags)
-{
-	SYM csym;
-
-	switch (flags) {
-		/*
-		 * A number of ways to do this:
-		 * specificly: sym_seq( .., "key,key") sets to Nth element of the 2nd
-		 *  level symbol table
-		 * sym_seq(.., "key,key,") sets to the first element of the 3rd
-		 *  level symbol table
-		 *
-		 * sym_seq(.., "key,key") where both must be complete keys, sets
-		 *  cursor to the first element of the 3rd level symbol table;
-		 *  if there is no 3rd level, return an error.
-		 */
-	case R_CURSOR:
-		csym = (SYM) sym_get(sym, (char *)key->data);
-		if (csym == NULL || csym->magic != SYM_MAGIC) {
-			return (2);
-		}
-		sym->cursor = csym->sym;
-		if (sym->cursor == NULL)
-			return (1);
-		key->data = sym->cursor->key;
-		data->data = sym->cursor->data;
-
-		return (0);
-
-	case R_FIRST:
-		sym->cursor = sym->sym;
-		if (sym->cursor == NULL)
-			return (1);
-		key->data = sym->cursor->key;
-		data->data = sym->cursor->data;
-
-		return (0);
-
-	case R_NEXT:
-		if (sym->cursor == NULL)
-			return (1);
-		sym->cursor = sym->cursor->next;
-
-		if (sym->cursor == NULL)
-			return (1);
-
-		key->data = sym->cursor->key;
-		data->data = sym->cursor->data;
-
-		return (0);
-
-	case R_LAST:
-	case R_PREV:
-	default:
-		return (-1);
-	}
-}
-
-/*
- *	Dump a symbol table's keys.
- *	Handles hierarchies, using a double quote to indicate depth, one
- *	double quote for each level.
- */
-int sym_dump(SYM sym, int depth)
-{
-
-	register struct sym *se;	/* symbol entry */
-	register int d;
-
-	if (sym == NULL || sym->magic != SYM_MAGIC)
-		return -1;
-
-	for (se = sym->sym; se != NULL; se = se->next) {
-		for (d = 0; d < depth; d++) {
-			putchar('"');
-			putchar(' ');
-		}
-		printf("%s\n", se->key);
-		sym_dump((SYM) se->data, depth + 1);
-	}
-	return 0;
-}
-
-/*
- * sym dump, but data is _always_ a string (print it)
- */
-int sym_dump_s(SYM sym, int depth)
-{
-
-	register struct sym *se;	/* symbol entry */
-	register int d;
-
-	if (sym == NULL)
-		return 0;
-
-	if (sym->magic != SYM_MAGIC) {
-		for (d = 0; d < depth; d++) {
-			putchar('"');
-			putchar(' ');
-		}
-		printf(" = %s\n", (char *)sym);
-		return 0;
-	}
-
-	for (se = sym->sym; se != NULL; se = se->next) {
-		for (d = 0; d < depth; d++) {
-			putchar('"');
-			putchar(' ');
-		}
-		printf("%s", se->key);
-		if (((SYM) se->data)->magic == SYM_MAGIC) {
-			putchar('\n');
-			sym_dump_s((SYM) se->data, depth + 1);
-		} else {
-			printf("(%p) = %s (%p)\n", se->key, (char *)se->data,
-			       se->data);
-		}
-	}
-	return 0;
-}
-
-/*
- *	Remove an entire symbol table (done bottom up)
- */
-int sym_rm(SYM sym, int flags)
-{
-	register struct sym *se, *nse;	/* symbol entry */
-
-	if (sym == NULL)
-		return 0;
-
-	if (sym->magic != SYM_MAGIC) {
-		if (!(flags & RM_DATA))
-			free(sym);
-		return 0;
-	}
-
-	for (se = sym->sym; se != NULL;) {
-		sym_rm((SYM) se->data, flags);
-		nse = se->next;
-		if (flags & RM_KEY)
-			free(se->key);
-		if (flags & RM_DATA)
-			free(se->data);
-		free(se);
-		se = nse;
-	}
-	if (!(flags & RM_DATA))
-		free(sym);
-	return 0;
-}
diff --git a/pan/symbol.h b/pan/symbol.h
deleted file mode 100644
index 7b2d035fe1..0000000000
--- a/pan/symbol.h
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * Copyright (c) 2000 Silicon Graphics, Inc.  All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of version 2 of the GNU General Public License as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it would be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- * Further, this software is distributed without any warranty that it is
- * free of the rightful claim of any third person regarding infringement
- * or the like.  Any license provided herein, whether implied or
- * otherwise, applies only to this software file.  Patent licenses, if
- * any, provided herein do not apply to combinations of this program with
- * other software, or any other product whatsoever.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
- * Mountain View, CA  94043, or:
- *
- * http://www.sgi.com
- *
- * For further information regarding this notice, see:
- *
- * http://oss.sgi.com/projects/GenInfo/NoticeExplan/
- *
- */
-/* $Id: symbol.h,v 1.1 2000/09/21 21:35:06 alaffin Exp $ */
-#ifndef _SYMBOL_H_
-#define _SYMBOL_H_
-
-/*
- *	"Generic" Symbol Table
- *
- *  These data structures are the internal part of a library providing
- *  an in-memory dbm-like (key, content) database with hierarchical
- *  key names.
- */
-struct sym {
-    struct sym *next;
-    char       *key;
-    void       *data;
-};
-
-/*
- * Symbol Table Header
- */
-struct symh {
-    int         magic;
-    struct sym *sym;
-    struct sym *cursor;
-};
-
-/*
- * The "SYM" typedef is the only external data type.
- */
-typedef struct symh *SYM;
-
-/*
- * Data for keys and contents (lifted from dbopen(3))
- * dbopen(3) uses this for all functions, but I'm hard-wired into chars
- * for keys and the like; I just need this for sym_get
- */
-typedef struct {
-    void *data;
-    int   size;
-} DBT;
-
-/*
- * Prototypes
- */
-
-SYM   sym_open(int flags, int mode,  int openinfo          );
-int   sym_put (SYM sym,   char *key, void *data, int flags );
-void *sym_get (SYM sym,   char *key                        );
-int   sym_seq (SYM sym,   DBT *key,  DBT *data, int flags  );
-int   sym_rm  (SYM sym,   int flags                        );
-
-/*
- * Flags for sym_put
- */
-#define PUT_REPLACE	1	/* replace data on a put */
-
-/*
- * Flags for sym_rm
- */
-#define	RM_KEY	001		/* free() on key pointer */
-#define	RM_DATA	002		/* free() on data pointer */
-
-/*
- * Flags for sym_seq (clones of 44BSD dbopen(3))
- */
-#define	R_CURSOR	1	/* set "cursor" to where "data" key is */
-#define R_FIRST		2	/* set "cursor" to first item */
-#define	R_NEXT		4	/* set "cursor" to next item */
-#define	R_LAST		3	/* set "cursor" to last item (UNIMP) */
-#define	R_PREV		5	/* set "cursor" to previous item (UNIMP) */
-
-#endif
diff --git a/pan/tag_report.c b/pan/tag_report.c
deleted file mode 100644
index eb8fb3dbcf..0000000000
--- a/pan/tag_report.c
+++ /dev/null
@@ -1,478 +0,0 @@
-/*
- * Copyright (c) 2000 Silicon Graphics, Inc.  All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of version 2 of the GNU General Public License as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it would be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- * Further, this software is distributed without any warranty that it is
- * free of the rightful claim of any third person regarding infringement
- * or the like.  Any license provided herein, whether implied or
- * otherwise, applies only to this software file.  Patent licenses, if
- * any, provided herein do not apply to combinations of this program with
- * other software, or any other product whatsoever.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
- * Mountain View, CA  94043, or:
- *
- * http://www.sgi.com
- *
- * For further information regarding this notice, see:
- *
- * http://oss.sgi.com/projects/GenInfo/NoticeExplan/
- *
- */
-/* $Id: tag_report.c,v 1.2 2006/12/13 22:55:22 vapier Exp $ */
-#include "tag_report.h"
-#include "debug.h"
-#include "reporter.h"
-#include "splitstr.h"
-
-static char *worst_case(char *, char *);
-
-/************************************************************************
- *			Report Generation				*
- ************************************************************************/
-
-/*
- * printf format statement for standard reports
- * 5 fields with max/min widths
- */
-#define FORMAT "%-20.20s %-15.15s %10.10s %-20.20s %s\n"
-
-/*
- *  This is the central results reporting function.  All standard report
- *  format results are printed thru test_result.
- */
-int test_result(char *tag, char *tcid, char *tc, char *result, SYM tags)
-{
-	char *expert, expkey[KEYSIZE];
-	register char *c;
-	char **cont;
-	const char **cont_save;
-
-	if (tcid == NULL)
-		tcid = "-";
-	if (tc == NULL)
-		tc = "-";
-	if (tag == NULL)
-		tag = "test_result: no tag";
-	if (result == NULL)
-		result = "(RESULT IS NULL)";
-
-	strcpy(expkey, "contacts");
-	/* note: the sym_get here does _not_ change the "cursor" */
-	if ((expert = (char *)sym_get(tags, expkey)) == NULL) {
-		expert = "UNKNOWN";
-	}
-
-	/* ' tr " " "_" ' */
-	for (c = result; *c; c++) {
-		if (*c == ' ') {
-			*c = '_';
-		}
-	}
-	if (*result == '\0')
-		result = "?";
-
-	/* split contacts on "," and print out a line for each */
-	cont_save = splitstr(expert, ",", NULL);
-	for (cont = (char **)cont_save; *cont != NULL; cont++) {
-		printf(FORMAT, tag, tcid, tc, result, *cont);
-	}
-	splitstr_free(cont_save);
-
-	return 0;
-}
-
-/*
- * CUTS test reporting.
- *
- *  (1) make a list (2d char array) of all TCIDs (see above for why)
- *  (2) look thru the list:
- *	(a) keep track of the "worst case" in this *TAG*
- *	(b) report each testcase's results
- *	(c) if the testcase number is != 0, count it
- *  (3) report tag's results
- *  (4) check the number of expected results with the actual results,
- *	report an error if they don't match.
- */
-
-int cuts_report(SYM tags, SYM keys, char *at, char *tag)
-{
-	DBT Key, Data;
-
-	/* analysis type: count of CUTS test cases */
-	const char **ant;
-	char *dat;		/* strdup(at) */
-	int tccount;		/* expected count of testcases */
-	int tcnum;		/* seen count of testcases */
-
-	/* a list of tcids */
-	char **taglist, **tl;
-	int ntags, tagcount;
-
-	char key_get[255];
-
-	char *result = "", *worst_case();	/* overall result */
-
-	/* parse analysis type: cuts:tc-count */
-	ant = splitstr((dat = strdup(at)), ":", NULL);
-	if (ant[1] != NULL)
-		tccount = atoi(ant[1]);
-	else
-		tccount = 0;
-	free(dat);
-	splitstr_free(ant);
-
-	/* extract tcids */
-	ntags = NTCID_START;
-	taglist = (char **)malloc(sizeof(char *) * ntags);
-	tagcount = 0;
-
-	tl = taglist;
-	sym_seq(tags, &Key, &Data, R_FIRST);
-	do {
-		if (tagcount == ntags) {
-			/* exceeded tag array size -- realloc */
-			ntags += NTCID_START;
-			taglist =
-			    (char **)realloc(taglist, sizeof(char *) * ntags);
-			tl = taglist + tagcount;
-		}
-
-		if (strcmp((char *)Key.data, "_keys") == 0)
-			continue;
-		DEBUG(D_REPORT, 10)
-		    printf("cuts_report: tcid %s\n", (char *)Key.data);
-		*tl++ = Key.data;
-		tagcount++;
-	} while (sym_seq(tags, &Key, &Data, R_NEXT) == 0);
-
-	if (tagcount == ntags) {
-		/* exceeded tag array size -- realloc */
-		ntags++;	/* need just one more */
-		taglist = (char **)realloc(taglist, sizeof(char *) * ntags);
-		tl = taglist + tagcount;
-	}
-
-	*tl++ = NULL;
-
-	ntags = tagcount;
-
-	/* dump all found records */
-	tcnum = 0;
-	for (tl = taglist; *tl != NULL; tl++) {
-
-		strcpy(key_get, *tl);
-		Key.data = (void *)key_get;
-
-		/*sym_dump_s(sym_get(tags, key_get), 0); */
-
-		sym_seq(tags, &Key, &Data, R_CURSOR);
-		do {
-			DEBUG(D_REPORT, 10)
-			    printf("cuts_report: tc %s = %s\n",
-				   (char *)Key.data, (char *)Data.data);
-			result = worst_case(result, (char *)Data.data);
-			test_result(tag, *tl, (char *)Key.data,
-				    (char *)Data.data, keys);
-			if (atoi((char *)Key.data))
-				tcnum++;
-		} while (sym_seq(tags, &Key, &Data, R_NEXT) == 0);
-	}
-
-	test_result(tag, "*", "*", result, keys);
-
-	if (tccount != 0 && tccount != tcnum)
-		test_result(tag, "-", "-", "TC count wrong", keys);
-
-	free(taglist);
-
-	return 0;
-}
-
-/*
- * Do the report generation.
- *
- * A problem: I really need multiple cursors.  I'd rather not look into
- * the depths of the current symbol table implimentation (there are the
- * cursors there that I could use) so that a different (faster!) symbol
- * table can be used in the future.
- *
- * I could get a key (tag), get it's sub-keys (TCIDs), then get the key
- * again to reset to the top level, _then_ get the next key.  That would
- * be very inefficient.
- *
- * The solution I chose is to extract all tags into a list (char array),
- * then go thru that list with the cursor free for other levels to use.
- *
- *  (1) make a list (2d char array) of all Tags
- *  (2) search for the first tag that has a "stime" record, and use that as
- *      the date (MMDDYY) that the tests were run.
- *  (3) print the report header
- *  (4) go thru all tags and report each as described at the beginning of
- *      this file
- */
-int tag_report(SYM alltags, SYM ctag, SYM keys)
-{
-
-	extern int extended;
-
-	char key_get[KEYSIZE];
-	char *info;
-
-	/* retrieved _keys values: initation status, start time, duration,
-	 * termination type, termination id, start line, end line.          */
-	char *tag, *contact, *is, *mystime, *duration, *tt, *ti, *sl, *el;
-
-	/* Check all driver-level status first */
-	strcpy(key_get, "tag");
-	if ((tag = (char *)sym_get(keys, key_get)) == NULL) {
-		return -1;
-	}
-
-	/* Check all driver-level status first */
-	strcpy(key_get, "initiation_status");
-	if ((is = (char *)sym_get(keys, key_get)) == NULL) {
-		test_result(tag, NULL, NULL, "no init status", keys);
-		return -1;
-	}
-
-	if (strcmp(is, "ok")) {
-		test_result(tag, NULL, NULL, is, keys);
-	} else {
-
-		strcpy(key_get, "corefile");
-		if ((info = (char *)sym_get(keys, key_get)) != NULL)
-			if (strcmp(info, "no") != 0) {
-				test_result(tag, NULL, NULL, "coredump", keys);
-			}
-
-		strcpy(key_get, "termination_type");
-		if ((tt = (char *)sym_get(keys, key_get)) == NULL) {
-			test_result(tag, NULL, NULL, "no Term Type", keys);
-			return -1;
-		}
-
-		if (strcmp(tt, "exited")) {
-			test_result(tag, NULL, NULL, tt, keys);
-		}
-
-		strcpy(key_get, "analysis");
-		if ((info = (char *)sym_get(keys, key_get)) == NULL) {
-			test_result(tag, NULL, NULL, "no Analysis Type", keys);
-			return -1;
-		}
-
-		/* Getting here indicates that there were no fatal driver-level
-		 * errors.  Do the kind of reporting requested by the test.
-		 */
-
-		if (strncmp(info, "none", 4) == 0) {
-			/*
-			 * If analysis is 'none', alway report the test as
-			 * a pass regardless of output or exit status.
-			 */
-			test_result(tag, NULL, NULL, "pass", keys);
-
-		} else if (strncmp(info, "cuts", 4)) {
-
-			/*
-			 * If analysis is not cuts, assume it is 'exit', thus
-			 * the termination_id is used to determine pass/fail result.
-			 */
-			if (strcmp(tt, "timeout")) {
-				strcpy(key_get, "termination_id");
-				if ((info =
-				     (char *)sym_get(keys, key_get)) == NULL) {
-					test_result(tag, NULL, NULL,
-						    "no_Term_Id", keys);
-				} else {
-					if (strcmp(info, "0")) {
-						test_result(tag, NULL, NULL,
-							    "fail", keys);
-					} else {
-						test_result(tag, NULL, NULL,
-							    "pass", keys);
-					}
-				}
-			}
-		} else {
-			cuts_report(ctag, keys, info, tag);
-		}
-	}
-
-	/*
-	 * Extended Format:
-	 *  - tcid+tc = "!"
-	 *  - tab separated fields
-	 *  - no field widths
-	 *  - fields 6 - ~ are:
-	 *  start-time (time_t)
-	 *  duration
-	 *  termination_id
-	 *  termination_type
-	 *  Start Line (of test results in output file)
-	 *  End Line
-	 */
-
-	if (extended) {
-
-		strcpy(key_get, "termination_id");
-		if ((ti = (char *)sym_get(keys, key_get)) == NULL) {
-			ti = "No_Termination_ID";
-		}
-
-		strcpy(key_get, "termination_type");
-		if ((tt = (char *)sym_get(keys, key_get)) == NULL) {
-			tt = "No_Termination_Type";
-		}
-
-		strcpy(key_get, "duration");
-		if ((duration = (char *)sym_get(keys, key_get)) == NULL) {
-			duration = "No_Duration";
-		}
-
-		strcpy(key_get, "_Start_line");
-		if ((sl = (char *)sym_get(keys, key_get)) == NULL) {
-			sl = "No_Start_line";
-		}
-
-		strcpy(key_get, "_End_line");
-		if ((el = (char *)sym_get(keys, key_get)) == NULL) {
-			el = "No_End_line";
-		}
-
-		strcpy(key_get, "contacts");
-		if ((contact = (char *)sym_get(keys, key_get)) == NULL) {
-			contact = "No_Contacts";
-		}
-
-		strcpy(key_get, "stime");
-		if ((mystime = (char *)sym_get(keys, key_get)) == NULL) {
-			mystime = "No_stime";
-		}
-
-		printf("%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t\n",
-		       tag, "!", "!", is, contact, mystime, duration,
-		       ti, tt, sl, el);
-	}
-
-	return 0;
-}
-
-/*
- *  Print a header made up of the RTS keywords
- *  In "extended" mode, print the header to stderr.
- */
-int print_header(SYM tags)
-{
-	DBT Key, Data;
-	char key_get[255];
-
-	FILE *out;
-
-	extern int extended;
-
-	if (extended)
-		out = stderr;
-	else
-		out = stdout;
-
-	fprintf(out, "System Configuration:\n");
-	/* build header out of RTS keywords */
-	sprintf(key_get, "_RTS");
-	Key.data = (void *)key_get;
-	if (sym_seq(tags, &Key, &Data, R_CURSOR) == 0) {
-		do {
-			if (strcmp((char *)Key.data, "PATH") == 0)
-				continue;
-			fprintf(out, "%-20.20s %s\n", (char *)Key.data,
-				(char *)Data.data);
-		} while (sym_seq(tags, &Key, &Data, R_NEXT) == 0);
-	}
-
-	fprintf(out, "\n");
-	fprintf(out, FORMAT, "tag", "tcid", "testcase", "status", "contact");
-	fprintf(out,
-		"-------------------------------------------------------------------------------\n");
-
-	return 0;
-}
-
-/*
- * CUTS testcase record
- *
- * This is passed s SYM for the current tag and the initiation keys.
- * The text seen by lex is in yytext (global).
- */
-int cuts_testcase(SYM tag, SYM keys)
-{
-	char *cuts_info[6];
-	char key[KEYSIZE];
-	char *oldresult, *newresult, *worst_case();
-	int tok_num = 0;
-	extern char yytext[];
-
-	cuts_info[tok_num] = strtok(yytext, "\t ");
-	while (tok_num < 5 &&
-	       (cuts_info[++tok_num] = strtok(NULL, "\t ")) != NULL) ;
-
-	strcpy(key, cuts_info[0]);
-	strcat(key, ",");
-	strcat(key, cuts_info[1]);
-
-#ifdef DEBUGGING
-	DEBUG(D_SCAN_CUTS, 1) {
-		printf("cuts_testcase: TCID=%s TC=%s Result=%s\n", cuts_info[0],
-		       cuts_info[1], cuts_info[2]);
-		printf("cuts_testcase: %d %s\n", tok_num, key);
-	}
-#endif
-
-	if ((oldresult = (char *)sym_get(tag, key)) != NULL) {
-		/* Duplicate -- assume mulitple runs */
-		/* keep "worst case" */
-		newresult = worst_case(oldresult, cuts_info[2]);
-		sym_put(tag, key, strdup(newresult), PUT_REPLACE);
-		free(oldresult);	/* remove the "data" portion of the key */
-	} else {
-		sym_put(tag, key, strdup(cuts_info[2]), 0);
-	}
-	return 0;
-}
-
-/*
- * Determine a "worst case" status from two given statuses.
- */
-static char *worst_case(char *t1, char *t2)
-{
-	/* NULL-terminated table, ordered from worst-case to best-case */
-	static char *worst[] = {
-		"FAIL", "BROK", "PASS", "CONF",
-		"WARN", "INFO", NULL,
-	};
-
-	char **w1, **w2;
-
-	/* Search the table for each status, then use the index to determine
-	   which has a lower precedence */
-	for (w1 = worst; *w1 != NULL && strcmp(t1, *w1); w1++) ;
-
-	for (w2 = worst; *w2 != NULL && strcmp(t2, *w2); w2++) ;
-
-	if (w1 < w2)
-		return (t1);
-	else
-		return (t2);
-
-}
-- 
2.34.1


-- 
Mailing list info: https://lists.linux.it/listinfo/ltp

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

* [LTP] [RFC PATCH v2 2/7] m4: Remove check for io_set_eventfd
  2022-01-26 12:35 [LTP] [PATCH v2 0/7] m4: Fix warnings, remove old checks Petr Vorel
  2022-01-26 12:35 ` [LTP] [RFC PATCH v2 1/7] pan: Remove ltp-scanner Petr Vorel
@ 2022-01-26 12:35 ` Petr Vorel
  2022-01-26 14:55   ` Cyril Hrubis
  2022-01-26 12:35 ` [LTP] [RFC PATCH v2 3/7] m4: Remove check for struct perf_event_attr Petr Vorel
                   ` (5 subsequent siblings)
  7 siblings, 1 reply; 19+ messages in thread
From: Petr Vorel @ 2022-01-26 12:35 UTC (permalink / raw)
  To: ltp; +Cc: automated-testing

It was added in Jan 2008 in libaio-0.3.108, even Centos 6 has 0.3.109,
SLES11-SP4 and Debian stretch (oldoldstable) have 0.3.110.

At least CentOS 6 and SLES11-SP4 don't event compiles LTP at least 2
releases back.

Signed-off-by: Petr Vorel <pvorel@suse.cz>
---
New in v2

 m4/ltp-eventfd.m4                             | 11 +----------
 testcases/kernel/syscalls/eventfd/eventfd01.c | 18 +-----------------
 2 files changed, 2 insertions(+), 27 deletions(-)

diff --git a/m4/ltp-eventfd.m4 b/m4/ltp-eventfd.m4
index 5d729a33df..ecd7e951dc 100644
--- a/m4/ltp-eventfd.m4
+++ b/m4/ltp-eventfd.m4
@@ -1,6 +1,6 @@
 dnl SPDX-License-Identifier: GPL-2.0-or-later
 dnl Copyright (c) Red Hat Inc., 2008
-dnl Copyright (c) 2017 Petr Vorel <pvorel@suse.cz>
+dnl Copyright (c) 2017-2022 Petr Vorel <pvorel@suse.cz>
 dnl Author: Masatake YAMATO <yamato@redhat.com>
 
 AC_DEFUN([LTP_CHECK_SYSCALL_EVENTFD], [
@@ -10,14 +10,5 @@ AC_DEFUN([LTP_CHECK_SYSCALL_EVENTFD], [
 	if test "x$have_libaio" = "xyes" -a "x$have_aio" = "xyes"; then
 		AC_DEFINE(HAVE_LIBAIO, 1, [Define to 1 if you have libaio and it's headers installed.])
 		AC_SUBST(AIO_LIBS, "-laio")
-
-		AC_MSG_CHECKING([io_set_eventfd is defined in aio library or aio header])
-		AC_TRY_LINK([#include <stdio.h>
-                             #include <libaio.h>
-		            ],
-		            [io_set_eventfd(NULL, 0); return 0;],
-		            [AC_DEFINE(HAVE_IO_SET_EVENTFD, 1, [Define to 1 if you have `io_set_eventfd' function.])
-						AC_MSG_RESULT(yes)],
-		            [AC_MSG_RESULT(no)])
 	fi
 ])
diff --git a/testcases/kernel/syscalls/eventfd/eventfd01.c b/testcases/kernel/syscalls/eventfd/eventfd01.c
index 242e170e27..3180ea1593 100644
--- a/testcases/kernel/syscalls/eventfd/eventfd01.c
+++ b/testcases/kernel/syscalls/eventfd/eventfd01.c
@@ -1,5 +1,6 @@
 /*
  *   Copyright (c) 2008 Vijay Kumar B. <vijaykumar@bravegnu.org>
+ *   Copyright (c) Linux Test Project, 2008-2022
  *
  *   Based on testcases/kernel/syscalls/waitpid/waitpid01.c
  *   Original copyright message:
@@ -472,7 +473,6 @@ static void child_inherit_test(int fd)
 	}
 }
 
-#ifdef HAVE_IO_SET_EVENTFD
 /*
  * Test whether counter overflow is detected and handled correctly.
  *
@@ -648,22 +648,6 @@ static void overflow_read_test(int evfd)
 	}
 	cleanup_overflow(fd, ctx);
 }
-#else
-static void overflow_select_test(int evfd)
-{
-	tst_resm(TCONF, "eventfd support is not available in AIO subsystem");
-}
-
-static void overflow_poll_test(int evfd)
-{
-	tst_resm(TCONF, "eventfd support is not available in AIO subsystem");
-}
-
-static void overflow_read_test(int evfd)
-{
-	tst_resm(TCONF, "eventfd support is not available in AIO subsystem");
-}
-#endif
 
 int main(int argc, char **argv)
 {
-- 
2.34.1


-- 
Mailing list info: https://lists.linux.it/listinfo/ltp

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

* [LTP] [RFC PATCH v2 3/7] m4: Remove check for struct perf_event_attr
  2022-01-26 12:35 [LTP] [PATCH v2 0/7] m4: Fix warnings, remove old checks Petr Vorel
  2022-01-26 12:35 ` [LTP] [RFC PATCH v2 1/7] pan: Remove ltp-scanner Petr Vorel
  2022-01-26 12:35 ` [LTP] [RFC PATCH v2 2/7] m4: Remove check for io_set_eventfd Petr Vorel
@ 2022-01-26 12:35 ` Petr Vorel
  2022-01-26 15:00   ` Cyril Hrubis
  2022-01-26 12:35 ` [LTP] [RFC PATCH v2 4/7] realtime/m4: Simplify exp10 check Petr Vorel
                   ` (4 subsequent siblings)
  7 siblings, 1 reply; 19+ messages in thread
From: Petr Vorel @ 2022-01-26 12:35 UTC (permalink / raw)
  To: ltp; +Cc: automated-testing

It was added by Ingo Molnar in 2009 to perf_event_open01.c after his
change to in v2.6.32-rc1 cdd6c482c9ff ("perf: Do the big rename:
Performance Counters -> Performance Events"), where he renamed struct
perf_counter_attr to struct perf_event_attr and rename header where
defined from include/linux/perf_counter.h to include/linux/perf_event.h.

It was safe to remove the check long time ago. Not checking for
linux/perf_event.h because although we check for some kernel headers
presence, we expect kernel headers to be installed.

Signed-off-by: Petr Vorel <pvorel@suse.cz>
---
New in v2

 configure.ac                                     |  1 -
 m4/ltp-perf_event_open.m4                        | 16 ----------------
 testcases/cve/cve-2015-3290.c                    |  7 ++++---
 .../syscalls/perf_event_open/perf_event_open01.c | 16 ++--------------
 .../syscalls/perf_event_open/perf_event_open02.c |  8 +-------
 .../syscalls/perf_event_open/perf_event_open03.c |  7 +------
 6 files changed, 8 insertions(+), 47 deletions(-)
 delete mode 100644 m4/ltp-perf_event_open.m4

diff --git a/configure.ac b/configure.ac
index 8becd74c2c..6ff761837a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -376,7 +376,6 @@ fi
 AC_DEFINE_UNQUOTED(NUMA_ERROR_MSG, ["$numa_error_msg"], [Error message when no NUMA support])
 
 
-LTP_CHECK_SYSCALL_PERF_EVENT_OPEN
 LTP_CHECK_SYSCALL_SIGNALFD
 LTP_CHECK_SYSCALL_UTIMENSAT
 LTP_CHECK_TASKSTATS
diff --git a/m4/ltp-perf_event_open.m4 b/m4/ltp-perf_event_open.m4
deleted file mode 100644
index 6966cf2708..0000000000
--- a/m4/ltp-perf_event_open.m4
+++ /dev/null
@@ -1,16 +0,0 @@
-dnl SPDX-License-Identifier: GPL-2.0-or-later
-dnl Copyright (c) 2014 Fujitsu Ltd.
-dnl Copyright (c) 2014 Cyril Hrubis <chrubis@suse.cz>
-dnl Author: Xiaoguang Wang <wangxg.fnst@cn.fujitsu.com>
-
-AC_DEFUN([LTP_CHECK_SYSCALL_PERF_EVENT_OPEN],[
-AH_TEMPLATE(HAVE_PERF_EVENT_ATTR,
-[Define to 1 if you have struct perf_event_attr])
-AC_MSG_CHECKING([for perf_event_attr in linux/perf_event.h])
-AC_TRY_COMPILE([#include <unistd.h>
-		#include <linux/perf_event.h>],
-		[
-			struct perf_event_attr pe;
-		],
-		AC_DEFINE(HAVE_PERF_EVENT_ATTR) AC_MSG_RESULT(yes), AC_MSG_RESULT(no))
-])
diff --git a/testcases/cve/cve-2015-3290.c b/testcases/cve/cve-2015-3290.c
index 6c4fd57acc..fd1abe136d 100644
--- a/testcases/cve/cve-2015-3290.c
+++ b/testcases/cve/cve-2015-3290.c
@@ -1,6 +1,7 @@
 // SPDX-License-Identifier: GPL-2.0-or-later
 /*
  * Copyright (c) 2017 Pavel Boldin <pboldin@cloudlinux.com>
+ * Copyright (c) 2018-2022 Linux Test Project
  */
 
 /*
@@ -117,7 +118,7 @@ perhaps unsurprisingly.)
 #include "tst_test.h"
 #include "tst_timer.h"
 
-#if HAVE_PERF_EVENT_ATTR && (defined(__x86_64__) || defined(__i386__))
+#if defined(__x86_64__) || defined(__i386__)
 
 #include <stdlib.h>
 #include <stdio.h>
@@ -476,8 +477,8 @@ static struct tst_test test = {
 	}
 };
 
-#else /* HAVE_PERF_EVENT_ATTR && (defined(__x86_64__) || defined(__i386__)) */
+#else /* defined(__x86_64__) || defined(__i386__) */
 
-TST_TEST_TCONF("no perf_event_attr or not (i386 or x86_64)");
+TST_TEST_TCONF("not (i386 or x86_64)");
 
 #endif
diff --git a/testcases/kernel/syscalls/perf_event_open/perf_event_open01.c b/testcases/kernel/syscalls/perf_event_open/perf_event_open01.c
index 3807b2df10..30c0d7594f 100644
--- a/testcases/kernel/syscalls/perf_event_open/perf_event_open01.c
+++ b/testcases/kernel/syscalls/perf_event_open/perf_event_open01.c
@@ -1,6 +1,7 @@
 /******************************************************************************/
 /*                                                                            */
 /* Ingo Molnar <mingo@elte.hu>, 2009                                          */
+/* Copyright (c) Linux Test Project, 2014-2022                                */
 /*                                                                            */
 /* This program is free software;  you can redistribute it and/or modify      */
 /* it under the terms of the GNU General Public License as published by       */
@@ -38,9 +39,7 @@
 #include <fcntl.h>
 #include <stdint.h>
 #include "config.h"
-#if HAVE_PERF_EVENT_ATTR
-# include <linux/perf_event.h>
-#endif
+#include <linux/perf_event.h>
 
 #include "test.h"
 #include "lapi/syscalls.h"
@@ -48,7 +47,6 @@
 
 char *TCID = "perf_event_open01";
 
-#if HAVE_PERF_EVENT_ATTR
 static void setup(void);
 static void cleanup(void);
 
@@ -198,13 +196,3 @@ static void verify(struct test_case_t *tc)
 static void cleanup(void)
 {
 }
-
-#else
-
-int main(void)
-{
-	tst_brkm(TCONF, NULL, "This system doesn't have "
-		 "header file:<linux/perf_event.h> or "
-		 "no struct perf_event_attr defined");
-}
-#endif
diff --git a/testcases/kernel/syscalls/perf_event_open/perf_event_open02.c b/testcases/kernel/syscalls/perf_event_open/perf_event_open02.c
index 0335a296e8..618a270160 100644
--- a/testcases/kernel/syscalls/perf_event_open/perf_event_open02.c
+++ b/testcases/kernel/syscalls/perf_event_open/perf_event_open02.c
@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: GPL-2.0-or-later
 /*
  * Copyright (c) 2009 Paul Mackerras <paulus@samba.org>
- * Copyright (c) 2019 Linux Test Project
+ * Copyright (c) 2014-2022 Linux Test Project
  */
 /*
  * Here's a little test program that checks whether software counters
@@ -45,7 +45,6 @@
 #include "lapi/cpuset.h"
 #include "lapi/syscalls.h"
 
-#if HAVE_PERF_EVENT_ATTR
 #include "perf_event_open.h"
 
 #define MAX_CTRS	1000
@@ -336,8 +335,3 @@ static struct tst_test test = {
 	.test_all = verify,
 	.needs_root = 1,
 };
-
-#else /* HAVE_PERF_EVENT_ATTR */
-TST_TEST_TCONF("This system doesn't have <linux/perf_event.h> or "
-	"struct perf_event_attr is not defined.");
-#endif
diff --git a/testcases/kernel/syscalls/perf_event_open/perf_event_open03.c b/testcases/kernel/syscalls/perf_event_open/perf_event_open03.c
index f58bea79e8..dcb7096277 100644
--- a/testcases/kernel/syscalls/perf_event_open/perf_event_open03.c
+++ b/testcases/kernel/syscalls/perf_event_open/perf_event_open03.c
@@ -1,6 +1,7 @@
 // SPDX-License-Identifier: GPL-2.0-or-later
 /*
  * Copyright (c) 2021 SUSE LLC <mdoucha@suse.cz>
+ * Copyright (c) 2022 Linux Test Project
  *
  * CVE-2020-25704
  *
@@ -17,7 +18,6 @@
 #include "tst_test.h"
 #include "lapi/syscalls.h"
 
-#if HAVE_PERF_EVENT_ATTR
 #include "perf_event_open.h"
 
 #define INTEL_PT_PATH "/sys/bus/event_source/devices/intel_pt/type"
@@ -77,8 +77,3 @@ static struct tst_test test = {
 		{}
 	}
 };
-
-#else /* HAVE_PERF_EVENT_ATTR */
-TST_TEST_TCONF("This system doesn't have <linux/perf_event.h> or "
-	"struct perf_event_attr is not defined.");
-#endif
-- 
2.34.1


-- 
Mailing list info: https://lists.linux.it/listinfo/ltp

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

* [LTP] [RFC PATCH v2 4/7] realtime/m4: Simplify exp10 check
  2022-01-26 12:35 [LTP] [PATCH v2 0/7] m4: Fix warnings, remove old checks Petr Vorel
                   ` (2 preceding siblings ...)
  2022-01-26 12:35 ` [LTP] [RFC PATCH v2 3/7] m4: Remove check for struct perf_event_attr Petr Vorel
@ 2022-01-26 12:35 ` Petr Vorel
  2022-01-26 15:04   ` Cyril Hrubis
  2022-01-26 22:30   ` Petr Vorel
  2022-01-26 12:35 ` [LTP] [RFC PATCH v2 5/7] m4: Remove check for MREMAP_FIXED Petr Vorel
                   ` (3 subsequent siblings)
  7 siblings, 2 replies; 19+ messages in thread
From: Petr Vorel @ 2022-01-26 12:35 UTC (permalink / raw)
  To: ltp; +Cc: automated-testing

Yes, uclibc-ng still haven't defined exp10, thus still needed.

Link: https://github.com/linux-test-project/ltp/issues/13

Signed-off-by: Petr Vorel <pvorel@suse.cz>
---
New in v2

 testcases/realtime/configure.ac    |  4 ++--
 testcases/realtime/m4/ltp-exp10.m4 | 37 ------------------------------
 2 files changed, 2 insertions(+), 39 deletions(-)
 delete mode 100644 testcases/realtime/m4/ltp-exp10.m4

diff --git a/testcases/realtime/configure.ac b/testcases/realtime/configure.ac
index e483caf0d2..6f50f1490f 100644
--- a/testcases/realtime/configure.ac
+++ b/testcases/realtime/configure.ac
@@ -35,8 +35,8 @@ else
 	AC_MSG_RESULT(no)
 fi
 
-REALTIME_CHECK_PRIO_INHERIT
+AC_CHECK_LIB([m], [exp10], [AC_DEFINE([HAVE_EXP10], 1, [Define to 1 if you have exp10 function])])
 
-LTP_CHECK_EXP10
+REALTIME_CHECK_PRIO_INHERIT
 
 AC_OUTPUT
diff --git a/testcases/realtime/m4/ltp-exp10.m4 b/testcases/realtime/m4/ltp-exp10.m4
deleted file mode 100644
index 3d2320a206..0000000000
--- a/testcases/realtime/m4/ltp-exp10.m4
+++ /dev/null
@@ -1,37 +0,0 @@
-dnl
-dnl Copyright (c) Linux Test Project, 2014
-dnl
-dnl This program is free software;  you can redistribute it and/or modify
-dnl it under the terms of the GNU General Public License as published by
-dnl the Free Software Foundation; either version 2 of the License, or
-dnl (at your option) any later version.
-dnl
-dnl This program is distributed in the hope that it will be useful,
-dnl but WITHOUT ANY WARRANTY;  without even the implied warranty of
-dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See
-dnl the GNU General Public License for more details.
-dnl
-dnl You should have received a copy of the GNU General Public License
-dnl along with this program;  if not, write to the Free Software
-dnl Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-dnl
-
-dnl
-dnl LTP_CHECK_EXP10
-dnl ---------------
-dnl
-AC_DEFUN([LTP_CHECK_EXP10],[
-AH_TEMPLATE(HAVE_EXP10,
-[Define to 1 if you have 'exp10' function.])
-AC_MSG_CHECKING([for exp10])
-backup_ldlibs="$LIBS"
-LIBS+=" -lm"
-AC_TRY_LINK([#define _GNU_SOURCE
-             #include <math.h>],
-            [
-             volatile float val;
-             exp10(val);
-            ],
-             AC_DEFINE(HAVE_EXP10) AC_MSG_RESULT(yes), AC_MSG_RESULT(no))
-LIBS="$backup_ldlibs"
-])
-- 
2.34.1


-- 
Mailing list info: https://lists.linux.it/listinfo/ltp

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

* [LTP] [RFC PATCH v2 5/7] m4: Remove check for MREMAP_FIXED
  2022-01-26 12:35 [LTP] [PATCH v2 0/7] m4: Fix warnings, remove old checks Petr Vorel
                   ` (3 preceding siblings ...)
  2022-01-26 12:35 ` [LTP] [RFC PATCH v2 4/7] realtime/m4: Simplify exp10 check Petr Vorel
@ 2022-01-26 12:35 ` Petr Vorel
  2022-01-26 15:15   ` Cyril Hrubis
  2022-01-26 12:35 ` [LTP] [RFC PATCH v2 6/7] m4: Remove check for clone() supports 7 args Petr Vorel
                   ` (2 subsequent siblings)
  7 siblings, 1 reply; 19+ messages in thread
From: Petr Vorel @ 2022-01-26 12:35 UTC (permalink / raw)
  To: ltp; +Cc: automated-testing

glibc and uclibc added it in 2005, musl at 2011.

Signed-off-by: Petr Vorel <pvorel@suse.cz>
---
New in v2

 configure.ac                                |  1 -
 m4/ltp-mremap_fixed.m4                      | 12 ------------
 testcases/kernel/mem/thp/thp02.c            |  5 -----
 testcases/kernel/syscalls/mremap/mremap05.c | 11 -----------
 4 files changed, 29 deletions(-)
 delete mode 100644 m4/ltp-mremap_fixed.m4

diff --git a/configure.ac b/configure.ac
index 6ff761837a..41c385edcb 100644
--- a/configure.ac
+++ b/configure.ac
@@ -360,7 +360,6 @@ LTP_CHECK_KEYUTILS_SUPPORT
 LTP_CHECK_LIBMNL
 LTP_CHECK_LINUX_PTRACE
 LTP_CHECK_LINUXRANDOM
-LTP_CHECK_MREMAP_FIXED
 LTP_CHECK_NOMMU_LINUX
 LTP_CHECK_SELINUX
 LTP_CHECK_SYNC_ADD_AND_FETCH
diff --git a/m4/ltp-mremap_fixed.m4 b/m4/ltp-mremap_fixed.m4
deleted file mode 100644
index 66548b82b3..0000000000
--- a/m4/ltp-mremap_fixed.m4
+++ /dev/null
@@ -1,12 +0,0 @@
-dnl SPDX-License-Identifier: GPL-2.0-or-later
-dnl Copyright (c) Linux Test Project, 2012
-dnl Author: Cyril Hrubis <chrubis@suse.cz>
-
-AC_DEFUN([LTP_CHECK_MREMAP_FIXED],[
-AH_TEMPLATE(HAVE_MREMAP_FIXED,
-[Define to 1 if you have MREMAP_FIXED in <sys/mman.h>.])
-AC_MSG_CHECKING([for MREMAP_FIXED in <sys/mman.h>])
-AC_TRY_COMPILE([#define _GNU_SOURCE
-                #include <sys/mman.h>], [int flags = MREMAP_FIXED;],
-               AC_DEFINE(HAVE_MREMAP_FIXED) AC_MSG_RESULT(yes), AC_MSG_RESULT(no))
-])
diff --git a/testcases/kernel/mem/thp/thp02.c b/testcases/kernel/mem/thp/thp02.c
index a1b0ee0ab1..56568d1d18 100644
--- a/testcases/kernel/mem/thp/thp02.c
+++ b/testcases/kernel/mem/thp/thp02.c
@@ -40,7 +40,6 @@
 #include <unistd.h>
 #include "mem.h"
 
-#ifdef HAVE_MREMAP_FIXED
 static int ps;
 static long hps, size;
 
@@ -119,7 +118,3 @@ static struct tst_test test = {
 	.test_all = do_mremap,
 	.forks_child = 1,
 };
-
-#else
-	TST_TEST_TCONF("MREMAP_FIXED not present in <sys/mman.h>");
-#endif /* HAVE_MREMAP_FIXED */
diff --git a/testcases/kernel/syscalls/mremap/mremap05.c b/testcases/kernel/syscalls/mremap/mremap05.c
index 5e8cda5d78..d85ebb068d 100644
--- a/testcases/kernel/syscalls/mremap/mremap05.c
+++ b/testcases/kernel/syscalls/mremap/mremap05.c
@@ -45,8 +45,6 @@
 
 char *TCID = "mremap05";
 
-#ifdef HAVE_MREMAP_FIXED
-
 struct test_case_t {
 	char *old_address;
 	char *new_address;
@@ -239,12 +237,3 @@ static void setup(void)
 static void cleanup(void)
 {
 }
-
-#else
-
-int main(void)
-{
-	tst_brkm(TCONF, NULL, "MREMAP_FIXED not present in <sys/mman.h>");
-}
-
-#endif /* HAVE_MREMAP_FIXED */
-- 
2.34.1


-- 
Mailing list info: https://lists.linux.it/listinfo/ltp

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

* [LTP] [RFC PATCH v2 6/7] m4: Remove check for clone() supports 7 args
  2022-01-26 12:35 [LTP] [PATCH v2 0/7] m4: Fix warnings, remove old checks Petr Vorel
                   ` (4 preceding siblings ...)
  2022-01-26 12:35 ` [LTP] [RFC PATCH v2 5/7] m4: Remove check for MREMAP_FIXED Petr Vorel
@ 2022-01-26 12:35 ` Petr Vorel
  2022-01-26 15:18   ` Cyril Hrubis
  2022-01-26 12:35 ` [LTP] [RFC PATCH v2 7/7] m4: Fix warnings Petr Vorel
  2022-01-26 15:25 ` [LTP] [PATCH v2 0/7] m4: Fix warnings, remove old checks Cyril Hrubis
  7 siblings, 1 reply; 19+ messages in thread
From: Petr Vorel @ 2022-01-26 12:35 UTC (permalink / raw)
  To: ltp; +Cc: automated-testing

Fix from 1db62666ce (2014) for SLES10, RHEL4. Save to remove now.

NOTE: support for 7 args was missing in kernel 2.4 and earlier.

Signed-off-by: Petr Vorel <pvorel@suse.cz>
---
New in v2

 configure.ac         |  1 -
 lib/cloner.c         | 10 ----------
 m4/ltp-clone7args.m4 | 17 -----------------
 3 files changed, 28 deletions(-)
 delete mode 100644 m4/ltp-clone7args.m4

diff --git a/configure.ac b/configure.ac
index 41c385edcb..f83bbe950b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -352,7 +352,6 @@ LTP_CHECK_ATOMIC_MEMORY_MODEL
 LTP_CHECK_BUILTIN_CLEAR_CACHE
 LTP_CHECK_CAPABILITY_SUPPORT
 LTP_CHECK_CC_WARN_OLDSTYLE
-LTP_CHECK_CLONE_SUPPORTS_7_ARGS
 LTP_CHECK_CRYPTO
 LTP_CHECK_FORTIFY_SOURCE
 LTP_CHECK_KERNEL_DEVEL
diff --git a/lib/cloner.c b/lib/cloner.c
index 11401f2303..95954f6df3 100644
--- a/lib/cloner.c
+++ b/lib/cloner.c
@@ -50,11 +50,6 @@ extern int __clone2(int (*fn) (void *arg), void *child_stack_base,
                     pid_t *parent_tid, void *tls, pid_t *child_tid);
 #endif
 
-#ifndef CLONE_SUPPORTS_7_ARGS
-# define clone(fn, stack, flags, arg, ptid, tls, ctid) \
-         clone(fn, stack, flags, arg)
-#endif
-
 /*
  * ltp_clone: wrapper for clone to hide the architecture dependencies.
  *   1. hppa takes bottom of stack and no stacksize (stack grows up)
@@ -109,12 +104,7 @@ int ltp_clone7(unsigned long flags, int (*fn)(void *arg), void *arg,
 	ctid = va_arg(arg_clone, pid_t *);
 	va_end(arg_clone);
 
-#ifdef CLONE_SUPPORTS_7_ARGS
 	return ltp_clone_(flags, fn, arg, stack_size, stack, ptid, tls, ctid);
-#else
-	errno = ENOSYS;
-	return -1;
-#endif
 }
 
 /*
diff --git a/m4/ltp-clone7args.m4 b/m4/ltp-clone7args.m4
deleted file mode 100644
index ab55c1e335..0000000000
--- a/m4/ltp-clone7args.m4
+++ /dev/null
@@ -1,17 +0,0 @@
-dnl SPDX-License-Identifier: GPL-2.0-or-later
-dnl Copyright (c) Linux Test Project, 2014
-
-AC_DEFUN([LTP_CHECK_CLONE_SUPPORTS_7_ARGS],[
-AH_TEMPLATE(CLONE_SUPPORTS_7_ARGS,
-[Define to 1 if clone() supports 7 arguments.])
-AC_MSG_CHECKING([if clone() supports 7 args])
-AC_TRY_LINK([#define _GNU_SOURCE
-		#include <sched.h>
-		#include <stdlib.h>],
-		[
-		#ifndef __ia64__
-		clone(NULL, NULL, 0, NULL, NULL, NULL, NULL);
-		#endif
-		],
-		AC_DEFINE(CLONE_SUPPORTS_7_ARGS) AC_MSG_RESULT(yes), AC_MSG_RESULT(no))
-])
-- 
2.34.1


-- 
Mailing list info: https://lists.linux.it/listinfo/ltp

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

* [LTP] [RFC PATCH v2 7/7] m4: Fix warnings
  2022-01-26 12:35 [LTP] [PATCH v2 0/7] m4: Fix warnings, remove old checks Petr Vorel
                   ` (5 preceding siblings ...)
  2022-01-26 12:35 ` [LTP] [RFC PATCH v2 6/7] m4: Remove check for clone() supports 7 args Petr Vorel
@ 2022-01-26 12:35 ` Petr Vorel
  2022-01-26 15:23   ` Cyril Hrubis
  2022-01-26 15:25 ` [LTP] [PATCH v2 0/7] m4: Fix warnings, remove old checks Cyril Hrubis
  7 siblings, 1 reply; 19+ messages in thread
From: Petr Vorel @ 2022-01-26 12:35 UTC (permalink / raw)
  To: ltp; +Cc: automated-testing

from autoconf 2.71:

* s/AC_HELP_STRING/AS_HELP_STRING/

Similar replace was done in autoconf commit 5958ce17 ("*
doc/autoconf.texi: Replace AC_HELP_STRING AS_HELP_STRING.")
from 2.58.

* s/AC_TRY_LINK/AC_COMPILE_IFELSE([AC_LANG_PROGRAM/

Similar replace was done in autoconf commit ede91cff ("Modernize
AC_EXEEXT and AC_OBJEXT. Now work with other languages than C and C++.")
from 2.50.

Due previous keep requiring 2.61. Tested on 2.63 (SLES 11 and CentOS 6
both don't even compile as unsupported, thus we could bump version to 2.63).

Signed-off-by: Petr Vorel <pvorel@suse.cz>
---
New in v2

 configure.ac                   | 24 ++++++++++++------------
 m4/ltp-kernel_devel.m4         |  6 +++---
 testcases/realtime/m4/check.m4 |  6 +++---
 3 files changed, 18 insertions(+), 18 deletions(-)

diff --git a/configure.ac b/configure.ac
index f83bbe950b..03184e13e3 100644
--- a/configure.ac
+++ b/configure.ac
@@ -219,7 +219,7 @@ AC_CHECK_TYPES([struct __kernel_old_timeval, struct __kernel_old_timespec, struc
 
 # Bash
 AC_ARG_WITH([bash],
-  [AC_HELP_STRING([--with-bash],
+  [AS_HELP_STRING([--with-bash],
     [have the Bourne Again Shell interpreter])],
   [with_bash=$withval],
   [with_bash=no]
@@ -232,24 +232,24 @@ fi
 
 # metadata
 AC_ARG_ENABLE([metadata],
-  [AC_HELP_STRING([--disable-metadata],
+  [AS_HELP_STRING([--disable-metadata],
 	[Disable metadata generation (both HTML and PDF, default no)])],
   [], [enable_metadata=yes]
 )
 AC_ARG_ENABLE([metadata_html],
-  [AC_HELP_STRING([--disable-metadata-html],
+  [AS_HELP_STRING([--disable-metadata-html],
 	[Disable metadata HTML generation (default no)])],
   [], [enable_metadata_html=yes]
 )
 
 AC_ARG_ENABLE([metadata_pdf],
-  [AC_HELP_STRING([--enable-metadata-pdf],
+  [AS_HELP_STRING([--enable-metadata-pdf],
 	[Enable metadata PDF generation (default no)])],
   [], [enable_metadata_pdf=no]
 )
 
 AC_ARG_WITH([metadata_generator],
-  [AC_HELP_STRING([--with-metadata-generator=asciidoc|asciidoctor],
+  [AS_HELP_STRING([--with-metadata-generator=asciidoc|asciidoctor],
 	[Specify metadata generator to use (default autodetect)])],
   [with_metadata_generator=$withval],
   [with_metadata_generator=detect]
@@ -259,7 +259,7 @@ LTP_DOCPARSE
 
 # Expect
 AC_ARG_WITH([expect],
-  [AC_HELP_STRING([--with-expect],
+  [AS_HELP_STRING([--with-expect],
     [have the Tcl/expect library])],
   [with_expect=$withval],
   [with_expect=no]
@@ -272,7 +272,7 @@ fi
 
 # Numa
 AC_ARG_WITH([numa],
-  AC_HELP_STRING([--without-numa],
+  AS_HELP_STRING([--without-numa],
     [without numa support]),
   [with_numa=$withval],
   [with_numa=yes]
@@ -280,7 +280,7 @@ AC_ARG_WITH([numa],
 
 # Perl
 AC_ARG_WITH([perl],
-  [AC_HELP_STRING([--with-perl],
+  [AS_HELP_STRING([--with-perl],
     [have a perl interpreter])],
   [with_perl=$withval],
   [with_perl=no]
@@ -293,7 +293,7 @@ fi
 
 # Python
 AC_ARG_WITH([python],
-  [AC_HELP_STRING([--with-python],
+  [AS_HELP_STRING([--with-python],
     [have a python interpreter])],
   [with_python=$withval],
   [with_python=no]
@@ -306,7 +306,7 @@ fi
 
 # TI RPC
 AC_ARG_WITH([tirpc],
-  AC_HELP_STRING([--without-tirpc],
+  AS_HELP_STRING([--without-tirpc],
     [without libtirpc support]),
   [with_tirpc=$withval],
   [with_tirpc=yes]
@@ -316,7 +316,7 @@ AC_ARG_WITH([tirpc],
 # Testsuites knobs
 
 AC_ARG_WITH([open-posix-testsuite],
-  [AC_HELP_STRING([--with-open-posix-testsuite],
+  [AS_HELP_STRING([--with-open-posix-testsuite],
     [compile and install the open posix testsuite])],
   [with_open_posix_testsuite=$withval],
   [with_open_posix_testsuite=no]
@@ -329,7 +329,7 @@ fi
 
 # TODO: testcases/realtime requires bash and python.
 AC_ARG_WITH([realtime-testsuite],
-  [AC_HELP_STRING([--with-realtime-testsuite],
+  [AS_HELP_STRING([--with-realtime-testsuite],
     [compile and install the realtime testsuite])],
   [with_realtime_testsuite=$withval],
   [with_realtime_testsuite=no]
diff --git a/m4/ltp-kernel_devel.m4 b/m4/ltp-kernel_devel.m4
index 8a0598e5a3..d46d54775a 100644
--- a/m4/ltp-kernel_devel.m4
+++ b/m4/ltp-kernel_devel.m4
@@ -9,7 +9,7 @@ AC_DEFUN([LTP_CHECK_KERNEL_DEVEL],[
 AC_MSG_CHECKING([for kernel-devel])
 AC_ARG_WITH(
 	[linux-version],
-	[AC_HELP_STRING([--with-linux-version=VERSION],
+	[AS_HELP_STRING([--with-linux-version=VERSION],
 			[specify the Linux version to build modules for])],
 	[LINUX_VERSION="${withval}"],
 	AS_IF([test "$cross_compiling" = "no"],
@@ -18,7 +18,7 @@ AC_ARG_WITH(
 AC_SUBST(LINUX_VERSION)
 
 AC_ARG_WITH([linux-dir],
-	[AC_HELP_STRING([--with-linux-dir=DIR],
+	[AS_HELP_STRING([--with-linux-dir=DIR],
 			[specify path to kernel-devel directory])],
 	[LINUX_DIR="${withval}"],
 	AS_IF([test -n "$LINUX_VERSION"],
@@ -44,7 +44,7 @@ AC_MSG_RESULT([$WITH_MODULES])
 
 AC_ARG_WITH(
 	[modules],
-	[AC_HELP_STRING([--without-modules],
+	[AS_HELP_STRING([--without-modules],
 			[disable auto-building kernel modules])],
 			[WITH_MODULES="no"],
 			[])
diff --git a/testcases/realtime/m4/check.m4 b/testcases/realtime/m4/check.m4
index e60ae19289..d04a2cc73a 100644
--- a/testcases/realtime/m4/check.m4
+++ b/testcases/realtime/m4/check.m4
@@ -1,10 +1,10 @@
 AC_DEFUN([REALTIME_CHECK_PRIO_INHERIT],[
 AC_MSG_CHECKING([for PTHREAD_PRIO_INHERIT])
-AC_TRY_COMPILE([
-#include <pthread.h>],[int main(void) {
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+#include <pthread.h>]], [[int main(void) {
 	pthread_mutexattr_t attr;
 	return pthread_mutexattr_setprotocol(&attr, PTHREAD_PRIO_INHERIT);
-}],[has_priority_inherit="yes"],[])
+}]])],[has_priority_inherit="yes"],[])
 if test "x$has_priority_inherit" = "xyes" ; then
 	AC_DEFINE(HAS_PRIORITY_INHERIT,1,[Define to 1 if you have PTHREAD_PRIO_INHERIT])
 	AC_MSG_RESULT(yes)
-- 
2.34.1


-- 
Mailing list info: https://lists.linux.it/listinfo/ltp

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

* Re: [LTP] [RFC PATCH v2 1/7] pan: Remove ltp-scanner
  2022-01-26 12:35 ` [LTP] [RFC PATCH v2 1/7] pan: Remove ltp-scanner Petr Vorel
@ 2022-01-26 14:50   ` Cyril Hrubis
  2022-01-27  8:38   ` Jan Stancek
  1 sibling, 0 replies; 19+ messages in thread
From: Cyril Hrubis @ 2022-01-26 14:50 UTC (permalink / raw)
  To: Petr Vorel; +Cc: automated-testing, ltp

Hi!
Reviewed-by: Cyril Hrubis <chrubis@suse.cz>

-- 
Cyril Hrubis
chrubis@suse.cz

-- 
Mailing list info: https://lists.linux.it/listinfo/ltp

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

* Re: [LTP] [RFC PATCH v2 2/7] m4: Remove check for io_set_eventfd
  2022-01-26 12:35 ` [LTP] [RFC PATCH v2 2/7] m4: Remove check for io_set_eventfd Petr Vorel
@ 2022-01-26 14:55   ` Cyril Hrubis
  0 siblings, 0 replies; 19+ messages in thread
From: Cyril Hrubis @ 2022-01-26 14:55 UTC (permalink / raw)
  To: Petr Vorel; +Cc: automated-testing, ltp

Hi!
Looks good.

Reviewed-by: Cyril Hrubis <chrubis@suse.cz>

-- 
Cyril Hrubis
chrubis@suse.cz

-- 
Mailing list info: https://lists.linux.it/listinfo/ltp

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

* Re: [LTP] [RFC PATCH v2 3/7] m4: Remove check for struct perf_event_attr
  2022-01-26 12:35 ` [LTP] [RFC PATCH v2 3/7] m4: Remove check for struct perf_event_attr Petr Vorel
@ 2022-01-26 15:00   ` Cyril Hrubis
  0 siblings, 0 replies; 19+ messages in thread
From: Cyril Hrubis @ 2022-01-26 15:00 UTC (permalink / raw)
  To: Petr Vorel; +Cc: automated-testing, ltp

Hi!
Looks good as well.

Reviewed-by: Cyril Hrubis <chrubis@suse.cz>

-- 
Cyril Hrubis
chrubis@suse.cz

-- 
Mailing list info: https://lists.linux.it/listinfo/ltp

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

* Re: [LTP] [RFC PATCH v2 4/7] realtime/m4: Simplify exp10 check
  2022-01-26 12:35 ` [LTP] [RFC PATCH v2 4/7] realtime/m4: Simplify exp10 check Petr Vorel
@ 2022-01-26 15:04   ` Cyril Hrubis
  2022-01-26 22:30   ` Petr Vorel
  1 sibling, 0 replies; 19+ messages in thread
From: Cyril Hrubis @ 2022-01-26 15:04 UTC (permalink / raw)
  To: Petr Vorel; +Cc: automated-testing, ltp

Hi!
Looks good as well.

Reviewed-by: Cyril Hrubis <chrubis@suse.cz>

-- 
Cyril Hrubis
chrubis@suse.cz

-- 
Mailing list info: https://lists.linux.it/listinfo/ltp

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

* Re: [LTP] [RFC PATCH v2 5/7] m4: Remove check for MREMAP_FIXED
  2022-01-26 12:35 ` [LTP] [RFC PATCH v2 5/7] m4: Remove check for MREMAP_FIXED Petr Vorel
@ 2022-01-26 15:15   ` Cyril Hrubis
  0 siblings, 0 replies; 19+ messages in thread
From: Cyril Hrubis @ 2022-01-26 15:15 UTC (permalink / raw)
  To: Petr Vorel; +Cc: automated-testing, ltp

Hi!
Reviewed-by: Cyril Hrubis <chrubis@suse.cz>

-- 
Cyril Hrubis
chrubis@suse.cz

-- 
Mailing list info: https://lists.linux.it/listinfo/ltp

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

* Re: [LTP] [RFC PATCH v2 6/7] m4: Remove check for clone() supports 7 args
  2022-01-26 12:35 ` [LTP] [RFC PATCH v2 6/7] m4: Remove check for clone() supports 7 args Petr Vorel
@ 2022-01-26 15:18   ` Cyril Hrubis
  0 siblings, 0 replies; 19+ messages in thread
From: Cyril Hrubis @ 2022-01-26 15:18 UTC (permalink / raw)
  To: Petr Vorel; +Cc: automated-testing, ltp

Hi!
Reviwed-by: Cyril Hrubis <chrubis@suse.cz>

-- 
Cyril Hrubis
chrubis@suse.cz

-- 
Mailing list info: https://lists.linux.it/listinfo/ltp

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

* Re: [LTP] [RFC PATCH v2 7/7] m4: Fix warnings
  2022-01-26 12:35 ` [LTP] [RFC PATCH v2 7/7] m4: Fix warnings Petr Vorel
@ 2022-01-26 15:23   ` Cyril Hrubis
  0 siblings, 0 replies; 19+ messages in thread
From: Cyril Hrubis @ 2022-01-26 15:23 UTC (permalink / raw)
  To: Petr Vorel; +Cc: automated-testing, ltp

Hi!
Looks like an obvious fix.

Reviewed-by: Cyril Hrubis <chrubis@suse.cz>

-- 
Cyril Hrubis
chrubis@suse.cz

-- 
Mailing list info: https://lists.linux.it/listinfo/ltp

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

* Re: [LTP] [PATCH v2 0/7] m4: Fix warnings, remove old checks
  2022-01-26 12:35 [LTP] [PATCH v2 0/7] m4: Fix warnings, remove old checks Petr Vorel
                   ` (6 preceding siblings ...)
  2022-01-26 12:35 ` [LTP] [RFC PATCH v2 7/7] m4: Fix warnings Petr Vorel
@ 2022-01-26 15:25 ` Cyril Hrubis
  2022-01-26 18:14   ` Petr Vorel
  7 siblings, 1 reply; 19+ messages in thread
From: Cyril Hrubis @ 2022-01-26 15:25 UTC (permalink / raw)
  To: Petr Vorel; +Cc: automated-testing, ltp

Hi!
Generally this is a nice cleanup, I guess that we should wait for a
while if there is someone who will ask to keep the ltp-scanner and then
we can go ahead with the changes...

-- 
Cyril Hrubis
chrubis@suse.cz

-- 
Mailing list info: https://lists.linux.it/listinfo/ltp

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

* Re: [LTP] [PATCH v2 0/7] m4: Fix warnings, remove old checks
  2022-01-26 15:25 ` [LTP] [PATCH v2 0/7] m4: Fix warnings, remove old checks Cyril Hrubis
@ 2022-01-26 18:14   ` Petr Vorel
  0 siblings, 0 replies; 19+ messages in thread
From: Petr Vorel @ 2022-01-26 18:14 UTC (permalink / raw)
  To: Cyril Hrubis; +Cc: ltp, automated-testing

Hi all,

[ Fixing the address: automated-testing@yoctoproject.org was wrong,
now using automated-testing@lists.yoctoproject.org ]

> Hi!
> Generally this is a nice cleanup, I guess that we should wait for a
> while if there is someone who will ask to keep the ltp-scanner and then
> we can go ahead with the changes...
+1. Please let us know if you're using ltp-scanner.

Kind regards,
Petr

-- 
Mailing list info: https://lists.linux.it/listinfo/ltp

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

* Re: [LTP] [RFC PATCH v2 4/7] realtime/m4: Simplify exp10 check
  2022-01-26 12:35 ` [LTP] [RFC PATCH v2 4/7] realtime/m4: Simplify exp10 check Petr Vorel
  2022-01-26 15:04   ` Cyril Hrubis
@ 2022-01-26 22:30   ` Petr Vorel
  1 sibling, 0 replies; 19+ messages in thread
From: Petr Vorel @ 2022-01-26 22:30 UTC (permalink / raw)
  To: ltp; +Cc: automated-testing

> Yes, uclibc-ng still haven't defined exp10, thus still needed.
To correct myself, it has been added 5 years ago, in v1.0.27 (2017):
https://cgit.openadk.org/cgi/cgit/uclibc-ng.git/commit/?id=ea38f4d89c9698895b1cf53a5946429dc1d8bbaa.

And even before there was implementation from glibc in v1.0.12 (2016):
https://cgit.openadk.org/cgi/cgit/uclibc-ng.git/commit/?id=12a85731dc5fda3bc01ab19c82678b3bf122d794.

It'd be nice to see if there are toolchains which still use v1.0.12.

Kind regards,
Petr

> Link: https://github.com/linux-test-project/ltp/issues/13

-- 
Mailing list info: https://lists.linux.it/listinfo/ltp

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

* Re: [LTP] [RFC PATCH v2 1/7] pan: Remove ltp-scanner
  2022-01-26 12:35 ` [LTP] [RFC PATCH v2 1/7] pan: Remove ltp-scanner Petr Vorel
  2022-01-26 14:50   ` Cyril Hrubis
@ 2022-01-27  8:38   ` Jan Stancek
  1 sibling, 0 replies; 19+ messages in thread
From: Jan Stancek @ 2022-01-27  8:38 UTC (permalink / raw)
  To: Petr Vorel, maninder1.s, weijg.fnst; +Cc: automated-testing, LTP List

On Wed, Jan 26, 2022 at 1:37 PM Petr Vorel <pvorel@suse.cz> wrote:
>
> We believe that nobody uses it.

There were some fixes to it years ago (I was surprised to find one was
mine), but I can't recall last time I used it so I'm OK with dropping
it.

Acked-by: Jan Stancek <jstancek@redhat.com>

>
> Suggested-by: Cyril Hrubis <chrubis@suse.cz>
> Signed-off-by: Petr Vorel <pvorel@suse.cz>
> ---
> New in v2
>
>  .gitignore        |   1 -
>  INSTALL           |   2 -
>  configure.ac      |   1 -
>  pan/Makefile      |   8 -
>  pan/debug.c       |  84 --------
>  pan/debug.h       |  67 -------
>  pan/ltp-scanner.c | 175 -----------------
>  pan/reporter.c    | 270 --------------------------
>  pan/reporter.h    |  80 --------
>  pan/scan.h        |  42 ----
>  pan/scan.l        | 456 -------------------------------------------
>  pan/symbol.c      | 467 --------------------------------------------
>  pan/symbol.h      | 104 ----------
>  pan/tag_report.c  | 478 ----------------------------------------------
>  14 files changed, 2235 deletions(-)
>  delete mode 100644 pan/debug.c
>  delete mode 100644 pan/debug.h
>  delete mode 100644 pan/ltp-scanner.c
>  delete mode 100644 pan/reporter.c
>  delete mode 100644 pan/reporter.h
>  delete mode 100644 pan/scan.h
>  delete mode 100644 pan/scan.l
>  delete mode 100644 pan/symbol.c
>  delete mode 100644 pan/symbol.h
>  delete mode 100644 pan/tag_report.c
>


-- 
Mailing list info: https://lists.linux.it/listinfo/ltp

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

end of thread, other threads:[~2022-01-27  8:39 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-01-26 12:35 [LTP] [PATCH v2 0/7] m4: Fix warnings, remove old checks Petr Vorel
2022-01-26 12:35 ` [LTP] [RFC PATCH v2 1/7] pan: Remove ltp-scanner Petr Vorel
2022-01-26 14:50   ` Cyril Hrubis
2022-01-27  8:38   ` Jan Stancek
2022-01-26 12:35 ` [LTP] [RFC PATCH v2 2/7] m4: Remove check for io_set_eventfd Petr Vorel
2022-01-26 14:55   ` Cyril Hrubis
2022-01-26 12:35 ` [LTP] [RFC PATCH v2 3/7] m4: Remove check for struct perf_event_attr Petr Vorel
2022-01-26 15:00   ` Cyril Hrubis
2022-01-26 12:35 ` [LTP] [RFC PATCH v2 4/7] realtime/m4: Simplify exp10 check Petr Vorel
2022-01-26 15:04   ` Cyril Hrubis
2022-01-26 22:30   ` Petr Vorel
2022-01-26 12:35 ` [LTP] [RFC PATCH v2 5/7] m4: Remove check for MREMAP_FIXED Petr Vorel
2022-01-26 15:15   ` Cyril Hrubis
2022-01-26 12:35 ` [LTP] [RFC PATCH v2 6/7] m4: Remove check for clone() supports 7 args Petr Vorel
2022-01-26 15:18   ` Cyril Hrubis
2022-01-26 12:35 ` [LTP] [RFC PATCH v2 7/7] m4: Fix warnings Petr Vorel
2022-01-26 15:23   ` Cyril Hrubis
2022-01-26 15:25 ` [LTP] [PATCH v2 0/7] m4: Fix warnings, remove old checks Cyril Hrubis
2022-01-26 18:14   ` Petr Vorel

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.