Any compatible new release of a shared object that contains new global symbols should assign these symbols to a new version definition. This new version definition should inherit the previous version definition.
The following mapfile example assigns the new symbol foo3 to the new interface version definition SUNW_1.2. This new interface inherits the original interface SUNW_1.1:
$ cat mapfile
SUNW_1.2 { # Release X+1.
global:
foo3;
} SUNW_1.1;
SUNW_1.1 { # Release X.
global:
foo2;
foo1;
local:
*;
};
|
The inheritance of version definitions reduces the amount of version information that must be recorded in any user of the shared object.