/NAMES=(option1,option2) /NAMES=(UPPERCASE,TRUNCATED) (D) Option1 converts all definitions and references of external symbols and psects to the specified case: o /NAMES=UPPERCASE (default) converts to uppercase. o /NAMES=AS_IS leaves the case unchanged. Option2 controls whether or not long external names greater than 31 characters get truncated or shortened: o /NAMES=TRUNCATED (default) truncates long external names o /NAMES=SHORTENED shortens long external names. A shortened name consists of the first 23 characters of the name followed by a 7-character Cyclic Redundancy Check (CRC) computed by looking at the full name, and then a "$". The CRC is generated by calling lib$crc as follows: long initial_crc = -1; crc_result = lib$crc(good_crc_table, &initial_crc, <descriptor of string to CRC>); where good_crc_table is: /* ** Default CRC table: ** ** This table was taken from Ada's generalized name generation ** algorithm. It represents a commonly used CRC polynomial ** known as AUTODIN-II. For more information see the VAX ** Macro OpenVMS documentation under the CRC VAX instruction. */ static const unsigned int good_crc_table[16] = {0x00000000, 0x1DB71064, 0x3B6E20C8, 0x26D930AC, 0x76DC4190, 0x6B6B51F4, 0x4DB26158, 0x5005713C, 0xEDB88320, 0xF00F9344, 0xD6D6A3E8, 0xCB61B38C, 0x9B64C2B0, 0x86D3D2D4, 0xA00AE278, 0xBDBDF21C}; By default, the compiler issues a warning and truncates the name to 31 characters. The /NAMES qualifier does not affect the names of the $ABS$, $BSS$, $CODE$, $DATA$, $LINK$, $LITERAL$, and $READONLY$ psects.