Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
* dlfcn/Makefile: Add rules to build and run bug-atexit3.
	* dlfcn/bug-atexit3.c: New file.
	* dlfcn/bug-atexit3-lib.cc: New file.
  • Loading branch information
Ulrich Drepper committed Jul 27, 2006
1 parent 3a975ff commit 6de1f62
Show file tree
Hide file tree
Showing 4 changed files with 55 additions and 3 deletions.
4 changes: 4 additions & 0 deletions ChangeLog
@@ -1,5 +1,9 @@
2006-07-26 Ulrich Drepper <drepper@redhat.com>

* dlfcn/Makefile: Add rules to build and run bug-atexit3.
* dlfcn/bug-atexit3.c: New file.
* dlfcn/bug-atexit3-lib.cc: New file.

* dlfcn/dlmopen.c (dlmopen_doit): Don't allow RTLD_GLOBAL to be
used when the namespace is not the base namespace.

Expand Down
13 changes: 10 additions & 3 deletions dlfcn/Makefile
@@ -1,4 +1,4 @@
# Copyright (C) 1995-2002, 2003, 2004, 2005 Free Software Foundation, Inc.
# Copyright (C) 1995-2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
# This file is part of the GNU C Library.

# The GNU C Library is free software; you can redistribute it and/or
Expand Down Expand Up @@ -40,15 +40,16 @@ endif

ifeq (yes,$(build-shared))
tests = glrefmain failtest tst-dladdr default errmsg1 tstcxaatexit \
bug-dlopen1 bug-dlsym1 tst-dlinfo bug-atexit1 bug-atexit2
bug-dlopen1 bug-dlsym1 tst-dlinfo bug-atexit1 bug-atexit2 \
bug-atexit3
ifeq (yes,$(have-protected))
tests += tstatexit
endif
endif
modules-names = glreflib1 glreflib2 failtestmod defaultmod1 defaultmod2 \
errmsg1mod modatexit modcxaatexit \
bug-dlsym1-lib1 bug-dlsym1-lib2 bug-atexit1-lib \
bug-atexit2-lib
bug-atexit2-lib bug-atexit3-lib

failtestmod.so-no-z-defs = yes
glreflib2.so-no-z-defs = yes
Expand Down Expand Up @@ -135,6 +136,12 @@ $(objpfx)bug-atexit2.out: $(objpfx)bug-atexit2-lib.so
$(objpfx)bug-atexit2-lib.so: $(common-objpfx)libc.so \
$(common-objpfx)libc_nonshared.a

LDFLAGS-bug-atexit3-lib.so = -lstdc++
$(objpfx)bug-atexit3: $(libdl)
$(objpfx)bug-atexit3.out: $(objpfx)bug-atexit3-lib.so
$(objpfx)bug-atexit3-lib.so: $(common-objpfx)libc.so \
$(common-objpfx)libc_nonshared.a


# Depend on libc.so so a DT_NEEDED is generated in the shared objects.
# This ensures they will load libc.so for needed symbols if loaded by
Expand Down
23 changes: 23 additions & 0 deletions dlfcn/bug-atexit3-lib.cc
@@ -0,0 +1,23 @@
#include <unistd.h>

struct statclass
{
statclass()
{
write (1, "statclass\n", 10);
}
~statclass()
{
write (1, "~statclass\n", 11);
}
};

struct extclass
{
~extclass()
{
static statclass var;
}
};

extclass globvar;
18 changes: 18 additions & 0 deletions dlfcn/bug-atexit3.c
@@ -0,0 +1,18 @@
#include <dlfcn.h>
#include <stdio.h>

static int
do_test (void)
{
void *handle = dlopen ("$ORIGIN/bug-atexit3-lib.so", RTLD_LAZY);
if (handle == NULL)
{
printf ("dlopen failed: %s\n", dlerror ());
return 1;
}
dlclose (handle);
return 0;
}

#define TEST_FUNCTION do_test ()
#include "../test-skeleton.c"

0 comments on commit 6de1f62

Please sign in to comment.