AIR Wiki : PatchedGT

HomePage :: Categories :: PageIndex :: RecentChanges :: RecentlyCommented :: Login/Register
This howto describes how you should modify Globus Toolkit 3.2.1 pre-ws to build it on x86_64 architekture (e.g. AMD64 or Xeon 64).

GT 3.2.1 comes with an old OpenLDAP (2.0.22) which does not know about the new system type. Thus we have to tell OpenLDAP, that our compiler can handle this.

Error you should get when building GT 3.2.1 pre-ws


# ./install-gt3 -flavor gcc64dbg /opt/globus-3.2
[....]
gpt-build ====> Changing to /opt/globus-3.2/etc
gpt-build ====> REMOVING empty package globus_gsi_proxy_ssl-gcc64dbgpthr-pgm
gpt-build ====> REMOVING empty package 
globus_gsi_proxy_ssl-gcc64dbgpthr-pgm_static
gpt-build ====> REMOVING empty package globus_gsi_proxy_ssl-noflavor-data
gpt-build ====> REMOVING empty package globus_gsi_proxy_ssl-noflavor-doc
gpt-build ====> CHECKING BUILD DEPENDENCIES FOR globus_openldap
gpt-build ====> Changing to 
/home/globus/gt3.2.1-all-source-installer/BUILD/globus_openldap-0.7
//openldap-2.0.22
gpt-build ====> BUILDING FLAVOR gcc64dbgpthr
make distclean
make: *** No rule to make target `distclean'. Stop.

AR='/usr/bin/ar'; export AR; ARFLAGS='ruv'; export ARFLAGS; 
CC='/usr/bin/gcc'; export CC; CFLAGS='-g -m64 -Wall'; export CFLAGS; 
CPPFLAGS=' -I/opt/globus-3.2/include -I/opt/globus-3.2/include/gcc64dbgpthr'; 
export CPPFLAGS; CXX='/usr/bin/c++'; export CXX; CXXCPP='/usr/bin/c++ -E'; 
export CXXCPP; CXXFLAGS='-g '; export CXXFLAGS; F77='/usr/bin/g77'; export 
F77; LDFLAGS=' -L/opt/globus-3.2/lib '; export LDFLAGS; LIBS=' -lpthread'; 
export LIBS; NM='/usr/bin/nm -B'; export NM; RANLIB='/usr/bin/ranlib'; 
export RANLIB; CPP='/usr/bin/gcc -E'; export CPP; 
ac_cv_func_getaddrinfo="no" ./configure
--prefix=/opt/globus-3.2--with-cyrus-sasl --enable-debug --enable-aci
--enable-dynamic
--enable-modules --enable-ldif --with-ldif-module=dynamic 
--with-lutil-module=dynamic --enable-shell --disable-ldbm --disable-crypt
Copyright 1998-2002 The OpenLDAP Foundation, All Rights Reserved.
Restrictions apply, see COPYRIGHT and LICENSE files.
Configuring OpenLDAP 2.0.22-Release ...
globus@opteron1 ~ $ type... Invalid configuration
`x86_64-unknown-linux-gnu': machine `x86_64-unknown' not recognized**
checking target system type... Invalid configuration **
`x86_64-unknown-linux-gnu': machine `x86_64-unknown' not recognized**
checking build system type... Invalid configuration **
`x86_64-unknown-linux-gnu': machine `x86_64-unknown' not recognized**
[....]
ltconfig: you must specify a host type if you use `--no-verify'
Try `ltconfig --help' for more information.
configure: error: libtool configure failed

ERROR: Build has failed
[....]


Howto apply the patch


  1. Extract the openldap archive from one of the following bundle:
    • globus-information-services-client
    • globus-information-services-sdk
    • globus-information-services-server
  2. Extract globus_openldap-0.7.tar.gz and apply the patch I worte (complete patch is printed below this text). It should patch the following files:
    • pkg_data_src.gpt (patch)
    • patches/openldap-x86_64.patch (add)
    • patches/patch-openldap.sh (add)
  3. Repack globus_openldap-0.7.tar.gz and replace the globus_openldap package in (all of) the globus-information-services bundel(s) by the patched one.


The patch maybe quick and dirty, but at least it should be possible build GT 3.2.1 on x86_64 architekture now :-)



Patch


I did the following:
# diff -r -u -P globus_openldap-0.7 globus_openldap-0.7-x86_64 > complete.patch


This is the output = patch:
diff -r -u -P globus_openldap-0.7/patches/openldap-x86_64.patch globus_openldap-0.7-x86_64/patches/openldap-x86_64.patch
--- globus_openldap-0.7/patches/openldap-x86_64.patch   1970-01-01 01:00:00.000000000 +0100
+++ globus_openldap-0.7-x86_64/patches/openldap-x86_64.patch    2005-04-20 09:57:51.674955136 +0200
@@ -0,0 +1,33 @@
+--- config.sub 2001-11-06 17:29:18.000000000 +0100
++++ config.sub.patched 2005-03-21 16:06:46.157880632 +0100
+@@ -200,7 +200,7 @@
+       # We use `pc' rather than `unknown'
+       # because (1) that's what they normally are, and
+       # (2) the word "unknown" tends to confuse beginning users.
+-      i[34567]86)
++      i*86 | x86_64)
+         basic_machine=$basic_machine-pc
+         ;;
+       # Object if more than one company name word.
+@@ -215,7 +215,7 @@
+             | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \
+             | power-* | none-* | 580-* | cray2-* | h8300-* | h8500-* | i960-* \
+             | xmp-* | ymp-* \
+-            | x86-* | ppcbe-* | mipsbe-* | mipsle-* | shbe-* | shle-* | armbe-* | armle-* \
++            | x86-* | x86_64-* | ppcbe-* | mipsbe-* | mipsle-* | shbe-* | shle-* | armbe-* | armle-* \
+             | hppa-* | hppa1.0-* | hppa1.1-* | hppa2.0-* | hppa2.0w-* \
+             | hppa2.0n-* | hppa64-* \
+             | alpha-* | alphaev[4-8]-* | alphaev56-* | alphapca5[67]-* \
+@@ -262,6 +262,12 @@
+               basic_machine=a29k-none
+               os=-bsd
+               ;;
++        amd64)
++                basic_machine=x86_64-pc
++                ;;
++        amd64-*)
++                basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
++                ;;
+       amdahl)
+               basic_machine=580-amdahl
+               os=-sysv
diff -r -u -P globus_openldap-0.7/patches/patch-openldap.sh globus_openldap-0.7-x86_64/patches/patch-openldap.sh
--- globus_openldap-0.7/patches/patch-openldap.sh       1970-01-01 01:00:00.000000000 +0100
+++ globus_openldap-0.7-x86_64/patches/patch-openldap.sh        2005-04-20 09:57:26.439791464 +0200
@@ -0,0 +1,3 @@
+cd build
+patch -p0 < ../../patches/openldap-x86_64.patch
+cd ..
diff -r -u -P globus_openldap-0.7/pkg_data_src.gpt globus_openldap-0.7-x86_64/pkg_data_src.gpt
--- globus_openldap-0.7/pkg_data_src.gpt        2003-08-05 18:56:23.000000000 +0200
+++ globus_openldap-0.7-x86_64/pkg_data_src.gpt 2005-04-20 09:58:12.831738816 +0200
@@ -41,6 +41,8 @@
 
	   <Build_Step Macro_Args="libs='ssl crypto sasl lber ldap ldap_r ltdl lutil'">RUN_FLAVOR_MAKEFILES_GPTMACRO</Build_Step>
	   <Build_Step> MAKE_GPTMACRO distclean</Build_Step>
+      <Build_Step> echo "Patching OpenLDAP for x86_64" </Build_Step>
+      <Build_Step> ../patches/patch-openldap.sh </Build_Step>
	   <Build_Step> CONFIGENV_GPTMACRO ac_cv_func_getaddrinfo="no" ./configure --prefix=INSTALLDIR_GPTMACRO CONFIGOPTS_GPTMACRO --with-cyrus-sasl --enable-debug --enable-aci --enable-dynamic --enable-modules --enable-ldif --with-ldif-module=dynamic --with-lutil-module=dynamic --enable-shell --disable-ldbm --disable-crypt</Build_Step>
	   <Build_Step> MAKE_GPTMACRO depend</Build_Step>
	   <Build_Step> MAKE_GPTMACRO</Build_Step>


Save the patch and apply it with:
# cd temp; ls -al
temp #
total 1472
drwxr-xr-x   4 globus users     102 Apr 20 10:04 .
drwx------  10 globus users    4096 Apr 12 00:14 ..
-rw-r--r--   1 globus users    3021 Apr 20 10:01 complete.patch
drwxr-xr-x   5 globus users     135 Apr 20 09:51 globus_openldap-0.7
temp # patch -p0 < complete.patch
patching file globus_openldap-0.7/patches/openldap-x86_64.patch
patching file globus_openldap-0.7/patches/patch-openldap.sh
patching file globus_openldap-0.7/pkg_data_src.gpt
temp #


Okay .. go on with 3.

There are no comments on this page. [Add comment]

Valid XHTML 1.0 Transitional :: Valid CSS :: Powered by Wikka Wakka Wiki 1.1.6.0
Page was generated in 0.0218 seconds