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