Don't know what to say Christopher. It seems like we're using the same
system, but it works for me. Notice that it is definately not a
threaded perl (usethreads=undef).

I'm assuming that you built Xerces-C from source? This was all I needed
to do to get it to work.

jas.

Here's my config:

uname -a
Linux genomics.biochem.uci.edu 2.2.18 #7 SMP Thu Mar 22 14:18:12 PST 2001 i686 unknown

gcc -v
Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/2.96/specs
gcc version 2.96 20000731 (Red Hat Linux 7.1 2.96-81)

perl -V
Summary of my perl5 (revision 5.0 version 6 subversion 1) configuration:
  Platform:
    osname=linux, osvers=2.2.18, archname=i686-linux-ld
    uname='linux genomics.biochem.uci.edu 2.2.18 #7 smp thu mar 22 14:18:12 pst 2001 
i686 unknown '
    config_args=''
    hint=recommended, useposix=true, d_sigaction=define
    usethreads=undef use5005threads=undef useithreads=undef usemultiplicity=undef
    useperlio=undef d_sfio=undef uselargefiles=define usesocks=undef
    use64bitint=undef use64bitall=undef uselongdouble=define
  Compiler:
    cc='gcc', ccflags ='-fno-strict-aliasing -D_LARGEFILE_SOURCE 
-D_FILE_OFFSET_BITS=64',
    optimize='-O2',
    cppflags='-fno-strict-aliasing'
    ccversion='', gccversion='2.96 20000731 (Red Hat Linux 7.1 2.96-81)', 
gccosandvers=''
    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
    ivtype='long', ivsize=4, nvtype='long double', nvsize=12, Off_t='off_t', 
lseeksize=8
    alignbytes=4, usemymalloc=n, prototype=define
  Linker and Libraries:
    ld='gcc', ldflags =' -L/usr/local/lib'
    libpth=/usr/local/lib /lib /usr/lib
    libs=-lnsl -lndbm -lgdbm -ldl -lm -lc -lposix -lcrypt -lutil
    perllibs=-lnsl -ldl -lm -lc -lposix -lcrypt -lutil
    libc=/lib/libc-2.2.2.so, so=so, useshrplib=false, libperl=libperl.a
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-rdynamic'
    cccdlflags='-fpic', lddlflags='-shared -L/usr/local/lib'


Characteristics of this binary (from libperl): 
  Compile-time options: USE_LONG_DOUBLE USE_LARGE_FILES
  Built under linux
  Compiled at May  9 2001 12:24:02
  @INC:
    /usr/local/lib/perl5/5.6.1/i686-linux-ld
    /usr/local/lib/perl5/5.6.1
    /usr/local/lib/perl5/site_perl/5.6.1/i686-linux-ld
    /usr/local/lib/perl5/site_perl/5.6.1
    /usr/local/lib/perl5/site_perl



"Christopher Gutteridge" <[EMAIL PROTECTED]> writes:

> > * perl -V
> Summary of my perl5 (revision 5.0 version 6 subversion 1) configuration:
>   Platform:
>     osname=linux, osvers=2.4.0-0.99.11, archname=i686-linux
>     uname='linux lemur 2.4.0-0.99.11 #1 wed jan 24 16:07:17 est 2001 i686 unknown '
>     config_args=''
>     hint=recommended, useposix=true, d_sigaction=define
>     usethreads=undef use5005threads=undef useithreads=undef usemultiplicity=undef
>     useperlio=undef d_sfio=undef uselargefiles=define usesocks=undef
>     use64bitint=undef use64bitall=undef uselongdouble=undef
>   Compiler:
>     cc='cc', ccflags ='-fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE 
>-D_FILE_OFFSET_BITS=64',
>     optimize='-O2',
>     cppflags='-fno-strict-aliasing -I/usr/local/include'
>     ccversion='', gccversion='2.96 20000731 (Red Hat Linux 7.0)', gccosandvers=''
>     intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
>     d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
>     ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
>     alignbytes=4, usemymalloc=n, prototype=define
>   Linker and Libraries:
>     ld='cc', ldflags =' -L/usr/local/lib'
>     libpth=/usr/local/lib /lib /usr/lib
>     libs=-lnsl -lndbm -lgdbm -ldl -lm -lc -lcrypt -lutil
>     perllibs=-lnsl -ldl -lm -lc -lcrypt -lutil
>     libc=/lib/libc-2.2.1.so, so=so, useshrplib=false, libperl=libperl.a
>   Dynamic Linking:
>     dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-rdynamic'
>     cccdlflags='-fpic', lddlflags='-shared -L/usr/local/lib'
> 
> 
> > * gcc -v 
> Characteristics of this binary (from libperl): 
>   Compile-time options: USE_LARGE_FILES
>   Built under linux
>   Compiled at May 25 2001 11:19:00
>   @INC:
>     /usr/local/lib/perl5/5.6.1/i686-linux
>     /usr/local/lib/perl5/5.6.1
>     /usr/local/lib/perl5/site_perl/5.6.1/i686-linux
>     /usr/local/lib/perl5/site_perl/5.6.1
>     /usr/local/lib/perl5/site_perl
>     .
> 
> 
> > * uname -a
> Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/2.96/specs
> gcc version 2.96 20000731 (Red Hat Linux 7.0)
> 
> > If linux what distribution are you running?
> Redhat 7.1 (update from 6.2, not installed as 7.1)
> 
> Linux lemur 2.4.0-0.99.11 #1 Wed Jan 24 16:07:17 EST 2001 i686 unknown
> 
> On Mon, Jul 02, 2001 at 10:08:58AM -0600, Jason E. Stewart wrote:
> > "Christopher Gutteridge" <[EMAIL PROTECTED]> writes:
> > 
> > > I'm running a non-pthreads version of perl, and so I'm getting an
> > > error when xerces attempts to call the mutex_lock.
> > 
> > Hi Christopher,
> > 
> > This is the second time I've heard this, so I'm becoming a
> > believer... 
> > 
> > I am *not* running a threaded perl and Xerces works fine for me. The
> > Makefile forces -lpthread to be included on the link line, so this
> > should work. I don't know what is causing it to fail.
> > 
> > Could you do a 
> > 
> > 
> > > Would it be possible to make the perl module Xerces.so statically
> > > linked against pthreads if the perl install isn't? Would this work?
> > > Or could it check at runtime and dynamically load pthreads?
> > 
> > No matter how much I delve into dynamic loading, I just can't seem to
> > grasp all the issues involved. Meaning in this case, I can't really
> > answer your question with 100% certainty.
> > 
> > If -lpthreads was used during the link phase, then the answer really
> > ought to be: yes the linker will go out and load pthreads for you... 
> > 
> > And yes, you should be able to force inclusion of the pthread methods into
> > Xerces.so. The compiler/linker option is of course different for each
> > compiler/linker combo and I'm not sure it's one of the ones that perl
> > tracks. For GNU ld it is --whole-archive:
> > 
> >        --whole-archive
> >               For each archive mentioned on the command line  af�
> >               ter  the  --whole-archive option, include every ob�
> >               ject file in the archive in the link,  rather  than
> >               searching  the  archive  for  the  required  object
> >               files.  This is normally used to  turn  an  archive
> >               file into a shared library, forcing every object to
> >               be included in the resulting shared library.
> > 
> > Try that manually in your link and see what happens.
> > 
> > > Or as a rather ick last resource, if you're compiling it for a non
> > > threaded perl could you just add in a mutex_lock dummy functions
> > > (and for any other that xerces-c uses). I believe (hand not on
> > > heart) that xerces is only using these to be thread safe, and an
> > > unthreaded perl will be pretty damn thread safe.
> > 
> > I'd like to figure out why it's not working the way it should.
> > 
> > > It took me a while to figure out what's going on, so it's possible
> > > that this is causing trouble for other people too.
> > 
> > Your second in line on this one, which probably means there are others
> > that tried it and failed and didn't bother to post to the list. 
> > 
> > > (or maybe I've just missed a vital config option <grin>)
> > 
> > Oh, yeah --DWIM ...
> > 
> > (Do What I Mean)
> > 
> > jas.
> > 
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> 
> -- 
> Christopher Gutteridge -- [EMAIL PROTECTED] -- +44 (0)23 8059 4833
> It is not how you look at life, as much as how many ways.
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to