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=


             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: link
Be 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).