[devel] help libtool

Denis Kuznetsov =?iso-8859-1?q?kde_=CE=C1_kde=2Ekiev=2Eua?=
Пт Мар 6 15:03:23 MSK 2009


On Friday 06 March 2009 12:48:43 Damir Shayhutdinov wrote:
> Ошибки линкера - в студию!
libtool --tag=CC --mode=link x86_64-alt-linux-gcc   -o radeapclient 
radeapclient.lo 
libeap/libfreeradius-eap.la -lnsl -lresolv  -lpthread -lcrypto -lssl -lcrypto
x86_64-alt-linux-gcc -o .libs/radeapclient .libs/radeapclient.o  
libeap/.libs/libfreeradius-eap.so -lnsl -lresolv -lpthread -lssl -lcrypto   -Wl,--rpath -Wl,/usr/lib64/freeradius
libeap/.libs/libfreeradius-eap.so: undefined reference to `SSL_set_ex_data'
libeap/.libs/libfreeradius-eap.so: undefined reference to `SSL_set_bio'
libeap/.libs/libfreeradius-eap.so: undefined reference to `BIO_s_mem'
libeap/.libs/libfreeradius-eap.so: undefined reference to `HMAC_CTX_init'
libeap/.libs/libfreeradius-eap.so: undefined reference to 
`SSL_SESSION_set_ex_data'
libeap/.libs/libfreeradius-eap.so: undefined reference to `SSL_ctrl'
libeap/.libs/libfreeradius-eap.so: undefined reference to `HMAC_Update'
libeap/.libs/libfreeradius-eap.so: undefined reference to `SSL_state'
libeap/.libs/libfreeradius-eap.so: undefined reference to 
`SSL_set_info_callback'
libeap/.libs/libfreeradius-eap.so: undefined reference to `BIO_new'
libeap/.libs/libfreeradius-eap.so: undefined reference to `HMAC_Final'
libeap/.libs/libfreeradius-eap.so: undefined reference to `SSL_free'
libeap/.libs/libfreeradius-eap.so: undefined reference to 
`SSL_CTX_remove_session'
libeap/.libs/libfreeradius-eap.so: undefined reference to `BIO_test_flags'
libeap/.libs/libfreeradius-eap.so: undefined reference to 
`SSL_set_accept_state'
libeap/.libs/libfreeradius-eap.so: undefined reference to `HMAC_Init_ex'
libeap/.libs/libfreeradius-eap.so: undefined reference to `SSL_read'
libeap/.libs/libfreeradius-eap.so: undefined reference to `SSL_want'
libeap/.libs/libfreeradius-eap.so: undefined reference to 
`SSL_SESSION_get_ex_data'
libeap/.libs/libfreeradius-eap.so: undefined reference to `HMAC_CTX_cleanup'
libeap/.libs/libfreeradius-eap.so: undefined reference to 
`SSL_alert_desc_string_long'
libeap/.libs/libfreeradius-eap.so: undefined reference to `ERR_get_error'
libeap/.libs/libfreeradius-eap.so: undefined reference to 
`SSL_state_string_long'
libeap/.libs/libfreeradius-eap.so: undefined reference to `ERR_error_string'
libeap/.libs/libfreeradius-eap.so: undefined reference to 
`SSL_alert_type_string_long'
libeap/.libs/libfreeradius-eap.so: undefined reference to `BIO_write'
libeap/.libs/libfreeradius-eap.so: undefined reference to `SSL_get_ex_data'
libeap/.libs/libfreeradius-eap.so: undefined reference to `SSL_new'
libeap/.libs/libfreeradius-eap.so: undefined reference to `SSL_write'
libeap/.libs/libfreeradius-eap.so: undefined reference to 
`SSL_set_quiet_shutdown'
libeap/.libs/libfreeradius-eap.so: undefined reference to 
`SSL_set_msg_callback'
libeap/.libs/libfreeradius-eap.so: undefined reference to `BIO_ctrl_pending'
libeap/.libs/libfreeradius-eap.so: undefined reference to `SSL_shutdown'
libeap/.libs/libfreeradius-eap.so: undefined reference to `BIO_read'
libeap/.libs/libfreeradius-eap.so: undefined reference to `EVP_md5'
libeap/.libs/libfreeradius-eap.so: undefined reference to `EVP_sha1'
libeap/.libs/libfreeradius-eap.so: undefined reference to `SSL_get_error'
libeap/.libs/libfreeradius-eap.so: undefined reference to `EVP_MD_size'
collect2: ld returned 1 exit status
make: *** [radeapclient] Error 1
>
В данный момент решаю проблему костылем в виде:
--- freeradius-server-2.1.3/src/modules/rlm_eap/Makefile.in     2008-12-05 
16:37:56 +0000
+++ freeradius-server-2.1.3-alt1/src/modules/rlm_eap/Makefile.in        
2009-03-06 10:39:50 +0000
@@ -30,7 +30,7 @@
 $(LT_OBJS): $(HEADERS)

 radeapclient: radeapclient.lo $(CLIENTLIBS)
-       $(LIBTOOL) --mode=link $(CC) $(LDFLAGS) $(RLM_LDFLAGS) -o radeapclient 
radeapclient.lo $(CLIENTLIBS) $(LIBS) $(OPENSSL_LIBS)
+       $(LIBTOOL) --mode=link $(CC) $(LDFLAGS) -Wl,--no-as-need  
$(RLM_LDFLAGS) -o radeapclient radeapclient.lo $(CLIENTLIBS) $(LIBS) 
$(OPENSSL_LIBS)

 radeapclient.lo: radeapclient.c $(HEADERS)
        $(LIBTOOL) --mode=compile $(CC) $(CFLAGS) $(RLM_CFLAGS) -c 
radeapclient.c

Но это всетаки не дело :(
> > Собственно вопрос что можно сказать libtool что-бы он не пытался
> > впереть  -Wl,--rpath -Wl,/usr/lib64/freeradius в конце строки запуска
> > gcc, или в идеале правильно размещал эти параметры, т.е. до -llib ?
>
> Прочитайте внимательнее в документации, что такое -rpath, и почему он
> не влияет на недолинкованность библиотек.
>
> > За ранее спасибо.
> > Понимаю что я чайник.
>
> Раннее пожалуйста. Приведите текст ошибки полностью.
> _______________________________________________
> Devel mailing list
> Devel на lists.altlinux.org
> https://lists.altlinux.org/mailman/listinfo/devel



-- 
Denis Kuznetsov


Подробная информация о списке рассылки Devel