Bugzilla – Bug 3215
RLS client portability improvements
Last modified: 2006-05-31 19:47:10
You need to log in before you can comment on or make changes to this bug.
I will attach a patch which does the following to improve portability of the rls client code: - Moved globus includes above system includes. The general rule is that you need at least globus_config.h (usually included from globus_common.h or any other globus header file) before any system headers in order to take advantage of the platform detection globus_core has done. - Included signal.h in globus_rls_client.h. This is needed for sigset on MacOS X. - Changed C++ style comments to C style. Picky compilers (Visual Age for AIX in this case) do not allow C++ comments in C code.
Created an attachment (id=587) [details] Patch described above
MacOS X still doesn't work: make[2]: Entering directory `/Users/condor/execute/dir_397/userdir/globus-installer/source-trees/replica/rls/client' /usr/bin/gcc -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"globus_rls_client\" -DVERSION=\"4.0\" -I. -I/Users/condor/execute/dir_397/userdir/globus-installer/source-trees/replica/rls/client ./library -I/Users/condor/execute/dir_397/userdir/install/include -I/Users/condor/execute/dir_397/userdir/install/include/gcc32dbg -I/sw/include -no-cpp-precomp -I/sw/include -g -fno-common -I/sw/include -DBIND_8_COMPAT -Wall -c cli.c cli.c: In function `main': cli.c:293: warning: implicit declaration of function `sigset' cli.c:399: warning: control reaches end of non-void function gcc: ./library: linker input file unused because linking not done /bin/sh /Users/condor/execute/dir_397/userdir/install/sbin/libtool-gcc32dbg --mode=link /usr/bin/gcc -g -fno-common -I/sw/include -DBIND_8_COMPAT -Wall -L/Users/condor/execute/dir_397/userdir/install/lib -L/sw/lib -L/sw/lib -o globus-rls-cli -L/Users/condor/execute/dir_397/userdir/install/lib cli.o ./library/libglobus_rls_client_gcc32dbg.la -lglobus_io_gcc32dbg -lglobus_xio_gcc32dbg -lgssapi_error_gcc32dbg -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_openssl_gcc32dbg -lglobus_openssl_error_gcc32dbg -lglobus_callout_gcc32dbg -lglobus_proxy_ssl_gcc32dbg -lglobus_common_gcc32dbg -lssl_gcc32dbg -lcrypto_gcc32dbg -lltdl_gcc32dbg -lm mkdir .libs /usr/bin/gcc -g -fno-common -I/sw/include -DBIND_8_COMPAT -Wall -o .libs/globus-rls-cli cli.o -L/Users/condor/execute/dir_397/userdir/install/lib -L/sw/lib ./library/.libs/libglobus_rls_client_gcc32dbg.dylib /Users/condor/execute/dir_397/userdir/install/lib/libglobus_io_gcc32dbg.dylib /Users/condor/execute/dir_397/userdir/install/lib/libglobus_xio_gcc32dbg.dylib /Users/condor/execute/dir_397/userdir/install/lib/libgssapi_error_gcc32dbg.dylib /Users/condor/execute/dir_397/userdir/install/lib/libglobus_gss_assist_gcc32dbg.dylib /Users/condor/execute/dir_397/userdir/install/lib/libglobus_gssapi_gsi_gcc32dbg.dylib /Users/condor/execute/dir_397/userdir/install/lib/libglobus_gsi_proxy_core_gcc32dbg.dylib /Users/condor/execute/dir_397/userdir/install/lib/libglobus_gsi_credential_gcc32dbg.dylib /Users/condor/execute/dir_397/userdir/install/lib/libglobus_gsi_callback_gcc32dbg.dylib /Users/condor/execute/dir_397/userdir/install/lib/libglobus_oldgaa_gcc32dbg.dylib /Users/condor/execute/dir_397/userdir/install/lib/libglobus_gsi_sysconfig_gcc32dbg.dylib /Users/condor/execute/dir_397/userdir/install/lib/libglobus_gsi_cert_utils_gcc32dbg.dylib /Users/condor/execute/dir_397/userdir/install/lib/libglobus_openssl_gcc32dbg.dylib /Users/condor/execute/dir_397/userdir/install/lib/libglobus_openssl_error_gcc32dbg.dylib /Users/condor/execute/dir_397/userdir/install/lib/libglobus_callout_gcc32dbg.dylib /Users/condor/execute/dir_397/userdir/install/lib/libglobus_proxy_ssl_gcc32dbg.dylib /Users/condor/execute/dir_397/userdir/install/lib/libglobus_common_gcc32dbg.dylib /Users/condor/execute/dir_397/userdir/install/lib/libssl_gcc32dbg.dylib /Users/condor/execute/dir_397/userdir/install/lib/libcrypto_gcc32dbg.dylib /Users/condor/execute/dir_397/userdir/install/lib/libltdl_gcc32dbg.dylib -lm ld: Undefined symbols: _sigset make[2]: *** [globus-rls-cli] Error 1 I'll look at this later on.
Aha, sigset is not a POSIX interface. See http://www.geocenter.com/news/xserve_portingNotes.html I recommend switching to sigaction.
OK. Mats' efforts are now reflected in the CVS repository! :-) I've committed to globus_4_0_branch and trunk. As for the sigset/sigaction issue. That is being tracked in bug 2601.
Subject: Re: RLS client portability improvements I am on vacation now. I will be back in the office on Thursday, June 8th. I will read all pending emails then.