John Benito wrote:
Martin,
The configuration for the EDG on Solaris seems to have some issues in
respect to the compiler command line option or maybe I am just trying to
build something that does not make good sense (typical tester - try each
and every option). If you try to do a BUILDMODE=shared,threads it
passes a -shared flag to eccp, which is not a flag that EDG front-end
recognizes.
Yes, AFAIK, there is no way to build a shared library with EDG eccp.
The EDG eccp demo also expects gcc 3.x or better as the back end but
doesn't like the binutils that g++ 3.x normally requires on Solaris.
So in my builds I set up gcc 3/4 without GNU binutils (i.e., rely on
the native system linker). That makes eccp work but doesn't let you
use the underlying g++ to link C++ code. It's kind of a pain, but
what wouldn't I do for strict conformance? ;-)
BTW, I am working on a Solaris box that is running 5.10. Am currently
seeing quite a few issues with building with EDG, is 5.10 supported?
I have 3.6 on Solaris 9 but I haven't tried it on 10 yet. Let me
give it a try and get back to you. You might be able to get a more
reliable answer straight from EDG (assuming they've tested it there).
Have not taken the time to look at the diagnostics yet. Currently
trying the command
make BUILDDIR=/home/benito/stdcxx15d BUILDMODE=debug,threads
CONFIG=eccp.config
I would suggest
make BUILDDIR=/home/benito/stdcxx-11s \
BUILDTYPE=11s \
CONFIG=eccp.config
Martin
Thanks,
jb -
Martin Sebor wrote:
John Benito wrote:
Martin,
Good, because that is what I did (commented out the MAPFILE). It
seems to have built a library, will test it tomorrow. Thanks for all
the help!
FWIW, if you're planning to test it for conformance you should be
aware of the _RWSTD_STRICT_ANSI (or _RWSTD_NO_EXTENSIONS) macros
that, when #defined, disable most extensions. While the library
should be binary comatible either way you should probably build
it with the same setting of the macro as how you plan to test it
since it might also disable some extensions in the library sources.
In addition, to achieve the the strictest possible conformance I
would suggest to use a recent version of EDG eccp (3.x) on Solaris.
With it the C library headers (such as <stddef.h> and <cstddef>)
do the right thing in terms of introducing the required symbols
only in the required namespaces and not polluting them with any
others. That said, due to the restriction to just the names
required by the C and C++ standards and nothing else the library
isn't terribly useful for development in this mode.
Happy Holidays!
And happy testing to you! :)
Martin