public inbox for gcc-prs@sourceware.org help / color / mirror / Atom feed
From: swansma@yahoo.com To: gcc-gnats@gcc.gnu.org Subject: c++/5282: .so exception handler works in 3.0.2 not 3.0.3 Date: Fri, 04 Jan 2002 18:56:00 -0000 [thread overview] Message-ID: <20020105024743.3299.qmail@sources.redhat.com> (raw) >Number: 5282 >Category: c++ >Synopsis: .so exception handler works in 3.0.2 not 3.0.3 >Confidential: no >Severity: serious >Priority: high >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Fri Jan 04 18:56:01 PST 2002 >Closed-Date: >Last-Modified: >Originator: swansma@yahoo.com >Release: gcc version 3.0.3 >Organization: >Environment: Reading specs from /usr/lib/gcc-lib/i586-mandrake-linux-gnu/3.0.3/specs Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share/gcc-3.0.3 --enable-shared --enable-threads=posix --disable-checking --enable-long-long --enable-cstdio=stdio --enable-clocale=generic --enable-languages=c,c++,f77,objc,java --program-suffix=-3.0.3 --enable-objc-gc --host=i586-mandrake-linux-gnu Thread model: posix >Description: Simple test program works in 3.0.2, not in 3.0.3. A simple try { throw Object() }catch{Object e} fails. code and make targets in How-To-Repeat tuxmodule.h (attached) is required to build (and is from the redhat (Ingo Molnar) Tux HTTP server package. >How-To-Repeat: ******* Make targets ******** bugLoad: bugLoad.c BugLib.tux.so ${GCC} -rdynamic -ldl bugLoad.c -o bugLoad BugLib.o: BugLib.cpp ${CC} ${RELEASE_CPPFLAGS} -c BugLib.cpp BugLib.tux.so: BugLib.o ${CC} ${LINK} -O2 -Wall -D_REENTRANT -shared -o $@ BugLib.o -lstdc++ -lgcc_s chmod a-x $@ ****** bugLoad.c (./bugLoad shows bug) ******** #include <stdio.h> #include <stdarg.h> #include <stdlib.h> #include <signal.h> #include <sys/wait.h> #include <linux/unistd.h> #include <unistd.h> #include <string.h> #include <pwd.h> #include <grp.h> #include <sys/stat.h> #include <sys/types.h> #include <sys/stat.h> #include <sys/time.h> #include <regex.h> #include <fcntl.h> #include <time.h> #include <sys/mman.h> #include <dlfcn.h> #include <popt.h> #include <sys/socket.h> #include <ctype.h> //#include <glib.h> int main(int argc, char** argv) { void* handle; void (*mod_init) (void); char libname[] = "./BugLib.tux.so"; handle = dlopen (libname, RTLD_LAZY); printf ("handle: %p\n", handle); if (!handle) { printf("%s: dlopen() handle missing", dlerror()); } mod_init = dlsym(handle, "TUXAPI_init"); if (!mod_init) { printf("%s: TUXAPI_init() function missing", strerror(errno)); } printf ("TUXAPI_init: %p\n", mod_init); if(mod_init) mod_init(); } ******* BugLib.cpp (shows exception bug, requires Tux) *** extern "C" { #include "tuxmodule.h" void TUXAPI_init(); int TUXAPI_handle_events (user_req_t *req); } #include "syslog.h" #include "TestException.h" int TUXAPI_handle_events (user_req_t *req) { return TUX_RETURN_USERSPACE_REQUEST; } //TUXAPI_handle_events // 1. open syslog // 2. void TUXAPI_init() { openlog("BugLib", LOG_PID | LOG_CONS | LOG_NDELAY, LOG_DAEMON); syslog(LOG_INFO, "TUXAPI_init()"); try { throw TestException("test123"); return; } catch(TestException e) { // This never happens syslog(LOG_INFO, "Success"); } } ******* TestException.h ******** #ifndef _EXCEPTION_H #define _EXCEPTION_H #include <string.h> class TestException { protected: char msg[1024]; public: TestException(const char *errorMessage) { strcpy(msg, errorMessage); } }; #endif >Fix: none - downgrade to 3.0.2 if you can find rpms (likely not). >Release-Note: >Audit-Trail: >Unformatted: ----gnatsweb-attachment---- Content-Type: text/x-chdr; name="tuxmodule.h" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="tuxmodule.h" I2lmbmRlZiBfVFVYX01PRFVMRV9ICiNkZWZpbmUgX1RVWF9NT0RVTEVfSAoKLyoKICogVFVYIC0g SW50ZWdyYXRlZCBIVFRQIGxheWVyIGFuZCBPYmplY3QgQ2FjaGUKICoKICogQ29weXJpZ2h0IChD KSAyMDAwLCBJbmdvIE1vbG5hciA8bWluZ29AcmVkaGF0LmNvbT4KICoKICogbW9kdWxlLmg6IHVz ZXItc3BhY2UgcG9ydGlvbnMgb2YgdGhlIEhUVFAgbW9kdWxlIEFQSQogKi8KCiNpbmNsdWRlIDxz dGRpby5oPgojaW5jbHVkZSA8dW5pc3RkLmg+CiNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KI2luY2x1 ZGUgPHN5cy93YWl0Lmg+CiNpbmNsdWRlIDxzeXMvbW1hbi5oPgojaW5jbHVkZSA8c3lzL3NvY2tl dC5oPgojaW5jbHVkZSA8c3lzL3RpbWUuaD4KI2luY2x1ZGUgPHVuaXN0ZC5oPgojaW5jbHVkZSA8 bmV0aW5ldC9pbi5oPgojaW5jbHVkZSA8bmV0ZGIuaD4KI2luY2x1ZGUgPGVycm5vLmg+CiNpbmNs dWRlIDxtYWxsb2MuaD4KI2luY2x1ZGUgPGZjbnRsLmg+CiNpbmNsdWRlIDx0aW1lLmg+CiNpbmNs dWRlIDxjdHlwZS5oPgojaW5jbHVkZSA8c3RkbGliLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KI2lu Y2x1ZGUgPG5ldGluZXQvdGNwLmg+CgojaW5jbHVkZSAidHV4LmgiCgpleHRlcm4gY2hhciAqVFVY QVBJX3ZlcnNpb247CmV4dGVybiB1bnNpZ25lZCBsb25nIFRVWEFQSV92ZXJzaW9uX2xlbjsKZXh0 ZXJuIGNoYXIgKlRVWEFQSV9kb2Nyb290OwpleHRlcm4gdW5zaWduZWQgbG9uZyBUVVhBUElfZG9j cm9vdF9sZW47CmV4dGVybiBjaGFyICpUVVhBUElfc2VydmVybmFtZTsKZXh0ZXJuIHVuc2lnbmVk IGxvbmcgVFVYQVBJX3NlcnZlcm5hbWVfbGVuOwoKZXh0ZXJuIGNoYXIgKipUVVhBUElfbW9kdWxl bmFtZV9hcnJheTsKCiNkZWZpbmUgQ0dJX1NFUlZFUl9OQU1FKHJlcSkgVFVYQVBJX3NlcnZlcm5h bWUKI2RlZmluZSBDR0lfU0VSVkVSX05BTUVfTEVOKHJlcSkgVFVYQVBJX3NlcnZlcm5hbWVfbGVu CiNkZWZpbmUgQ0dJX0dBVEVXQVlfSU5URVJGQUNFKHJlcSkgIkNHSS8xLjEiCiNkZWZpbmUgQ0dJ X1NFUlZFUl9QUk9UT0NPTChyZXEpIFwKCQkoKChyZXEpLT5odHRwX3ZlcnNpb24gPT0gSFRUUF8x XzEpID8gIkhUVFAvMS4xIiA6ICJIVFRQLzEuMCIpCiNkZWZpbmUgQ0dJX1NFUlZFUl9QT1JUKHJl cSkgODAKI2RlZmluZSBDR0lfUkVRVUVTVF9NRVRIT0QocmVxKSAoeyAgCQkJXAoJY2hhciAqX19y ZXM7CQkJCQlcCgkJCQkJCQlcCiAgICAgICAgc3dpdGNoICgocmVxKS0+aHR0cF9tZXRob2QpIAkJ CVwKICAgICAgICB7CQkJCQkJXAogICAgICAgICAgICAgICAgY2FzZSBNRVRIT0RfR0VUOgkJCVwK ICAgICAgICAgICAgICAgICAgICAgICAgX19yZXMgPSAiR0VUIjsgYnJlYWs7CQlcCiAgICAgICAg ICAgICAgICBjYXNlIE1FVEhPRF9QT1NUOgkJCVwKICAgICAgICAgICAgICAgICAgICAgICAgX19y ZXMgPSAiUE9TVCI7IGJyZWFrOwkJXAogICAgICAgICAgICAgICAgY2FzZSBNRVRIT0RfSEVBRDoJ CQlcCiAgICAgICAgICAgICAgICAgICAgICAgIF9fcmVzID0gIkhFQUQiOyBicmVhazsJCVwKICAg ICAgICAgICAgICAgIGNhc2UgTUVUSE9EX1BVVDoJCQlcCiAgICAgICAgICAgICAgICAgICAgICAg IF9fcmVzID0gIlBVVCI7IGJyZWFrOwkJXAogICAgICAgICAgICAgICAgZGVmYXVsdDoJCQkJXAog ICAgICAgICAgICAgICAgICAgICAgICBfX3JlcyA9ICJOT05FIjsgYnJlYWs7CQlcCiAgICAgICAg fQkJCQkJCVwKCV9fcmVzOwkJCQkJCVwKfSkKI2RlZmluZSBDR0lfSFRUUF9BQ0NFUFQocmVxKSAo KHJlcSktPmFjY2VwdCkKI2RlZmluZSBDR0lfSFRUUF9VU0VSX0FHRU5UKHJlcSkgKChyZXEpLT51 c2VyX2FnZW50KQojZGVmaW5lIENHSV9IVFRQX1JFRkVSRVIocmVxKSAoKHJlcSktPnJlZmVyZXIp CiNkZWZpbmUgQ0dJX1BBVEhfVFJBTlNMQVRFRChyZXEpIChUVVhBUElfZG9jcm9vdCkKI2RlZmlu ZSBDR0lfRE9DVU1FTlRfUk9PVChyZXEpIChUVVhBUElfZG9jcm9vdCkKI2RlZmluZSBDR0lfUEFU SF9JTkZPKHJlcSkgKChyZXEpLT5xdWVyeSkKI2RlZmluZSBDR0lfU0NSSVBUX05BTUUocmVxKSAo VFVYQVBJX21vZHVsZW5hbWVfYXJyYXlbKHJlcSktPm1vZHVsZV9pbmRleF0pCiNkZWZpbmUgQ0dJ X1FVRVJZX1NUUklORyhyZXEpICgocmVxKS0+cXVlcnkpCgovLyBGb3IgdGhlIHRpbWUgYmVpbmcg eW91J2xsIGhhdmUgdG8gdXNlIEFDVElPTl9HRVRfSEVBREVSUyAKLy8gYW5kIGRlY29kZSB0aGUg aW5mbyB5b3Vyc2VsZiBpZiB5b3Ugd2FudCB0byBkbyBhdXRoZW50aWNhdGlvbi4KCiNkZWZpbmUg Q0dJX1JFTU9URV9VU0VSKHJlcSkgIiIKI2RlZmluZSBDR0lfUkVNT1RFX0FVVEhfVFlQRShyZXEp ICIiCiNkZWZpbmUgQ0dJX0FOTk9UQVRJT05fU0VSVkVSKHJlcSkgIiIKCiNkZWZpbmUgQ0dJX0NP TlRFTlRfVFlQRShyZXEpICgocmVxKS0+Y29udGVudF90eXBlKQoKZXh0ZXJuIGludCB0dXggKHVu c2lnbmVkIGludCBhY3Rpb24sIHVzZXJfcmVxX3QgKnJlcSk7CgpleHRlcm4gdm9pZCAqIFRVWEFQ SV9tYWxsb2Nfc2hhcmVkICh1bnNpZ25lZCBpbnQgbGVuKTsKZXh0ZXJuIGNoYXIgKiBUVVhBUElf YWxsb2NfcmVhZF9vYmplY3RidWYgKHVzZXJfcmVxX3QgKnJlcSwgaW50IGZkKTsKZXh0ZXJuIHZv aWQgVFVYQVBJX2ZyZWVfb2JqZWN0YnVmICh1c2VyX3JlcV90ICpyZXEsIHZvaWQgKmJ1Zik7Cgoj ZGVmaW5lIEJVRygpCQkJCQkJCQlcCmRvIHsJCQkJCQkJCQlcCglwcmludGYoIlRVWCBCVUcgYXQg JWQ6JXMhXG4iLCBfX0xJTkVfXywgX19GSUxFX18pOwkJXAoJdHV4KFRVWF9BQ1RJT05fU1RPUFRI UkVBRCwgTlVMTCk7CQkJCVwKCXR1eChUVVhfQUNUSU9OX1NIVVRET1dOLCBOVUxMKTsJCQkJCVwK CSooaW50KikwPTA7CQkJCQkJCVwKCWV4aXQoLTEpOwkJCQkJCQlcCn0gd2hpbGUgKDApCgojZGVm aW5lIExPQ0tfUFJFRklYICJsb2NrIDsgIgoKI2RlZmluZSBiYXJyaWVyKCkgX19hc21fXyBfX3Zv bGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKQpzdHJ1Y3QgX19kdW1teSB7IHVuc2lnbmVkIGxvbmcg YVsxMDBdOyB9OwojZGVmaW5lIEFERFIgKCoodm9sYXRpbGUgc3RydWN0IF9fZHVtbXkgKikgYWRk cikKCmV4dGVybiBfX2lubGluZV9fIGludCB0ZXN0X2FuZF9zZXRfYml0KGludCBuciwgdm9sYXRp bGUgdm9pZCAqIGFkZHIpCnsKCWludCBvbGRiaXQ7CgoJX19hc21fXyBfX3ZvbGF0aWxlX18oIExP Q0tfUFJFRklYCgkJImJ0c2wgJTIsJTFcblx0c2JibCAlMCwlMCIKCQk6Ij1yIiAob2xkYml0KSwi PW0iIChBRERSKQoJCToiSXIiIChucikpOwoJcmV0dXJuIG9sZGJpdDsKfQoKZXh0ZXJuIF9faW5s aW5lX18gdm9pZCBUVVhBUElfZG93biAoaW50ICpzZW0pCnsKCXdoaWxlICh0ZXN0X2FuZF9zZXRf Yml0KDAsIHNlbSkpCgkJYmFycmllcigpOwp9CgpleHRlcm4gX19pbmxpbmVfXyB2b2lkIFRVWEFQ SV91cCAoaW50ICpzZW0pCnsKCSooKHZvbGF0aWxlIGludCAqKXNlbSkgPSAwOwp9CgojZGVmaW5l IFRVWF9ERUJVRyAwCgojaWYgVFVYX0RFQlVHCiMgZGVmaW5lIERwcmludGsoeC4uLikgZG8geyBw cmludGYoeCk7IGZmbHVzaChzdGRvdXQpOyB9IHdoaWxlICgwKQojZWxzZQojIGRlZmluZSBEcHJp bnRrKHguLi4pIGRvIHsgfSB3aGlsZSAoMCkKI2VuZGlmCgojZGVmaW5lIEhUVFBfVFJBQ0UocmVx LGluZm8pIERwcmludGsoIkhUVFAgdHJhY2UgYXQgJXM6JWQsIHJlcXVlc3QgJXAsIGluZm8gJWQs IGV2ZW50ICVkIChtZXRoOiVkLCBxdWVyeTolcywgY29va2llczolcykuXG4iLCBfX0ZJTEVfXywg X19MSU5FX18sIChyZXEpLT5pZCwgaW5mbywgKHJlcSktPmV2ZW50LCAocmVxKS0+aHR0cF9tZXRo b2QsIChyZXEpLT5xdWVyeSwgKHJlcSktPmNvb2tpZXNfbGVuID8gKHJlcSktPmNvb2tpZXMgOiAi PG5vIGNvb2tpZXM+IikKCiNlbmRpZgo=
next reply other threads:[~2002-01-05 2:56 UTC|newest] Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top 2002-01-04 18:56 swansma [this message] 2002-01-04 20:26 Craig Rodrigues 2002-01-04 20:53 rodrigc 2002-01-05 6:36 Mark Swanson 2002-01-05 14:14 rodrigc 2002-01-05 15:06 Mark Swanson 2002-01-05 15:16 Craig Rodrigues 2002-01-05 16:16 Mark Swanson 2002-01-05 16:27 rodrigc
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20020105024743.3299.qmail@sources.redhat.com \ --to=swansma@yahoo.com \ --cc=gcc-gnats@gcc.gnu.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).