On 2025/12/12 3:28 PM, Andreas Metzler via Exim-users wrote:
I have been playing around with dlopened lookups modules, but they do
not end up being linked against the respective library:

make[2]: Entering directory '/tmp/EXIM4/exim4/build-Linux-x86_64/lookups'
cc -shared sqlite.c
cc  -lsqlite3  -DDYNLOOKUP -shared -rdynamic -fPIC -O -D_FILE_OFFSET_BITS=64 
-D_LARGEFILE_SOURCE -I/usr/include/p11-kit-1  -I/usr/include/p11-kit-1    
sqlite.c -o sqlite.so

Even after re-ordering that cmdline I get "NEEDED" items.


My test build:

$ make FULLECHO=''
cc -shared sqlite.c
cc -DDYNLOOKUP -shared -rdynamic -fPIC -O -D_FILE_OFFSET_BITS=64 
-D_LARGEFILE_SOURCE -Werror=implicit-function-declaration -Wmaybe-uninitialized 
-Wunused-value -fPIC -Wpointer-sign  -DDYNLOOKUP -shared -rdynamic -fPIC -O 
-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE 
-Werror=implicit-function-declaration -Wmaybe-uninitialized -Wunused-value 
-fPIC -Wpointer-sign   sqlite.c -lsqlite3 -o sqlite.so
[...]
$ objdump -p ./build-Linux-x86_64/dynmodules/sqlite_lookup.so | grep NEEDED
  NEEDED               libsqlite3.so.0
  NEEDED               libc.so.6
$


[ I'm not sure how you managed to *not* get libsqlite3.so needed; any way I 
tried to
  force that resulted in the testsuite claiming that sqlite was not included - 
I think
  because the "exim -bV" stage did not show it in the "lookups (dynamic)" 
section, in
  turn because the modload faied.

  But with that pair of NEEDED items, the testcase for sqlite lookups passes 
(modulo
  debug output differences related to all the modules I'd built).
]


So, while I'm not averse to shuffling that line for style, I think it has no 
effect.

--
Cheers,
  Jeremy

--
## subscription configuration (requires account):
##   https://lists.exim.org/mailman3/postorius/lists/exim-users.lists.exim.org/
## unsubscribe (doesn't require an account):
##   [email protected]
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/

Reply via email to