- Timestamp:
- Mar 31, 2017, 12:24:39 PM (8 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
- Children:
- 5ea06d6
- Parents:
- 72dc82a (diff), 077810d (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - Location:
- src
- Files:
-
- 4 added
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
src/driver/cfa.cc
r72dc82a r78d3dd5 269 269 args[nargs] = "-lpthread"; 270 270 nargs += 1; 271 args[nargs] = "-ldl"; 272 nargs += 1; 273 args[nargs] = "-Xlinker"; 274 nargs += 1; 275 args[nargs] = "--undefined=__lib_debug_write"; 276 nargs += 1; 277 271 278 } // if 272 279 #endif //HAVE_LIBCFA -
src/libcfa/Makefile.am
r72dc82a r78d3dd5 49 49 50 50 libobjs = ${headers:=.o} 51 libsrc = libcfa-prelude.c ${headers:=.c}51 libsrc = libcfa-prelude.c interpose.c libhdr/debug.c ${headers:=.c} 52 52 53 53 # not all platforms support concurrency, add option do disable it -
src/libcfa/Makefile.in
r72dc82a r78d3dd5 43 43 44 44 # not all platforms support concurrency, add option do disable it 45 @BUILD_CONCURRENCY_TRUE@am__append_3 = con tainers/vector concurrency/coroutine concurrency/thread concurrency/kernel concurrency/monitor45 @BUILD_CONCURRENCY_TRUE@am__append_3 = concurrency/coroutine concurrency/thread concurrency/kernel concurrency/monitor 46 46 47 47 # not all platforms support concurrency, add option do disable it … … 97 97 libcfa_d_a_AR = $(AR) $(ARFLAGS) 98 98 libcfa_d_a_LIBADD = 99 am__libcfa_d_a_SOURCES_DIST = libcfa-prelude.c limits.c stdlib.c \100 math.c iostream.c fstream.c iterator.c rational.c assert.c \101 containers/vector.c concurrency/coroutine.c \102 concurrency/ thread.c concurrency/kernel.c \103 concurrency/ monitor.c concurrency/CtxSwitch-@MACHINE_TYPE@.S\104 concurrency/ invoke.c99 am__libcfa_d_a_SOURCES_DIST = libcfa-prelude.c interpose.c \ 100 libhdr/debug.c limits.c stdlib.c math.c iostream.c fstream.c \ 101 iterator.c rational.c assert.c containers/vector.c \ 102 concurrency/coroutine.c concurrency/thread.c \ 103 concurrency/kernel.c concurrency/monitor.c \ 104 concurrency/CtxSwitch-@MACHINE_TYPE@.S concurrency/invoke.c 105 105 am__dirstamp = $(am__leading_dot)dirstamp 106 @BUILD_CONCURRENCY_TRUE@am__objects_1 = containers/libcfa_d_a-vector.$(OBJEXT) \ 107 @BUILD_CONCURRENCY_TRUE@ concurrency/libcfa_d_a-coroutine.$(OBJEXT) \ 106 @BUILD_CONCURRENCY_TRUE@am__objects_1 = concurrency/libcfa_d_a-coroutine.$(OBJEXT) \ 108 107 @BUILD_CONCURRENCY_TRUE@ concurrency/libcfa_d_a-thread.$(OBJEXT) \ 109 108 @BUILD_CONCURRENCY_TRUE@ concurrency/libcfa_d_a-kernel.$(OBJEXT) \ … … 113 112 libcfa_d_a-iostream.$(OBJEXT) libcfa_d_a-fstream.$(OBJEXT) \ 114 113 libcfa_d_a-iterator.$(OBJEXT) libcfa_d_a-rational.$(OBJEXT) \ 115 libcfa_d_a-assert.$(OBJEXT) $(am__objects_1) 114 libcfa_d_a-assert.$(OBJEXT) \ 115 containers/libcfa_d_a-vector.$(OBJEXT) $(am__objects_1) 116 116 @BUILD_CONCURRENCY_TRUE@am__objects_3 = concurrency/CtxSwitch-@MACHINE_TYPE@.$(OBJEXT) \ 117 117 @BUILD_CONCURRENCY_TRUE@ concurrency/libcfa_d_a-invoke.$(OBJEXT) 118 am__objects_4 = libcfa_d_a-libcfa-prelude.$(OBJEXT) $(am__objects_2) \ 118 am__objects_4 = libcfa_d_a-libcfa-prelude.$(OBJEXT) \ 119 libcfa_d_a-interpose.$(OBJEXT) \ 120 libhdr/libcfa_d_a-debug.$(OBJEXT) $(am__objects_2) \ 119 121 $(am__objects_3) 120 122 am_libcfa_d_a_OBJECTS = $(am__objects_4) … … 122 124 libcfa_a_AR = $(AR) $(ARFLAGS) 123 125 libcfa_a_LIBADD = 124 am__libcfa_a_SOURCES_DIST = libcfa-prelude.c limits.c stdlib.c math.c \ 125 iostream.c fstream.c iterator.c rational.c assert.c \ 126 containers/vector.c concurrency/coroutine.c \ 127 concurrency/thread.c concurrency/kernel.c \ 128 concurrency/monitor.c concurrency/CtxSwitch-@MACHINE_TYPE@.S \ 129 concurrency/invoke.c 130 @BUILD_CONCURRENCY_TRUE@am__objects_5 = \ 131 @BUILD_CONCURRENCY_TRUE@ containers/libcfa_a-vector.$(OBJEXT) \ 132 @BUILD_CONCURRENCY_TRUE@ concurrency/libcfa_a-coroutine.$(OBJEXT) \ 126 am__libcfa_a_SOURCES_DIST = libcfa-prelude.c interpose.c \ 127 libhdr/debug.c limits.c stdlib.c math.c iostream.c fstream.c \ 128 iterator.c rational.c assert.c containers/vector.c \ 129 concurrency/coroutine.c concurrency/thread.c \ 130 concurrency/kernel.c concurrency/monitor.c \ 131 concurrency/CtxSwitch-@MACHINE_TYPE@.S concurrency/invoke.c 132 @BUILD_CONCURRENCY_TRUE@am__objects_5 = concurrency/libcfa_a-coroutine.$(OBJEXT) \ 133 133 @BUILD_CONCURRENCY_TRUE@ concurrency/libcfa_a-thread.$(OBJEXT) \ 134 134 @BUILD_CONCURRENCY_TRUE@ concurrency/libcfa_a-kernel.$(OBJEXT) \ … … 138 138 libcfa_a-fstream.$(OBJEXT) libcfa_a-iterator.$(OBJEXT) \ 139 139 libcfa_a-rational.$(OBJEXT) libcfa_a-assert.$(OBJEXT) \ 140 $(am__objects_5)140 containers/libcfa_a-vector.$(OBJEXT) $(am__objects_5) 141 141 @BUILD_CONCURRENCY_TRUE@am__objects_7 = concurrency/CtxSwitch-@MACHINE_TYPE@.$(OBJEXT) \ 142 142 @BUILD_CONCURRENCY_TRUE@ concurrency/libcfa_a-invoke.$(OBJEXT) 143 am__objects_8 = libcfa_a-libcfa-prelude.$(OBJEXT) $(am__objects_6) \ 144 $(am__objects_7) 143 am__objects_8 = libcfa_a-libcfa-prelude.$(OBJEXT) \ 144 libcfa_a-interpose.$(OBJEXT) libhdr/libcfa_a-debug.$(OBJEXT) \ 145 $(am__objects_6) $(am__objects_7) 145 146 am_libcfa_a_OBJECTS = $(am__objects_8) 146 147 libcfa_a_OBJECTS = $(am_libcfa_a_OBJECTS) … … 308 309 AM_CCASFLAGS = @CFA_FLAGS@ 309 310 headers = limits stdlib math iostream fstream iterator rational assert \ 310 $(am__append_3)311 containers/vector $(am__append_3) 311 312 libobjs = ${headers:=.o} 312 libsrc = libcfa-prelude.c ${headers:=.c} $(am__append_4) 313 libsrc = libcfa-prelude.c interpose.c libhdr/debug.c ${headers:=.c} \ 314 $(am__append_4) 313 315 libcfa_a_SOURCES = ${libsrc} 314 316 libcfa_a_CFLAGS = -nodebug -O2 … … 383 385 clean-libLIBRARIES: 384 386 -test -z "$(lib_LIBRARIES)" || rm -f $(lib_LIBRARIES) 387 libhdr/$(am__dirstamp): 388 @$(MKDIR_P) libhdr 389 @: > libhdr/$(am__dirstamp) 390 libhdr/$(DEPDIR)/$(am__dirstamp): 391 @$(MKDIR_P) libhdr/$(DEPDIR) 392 @: > libhdr/$(DEPDIR)/$(am__dirstamp) 393 libhdr/libcfa_d_a-debug.$(OBJEXT): libhdr/$(am__dirstamp) \ 394 libhdr/$(DEPDIR)/$(am__dirstamp) 385 395 containers/$(am__dirstamp): 386 396 @$(MKDIR_P) containers … … 415 425 $(AM_V_AR)$(libcfa_d_a_AR) libcfa-d.a $(libcfa_d_a_OBJECTS) $(libcfa_d_a_LIBADD) 416 426 $(AM_V_at)$(RANLIB) libcfa-d.a 427 libhdr/libcfa_a-debug.$(OBJEXT): libhdr/$(am__dirstamp) \ 428 libhdr/$(DEPDIR)/$(am__dirstamp) 417 429 containers/libcfa_a-vector.$(OBJEXT): containers/$(am__dirstamp) \ 418 430 containers/$(DEPDIR)/$(am__dirstamp) … … 447 459 -rm -f containers/libcfa_a-vector.$(OBJEXT) 448 460 -rm -f containers/libcfa_d_a-vector.$(OBJEXT) 461 -rm -f libhdr/libcfa_a-debug.$(OBJEXT) 462 -rm -f libhdr/libcfa_d_a-debug.$(OBJEXT) 449 463 450 464 distclean-compile: … … 453 467 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_a-assert.Po@am__quote@ 454 468 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_a-fstream.Po@am__quote@ 469 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_a-interpose.Po@am__quote@ 455 470 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_a-iostream.Po@am__quote@ 456 471 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_a-iterator.Po@am__quote@ … … 462 477 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_d_a-assert.Po@am__quote@ 463 478 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_d_a-fstream.Po@am__quote@ 479 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_d_a-interpose.Po@am__quote@ 464 480 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_d_a-iostream.Po@am__quote@ 465 481 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_d_a-iterator.Po@am__quote@ … … 482 498 @AMDEP_TRUE@@am__include@ @am__quote@containers/$(DEPDIR)/libcfa_a-vector.Po@am__quote@ 483 499 @AMDEP_TRUE@@am__include@ @am__quote@containers/$(DEPDIR)/libcfa_d_a-vector.Po@am__quote@ 500 @AMDEP_TRUE@@am__include@ @am__quote@libhdr/$(DEPDIR)/libcfa_a-debug.Po@am__quote@ 501 @AMDEP_TRUE@@am__include@ @am__quote@libhdr/$(DEPDIR)/libcfa_d_a-debug.Po@am__quote@ 484 502 485 503 .S.o: … … 522 540 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libcfa_d_a-libcfa-prelude.obj `if test -f 'libcfa-prelude.c'; then $(CYGPATH_W) 'libcfa-prelude.c'; else $(CYGPATH_W) '$(srcdir)/libcfa-prelude.c'; fi` 523 541 542 libcfa_d_a-interpose.o: interpose.c 543 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libcfa_d_a-interpose.o -MD -MP -MF $(DEPDIR)/libcfa_d_a-interpose.Tpo -c -o libcfa_d_a-interpose.o `test -f 'interpose.c' || echo '$(srcdir)/'`interpose.c 544 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_d_a-interpose.Tpo $(DEPDIR)/libcfa_d_a-interpose.Po 545 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='interpose.c' object='libcfa_d_a-interpose.o' libtool=no @AMDEPBACKSLASH@ 546 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 547 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libcfa_d_a-interpose.o `test -f 'interpose.c' || echo '$(srcdir)/'`interpose.c 548 549 libcfa_d_a-interpose.obj: interpose.c 550 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libcfa_d_a-interpose.obj -MD -MP -MF $(DEPDIR)/libcfa_d_a-interpose.Tpo -c -o libcfa_d_a-interpose.obj `if test -f 'interpose.c'; then $(CYGPATH_W) 'interpose.c'; else $(CYGPATH_W) '$(srcdir)/interpose.c'; fi` 551 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_d_a-interpose.Tpo $(DEPDIR)/libcfa_d_a-interpose.Po 552 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='interpose.c' object='libcfa_d_a-interpose.obj' libtool=no @AMDEPBACKSLASH@ 553 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 554 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libcfa_d_a-interpose.obj `if test -f 'interpose.c'; then $(CYGPATH_W) 'interpose.c'; else $(CYGPATH_W) '$(srcdir)/interpose.c'; fi` 555 556 libhdr/libcfa_d_a-debug.o: libhdr/debug.c 557 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libhdr/libcfa_d_a-debug.o -MD -MP -MF libhdr/$(DEPDIR)/libcfa_d_a-debug.Tpo -c -o libhdr/libcfa_d_a-debug.o `test -f 'libhdr/debug.c' || echo '$(srcdir)/'`libhdr/debug.c 558 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libhdr/$(DEPDIR)/libcfa_d_a-debug.Tpo libhdr/$(DEPDIR)/libcfa_d_a-debug.Po 559 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libhdr/debug.c' object='libhdr/libcfa_d_a-debug.o' libtool=no @AMDEPBACKSLASH@ 560 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 561 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libhdr/libcfa_d_a-debug.o `test -f 'libhdr/debug.c' || echo '$(srcdir)/'`libhdr/debug.c 562 563 libhdr/libcfa_d_a-debug.obj: libhdr/debug.c 564 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libhdr/libcfa_d_a-debug.obj -MD -MP -MF libhdr/$(DEPDIR)/libcfa_d_a-debug.Tpo -c -o libhdr/libcfa_d_a-debug.obj `if test -f 'libhdr/debug.c'; then $(CYGPATH_W) 'libhdr/debug.c'; else $(CYGPATH_W) '$(srcdir)/libhdr/debug.c'; fi` 565 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libhdr/$(DEPDIR)/libcfa_d_a-debug.Tpo libhdr/$(DEPDIR)/libcfa_d_a-debug.Po 566 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libhdr/debug.c' object='libhdr/libcfa_d_a-debug.obj' libtool=no @AMDEPBACKSLASH@ 567 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 568 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libhdr/libcfa_d_a-debug.obj `if test -f 'libhdr/debug.c'; then $(CYGPATH_W) 'libhdr/debug.c'; else $(CYGPATH_W) '$(srcdir)/libhdr/debug.c'; fi` 569 524 570 libcfa_d_a-limits.o: limits.c 525 571 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libcfa_d_a-limits.o -MD -MP -MF $(DEPDIR)/libcfa_d_a-limits.Tpo -c -o libcfa_d_a-limits.o `test -f 'limits.c' || echo '$(srcdir)/'`limits.c … … 717 763 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 718 764 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libcfa_a-libcfa-prelude.obj `if test -f 'libcfa-prelude.c'; then $(CYGPATH_W) 'libcfa-prelude.c'; else $(CYGPATH_W) '$(srcdir)/libcfa-prelude.c'; fi` 765 766 libcfa_a-interpose.o: interpose.c 767 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT libcfa_a-interpose.o -MD -MP -MF $(DEPDIR)/libcfa_a-interpose.Tpo -c -o libcfa_a-interpose.o `test -f 'interpose.c' || echo '$(srcdir)/'`interpose.c 768 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_a-interpose.Tpo $(DEPDIR)/libcfa_a-interpose.Po 769 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='interpose.c' object='libcfa_a-interpose.o' libtool=no @AMDEPBACKSLASH@ 770 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 771 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libcfa_a-interpose.o `test -f 'interpose.c' || echo '$(srcdir)/'`interpose.c 772 773 libcfa_a-interpose.obj: interpose.c 774 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT libcfa_a-interpose.obj -MD -MP -MF $(DEPDIR)/libcfa_a-interpose.Tpo -c -o libcfa_a-interpose.obj `if test -f 'interpose.c'; then $(CYGPATH_W) 'interpose.c'; else $(CYGPATH_W) '$(srcdir)/interpose.c'; fi` 775 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_a-interpose.Tpo $(DEPDIR)/libcfa_a-interpose.Po 776 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='interpose.c' object='libcfa_a-interpose.obj' libtool=no @AMDEPBACKSLASH@ 777 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 778 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libcfa_a-interpose.obj `if test -f 'interpose.c'; then $(CYGPATH_W) 'interpose.c'; else $(CYGPATH_W) '$(srcdir)/interpose.c'; fi` 779 780 libhdr/libcfa_a-debug.o: libhdr/debug.c 781 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT libhdr/libcfa_a-debug.o -MD -MP -MF libhdr/$(DEPDIR)/libcfa_a-debug.Tpo -c -o libhdr/libcfa_a-debug.o `test -f 'libhdr/debug.c' || echo '$(srcdir)/'`libhdr/debug.c 782 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libhdr/$(DEPDIR)/libcfa_a-debug.Tpo libhdr/$(DEPDIR)/libcfa_a-debug.Po 783 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libhdr/debug.c' object='libhdr/libcfa_a-debug.o' libtool=no @AMDEPBACKSLASH@ 784 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 785 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libhdr/libcfa_a-debug.o `test -f 'libhdr/debug.c' || echo '$(srcdir)/'`libhdr/debug.c 786 787 libhdr/libcfa_a-debug.obj: libhdr/debug.c 788 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT libhdr/libcfa_a-debug.obj -MD -MP -MF libhdr/$(DEPDIR)/libcfa_a-debug.Tpo -c -o libhdr/libcfa_a-debug.obj `if test -f 'libhdr/debug.c'; then $(CYGPATH_W) 'libhdr/debug.c'; else $(CYGPATH_W) '$(srcdir)/libhdr/debug.c'; fi` 789 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libhdr/$(DEPDIR)/libcfa_a-debug.Tpo libhdr/$(DEPDIR)/libcfa_a-debug.Po 790 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libhdr/debug.c' object='libhdr/libcfa_a-debug.obj' libtool=no @AMDEPBACKSLASH@ 791 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 792 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libhdr/libcfa_a-debug.obj `if test -f 'libhdr/debug.c'; then $(CYGPATH_W) 'libhdr/debug.c'; else $(CYGPATH_W) '$(srcdir)/libhdr/debug.c'; fi` 719 793 720 794 libcfa_a-limits.o: limits.c … … 1048 1122 -rm -f containers/$(DEPDIR)/$(am__dirstamp) 1049 1123 -rm -f containers/$(am__dirstamp) 1124 -rm -f libhdr/$(DEPDIR)/$(am__dirstamp) 1125 -rm -f libhdr/$(am__dirstamp) 1050 1126 1051 1127 maintainer-clean-generic: … … 1057 1133 1058 1134 distclean: distclean-am 1059 -rm -rf ./$(DEPDIR) concurrency/$(DEPDIR) containers/$(DEPDIR) 1135 -rm -rf ./$(DEPDIR) concurrency/$(DEPDIR) containers/$(DEPDIR) libhdr/$(DEPDIR) 1060 1136 -rm -f Makefile 1061 1137 distclean-am: clean-am distclean-compile distclean-generic \ … … 1103 1179 1104 1180 maintainer-clean: maintainer-clean-am 1105 -rm -rf ./$(DEPDIR) concurrency/$(DEPDIR) containers/$(DEPDIR) 1181 -rm -rf ./$(DEPDIR) concurrency/$(DEPDIR) containers/$(DEPDIR) libhdr/$(DEPDIR) 1106 1182 -rm -f Makefile 1107 1183 maintainer-clean-am: distclean-am maintainer-clean-generic \ -
src/libcfa/assert.c
r72dc82a r78d3dd5 17 17 #include "stdlib" // abort 18 18 19 #include "libhdr/libdebug.h" 20 19 21 extern "C" { 20 22 #include <stdarg.h> // varargs … … 23 25 extern const char * __progname; // global name of running executable (argv[0]) 24 26 25 #define CFA_ASSERT_FMT " *CFA assertion error*from program \"%s\" in \"%s\" at line %d in file \"%s\""27 #define CFA_ASSERT_FMT "Cforall Assertion error from program \"%s\" in \"%s\" at line %d in file \"%s\"" 26 28 27 29 // called by macro assert in assert.h 28 30 void __assert_fail( const char *assertion, const char *file, unsigned int line, const char *function ) { 29 fprintf( stderr,CFA_ASSERT_FMT ".\n", __progname, function, line, file );31 __lib_debug_print_safe( CFA_ASSERT_FMT ".\n", __progname, function, line, file ); 30 32 abort(); 31 33 } … … 33 35 // called by macro assertf 34 36 void __assert_fail_f( const char *assertion, const char *file, unsigned int line, const char *function, const char *fmt, ... ) { 35 fprintf( stderr, CFA_ASSERT_FMT ": ", __progname, function, line, file ); 37 __lib_debug_acquire(); 38 __lib_debug_print_nolock( CFA_ASSERT_FMT ": ", __progname, function, line, file ); 39 36 40 va_list args; 37 41 va_start( args, fmt ); 38 vfprintf( stderr,fmt, args );42 __lib_debug_print_vararg( fmt, args ); 39 43 va_end( args ); 40 fprintf( stderr, "\n" ); 44 45 __lib_debug_print_nolock( "\n" ); 46 __lib_debug_release(); 41 47 abort(); 42 48 } -
src/libcfa/concurrency/kernel.c
r72dc82a r78d3dd5 15 15 // 16 16 17 #include "startup.h" 18 17 19 //Start and stop routine for the kernel, declared first to make sure they run first 18 void kernel_startup(void) __attribute__(( constructor(101)));19 void kernel_shutdown(void) __attribute__(( destructor(101)));20 void kernel_startup(void) __attribute__(( constructor( STARTUP_PRIORITY_KERNEL ) )); 21 void kernel_shutdown(void) __attribute__(( destructor ( STARTUP_PRIORITY_KERNEL ) )); 20 22 21 23 //Header … … 25 27 #include <stddef.h> 26 28 extern "C" { 29 #include <stdio.h> 27 30 #include <fenv.h> 28 31 #include <sys/resource.h> 32 #include <signal.h> 33 #include <unistd.h> 29 34 } 30 35 … … 146 151 147 152 this->runner = runner; 148 LIB_DEBUG_PRINT F("Kernel : constructing processor context %p\n", runner);153 LIB_DEBUG_PRINT_SAFE("Kernel : constructing processor context %p\n", runner); 149 154 runner{ this }; 150 155 } … … 152 157 void ^?{}(processor * this) { 153 158 if( ! this->is_terminated ) { 154 LIB_DEBUG_PRINT F("Kernel : core %p signaling termination\n", this);159 LIB_DEBUG_PRINT_SAFE("Kernel : core %p signaling termination\n", this); 155 160 this->is_terminated = true; 156 161 wait( &this->terminated ); … … 173 178 void main(processorCtx_t * runner) { 174 179 processor * this = runner->proc; 175 LIB_DEBUG_PRINT F("Kernel : core %p starting\n", this);180 LIB_DEBUG_PRINT_SAFE("Kernel : core %p starting\n", this); 176 181 177 182 thread_desc * readyThread = NULL; … … 195 200 } 196 201 197 LIB_DEBUG_PRINT F("Kernel : core %p unlocking thread\n", this);202 LIB_DEBUG_PRINT_SAFE("Kernel : core %p unlocking thread\n", this); 198 203 signal( &this->terminated ); 199 LIB_DEBUG_PRINT F("Kernel : core %p terminated\n", this);204 LIB_DEBUG_PRINT_SAFE("Kernel : core %p terminated\n", this); 200 205 } 201 206 … … 255 260 processorCtx_t proc_cor_storage = { proc, &info }; 256 261 257 LIB_DEBUG_PRINT F("Coroutine : created stack %p\n", proc_cor_storage.__cor.stack.base);262 LIB_DEBUG_PRINT_SAFE("Coroutine : created stack %p\n", proc_cor_storage.__cor.stack.base); 258 263 259 264 //Set global state … … 262 267 263 268 //We now have a proper context from which to schedule threads 264 LIB_DEBUG_PRINT F("Kernel : core %p created (%p, %p)\n", proc, proc->runner, &ctx);269 LIB_DEBUG_PRINT_SAFE("Kernel : core %p created (%p, %p)\n", proc, proc->runner, &ctx); 265 270 266 271 // SKULLDUGGERY: Since the coroutine doesn't have its own stack, we can't … … 273 278 274 279 // Main routine of the core returned, the core is now fully terminated 275 LIB_DEBUG_PRINT F("Kernel : core %p main ended (%p)\n", proc, proc->runner);280 LIB_DEBUG_PRINT_SAFE("Kernel : core %p main ended (%p)\n", proc, proc->runner); 276 281 277 282 return NULL; … … 279 284 280 285 void start(processor * this) { 281 LIB_DEBUG_PRINT F("Kernel : Starting core %p\n", this);286 LIB_DEBUG_PRINT_SAFE("Kernel : Starting core %p\n", this); 282 287 283 288 // pthread_attr_t attributes; … … 288 293 // pthread_attr_destroy( &attributes ); 289 294 290 LIB_DEBUG_PRINT F("Kernel : core %p started\n", this);295 LIB_DEBUG_PRINT_SAFE("Kernel : core %p started\n", this); 291 296 } 292 297 … … 336 341 // Kernel boot procedures 337 342 void kernel_startup(void) { 338 LIB_DEBUG_PRINT F("Kernel : Starting\n");343 LIB_DEBUG_PRINT_SAFE("Kernel : Starting\n"); 339 344 340 345 // Start by initializing the main thread … … 371 376 372 377 // THE SYSTEM IS NOW COMPLETELY RUNNING 373 LIB_DEBUG_PRINT F("Kernel : Started\n--------------------------------------------------\n\n");378 LIB_DEBUG_PRINT_SAFE("Kernel : Started\n--------------------------------------------------\n\n"); 374 379 } 375 380 376 381 void kernel_shutdown(void) { 377 LIB_DEBUG_PRINT F("\n--------------------------------------------------\nKernel : Shutting down\n");382 LIB_DEBUG_PRINT_SAFE("\n--------------------------------------------------\nKernel : Shutting down\n"); 378 383 379 384 // SKULLDUGGERY: Notify the systemProcessor it needs to terminates. … … 394 399 ^(mainThread){}; 395 400 396 LIB_DEBUG_PRINTF("Kernel : Shutdown complete\n"); 401 LIB_DEBUG_PRINT_SAFE("Kernel : Shutdown complete\n"); 402 } 403 404 static spinlock kernel_abort_lock; 405 static spinlock kernel_debug_lock; 406 static bool kernel_abort_called = false; 407 408 void * kernel_abort (void) __attribute__ ((__nothrow__)) { 409 // abort cannot be recursively entered by the same or different processors because all signal handlers return when 410 // the globalAbort flag is true. 411 lock( &kernel_abort_lock ); 412 413 // first task to abort ? 414 if ( !kernel_abort_called ) { // not first task to abort ? 415 kernel_abort_called = true; 416 unlock( &kernel_abort_lock ); 417 } 418 else { 419 unlock( &kernel_abort_lock ); 420 421 sigset_t mask; 422 sigemptyset( &mask ); 423 sigaddset( &mask, SIGALRM ); // block SIGALRM signals 424 sigaddset( &mask, SIGUSR1 ); // block SIGUSR1 signals 425 sigsuspend( &mask ); // block the processor to prevent further damage during abort 426 _exit( EXIT_FAILURE ); // if processor unblocks before it is killed, terminate it 427 } 428 429 return this_thread(); 430 } 431 432 void kernel_abort_msg( void * kernel_data, char * abort_text, int abort_text_size ) { 433 thread_desc * thrd = kernel_data; 434 435 int len = snprintf( abort_text, abort_text_size, "Error occurred while executing task %.256s (%p)", thrd->cor.name, thrd ); 436 __lib_debug_write( STDERR_FILENO, abort_text, len ); 437 438 if ( thrd != this_coroutine() ) { 439 len = snprintf( abort_text, abort_text_size, " in coroutine %.256s (%p).\n", this_coroutine()->name, this_coroutine() ); 440 __lib_debug_write( STDERR_FILENO, abort_text, len ); 441 } 442 else { 443 __lib_debug_write( STDERR_FILENO, ".\n", 2 ); 444 } 445 } 446 447 extern "C" { 448 void __lib_debug_acquire() { 449 lock(&kernel_debug_lock); 450 } 451 452 void __lib_debug_release() { 453 unlock(&kernel_debug_lock); 454 } 397 455 } 398 456 -
src/libcfa/concurrency/thread.c
r72dc82a r78d3dd5 71 71 this_processor->current_coroutine = thrd_c; 72 72 73 LIB_DEBUG_PRINT F("Thread start : %p (t %p, c %p)\n", this, thrd_c, thrd_h);73 LIB_DEBUG_PRINT_SAFE("Thread start : %p (t %p, c %p)\n", this, thrd_c, thrd_h); 74 74 75 75 create_stack(&thrd_c->stack, thrd_c->stack.size); -
src/libcfa/libhdr/libdebug.h
r72dc82a r78d3dd5 25 25 #endif 26 26 27 #ifdef __cforall 28 extern "C" { 29 #endif 30 #include <stdarg.h> 31 32 extern void __lib_debug_write( int fd, const char *buffer, int len ); 33 extern void __lib_debug_acquire(); 34 extern void __lib_debug_release(); 35 extern void __lib_debug_print_safe ( const char fmt[], ... ) __attribute__(( format (printf, 1, 2) )); 36 extern void __lib_debug_print_nolock( const char fmt[], ... ) __attribute__(( format (printf, 1, 2) )); 37 extern void __lib_debug_print_vararg( const char fmt[], va_list arg ); 38 extern void __lib_debug_print_buffer( char buffer[], int buffer_size, const char fmt[], ... ) __attribute__(( format (printf, 3, 4) )); 39 #ifdef __cforall 40 } 41 #endif 42 27 43 #ifdef __CFA_DEBUG_PRINT__ 28 #define LIB_DEBUG_PRINTF(...) printf (__VA_ARGS__) 29 #define LIB_DEBUG_FPRINTF(...) fprintf (stderr, __VA_ARGS__) 44 #define LIB_DEBUG_WRITE( fd, buffer, len ) __lib_debug_write( fd, buffer, len ) 45 #define LIB_DEBUG_ACQUIRE() __lib_debug_acquire() 46 #define LIB_DEBUG_RELEASE() __lib_debug_release() 47 #define LIB_DEBUG_PRINT_SAFE(...) __lib_debug_print_safe (__VA_ARGS__) 48 #define LIB_DEBUG_PRINT_NOLOCK(...) __lib_debug_print_nolock (__VA_ARGS__) 49 #define LIB_DEBUG_PRINT_BUFFER(...) __lib_debug_print_buffer (__VA_ARGS__) 30 50 #else 31 #define LIB_DEBUG_PRINTF(...) ((void)0) 32 #define LIB_DEBUG_FPRINTF(...) ((void)0) 51 #define LIB_DEBUG_WRITE(...) ((void)0) 52 #define LIB_DEBUG_ACQUIRE() ((void)0) 53 #define LIB_DEBUG_RELEASE() ((void)0) 54 #define LIB_DEBUG_PRINT_SAFE(...) ((void)0) 55 #define LIB_DEBUG_PRINT_NOLOCK(...) ((void)0) 56 #define LIB_DEBUG_PRINT_BUFFER(...) ((void)0) 33 57 #endif 34 58
Note: See TracChangeset
for help on using the changeset viewer.