\entry{motivation for writing libtool}{1}{motivation for writing libtool} \entry{design philosophy}{1}{design philosophy} \entry{specifications for libtool}{1}{specifications for libtool} \entry{libtool specifications}{1}{libtool specifications} \entry{tricky design issues}{2}{tricky design issues} \entry{design issues}{2}{design issues} \entry{other implementations, flaws in}{2}{other implementations, flaws in} \entry{reusability of library systems}{2}{reusability of library systems} \entry{complexity of library systems}{2}{complexity of library systems} \entry{definition of libraries}{4}{definition of libraries} \entry{libraries, definition of}{4}{libraries, definition of} \entry{examples of using libtool}{5}{examples of using libtool} \entry{libtool examples}{5}{libtool examples} \entry{compiling object files}{5}{compiling object files} \entry{object files, compiling}{5}{object files, compiling} \entry{position-independent code}{5}{position-independent code} \entry{PIC (position-independent code)}{5}{PIC (position-independent code)} \entry{library object file}{5}{library object file} \entry{.lo files}{5}{\samp {.lo} files} \entry{object files, library}{5}{object files, library} \entry{ar}{6}{ar} \entry{ranlib}{6}{ranlib} \entry{libtool libraries}{6}{libtool libraries} \entry{.la files}{6}{\samp {.la} files} \entry{.libs subdirectory}{7}{\file {.libs} subdirectory} \entry{linking against installed libraries}{7}{linking against installed libraries} \entry{buggy system linkers}{7}{buggy system linkers} \entry{security problems with buggy linkers}{7}{security problems with buggy linkers} \entry{bugs, subtle ones caused by buggy linkers}{7}{bugs, subtle ones caused by buggy linkers} \entry{linking against uninstalled libraries}{8}{linking against uninstalled libraries} \entry{linking with installed libtool libraries}{8}{linking with installed libtool libraries} \entry{wrapper scripts for programs}{8}{wrapper scripts for programs} \entry{program wrapper scripts}{8}{program wrapper scripts} \entry{strip}{10}{strip} \entry{su}{10}{su} \entry{install}{10}{install} \entry{stripping libraries}{11}{stripping libraries} \entry{libraries, stripping}{11}{libraries, stripping} \entry{postinstallation}{11}{postinstallation} \entry{installation, finishing}{11}{installation, finishing} \entry{libraries, finishing installation}{11}{libraries, finishing installation} \entry{static linking}{12}{static linking} \entry{convenience libraries}{12}{convenience libraries} \entry{standalone binaries}{13}{standalone binaries} \entry{libtool}{14}{libtool} \entry{libtool command options}{14}{libtool command options} \entry{options, libtool command}{14}{options, libtool command} \entry{command options, libtool}{14}{command options, libtool} \entry{mode, compile}{15}{mode, compile} \entry{compile mode}{15}{compile mode} \entry{link mode}{15}{link mode} \entry{mode, link}{15}{mode, link} \entry{undefined symbols, allowing}{15}{undefined symbols, allowing} \entry{unresolved symbols, allowing}{15}{unresolved symbols, allowing} \entry{partial linking}{17}{partial linking} \entry{linking, partial}{17}{linking, partial} \entry{execute mode}{17}{execute mode} \entry{mode, execute}{17}{mode, execute} \entry{install mode}{18}{install mode} \entry{mode, install}{18}{mode, install} \entry{finish mode}{18}{finish mode} \entry{mode, finish}{18}{mode, finish} \entry{uninstall mode}{18}{uninstall mode} \entry{mode, uninstall}{18}{mode, uninstall} \entry{clean mode}{18}{clean mode} \entry{mode, clean}{18}{mode, clean} \entry{Makefile}{19}{Makefile} \entry{Makefile.am}{19}{Makefile.am} \entry{Makefile.in}{19}{Makefile.in} \entry{LTLIBRARIES}{19}{\code {LTLIBRARIES}} \entry{configuring libtool}{20}{configuring libtool} \entry{AC{\_}PROG{\_}LIBTOOL}{20}{\code {AC_PROG_LIBTOOL}} \entry{AM{\_}PROG{\_}LIBTOOL}{21}{\code {AM_PROG_LIBTOOL}} \entry{AC{\_}LIBTOOL{\_}DLOPEN}{21}{\code {AC_LIBTOOL_DLOPEN}} \entry{AC{\_}LIBTOOL{\_}WIN32{\_}DLL}{22}{\code {AC_LIBTOOL_WIN32_DLL}} \entry{AC{\_}DISABLE{\_}FAST{\_}INSTALL}{22}{\code {AC_DISABLE_FAST_INSTALL}} \entry{AC{\_}DISABLE{\_}SHARED}{22}{\code {AC_DISABLE_SHARED}} \entry{AM{\_}DISABLE{\_}SHARED}{22}{\code {AM_DISABLE_SHARED}} \entry{AC{\_}DISABLE{\_}STATIC}{22}{\code {AC_DISABLE_STATIC}} \entry{AM{\_}DISABLE{\_}STATIC}{22}{\code {AM_DISABLE_STATIC}} \entry{CC}{22}{\code {CC}} \entry{CFLAGS}{22}{\code {CFLAGS}} \entry{CPPFLAGS}{22}{\code {CPPFLAGS}} \entry{LD}{22}{\code {LD}} \entry{LDFLAGS}{23}{\code {LDFLAGS}} \entry{LIBS}{23}{\code {LIBS}} \entry{NM}{23}{\code {NM}} \entry{RANLIB}{23}{\code {RANLIB}} \entry{LN{\_}S}{23}{\code {LN_S}} \entry{DLLTOOL}{23}{\code {DLLTOOL}} \entry{OBJDUMP}{23}{\code {OBJDUMP}} \entry{AS}{23}{\code {AS}} \entry{aclocal}{23}{aclocal} \entry{config.guess}{24}{config.guess} \entry{config.sub}{24}{config.sub} \entry{ltmain.sh}{24}{ltmain.sh} \entry{libtoolize}{24}{libtoolize} \entry{libtoolize command options}{24}{libtoolize command options} \entry{command options, libtoolize}{24}{command options, libtoolize} \entry{options, libtoolize command}{24}{options, libtoolize command} \entry{AC{\_}CONFIG{\_}AUX{\_}DIR}{25}{\code {AC_CONFIG_AUX_DIR}} \entry{LTALLOCA}{25}{\code {LTALLOCA}} \entry{AC{\_}FUNC{\_}ALLOCA}{25}{\code {AC_FUNC_ALLOCA}} \entry{LTLIBOBJS}{25}{\code {LTLIBOBJS}} \entry{AC{\_}REPLACE{\_}FUNCS}{25}{\code {AC_REPLACE_FUNCS}} \entry{debugging libraries}{25}{debugging libraries} \entry{developing libraries}{25}{developing libraries} \entry{double-compilation, avoiding}{25}{double-compilation, avoiding} \entry{avoiding shared libraries}{25}{avoiding shared libraries} \entry{eliding shared libraries}{25}{eliding shared libraries} \entry{using shared libraries, not}{25}{using shared libraries, not} \entry{shared libraries, not using}{25}{shared libraries, not using} \entry{time, saving}{25}{time, saving} \entry{saving time}{25}{saving time} \entry{dynamic dependencies}{27}{dynamic dependencies} \entry{dependency versioning}{27}{dependency versioning} \entry{shared library versions}{27}{shared library versions} \entry{library interfaces}{27}{library interfaces} \entry{libtool library versions}{27}{libtool library versions} \entry{formal versioning}{27}{formal versioning} \entry{versioning, formal}{27}{versioning, formal} \entry{library interfaces, design}{30}{library interfaces, design} \entry{design of library interfaces}{30}{design of library interfaces} \entry{renaming interface functions}{30}{renaming interface functions} \entry{opaque data types}{30}{opaque data types} \entry{header files}{30}{header files} \entry{global functions}{30}{global functions} \entry{portable C headers}{30}{portable C headers} \entry{C header files, portable}{30}{C header files, portable} \entry{include files, portable}{30}{include files, portable} \entry{dependencies between libraries}{33}{dependencies between libraries} \entry{inter-library dependencies}{33}{inter-library dependencies} \entry{dlopen}{34}{\code {dlopen}} \entry{dlsym}{34}{\code {dlsym}} \entry{dlclose}{34}{\code {dlclose}} \entry{shl{\_}load}{34}{\code {shl_load}} \entry{dynamic linking, applications}{34}{dynamic linking, applications} \entry{dlopening modules}{34}{dlopening modules} \entry{modules, dynamic}{34}{modules, dynamic} \entry{application-level dynamic linking}{34}{application-level dynamic linking} \entry{lt{\_}dlsymlist}{35}{\code {lt_dlsymlist}} \entry{lt{\_}preloaded{\_}symbols}{35}{\code {lt_preloaded_symbols}} \entry{names of dynamic modules}{36}{names of dynamic modules} \entry{dynamic modules, names}{36}{dynamic modules, names} \entry{pitfalls with dlopen}{36}{pitfalls with dlopen} \entry{dlopening, pitfalls}{36}{dlopening, pitfalls} \entry{trouble with dlopen}{36}{trouble with dlopen} \entry{libltdl}{37}{\code {libltdl}} \entry{dlopen}{37}{\code {dlopen}} \entry{dlsym}{37}{\code {dlsym}} \entry{dlclose}{37}{\code {dlclose}} \entry{dlerror}{37}{\code {dlerror}} \entry{shl{\_}load}{37}{\code {shl_load}} \entry{dynamic linking, applications}{37}{dynamic linking, applications} \entry{dlopening modules}{37}{dlopening modules} \entry{modules, dynamic}{37}{modules, dynamic} \entry{application-level dynamic linking}{37}{application-level dynamic linking} \entry{lt{\_}ptr}{37}{\code {lt_ptr}} \entry{lt{\_}dlhandle}{38}{\code {lt_dlhandle}} \entry{lt{\_}dlsymlist}{38}{\code {lt_dlsymlist}} \entry{lt{\_}dlinit}{39}{\code {lt_dlinit}} \entry{lt{\_}dlexit}{39}{\code {lt_dlexit}} \entry{lt{\_}dlopen}{39}{\code {lt_dlopen}} \entry{lt{\_}dlopenext}{39}{\code {lt_dlopenext}} \entry{lt{\_}dlclose}{40}{\code {lt_dlclose}} \entry{lt{\_}dlsym}{40}{\code {lt_dlsym}} \entry{(void)}{40}{\code {(void)}} \entry{lt{\_}dlpreload}{40}{\code {lt_dlpreload}} \entry{lt{\_}dlpreload{\_}default}{40}{\code {lt_dlpreload_default}} \entry{LTDL{\_}SET{\_}PRELOADED{\_}SYMBOLS()}{40}{\code {LTDL_SET_PRELOADED_SYMBOLS()}} \entry{lt{\_}dladdsearchdir}{40}{\code {lt_dladdsearchdir}} \entry{lt{\_}dlsetsearchpath}{41}{\code {lt_dlsetsearchpath}} \entry{(void)}{41}{\code {(void)}} \entry{lt{\_}dlmakeresident}{41}{\code {lt_dlmakeresident}} \entry{lt{\_}dlisresident}{41}{\code {lt_dlisresident}} \entry{lt{\_}dlmalloc}{41}{\code {lt_dlmalloc}} \entry{lt{\_}dlfree}{41}{\code {lt_dlfree}} \entry{lt{\_}dlmutex{\_}lock}{42}{\code {lt_dlmutex_lock}} \entry{lt{\_}dlmutex{\_}unlock}{42}{\code {lt_dlmutex_unlock}} \entry{lt{\_}dlmutex{\_}seterror}{42}{\code {lt_dlmutex_seterror}} \entry{lt{\_}dlmutex{\_}geterror}{43}{\code {lt_dlmutex_geterror}} \entry{lt{\_}dlmutex{\_}register}{43}{\code {lt_dlmutex_register}} \entry{lt{\_}dlinfo}{43}{\code {lt_dlinfo}} \entry{lt{\_}dlgetinfo}{43}{\code {lt_dlgetinfo}} \entry{lt{\_}dlforeach}{43}{\code {lt_dlforeach}} \entry{lt{\_}dlhandle{\_}next}{44}{\code {lt_dlhandle_next}} \entry{lt{\_}dlcaller{\_}id}{44}{\code {lt_dlcaller_id}} \entry{lt{\_}dlcaller{\_}register}{44}{\code {lt_dlcaller_register}} \entry{lt{\_}dlcaller{\_}set{\_}data}{44}{\code {lt_dlcaller_set_data}} \entry{lt{\_}dlcaller{\_}get{\_}data}{44}{\code {lt_dlcaller_get_data}} \entry{lt{\_}module}{45}{\code {lt_module}} \entry{lt{\_}dlloader}{46}{\code {lt_dlloader}} \entry{lt{\_}dlloader{\_}data}{46}{\code {lt_dlloader_data}} \entry{lt{\_}user{\_}dlloader}{46}{\code {lt_user_dlloader}} \entry{lt{\_}module{\_}open}{46}{\code {lt_module_open}} \entry{lt{\_}module{\_}close}{46}{\code {lt_module_close}} \entry{lt{\_}find{\_}sym}{46}{\code {lt_find_sym}} \entry{lt{\_}dlloader{\_}exit}{46}{\code {lt_dlloader_exit}} \entry{lt{\_}dlloader{\_}add}{48}{\code {lt_dlloader_add}} \entry{lt{\_}dlloader{\_}remove}{48}{\code {lt_dlloader_remove}} \entry{(lt{\_}dlloader *place)}{48}{\code {(\w {lt_dlloader *\var {place}})}} \entry{(const char *loader{\_}name)}{48}{\code {(\w {const char *\var {loader_name}})}} \entry{(lt{\_}dlloader *place)}{49}{\code {(\w {lt_dlloader *\var {place}})}} \entry{(lt{\_}dlloader *place)}{49}{\code {(\w {lt_dlloader *\var {place}})}} \entry{lt{\_}dladderror}{49}{\code {lt_dladderror}} \entry{lt{\_}dlseterror}{49}{\code {lt_dlseterror}} \entry{C, not using}{52}{C, not using} \entry{languages, non-C}{52}{languages, non-C} \entry{C{\tt\char 43}{\tt\char 43}, using}{52}{C++, using} \entry{trouble with C{\tt\char 43}{\tt\char 43}}{52}{trouble with C++} \entry{pitfalls using C{\tt\char 43}{\tt\char 43}}{52}{pitfalls using C++} \entry{C{\tt\char 43}{\tt\char 43}, pitfalls}{52}{C++, pitfalls} \entry{troubleshooting}{53}{troubleshooting} \entry{problems, solving}{53}{problems, solving} \entry{solving problems}{53}{solving problems} \entry{problems, blaming somebody else for}{53}{problems, blaming somebody else for} \entry{test suite}{53}{test suite} \entry{cdemo-conf.test}{53}{cdemo-conf.test} \entry{cdemo-exec.test}{53}{cdemo-exec.test} \entry{cdemo-make.test}{53}{cdemo-make.test} \entry{cdemo-static.test}{53}{cdemo-static.test} \entry{cdemo-shared.test}{53}{cdemo-shared.test} \entry{demo-conf.test}{54}{demo-conf.test} \entry{demo-exec.test}{54}{demo-exec.test} \entry{demo-inst.test}{54}{demo-inst.test} \entry{demo-make.test}{54}{demo-make.test} \entry{demo-unst.test}{54}{demo-unst.test} \entry{demo-static.test}{54}{demo-static.test} \entry{demo-shared.test}{54}{demo-shared.test} \entry{demo-nofast.test}{54}{demo-nofast.test} \entry{demo-pic.test}{54}{demo-pic.test} \entry{demo-nopic.test}{54}{demo-nopic.test} \entry{deplibs.test}{54}{deplibs.test} \entry{hardcode.test}{54}{hardcode.test} \entry{build-relink.test}{54}{build-relink.test} \entry{noinst-link.test}{54}{noinst-link.test} \entry{depdemo-conf.test}{55}{depdemo-conf.test} \entry{depdemo-exec.test}{55}{depdemo-exec.test} \entry{depdemo-inst.test}{55}{depdemo-inst.test} \entry{depdemo-make.test}{55}{depdemo-make.test} \entry{depdemo-unst.test}{55}{depdemo-unst.test} \entry{depdemo-static.test}{55}{depdemo-static.test} \entry{depdemo-shared.test}{55}{depdemo-shared.test} \entry{depdemo-nofast.test}{55}{depdemo-nofast.test} \entry{mdemo-conf.test}{55}{mdemo-conf.test} \entry{mdemo-exec.test}{55}{mdemo-exec.test} \entry{mdemo-inst.test}{55}{mdemo-inst.test} \entry{mdemo-make.test}{55}{mdemo-make.test} \entry{mdemo-unst.test}{55}{mdemo-unst.test} \entry{mdemo-static.test}{55}{mdemo-static.test} \entry{mdemo-shared.test}{55}{mdemo-shared.test} \entry{dryrun.test}{55}{dryrun.test} \entry{assign.test}{55}{assign.test} \entry{link.test}{56}{link.test} \entry{link-2.test}{56}{link-2.test} \entry{nomode.test}{56}{nomode.test} \entry{quote.test}{56}{quote.test} \entry{sh.test}{56}{sh.test} \entry{suffix.test}{56}{suffix.test} \entry{failed tests}{56}{failed tests} \entry{tests, failed}{56}{tests, failed} \entry{bug reports}{56}{bug reports} \entry{reporting bugs}{56}{reporting bugs} \entry{problem reports}{56}{problem reports} \entry{inter-library dependency}{59}{inter-library dependency} \entry{deplibs{\_}check{\_}method}{59}{\code {deplibs_check_method}} \entry{file{\_}magic}{59}{\code {file_magic}} \entry{file{\_}magic{\_}cmd}{59}{\code {file_magic_cmd}} \entry{file{\_}magic{\_}test{\_}file}{59}{\code {file_magic_test_file}} \entry{test{\_}compile}{59}{\code {test_compile}} \entry{pass{\_}all}{59}{\code {pass_all}} \entry{none}{59}{\code {none}} \entry{unknown}{59}{\code {unknown}} \entry{implementation of libtool}{62}{implementation of libtool} \entry{libtool implementation}{62}{libtool implementation} \entry{AR}{63}{\code {AR}} \entry{CC}{63}{\code {CC}} \entry{LD}{63}{\code {LD}} \entry{NM}{63}{\code {NM}} \entry{RANLIB}{63}{\code {RANLIB}} \entry{allow{\_}undefined{\_}flag}{63}{\code {allow_undefined_flag}} \entry{always{\_}export{\_}symbols}{63}{\code {always_export_symbols}} \entry{archive{\_}cmds}{63}{\code {archive_cmds}} \entry{archive{\_}expsym{\_}cmds}{63}{\code {archive_expsym_cmds}} \entry{old{\_}archive{\_}cmds}{63}{\code {old_archive_cmds}} \entry{old{\_}archive{\_}from{\_}new{\_}cmds}{64}{\code {old_archive_from_new_cmds}} \entry{old{\_}archive{\_}from{\_}expsyms{\_}cmds}{64}{\code {old_archive_from_expsyms_cmds}} \entry{build{\_}libtool{\_}libs}{64}{\code {build_libtool_libs}} \entry{build{\_}old{\_}libs}{64}{\code {build_old_libs}} \entry{compiler{\_}c{\_}o}{64}{\code {compiler_c_o}} \entry{compiler{\_}o{\_}lo}{64}{\code {compiler_o_lo}} \entry{dlopen{\_}support}{64}{\code {dlopen_support}} \entry{dlopen{\_}self}{64}{\code {dlopen_self}} \entry{dlopen{\_}self{\_}static}{64}{\code {dlopen_self_static}} \entry{echo}{64}{\code {echo}} \entry{exclude{\_}expsyms}{64}{\code {exclude_expsyms}} \entry{export{\_}dynamic{\_}flag{\_}spec}{64}{\code {export_dynamic_flag_spec}} \entry{export{\_}symbols{\_}cmds}{65}{\code {export_symbols_cmds}} \entry{extract{\_}expsyms{\_}cmds}{65}{\code {extract_expsyms_cmds}} \entry{fast{\_}install}{65}{\code {fast_install}} \entry{finish{\_}cmds}{65}{\code {finish_cmds}} \entry{finish{\_}eval}{65}{\code {finish_eval}} \entry{fix{\_}srcfile{\_}path}{65}{\code {fix_srcfile_path}} \entry{global{\_}symbol{\_}pipe}{65}{\code {global_symbol_pipe}} \entry{global{\_}symbol{\_}to{\_}cdecl}{66}{\code {global_symbol_to_cdecl}} \entry{hardcode{\_}action}{66}{\code {hardcode_action}} \entry{hardcode{\_}direct}{66}{\code {hardcode_direct}} \entry{hardcode{\_}into{\_}libs}{66}{\code {hardcode_into_libs}} \entry{hardcode{\_}libdir{\_}flag{\_}spec}{66}{\code {hardcode_libdir_flag_spec}} \entry{hardcode{\_}libdir{\_}separator}{66}{\code {hardcode_libdir_separator}} \entry{hardcode{\_}minus{\_}L}{66}{\code {hardcode_minus_L}} \entry{hardcode{\_}shlibpath{\_}var}{66}{\code {hardcode_shlibpath_var}} \entry{host}{66}{\code {host}} \entry{host{\_}alias}{66}{\code {host_alias}} \entry{include{\_}expsyms}{66}{\code {include_expsyms}} \entry{libext}{67}{\code {libext}} \entry{libname{\_}spec}{67}{\code {libname_spec}} \entry{library{\_}names{\_}spec}{67}{\code {library_names_spec}} \entry{link{\_}all{\_}deplibs}{67}{\code {link_all_deplibs}} \entry{link{\_}static{\_}flag}{67}{\code {link_static_flag}} \entry{need{\_}lib{\_}prefix}{67}{\code {need_lib_prefix}} \entry{need{\_}version}{67}{\code {need_version}} \entry{need{\_}locks}{67}{\code {need_locks}} \entry{no{\_}builtin{\_}flag}{67}{\code {no_builtin_flag}} \entry{no{\_}undefined{\_}flag}{67}{\code {no_undefined_flag}} \entry{objdir}{67}{\code {objdir}} \entry{objext}{68}{\code {objext}} \entry{pic{\_}flag}{68}{\code {pic_flag}} \entry{postinstall{\_}cmds}{68}{\code {postinstall_cmds}} \entry{old{\_}postinstall{\_}cmds}{68}{\code {old_postinstall_cmds}} \entry{postuninstall{\_}cmds}{68}{\code {postuninstall_cmds}} \entry{old{\_}postuninstall{\_}cmds}{68}{\code {old_postuninstall_cmds}} \entry{reload{\_}cmds}{68}{\code {reload_cmds}} \entry{reload{\_}flag}{68}{\code {reload_flag}} \entry{runpath{\_}var}{68}{\code {runpath_var}} \entry{shlibpath{\_}overrides{\_}runpath}{68}{\code {shlibpath_overrides_runpath}} \entry{shlibpath{\_}var}{68}{\code {shlibpath_var}} \entry{soname{\_}spec}{68}{\code {soname_spec}} \entry{striplib}{68}{\code {striplib}} \entry{old{\_}striplib}{68}{\code {old_striplib}} \entry{sys{\_}lib{\_}dlsearch{\_}path{\_}spec}{68}{\code {sys_lib_dlsearch_path_spec}} \entry{sys{\_}lib{\_}search{\_}path{\_}spec}{69}{\code {sys_lib_search_path_spec}} \entry{thread{\_}safe{\_}flag{\_}spec}{69}{\code {thread_safe_flag_spec}} \entry{version{\_}type}{69}{\code {version_type}} \entry{whole{\_}archive{\_}flag{\_}spec}{69}{\code {whole_archive_flag_spec}} \entry{wl}{69}{\code {wl}} .