summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* GC_stack_range_for code refactoring for Darwin/arm64ios-unified-ts-fixIvan Maidanski2015-03-181-36/+11
| | | | | | * darwin_stop_world.c (GC_stack_range_for): Replace "__" register name prefix with THREAD_FLD(); roll x[0..28] push statements in a loop (for AARCH64).
* Add incremental GC support for Darwin/arm64Ivan Maidanski2015-03-181-0/+5
| | | | | * os_dep.c (DARWIN_EXC_STATE, DARWIN_EXC_STATE_COUNT, DARWIN_EXC_STATE_T, DARWIN_EXC_STATE_DAR): Define for AARCH64 target.
* Initial support for iOS ARM64 (Aarch64)Niklas Therning2015-03-133-1/+72
| | | | | | | | | | | * darwin_stop_world.c (GC_stack_range_for): Handle AARCH64 case. * include/private/gc_priv.h (GC_THREAD_STATE_T, GC_MACH_THREAD_STATE, GC_MACH_THREAD_STATE_COUNT): Define for AARCH64. * include/private/gcconfig.h (OS_TYPE, DYNAMIC_LOADING, DATASTART, DATAEND, STACKBOTTOM, USE_MMAP, USE_MMAP_ANON, MPROTECT_VDB, GETPAGESIZE, NO_PTHREAD_TRYLOCK, NO_DYLD_BIND_FULLY_IMAGE): Likewise. * include/private/gcconfig.h (AARCH64, mach_type_known, DARWIN_DONT_PARSE_STACK): Define for Darwin/AArch64.
* Merge branch 'master' into ios-unified-ts-fixIvan Maidanski2015-03-0724-102/+174
|\ | | | | | | | | Conflicts: include/private/gc_priv.h
| * Revert "Move asm machine-dependent files to 'src' folder" (partly)Ivan Maidanski2015-02-277-13/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Asm files moved back to base folder to avoid build issues (reported for NetBSD and Solaris on Sparc). Alternative way is to adjust configure.ac and Makefile.am properly but it requires more efforts (including testing). * .gitignore: Remove "src" from comment. * Makefile.am (EXTRA_libgc_la_SOURCES): Remove "src/" prefix. * Makefile.direct (SRCS, mach_dep.o): Likewise. * src/ia64_save_regs_in_stack.s: Move to base folder. * src/sparc_mach_dep.S: Likewise. * src/sparc_netbsd_mach_dep.s: Likewise. * src/sparc_sunos4_mach_dep.s: Likewise.
| * Add AArch64-32 target supportAndrew Pinski2015-02-131-2/+7
| | | | | | | | | | | | | | (Implement boehm-gc for AARCH64:ILP32) * include/private/gcconfig.h (CPP_WORDSZ, ALIGNMENT): Correct for AARCH64:ILP32.
| * Fix OSX issue with snprintf wrapper macroBruce Hoult2015-01-071-5/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | (bug introduced in commit 7bef74b) OS X for some reason has problems with defining snprintf as a macro and including another macro expansion in its arguments. * cord/tests/cordtest.c (GC_SNPRINTF_BUFSZ_ARG): Remove. * cord/tests/cordtest.c (GC_SNPRINTF): Do not define if no snprintf() available. * cord/tests/cordtest.c (test_printf): If GC_SNPRINTF undefined then use sprintf() instead.
| * Fix OSX issue with pthread_attr_setstacksize failureBruce Hoult2015-01-071-1/+1
| | | | | | | | | | | | | | | | | | (bug introduced in commit 7bef74b) * tests/test.c (main): Set stack size to 1000 KiB instead of 1000000 bytes (to avoid pthread_attr_setstacksize failure with "stacksize is not a multiple of the system page size" error on Darwin)
| * GC_stack_range_for iOS 32/64-bit code refactoring (Darwin/arm)Ivan Maidanski2014-11-171-23/+23
| | | | | | | | | | | | | | * darwin_stop_world.c (kCFCoreFoundationVersionNumber_iOS_8_0): Move definition out of GC_stack_range_for. * darwin_stop_world.c (GC_stack_range_for): Refine comment and abort message; eliminate code duplication regarding thread_get_state call.
| * Avoid explicit use of machine-specific x_THREAD_STATE macros (Darwin)Ivan Maidanski2014-11-041-4/+0
| | | | | | | | | | | | | | | | | | (code refactoring) * include/private/gc_priv.h (GC_MACH_THREAD_STATE, GC_MACH_THREAD_STATE_COUNT): Remove explicit definition to PPC_THREAD_STATE[_COUNT], ARM_THREAD_STATE[_COUNT] (as the correct values are defined via MACHINE_THREAD_STATE[_COUNT] macro).
| * Fix mistyped ARM_THREAD_STATE macro (Darwin/arm)Ivan Maidanski2014-11-041-9/+5
| | | | | | | | | | | | | | * include/private/gc_priv.h (GC_MACH_THREAD_STATE, GC_MACH_THREAD_STATE_COUNT): Define to ARM_THREAD_STATE[_COUNT], respectively, instead of mistyped ARM_MACHINE_THREAD_STATE[_COUNT] (if DARWIN and ARM32).
| * Merge remote-tracking branch ↵Ivan Maidanski2014-11-041-12/+26
| |\ | | | | | | | | | | | | | | | | | | 'robovm/thread_get_state_stack_corruption_on_ios7_64bit_and_ios8' Conflicts: darwin_stop_world.c
| | * Use ARM_UNIFIED_THREAD_STATE in the call to thread_get_state() on iOS7 64-bitNiklas Therning2014-09-221-12/+26
| | | | | | | | | | | | and up and iOS8 32-bit and up.
| * | Fix FirstDLOpenedLinkMap for case libgc not 1st dynamically linked (NetBSD)Tsugutomo Enami2014-11-021-2/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Current GC_FirstDLOpenedLinkMap() for NetBSD calls dlinfo(RTLD_SELF, RTLD_DI_LINKMAP, &lm) to find link_map. So it will find link_map of libgc. With guile's case, libgc is link to libguile and libguile is linked to the guile command, so libgc is not the first one in the link_map chain. That is why, data section of libguile, where scm_protects exists, is not added to GC root and GC_is_visible fails. * dyn_load.c (GC_FirstDLOpenedLinkMap): Iterate over link_map (provided by dlinfo(RTLD_SELF)) to return 2nd element instead of the provided one which might not always belong to libgc (only for NETBSD and defined RTLD_DI_LINKMAP).
| * | Fix missing cord_pos.h, ec.h among installed headers (Automake)Ivan Maidanski2014-10-221-1/+4
| | | | | | | | | | | | * cord/cord.am (pkginclude_HEADERS): Add cord_pos.h, ec.h entries.
| * | Fix missing msvc_dbg.h in dist_noinst_HEADERS (Automake)Ivan Maidanski2014-10-211-0/+1
| | | | | | | | | | | | * include/include.am (dist_noinst_HEADERS): Add msvc_dbg.h entry.
| * | Fix missing error handling of pthread_attr_init/getstacksizeIvan Maidanski2014-10-215-15/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * misc.c (GC_init): Explicitly ignore returned value of pthread_mutexattr_destroy. * os_dep.c (GC_get_main_stack_base, GC_get_stack_base, GC_dirty_init): Likewise. * pthread_support.c (start_mark_threads, pthread_create): Likewise. * tests/test.c (main): Likewise. * win32_threads.c (start_mark_threads): Likewise. * pthread_support.c (pthread_create): ABORT (with the appropriate message) in case of pthread_attr_getstacksize or pthread_attr_init failure. * tests/test.c (main): Print error code and FAIL if pthread_attr_init or pthread_attr_setstacksize failed (only if GC_PTHREADS).
| * | Fix __alloc_size__ availability detection (Clang)Yusuke Suzuki2014-10-171-6/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since __clang_major__/__clang_minor__ etc. are vendor dependent values, we cannot implement the feature detection based on it. For example, Apple clang versioning is different from the FreeBSD clang. (At this time, Apple clang version is "6.0 (clang-600.0.51)" and __clang_major__ is 6.) Instead of this, we can use the clang feature detection macro, __has_attribute. * include/gc_config_macros.h (GC_ATTR_ALLOC_SIZE): Replace predefined __clang_major/minor__ testing with __has_attribute() one (in case of clang).
| * | Fix missing error handling of pthreads_mutex_init and cond_waitIvan Maidanski2014-09-273-32/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * include/private/darwin_semaphore.h (sem_init): Destroy sem->mutex if sem->cond initialization failed. * include/private/darwin_semaphore.h (sem_post): Ignore pthread_mutex_unlock result in case of pthread_cond_signal. * include/private/darwin_semaphore.h (sem_wait): Unlock mutex and return error (-1) if pthread_cond_wait failed. * include/private/darwin_semaphore.h (sem_init): If pshared then return -1 (with the appropriate errno code set) instead of ABORT. * include/private/darwin_semaphore.h (sem_init, sem_post, sem_wait): Treat non-zero value returned by pthread functions as error (instead of only negative values). * include/private/darwin_semaphore.h (sem_init, sem_post, sem_wait): Reformat code. * misc.c (GC_init): Abort (with the appropriate message) if pthread_mutex[attr]_init failed (SN_TARGET_PS3 case only). * specific.c (GC_key_create_inner): If pthread_mutex_init failed then return its error code.
| * | Workaround 'unknown attribute __alloc_size__' warning for Clang 3.5 (trunk)Ivan Maidanski2014-09-241-1/+2
| | | | | | | | | | | | | | | | | | * include/gc_config_macros.h (GC_ATTR_ALLOC_SIZE): Define to empty if clang 3.5.0 (workaround "unknown attribute '__alloc_size__' ignored" warning in clang3.5 (trunk)).
| * | Fix darwin_stop_world.c broken by 'thread_get_state fix' for other targetsIvan Maidanski2014-09-241-3/+3
| | | | | | | | | | | | | | | * darwin_stop_world.c: Include Darwin-specific headers (sys/sysctl.h, mach/machine.h) only if GC_DARWIN_THREADS.
| * | Also enable the TSX workaround for i386 (Linux)Jan Alexander Steffens (heftig)2014-09-231-0/+5
| | | | | | | | | | | | | | | * include/private/gcconfig.h (GLIBC_2_19_TSX_BUG): Define for LINUX/I386 (if __GLIBC__).
| * | Update AUTHORS fileIvan Maidanski2014-09-231-0/+1
| | |
| * | Relax mark_mutex attribute needed to disable elision (Linux/x64)Jan Alexander Steffens (heftig)2014-09-231-1/+1
| | | | | | | | | | | | | | | | | | * pthread_support.c (setup_mark_lock): Pass PTHREAD_MUTEX_NORMAL (instead of PTHREAD_MUTEX_ERRORCHECK) to pthread_mutexattr_settype (actually, any valid settype call disables lock elision in glibc 2.19).
| * | Fix setup_mark_lock missing prototypeIvan Maidanski2014-09-233-6/+6
| |/ | | | | | | | | | | | | | | | | | | | | | | | | (and do not call it if no parallel marker) * include/private/pthread_support.h (GC_setup_mark_lock): Remove prototype. * misc.c (GC_init): Remove GC_setup_mark_lock call (move it to GC_thr_init). * pthread_support.c (setup_mark_lock): Rename from GC_setup_mark_lock; add prototype (only if PARALLEL_MARK). * pthread_support.c (GC_thr_init): Call setup_mark_lock() unless available_markers_m1 is 0.
| * Merge pull request #52 from ↵Ivan Maidanski2014-09-201-1/+23
| |\ | | | | | | | | | | | | robovm/thread_get_state_stack_corruption_on_ios_64bit Use ARM_THREAD_STATE32 as flavor in call to thread_get_state (Darwin/AArch64)
| | * Use the ARM_THREAD_STATE32 flavor in the call to thread_get_state() whenNiklas Therning2014-09-181-1/+23
| |/ | | | | | | | | | | | | running on 64-bit iOS 7+. If we don't iOS will assume we pass it an arm_unified_thread_state_t while we actually pass it an arm_thread_state_t which is a lot smaller. Without this fix thread_get_state() will corrupt the stack and the app will crash.
* | GC_stack_range_for code refactoring (Darwin/arm)Ivan Maidanski2015-01-232-16/+7
| | | | | | | | | | | | | | * darwin_stop_world.c (GC_stack_range_for): Roll GC_push_one() calls to a loop (for ARM32 only). * os_dep.c: Remove redundant include mach/thread_status.h as already included from gc_priv.h (for DARWIN only).
* | Modified darwin_stop_world.c to use an arm_unified_thread_state_t struct toNiklas Therning2014-09-172-22/+35
|/ | | | | | | | | | | | | | store a thread's state when compiling against the iOS 7/8 SDK. Without this patch GC_stack_range_for() crashes when running a 32-bit app on iOS 64-bit. The old code passed an arm_thread_state_t and ARM_THREAD_STATE to thread_get_state(). ARM_THREAD_STATE is the same as ARM_UNIFIED_THREAD_STATE on iOS 7/8 and thread_get_state() actually expects an arm_unified_thread_state_t. On iOS 32-bit it looks like thread_get_state() only touches the first bytes corresponding to the size of arm_thread_state_t so no crash there. On iOS 64-bit however it seems thread_get_state() writes to the full arm_unified_thread_state_t which meant it would overflow the stack allocated struct passed to it and mess up other values on the stack leading to a crash later on.
* Fix and code refactoring of lock elision workaround (Linux/x64)Ivan Maidanski2014-09-114-62/+50
| | | | | | | | | | | | | | | | | | | | * configure.ac (HAVE_LIBC_VERSION_H, HAVE_GNU_GET_LIBC_VERSION): Remove (revert change in previous commit). * include/private/gcconfig.h (GLIBC_2_19_TSX_BUG): New macro defined for Linux/x86_64 (if Glibc used) to workaround a bug in Glibc lock elision implementation. * pthread_support.c: Move include of gnu/libc-version.h to gcconfig.h (used to check whether lock elision workaround needed). * misc.c (GC_init): Reformat code. * pthread_support.c (mark_mutex): Initialize (to PTHREAD_MUTEX_INITIALIZER) even lock elision workaround is needed (revert change in previous commit). * pthread_support.c (parse_version): New static function (defined only if GLIBC_2_19_TSX_BUG). * pthread_support.c (GC_setup_mark_lock): Use parse_version to check target Glibc version properly; do not reinitialize mutex unless workaround needed; call ABORT (with the appropriate message) in case of a failure in pthread_mutexattr_init/settype, pthread_mutex_init.
* Workaround Linux NTPL lock elision bug.Paul Bone2014-09-114-0/+71
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | glibc 2.19 on Linux x86-64 platforms includes support for lock elision, by using Intel's TSX support when it is available. Without modifying an application this converts suitable critical sections that use mutex into transactional memory critical sections. See http://lwn.net/Articles/534758/ If a problem occurs that means that transactional memory can't be used, such as a system call or buffer overflow, the pthreads implementation will catch this error and retry the critical section using a normal mutex. I noticed that since upgrading glibc that programs using Boehm GC crash, one of these crashes was an assertion that the owner field of a mutex was invalid. The assertion was generated by the pthreads implementation. I believe that there is a bug in glibc that when a mutex cannot be used safely for transactions that some series of events causes it's owner field to be set incorrectly (or cleared when it shouldn't be). I've found that I can work around this problem by having Boehm GC use an error checking mutex, which I believe doesn't use lock elision and in my testing doesn't crash. XXX: This work-around mostly works except for linking the feature detection in configure.ac to the conditional compilation in pthread_support.c as there isn't an obvious way to make it work for automake and Makefile.direct. Could I have some help updating the build system please? include/private/pthread_support.h: pthread_support.c: Define GC_setup_mark_lock() This procedure creates the lock specifying a pthread_mutexattr_t structure. This is used to disable lock elision on Linux with glibc 2.19 or greater. configure.ac: If we're using Linux then check for the gnu extensions required to identify the version of glibc at runtime. misc.c: Call GC_setup_mark_lock() when initialising the collector.
* Fix getcontext usage on OpenRISC/or1kManuel A. Fernandez Montecelo2014-08-231-1/+2
| | | | | * include/private/gcconfig.h (NO_GETCONTEXT): Do not use getcontext(2) on OpenRISC 1000 (or1k) as it is not implemented yet.
* Update AUTHORS file (update email for Peter Wang)Ivan Maidanski2014-08-231-1/+1
|
* Support winpthreadsPeter Wang2014-08-236-11/+24
| | | | | | | | | | | | | | | | | | Winpthreads is a different pthread implementation for MinGW-w64. This patch redefines GC_WIN32_PTHREADS to mean either pthreads-win32 or winpthreads. * configure.ac (GC_WIN32_PTHREADS): Improve description to cover "winpthreads" library. * doc/README.macros (GC_WIN32_PTHREADS): Likewise. * doc/README.win32: Likewise. * include/gc_config_macros.h (GC_WIN32_THREADS): Mention "winpthreads" library in comment. * win32_threads.c (GC_pthread_join): Likewise. * include/private/gc_locks.h (NUMERIC_THREAD_ID, THREAD_EQUAL, NUMERIC_THREAD_ID_UNIQUE): Define to support winpthreads properly (if GC_WIN32_PTHREADS). * win32_threads.c (GC_PTHREAD_PTRVAL): Likewise.
* Fix assertion on mark_lock_holder for non-unique NUMERIC_THREAD_IDIvan Maidanski2014-08-222-2/+7
| | | | | | | | * pthread_support.c (GC_acquire_mark_lock): Avoid assertion that GC_mark_lock_holder != NUMERIC_THREAD_ID(pthread_self()) unless NUMERIC_THREAD_ID_UNIQUE. * win32_threads.c (GC_acquire_mark_lock): Likewise. * win32_threads.c (NUMERIC_THREAD_ID): Add comment.
* Fix pthreads-win32 name in comments and documentationIvan Maidanski2014-08-107-18/+18
| | | | | | | | | | | | | | | | * configure.ac (GC_WIN32_PTHREADS): Fix pthreads-win32 name. * doc/README.macros (GC_WIN32_PTHREADS): Likewise. * doc/README.win32: Likewise. * include/gc.h (GC_WIN32_THREADS): Likewise. * include/gc_config_macros.h (GC_WIN32_PTHREADS): Likewise. * include/private/gc_locks.h (NUMERIC_THREAD_ID): Likewise. * win32_threads.c (GC_pthread_join): Likewise. * doc/README.win32: Add information how to build for Win32 with pthreads-win32 using configure. * include/private/gc_locks.h (NUMERIC_THREAD_ID): Adjust comment (capitalize 1st word of a sentence, add dot at sentence end). * win32_threads.c (GC_pthread_join): Join adjacent GC_WIN32_PTHREADS checks; refine comment about pthreads-win32 id.
* Update AUTHORS fileIvan Maidanski2014-08-021-0/+1
|
* Add support for OpenRISC/or1kManuel A. Fernandez Montecelo2014-08-021-0/+22
| | | | | | * include/private/gcconfig.h (OR1K, mach_type_known, CPP_WORDSZ, MACH_TYPE, OS_TYPE, DYNAMIC_LOADING, _end, DATAEND, __data_start, DATASTART, ALIGNMENT, HBLKSIZE, LINUX_STACKBOTTOM): Define for __or1k__.
* Fix Unicode Win32 API calls in cord de_winIvan Maidanski2014-08-021-15/+13
| | | | | | | | | | | * cord/tests/de_win.c (FullAppName): Remove global variable. * cord/tests/de_win.c (szAppName): Turn into macro; use TEXT(). * cord/tests/de_win.c (de_error): Force calling ANSI version of MessageBox; remove casts to LPSTR. * cord/tests/de_win.c (WinMain): Use TEXT() for lpszMenuName field and for CreateWindow agrument. * cord/tests/de_win.c (WndProc): Use TEXT() for DialogBox argument; force calling ANSI version of TextOut.
* Merge branch 'Unity-Technologies-upstreaming/emscripten'Ivan Maidanski2014-07-136-30/+58
|\
| * Update AUTHORS fileIvan Maidanski2014-07-131-0/+1
| |
| * Code refactoring of Emscripten platform support (single-threaded)Ivan Maidanski2014-07-135-45/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * alloc.c (min_bytes_allocd): Test STACK_NOT_SCANNED macro instead of __EMSCRIPTEN__ (stack size to scan is zero if STACK_NOT_SCANNED). * include/private/gcconfig.h (ALIGNMENT): Remove duplicate definition for _EMSCRIPTEN__. * include/private/gcconfig.h (STACK_NOT_SCANNED): New macro defined for __EMSCRIPTEN__ target (in addition to OS_TYPE, CPP_WORDSZ, ALIGNMENT, DATASTART, DATAEND). * mach_dep.c (GC_push_regs): Test STACK_NOT_SCANNED macro instead of __EMSCRIPTEN__ (push nothing if STACK_NOT_SCANNED). * mark_rts.c (GC_push_roots): Test STACK_NOT_SCANNED macro instead of __EMSCRIPTEN__ (do not call GC_push_regs_and_stack if STACK_NOT_SCANNED); mark cold_gc_frame argument as potentially unused. * misc.c (GC_clear_stack): Test STACK_NOT_SCANNED macro instead of __EMSCRIPTEN__ (do not clear stack if STACK_NOT_SCANNED). * misc.c (GC_clear_stack): Reformat code.
| * Add support for emscripten platformJonathan Chambers2014-07-035-2/+30
|/
* Fix vsprintf_args initialization/cleanup in CORD_vsprintf for EMXIvan Maidanski2014-06-221-3/+6
| | | | | * cord/cordprnt.c (CORD_vsprintf): Do not use va_copy and va_end if EMX (as the primitives are missing).
* Update TODO file (regarding Makefile.dj, build_atomic_ops.sh)Ivan Maidanski2014-06-221-6/+1
|
* Fix EMX_MAKEFILE (adjust path to header files, add -I option)Ivan Maidanski2014-06-221-17/+11
| | | | | | | | | | | | | | * EMX_MAKEFILE: Remove comment about renaming to Makefile. * EMX_MAKEFILE (CFLAGS, SPECIALCFLAGS): Add "-I include" option. * EMX_MAKEFILE (CXXFLAGS): New variable (set to CFLAGS value). * EMX_MAKEFILE (CORD_INCLUDE_FILES, test.o, setjmp_test.exe): Adjust path to gc.h. * EMX_MAKEFILE (SHELL): Remove special variable (not needed for EMX). * EMX_MAKEFILE (test.o): Adjust path to dependencies (gc_priv.h, gc_hdrs.h, gcconfig.h, gc_typed.h). * EMX_MAKEFILE (gc_cpp.o, c++): Adjust path to gc_cpp.h. * EMX_MAKEFILE (gc_cpp.o): Use CXXFLAGS value instead of "-O". * EMX_MAKEFILE (c++): Do not copy gc_cpp.h to "include" folder.
* Fix 'implicit declaration of vsnprintf' GCC warning (if strict ANSI mode)Ivan Maidanski2014-06-222-2/+2
| | | | | | | * cord/tests/cordtest.c (GC_SNPRINTF): Redirect to sprintf also in case of __STRICT_ANSI__ (i.e., if -ansi compiler option specified). * misc.c (GC_VSNPRINTF): Redirect to vsprintf also in case of __STRICT_ANSI__.
* Fix 'cord' headers path in EMX_MAKEFILE and README.QUICKIvan Maidanski2014-06-212-8/+5
| | | | | | | | | * EMX_MAKEFILE (CORD_INCLUDE_FILES): Replace cord/*.h files with include/*.h ones (all "cord" header files moved in gc4.8). * EMX_MAKEFILE (cords): Do not copy cord/*.h files to "include" folder. * README.QUICK: Replace cord/cord.h with include/cord.h; move sentence about cord.h to the relevant paragraph.
* Remove Makefile.dj (and README.dj) in favor of configure (DJGPP)Ivan Maidanski2014-06-195-302/+3
| | | | | | | | | | * Makefile.am (EXTRA_DIST): Remove Makefile.dj entry. * Makefile.direct (OTHER_MAKEFILES): Likewise. * Makefile.direct (DOC_FILES): Remove doc/README.dj entry. * doc/doc.am (dist_pkgdata_DATA): Likewise. * Makefile.dj: Remove file ("configure" is to be used to build libgc, no special options needed). * doc/README.dj: Likewise.
* Fix unresolved vsnprintf in misc.c and snprintf in cordtest (DJGPP, VC)Ivan Maidanski2014-06-192-4/+22
| | | | | | | | | * cord/tests/cordtest.c (GC_SNPRINTF, GC_SNPRINTF_BUFSZ_ARG): New macro to workaround snprintf() missing in DJGPP and MS VC. * cord/tests/cordtest.c (test_printf): Replace snprintf() with GC_SNPRINTF and GC_SNPRINTF_BUFSZ_ARG. * misc.c (GC_VSNPRINTF): Test DJGPP instead of NO_VSNPRINTF; refine comment.