在FC4上装GT4,FC4自带的libxml2包与GT4有兼容性问题,会导致源代码make失败。提示一大堆的错误:
make[5]: Leaving directory `/home/globus/gt4.0.0-all-source-installer/source-trees/libxml2'
/bin/sh /usr/local/globus-4.0.0/sbin/libtool-gcc32dbg --mode=compile /usr/bin/gcc -DHAVE_CONFIG_H -I. -I/home/globus/gt4.0.0-all-source-installer/source-trees/libxml2 -I. -I./include -I/home/globus/gt4.0.0-all-source-installer/source-trees/libxml2/include -I/usr/local/globus-4.0.0/include -I/usr/local/globus-4.0.0/include/gcc32dbg -g -Wall -Wall -c -o SAX.lo SAX.c
mkdir .libs
/usr/bin/gcc -DHAVE_CONFIG_H -I. -I/home/globus/gt4.0.0-all-source-installer/source-trees/libxml2 -I. -I./include -I/home/globus/gt4.0.0-all-source-installer/source-trees/libxml2/include -I/usr/local/globus-4.0.0/include -I/usr/local/globus-4.0.0/include/gcc32dbg -g -Wall -Wall -c SAX.c -fPIC -DPIC -o .libs/SAX.o
elfgcchack.h:60: error: '__xmlGenericError' aliased to undefined symbol '__xmlGenericError__internal_alias'
elfgcchack.h:64: error: '__xmlGenericErrorContext' aliased to undefined symbol '__xmlGenericErrorContext__internal_alias'
elfgcchack.h:70: error: 'docbCreatePushParserCtxt' aliased to undefined symbol 'docbCreatePushParserCtxt__internal_alias'
elfgcchack.h:75: error: 'htmlAttrAllowed' aliased to undefined symbol 'htmlAttrAllowed__internal_alias'
……
这个问题已经放在GT 的Bugzilla里了:http://bugzilla.globus.org/globus/show_bug.cgi?id=3496
在gt4.0.0-all-source-installer/source-trees/libxml2/elfgcchack.h里开头处:
* autogenerated with xsltproc doc/elfgcchack.xsl doc/libxml2-api.xml
*/
加上:
#ifdef IN_LIBXML
#ifdef __GNUC__
#ifdef PIC
#ifdef linux
#if (__GNUC__ == 3 && __GNUC_MINOR__ == 3)
并在文件最后加上:
#endif
#endif
#endif
#endif
#endif
然后重新make,应该就成功了!
make[5]: Leaving directory `/home/globus/gt4.0.0-all-source-installer/source-trees/libxml2'
/bin/sh /usr/local/globus-4.0.0/sbin/libtool-gcc32dbg --mode=compile /usr/bin/gcc -DHAVE_CONFIG_H -I. -I/home/globus/gt4.0.0-all-source-installer/source-trees/libxml2 -I. -I./include -I/home/globus/gt4.0.0-all-source-installer/source-trees/libxml2/include -I/usr/local/globus-4.0.0/include -I/usr/local/globus-4.0.0/include/gcc32dbg -g -Wall -Wall -c -o SAX.lo SAX.c
mkdir .libs
/usr/bin/gcc -DHAVE_CONFIG_H -I. -I/home/globus/gt4.0.0-all-source-installer/source-trees/libxml2 -I. -I./include -I/home/globus/gt4.0.0-all-source-installer/source-trees/libxml2/include -I/usr/local/globus-4.0.0/include -I/usr/local/globus-4.0.0/include/gcc32dbg -g -Wall -Wall -c SAX.c -fPIC -DPIC -o .libs/SAX.o
elfgcchack.h:60: error: '__xmlGenericError' aliased to undefined symbol '__xmlGenericError__internal_alias'
elfgcchack.h:64: error: '__xmlGenericErrorContext' aliased to undefined symbol '__xmlGenericErrorContext__internal_alias'
elfgcchack.h:70: error: 'docbCreatePushParserCtxt' aliased to undefined symbol 'docbCreatePushParserCtxt__internal_alias'
elfgcchack.h:75: error: 'htmlAttrAllowed' aliased to undefined symbol 'htmlAttrAllowed__internal_alias'
……
这个问题已经放在GT 的Bugzilla里了:http://bugzilla.globus.org/globus/show_bug.cgi?id=3496
在gt4.0.0-all-source-installer/source-trees/libxml2/elfgcchack.h里开头处:
* autogenerated with xsltproc doc/elfgcchack.xsl doc/libxml2-api.xml
*/
加上:
#ifdef IN_LIBXML
#ifdef __GNUC__
#ifdef PIC
#ifdef linux
#if (__GNUC__ == 3 && __GNUC_MINOR__ == 3)
并在文件最后加上:
#endif
#endif
#endif
#endif
#endif
然后重新make,应该就成功了!