Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Browse the repository at this point in the history
* elf/Makefile: Add rules to build and run order2.
* elf/order2.c: New file. * elf/order2mod1.c: New file. * elf/order2mod2.c: New file. * elf/order2mod3.c: New file. * elf/order2mod4.c: New file.
- Loading branch information
Ulrich Drepper
committed
Mar 19, 2005
1 parent
a2f7570
commit 3d786f1
Showing
7 changed files
with
128 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
#include <dlfcn.h> | ||
#include <stdio.h> | ||
|
||
|
||
int call_puts; | ||
|
||
static int | ||
do_test (void) | ||
{ | ||
call_puts = 1; | ||
|
||
void *h1 = dlopen ("$ORIGIN/order2mod1.so", RTLD_LAZY | RTLD_GLOBAL); | ||
if (h1 == NULL) | ||
{ | ||
puts ("cannot load order2mod1"); | ||
return 1; | ||
} | ||
void *h2 = dlopen ("$ORIGIN/order2mod2.so", RTLD_LAZY); | ||
if (h2 == NULL) | ||
{ | ||
puts ("cannot load order2mod2"); | ||
return 1; | ||
} | ||
if (dlclose (h1) != 0) | ||
{ | ||
puts ("dlclose order2mod1 failed"); | ||
return 1; | ||
} | ||
if (dlclose (h2) != 0) | ||
{ | ||
puts ("dlclose order2mod2 failed"); | ||
return 1; | ||
} | ||
return 0; | ||
} | ||
|
||
#define TEST_FUNCTION do_test () | ||
#include "../test-skeleton.c" | ||
|
||
static void | ||
__attribute__ ((destructor)) | ||
fini (void) | ||
{ | ||
if (call_puts) | ||
puts ("5"); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
#include <stdio.h> | ||
|
||
static void | ||
__attribute__ ((destructor)) | ||
fini (void) | ||
{ | ||
putchar ('1'); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
#include <stdio.h> | ||
|
||
extern int foo (void); | ||
extern int bar (void); | ||
|
||
void | ||
__attribute__ ((constructor)) | ||
init (void) | ||
{ | ||
foo () - bar (); | ||
} | ||
|
||
static void | ||
__attribute__ ((destructor)) | ||
fini (void) | ||
{ | ||
putchar ('2'); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
#include <stdio.h> | ||
|
||
int | ||
bar (void) | ||
{ | ||
return 1; | ||
} | ||
|
||
static void | ||
__attribute__ ((destructor)) | ||
fini (void) | ||
{ | ||
putchar ('4'); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
#include <stdio.h> | ||
|
||
extern int bar (void); | ||
|
||
int | ||
foo (void) | ||
{ | ||
return 42 + bar (); | ||
} | ||
|
||
static void | ||
__attribute__ ((destructor)) | ||
fini (void) | ||
{ | ||
putchar ('3'); | ||
} |