Hello All Hello Randall
As I promised I am back to write whats wrong when I dont use the -ldl option
in the makefile in the popper directory.
I have 2 slackwares here a 10.20 and an 8.10 and they show the same
behaviour. Both have openssl 0.9.8g intalled in /usr/local/ssl and i
configure qpopper with these options
./configure --with-openssl --enable-specialauth --enable-timing --enable-home-dir-mail=Mailbox
--enable-keep-temp-drop -enable-log-facility=LOG_LOCAL1 --enable-log-login
--enable-shy --enable-temp-drop-dir=/var/spool/mail/
when I type make it compiles ok but the problem is with linking. Here it
goes
gcc -c -I.. -I. -I.. -I../popper \
-I../common -g -O2 -DHAVE_CONFIG_H -DLINUX -DUNIX charmangle.c -o
charmangle.o
ar -r libmangle.a mime.o mangle.o enriched.o striphtml.o lineend.o etags.o
charmangle.o
ar: creating libmangle.a
make[2]: Leaving directory `/home/src/qpopper4.0.13/mmangle'
cd ../common && make all
make[2]: Entering directory `/home/src/qpopper4.0.13/common'
gcc -c -I.. -I. -I.. -I../popper \
-g -O2 -DHAVE_CONFIG_H -DLINUX -DUNIX flock.c -o flock.o
gcc -c -I.. -I. -I.. -I../popper \
-g -O2 -DHAVE_CONFIG_H -DLINUX -DUNIX maillock.c -o maillock.o
gcc -c -I.. -I. -I.. -I../popper \
-g -O2 -DHAVE_CONFIG_H -DLINUX -DUNIX logit.c -o logit.o
gcc -c -I.. -I. -I.. -I../popper \
-g -O2 -DHAVE_CONFIG_H -DLINUX -DUNIX snprintf.c -o snprintf.o
gcc -c -I.. -I. -I.. -I../popper \
-g -O2 -DHAVE_CONFIG_H -DLINUX -DUNIX string_util.c -o string_util.o
gcc -c -I.. -I. -I.. -I../popper \
-g -O2 -DHAVE_CONFIG_H -DLINUX -DUNIX check_group.c -o check_group.o
gcc -c -I.. -I. -I.. -I../popper \
-g -O2 -DHAVE_CONFIG_H -DLINUX -DUNIX utils.c -o utils.o
ar -r libcommon.a flock.o maillock.o logit.o snprintf.o string_util.o
check_group.o utils.o
ar: creating libcommon.a
make[2]: Leaving directory `/home/src/qpopper4.0.13/common'
gcc pop_dele.o pop_dropcopy.o pop_get_command.o pop_get_subcommand.o
pop_init.o pop_last.o pop_list.o pop_log.o pop_lower.o pop_msg.o pop_parse.o
pop_pass.o pop_quit.o pop_rset.o pop_send.o pop_stat.o pop_updt.o pop_user.o
pop_xtnd.o pop_xmit.o popper.o pop_bull.o xtnd_xlst.o pop_uidl.o mktemp.o
pop_rpop.o pop_apop.o md5.o pop_auth.o pop_pope.o pop_extend.o scram.o
hmac.o base64.o pop_util.o get_sub_opt.o msg_ptr.o drac.o pop_config.o
pop_tls.o pop_tls_openssl.o pop_tls_sslplus.o sslplus_utils.o main.o
pop_cache.o genpath.o -o popper ../mmangle/libmangle.a \
-I../common ../common/libcommon.a \
-lcrypt -L/usr/local/ssl/lib -lssl -lcrypto
/usr/local/ssl/lib/libcrypto.a(dso_dlfcn.o)(.text+0x35): In function
`dlfcn_load':
: undefined reference to `dlopen'
/usr/local/ssl/lib/libcrypto.a(dso_dlfcn.o)(.text+0x95): In function
`dlfcn_load':
: undefined reference to `dlclose'
/usr/local/ssl/lib/libcrypto.a(dso_dlfcn.o)(.text+0xbc): In function
`dlfcn_load':
: undefined reference to `dlerror'
/usr/local/ssl/lib/libcrypto.a(dso_dlfcn.o)(.text+0x147): In function
`dlfcn_bind_var':
: undefined reference to `dlsym'
/usr/local/ssl/lib/libcrypto.a(dso_dlfcn.o)(.text+0x172): In function
`dlfcn_bind_var':
: undefined reference to `dlerror'
/usr/local/ssl/lib/libcrypto.a(dso_dlfcn.o)(.text+0x237): In function
`dlfcn_bind_func':
: undefined reference to `dlsym'
/usr/local/ssl/lib/libcrypto.a(dso_dlfcn.o)(.text+0x262): In function
`dlfcn_bind_func':
: undefined reference to `dlerror'
/usr/local/ssl/lib/libcrypto.a(dso_dlfcn.o)(.text+0x50b): In function
`dlfcn_unload':
: undefined reference to `dlclose'
collect2: ld returned 1 exit status
make[1]: *** [popper] Error 1
make[1]: Leaving directory `/home/src/qpopper4.0.13/popper'
make: *** [popper_server] Error 2
When I go to the popper directory, thats .../qpopper/4.0.13/popper and I vi
the Makefile there in the LIBS section and I add -ldl switch it works
fluently. make
cd ./popper && make all
make[1]: Entering directory `/home/src/qpopper4.0.13/popper'
cd ../mmangle && make all
make[2]: Entering directory `/home/src/qpopper4.0.13/mmangle'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/home/src/qpopper4.0.13/mmangle'
cd ../common && make all
make[2]: Entering directory `/home/src/qpopper4.0.13/common'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/home/src/qpopper4.0.13/common'
gcc pop_dele.o pop_dropcopy.o pop_get_command.o pop_get_subcommand.o
pop_init.o pop_last.o pop_list.o pop_log.o pop_lower.o pop_msg.o pop_parse.o
pop_pass.o pop_quit.o pop_rset.o pop_send.o pop_stat.o pop_updt.o pop_user.o
pop_xtnd.o pop_xmit.o popper.o pop_bull.o xtnd_xlst.o pop_uidl.o mktemp.o
pop_rpop.o pop_apop.o md5.o pop_auth.o pop_pope.o pop_extend.o scram.o
hmac.o base64.o pop_util.o get_sub_opt.o msg_ptr.o drac.o pop_config.o
pop_tls.o pop_tls_openssl.o pop_tls_sslplus.o sslplus_utils.o main.o
pop_cache.o genpath.o -o popper ../mmangle/libmangle.a \
-I../common ../common/libcommon.a \
-lcrypt -L/usr/local/ssl/lib -lssl -lcrypto -ldl
make[1]: Leaving directory `/home/src/qpopper4.0.13/popper
Thats the problem. If you can solve it or if you want more infomation about
the systems I administrate please tell me
Thanks in advance
Giannis Mantzouranis