> Why doesn't OpenBSD, Linux, or Solaris x86 need this patch?

I tried to compile and run attached program on dual-processor Compaq
Proliant server running RedHat Linux 6.1 at Compaq testdrive site (thanks,
Compaq!) and guess what? Compiled with -fsjlj-exceptions Linux bails out with
"Not enough memory" error message. Compiled without -fsjlj-exceptions, it dumps
core. It _could_ use some patches  after all :)

I would really appreciate if people having access to the OpenBSD/i386 
Solaris/x86 boxes will try the following program on these boxes and share
results with us. I will be greatly surprised if OpenBSD will survive the test
since their egcs looks like stock egcs 1.1.2 version which has not been heavily
patched from original Cygnus version. 

----------------------------------
E-Mail: Alexander N. Kabaev <[EMAIL PROTECTED]>
Date: 17-Jan-00
Time: 20:30:14
----------------------------------

# This is a shell archive.  Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file".  Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
#       Makefile
#       foo.cc
#       main.cc
#
echo x - Makefile
sed 's/^X//' >Makefile << 'END-of-Makefile'
XCXX=g++
XLD=ld
XCXXFLAGS=-g -fpic -fexceptions
X
Xall: arf
X
Xarf: main.o foo.so
X       ${CXX} -o arf main.o foo.so
X
X
Xfoo.so: foo.o
X       ${LD} -Bshareable -o foo.so foo.o
X
Xclean:
X       rm -f arf *.o *.so
END-of-Makefile
echo x - foo.cc
sed 's/^X//' >foo.cc << 'END-of-foo.cc'
X#include <stdio.h>
X
Xint Foo ();
X
Xint Baz ()
X{
X    char *msg = "Bax thowing..."; 
X    printf ("in baz\n");
X    throw msg;
X    printf ("baz should not be here.\n");
X}
X
X
Xint Foo ()
X{
X    try {
X        Baz ();
X    } catch (char *msg) {
X        printf ("foo caught %s\n", msg);
X    }
X}
END-of-foo.cc
echo x - main.cc
sed 's/^X//' >main.cc << 'END-of-main.cc'
X#include <stdio.h>
X
Xint Foo ();
X
Xint
Xmain ()
X{
X    try {
X        printf ("calling foo\n");
X        Foo ();
X        printf ("returned from foo\n");
X    } catch (char *msg) {
X        printf ("exception from foo: %s\n", msg);
X    } catch (...) {
X        printf ("unknown exception\n");
X    }
X}
END-of-main.cc
exit




To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to