1748104 Members
4956 Online
108758 Solutions
New Discussion

Re: libxml building

 
SOLVED
Go to solution
Volker Halle
Honored Contributor

Re: libxml building

Alexander,

 

the problem is in the directory name:

 

$ set def $1$DGA123:[TST$USERS.][ALEXANDER.VAX.LIBXML2-2_9_1]
%RMS-F-DIR, error in directory name
$ set def $1$DGA123:[TST$USERS.ALEXANDER.VAX.LIBXML2-2_9_1]   ! this works !

 

As a workaround, try setting your default directory using the working SET DEFAULT command above, before you invoke @build_libxml.com

 

 

Solving this problem would most likely require a concealed logical name and changes to your account in SYSUAF:

 

$ define/sys/exec/transl=conc tst$users $1$DGA123:[TST$USERS.]

And your login-directory should become something like TST$USERS:[ALEXANDER]

 

Volker.

AlexanderM
Advisor

Re: libxml building

Thanks. Thsi error is fixed. But there are many another in compillation dependences.  I'll try to resolve it.

 

PS. But in general, I am looking for small xml library with validation written in pure c (or binaries for openvms alpha). It is an ideal if it will have only one library file and header. I want just include it in my project without any system installing.

Jansen_8
Regular Advisor

Re: libxml building

I sucessfully compiled libxml2 for OpenVMS 8.4. See for the the modifactions I had to make:

  http://nchrem.tnw.tudelft.nl/openvms/software2.html#LIBXML2

 

Note that I always set the compilation qualifiers /float=ieee/name=(as_is,short).

The only reason, I do this is that this works for all packages displayed on my web-page, so ensuring inter-package comaptibility.

 

                            Jouk

AlexanderM
Advisor

Re: libxml building

Thanks for the advice.

I've located patch contents into corresponding folders and get the same error:

 

 
Spoiler
$whoami = f$parse(f$environment("PROCEDURE"),,,,"NO_CONCEAL")
$   procdir = f$parse(whoami,,,"DEVICE") + f$parse(whoami,,,"DIRECTORY")
$   set default 'procdir'

 

 
I've resolved it with manual pointing of paths.
After this I've got next compiller errors:
Spoiler
CC/nowarn/DEF=HAVE_CONFIG_H/NAMES=(as_is,SHORTENED)/FLOAT=IEEE/IEEE_MODE=DENORM_
RESULTS/INCLUDE=xml_srcdir/object=TST$USERS:[ALEXANDER.LIBXML2-2_9_1.DEBUG]PAR
SER.OBJ; PARSER.C
 
    (const xmlChar *) "http://www.w3.org/XML/1998/namespace".
.....^
%CC-E-DECLARATOR, Invalid declarator.
at line number 140 in file TST$USERS:[ALEXANDER.LIBXML2-2_9_1.INCLUDE.LIBXML]T
REE.H;1
 
    xmlElementType          type;       /* XML_ATTRIBUTE_DECL, must be second !
*/.
....^
%CC-E-MISSINGTYPE, Missing type specifier or type qualifier.
at line number 254 in file TST$USERS:[ALEXANDER.LIBXML2-2_9_1.INCLUDE.LIBXML]T
REE.H;1
 
    xmlElementType          type;       /* XML_ELEMENT_DECL, must be second ! */
.
....^
%CC-E-MISSINGTYPE, Missing type specifier or type qualifier.
at line number 347 in file TST$USERS:[ALEXANDER.LIBXML2-2_9_1.INCLUDE.LIBXML]T
REE.H;1
 
typedef xmlElementType xmlNsType;.
.......................^
%CC-E-NOSEMI, Missing ";".
at line number 374 in file TST$USERS:[ALEXANDER.LIBXML2-2_9_1.INCLUDE.LIBXML]T
REE.H;1
 
    xmlNsType      type;        /* global or local */.
....^
%CC-E-MISSINGTYPE, Missing type specifier or type qualifier.
at line number 390 in file TST$USERS:[ALEXANDER.LIBXML2-2_9_1.INCLUDE.LIBXML]T
REE.H;1
 
    ((n)->type == XML_ELEMENT_NODE ? NULL : (n)->content).
........^
%CC-E-CLOSEPAREN, Missing ")".
at line number 515 in file TST$USERS:[ALEXANDER.LIBXML2-2_9_1.INCLUDE.LIBXML]T
REE.H;1
 
        htmlElementAllowedHere((parent), (elt)->name).
...............................^
%CC-E-NOTEXPECTING, Error parsing parameter list. Found "(" when expecting one o
f: <type-specifier>, <identifier>, "...", ")".
at line number 291 in file TST$USERS:[ALEXANDER.LIBXML2-2_9_1.INCLUDE.LIBXML]H
TMLPARSER.H;1
 
typedef xmlChSRange *xmlChSRangePtr;.
....................^
%CC-E-NOSEMI, Missing ";".
at line number 29 in file TST$USERS:[ALEXANDER.LIBXML2-2_9_1.INCLUDE.LIBXML]CH
VALID.H;1
 
                                 ((0x61 <= (c)) && ((c) <= 0x7a)) || \.
...................................^
%CC-E-DECLARATOR, Invalid declarator.
at line number 65 in file TST$USERS:[ALEXANDER.LIBXML2-2_9_1.INCLUDE.LIBXML]CH
VALID.H;1
 
                                 xmlIsPubidChar_ch((c)) : 0).
........................................................^
%CC-E-NOSEMI, Missing ";".
at line number 208 in file TST$USERS:[ALEXANDER.LIBXML2-2_9_1.INCLUDE.LIBXML]C
HVALID.H;1
 
                                 ((0x61 <= (c)) && ((c) <= 0x7a))).
...................................^
%CC-E-DECLARATOR, Invalid declarator.
at line number 251 in file TST$USERS:[ALEXANDER.LIBXML2-2_9_1.INCLUDE.LIBXML]P
ARSERINTERNALS.H;1
 
    if (*(p) == 0x10) { p++ ; if (*(p) == 0x13) p++; }.
....^
%CC-E-DECLARATOR, Invalid declarator.
at line number 289 in file TST$USERS:[ALEXANDER.LIBXML2-2_9_1.INCLUDE.LIBXML]P
ARSERINTERNALS.H;1
 
    while ((*p) && (*(p) != '>')) (p)++.
....^
%CC-E-DECLARATOR, Invalid declarator.
at line number 298 in file TST$USERS:[ALEXANDER.LIBXML2-2_9_1.INCLUDE.LIBXML]P
ARSERINTERNALS.H;1
 
    (const xmlChar *) "urn:oasis:names:tc:entity:xmlns:xml:catalog".
.....^
%CC-E-DECLARATOR, Invalid declarator.
at line number 38 in file TST$USERS:[ALEXANDER.LIBXML2-2_9_1.INCLUDE.LIBXML]CA
TALOG.H;1
 
                xmlCatalogSetDefaultPrefer(xmlCatalogPrefer prefer);.
................^
%CC-E-NOSEMI, Missing ";".
at line number 165 in file TST$USERS:[ALEXANDER.LIBXML2-2_9_1.INCLUDE.LIBXML]C
ATALOG.H;1
 
    ctxt->str_xml_ns = xmlDictLookup(ctxt->dict, XML_XML_NAMESPACE, 36);.
..................................................................^
%CC-E-BADEXPR, Invalid expression.
at line number 1043 in file TST$USERS:[ALEXANDER.LIBXML2-2_9_1]PARSER.C;1
 
  ( ((unsigned char *) s)[ 0 ] == c1 && ((unsigned char *) s)[ 1 ] == c2 && \.
......^
%CC-E-DECLARATOR, Invalid declarator.
at line number 1985 in file TST$USERS:[ALEXANDER.LIBXML2-2_9_1]PARSER.C;1
 
    if (*ctxt->input->cur == '%') xmlParserHandlePEReference(ctxt);     \.
....^
%CC-E-DECLARATOR, Invalid declarator.
at line number 2019 in file TST$USERS:[ALEXANDER.LIBXML2-2_9_1]PARSER.C;1
 
                 (ctxt->input->end - ctxt->input->cur < INPUT_CHUNK))   \.
......................^
%CC-E-CLOSEPAREN, Missing ")".
at line number 2038 in file TST$USERS:[ALEXANDER.LIBXML2-2_9_1]PARSER.C;1
 
        ctxt->input->col++;                                             \.
............^
%CC-E-NOSEMI, Missing ";".
at line number 2060 in file TST$USERS:[ALEXANDER.LIBXML2-2_9_1]PARSER.C;1
 
    } else ctxt->input->col++;                                          \.
......^
%CC-E-DECLARATOR, Invalid declarator.
at line number 2070 in file TST$USERS:[ALEXANDER.LIBXML2-2_9_1]PARSER.C;1
 
        while (IS_BLANK_CH(*cur)) {.
................................^
%CC-E-BADEXPR, Invalid expression.
at line number 2106 in file TST$USERS:[ALEXANDER.LIBXML2-2_9_1]PARSER.C;1
 
            while (IS_BLANK_CH(cur)) { /* CHECKED tstblanks.xml */.
...................................^
%CC-E-BADEXPR, Invalid expression.
at line number 2123 in file TST$USERS:[ALEXANDER.LIBXML2-2_9_1]PARSER.C;1
 
        } while (IS_BLANK(cur)); /* CHECKED tstblanks.xml */.
..............................^
%CC-E-BADEXPR, Invalid expression.
at line number 2137 in file TST$USERS:[ALEXANDER.LIBXML2-2_9_1]PARSER.C;1
 
    GROW;.
........^
%CC-E-BADEXPR, Invalid expression.
at line number 2195 in file TST$USERS:[ALEXANDER.LIBXML2-2_9_1]PARSER.C;1
 
        GROW;.
............^
%CC-E-BADEXPR, Invalid expression.
at line number 2226 in file TST$USERS:[ALEXANDER.LIBXML2-2_9_1]PARSER.C;1
 
                GROW;.
....................^
%CC-E-BADEXPR, Invalid expression.
at line number 2230 in file TST$USERS:[ALEXANDER.LIBXML2-2_9_1]PARSER.C;1
 
    } else if  ((RAW == '&') && (NXT(1) == '#')) {.
......^
%CC-E-NOWHILE, Missing "while".
at line number 2257 in file TST$USERS:[ALEXANDER.LIBXML2-2_9_1]PARSER.C;1
 
        GROW;.
............^
%CC-E-BADEXPR, Invalid expression.
at line number 2259 in file TST$USERS:[ALEXANDER.LIBXML2-2_9_1]PARSER.C;1
 
                GROW;.
....................^
%CC-E-BADEXPR, Invalid expression.
at line number 2263 in file TST$USERS:[ALEXANDER.LIBXML2-2_9_1]PARSER.C;1
 
    } else {.
......^
%CC-E-NOWHILE, Missing "while".
at line number 2286 in file TST$USERS:[ALEXANDER.LIBXML2-2_9_1]PARSER.C;1
 
%CC-F-TOOMANYERR, More than 30 errors were encountered in the course of compilat
ion.
%CC-F-ENDDIAGS, !AS completed with !UL diagnostic!%S
%PURGE-W-SEARCHFAIL, error searching for TST$USERS:[ALEXANDER.LIBXML2-2_9_1.DE
BUG]*.*;*
-RMS-E-FNF, file not found

 

 

May be it was called by compiller version (DEC C V6.0-001 on OpenVMS Alpha V 8.3).
H.Becker
Honored Contributor

Re: libxml building

> Solving this problem would most likely require a concealed logical name ...

 

Hmm, to me it looks like there is already a concealed device, otherwise the result of f$parse (..."no_conceal") wouldn't contain the ".][".  And that is what the writer of the DCL script wanted, as that's the meaning of the parse-type "no_conceal". To me it looks like a bug in the script.

H.Becker
Honored Contributor

Re: libxml building

    (const xmlChar *) "http://www.w3.org/XML/1998/namespace".

If that's an exact cut and paste from the compiler message, then it looks like there is still a trailing character, which is shown as ".", here. As we all know, C would expect a ";" at the end. Also, as can be seen in the git repository, the tree.h include file has a

#define XML_XML_NAMESPACE \
    (const xmlChar *) "http://www.w3.org/XML/1998/namespace"

 To me it looks like the "\" is not seen as the last character before the end of the record, so the #define is not continued, hence it is seen as a separate, but invalid declaration => %CC-E-DECLARATOR

Bill Hall
Honored Contributor

Re: libxml building

Try this code should handle the logical device correctly:

 

$!  Test_alexander.com
$!
$   whoami  = f$environment("PROCEDURE")
$   procdev = f$parse(whoami,,,"DEVICE","no_conceal")
$   procdir = f$parse(whoami,,,"DIRECTORY","no_conceal")
$   procdir = procdir -"][" - "><" - "[" - "]" - "<" - ">"
$   procdir = "[" + procdir + "]"
$   procdir = procdev + procdir
$   set default 'procdir'
$!
$   Exit

 

Bill

Bill Hall
H.Becker
Honored Contributor

Re: libxml building

I'm sure that an Alpha or I64 has enough cpu cycles to do this extra processing, but before "fixing" anything I would like to understand what the purpose of "no_conceal" in this context really is: is it needed for a simple "set default" or is there anything else?

Bill Hall
Honored Contributor
Solution

Re: libxml building

Hartmut,

 

Removing the "no_conceal" from the f$parse used to define the whoami symbol would also have worked for the definition of procdir and the subsequent set default 'procdir' as below.

 

$ whoami = f$parse(f$environment("PROCEDURE"))

$ procdir = f$parse(whoami,,,"DEVICE") + f$parse(whoami,,,"DIRECTORY")

$ set default 'procdir'

 

I jumped to the conclusion that the procdir symbol might be parsed as a string later in the procedure to build a temporary logical root or build a subdirectory or a file specification that would then fail.

Bill Hall
AlexanderM
Advisor

Re: libxml building

I've rid from trail symbols. The library was built without any errors. Thanks for the help.