[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

dlpreopen with noinst_LTLIBRARIES; removed lt_dlsymlist mentioned in doc

From: Дилян Палаузов
Subject: dlpreopen with noinst_LTLIBRARIES; removed lt_dlsymlist mentioned in doc/libtool.texi
Date: Wed, 17 Sep 2008 13:34:05 +0200
User-agent: Thunderbird (Windows/20080708)


I am using libtool 2.2.6, autoconf 2.63 and automake 1.10.1 . I want to write plugins for a programme, that are dlpreopen-ed. I achived this by putting
        pkglib_LTLIBRARIES = plugin1.la, plugin2.la
in Makefile.am . In consequence plugin1 and plugin2 get installed. Since the modules are dlpreopened, my application works perfectly without accessing the the installed plugins. Therefore I want to NOT install the libraries. To achieve this, I replaced in Makefile.am the above line with
        noinst_LTLIBRARIES = plugin1.la, plugin2.la
and autoreconf-ed. However, now libtool reports during make-ing:

make  all-am
make[1]: Entering directory `/root/proj/mailing-lists-sieve'
/bin/bash ./libtool --tag=CC --mode=link gcc -Wall -Wextra -O3 -march=native -export-dynamic -lglib-2.0 -o src/mailing-lists-sieve src_mailing_lists_sieve-generators.o -dlpreopen src/generators/sample.la -lltdl libtool: link: only libraries may -dlpreopen a convenience library: `src/generators/sample.la'
make[1]: *** [src/mailing-lists-sieve] Error 1
make[1]: Leaving directory `/root/proj/mailing-lists-sieve'
make: *** [all] Error 2

* How would you recommend to both dlpreopen the libraries, and not install them with `make install`? As a side note, my programm does not come with its own copy of libltdl, it requires it to be presented on the host system (configure.ac AC_LIBTOOL_DLOPEN LT_INIT([disable-shared, dlopen])

In regards the documentation of libtool 2.2.6, in Section Dlopened Modules, Chapter Dlpreopening some internals are mentioned

 -- Structure: struct lt_dlsymbol { const char *NAME; void *ADDRESS; }

 -- Structure: struct lt_dlsymlist { const char *ORIGINATOR;
          const lt_dlsymbol SYMBOLS[]; }

 -- Variable: const lt_dlsymlist * lt_preloaded_symbols
     An array of LT_SYMBOL structures, representing all the preloaded

* ltdl.h has no definition for lt_dlsymbol, since libtool 1.9d, perhaps it shall disappear from the documentation, too.

* "LT_SYMBOL" strucres is nowhere else mentioned and defined. Perhaps you meant "array of struct lt_dlsymlist"?

* Moreover, include/ltdl.h defines that structure lt_dlsymlist with
        typedef struct {
          const char *name;
          void       *address;
        } lt_dlsymlist;
, where "name" and "address" are not capitalized, in contrary to the documentation.

Thanks in advance for your feedback,
        Дилян Палаузов

reply via email to

[Prev in Thread] Current Thread [Next in Thread]