PROBE

NAME
SYNOPSIS
DESCRIPTION
EXAMPLES
FILES
CAVEATS
SEE ALSO

Nokia nmake 16 PROBE(1)

NAME

probe − probe language processors for tool information

SYNOPSIS

probe [ −adDgklstvx ] [ −p path ] language tool processor

DESCRIPTION

probe provides command support for the libast(3) routine pathprobe. It maintains tool specific information for language processors. probe controls the language and tool specific probe command lib/probe/language/tool/probe and performs consistency and security checks to ensure that the tool specific command generates valid information.

The information for the language processor cmd for tool resides in the file lib/probe/language/tool/XXXXXXXXPPPPPP where XXXXXXXX is a hex hash value for the fully qualified pathname for cmd and the probe attributes, and PPPPPP is the last six characters of the fully qualified pathname for cmd with / deleted and left filled with . for short paths. In case of a hash collision a sub-directory named XXXXXXXXPPPPPP.d is created in the same directory with additional probe information files named NNN where NNN is a string of three decimal digits ranging from 001 to 999. probe −k language tool cmd lists the pathname on standard output and verifies cmd and the probe attributes with existing information files to resolve hash collisions. probe −a language tool cmd lists the current attributes and their values on standard output. The first line of the information file must end with the fully qualified pathname of cmd.

The pathprobe library routine calls probe only when new information must be generated or the current information is older than the tool specific probe command or the valid probe_hints file. The out-of-date test compares the information file ctime with the probe command file or probe_hints script mtime. By default the information files have write permission disabled. To handle cases where the automatic probe information is incorrect or insufficient, probe will not overwrite an information file if owner write permission is enabled. The corrected probe information should be forwarded to the tool provider so that the tool specific probe command can be updated.

The optional probe_hints file provides a convenient and flexible way to specify local installation overrides for selected probe data. The probe_hints file is consulted to guide the probe whenever a C language, make information file is generated. The probe_hints file is a user-provided shell script, placed at lib/probe/C/make/probe_hints, which overrides selected probe information variables by setting shell variables to the preferred values using a simple one-to-one mapping between probe variables and shell variables. For further information see Nokia nmake Product Builder User’s Guide, Appendix A.

The options are provided for administrative purposes.

−a

List the probe attribute definitions. The attributes are passed as a string to the tool specific probe command and are used in hashing the information filename.

−d

Delete the current probe information file. This is restricted to the owner of processor or the owner of lib/probe/probe. After deletion, probe paths may change due to hash collision overflows.

−D

Enable debug tracing and show the steps used in generating the information file for the specified language processor.

−g

Generate the information file only if necessary.

−k

List the fully qualified information file pathname.

−l

List the information file contents.

−ppath

Specify an alternate probe hierarchy path. This option allows custom probe directories to be used for both the lib/probe/language/tool/probe generation shell and the resulting lib/probe/language/tool/XXXXXXXXPPPPPP probe information file. The consistency checks between the generation shell and the information file match those of the normal case. In addition, the mtime of the generation shell is also verified against the mtime of lib/probe/probe to limit version incompatibilities. If an executable generation shell is not found in path/lib/probe/language/tool/probe then the non-alternate probe generation shell is used. The set-uid permissions of lib/probe/probe are disabled in this mode, and the alternate directory path/lib/probe/language/tool/ must be writable by the gid of the executing user. The resulting probe information file will reside under path/lib/probe/language/tool/.

−s

Suppress information messages.

−t

Test − generate the information on the standard output. The current information file is unaffected.

−v

Verify the current information file’s fully qualified language process pathname.

−x

Suppress cleanup of duplicate attribute matches of hash collision files.

EXAMPLES

To list the C language processor cc(1) information for nmake(1):

probe -l C make cc

To modify the cpp(1) information for gcc(1):

info=$(probe -k C pp gcc)
chmod u+w $info
edit $info

FILES

lib/probe/language/tool/

tool specific information directory for language processors

CAVEATS

lib/probe/probe must be set-uid to the owner of the lib/probe directory hierarchy. This allows probe information to be generated and shared among all users.

Automatic language processor probing is mostly black magic, but then so are most language processor implementations.

SEE ALSO

cc(1), cpp(1), nmake(1), libast(3), pp(3)
nmake User’s Guide
nmake Reference Manual
nmake Web Site
Appendix A, Nokia nmake Product Builder User’s Guide


nmake 16 June 2014 PROBE(1)