Bugzilla – Bug 7098
myproxy configure test for globus_gsi_proxy_handle_set_extensions fails
Last modified: 2011-02-28 09:06:58
You need to log in before you can comment on or make changes to this bug.
Lukasz Lacinski reports: When I configured MyProxy server built from gt5.0.2-all-source- installer.tar.bz2 and I started it I got the message: eltoro07:~# myproxy-server -c /etc/grid-security/myproxy- server.ext.config -d myproxy-server v5.2 22 Jun 2010 PAM OCSP starting at Fri Sep 3 07:11:18 2010 reading configuration file /etc/grid-security/myproxy-server.ext.config proxy_extapp is configured in myproxy-server.config but the myproxy- server is linked with GSI libraries (prior to GT 4.2.0) without extension support. Error parsing configuration file /etc/grid-security/ myproxy-server.ext.config Exiting. The log file gt5.0.2-all-source-installer/source/trees/myproxy/ config.log:1028-1034 is: configure:5033: checking for library containing globus_gsi_proxy_handle_set_extensions configure:5063: /usr/bin/gcc -o conftest -g -Wall -I/usr/local/ packages/globus-5.0.2//include -I/usr/local/packages/globus-5.0.2// include/gcc32dbg -L/usr/local/packages/globus-5.0.2//lib conftest.c /tmp/cciD9n4r.o: In function `main': /home/globus/packages/sources/gt5.0.2-all-source-installer/source- trees/myproxy/conftest.c:40: undefined reference to `globus_gsi_proxy_handle_set_extensions' collect2: ld returned 1 exit status configure:5069: $? = 1 It seems to me that the option -lglobus_gsi_proxy_core_gcc32dbg should be added when conftest.c is compiled.
I'm unable to reproduce this problem with GT 5.0.1 or GT 5.0.2 on Debian. I tried like this: $ cd gt5.0.2-all-source-installer $ ./configure --prefix=$GLOBUS_LOCATION --with-buildopts="-verbose" $ make gsi-myproxy postinstall 2>&1 > install.log & My install.log contains: checking for library containing globus_gsi_proxy_handle_set_extensions... -lglobus_gsi_proxy_core_gcc32dbg and -DHAVE_GLOBUS_GSI_PROXY_HANDLE_SET_EXTENSIONS=1 So I think I need more information from Lukasz on how to reproduce it.
If LD_LIBRARY_PATH is not set to $GLOBUS_LOCATION/lib where $GLOBUS_LOCATION is a previous MyProxy installation then gt5.0.2-all-source-installer/source-trees/myproxy/config.log:1028-1219 is configure:5033: checking for library containing globus_gsi_proxy_handle_set_extensions configure:5063: /usr/bin/gcc -o conftest -g -Wall -I/usr/local/packages/globus-5.0.2//include -I/usr/local/packages/globus-5.0.2//include/gcc32dbg -L/usr/local/packages/globus-5.0.2//lib conftest.c >&5 /tmp/cc0PUMRB.o: In function `main': /home/globus/packages/sources/gt5.0.2-all-source-installer/source-trees/myproxy/conftest.c:40: undefined reference to `globus_gsi_proxy_handle_set_extensions' collect2: ld returned 1 exit status configure:5069: $? = 1 configure: failed program was: | /* confdefs.h. */ | | #define PACKAGE_NAME "" | #define PACKAGE_TARNAME "" | #define PACKAGE_VERSION "" | #define PACKAGE_STRING "" | #define PACKAGE_BUGREPORT "" | #define PACKAGE "myproxy" | #define VERSION "5.2" | #define STDC_HEADERS 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_MEMORY_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_REGEX_H 1 | #define HAVE_REGCOMP 1 | #define HAVE_SETENV 1 | #define HAVE_UNSETENV 1 | #define HAVE_GETOPT_H 1 | #define HAVE_GETOPT_LONG 1 | #define HAVE_SOCKLEN_T 1 | #define HAVE_DECL_FACILITYNAMES 1 | /* end confdefs.h. */ | | /* Override any gcc2 internal prototype to avoid an error. */ | #ifdef __cplusplus | extern "C" | #endif | /* We use char because int might match the return type of a gcc2 | builtin and then its argument prototype would still apply. */ | char globus_gsi_proxy_handle_set_extensions (); | int | main () | { | globus_gsi_proxy_handle_set_extensions (); | ; | return 0; | } configure:5118: /usr/bin/gcc -o conftest -g -Wall -I/usr/local/packages/globus-5.0.2//include -I/usr/local/packages/globus-5.0.2//include/gcc32dbg -L/usr/local/packages/globus-5.0.2//lib conftest.c -lglobus_gsi_proxy_core >&5 /usr/bin/ld: cannot find -lglobus_gsi_proxy_core collect2: ld returned 1 exit status configure:5124: $? = 1 configure: failed program was: | /* confdefs.h. */ | | #define PACKAGE_NAME "" | #define PACKAGE_TARNAME "" | #define PACKAGE_VERSION "" | #define PACKAGE_STRING "" | #define PACKAGE_BUGREPORT "" | #define PACKAGE "myproxy" | #define VERSION "5.2" | #define STDC_HEADERS 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_MEMORY_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_REGEX_H 1 | #define HAVE_REGCOMP 1 | #define HAVE_SETENV 1 | #define HAVE_UNSETENV 1 | #define HAVE_GETOPT_H 1 | #define HAVE_GETOPT_LONG 1 | #define HAVE_SOCKLEN_T 1 | #define HAVE_DECL_FACILITYNAMES 1 | /* end confdefs.h. */ | | /* Override any gcc2 internal prototype to avoid an error. */ | #ifdef __cplusplus | extern "C" | #endif | /* We use char because int might match the return type of a gcc2 | builtin and then its argument prototype would still apply. */ | char globus_gsi_proxy_handle_set_extensions (); | int | main () | { | globus_gsi_proxy_handle_set_extensions (); | ; | return 0; | } configure:5118: /usr/bin/gcc -o conftest -g -Wall -I/usr/local/packages/globus-5.0.2//include -I/usr/local/packages/globus-5.0.2//include/gcc32dbg -L/usr/local/packages/globus-5.0.2//lib conftest.c -lglobus_gsi_proxy_core_gcc32dbg >&5 /usr/bin/ld: warning: libglobus_gsi_credential_gcc32dbg.so.0, needed by /usr/local/packages/globus-5.0.2//lib/libglobus_gsi_proxy_core_gcc32dbg.so, not found (try using -rpath or -rpath-link) /usr/bin/ld: warning: libglobus_gsi_callback_gcc32dbg.so.0, needed by /usr/local/packages/globus-5.0.2//lib/libglobus_gsi_proxy_core_gcc32dbg.so, not found (try using -rpath or -rpath-link) /usr/bin/ld: warning: libglobus_oldgaa_gcc32dbg.so.0, needed by /usr/local/packages/globus-5.0.2//lib/libglobus_gsi_proxy_core_gcc32dbg.so, not found (try using -rpath or -rpath-link) /usr/bin/ld: warning: libglobus_gsi_sysconfig_gcc32dbg.so.0, needed by /usr/local/packages/globus-5.0.2//lib/libglobus_gsi_proxy_core_gcc32dbg.so, not found (try using -rpath or -rpath-link) /usr/bin/ld: warning: libglobus_gsi_cert_utils_gcc32dbg.so.0, needed by /usr/local/packages/globus-5.0.2//lib/libglobus_gsi_proxy_core_gcc32dbg.so, not found (try using -rpath or -rpath-link) /usr/bin/ld: warning: libglobus_openssl_gcc32dbg.so.0, needed by /usr/local/packages/globus-5.0.2//lib/libglobus_gsi_proxy_core_gcc32dbg.so, not found (try using -rpath or -rpath-link) /usr/bin/ld: warning: libglobus_openssl_error_gcc32dbg.so.0, needed by /usr/local/packages/globus-5.0.2//lib/libglobus_gsi_proxy_core_gcc32dbg.so, not found (try using -rpath or -rpath-link) /usr/bin/ld: warning: libglobus_proxy_ssl_gcc32dbg.so.0, needed by /usr/local/packages/globus-5.0.2//lib/libglobus_gsi_proxy_core_gcc32dbg.so, not found (try using -rpath or -rpath-link) /usr/bin/ld: warning: libglobus_common_gcc32dbg.so.0, needed by /usr/local/packages/globus-5.0.2//lib/libglobus_gsi_proxy_core_gcc32dbg.so, not found (try using -rpath or -rpath-link) /usr/bin/ld: warning: libltdl_gcc32dbg.so.3, needed by /usr/local/packages/globus-5.0.2//lib/libglobus_gsi_proxy_core_gcc32dbg.so, not found (try using -rpath or -rpath-link) /usr/local/packages/globus-5.0.2//lib/libglobus_gsi_proxy_core_gcc32dbg.so: undefined reference to `PROXYPOLICY_set_policy' /usr/local/packages/globus-5.0.2//lib/libglobus_gsi_proxy_core_gcc32dbg.so: undefined reference to `globus_gsi_cred_handle_init' /usr/local/packages/globus-5.0.2//lib/libglobus_gsi_proxy_core_gcc32dbg.so: undefined reference to `globus_common_create_string' /usr/local/packages/globus-5.0.2//lib/libglobus_gsi_proxy_core_gcc32dbg.so: undefined reference to `globus_gsi_cred_get_cert' /usr/local/packages/globus-5.0.2//lib/libglobus_gsi_proxy_core_gcc32dbg.so: undefined reference to `globus_gsi_cred_handle_destroy' /usr/local/packages/globus-5.0.2//lib/libglobus_gsi_proxy_core_gcc32dbg.so: undefined reference to `PROXYPOLICY_get_policy_language' /usr/local/packages/globus-5.0.2//lib/libglobus_gsi_proxy_core_gcc32dbg.so: undefined reference to `globus_error_construct_error' /usr/local/packages/globus-5.0.2//lib/libglobus_gsi_proxy_core_gcc32dbg.so: undefined reference to `PROXYPOLICY_set_policy_language' /usr/local/packages/globus-5.0.2//lib/libglobus_gsi_proxy_core_gcc32dbg.so: undefined reference to `globus_error_wrap_errno_error' /usr/local/packages/globus-5.0.2//lib/libglobus_gsi_proxy_core_gcc32dbg.so: undefined reference to `PROXYCERTINFO_dup' /usr/local/packages/globus-5.0.2//lib/libglobus_gsi_proxy_core_gcc32dbg.so: undefined reference to `PROXYCERTINFO_print_fp' /usr/local/packages/globus-5.0.2//lib/libglobus_gsi_proxy_core_gcc32dbg.so: undefined reference to `globus_module_getenv' /usr/local/packages/globus-5.0.2//lib/libglobus_gsi_proxy_core_gcc32dbg.so: undefined reference to `PROXYPOLICY_get_policy' /usr/local/packages/globus-5.0.2//lib/libglobus_gsi_proxy_core_gcc32dbg.so: undefined reference to `globus_error_put' /usr/local/packages/globus-5.0.2//lib/libglobus_gsi_proxy_core_gcc32dbg.so: undefined reference to `globus_i_gsi_credential_module' /usr/local/packages/globus-5.0.2//lib/libglobus_gsi_proxy_core_gcc32dbg.so: undefined reference to `globus_i_openssl_module' /usr/local/packages/globus-5.0.2//lib/libglobus_gsi_proxy_core_gcc32dbg.so: undefined reference to `globus_error_get' /usr/local/packages/globus-5.0.2//lib/libglobus_gsi_proxy_core_gcc32dbg.so: undefined reference to `globus_module_activate' /usr/local/packages/globus-5.0.2//lib/libglobus_gsi_proxy_core_gcc32dbg.so: undefined reference to `globus_error_set_long_desc' /usr/local/packages/globus-5.0.2//lib/libglobus_gsi_proxy_core_gcc32dbg.so: undefined reference to `PROXYCERTINFO_set_path_length' /usr/local/packages/globus-5.0.2//lib/libglobus_gsi_proxy_core_gcc32dbg.so: undefined reference to `PROXYCERTINFO_new' /usr/local/packages/globus-5.0.2//lib/libglobus_gsi_proxy_core_gcc32dbg.so: undefined reference to `globus_gsi_cred_set_key' /usr/local/packages/globus-5.0.2//lib/libglobus_gsi_proxy_core_gcc32dbg.so: undefined reference to `globus_gsi_cred_set_cert' /usr/local/packages/globus-5.0.2//lib/libglobus_gsi_proxy_core_gcc32dbg.so: undefined reference to `globus_module_deactivate' /usr/local/packages/globus-5.0.2//lib/libglobus_gsi_proxy_core_gcc32dbg.so: undefined reference to `PROXYPOLICY_new' /usr/local/packages/globus-5.0.2//lib/libglobus_gsi_proxy_core_gcc32dbg.so: undefined reference to `globus_gsi_cred_set_cert_chain' /usr/local/packages/globus-5.0.2//lib/libglobus_gsi_proxy_core_gcc32dbg.so: undefined reference to `globus_gsi_cred_handle_attrs_destroy' /usr/local/packages/globus-5.0.2//lib/libglobus_gsi_proxy_core_gcc32dbg.so: undefined reference to `globus_error_wrap_openssl_error' /usr/local/packages/globus-5.0.2//lib/libglobus_gsi_proxy_core_gcc32dbg.so: undefined reference to `globus_gsi_cred_get_key' /usr/local/packages/globus-5.0.2//lib/libglobus_gsi_proxy_core_gcc32dbg.so: undefined reference to `globus_gsi_cred_handle_attrs_init' /usr/local/packages/globus-5.0.2//lib/libglobus_gsi_proxy_core_gcc32dbg.so: undefined reference to `globus_gsi_cred_get_cert_type' /usr/local/packages/globus-5.0.2//lib/libglobus_gsi_proxy_core_gcc32dbg.so: undefined reference to `PROXYCERTINFO_free' /usr/local/packages/globus-5.0.2//lib/libglobus_gsi_proxy_core_gcc32dbg.so: undefined reference to `PROXYCERTINFO_get_path_length' /usr/local/packages/globus-5.0.2//lib/libglobus_gsi_proxy_core_gcc32dbg.so: undefined reference to `PROXYCERTINFO_get_policy' /usr/local/packages/globus-5.0.2//lib/libglobus_gsi_proxy_core_gcc32dbg.so: undefined reference to `globus_gsi_cred_get_cert_chain' /usr/local/packages/globus-5.0.2//lib/libglobus_gsi_proxy_core_gcc32dbg.so: undefined reference to `globus_common_i18n_get_string' collect2: ld returned 1 exit status configure:5124: $? = 1 configure: failed program was: | /* confdefs.h. */ | | #define PACKAGE_NAME "" | #define PACKAGE_TARNAME "" | #define PACKAGE_VERSION "" | #define PACKAGE_STRING "" | #define PACKAGE_BUGREPORT "" | #define PACKAGE "myproxy" | #define VERSION "5.2" | #define STDC_HEADERS 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_MEMORY_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_REGEX_H 1 | #define HAVE_REGCOMP 1 | #define HAVE_SETENV 1 | #define HAVE_UNSETENV 1 | #define HAVE_GETOPT_H 1 | #define HAVE_GETOPT_LONG 1 | #define HAVE_SOCKLEN_T 1 | #define HAVE_DECL_FACILITYNAMES 1 | /* end confdefs.h. */ | | /* Override any gcc2 internal prototype to avoid an error. */ | #ifdef __cplusplus | extern "C" | #endif | /* We use char because int might match the return type of a gcc2 | builtin and then its argument prototype would still apply. */ | char globus_gsi_proxy_handle_set_extensions (); | int | main () | { | globus_gsi_proxy_handle_set_extensions (); | ; | return 0; | } configure:5152: result: no If LD_LIBRARY_PATH is set to $GLOBUS_LOCATION/lib where $GLOBUS_LOCATION is a previous MyProxy installation then appropriate lines of gt5.0.2-all-source-installer/source-trees/myproxy/config.log are: configure:5033: checking for library containing globus_gsi_proxy_handle_set_extensions configure:5063: /usr/bin/gcc -o conftest -g -Wall -I/usr/local/packages/globus-5.0.2//include -I/usr/local/packages/globus-5.0.2//include/gcc32dbg -L/usr/local/packages/globus-5.0.2//lib conftest.c -lglobus_usage_gcc32dbg >&5 /tmp/ccoWZkAX.o: In function `main': /home/globus/packages/sources/gt5.0.2-all-source-installer/source-trees/myproxy/conftest.c:42: undefined reference to `globus_gsi_proxy_handle_set_extensions' collect2: ld returned 1 exit status configure:5069: $? = 1 configure: failed program was: | /* confdefs.h. */ | | #define PACKAGE_NAME "" | #define PACKAGE_TARNAME "" | #define PACKAGE_VERSION "" | #define PACKAGE_STRING "" | #define PACKAGE_BUGREPORT "" | #define PACKAGE "myproxy" | #define VERSION "5.2" | #define STDC_HEADERS 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_MEMORY_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_REGEX_H 1 | #define HAVE_REGCOMP 1 | #define HAVE_SETENV 1 | #define HAVE_UNSETENV 1 | #define HAVE_GETOPT_H 1 | #define HAVE_GETOPT_LONG 1 | #define HAVE_SOCKLEN_T 1 | #define HAVE_DECL_FACILITYNAMES 1 | #define HAVE_GLOBUS_USAGE 1 | #define HAVE_GLOBUS_USAGE_SEND_ARRAY 1 | /* end confdefs.h. */ | | /* Override any gcc2 internal prototype to avoid an error. */ | #ifdef __cplusplus | extern "C" | #endif | /* We use char because int might match the return type of a gcc2 | builtin and then its argument prototype would still apply. */ | char globus_gsi_proxy_handle_set_extensions (); | int | main () | { | globus_gsi_proxy_handle_set_extensions (); | ; | return 0; | } configure:5118: /usr/bin/gcc -o conftest -g -Wall -I/usr/local/packages/globus-5.0.2//include -I/usr/local/packages/globus-5.0.2//include/gcc32dbg -L/usr/local/packages/globus-5.0.2//lib conftest.c -lglobus_gsi_proxy_core -lglobus_usage_gcc32dbg >&5 /usr/bin/ld: cannot find -lglobus_gsi_proxy_core collect2: ld returned 1 exit status configure:5124: $? = 1 configure: failed program was: | /* confdefs.h. */ | | #define PACKAGE_NAME "" | #define PACKAGE_TARNAME "" | #define PACKAGE_VERSION "" | #define PACKAGE_STRING "" | #define PACKAGE_BUGREPORT "" | #define PACKAGE "myproxy" | #define VERSION "5.2" | #define STDC_HEADERS 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_MEMORY_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_REGEX_H 1 | #define HAVE_REGCOMP 1 | #define HAVE_SETENV 1 | #define HAVE_UNSETENV 1 | #define HAVE_GETOPT_H 1 | #define HAVE_GETOPT_LONG 1 | #define HAVE_SOCKLEN_T 1 | #define HAVE_DECL_FACILITYNAMES 1 | #define HAVE_GLOBUS_USAGE 1 | #define HAVE_GLOBUS_USAGE_SEND_ARRAY 1 | /* end confdefs.h. */ | | /* Override any gcc2 internal prototype to avoid an error. */ | #ifdef __cplusplus | extern "C" | #endif | /* We use char because int might match the return type of a gcc2 | builtin and then its argument prototype would still apply. */ | char globus_gsi_proxy_handle_set_extensions (); | int | main () | { | globus_gsi_proxy_handle_set_extensions (); | ; | return 0; | } configure:5118: /usr/bin/gcc -o conftest -g -Wall -I/usr/local/packages/globus-5.0.2//include -I/usr/local/packages/globus-5.0.2//include/gcc32dbg -L/usr/local/packages/globus-5.0.2//lib conftest.c -lglobus_gsi_proxy_core_gcc32dbg -lglobus_usage_gcc32dbg >&5 configure:5124: $? = 0 configure:5128: test -z || test ! -s conftest.err configure:5131: $? = 0 configure:5134: test -s conftest configure:5137: $? = 0 configure:5152: result: -lglobus_gsi_proxy_core_gcc32dbg After detection of globus_proxy_handle_set_extensions() OCSP_basic_verify is checked and a longer list of libraries is specified to compiler/linker: configure:5164: checking for OCSP_basic_verify configure:5221: /usr/bin/gcc -o conftest -g -Wall -I/usr/local/packages/globus-5.0.2//include -I/usr/local/packages/globus-5.0.2//include/gcc32dbg -L/usr/local/packages/globus-5.0.2//lib conftest.c -lglobus_gss_assist_gcc32dbg -lglobus_gssapi_gsi_gcc32dbg -lglobus_gsi_proxy_core_gcc32dbg -lglobus_gsi_credential_gcc32dbg -lglobus_gsi_callback_gcc32dbg -lglobus_oldgaa_gcc32dbg -lglobus_gsi_sysconfig_gcc32dbg -lglobus_gsi_cert_utils_gcc32dbg -lglobus_usage_gcc32dbg -lglobus_openssl_gcc32dbg -lglobus_xio_gcc32dbg -lglobus_openssl_error_gcc32dbg -lglobus_callout_gcc32dbg -lglobus_proxy_ssl_gcc32dbg -lglobus_common_gcc32dbg -lltdl_gcc32dbg -lm -ldl -L/lib -lssl -lcrypto >&5 configure:5227: $? = 0 and it works even if LD_LIBRARY_PATH is not set. Regards, Lukasz
I just realized that my last explanation of the problem is not too effective. If LD_LIBRARY_PATH is not set to a directory with Globus shared object libraries then the script 'configure' of in the directory gt5.0.2-all-source-installer/source-trees/myproxy/ cannot detect properly a list of libraries to resolve the symbol globus_gsi_proxy_handle_set_extension().
Thanks Lukasz for the bug report and the follow-up explanation. I've committed a patch for this issue to CVS: http://lists.globus.org/pipermail/myproxy-commit/2010-September/000466.html It will appear in MyProxy v5.3.
MyProxy v5.3 released 17 Jan 2011.