Resolving Shared Library Dependency Associated with an External Procedure Without Using LD_LIBRARY_PATH on Solaris Platform

(Doc ID 2396496.1)

Last updated on MAY 24, 2018

Applies to:

PL/SQL - Version 11.2.0.4 and later
Oracle Solaris on SPARC (64-bit)
Oracle Solaris on SPARC (32-bit)
Oracle Solaris on x86-64 (64-bit)
Oracle Solaris on x86 (32-bit)

Goal

When linking a dynamic executable, one or more shared objects are explicitly referenced. These objects are recorded as dependencies within the dynamic executable. The runtime linker(ld.so.1) uses this dependency information to locate and load the associated objects. These dependencies are processed in the same order as the dependencies were referenced during the link-edit of the executable. The runtime linker looks in two default locations for dependencies. When processing 32–bit objects, the default locations are /lib and /usr/lib. When processing 64–bit objects, the default locations are /lib/64 and /usr/lib/64. Any dependency specified as a simple file name is prefixed with these default directory names. The resulting path name is used to locate the actual file.

Another way to add to the runtime linker's search path is to set one of the LD_LIBRARY_PATH(LD_LIBRARY_PATH_64 for 64-bit object in Solaris platform) family of environment variables. These environment variables are useful as a temporary mechanism of influencing the runtime linker's search path. However, as per Solaris documentation(https://docs.oracle.com/cd/E26502_01/html/E26507/chapter6-63352.html#scrolltoc), the use of LD_LIBRARY_PATH is strongly discouraged in production software. It should not be used specially in the context of external procedure where the executable is being run in secure-execution mode. A binary is executed in secure-execution mode if the process's real and effective user IDs differ, or the real and effective group IDs differ. For example, the following 'ls' command shows that the owner and group of the executable 'oracle' are oracle and asmadmin. 

Solution

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms