(EXTRA_DLL_OFILES): Remove. (DLL_OFILES): Remove EXTRA_DLL_OFILES. (ASFLAGS): Define as -D_WIN64 on x86_64. (GMON_OFILES): Add mcountFunc.o. ($(srcdir)/$(TLSOFFSETS_H)): Use target_cpu rather than CONFIG_DIR. * configure.ac (CONFIG_DIR): Remove definition. * configure: Regenerate. * gcrt0.c: Use latest version from Mingw-w64 project. * gmon.c: Ditto. * gmon.h: Ditto. * mcount.c: Ditto. * mcountFunc.S: Ditto, new file. * profil.c: Ditto. * profil.h: Ditto. * config: Remove entire directory.
		
			
				
	
	
		
			56 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/* profil.h: gprof profiling header file
 | 
						|
 | 
						|
   Copyright 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
 | 
						|
 | 
						|
This file is part of Cygwin.
 | 
						|
 | 
						|
This software is a copyrighted work licensed under the terms of the
 | 
						|
Cygwin license.  Please consult the file "CYGWIN_LICENSE" for
 | 
						|
details. */
 | 
						|
 | 
						|
/*
 | 
						|
 * This file is taken from Cygwin distribution. Please keep it in sync.
 | 
						|
 * The differences should be within __MINGW32__ guard.
 | 
						|
 */
 | 
						|
 | 
						|
/* profiling frequency.  (No larger than 1000) */
 | 
						|
#define PROF_HZ			100
 | 
						|
 | 
						|
/* convert an addr to an index */
 | 
						|
#define PROFIDX(pc, base, scale)	\
 | 
						|
  ({									\
 | 
						|
    size_t i = (pc - base) / 2;				\
 | 
						|
    if (sizeof (unsigned long long int) > sizeof (size_t))		\
 | 
						|
      i = (unsigned long long int) i * scale / 65536;			\
 | 
						|
    else								\
 | 
						|
      i = i / 65536 * scale + i % 65536 * scale / 65536;		\
 | 
						|
    i;									\
 | 
						|
  })
 | 
						|
 | 
						|
/* convert an index into an address */
 | 
						|
#define PROFADDR(idx, base, scale)		\
 | 
						|
  ((base)					\
 | 
						|
   + ((((unsigned long long)(idx) << 16)	\
 | 
						|
       / (unsigned long long)(scale)) << 1))
 | 
						|
 | 
						|
/* convert a bin size into a scale */
 | 
						|
#define PROFSCALE(range, bins)		(((bins) << 16) / ((range) >> 1))
 | 
						|
 | 
						|
typedef void *_WINHANDLE;
 | 
						|
#ifdef __MINGW32__
 | 
						|
#include <_bsd_types.h>
 | 
						|
#endif /* __MINGW32__*/
 | 
						|
 | 
						|
struct profinfo {
 | 
						|
    _WINHANDLE targthr;			/* thread to profile */
 | 
						|
    _WINHANDLE profthr;			/* profiling thread */
 | 
						|
    _WINHANDLE quitevt;			/* quit event */
 | 
						|
    u_short *counter;			/* profiling counters */
 | 
						|
    size_t lowpc, highpc;		/* range to be profiled */
 | 
						|
    u_int scale;			/* scale value of bins */
 | 
						|
};
 | 
						|
 | 
						|
int profile_ctl(struct profinfo *, char *, size_t, size_t, u_int);
 | 
						|
int profil(char *, size_t, size_t, u_int);
 | 
						|
 |