From: ivmai Date: Mon, 18 Apr 2011 22:11:59 +0000 (+0000) Subject: 2011-04-18 Ivan Maidanski (really Ludovic Courtes) X-Git-Tag: gc7_2alpha6~62 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7a55f019e77692779a151ba6da816a39275ec50d;p=gc 2011-04-18 Ivan Maidanski (really Ludovic Courtes) * tests/tests.am (TESTS, check_PROGRAMS): Add 'initsecondarythread'. * tests/tests.am (initsecondarythread_SOURCES, initsecondarythread_LDADD): New variable. * Makefile.in: Regenerate. * configure: Ditto. --- diff --git a/ChangeLog b/ChangeLog index 08f60a65..cf253592 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2011-04-18 Ivan Maidanski (really Ludovic Courtes) + + * tests/tests.am (TESTS, check_PROGRAMS): Add + 'initsecondarythread'. + * tests/tests.am (initsecondarythread_SOURCES, + initsecondarythread_LDADD): New variable. + * Makefile.in: Regenerate. + * configure: Ditto. + 2011-04-18 Ivan Maidanski * dbg_mlc.c (GC_store_debug_info_inner): Always define; add diff --git a/Makefile.in b/Makefile.in index 27163860..d043c3b0 100644 --- a/Makefile.in +++ b/Makefile.in @@ -121,8 +121,9 @@ DIST_COMMON = $(am__configure_deps) $(am__pkginclude_HEADERS_DIST) \ mkinstalldirs @KEEP_BACK_PTRS_TRUE@am__append_7 = tracetest$(EXEEXT) @KEEP_BACK_PTRS_TRUE@am__append_8 = tracetest -@THREADS_TRUE@am__append_9 = threadleaktest$(EXEEXT) -@THREADS_TRUE@am__append_10 = threadleaktest +@THREADS_TRUE@am__append_9 = threadleaktest$(EXEEXT) \ +@THREADS_TRUE@ initsecondarythread$(EXEEXT) +@THREADS_TRUE@am__append_10 = threadleaktest initsecondarythread @CPLUSPLUS_TRUE@am__append_11 = test_cpp$(EXEEXT) @CPLUSPLUS_TRUE@am__append_12 = test_cpp subdir = . @@ -213,13 +214,20 @@ libstaticrootslib_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(libstaticrootslib_la_LDFLAGS) $(LDFLAGS) -o $@ @KEEP_BACK_PTRS_TRUE@am__EXEEXT_1 = tracetest$(EXEEXT) -@THREADS_TRUE@am__EXEEXT_2 = threadleaktest$(EXEEXT) +@THREADS_TRUE@am__EXEEXT_2 = threadleaktest$(EXEEXT) \ +@THREADS_TRUE@ initsecondarythread$(EXEEXT) @CPLUSPLUS_TRUE@am__EXEEXT_3 = test_cpp$(EXEEXT) am_gctest_OBJECTS = test.$(OBJEXT) gctest_OBJECTS = $(am_gctest_OBJECTS) am_hugetest_OBJECTS = huge_test.$(OBJEXT) hugetest_OBJECTS = $(am_hugetest_OBJECTS) hugetest_DEPENDENCIES = $(am__DEPENDENCIES_2) +am__initsecondarythread_SOURCES_DIST = tests/initsecondarythread.c +@THREADS_TRUE@am_initsecondarythread_OBJECTS = \ +@THREADS_TRUE@ initsecondarythread.$(OBJEXT) +initsecondarythread_OBJECTS = $(am_initsecondarythread_OBJECTS) +@THREADS_TRUE@initsecondarythread_DEPENDENCIES = \ +@THREADS_TRUE@ $(am__DEPENDENCIES_2) am_leaktest_OBJECTS = leak_test.$(OBJEXT) leaktest_OBJECTS = $(am_leaktest_OBJECTS) leaktest_DEPENDENCIES = $(am__DEPENDENCIES_2) @@ -283,16 +291,17 @@ LTCCASCOMPILE = $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ SOURCES = $(libcord_la_SOURCES) $(libgc_la_SOURCES) \ $(EXTRA_libgc_la_SOURCES) $(nodist_libgc_la_SOURCES) \ $(libgccpp_la_SOURCES) $(libstaticrootslib_la_SOURCES) \ - $(gctest_SOURCES) $(hugetest_SOURCES) $(leaktest_SOURCES) \ + $(gctest_SOURCES) $(hugetest_SOURCES) \ + $(initsecondarythread_SOURCES) $(leaktest_SOURCES) \ $(middletest_SOURCES) $(smashtest_SOURCES) \ $(staticrootstest_SOURCES) $(test_cpp_SOURCES) \ $(threadleaktest_SOURCES) $(tracetest_SOURCES) DIST_SOURCES = $(libcord_la_SOURCES) $(am__libgc_la_SOURCES_DIST) \ $(EXTRA_libgc_la_SOURCES) $(am__libgccpp_la_SOURCES_DIST) \ $(libstaticrootslib_la_SOURCES) $(gctest_SOURCES) \ - $(hugetest_SOURCES) $(leaktest_SOURCES) $(middletest_SOURCES) \ - $(smashtest_SOURCES) $(staticrootstest_SOURCES) \ - $(am__test_cpp_SOURCES_DIST) \ + $(hugetest_SOURCES) $(am__initsecondarythread_SOURCES_DIST) \ + $(leaktest_SOURCES) $(middletest_SOURCES) $(smashtest_SOURCES) \ + $(staticrootstest_SOURCES) $(am__test_cpp_SOURCES_DIST) \ $(am__threadleaktest_SOURCES_DIST) \ $(am__tracetest_SOURCES_DIST) RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ @@ -662,6 +671,8 @@ libstaticrootslib_la_DEPENDENCIES = $(top_builddir)/libgc.la @KEEP_BACK_PTRS_TRUE@tracetest_LDADD = $(test_ldadd) @THREADS_TRUE@threadleaktest_SOURCES = tests/thread_leak_test.c @THREADS_TRUE@threadleaktest_LDADD = $(test_ldadd) +@THREADS_TRUE@initsecondarythread_SOURCES = tests/initsecondarythread.c +@THREADS_TRUE@initsecondarythread_LDADD = $(test_ldadd) @CPLUSPLUS_TRUE@test_cpp_SOURCES = tests/test_cpp.cc @AVOID_CPP_LIB_FALSE@@CPLUSPLUS_TRUE@test_cpp_LDADD = libgccpp.la $(test_ldadd) @AVOID_CPP_LIB_TRUE@@CPLUSPLUS_TRUE@test_cpp_LDADD = gc_cpp.o $(test_ldadd) @@ -826,6 +837,9 @@ gctest$(EXEEXT): $(gctest_OBJECTS) $(gctest_DEPENDENCIES) hugetest$(EXEEXT): $(hugetest_OBJECTS) $(hugetest_DEPENDENCIES) @rm -f hugetest$(EXEEXT) $(LINK) $(hugetest_OBJECTS) $(hugetest_LDADD) $(LIBS) +initsecondarythread$(EXEEXT): $(initsecondarythread_OBJECTS) $(initsecondarythread_DEPENDENCIES) + @rm -f initsecondarythread$(EXEEXT) + $(LINK) $(initsecondarythread_OBJECTS) $(initsecondarythread_LDADD) $(LIBS) leaktest$(EXEEXT): $(leaktest_OBJECTS) $(leaktest_DEPENDENCIES) @rm -f leaktest$(EXEEXT) $(LINK) $(leaktest_OBJECTS) $(leaktest_LDADD) $(LIBS) @@ -875,6 +889,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gcj_mlc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/headers.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/huge_test.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/initsecondarythread.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/leak_test.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/malloc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mallocx.Plo@am__quote@ @@ -1018,6 +1033,20 @@ huge_test.obj: tests/huge_test.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o huge_test.obj `if test -f 'tests/huge_test.c'; then $(CYGPATH_W) 'tests/huge_test.c'; else $(CYGPATH_W) '$(srcdir)/tests/huge_test.c'; fi` +initsecondarythread.o: tests/initsecondarythread.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT initsecondarythread.o -MD -MP -MF $(DEPDIR)/initsecondarythread.Tpo -c -o initsecondarythread.o `test -f 'tests/initsecondarythread.c' || echo '$(srcdir)/'`tests/initsecondarythread.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/initsecondarythread.Tpo $(DEPDIR)/initsecondarythread.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tests/initsecondarythread.c' object='initsecondarythread.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o initsecondarythread.o `test -f 'tests/initsecondarythread.c' || echo '$(srcdir)/'`tests/initsecondarythread.c + +initsecondarythread.obj: tests/initsecondarythread.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT initsecondarythread.obj -MD -MP -MF $(DEPDIR)/initsecondarythread.Tpo -c -o initsecondarythread.obj `if test -f 'tests/initsecondarythread.c'; then $(CYGPATH_W) 'tests/initsecondarythread.c'; else $(CYGPATH_W) '$(srcdir)/tests/initsecondarythread.c'; fi` +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/initsecondarythread.Tpo $(DEPDIR)/initsecondarythread.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tests/initsecondarythread.c' object='initsecondarythread.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o initsecondarythread.obj `if test -f 'tests/initsecondarythread.c'; then $(CYGPATH_W) 'tests/initsecondarythread.c'; else $(CYGPATH_W) '$(srcdir)/tests/initsecondarythread.c'; fi` + leak_test.o: tests/leak_test.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT leak_test.o -MD -MP -MF $(DEPDIR)/leak_test.Tpo -c -o leak_test.o `test -f 'tests/leak_test.c' || echo '$(srcdir)/'`tests/leak_test.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/leak_test.Tpo $(DEPDIR)/leak_test.Po diff --git a/configure b/configure index 01b690bd..3681b580 100755 --- a/configure +++ b/configure @@ -1,5 +1,5 @@ #! /bin/sh -# From configure.ac Revision: 1.64 . +# From configure.ac Revision: 1.65 . # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.68 for gc 7.2alpha5. # diff --git a/tests/initsecondarythread.c b/tests/initsecondarythread.c new file mode 100644 index 00000000..feed5604 --- /dev/null +++ b/tests/initsecondarythread.c @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2011 Ludovic Courtes + * + * 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. + */ + +/* Make sure 'GC_INIT' can be called from threads other than the initial + * thread. + */ + +#ifndef GC_THREADS +# define GC_THREADS +#endif + +#define GC_NO_THREAD_REDIRECTS 1 + +#include "gc.h" + +#include +#include + +static void *thread(void *arg) +{ + GC_INIT (); + GC_MALLOC (123); + GC_MALLOC (12345); + return NULL; +} + +int main(void) +{ + pthread_t t; + pthread_create (&t, NULL, thread, NULL); + pthread_join (t, NULL); + return 0; +} diff --git a/tests/tests.am b/tests/tests.am index b655c2ba..e773c45a 100644 --- a/tests/tests.am +++ b/tests/tests.am @@ -67,6 +67,11 @@ TESTS += threadleaktest$(EXEEXT) check_PROGRAMS += threadleaktest threadleaktest_SOURCES = tests/thread_leak_test.c threadleaktest_LDADD = $(test_ldadd) + +TESTS += initsecondarythread$(EXEEXT) +check_PROGRAMS += initsecondarythread +initsecondarythread_SOURCES = tests/initsecondarythread.c +initsecondarythread_LDADD = $(test_ldadd) endif if CPLUSPLUS