Changes in / [4fa44e7:504a7dc]
- Files:
-
- 14 edited
Legend:
- Unmodified
- Added
- Removed
-
configure
r4fa44e7 r504a7dc 802 802 with_cfa_name 803 803 enable_distcc 804 with_bwlimit805 804 with_target_hosts 806 805 enable_gprofiler … … 1482 1481 --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) 1483 1482 --with-cfa-name=NAME NAME too which cfa will be installed 1484 --with-bwlimit=RATE RATE the maximum rate at which rsync will be limited when using distributed builds1485 1483 --with-target-hosts=HOSTS HOSTS comma seperated list of hosts to build for, format ARCH:debug|nodebug|nolib 1486 1484 --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use … … 3200 3198 else 3201 3199 enable_distcc=no 3202 fi3203 3204 3205 3206 # Check whether --with-bwlimit was given.3207 if test "${with_bwlimit+set}" = set; then :3208 withval=$with_bwlimit;3209 3200 fi 3210 3201 -
configure.ac
r4fa44e7 r504a7dc 64 64 [ --enable-distcc whether or not to enable distributed compilation], 65 65 enable_distcc=$enableval, enable_distcc=no) 66 67 AC_ARG_WITH(bwlimit,68 [ --with-bwlimit=RATE RATE the maximum rate at which rsync will be limited when using distributed builds],69 [], [])70 66 71 67 AM_CONDITIONAL([ENABLE_DISTCC], [test x$enable_distcc = xyes]) -
libcfa/Makefile.in
r4fa44e7 r504a7dc 253 253 DEFS = @DEFS@ 254 254 DEPDIR = @DEPDIR@ 255 DIST_BWLIMIT = @DIST_BWLIMIT@256 255 DLLTOOL = @DLLTOOL@ 257 256 DRIVER_DIR = @DRIVER_DIR@ -
libcfa/configure
r4fa44e7 r504a7dc 707 707 CONFIG_CFLAGS 708 708 ARCH_FLAGS 709 DIST_BWLIMIT710 709 CFADIR_HASH 711 710 LOCAL_CC1 … … 790 789 enable_silent_rules 791 790 enable_distcc 792 with_bwlimit793 791 with_cfa_name 794 792 enable_static … … 1467 1465 --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] 1468 1466 --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) 1469 --with-bwlimit=RATE RATE the maximum rate at which rsync will be limited when using distributed builds1470 1467 --with-cfa-name=NAME NAME too which cfa will be installed 1471 1468 --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use … … 3050 3047 3051 3048 3052 3053 # Check whether --with-bwlimit was given.3054 if test "${with_bwlimit+set}" = set; then :3055 withval=$with_bwlimit; DIST_BWLIMIT=$withval3056 else3057 DIST_BWLIMIT=03058 fi3059 3060 3061 3049 echo -n "checking for distributated build... " 3062 3050 if test x$enable_distcc = xno; then … … 3082 3070 ENABLE_DISTCC_FALSE= 3083 3071 fi 3084 3085 3072 3086 3073 -
libcfa/configure.ac
r4fa44e7 r504a7dc 31 31 enable_distcc=$enableval, enable_distcc=no) 32 32 33 AC_ARG_WITH(bwlimit,34 [ --with-bwlimit=RATE RATE the maximum rate at which rsync will be limited when using distributed builds],35 DIST_BWLIMIT=$withval, DIST_BWLIMIT=0)36 37 33 echo -n "checking for distributated build... " 38 34 if test x$enable_distcc = xno; then … … 59 55 AC_SUBST(CFADIR_HASH) 60 56 AC_SUBST(CFA_VERSION) 61 AC_SUBST(DIST_BWLIMIT)62 57 63 58 #============================================================================== -
libcfa/prelude/Makefile.am
r4fa44e7 r504a7dc 72 72 if ENABLE_DISTCC 73 73 distribution: @LOCAL_CFACC@ @LOCAL_CC1@ @CFACPP@ gcc-builtins.cf builtins.cf extras.cf prelude.cfa bootloader.c $(srcdir)/../../tools/build/push2dist.sh 74 ${AM_V_GEN}$(srcdir)/../../tools/build/push2dist.sh @CFADIR_HASH@ @DIST_BWLIMIT@74 ${AM_V_GEN}$(srcdir)/../../tools/build/push2dist.sh @CFADIR_HASH@ 75 75 @echo "Dummy file to track distribution to remote hosts" > ${@} 76 76 -
libcfa/prelude/Makefile.in
r4fa44e7 r504a7dc 215 215 DEFS = @DEFS@ 216 216 DEPDIR = @DEPDIR@ 217 DIST_BWLIMIT = @DIST_BWLIMIT@218 217 DLLTOOL = @DLLTOOL@ 219 218 DRIVER_DIR = @DRIVER_DIR@ … … 656 655 657 656 @ENABLE_DISTCC_TRUE@distribution: @LOCAL_CFACC@ @LOCAL_CC1@ @CFACPP@ gcc-builtins.cf builtins.cf extras.cf prelude.cfa bootloader.c $(srcdir)/../../tools/build/push2dist.sh 658 @ENABLE_DISTCC_TRUE@ ${AM_V_GEN}$(srcdir)/../../tools/build/push2dist.sh @CFADIR_HASH@ @DIST_BWLIMIT@657 @ENABLE_DISTCC_TRUE@ ${AM_V_GEN}$(srcdir)/../../tools/build/push2dist.sh @CFADIR_HASH@ 659 658 @ENABLE_DISTCC_TRUE@ @echo "Dummy file to track distribution to remote hosts" > ${@} 660 659 -
libcfa/src/Makefile.in
r4fa44e7 r504a7dc 308 308 DEFS = @DEFS@ 309 309 DEPDIR = @DEPDIR@ 310 DIST_BWLIMIT = @DIST_BWLIMIT@311 310 DLLTOOL = @DLLTOOL@ 312 311 DRIVER_DIR = @DRIVER_DIR@ -
libcfa/src/exception.c
r4fa44e7 r504a7dc 121 121 122 122 123 // MEMORY MANAGEMENT ========================================================= 123 // TERMINATION =============================================================== 124 125 // MEMORY MANAGEMENT (still for integers) 126 // May have to move to cfa for constructors and destructors (references). 124 127 125 128 // How to clean up an exception in various situations. … … 200 203 } 201 204 202 // CANCELLATION ============================================================== 205 // If this isn't a rethrow (*except==0), delete the provided exception. 206 void __cfaehm_cleanup_terminate( void * except ) { 207 if ( *(void**)except ) __cfaehm_delete_exception( *(exception_t **)except ); 208 } 203 209 204 210 // Function needed by force unwind … … 222 228 } 223 229 224 // Cancel the current stack, prefroming approprate clean-up and messaging.225 static __attribute__((noreturn)) void __cfaehm_cancel_stack(226 exception_t * exception ) {227 // TODO: Detect current stack and pick a particular stop-function.228 _Unwind_Reason_Code ret;229 ret = _Unwind_ForcedUnwind( &this_exception_storage, _Stop_Fn, (void*)0x22 );230 printf("UNWIND ERROR %d after force unwind\n", ret);231 abort();232 }233 234 235 // TERMINATION ===============================================================236 237 // If this isn't a rethrow (*except==0), delete the provided exception.238 void __cfaehm_cleanup_terminate( void * except ) {239 if ( *(void**)except ) __cfaehm_delete_exception( *(exception_t **)except );240 }241 242 230 // The exception that is being thrown must already be stored. 243 231 static __attribute__((noreturn)) void __cfaehm_begin_unwind(void) { … … 257 245 // the whole stack. 258 246 259 // No handler found, go to the default operation.260 // Currently this will always be a cancellation.261 247 if ( ret == _URC_END_OF_STACK ) { 262 __cfadbg_print_safe(exception, "Uncaught exception %p\n", &this_exception_storage); 263 264 __cfaehm_cancel_stack(this_exception_context()->current_exception); 248 // No proper handler was found. This can be handled in many ways, C++ calls std::terminate. 249 // Here we force unwind the stack, basically raising a cancellation. 250 printf("Uncaught exception %p\n", &this_exception_storage); 251 252 ret = _Unwind_ForcedUnwind( &this_exception_storage, _Stop_Fn, (void*)0x22 ); 253 printf("UNWIND ERROR %d after force unwind\n", ret); 254 abort(); 265 255 } 266 256 -
tests/exceptions/.expect/resume.txt
r4fa44e7 r504a7dc 4 4 end of try clause 5 5 Exiting: simple try clause 6 7 catch-all8 6 9 7 throwing child exception -
tests/exceptions/.expect/terminate.txt
r4fa44e7 r504a7dc 3 3 simple catch 4 4 Exiting: simple catch clause 5 6 catch-all7 5 8 6 throwing child exception -
tests/exceptions/resume.cfa
r4fa44e7 r504a7dc 19 19 loud_exit a = "simple catch clause"; 20 20 printf("simple catch\n"); 21 }22 printf("\n");23 24 // Throw catch-all test.25 try {26 throwResume &(zen){};27 } catchResume (exception_t * error) {28 printf("catch-all\n");29 21 } 30 22 printf("\n"); -
tests/exceptions/terminate.cfa
r4fa44e7 r504a7dc 17 17 printf("end of try clause\n"); 18 18 } catch (zen * error) { 19 19 loud_exit a = "simple catch clause"; 20 20 printf("simple catch\n"); 21 }22 printf("\n");23 24 // Throw catch-all test.25 try {26 throw &(zen){};27 } catch (exception_t * error) {28 printf("catch-all\n");29 21 } 30 22 printf("\n"); -
tools/build/push2dist.sh
r4fa44e7 r504a7dc 2 2 3 3 hash="$1" 4 bwlim="$2"5 4 valid=$(distcc -j 2> /dev/null) 6 5 # if test "${valid}" != 0 … … 25 24 function push() { 26 25 ssh ${host} "mkdir -p ~/.cfadistcc/${hash}/" 27 rsync - -bwlimit=${bwlim} -a ${dV} ${files} ${host}:~/.cfadistcc/${hash}/.26 rsync -a ${dV} ${files} ${host}:~/.cfadistcc/${hash}/. 28 27 } 29 28
Note: See TracChangeset
for help on using the changeset viewer.