dld.sl man page on HP-UX

Printed from http://www.polarhome.com/service/man/?qf=dld.sl&af=0&tf=2&of=HP-UX

dld.sl(5)							     dld.sl(5)

NAME
       dld.sl - dynamic loader

MULTITHREAD USAGE
       The dynamic loader is thread-safe.

DESCRIPTION
       The  program  is the PA-RISC 64-bit dynamic loader.  The program is the
       PA-RISC 32-bit dynamic loader.  In programs that use shared  libraries,
       is invoked automatically at startup time by exec on PA-RISC 64-bit sys‐
       tems and by the startup file  on	 PA-RISC  32-bit  systems.   Identical
       copies  of  are	kept  in both and directories.	The dynamic loader is,
       itself, a shared library, although it defines no	 symbols  for  use  by
       user programs.

   Shared Libraries
       Shared  libraries  are executable files created with the option to (see
       ld(1)).	They must contain position-independent code (PIC) that can  be
       mapped  anywhere	 in  the  address space of a process and executed with
       minimal relocation.  PIC can use PC-relative  addressing	 modes	and/or
       linkage tables.	It is generated by default by the compilers on PA-RISC
       64-bit systems and by specifying the options on PA-RISC 32-bit systems.

       See the option to ld(1) or the manual for details  on  writing  PIC  in
       assembly language.

   Incomplete Executables
       An  executable  program	linked	with  one  or more shared libraries is
       called an

       When creating an executable file from object files and  libraries,  the
       linker  does  not copy text (code) or data from the shared library into
       the output file.	 Instead, the dynamic loader maps the library into the
       address space of the process at run time.  The linker binds all program
       references to shared library routines and data to entries in a  linkage
       table,  and  relies  on the dynamic loader to fill in the linkage table
       entries once the libraries have been mapped.  This linkage table serves
       as a jump table for function calls.

       Thread  local  storage is now supported.	 The dynamic loader will tally
       each shared library's thread local storage size as  well	 as  the  pro‐
       gram's thread local storage size.  When all libraries are loaded on PA-
       RISC 32-bit systems, the dynamic loader either calls a  thread  routine
       to  set the thread pointer and allocate space for the initial thread or
       calls and to allocate the space and setup the thread pointer.

       On PA-RISC 64-bit systems, the dynamic loader invokes an initializer in
       the  system library which will do the thread initialization, allocation
       of the initial thread, and set the thread pointer.

       On previous PA-RISC 32-bit releases, shared library data	 items	refer‐
       enced  by  the  program were copied into the program executable file so
       that the data references could be resolved statically.  Beginning  with
       the Series 700/800 10.0 release, references to shared library data from
       the are included in a linkage table and are resolved at run time.

   Loading
       An incomplete executable contains a list of path names  of  the	shared
       libraries  searched  at	link  time.   At  run time, the dynamic loader
       attaches to the process all shared libraries that were linked with  the
       program.	 The dynamic loader will attempt to load each library from the
       same directory in which it was found at link time.  It is  possible  to
       change  the shared library run time search path by specifying a dynamic
       path list.  See and/or

       The text segment of a library is shared among all  processes  that  use
       it.   The  data	and  bss  segments are shared on a page-by-page basis.
       When a process first accesses (reads or writes) a data or bss  page,  a
       copy of that page is made for the process.

   PARISC 32-bit Dynamic Path List
       There are two was to specify a dynamic path list :

       ·  by  storing  a  directory  path  list	 in  the  executable using the
	  path_list option to

       ·  by linking the executable with option enabling the executable to use
	  the path list defined by the environment variable at run time.

       The  path  list is a list of one or more path names separated by colons
       The dynamic path list will work only for libraries specified  with  the
       or options to However, it can be enabled for libraries specified with a
       full path name using the option to (see chatr(1)).   If	both  and  are
       used,  their  relative  order  on the command line indicates which path
       list will be searched first in compatibility mode.

       See the option to ld(1) or the manual for more details.

   PA-RISC 64-bit Dynamic Path List
       For standard mode libraries (libraries built or linked with the dynamic
       loader  will  use dynamic path searching to find shared libraries whose
       names appear in the shared library list of the program or loaded shared
       libraries  with	no  embedded  character.   Dynamic  path  searching is
       enabled by default for these standard mode libraries or executables.

       If is specified, the dynamic loader will not look at any	 dynamic  path
       environment  variables to find dependent shared libraries.  This limits
       the dynamic path searching to the value of and the default  directories
       and

       For  compatibility  mode	 libraries (libraries built or linked with the
       dynamic loader will only do dynamic path searching for these  libraries
       if they were linked with or and one of these were specified:

       ·
       ·
       ·

       There are several ways to specify a dynamic path list :

       ·  By  storing a directory path list in the executable using the option
	  to

       ·  By not specifying and letting the linker set the value to a concate‐
	  nation  of  the  path_list  followed by the value of the environment
	  variable followed by the default directories and This is  for	 stan‐
	  dard mode shared libraries only.

       ·  By storing a directory path list in the environment variables and/or
	  For compatibility mode shared libraries and executables, the	direc‐
	  tory path_list should only be put in the environment variable.

       The  path  list is a list of one or more path names separated by colons
       The dynamic path list will work only for libraries specified  with  the
       or options to However, it can be enabled for libraries specified with a
       full path name using the option to (see chatr(1)).   If	both  and  are
       used,  their  relative  order  on the command line indicates which path
       list will be searched first in compatibility mode.

       See the option to ld(1) or the manual for more details.

       The dynamic loader will use these rules when determining which  dynamic
       path list to use:

       ·  If  was  specified and and were not specified, then the only dynamic
	  path searching that can be done is to look at the path list in  fol‐
	  lowed by the default directories and

       ·  If  was  specified  and and were not specified, no shared library is
	  subject to dynamic path searching.

       ·  If the and options are not specified,	 then  the  path_list  in  the
	  environment  variable	 is searched, followed by the path_list in the
	  environment variable, followed by the path_list in followed  by  the
	  default directories and

       ·  If  the  and are specified, then use the relative ordering of and to
	  determine if the dynamic loader should use the path_list  in	before
	  followed by the library as specified in the shared library list.  If
	  is specified first, use the path_list in first.

       The rules change slightly when looking for dependent shared libraries.

       ·  For standard mode libraries, the path_list in the environment	 vari‐
	  able is searched first, followed by the path_list in the environment
	  variable, followed by the value in the parent shared library's  fol‐
	  lowed by the default directories and

	  The  ancestors of a parent shared library may contain a path_list in
	  but this is ignored when searching for dependent shared libraries of
	  this parent.	Only the parent's is used.  If a library with the same
	  basename (library name without a path) has already been  loaded  for
	  the  program,	 that  library is used to resolve the dependent shared
	  library.

       ·  For compatibility mode libraries, the search is the same as for par‐
	  ent  shared  libraries,  except  can	be  passed  from parent shared
	  libraries to child dependent shared libraries to that child's depen‐
	  dents, et cetera.

   Binding
       The  dynamic  loader also resolves symbolic references between the exe‐
       cutable and libraries.  By default, function calls are trapped via  the
       linkage table and bound on first reference.  References to data symbols
       and other absolute address references  cannot  be  trapped.   They  are
       bound on the first resolution of a function call that could potentially
       reference the object.

       If the option to is used, the loader binds all necessary references  at
       startup	time.	This  increases	 the  startup  cost  of a program, but
       ensures that no more binding operations will be required later.	 Thus,
       better real-time response may result, and the risk of a later abort due
       to unresolved externals is eliminated.

       The tool can be used to improve the start-up time of programs that  use
       shared  libraries (incomplete executables).  The tool performs analysis
       on the shared library routines and data used to bind  the  symbols  and
       stores  this  information  in  the executable file.  The dynamic loader
       will notice that this information is available, and it  will  use  this
       fastbind information to bind the symbols instead of the standard search
       method.

       For more details refer to fastbind(1) and the option to	ld(1)  or  the
       manual.

   Breadth-first Searching
       This  is	 only  available  on  PA-RISC 64-bit systems.  By default, the
       dynamic loader will do breadth-first searching  when  binding  symbols.
       If the incomplete executable was linked with or if a is being executed,
       then depth-first searching is used.

       Breadth-first searching specifies that the dynamic loader will look for
       symbols	starting with the incomplete executable followed by all loaded
       shared libraries in a left to right order until the  symbol  is	found.
       For  example,  the  incomplete  executable  is searched followed by all
       libraries in its	 shared	 library  list.	  Then	the  dependent	shared
       libraries  of the first library in the shared library list is searched,
       followed by the dependent shared libraries of the second library in the
       list, et cetera.

   Depth-first Searching
       This  is the only search behavior on PA-RISC 32-bit systems and is used
       on PA-RISC 64-bit systems if doing a or if  the	incomplete  executable
       was  linked  with  The  dynamic	loader will search the incomplete exe‐
       cutable followed by the first library in its shared library list.   The
       first  dependent	 library of this library is then searched, followed by
       the first dependent of this dependent, and so on.  When	there  are  no
       more  dependents,  the siblings and their dependents are searched until
       eventually the second library in the program's shared library  list  is
       searched, followed by the first dependent of this library, et cetera.

   Version Control
       Since  code from a shared library is mapped at run time from a separate
       shared library file, modifications to a shared library  may  alter  the
       behavior	 of  existing executables.  In some cases, this may cause pro‐
       grams to operate incorrectly.  Two means of version control is provided
       to  solve  this	problem.   This is available on PA-RISC 32-bit systems
       only.  Whenever an incompatible change is made to a library  interface,
       both  versions  of  the	affected module or modules are included in the
       library.	 A mark indicating the date (month/year) the change  was  made
       is  recorded  in	 the  new  module via the pragma in C, or the compiler
       directive in Fortran and Pascal.

       This date applies to all symbols defined within	the  module.   A  high
       water  mark  giving  the	 date  of  the	latest	incompatible change is
       recorded in the shared library,	and  the  high	water  mark  for  each
       library	linked	with  the  program  is recorded in the incomplete exe‐
       cutable file.  At run time, the dynamic loader checks  the  high	 water
       mark  of	 each  library and loads the library only if it is at least as
       new as the high water mark recorded at link time.

       When binding symbolic references, the loader chooses the latest version
       of a symbol that is not later than the high water mark recorded at link
       time.  These two checks help ensure that the version  of	 each  library
       interface  used	at  run time is the same as was expected at link time.
       Intra-library versioning may be removed in a future release.  The  sec‐
       ond  way	 for users to version their libraries is by using a new naming
       convention, where n is a numeral that is	 incremented  with  every  new
       release	of  the library.  When using the new naming scheme, users must
       specify an internal name for the shared library by using the option  to
       when  building  the  shared library.  This internal name is recorded in
       each incomplete executable or shared library that links with the shared
       library.

       At  run	time, the loader will look at the shared library list recorded
       in the incomplete executable file or shared library.  For each  library
       in the list that was not an internal name, the dynamic loader will look
       for a version of the library (e.g.  to load.  If it does not find  this
       version,	 it  will  look	 for  the library name that is recorded in the
       list.

   PA-RISC 32-bit Explicit Loading and Binding
       The duties of the dynamic loader as described above are	all  performed
       automatically,  although they can be controlled somewhat by appropriate
       options to The dynamic loader can also  be  accessed  programmatically.
       The  reserved  symbol which is defined in points to a jump table within
       the dynamic loader.

       The routines described under shl_load(3X) provide a portable  interface
       that allows the programmer to explicitly attach a shared library to the
       process at run time, to calculate  the  addresses  of  symbols  defined
       within shared libraries, and to detach the library when done.

   PA-RISC 64-bit Explicit Loading and Binding
       The  duties  of the dynamic loader as described above are all performed
       automatically, although they can be controlled somewhat by  appropriate
       options to The dynamic loader can also be accessed programmatically.

       The  routines  described	 under shl_load(3X), dlclose(3C), dlerror(3C),
       dlget(3C), dlmodinfo(3C), dlopen(3C), and dlsym(3C) provide a  portable
       interface  that	allows	the  programmer	 to explicitly attach a shared
       library to the process at run time, to calculate the addresses of  sym‐
       bols  defined  within  shared libraries, and to detach the library when
       done.

   Global Symbol Table
       The global symbol table mechanism is designed as a performance enhance‐
       ment  option.   Enabling this mechanism causes the creation of a global
       symbol table which speeds up symbol lookup, by eliminating the need  to
       scan  all  loaded  libraries  in order to find a symbol.	 Instead, this
       mechanism allows the dynamic loader to scan one	table  which  contains
       the symbol information from all the loaded libraries.  This is particu‐
       larly  effective	 for  applications  with  large	 numbers   of	shared
       libraries.  This mechanism is off by default.

       The  global symbol table is implemented using a hash table.  Under this
       mechanism, whenever a library is loaded (either implicitly or by	 using
       or  the	mechanism  hashes the library's export symbols and places them
       into this table.	 When a library is unloaded, the  mechanism  looks  up
       the library's export symbols in the table and removes them.

       The  hash  table	 does not contain entries for symbols defined by User-
       defined symbols must therefore be handled separately.

       Enabling the mechanism causes to use more memory and impacts  the  per‐
       formance of the and API calls.

       The  global symbol table mechanism can force the dynamic loader to per‐
       form a large number of hashing operations to locate symbols.   Perform‐
       ing this hash function can cost considerable time, especially when sym‐
       bol names are very long (C++ programs).	To speed up  the  loader,  you
       can  off-load  computing hash values to the linker by using the option.
       This causes the linker to  compute  the	hash  value  for  all  symbols
       exported	 from  libraries  listed  on the link line, and store the hash
       values in the executable.  At run time,	the  loader  then  builds  the
       global symbol table in memory and reads the stored hash values from the
       executable as each library is loaded.

       If you do not specify at link time, you	can  use  the  option  of  the
       chatr(1)	 command  to  enable  the global symbol table mechanism, which
       causes the loader to build the table and compute the hash values at run
       time.

       Use  the	 GST  options  (with the and commands), (PA-RISC 32-bit only),
       (PA-RISC 64-bit systems only), and (PA-RISC  32-bit  systems  only)  to
       control	the  behavior  of the global symbol table hash mechanism.  You
       can use the and linker/chatr options to control	the  behavior  of  the
       global symbol table hash mechanism.

       With  the GST options, you can tune the size of the hash table and num‐
       ber of buckets per entry to reach a balance of performance  and	memory
       use.   To  maximize for performance, tune the table size for an average
       chain length of one.  For maximum memory use, at the expense of perfor‐
       mance,  tune  the  size	of  the	 table to minimize the number of empty
       entries.	 In general, use prime numbers for the table size.  The mecha‐
       nism provide default values of table size, 1103, and number of buckets,
       3.

       To get statistical information about hash table	performance,  set  the
       environment  variable  to contain the and options.  This combination of
       options provides a message for each library that contains the following
       information:

       ·  Operation (load/unload)
       ·  Name of library
       ·  Number of export symbols
       ·  Number of entries in table with no stored symbols
       ·  Average length of non-zero chains
       ·  Calculated performance of the hash table
       ·  Amount of memory used by the hash table

       See the ld(1) and chatr(1) commands for information on the and options.

   The LD_PRELOAD Environment Variable
       NOTE:  The feature is disabled for programs, such as See ld(1) for more
       details.	 This feature is not available to fully-bound static  executa‐
       bles.

       The environment variable allows you to load additional shared libraries
       at program startup.  provides a colon-separated or space-separated list
       of shared libraries that the dynamic loader can interpret.  The dynamic
       loader, loads the specified shared libraries as if the program had been
       linked  explicitly with the shared libraries in before any other depen‐
       dents of the program.

       At startup time, the  dynamic  loader  implicitly  loads	 one  or  more
       libraries,  if  found,  specified in the environment.  It uses the same
       load order and symbol resolution order  as  if  the  library  had  been
       explicitly  linked  as the first library in the link line when building
       the executable.	For example, given an executable built with  the  fol‐
       lowing link line:

       If  the	dynamic	 loader uses the same load order and symbol resolution
       order as if had been specified as the first library in the link line:

       In a typical command line use (with where is defined as follows:

       The dynamic loader  searches  application  according  to	 but  searches
       according to and/or and/or the embedded path (if enabled).

       NOTE:  Because  the dynamic loader checks the environment variable when
       running any executable (except seteuid/setegid programs), if you export
       you  should  unset  it  after  running your executable, or run the exe‐
       cutable as in the command listed above or in a script.

       NOTE: The linker and tools do not require any shared library to be pre‐
       loaded.	 Invoking  any of them with either the or environment variable
       set is unsupported and may result in undefined behaviour.

       You can use the environment variable to load a shared library that con‐
       tains  thread-local  storage  to avoid the following error when loading
       the library dynamically:

       The load order and symbol resolution order may be different  in	a  PA-
       RISC 32-bit program than in the same PA-RISC 64-bit program because the
       dynamic loader uses depth-first search order in PA-Risc 32-bit mode and
       breadth-first search order in PA-RISC 64-bit mode.

       See in the option to ld(1) or the for more information.

       The dynamic loader uses the environment variable even if you use the in
       the link line.  This insures that is enabled even in a link.  The vari‐
       able is always enabled except for and programs.

       NOTE:  If  an archive library is already linked-in with the application
       and we try to load the shared version of that  library  using  we  will
       have problems.

       The potential problems are :

	      ·	 If  the  library  has	initializers/terminators, they will be
		 called twice

	      ·	 you may end up using two different copies of  the  same  data
		 symbol which may cause incorrect behavior

       You can specify multiple libraries as part of the environment variable.
       Separate the libraries by spaces or colons as in (Multi-byte support is
       not  provided  as  part	of parsing the library list).  You can specify
       libraries with absolute paths or relative  paths.   The	libraries  can
       also  consist  of  just	the  library  names, in which case the dynamic
       loader uses the directory path list in the environment variables and/or
       or the embedded path list (if enabled) to search for the libraries.

       The  dynamic  loader  does  not issue an error or warning message if it
       cannot find a library specified by However,  if	it  does  not  find  a
       dependent  of  the  libraries, the dynamic loader issues the same error
       message as if the library is specified in the link line.

   The LD_PRELOAD_ONCE Environment Variable
       The feature is similar to except that the dynamic loader, unsets	 after
       reading it, so that any applications invoked by the current application
       do not have set.	 This is useful in situations where the current appli‐
       cation needs certain libraries preloaded while the child application is
       adversely affected if these  are	 preloaded  (for  example,  terminates
       abnormally if contains

       The  libraries specified by are loaded before the ones specified by The
       effect on symbol resolution is that the symbols from  libraries	speci‐
       fied by take precedence over symbols from libraries specified by

   Running setuid Programs
       For  looking  up	 shared libraries for applications, the dynamic loader
       uses only the paths listed in

       If and are set, they are validated against the list of paths  in	 (This
       allows the individual applications to appropriately order the list from
       the file).

       You can turn this feature off by	 setting  the  option  to  Using  this
       option disables programs from all dynamic path lookup.

       The  configuration file is expected to contain a list of shared library
       search paths (delimited by either colon	or  newline  characters).   To
       avoid  redundant	 searches,  you	 should see that one path appears only
       once in the file (and also in the options and

       The file should be writeable only by Otherwise, the loader does not use
       its  contents.	If  does  not  exist or has the wrong permissions, all
       dynamic path lookup is disabled.	 Any relative paths (paths not	start‐
       ing with slash in the path list are ignored by the loader.

       NOTE: Spaces are not allowed in the paths listed.  Everything on a line
       that follows a space or pound character is ignored.  You	 can  use  the
       pound sign to comment out paths in the file.

       If  either or is set, and neither contains any path listed in the file,
       all dynamic path lookup is disabled.  The paths from the file are not a
       fallback.

       The following is a sample configuration file:

       # need this for some GNU and shared apps
       /usr/local/lib:/nfs/appserver/lib

       # path below is ignored: path not starting with '/'
       # and loader will not expand ~ etc.

       ~wizkid/lib

       # second path below ignored: space

       /user/ipfguru/lib/hpux32: user/ipfguru/lib/hpux64
	 /net/appserv2/local/lib  # ignored:line starting with space
       /opt/java1.3/jre/lib/PA_RISC2.0/	       # java 1.3 PA32
       /opt/java1.3/jre/lib/PA_RISC2.0/server  # java 1.3 PA32
       /opt/java1.3/jre/lib/PA_RISC2.0W/

       # java 1.4
       /opt/java1.4/jre/lib/PA_RISC2.0/:/opt/java1.4/jre/lib/PA_RISC2.0/server
       /opt/java1.4/jre/lib/PA_RISC2.0W/:/opt/java1.4/jre/lib/PA_RISC2.0W/server

DIAGNOSTICS
       If  the	dynamic	 loader	 is  not  present, or cannot be invoked by the
       process for any reason, an error message is printed to  standard	 error
       and the process terminates with a non-zero exit code.

       These  errors  fall  into  two  basic categories: errors in attaching a
       shared library, and errors in binding symbols.  The  former  can	 occur
       only  at process startup time but the latter can occur at any time dur‐
       ing process execution unless the option is used	with  Possible	errors
       that  can  occur	 while	attaching a shared library include library not
       present, library not executable, library corrupt, high water  mark  too
       low, or insufficient room in the address space for the library.	Possi‐
       ble errors that can occur while	binding	 symbols  include  symbol  not
       found (unresolved external), or library corrupt.

       When  using  the	 explicit load facilities of the dynamic loader, these
       types of	 errors	 are  not  considered  fatal.	Consult	 shl_load(3X),
       dlclose(3C),  dlget(3C),	 dlgetname(3C), dlmodinfo(3C), dlopen(3C), and
       dlsym(3C) for more information.	On  PA-RISC  64-bit  systems,  to  see
       error  messages,	 use  the  routine.   This routine will print the last
       error message recorded by the dynamic loader.

WARNINGS
       The startup cost of  the	 dynamic  loader  is  significant,  even  with
       deferred	 binding, and can cause severe performance degradation in pro‐
       cesses dominated by startup costs (such as simple ``hello world''  pro‐
       grams).	 In addition, position-independent code is usually slower than
       normal code, so performance of a program may be adversely  affected  by
       the  presence  of  PIC in shared libraries.  However, the advantages of
       decreased disk space usage and decreased memory requirements  for  exe‐
       cutables should outweigh these concerns in most cases.

       There are rare cases where the behavior of a program differs when using
       shared libraries as opposed to archive libraries.  This happens primar‐
       ily  when  relying on undocumented and unsupported features of the com‐
       pilers, assembler, and linker.

       See the option to ld(1) or the manual for more details.

       The library developer is entirely responsible for version  control  and
       must  be thorough in identifying incompatible changes to library inter‐
       faces.  Otherwise, programs may	malfunction  unexpectedly  with	 later
       versions of the library.	 There is little an application user can do if
       version control is not handled properly by the library developer.   The
       application  developer  can  usually  resolve problems by modifying the
       source code to use the new interfaces then  recompiling	and  relinking
       against the new libraries.

       By default, most warnings are not reported by the dynamic loader.

       On  PA-RISC 32-bit systems, if you wish to see all of the messages, set
       the environment variable to contain one or more options.	 The following
       options are supported:
	      Display  additional  dynamic  loader  warning messages.  Some of
	      these include:

		     · Symbols of the same name but different types,  such  as
		       CODE  and  DATA.	  See  the  section  in ld(1) for more
		       details on this warning.

		     · Using  certain	flags	or   routines	described   in
		       shl_load(3X).

	      See    fastbind(1).

	      See    fastbind(1).

	      Display  verbose	messages  concerning possible unsatisfied sym‐
	      bols.
		     This is equivalent to of and of calls. This option can be
		     used  in  cases  where  the  application has already been
		     built  without  either  or	 and  verbose	messages   are
		     expected.	Currently, this is applicable only for PA32.

       On  PA-RISC  64-bit systems, if you wish to see all error messages, set
       the environment variable to true.

AUTHOR
       The and shared libraries were developed by HP.

FILES
       list of shared libraries for lookup with
			   programs

SEE ALSO
   System Tools
       aCC(1)		 invoke the HP-UX aC++ compiler
       as(1)		 translate assembly code to machine code
       CC(1)		 invoke the HP-UX C++ compiler
       cc(1)		 invoke the HP-UX C compiler
       chatr(1)		 change program's internal attributes
       f77(1)		 invoke the HP-UX FORTRAN compiler
       f90(1)		 invoke the HP-UX Fortran 90 compiler
       fastbind(1)	 invoke the fastbind tool
       ld(1)		 invoke the link editor
       pc(1)		 invoke the HP-UX Pascal compiler

   Miscellaneous
       a.out(4)		 assembler, compiler, and linker output
       dlclose(3C)	 unload a shared library previously loaded by
       dlerror(3C)	 print the last error message recorded by dld
       dlget(3C)	 return information about a loaded module
       dlgetname(3C)	 return the name of the storage containing a load mod‐
			 ule
       dlmodinfo(3C)	 return information about a loaded module
       dlopen(3C)	 load a shared library
       dlsym(3C)	 get the address of a symbol in a shared library
       shl_load(3X)	 load/unload shared libraries

   Texts and Tutorials
       (See the		 option to ld(1))

       (See		 manuals(5) for ordering information)

PA-RISC Systems Only						     dld.sl(5)
[top]

List of man pages available for HP-UX

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net