Commit b82b0648 by Jason Merrill Committed by Jason Merrill

revert: gcc-dg.exp (dg-build-dso): New.

	Revert:
	* lib/gcc-dg.exp (dg-build-dso): New.
	(gcc-dg-test-1): Handle dg-do-what "dso".

From-SVN: r209353
parent 9dc85053
2014-04-14 Jason Merrill <jason@redhat.com>
Revert:
* lib/gcc-dg.exp (dg-build-dso): New.
(gcc-dg-test-1): Handle dg-do-what "dso".
2014-04-13 Paul Thomas <pault@gcc.gnu.org>
PR fortran/60717
......
// { dg-options "-fno-gnu-unique" }
// A static variable in an inline function uses STB_GNU_UNIQUE normally.
inline int foo() { static int i; return ++i; }
extern "C" int fn()
{
return foo();
}
// PR c++/60731
// { dg-do run { target { dlopen && disable-for-4.9 } } }
// { dg-add-options dlopen }
// { dg-build-dso "dlclose1-dso.cc" }
#include <dlfcn.h>
extern "C" void abort();
extern "C" int printf (const char *, ...);
// Open and close the DSO for each call so that statics are reinitialized.
int call()
{
void *h = dlopen ("./dlclose1-dso.so", RTLD_NOW);
if (!h) { printf ("dlopen failed: %s\n", dlerror()); abort(); }
int (*fn)() = (int(*)())dlsym (h, "fn");
if (!fn) { printf ("dlsym failed: %s\n", dlerror()); abort(); }
int r = fn();
dlclose (h);
return r;
}
int main() {
int i = call();
int j = call();
if (i != j)
{
printf ("mismatch: %d != %d\n", i, j);
abort();
}
}
......@@ -144,11 +144,6 @@ proc gcc-dg-test-1 { target_compile prog do_what extra_tool_flags } {
# The following line is needed for targets like the i960 where
# the default output file is b.out. Sigh.
}
"dso" {
set compile_type "executable"
set output_file "[file rootname [file tail $prog]].so"
set extra_tool_flags "$extra_tool_flags -fPIC -shared"
}
"repo" {
set compile_type "object"
set output_file "[file rootname [file tail $prog]].o"
......@@ -214,27 +209,6 @@ proc gcc-dg-test { prog do_what extra_tool_flags } {
return [gcc-dg-test-1 gcc_target_compile $prog $do_what $extra_tool_flags]
}
# Usage: { dg-build-dso "file.ext" }
# Compiles the specified file into "file.so" (treating that compilation as
# a separate test) for use by the main test, and schedules it for removal
# when the main test is complete. The DSO source file should not use "dg-do".
# This relies on a couple of local variable names in dg-test.
proc dg-build-dso { args } {
global dg-do-what-default
upvar prog main_file
upvar dg-final-code final-code
set file [lindex $args 1]
set dir "[file dirname $main_file]"
set dg-do-what-default dso
dg-test -keep-output $dir/$file "" ""
set dg-do-what-default compile
set output_file "[file rootname [file tail $file]].so"
append final-code "remove-build-file $output_file"
}
proc gcc-dg-prune { system text } {
global additional_prunes
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment