Hi Stéphane, I had to work around issues in the patch, but I think I pushed all the modifications still needed (some of the non ANSI changes were already corrected in git head)
https://git.gnome.org/browse/libxml2/commit/?id=454e397eb7dd0fe219fa681eeadfaf2a64a3aeec for the description of changes made to Makefiles, I'm saving that as a separated patch thanks ! Daniel On Thu, Jul 27, 2017 at 12:31:00PM +0000, Stéphane Michaut wrote: > After discussions with Daniel I (re)post my patch for zOs porting with some > updates... > (see first post on that topic > https://mail.gnome.org/archives/xml/2016-July/msg00005.html) > > Thanks, > > Stephane > > --- entities.c 2016-05-23 12:01:08.000000000 +0200 > +++ entities-fix.c 2016-07-21 11:05:12.000000000 +0200 > @@ -6,6 +6,8 @@ > * daniel veillard com > */ > > +/* To avoid EBCDIC trouble when parsing on zOS */ > +#if defined(__MVS__) > +#pragma convert("ISO8859-1") > +#endif > #define IN_LIBXML > #include "libxml.h" > > --- parser.c 2016-07-18 16:13:29.000000000 +0200 > +++ parser-fix.c 2016-07-21 11:04:33.000000000 +0200 > @@ -30,6 +30,8 @@ > * daniel veillard com > */ > > +/* To avoid EBCDIC trouble when parsing on zOS */ > +#if defined(__MVS__) > +#pragma convert("ISO8859-1") > +#endif > #define IN_LIBXML > #include "libxml.h" > > --- relaxng.c 2016-05-23 12:01:08.000000000 +0200 > +++ relaxng-fix.c 2016-07-21 11:06:28.000000000 +0200 > @@ -2088,6 +2088,7 @@ > const xmlChar * arg2) > { > char msg[1000]; > + xmlChar *result; > > if (arg1 == NULL) > arg1 = BAD_CAST ""; > @@ -2215,7 +2216,7 @@ > snprintf(msg, 1000, "Unknown error code %d\n", err); > } > msg[1000 - 1] = 0; > - xmlChar *result = xmlCharStrdup(msg); > + result = xmlCharStrdup(msg); > return (xmlEscapeFormatString(&result)); > } > > --- tree.c 2016-07-21 11:05:19.000000000 +0200 > +++ tree-fix.c 2016-07-21 11:02:10.000000000 +0200 > @@ -10,8 +10,6 @@ > * > */ > > +/* To avoid EBCDIC trouble when parsing on zOS */ > +#pragma convert("ISO8859-1") > +#endif > #define IN_LIBXML > #include "libxml.h" > > --- xmlIO.c 2016-07-15 13:42:07.000000000 +0200 > +++ xmlIO-fix.c 2017-03-07 07:33:52.000000000 +0100 > @@ -926,8 +926,11 @@ > #endif > } > > - if (!xmlCheckFilename(path)) > + /* Do not check DDNAME on zOS ! */ > + if(!__MVS__) { > + if (!xmlCheckFilename(path)) > return(NULL); > + } > > #if defined(_WIN32) || defined (__DJGPP__) && !defined (__CYGWIN__) > fd = xmlWrapOpen(path, 0); > @@ -1004,6 +1007,8 @@ > > #if defined(_WIN32) || defined (__DJGPP__) && !defined (__CYGWIN__) > fd = xmlWrapOpen(path, 1); > +#elif(__MVS__) > + fd = fopen(path, "w"); > #else > fd = fopen(path, "wb"); > #endif /* WIN32 */ > --- xmlmodule.c 2016-05-06 18:28:04.000000000 +0200 > +++ xmlmodule-fix.c 2016-07-21 11:08:24.000000000 +0200 > @@ -8,6 +8,9 @@ > * http://www.fortran-2000.com/ArnaudRecipes/sharedlib.html > */ > > +/* In order RTLD_GLOBAL and RTLD_NOW to be defined on zOS */ > +#define _UNIX03_SOURCE > + > #define IN_LIBXML > #include "libxml.h" > > --- xmlschemas.c 2016-05-23 12:01:08.000000000 +0200 > +++ xmlschemas-fix.c 2016-07-21 11:05:49.000000000 +0200 > @@ -44,6 +44,9 @@ > * but is done here due to performance. Move it to an other layer > * is schema construction via an API is implemented. > */ > + > +/* To avoid EBCDIC trouble when parsing on zOS */ > +#if defined(__MVS__) > +#pragma convert("ISO8859-1") > +#endif > #define IN_LIBXML > #include "libxml.h" > > @@ -3168,8 +3171,8 @@ > "valid."); > } > if (expected) { > - msg = xmlStrcat(msg, BAD_CAST " Expected is '"); > xmlChar *expectedEscaped = xmlCharStrdup(expected); > + msg = xmlStrcat(msg, BAD_CAST " Expected is '"); > msg = xmlStrcat(msg, xmlEscapeFormatString(&expectedEscaped)); > FREE_AND_NULL(expectedEscaped); > msg = xmlStrcat(msg, BAD_CAST "'.\n"); > --- xmlschemastypes.c 2016-05-06 18:28:04.000000000 +0200 > +++ xmlschemastypes-fix.c 2016-07-21 11:05:00.000000000 +0200 > @@ -7,6 +7,8 @@ > * Daniel Veillard <veillard redhat com> > */ > > +/* To avoid EBCDIC trouble when parsing on zOS */ > +#if defined(__MVS__) > +#pragma convert("ISO8859-1") > +#endif > #define IN_LIBXML > #include "libxml.h" > > --- xpath.c 2017-07-27 13:12:01.000000000 +0200 > +++ xpath-fix.c 2017-07-27 14:13:44.000000000 +0200 > @@ -14,6 +14,10 @@ > * > */ > > +#if defined(__MVS__) > +#pragma convert("ISO8859-1") > +#endif > + > #define IN_LIBXML > #include "libxml.h" > > --- xpointer.c 2016-05-23 12:01:08.000000000 +0200 > +++ xpointer-fix.c 2017-07-27 14:17:04.000000000 +0200 > @@ -14,6 +14,10 @@ > * dan...@veillard.com > */ > > +#if defined(__MVS__) > +#pragma convert("ISO8859-1") > +#endif > + > #define IN_LIBXML > #include "libxml.h" > - since testapi.c file is huge (over 52000 lines), it's compilation fails: I > skipped the problem by removing all references to testapi in the Makefile.in, > but it would be neater if one can build without test files (I didn't find > an option in configure...) > > - since the name of files (or qualifier) in PDS are limited to 8 I had to > rename xmlschemas.c and xmlschemastypes.c in (resp.) xmlsche.c xmlschet.c > (and I had to modify all occurences of these files accordingly in the rest > of the Makefile !!!). > > - in order to copy objects to PDS, I had the cp command at line 860 of > Makefile.in > > libxml2.la: $(libxml2_la_OBJECTS) $(libxml2_la_DEPENDENCIES) > $(AM_V_CCLD)$(libxml2_la_LINK) -rpath $(libdir) $(libxml2_la_OBJECTS) > $(libxml2_la_LIBADD) $(LIBS) > # Copy objects to PDS > @list='$(libxml2_OBJECTS)' ; for p in $$list; do \ > cp -ACMv $$p "//'<PDS NAME>'"; \ > done > > with <PDS NAME> stands for the name of my PDS and > > libxml2_OBJECTS = SAX.o entities.o encoding.o error.o \ > parserInternals.o parser.o tree.o hash.o list.o xmlIO.o \ > xmlmemory.o uri.o valid.o xlink.o HTMLparser.o \ > HTMLtree.o debugXML.o xpath.o xpointer.o xinclude.o \ > nanohttp.o nanoftp.o triostr.o trio.o catalog.o globals.o \ > threads.o c14n.o xmlstring.o buf.o xmlregexp.o \ > xmlsche.o xmlschet.o xmlunicode.o \ > xmlreader.o relaxng.o dict.o SAX2.o \ > xmlwriter.o legacy.o chvalid.o pattern.o xmlsave.o \ > xmlmodule.o schematron.o xzlib.o > > In order to handle the support of zOS without breaking the existing Makefile > maybe a new option/flag zOs would copy xmlschemas.c and xmlschemastypes.c > files and use specifics > targets rather than existing ones with the longer names... A variable to > handle the PDS name has to be provided also... > _______________________________________________ > xml mailing list, project page http://xmlsoft.org/ > xml@gnome.org > https://mail.gnome.org/mailman/listinfo/xml -- Daniel Veillard | Red Hat Developers Tools http://developer.redhat.com/ veill...@redhat.com | libxml Gnome XML XSLT toolkit http://xmlsoft.org/ http://veillard.com/ | virtualization library http://libvirt.org/ _______________________________________________ xml mailing list, project page http://xmlsoft.org/ xml@gnome.org https://mail.gnome.org/mailman/listinfo/xml