I wrote earlier
> Date: Thu, 23 Dec 2004 15:03:47
in response to Jeff Best
> Thanks for the comments. My own attempts to understand the gcc and ld
> 'man' files had led me to the sorts of points you were making, and
> my attempts to understand $popsrc/extern_symbols.p had led me to
> the conclusion that everything there was probably as it should be
> including this, as far as I could tell
>
> #_ELSEIF DEF OSF1 or DEF LINUX_ELF
> lconstant macro DLOPEN_FLAGS = 16:001; ;;; RTLD_LAZY
Further investigation showed that I was wrong, and Jeff's hunch that
the linux version sould be the same as the Solaris version was
confirmed, especially after I followed his link to
http://www.dwheeler.com/program-library/Program-Library-HOWTO/dl-libraries.html
and looked in
/usr/include/bits/dlfcn.h
which stated:
/* If the following bit is set in the MODE argument to `dlopen',
the symbols of the loaded object and its dependencies are made
visible as if the object were linked directly into the program. */
#define RTLD_GLOBAL 0x00100
The modified system source file is now available here, if anyone
wants it:
http://www.cs.bham.ac.uk/research/poplog/src/new/extern_symbols.p
this is the original
http://www.cs.bham.ac.uk/research/poplog/src/new/extern_symbols.p.orig
and this file explains the change:
http://www.cs.bham.ac.uk/research/poplog/src/new/extern_symbols.txt
This bug has been in linux poplog since it was added to the Free
Poplog web site around 1989. My hunch is that the same change should
be made to the OSF version (defined in the file as the Linux version
was previously), but I doubt that anyone is now using an OSF version
of poplog.
Jeff can you import the changed file to the sourceforge site,
please?
This problem was fixed within about 48 hours of being posted to the
net.
Many thanks to David Young for helping to identify the bug, and Jeff
Best for pointing at the solution.
Open source wins again.
Thanks.
Aaron
====
Aaron Sloman, ( http://www.cs.bham.ac.uk/~axs/ )
PAPERS: http://www.cs.bham.ac.uk/research/cogaff/ (also talks in /talks )
FREE BOOK: http://www.cs.bham.ac.uk/research/cogaff/crp/
FREE TOOLS: http://www.cs.bham.ac.uk/research/poplog/packages/simagent.html
|