This is the mail archive of the mailing list for the GDB project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] Run catch-load.exp on Windows

I find a compilation error when catch-load.c is compiled.

 catch-load.c:18:19: fatal error: dlfcn.h: No such file or directory

This patch is to fix this compilation error.  With this patch applied,
test case can be compiled successfully.  However, there is one fail
caused by matching "/" in file name, which doesn't exist on Windows.
This patch fixes it by matching either "/" or "\" in file name.


2013-09-12  Yao Qi  <>

	* gdb.base/catch-load.c: Remove the include of "dlfcn.h".
	 [__WIN32__]: Include "windows.h" and define macro dlopen
	 and dlclose.
	[!__WIN32__]: Include "dlfcn.h".
	* gdb.base/catch-load.exp (one_catch_load_test): Match
	directory separator.
 gdb/testsuite/gdb.base/catch-load.c   |    9 ++++++++-
 gdb/testsuite/gdb.base/catch-load.exp |    2 +-
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/gdb/testsuite/gdb.base/catch-load.c b/gdb/testsuite/gdb.base/catch-load.c
index 9a0010e..33c0a66 100644
--- a/gdb/testsuite/gdb.base/catch-load.c
+++ b/gdb/testsuite/gdb.base/catch-load.c
@@ -15,9 +15,16 @@
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <>.  */
-#include <dlfcn.h>
 #include <stdio.h>
+#ifdef __WIN32__
+#include <windows.h>
+#define dlopen(name, mode) LoadLibrary (TEXT (name))
+#define dlclose(handle) FreeLibrary (handle)
+#include <dlfcn.h>
 /* This is updated by the .exp file.  */
 char *libname = "";
diff --git a/gdb/testsuite/gdb.base/catch-load.exp b/gdb/testsuite/gdb.base/catch-load.exp
index 4bcaa44..28445b8 100644
--- a/gdb/testsuite/gdb.base/catch-load.exp
+++ b/gdb/testsuite/gdb.base/catch-load.exp
@@ -64,7 +64,7 @@ proc one_catch_load_test {scenario kind match sostop} {
 	gdb_test "catch $kind" "Catchpoint $decimal \\(.*\\)"
 	gdb_test_multiple "continue" "continue" {
-	    -re "Catchpoint $decimal\r\n.*loaded .*/$testfile2.*\r\n.*$gdb_prompt $" {
+	    -re "Catchpoint $decimal\r\n.*loaded .*(\\\\|/)$testfile2.*\r\n.*$gdb_prompt $" {
 		if {$match} {
 		    pass "continue"
 		} else {

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]