X-Git-Url: http://wien.tomnetworks.com/gitweb/?p=hs-boehmgc.git;a=blobdiff_plain;f=gc-7.2%2Fextra%2Fgc.c;fp=gc-7.2%2Fextra%2Fgc.c;h=d660433b1bedfe1e5f5828252230c38ba570a5be;hp=0000000000000000000000000000000000000000;hb=324587ba93dc77f37406d41fd2a20d0e0d94fb1d;hpb=2a4ea609491b225a1ceb06da70396e93916f137a diff --git a/gc-7.2/extra/gc.c b/gc-7.2/extra/gc.c new file mode 100644 index 0000000..d660433 --- /dev/null +++ b/gc-7.2/extra/gc.c @@ -0,0 +1,82 @@ +/* + * Copyright (c) 1994 by Xerox Corporation. All rights reserved. + * Copyright (c) 1996 by Silicon Graphics. All rights reserved. + * Copyright (c) 1998 by Fergus Henderson. All rights reserved. + * Copyright (c) 2000-2009 by Hewlett-Packard Development Company. + * All rights reserved. + * + * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED + * OR IMPLIED. ANY USE IS AT YOUR OWN RISK. + * + * Permission is hereby granted to use or copy this program + * for any purpose, provided the above notices are retained on all copies. + * Permission to modify the code and to distribute modified code is granted, + * provided the above notices are retained, and a notice that the code was + * modified is included with the above copyright notice. + */ + +/* This file could be used for the following purposes: */ +/* - get the complete GC as a single link object file (module); */ +/* - enable more compiler optimizations. */ + +/* Tip: to get the highest level of compiler optimizations, the typical */ +/* compiler options (GCC) to use are: */ +/* -O3 -fno-strict-aliasing -march=native -Wall -fprofile-generate/use */ + +/* Warning: GCC for Linux (for C++ clients only): Use -fexceptions both */ +/* for GC and the client otherwise GC_thread_exit_proc() is not */ +/* guaranteed to be invoked (see the comments in pthread_start.c). */ + + +#define GC_INNER STATIC +#define GC_EXTERN GC_INNER + /* STATIC is defined in gcconfig.h. */ + +/* Small files go first... */ +#include "../backgraph.c" +#include "../blacklst.c" +#include "../checksums.c" +#include "../gcj_mlc.c" +#include "../headers.c" +#include "../malloc.c" +#include "../new_hblk.c" +#include "../obj_map.c" +#include "../ptr_chck.c" +#include "../stubborn.c" + +#include "../allchblk.c" +#include "../alloc.c" +#include "../dbg_mlc.c" +#include "../finalize.c" +#include "../mallocx.c" +#include "../mark.c" +#include "../mark_rts.c" +#include "../reclaim.c" +#include "../typd_mlc.c" + +#include "../misc.c" +#include "../os_dep.c" +#include "../thread_local_alloc.c" + +/* Most platform-specific files go here... */ +#include "../darwin_stop_world.c" +#include "../dyn_load.c" +#include "../gc_dlopen.c" +#include "../mach_dep.c" +#include "../pcr_interface.c" +#include "../pthread_stop_world.c" +#include "../pthread_support.c" +#include "../specific.c" +#include "../win32_threads.c" + +#include "../pthread_start.c" + +/* Restore pthread calls redirection (if altered in */ +/* pthread_stop_world.c, pthread_support.c or win32_threads.c). */ +/* This is only useful if directly included from application */ +/* (instead of linking gc). */ +#ifndef GC_NO_THREAD_REDIRECTS +# include "gc_pthread_redirects.h" +#endif + +/* real_malloc.c, extra/MacOS.c, extra/msvc_dbg.c are not included. */