⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 todo

📁 GNU libtool 是一个通用库支持脚本
💻
字号:
In the near future:********************* Port the migration of all code from ltconfig into libtool.m4 to themulti-language-branch, so that CVS automake can remove its referencesto ltconfig.* Fix the following bugs in libltdl: - error reporting of tryall_dlopen():   if the file actually doesn't exist (stat() fails or it wasn't dlpreopened)   -> report `file not found'   if it cannot be loaded (e.g. due to missing dependencies)   -> report dlerror    open question: which error should be reported if all dlloaders fail    or if a specific module type can only be loaded by one of them, how report its dlerror?   Also report dlerror() for dlclose and dlsym if available - Make sure that the dependency_libs of a dlpreopened module won't be loaded. * Check whether the version of libtool.m4 is compatible withltconfig/ltmain.sh.  Meanwhile, the recommended approach fordevelopers using automake is to insert libtool.m4 in acinclude.m4.* We could have an option to hardcode paths into libraries, as well asbinaries: `... -Wl,-soname -Wl,/tmp/libtest.so.0 ...'.  This is notpossible on all platforms, and is in part obviated by the ability oflinking libtool libraries specified with -lname, but it might stillbe desirable.* Lists of exported symbols should be stored in the pseudo libraryso that the size of lt_preloaded_symbols can be reduced.* Have some option to tell libtool not to include -L flags that pointinto a certain tree in the dependence list of an installed library.For example: -L-$top_builddir would let one link with libtoollibraries in sibling subdirectories within a project, using the -Lnotation, without getting builddir pathnames ever mentioned in .lafiles that get installed.* Eric Lemings <elemings@cyberia.lemings.com> writes:  Because of a growing number of config scripts for packages in GNOME 1.2  (e.g. glib-config, xml-config, orbit-config. etc), development of GNOME  2.0 spawned a separate tool called pkg-config that allows all packages  to use one tool rather than several different scripts to query compile  flags, link flags, and other configuration data.  The functionality of pkg-config seems to me to have a lot of overlap  with the goals of libtool.  I was wondering if anyone had considered  adding an eighth mode to libtool that just queries the installed  library for the same information that pkg-config provides.  Since  most packages that use pkg-config also use libtool, I think this  would be a good way to reduce maintainer and developer dependencies.In the future:*************** The definitions for AC_LTDL_SHLIBEXT, AC_LTDL_SHLIBPATH andAC_LTDL_SYSSEARCHPATH  should not rely on the _LT_AC_LTCONFIG_HACKmacro.  This involves moving the code which sets the variableslibrary_names_spec, shlibpath_var and sys_lib_dlsearch_path_spec frominto a separate macro, and AC_REQUIRING the newly extracted macro in therespective ltdl.m4 macros.* Godmar Back writes:  libltdl uses such stdio functions as fopen, fgets, feof, fclose, and others.  These functions are not async-signal-safe. While this does not make   libltdl unusable, it restricts its usefulness and puts an   unnecessary burden on the user.  As a remedy, I'd recommend to replace those functions with functions  that POSIX says are async-signal-safe, such as open, read, close.  This will require you to handle interrupted system calls and implement  fgets, but the former isn't hard and there's plenty of implementations  out from which you can steal the latter.  I believe relying on async-signal-safe functions to the greatest extent  possible would greatly improve libltdl's ability to be embedded in and   used by other systems.* Arrange that EXEEXT suffixes are stripped from wrapper script namesonly when needed, and that a timestamp file or a wrapper program iscreated with the EXEEXT suffix, so that `make' doesn't build it everytime.* Figure out how to use data items in dlls with win32.The difficult part is compiling each object which will be linked with animport lib differently than if it will be linked with a static lib.  This willalmost definitely require that automake pass some hints about linkage in toeach object compilation line.* jeffdb@goodnet.com writes	all you need to do for mutually dependent	.dll's is to create an implib from a .def fileso it appears that we might need to detect and handle mutual dependenciesspecially on win32 =(O|* If not cross-compiling, have the static flag test run the resultingbinary to make sure everything works.* Implement full multi-language support.  Currently, this is only forC++, but there are beginnings of this in the manual (Other Languages).This includes writing libtool not to be so dependent on the compilerused to configure it.We especially need this for C++ linking, for which libtool currentlydoes not handle static constructors properly, even on operatingsystems that support them.  ``Don't use static constructors'' is nolonger a satisfactory answer.* Another form of convenience library is to have undocumented utilitylibraries, where only the shared version is installed.* We could use libtool object convenience libraries that resolvesymbols to be included in a libtool archive.  This would require somesort of -whole-archive option, as well.* Currently, convenience libraries (.al) are built from .lo objects,except when --disable-shared.  When we can build both shared andstatic libraries, we should probably create a .al out of .lo objectsand also a .a out of .o objects.  The .al would only be used to createshared libraries, whereas the .a would be used for creating staticlibraries and programs.  We could also explicitly support `empty'convenience libraries, that behave as macros that expand to a set of-Rs, -Ls and -ls switches.* We should include tests with convenience libraries and reloadableobjects in the testsuite.* Try to find a work-around for -[all-]static and libltdl on platformsthat will fail to find dlopening functions in this case.  Maybecreating an alternate libltdl that provides only for dlpreopening, orcreating an additional static library to provide dummy implementationsof the functions that can't be linked statically.  This could hardlybe made completely transparent, though.* Need to finalize the documentation, and give a specification of`.la' files so that people can depend on their format.  This would bea good thing to put before the maintainance notes.* Filenames containing shell meta-characters are not properly handledby libtool.  Compiling a file named "a;b.c", for example, fails.* We could introduce a mechanism to allow for soname rewriting, toease multi-libc support.  Installers could specify a prefix, suffix orsed command to modify the soname, and libtool would create thecorresponding link.  This would allow for rebuilding a library withthe same version number, but depending on different versions of libc,for example.  In the future, we might even have an option to encodethe sonames of all dependencies of a library into its soname.* The current implementation of libltdl in a subdirectory doesn't workproperly with AC_CONFIG_AUX_DIR using projects.Things to think about:*********************** Maybe implement full support for other orthogonal library types(libhello_g, libhello_p, 64 vs 32-bit ABI's, etc).  Make these typesconfigurable.* Perhaps the iuse of libltdl could be made cleaner by allowingregistration of hook functions to call at various points.  This wouldhopefully free the user from having to maintain a parallel modulelist with user data.  This would likely involve being able to carryadditional per user module data in the lt_dlmodule structure -- perhapsin the form of an associative array keyed by user name?

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -