Skip to content

building XML-0.95-1 on MacOS

6 messages · Sean Davis, Duncan Temple Lang, stefano iacus +1 more

#
I am trying to build the XML package on MacOS.  I am using the fink 
installation of libxml-1.8.17.  The configuration information is:

Configuration information:

Libxml settings

libxml include directory: /sw/include/gnome-xml
libxml library directory: -L/sw/lib -lxml -lz -lz  -lxml
libxml 2:                 no

Compilation flags:         -I/sw/include/gnome-xml 
-I/sw/include/gnome-xml/libxml -DLIBXML -I/sw/include/gnome-xml
Link flags:               -L/sw/lib -lxml -lz -lz  -lxml



Compiling produced the following error:
gcc -bundle -flat_namespace -undefined suppress -L/sw/lib 
-L/usr/local/lib -o XML.so DocParse.o EventParse.o ExpatParse.o 
HTMLParse.o RSDTD.o RUtils.o Utils.o XMLEventParse.o XMLTree.o 
-L/sw/lib -lxml -lz -lz  -lxml -lcc_dynamic
ld: multiple definitions of symbol _xmlParserError
Utils.o definition of _xmlParserError in section (__TEXT,__text)
/sw/lib/libxml.dylib(error.lo) definition of _xmlParserError
make: *** [XML.so] Error 1
ERROR: compilation failed for package 'XML'

I saw that back in September there was a discussion about fixing this 
problem that involved passing -m to the linker.  My questions are (1) 
what do I need to modify (given that I am using R INSTALL to keep 
things simple for myself) to use the -Xlinker -m option when linking 
XML.so and (2) does this actually work despite the fact that there are 
then two definitions associated with the same symbol?  I guess a third 
question follows from the second--are there other fixes that I can use 
to build the package?

Thanks in advance,
Sean
#
1. Just download the package and unpack it.
2. Use R INSTALL until it breaks
3. Then go to the src directory and give the gcc command below with  
-Xlinker -m
4. Then use R INSTALL again

There are not two definitions associated with the same symbol after  
linking. This
unpleasant hack uses the definition in Utils.o, as intended.  This  
situation will
persist until either Duncan puts this fix into XML or until Stefano  
decides to go
with two-level namespaces for Darwin/Aqua R packages.
On Oct 9, 2003, at 7:22, Sean Davis wrote:

            
===
Jan de Leeuw; Professor and Chair, UCLA Department of Statistics;
Editor: Journal of Multivariate Analysis, Journal of Statistical  
Software
US mail: 8130 Math Sciences Bldg, Box 951554, Los Angeles, CA 90095-1554
phone (310)-825-9550;  fax (310)-206-5658;  email: deleeuw@stat.ucla.edu
homepage: http://gifi.stat.ucla.edu
   
------------------------------------------------------------------------ 
-------------------------
           No matter where you go, there you are. --- Buckaroo Banzai
                    http://gifi.stat.ucla.edu/sounds/nomatter.au
#
Hi Sean.

  Two things. There is a new version of the XML package
now on the Omegahat web site:

  http://www.omegahat.org/RSXML/XML_0.95-3.tar.gz

That uses a different approach to dealing with errors and avoids
having to redefine the xmlParserError() routine.  As a result,
one should not need the -m flag.

Secondly, unless there are good reasons for using
libxml-1.8.*, it is preferrable to use the libxml2-2*
series. 

The configuration for this version of the XML package has been
"upgraded", but may require some assistance.  If it doesn't compile
out of the box, please set the environment variable XML_CONFIG to the
name of the xml-config or xml2-config script that provides the
relevant information. I'll fix this up in the next release.

 D.
Sean Davis wrote:

  
    
#
Duncan is working on this at lower level in the xml package code.
As you see on cran with XML version 95-3 which is still not optimal.  
All will be fixed in few days when Duncan has finished travelling  
around :))

Btw, it preferable to use libxml2 which builds and configs fine without  
problems.

stefano
On Gioved?, ott 9, 2003, at 16:42 Europe/Rome, Jan de Leeuw wrote:

            
#
Stefano asked me to post something along the following lines
about the XML package.

I have modified the configuration for the XML package so that it
looks for libxml2 if instructed, or alternatively looks for libxml 1
and, if that is not present, then libxml 2.

The new version:  XML_0.95-4.tar.gz is on the Omegahat
Web site:
   http://www.omegahat.org/RSXML

So one should not have to set any environment variables or specify
configuration arguments if you only have libxml2 on your machine. If
you have both libxml and libxml2, you will get libxml 1 by default.
Use --configure-args='--with-libxml2' or set the environment variable
XML_CONFIG to xml2-config.

At some point in the future, we will stop supporting
old versions of libxml with no xml-config script,
header files in odd places, ...  This is what
makes the configuration so complex.


 D.
Duncan Temple Lang wrote:

  
    
#
This builds fine on Panther, using the libxml2 provided
by Apple in /usr/lib.
On Oct 9, 2003, at 9:02, Duncan Temple Lang wrote:

            
===
Jan de Leeuw; Professor and Chair, UCLA Department of Statistics;
Editor: Journal of Multivariate Analysis, Journal of Statistical  
Software
US mail: 8130 Math Sciences Bldg, Box 951554, Los Angeles, CA 90095-1554
phone (310)-825-9550;  fax (310)-206-5658;  email: deleeuw@stat.ucla.edu
homepage: http://gifi.stat.ucla.edu
   
------------------------------------------------------------------------ 
-------------------------
           No matter where you go, there you are. --- Buckaroo Banzai
                    http://gifi.stat.ucla.edu/sounds/nomatter.au