binutils-gdb/ld/testsuite/ld-cygwin/testexe.c
Dave Korn 2fe50fe3ef binutils/ChangeLog
* dlltool.c (set_dll_name_from_def):  Accept new second arg that
	indicates if we are building DLL or EXE, and use it to add a
	default suffix to the output filename when none is already present.
	(def_name):  Indicate we are building an EXE when calling it.
	(def_library):  Indicate we are building a DLL when calling it.

ld/testsuite/ChangeLog

	* ld-cygwin/exe-export.exp:  Add "-lkernel32" when linking test exe.
	* ld-cygwin/testexe.c (testexe_main):  Indicate whether global_a
	was set to correct final value using error return status.
	(testexe_dummy):  Dummy function calls an import from kernel32.dll
	to ensure it is mapped into the process space at runtime.
2009-04-01 17:20:19 +00:00

32 lines
679 B
C

int global_a = 2;
void
exewrite (void)
{
global_a = 1;
}
extern void dllwrite (void);
int _stdcall
testexe_main (void* p1, void *p2, char* p3, int p4)
{
dllwrite ();
/* We can't print or assert in a minimal app like this,
so use the return status to indicate if global_a
ended up with the correct expected value. */
return 1 - global_a;
}
/* We have to import something, anything at all, from
kernel32, in order to have the thread and process
base thunk routines loaded when we start running!. */
extern __attribute((dllimport)) void _stdcall Sleep (unsigned int duration);
int _stdcall
testexe_dummy (unsigned int foobar)
{
Sleep (foobar);
}