mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-04-30 03:40:34 +02:00
|
||
---|---|---|
.. | ||
upstream | ||
.cvsignore | ||
ChangeLog | ||
COPYING.LIB | ||
guile-ltdl.c | ||
guile-ltdl.h | ||
Makefile.am | ||
raw-ltdl.c | ||
raw-ltdl.h | ||
README |
-*-text-*- This subtree contains a locally modified version of libltdl from libtool. guile-ltdl.h describes the interface that Guile actually uses. guile-ltdl.c is the main source file which directly #includes raw-ltdl.h and raw-ltdl.c The two raw-* files are Guile's patched versions of the upstream/ltdl.* files, the latter of which are the original libtool source from which the current raw-* files are derived. We use this unusual inclusion trick, along with a few modifications to the raw-* files and some #defines in guile-ltdl.c to allow us to use the upstream source with as few unnecessary changes as possible, while still making all of the upstream symbols non-extern. This means that libguile-ltdl *only* exports the few symbols that Guile actually needs right now. In general libguile-ltdl exports the needed libltdl functions and data structures with scm_ prepended to them, so we have scm_lt_dlinit, etc. The upstream/* subdirectory contains the clean upstream source from which the raw-ltdl.h and raw-ltdl.c files were derived, and an automatically generated diff from the upstream. Note that during the diff process we automatically remove a set of changes we've made to the upstream source (mostly related to making all of the upstream exports static) that are uninteresting outside of Guile. We hope that taking these steps will make it easier to fold our changes back into the main version of libltdl, and in fact, it looks like most, if not all of our original serious bug fixes have been incorporated upstream, leaving essentially only the scoping related changes mentioned above in our filtered upstream/*.diff files. The current upstream/* source is from libtool version 1.5.