PROBE

NAME
SYNOPSIS
DESCRIPTION
EXAMPLES
FILES
CAVEATS
SEE ALSO

Nokia nmake 14 PROBE(1)

NAME

probe − probe language processors for tool information

SYNOPSIS

lib/probe/probe [ −adgklsv ] [ -p <path> ] language tool processor

DESCRIPTION

probe provides command support for the libast(3) routine pathprobe. It maintains tool specific information for language processors. lib/probe/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 PPPPPP is the last six character of the fully qualified pathname for cmd with / deleted and left filled with . for short paths. lib/probe/probe −k language tool cmd lists this pathname on the standard output. The first line of the information file must end with the fully qualified pathname of cmd. This is used to detect pathname hash collisions.

The pathprobe library routine calls lib/probe/probe only when new information must be generated or the current information is older than the tool specific probe command. The out of date test compares the information file ctime with the probe command file mtime. By default the information files have write permission disabled. To handle cases where the automatic probe information is incorrect or insufficient, lib/probe/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 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.

−d

Delete the current probe information file. This is restricted to the owner of processor or the owner of lib/probe/probe.

−D

This option is for debugging. It shows the steps that probe used in generating the configuration information 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.

−p <path>

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 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 in <path>/lib/probe/language/tool/XXXXXXXXPPPPPP.

−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 by checking the fully qualified language process pathname.

EXAMPLES

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

     lib/probe/probe -l C make cc

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

     info=$(lib/probe/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


nmake 14 June 2012 PROBE(1)