aboutsummaryrefslogtreecommitdiff
path: root/ld/testsuite/ld-elf/dl6bmain.c
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2007-01-19 15:13:29 +0000
committerH.J. Lu <hjl.tools@gmail.com>2007-01-19 15:13:29 +0000
commitd8cf8b513333c644cc5305eff9d5c0dfcac69de5 (patch)
tree56edbe9735dd0cdbcd4825f6d4321552670f4b63 /ld/testsuite/ld-elf/dl6bmain.c
parentb81428656759ee87a5619f8495c04123ec71d582 (diff)
downloadgdb-d8cf8b513333c644cc5305eff9d5c0dfcac69de5.zip
gdb-d8cf8b513333c644cc5305eff9d5c0dfcac69de5.tar.gz
gdb-d8cf8b513333c644cc5305eff9d5c0dfcac69de5.tar.bz2
ld/
2007-01-19 H.J. Lu <hongjiu.lu@intel.com> * ld.h (args_type): Add new symbolic and dynamic_list fields. * ld.texinfo: Update -Bsymbolic-functions. * ldmain.c (main): Initialize command_line.symbolic to symbolic_unset and command_line.dynamic_list to dynamic_list_unset. Check -Bsymbolic, -Bsymbolic-functions and --dynamic-list* before setting link_info.symbolic, link_info.dynamic and link_info.dynamic_data. * lexsup.c (option_values): Add OPTION_SYMBOLIC_FUNCTIONS. (ld_options): Use OPTION_SYMBOLIC_FUNCTIONS with -Bsymbolic-functions. (parse_args): Handle -Bsymbolic-functions. Don't set link_info.dynamic, link_info.dynamic_data and link_info.symbolic here. Set command_line.symbolic for -Bsymbolic. Set command_line.dynamic_list and command_line.symbolic for --dynamic-list-data, --dynamic-list-cpp-new, --dynamic-list-cpp-typeinfo and --dynamic-list. ld/testsuite/ 2007-01-19 H.J. Lu <hongjiu.lu@intel.com> * ld-elf/dl6.c: New file. * ld-elf/dl6a.out: Likewise. * ld-elf/dl6amain.c: Likewise. * ld-elf/dl6b.out: Likewise. * ld-elf/dl6bmain.c: Likewise. * ld-elf/dl6cmain.c: Likewise. * ld-elf/dl6dmain.c: Likewise. * ld-elf/shared.exp: Add new tests for -Bsymbolic, -Bsymbolic-functions, --dynamic-list-data and --dynamic-list-cpp-new.
Diffstat (limited to 'ld/testsuite/ld-elf/dl6bmain.c')
-rw-r--r--ld/testsuite/ld-elf/dl6bmain.c33
1 files changed, 33 insertions, 0 deletions
diff --git a/ld/testsuite/ld-elf/dl6bmain.c b/ld/testsuite/ld-elf/dl6bmain.c
new file mode 100644
index 0000000..df9dbcc
--- /dev/null
+++ b/ld/testsuite/ld-elf/dl6bmain.c
@@ -0,0 +1,33 @@
+#include <stdio.h>
+#include <dlfcn.h>
+
+int bar = -20;
+
+int
+main (void)
+{
+ int ret = 0;
+ void *handle;
+ void (*fcn) (void);
+
+ handle = dlopen("./tmpdir/libdl6b.so", RTLD_GLOBAL|RTLD_LAZY);
+ if (!handle)
+ {
+ printf("dlopen ./tmpdir/libdl6b.so: %s\n", dlerror ());
+ return 1;
+ }
+
+ fcn = (void (*)(void)) dlsym(handle, "foo");
+ if (!fcn)
+ {
+ printf("dlsym foo: %s\n", dlerror ());
+ ret += 1;
+ }
+ else
+ {
+ (*fcn) ();
+ }
+
+ dlclose (handle);
+ return ret;
+}