From noreply at sourceforge.net Thu Apr 2 05:41:09 2009 From: noreply at sourceforge.net (SourceForge.net) Date: Thu, 02 Apr 2009 03:41:09 +0000 Subject: [Expat-bugs] [ expat-Bugs-2723522 ] expat memory consumption issue - advise needed Message-ID: Bugs item #2723522, was opened at 2009-03-31 18:50 Message generated for change (Comment added) made by alexmanovbg You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=110127&aid=2723522&group_id=10127 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: Not a Bug Status: Open Resolution: None Priority: 5 Private: No Submitted By: Alex Manov (alexmanovbg) Assigned to: Nobody/Anonymous (nobody) Summary: expat memory consumption issue - advise needed Initial Comment: We have a application which uses expat to convert a xml data file into a binary version of the file. The file at the moment is about 600M but will grow. We encountered a blocking problem - while parsing the file the application starts using a huge amount of memory it needs 4G of RAM to finish successfuly a 600MB file. Our engineers explained that this is due to block memory management in expat when it builds the xml tree. They explained that our xml has alot of tags which in turn requires separate 4K memory pages for even 3 bytes of actual data. Is there any way to improve this? Could anyone suggest how we can optimize this process? Is there any settings which we can use to make it work? Here is the file structure ( I am not uploading the file since it is 600M I can provide it though ). 9 Active 196912311900 203012301700 2345737 20000101 20351231 00:00 00:00 0,1,2,3,4,5,6 1619 0.0000 0.0000 1 0 1 0.0000 0.0000 Default 0 1 0.0000 0.0000 There can be many Groups - in practice about 100 Each Group can have many elements - in practice about 100,000 Each Element can have many subelements - in practice about 4 ---------------------------------------------------------------------- Comment By: Alex Manov (alexmanovbg) Date: 2009-04-02 06:41 Message: Hello Karl, I am attacching a small file (testxml.cxx) we use only for the parsing. It basically loads the xml and starts the parsing process with no other processing at all. The behavior is the same the parsing application eats up to 3G ram before we kill it. Could you tell us what we are doing wrong? Or is it a bug with expat? Attached in a rar file are the following files: - testxml.cxx - test program - rbx.xml.gz - compressed XML file ---------------------------------------------------------------------- Comment By: Karl Waclawek (kwaclaw) Date: 2009-03-31 22:22 Message: I think your engineers are mistaken. Expat does not build an in-memory tree of the XML file at all, and its memory consumption is negligible, even for multi-gigabyte files. The only exceptions are entity declarations in the DTD which could use a lot of memory (google for "million laughs attack"). If you don't have a DTD (it looks like that from your example), then I cannot see how Expat would consume much memory. Maybe you have a software library/layer on top of Expat which builds the tree? Karl ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=110127&aid=2723522&group_id=10127 From noreply at sourceforge.net Thu Apr 2 05:44:11 2009 From: noreply at sourceforge.net (SourceForge.net) Date: Thu, 02 Apr 2009 03:44:11 +0000 Subject: [Expat-bugs] [ expat-Bugs-2723522 ] expat memory consumption issue - advise needed Message-ID: Bugs item #2723522, was opened at 2009-03-31 18:50 Message generated for change (Comment added) made by alexmanovbg You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=110127&aid=2723522&group_id=10127 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: Not a Bug Status: Open Resolution: None Priority: 5 Private: No Submitted By: Alex Manov (alexmanovbg) Assigned to: Nobody/Anonymous (nobody) Summary: expat memory consumption issue - advise needed Initial Comment: We have a application which uses expat to convert a xml data file into a binary version of the file. The file at the moment is about 600M but will grow. We encountered a blocking problem - while parsing the file the application starts using a huge amount of memory it needs 4G of RAM to finish successfuly a 600MB file. Our engineers explained that this is due to block memory management in expat when it builds the xml tree. They explained that our xml has alot of tags which in turn requires separate 4K memory pages for even 3 bytes of actual data. Is there any way to improve this? Could anyone suggest how we can optimize this process? Is there any settings which we can use to make it work? Here is the file structure ( I am not uploading the file since it is 600M I can provide it though ). 9 Active 196912311900 203012301700 2345737 20000101 20351231 00:00 00:00 0,1,2,3,4,5,6 1619 0.0000 0.0000 1 0 1 0.0000 0.0000 Default 0 1 0.0000 0.0000 There can be many Groups - in practice about 100 Each Group can have many elements - in practice about 100,000 Each Element can have many subelements - in practice about 4 ---------------------------------------------------------------------- Comment By: Alex Manov (alexmanovbg) Date: 2009-04-02 06:44 Message: Sorry I could not attach it. Here is the C application code: #include #include #include #include #include #include "xml.h" //// Load() of CRatingEngine int LoadXML ( const char *szFileName) { FILE *pXMLFile = fopen ( szFileName, "rb"); if ( !pXMLFile) { printf ("Load: File name %s is not exists\n", szFileName); return 0; } if( fseek ( pXMLFile, 0, SEEK_END) != 0) { printf ("Load: The file %s is corrupted\n", szFileName); fclose ( pXMLFile); return 0; } int nSize = ( int) ftell ( pXMLFile); rewind ( pXMLFile); ////Load all data once char *szBuffer = (char *) malloc ( nSize + 1); if( !szBuffer) { printf ("Parse: Insufficient memory to alloc %d bytes\n", nSize ); return 0; } fseek ( pXMLFile, 0, SEEK_SET ); fread ( szBuffer, nSize, 1, pXMLFile ); szBuffer[nSize] = 0; printf ("Parse: Starting ...\n"); XmlParser xmlParser; XmlNodeRef xtRaps = xmlParser.Parse ( szBuffer); if( !xtRaps) { printf ("Error: XML data incorrect (%s)\n", szFileName); fclose ( pXMLFile); return 0; } if ( szBuffer) free ( szBuffer); fclose ( pXMLFile); printf ("Parse: End ...\n"); return 1; } int main(int argc, char* argv[]) { char szXMLFile[20] = "rbx.xml"; #ifndef WIN32 if ( argc!=2) { printf ("Command format: rbxdbgen [xmlfile]\n"); return 0; } strcpy ( szXMLFile, argv[1]); #endif time_t start = time ( NULL); printf("Load from XML file...\n"); if( LoadXML ( szXMLFile) == 1 ){ printf("Done\n"); } else { printf("Failed\n"); return 0; } return 0; } ---------------------------------------------------------------------- Comment By: Alex Manov (alexmanovbg) Date: 2009-04-02 06:41 Message: Hello Karl, I am attacching a small file (testxml.cxx) we use only for the parsing. It basically loads the xml and starts the parsing process with no other processing at all. The behavior is the same the parsing application eats up to 3G ram before we kill it. Could you tell us what we are doing wrong? Or is it a bug with expat? Attached in a rar file are the following files: - testxml.cxx - test program - rbx.xml.gz - compressed XML file ---------------------------------------------------------------------- Comment By: Karl Waclawek (kwaclaw) Date: 2009-03-31 22:22 Message: I think your engineers are mistaken. Expat does not build an in-memory tree of the XML file at all, and its memory consumption is negligible, even for multi-gigabyte files. The only exceptions are entity declarations in the DTD which could use a lot of memory (google for "million laughs attack"). If you don't have a DTD (it looks like that from your example), then I cannot see how Expat would consume much memory. Maybe you have a software library/layer on top of Expat which builds the tree? Karl ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=110127&aid=2723522&group_id=10127 From noreply at sourceforge.net Thu Apr 2 05:51:11 2009 From: noreply at sourceforge.net (SourceForge.net) Date: Thu, 02 Apr 2009 03:51:11 +0000 Subject: [Expat-bugs] [ expat-Bugs-2723522 ] expat memory consumption issue - advise needed Message-ID: Bugs item #2723522, was opened at 2009-03-31 18:50 Message generated for change (Comment added) made by alexmanovbg You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=110127&aid=2723522&group_id=10127 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: Not a Bug Status: Open Resolution: None Priority: 5 Private: No Submitted By: Alex Manov (alexmanovbg) Assigned to: Nobody/Anonymous (nobody) Summary: expat memory consumption issue - advise needed Initial Comment: We have a application which uses expat to convert a xml data file into a binary version of the file. The file at the moment is about 600M but will grow. We encountered a blocking problem - while parsing the file the application starts using a huge amount of memory it needs 4G of RAM to finish successfuly a 600MB file. Our engineers explained that this is due to block memory management in expat when it builds the xml tree. They explained that our xml has alot of tags which in turn requires separate 4K memory pages for even 3 bytes of actual data. Is there any way to improve this? Could anyone suggest how we can optimize this process? Is there any settings which we can use to make it work? Here is the file structure ( I am not uploading the file since it is 600M I can provide it though ). 9 Active 196912311900 203012301700 2345737 20000101 20351231 00:00 00:00 0,1,2,3,4,5,6 1619 0.0000 0.0000 1 0 1 0.0000 0.0000 Default 0 1 0.0000 0.0000 There can be many Groups - in practice about 100 Each Group can have many elements - in practice about 100,000 Each Element can have many subelements - in practice about 4 ---------------------------------------------------------------------- Comment By: Alex Manov (alexmanovbg) Date: 2009-04-02 06:51 Message: Karl, The file is around 3MB compressed. I can send it to you via email if you need it. ---------------------------------------------------------------------- Comment By: Alex Manov (alexmanovbg) Date: 2009-04-02 06:44 Message: Sorry I could not attach it. Here is the C application code: #include #include #include #include #include #include "xml.h" //// Load() of CRatingEngine int LoadXML ( const char *szFileName) { FILE *pXMLFile = fopen ( szFileName, "rb"); if ( !pXMLFile) { printf ("Load: File name %s is not exists\n", szFileName); return 0; } if( fseek ( pXMLFile, 0, SEEK_END) != 0) { printf ("Load: The file %s is corrupted\n", szFileName); fclose ( pXMLFile); return 0; } int nSize = ( int) ftell ( pXMLFile); rewind ( pXMLFile); ////Load all data once char *szBuffer = (char *) malloc ( nSize + 1); if( !szBuffer) { printf ("Parse: Insufficient memory to alloc %d bytes\n", nSize ); return 0; } fseek ( pXMLFile, 0, SEEK_SET ); fread ( szBuffer, nSize, 1, pXMLFile ); szBuffer[nSize] = 0; printf ("Parse: Starting ...\n"); XmlParser xmlParser; XmlNodeRef xtRaps = xmlParser.Parse ( szBuffer); if( !xtRaps) { printf ("Error: XML data incorrect (%s)\n", szFileName); fclose ( pXMLFile); return 0; } if ( szBuffer) free ( szBuffer); fclose ( pXMLFile); printf ("Parse: End ...\n"); return 1; } int main(int argc, char* argv[]) { char szXMLFile[20] = "rbx.xml"; #ifndef WIN32 if ( argc!=2) { printf ("Command format: rbxdbgen [xmlfile]\n"); return 0; } strcpy ( szXMLFile, argv[1]); #endif time_t start = time ( NULL); printf("Load from XML file...\n"); if( LoadXML ( szXMLFile) == 1 ){ printf("Done\n"); } else { printf("Failed\n"); return 0; } return 0; } ---------------------------------------------------------------------- Comment By: Alex Manov (alexmanovbg) Date: 2009-04-02 06:41 Message: Hello Karl, I am attacching a small file (testxml.cxx) we use only for the parsing. It basically loads the xml and starts the parsing process with no other processing at all. The behavior is the same the parsing application eats up to 3G ram before we kill it. Could you tell us what we are doing wrong? Or is it a bug with expat? Attached in a rar file are the following files: - testxml.cxx - test program - rbx.xml.gz - compressed XML file ---------------------------------------------------------------------- Comment By: Karl Waclawek (kwaclaw) Date: 2009-03-31 22:22 Message: I think your engineers are mistaken. Expat does not build an in-memory tree of the XML file at all, and its memory consumption is negligible, even for multi-gigabyte files. The only exceptions are entity declarations in the DTD which could use a lot of memory (google for "million laughs attack"). If you don't have a DTD (it looks like that from your example), then I cannot see how Expat would consume much memory. Maybe you have a software library/layer on top of Expat which builds the tree? Karl ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=110127&aid=2723522&group_id=10127 From noreply at sourceforge.net Thu Apr 2 14:07:56 2009 From: noreply at sourceforge.net (SourceForge.net) Date: Thu, 02 Apr 2009 12:07:56 +0000 Subject: [Expat-bugs] [ expat-Bugs-2723522 ] expat memory consumption issue - advise needed Message-ID: Bugs item #2723522, was opened at 2009-03-31 11:50 Message generated for change (Comment added) made by kwaclaw You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=110127&aid=2723522&group_id=10127 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: Not a Bug Status: Open Resolution: None Priority: 5 Private: No Submitted By: Alex Manov (alexmanovbg) Assigned to: Nobody/Anonymous (nobody) Summary: expat memory consumption issue - advise needed Initial Comment: We have a application which uses expat to convert a xml data file into a binary version of the file. The file at the moment is about 600M but will grow. We encountered a blocking problem - while parsing the file the application starts using a huge amount of memory it needs 4G of RAM to finish successfuly a 600MB file. Our engineers explained that this is due to block memory management in expat when it builds the xml tree. They explained that our xml has alot of tags which in turn requires separate 4K memory pages for even 3 bytes of actual data. Is there any way to improve this? Could anyone suggest how we can optimize this process? Is there any settings which we can use to make it work? Here is the file structure ( I am not uploading the file since it is 600M I can provide it though ). 9 Active 196912311900 203012301700 2345737 20000101 20351231 00:00 00:00 0,1,2,3,4,5,6 1619 0.0000 0.0000 1 0 1 0.0000 0.0000 Default 0 1 0.0000 0.0000 There can be many Groups - in practice about 100 Each Group can have many elements - in practice about 100,000 Each Element can have many subelements - in practice about 4 ---------------------------------------------------------------------- >Comment By: Karl Waclawek (kwaclaw) Date: 2009-04-02 08:07 Message: I looked at your C code. The XmlNodeRef class gave it away, you are not actually using Expat directly, but apparently some DOM wrapper around it. This will build an in-memory representation of the XML file and consequently consume several times as much memory as the file size. If you check the Expat reference document you will see that Expat based code uses call-backs to inform the application of each tag/attribute it encounters, but does not build a tree. Karl ---------------------------------------------------------------------- Comment By: Alex Manov (alexmanovbg) Date: 2009-04-01 23:51 Message: Karl, The file is around 3MB compressed. I can send it to you via email if you need it. ---------------------------------------------------------------------- Comment By: Alex Manov (alexmanovbg) Date: 2009-04-01 23:44 Message: Sorry I could not attach it. Here is the C application code: #include #include #include #include #include #include "xml.h" //// Load() of CRatingEngine int LoadXML ( const char *szFileName) { FILE *pXMLFile = fopen ( szFileName, "rb"); if ( !pXMLFile) { printf ("Load: File name %s is not exists\n", szFileName); return 0; } if( fseek ( pXMLFile, 0, SEEK_END) != 0) { printf ("Load: The file %s is corrupted\n", szFileName); fclose ( pXMLFile); return 0; } int nSize = ( int) ftell ( pXMLFile); rewind ( pXMLFile); ////Load all data once char *szBuffer = (char *) malloc ( nSize + 1); if( !szBuffer) { printf ("Parse: Insufficient memory to alloc %d bytes\n", nSize ); return 0; } fseek ( pXMLFile, 0, SEEK_SET ); fread ( szBuffer, nSize, 1, pXMLFile ); szBuffer[nSize] = 0; printf ("Parse: Starting ...\n"); XmlParser xmlParser; XmlNodeRef xtRaps = xmlParser.Parse ( szBuffer); if( !xtRaps) { printf ("Error: XML data incorrect (%s)\n", szFileName); fclose ( pXMLFile); return 0; } if ( szBuffer) free ( szBuffer); fclose ( pXMLFile); printf ("Parse: End ...\n"); return 1; } int main(int argc, char* argv[]) { char szXMLFile[20] = "rbx.xml"; #ifndef WIN32 if ( argc!=2) { printf ("Command format: rbxdbgen [xmlfile]\n"); return 0; } strcpy ( szXMLFile, argv[1]); #endif time_t start = time ( NULL); printf("Load from XML file...\n"); if( LoadXML ( szXMLFile) == 1 ){ printf("Done\n"); } else { printf("Failed\n"); return 0; } return 0; } ---------------------------------------------------------------------- Comment By: Alex Manov (alexmanovbg) Date: 2009-04-01 23:41 Message: Hello Karl, I am attacching a small file (testxml.cxx) we use only for the parsing. It basically loads the xml and starts the parsing process with no other processing at all. The behavior is the same the parsing application eats up to 3G ram before we kill it. Could you tell us what we are doing wrong? Or is it a bug with expat? Attached in a rar file are the following files: - testxml.cxx - test program - rbx.xml.gz - compressed XML file ---------------------------------------------------------------------- Comment By: Karl Waclawek (kwaclaw) Date: 2009-03-31 15:22 Message: I think your engineers are mistaken. Expat does not build an in-memory tree of the XML file at all, and its memory consumption is negligible, even for multi-gigabyte files. The only exceptions are entity declarations in the DTD which could use a lot of memory (google for "million laughs attack"). If you don't have a DTD (it looks like that from your example), then I cannot see how Expat would consume much memory. Maybe you have a software library/layer on top of Expat which builds the tree? Karl ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=110127&aid=2723522&group_id=10127 From Jody.Haynes at netapp.com Fri Apr 3 14:00:06 2009 From: Jody.Haynes at netapp.com (Jody Haynes) Date: Fri, 03 Apr 2009 08:00:06 -0400 Subject: [Expat-bugs] expat-2.0.1 will not compile on AIX 6.1 due to a problem with fcntl.h Message-ID: Is there any workaround for this issue on AIX 6.1. This same source compiles on AIX 5.3 with no issues. [6100-02-03-0909] /tmp/expat-2.0.1 -> ./configure checking build system type... rs6000-ibm-aix checking host system type... rs6000-ibm-aix checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ANSI C... none needed checking for a sed that does not truncate output... /usr/bin/sed checking for egrep... grep -E checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... no checking for /usr/bin/ld option to reload object files... -r checking for BSD-compatible nm... /usr/bin/nm -B checking whether ln -s works... yes checking how to recognise dependent libraries... unknown checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... no checking dlfcn.h usability... yes checking dlfcn.h presence... yes checking for dlfcn.h... yes checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking how to run the C++ preprocessor... g++ -E checking for g77... g77 checking whether we are using the GNU Fortran 77 compiler... yes checking whether g77 accepts -g... yes checking the maximum length of command line arguments... 262144 checking command to parse /usr/bin/nm -B output from gcc object... ok checking for objdir... .libs checking for ar... ar checking for ranlib... ranlib checking for strip... strip checking if gcc supports -fno-rtti -fno-exceptions... yes checking for gcc option to produce PIC... checking if gcc static flag -static works... no checking if gcc supports -c -o file.o... yes checking whether the gcc linker (/usr/bin/ld) supports shared libraries... no checking dynamic linker characteristics... no checking how to hardcode library paths into programs... unsupported checking whether stripping libraries is possible... no checking if libtool supports shared libraries... no checking whether to build shared libraries... no checking whether to build static libraries... yes configure: creating libtool appending configuration tag "CXX" to libtool checking for ld used by g++... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... no checking whether the g++ linker (/usr/bin/ld) supports shared libraries... no checking for g++ option to produce PIC... checking if g++ static flag -static works... no checking if g++ supports -c -o file.o... yes checking whether the g++ linker (/usr/bin/ld) supports shared libraries... no checking dynamic linker characteristics... no checking how to hardcode library paths into programs... unsupported appending configuration tag "F77" to libtool checking if libtool supports shared libraries... no checking whether to build shared libraries... no checking whether to build static libraries... yes checking for g77 option to produce PIC... checking if g77 static flag -static works... no checking if g77 supports -c -o file.o... yes checking whether the g77 linker (/usr/bin/ld) supports shared libraries... no checking dynamic linker characteristics... no checking how to hardcode library paths into programs... unsupported checking for gcc... (cached) gcc checking whether we are using the GNU C compiler... (cached) yes checking whether gcc accepts -g... (cached) yes checking for gcc option to accept ANSI C... (cached) none needed checking for a BSD-compatible install... conftools/install-sh -c checking whether gcc accepts -fexceptions... yes checking for ANSI C header files... (cached) yes checking whether byte ordering is bigendian... yes checking for an ANSI C-conforming const... yes checking for size_t... yes checking for memmove... yes checking for bcopy... yes checking fcntl.h usability... no checking fcntl.h presence... yes configure: WARNING: fcntl.h: present but cannot be compiled configure: WARNING: fcntl.h: check for missing prerequisite headers? configure: WARNING: fcntl.h: see the Autoconf documentation configure: WARNING: fcntl.h: section "Present But Cannot Be Compiled" configure: WARNING: fcntl.h: proceeding with the preprocessor's result configure: WARNING: fcntl.h: in the future, the compiler will take precedence configure: WARNING: ## -------------------------------------- ## configure: WARNING: ## Report this to expat-bugs at libexpat.org ## configure: WARNING: ## -------------------------------------- ## checking for fcntl.h... yes checking for unistd.h... (cached) no checking for off_t... yes checking for stdlib.h... (cached) yes checking for unistd.h... (cached) no checking for getpagesize... yes checking for working mmap... no checking for an ANSI C99-conforming __func__... yes configure: creating ./config.status config.status: creating Makefile config.status: creating expat_config.h [6100-02-03-0909] /tmp/expat-2.0.1 -> make /bin/sh ./libtool --silent --mode=compile gcc -I./lib -I. -g -O2 -Wall -Wmissing-prototypes -Wstrict-prototypes -fexceptions -DHAVE_EXPAT_CONFIG_H -o lib/xmlparse.lo -c lib/xmlparse.c /bin/sh ./libtool --silent --mode=compile gcc -I./lib -I. -g -O2 -Wall -Wmissing-prototypes -Wstrict-prototypes -fexceptions -DHAVE_EXPAT_CONFIG_H -o lib/xmltok.lo -c lib/xmltok.c /bin/sh ./libtool --silent --mode=compile gcc -I./lib -I. -g -O2 -Wall -Wmissing-prototypes -Wstrict-prototypes -fexceptions -DHAVE_EXPAT_CONFIG_H -o lib/xmlrole.lo -c lib/xmlrole.c /bin/sh ./libtool --silent --mode=link gcc -I./lib -I. -g -O2 -Wall -Wmissing-prototypes -Wstrict-prototypes -fexceptions -DHAVE_EXPAT_CONFIG_H -no-undefined -version-info 6:2:5 -rpath /usr/local/lib -o libexpat.la lib/xmlparse.lo lib/xmltok.lo lib/xmlrole.lo gcc -I./lib -I. -g -O2 -Wall -Wmissing-prototypes -Wstrict-prototypes -fexceptions -DHAVE_EXPAT_CONFIG_H -o xmlwf/xmlwf.o -c xmlwf/xmlwf.c gcc -I./lib -I. -g -O2 -Wall -Wmissing-prototypes -Wstrict-prototypes -fexceptions -DHAVE_EXPAT_CONFIG_H -o xmlwf/xmlfile.o -c xmlwf/xmlfile.c In file included from /usr/include/fcntl.h:188, from xmlwf/xmlfile.c:9: /usr/include/unistd.h:923: parse error before '[' token /usr/include/unistd.h:924: parse error before "rid_t" make: The error code from the last command is 1. Stop. -- Thanks, ---- Jody Haynes AIX SAN Host Engineering ----------------------------------------------------------------- Network Appliance, Inc. 7301 Kit Creek Road Research Triangle Park, NC 27709 Email: Jody.Haynes at netapp.com Phone: 919.476.5714 ----------------------------------------------------------------- -------------- next part -------------- An HTML attachment was scrubbed... URL: