Skip to content

Commit

Permalink
Update.
Browse files Browse the repository at this point in the history
2000-03-16  Ulrich Drepper  <drepper@redhat.com>

	* elf/Makefile: Add rules to compile and rune constload1 test.
	* elf/constload1.c: New file.
	* elf/constload2.c: New file.
	* elf/constload3.c: New file.
  • Loading branch information
Ulrich Drepper committed Mar 17, 2000
1 parent 13a8360 commit 19cf43b
Show file tree
Hide file tree
Showing 5 changed files with 65 additions and 3 deletions.
7 changes: 7 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
2000-03-16 Ulrich Drepper <drepper@redhat.com>

* elf/Makefile: Add rules to compile and rune constload1 test.
* elf/constload1.c: New file.
* elf/constload2.c: New file.
* elf/constload3.c: New file.

2000-03-15 Ulrich Drepper <drepper@redhat.com>

* sysdeps/posix/open64.c: Make __open64 weak alias.
Expand Down
10 changes: 7 additions & 3 deletions elf/Makefile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright (C) 1995, 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
# Copyright (C) 1995-1999, 2000 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 @@ -79,10 +79,11 @@ vpath %.c ../locale/programs
endif

ifeq (yes,$(build-shared))
tests = loadtest restest1 preloadtest loadfail multiload origtest resolvfail
tests = loadtest restest1 preloadtest loadfail multiload origtest resolvfail \
constload1
endif
modules-names = testobj1 testobj2 testobj3 testobj4 testobj5 testobj6 \
testobj1_1 failobj
testobj1_1 failobj constload2 constload3
extra-objs += $(modules-names:=.os)

include ../Rules
Expand Down Expand Up @@ -251,3 +252,6 @@ $(objpfx)resolvfail: $(libdl) $(shared-thread-library)
else
$(objpfx)resolvfail: $(libdl)
endif

$(objpfx)constload1: $(libdl)
$(objpfx)constload1.out: $(objpfx)constload2.so $(objpfx)constload3.so
20 changes: 20 additions & 0 deletions elf/constload1.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
#include <dlfcn.h>
#include <errno.h>
#include <error.h>
#include <stdlib.h>

int
main (void)
{
int (*foo) (void);
void *h;
int ret;

h = dlopen ("constload2.so", RTLD_LAZY | RTLD_GLOBAL);
if (h == NULL)
error (EXIT_FAILURE, errno, "cannot load module \"constload2.so\"");
foo = dlsym (h, "foo");
ret = foo ();
dlclose (h);
return ret;
}
24 changes: 24 additions & 0 deletions elf/constload2.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#include <dlfcn.h>

extern int bar (void);

void *h;

int
foo (void)
{
return 42 + bar ();
}

int
baz (void)
{
return -21;
}

void
__attribute__ ((__constructor__))
init (void)
{
h = dlopen ("constload3.so", RTLD_GLOBAL | RTLD_LAZY);
}
7 changes: 7 additions & 0 deletions elf/constload3.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
extern int baz (void);

int
bar (void)
{
return -21 + baz ();
}

0 comments on commit 19cf43b

Please sign in to comment.