mirror of
git://sourceware.org/git/glibc.git
synced 2025-04-24 14:41:06 +08:00
Update.
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.
This commit is contained in:
parent
13a836048c
commit
19cf43bed6
@ -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.
|
||||
|
10
elf/Makefile
10
elf/Makefile
@ -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
|
||||
@ -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
|
||||
@ -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
elf/constload1.c
Normal file
20
elf/constload1.c
Normal file
@ -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
elf/constload2.c
Normal file
24
elf/constload2.c
Normal file
@ -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
elf/constload3.c
Normal file
7
elf/constload3.c
Normal file
@ -0,0 +1,7 @@
|
||||
extern int baz (void);
|
||||
|
||||
int
|
||||
bar (void)
|
||||
{
|
||||
return -21 + baz ();
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user