HP-UX Linker and Libraries User's Guide
Figure 27 Example 3: Hidden Definitions: Modifying a Function
Compile the new f3(), and rebuild the shared library lib3.so including the new dependency
on f2() in lib12.so:
$ cc -c +z f3.c Compile to PIC.
$ ld -b -o lib3.so f3.o -L . -l12 Create library with dependency.
Figure 28 Example 3: Hidden Definitions: Rebuilding the Shared Library
Problem Here is where the problem can occur in PA-32 +compat modes. If you do not relink the
application, main.o, and just run a.out with the new version of lib3.so, the program executes
successfully, but it executes two different versions of f2(). main() calls f2() in the program
file a.out and f3() calls f2() in lib12.so. Even though f2() is contained within the
application, it is not visible to the shared library, lib3.so.
Figure 29 Example 3: Hidden Definitions: Problem of Unsatisfied Symbol
Using Shared Libraries in Default Mode
HP provides an industry-standard linker toolset for programs linked in IPF mode. The new toolset
consists of a linker, dynamic loader, object file class library, and an object file tool collection.
Although compatibility between the current and previous toolset is an important goal, some
124 Creating and Using Libraries