Subject: boostrap binarykit solaris 10 i386 (pax regexp warning)
To: None <tech-pkg@NetBSD.org>
From: Gilles Dauphin <Gilles.Dauphin@enst.fr>
List: tech-pkg
Date: 07/05/2005 17:29:00
Hi!
I just do a binary boostrap kit for SunOS-5.10 i386:
http://perso.enst.fr/~dauphin/pkgsrc/SunOS-5.10/i386/pkgsrc20050607/boostrap-pkg
src-SunOS-5.10-i386-20050705.tar.gz
But lookat boostrap.log in pkg/log, 'pax' have a warning:
----------------------------------------------------------------------------
===> Installing pax
===> running: /usr/xpg4/bin/sh work/install-sh -d -o root -g root work/pax
===> running: (cd work/pax; env CPPFLAGS=' -I../libnbcompat' LDFLAGS=' -L../lib
nbcompat' LIBS='-lnbcompat' /usr/xpg4/bin/sh ./configure -C --prefix=/usr/pkg --
sysconfdir=/usr/pkg/etc && /usr/pkg/bin/bmake && /usr/pkg/bin/bmake install)
configure: creating cache config.cache
.....
checking regexp.h usability... no
checking regexp.h presence... yes
configure: WARNING: regexp.h: present but cannot be compiled
configure: WARNING: regexp.h: check for missing prerequisite headers?
configure: WARNING: regexp.h: see the Autoconf documentation
configure: WARNING: regexp.h: section "Present But Cannot Be Compiled"
configure: WARNING: regexp.h: proceeding with the preprocessor's result
configure: WARNING: regexp.h: in the future, the compiler will take precedence
configure: WARNING: ## ------------------------------- ##
configure: WARNING: ## Report this to grant@NetBSD.org ##
configure: WARNING: ## ------------------------------- ##
checking for regexp.h... yes
checking rmt.h usability... no
checking rmt.h presence... no
....
-----------------------------------------------------------------
Here is a config.log
....configure:2973: gcc -c -g -O2 -I../libnbcompat conftest.c >&5
In file included from conftest.c:61:
/usr/include/regexp.h: In function `compile':
/usr/include/regexp.h:75: error: `INIT' undeclared (first use in this function
)
/usr/include/regexp.h:75: error: (Each undeclared identifier is reported only
once
/usr/include/regexp.h:75: error: for each function it appears in.)
/usr/include/regexp.h:75: error: syntax error before "register"
/usr/include/regexp.h:87: error: `c' undeclared (first use in this function)
configure:2979: $? = 1
---------------------------------------------------------------
and what say the man of regexp on solaris 10
-----------------------------------------------------------------
Standards, Environments, and Macros regexp(5)
NAME
regexp, compile, step, advance - simple regular expression
compile and match routines
SYNOPSIS
#define INIT declarations
#define GETC(void) getc code
#define PEEKC(void) peekc code
#define UNGETC(void) ungetc code
#define RETURN(ptr) return code
#define ERROR(val) error code
extern char *loc1, *loc2, *locs;
#include <regexp.h>
char *compile(char *instring, char *expbuf, const char *end-
fug, int eof);
int step(const char *string, const char *expbuf);
int advance(const char *string, const char *expbuf);
DESCRIPTION
Regular Expressions (REs) provide a mechanism to select
specific strings from a set of character strings. The Simple
Regular Expressions described below differ from the Inter-
nationalized Regular Expressions described on the regex(5)
manual page in the following ways:
...
The first parameter, instring, is never used explicitly by
the compile() routine but is useful for programs that pass
down different pointers to input characters. It is sometimes
used in the INIT declaration (see below). Programs which
call functions to input characters or have characters in an
external array can pass down a value of (char *)0 for this
parameter.
...
Each program that includes the <regexp.h> header file must
have a #define statement for INIT. It is used for dependent
declarations and initializations. Most often it is used to
set a register variable to point to the beginning of the
regular expression so that this register variable can be
used in the declarations for GETC, PEEKC, and UNGETC. Other-
wise it can be used to declare external variables that might
be used by GETC, PEEKC and UNGETC. (See EXAMPLES below.)
...
EXAMPLES
Example 1: Using Regular Expression Macros and Calls
The following is an example of how the regular expression
macros and calls might be defined by an application program:
#define INIT register char *sp = instring;
#define GETC() (*sp++)
#define PEEKC() (*sp)
#define UNGETC(c) (--sp)
#define RETURN(c) return;
#define ERROR(c) regerr()
#include <regexp.h>
. . .
(void) compile(*argv, expbuf, &expbuf[ESIZE],'\0');
. . .
if (step(linebuf, expbuf))
succeed;
----------------------------------------------------------------------
Gilles