Kevin P. Fleming
kpfleming at linuxfromscratch.org
Sun Oct 12 18:14:29 PDT 2003
Some significant changes this time:
- directory structure is back to the original layout
- there is now only a single Makefile.am at the top of the tree, the
build no longer uses recursive make invocations. this Makefile.am is
produced by a bootstrap script (which is not in the tarball but will
be in CVS), so the Makefile itself does not have to be manually edited
as source files are added/removed/renamed. using a single Makefile
also allows for parallel builds to work more efficiently.
- src/handlers.c has been converted to use ltdl.c (libtool's dynamic
loading library) instead of libdl directly, but doing this required:
- modules with hyphens in their names (new-*) have been renamed to use
underscores instead. part of the preparation for allowing static
builds is to prefix all exported symbols from the plugin modules with
their module name (which is done by a new macro in
src/include/nALFS.h), and hyphens are not legal characters in ANSI C
identifiers. since the modules will be merged back together in the
near future anyway, this will not be a big problem. with this done, it
is now possible to:
- static builds of nALFS are available with this version. the "simple"
static build requires the addition of "--enable-static
--disable-shared" to the configure command line. this produces an
nALFS executable with the library and all handlers included in the
binary itself, but the binary will still depend on outside shared
libraries (libc, libxml2, libcurl/libssl if they are used, etc). to
make a completely static binary, use LDFLAGS="-all-static" on the make
command line (in addition to the configure options above). this
produces an nALFS binary that needs no shared libraries at all.
compiling this way will produce some warnings, because nALFS (and
libxml2, libcurl) uses some glibc functions that are in libnss, which
means that even a static nALFS still needs those glibc runtime
libraries to be around.
There are some minor things left on my to-do list for this version,
but I think it's getting close to being ready to put in CVS, assuming
some people can test it and don't report problems :-) I have run some
small builds with it (in both shared and static mode) and it seems to
operate fine here, but I'm anxious to hear how it works for others.
More information about the alfs-discuss