Dear XML users, I am puzzled by the following behavior: My code runs and parses XML correctly in a plain-vanilla RH7.1+XimianGnome box, but when I compile in an IBM SP supercomputer (AIX) using the latest libXML out of the box (libXML 2.2.4.16) with and without my own libZ in --prefix=$HOME, when I try to open a simple xml file (not gzipped), I get the following segfault: Stack Trace .gzopen, FP=2ff221b0 C .xmlGzfileOpen, FP=2ff221b0 C ...arserInputBufferCreateFilename, FP=2ff221f0 C .xmlNewInputFromFile, FP=2ff22248 C .xmlDefaultExternalEntityLoader, FP=2ff22298 C .xmlLoadExternalEntity, FP=2ff222e8 C .xmlCreateFileParserCtxt, FP=2ff22320 C .xmlSAXParseFileWithData, FP=2ff22368 C .xmlSAXParseFile, FP=2ff223b8 C .xmlParseFile, FP=2ff223f0 C .p_read_xml_file, FP=2ff22428 C .main, FP=2ff22470 .__start, FP=2ff224c0 Just for sanity check, I include the Stack Frame and source code lines where the thing 'leaves' my code and enters libXML: Stack Frame Function ".p_read_xml_file": fname (R31): 0x200010c8 -> "psi.xml" u (R28): 0x200012b8 -> 0x00000003 (3) And here are the offending lines: gboolean p_read_xml_file(char *fname, PsiData u) { xmlDocPtr doc; xmlNsPtr ns; xmlNodePtr cur; /* * build an XML tree from a the file; */ if(fname==NULL) { g_error("NULL XML filename.\n Exiting!\n"); } ** doc = xmlParseFile(fname); if (doc == NULL) { g_error("Input filename: %s is not a valid XML file!\n Exiting!\n", fname); } (... code continues ...) The code dies entering the doc= xmlParseFile(fname); I tried looking in the mailing lists and bugzilla, but I find not a clue about this. I attach the libxml config.log on the computer I am compiling in.. (AIX 4.3.3 with GCC) blue199:./configure --prefix=$HOME loading cache ./config.cache checking host system type... powerpc-ibm-aix4.3.3.0 checking for a BSD compatible install... (cached) /usr/local/gnu/bin/install -c checking whether build environment is sane... yes checking whether make sets ${MAKE}... (cached) yes checking for working aclocal... found checking for working autoconf... found checking for working automake... found checking for working autoheader... found checking for working makeinfo... found checking for gcc... (cached) gcc checking whether the C compiler (gcc ) works... yes checking whether the C compiler (gcc ) is a cross-compiler... no checking whether we are using GNU C... (cached) yes What puzzles me also is why gzopen() if the xml file is not gzipped? Thanks a lot in advance, Alan Aspuru-Guzik
Attachment:
config.log
Description: Text document