Uda Wiki Web

  • Topic
  • Discussion
  • How can executables be changed to Enable or Disable use of SHLIB_PATH environment variable

    HP-UX has a chatr command that allows the attributes on an executable to be viewed and changed. With this command you can specifically check if an executable has been built to use the SHLIB_PATH environment variable to locate shared libraries it may need, using commands of the form:

    chatr <executable-name>                       ;;; list <executable-name> internal attributes
    
    chatr +s enable <executable-name>             ;;; enable SHLIB_PATH usage attribute
    
    chatr +s disable <executable-name>            ;;; disable SHLIB_PATH usage attribute
    


    Example for the UDA Informix 9 database agent (inf9_mv) are as below:

    $ chatr inf9_mv
    inf9_mv: 
             shared executable 
             shared library dynamic path search:
                 SHLIB_PATH     enabled   first  
                 embedded path  disabled  second Not Defined
             shared library list:
                 dynamic   /dbs/informix/32bit/ids2k/lib/esql/libthxa.sl
                 dynamic   /usr/lib/libnsl_s.2
                 dynamic   /usr/lib/libm.2
                 dynamic   /usr/lib/libsec.2
                 dynamic   /usr/lib/libpthread.1
                 dynamic   /usr/lib/libnsl.1
                 dynamic   /usr/lib/libc.2
             shared library binding:
                 deferred 
    .
    .
    .
    
    $ chatr +s disable inf9_mv
    inf9_mv: 
       current values: 
             shared executable 
             shared library dynamic path search:
                 SHLIB_PATH     enabled   second 
                 embedded path  disabled  first  Not Defined
             shared library list:
                 dynamic   /dbs/informix/32bit/ids2k/lib/esql/libthxa.sl
                 dynamic   /usr/lib/libnsl_s.2
                 dynamic   /usr/lib/libm.2
                 dynamic   /usr/lib/libsec.2
                 dynamic   /usr/lib/libpthread.1
                 dynamic   /usr/lib/libnsl.1
                 dynamic   /usr/lib/libc.2
             shared library binding:
                 deferred 
    .
    .
    .
       new values: 
             shared executable 
             shared library dynamic path search:
                 SHLIB_PATH     disabled  second 
                 embedded path  disabled  first  Not Defined
             shared library list:
                 dynamic   /dbs/informix/32bit/ids2k/lib/esql/libthxa.sl
                 dynamic   /usr/lib/libnsl_s.2
                 dynamic   /usr/lib/libm.2
                 dynamic   /usr/lib/libsec.2
                 dynamic   /usr/lib/libpthread.1
                 dynamic   /usr/lib/libnsl.1
                 dynamic   /usr/lib/libc.2
             shared library binding:
                 deferred 
    .
    .
    .
    
    $ chatr +s enable inf9_mv
    inf9_mv: 
       current values: 
             shared executable 
             shared library dynamic path search:
                 SHLIB_PATH     disabled  second 
                 embedded path  disabled  first  Not Defined
             shared library list:
                 dynamic   /dbs/informix/32bit/ids2k/lib/esql/libthxa.sl
                 dynamic   /usr/lib/libnsl_s.2
                 dynamic   /usr/lib/libm.2
                 dynamic   /usr/lib/libsec.2
                 dynamic   /usr/lib/libpthread.1
                 dynamic   /usr/lib/libnsl.1
                 dynamic   /usr/lib/libc.2
             shared library binding:
                 deferred 
    .
    .
    .    
       new values: 
             shared executable 
             shared library dynamic path search:
                 SHLIB_PATH     enabled   second 
                 embedded path  disabled  first  Not Defined
             shared library list:
                 dynamic   /dbs/informix/32bit/ids2k/lib/esql/libthxa.sl
                 dynamic   /usr/lib/libnsl_s.2
                 dynamic   /usr/lib/libm.2
                 dynamic   /usr/lib/libsec.2
                 dynamic   /usr/lib/libpthread.1
                 dynamic   /usr/lib/libnsl.1
                 dynamic   /usr/lib/libc.2
             shared library binding:
                 deferred 
    .
    .
    .
    


    See the man page man chatr for more details.