Changes in / [edc4813:7b84d3e]
- Files:
-
- 2 edited
-
Jenkins/FullBuild (modified) (1 diff)
-
driver/as.cc (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
Jenkins/FullBuild
redc4813 r7b84d3e 27 27 gcc_11_arm64_new: { trigger_build( 'gcc-11', 'arm64', false ) }, 28 28 gcc_10_arm64_new: { trigger_build( 'gcc-10', 'arm64', false ) }, 29 //gcc_09_arm64_new: { trigger_build( 'gcc-9', 'arm64', false ) },29 gcc_09_arm64_new: { trigger_build( 'gcc-9', 'arm64', false ) }, 30 30 // gcc_06_arm64_new: { trigger_build( 'gcc-6', 'arm64', false ) }, 31 31 clang_x64_new: { trigger_build( 'clang', 'x64', true ) }, -
driver/as.cc
redc4813 r7b84d3e 11 11 // Created On : Wed Aug 1 10:49:42 2018 12 12 // Last Modified By : Peter A. Buhr 13 // Last Modified On : Mon Oct 23 16:10:26 202314 // Update Count : 13 713 // Last Modified On : Wed Dec 8 07:56:12 2021 14 // Update Count : 136 15 15 // 16 16 … … 39 39 off_t size = mystat.st_size; 40 40 41 //if ( size ) { // cannot map 0 sized file42 //char * start = (char *)mmap( NULL, size + 2, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0 );43 //if ( start == (void *)-1 ) { perror( "mmap" ); exit( EXIT_FAILURE ); };41 if ( size ) { // cannot map 0 sized file 42 char * start = (char *)mmap( NULL, size + 2, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0 ); 43 if ( start == (void *)-1 ) { perror( "mmap" ); exit( EXIT_FAILURE ); }; 44 44 45 //char * dcursor;46 //if ( (dcursor = strstr( start, ".Ldebug_info0:" ) ) ) { // debug information ?45 char * dcursor; 46 if ( (dcursor = strstr( start, ".Ldebug_info0:" ) ) ) { // debug information ? 47 47 48 //if ( char * cursor = strstr( dcursor, ".long\t.LASF" ) ) { // language code ?49 //for ( int i = 0; i < 2; i += 1 ) { // move N (magic) lines forward50 //cursor = strstr( cursor, "\n" ) + 1;51 //} // for52 //cursor -= 2; // backup over "d\n", where d is a hex digit53 //// From elfcpp/dwarf.h in the binutils source tree.54 //// DW_LANG_C89 = 0x1, DW_LANG_C = 0x2, DW_LANG_C99 = 0xc, DW_LANG_C11 = 0x1d55 //if ( *(cursor - 2) == '0' && *(cursor - 1) == 'x' &&56 //(*cursor == 'c' || *cursor == '1' || *cursor == '2') ) { // C99/C89/C57 //// Expand file by one byte to hold 2 character Cforall language code.58 //if ( ftruncate( fd, size + 1 ) ) { perror( "ftruncate" ); exit( EXIT_FAILURE ); };59 //memmove( cursor + 2, cursor + 1, start + size - cursor - 1 ); // move remaining text 1 character right60 //} else if ( *(cursor - 3) == '0' && *(cursor - 2) == 'x' && *(cursor - 1) == '1' && *cursor == 'd' ) { // C1161 //} else {62 //for ( int i = 0; i < 6; i += 1 ) { // move N (magic) lines forward63 //cursor = strstr( cursor, "\n" ) + 1;64 //} // for65 //fprintf( stderr, "*** ERROR *** Invalid C language code found in assembler file: %s\n"66 //"Assembler debug information:\n%.*s",67 //argv[argc - 1], (int)(cursor - dcursor), dcursor );68 //exit( EXIT_FAILURE );69 //} // if48 if ( char * cursor = strstr( dcursor, ".long\t.LASF" ) ) { // language code ? 49 for ( int i = 0; i < 2; i += 1 ) { // move N (magic) lines forward 50 cursor = strstr( cursor, "\n" ) + 1; 51 } // for 52 cursor -= 2; // backup over "d\n", where d is a hex digit 53 // From elfcpp/dwarf.h in the binutils source tree. 54 // DW_LANG_C89 = 0x1, DW_LANG_C = 0x2, DW_LANG_C99 = 0xc, DW_LANG_C11 = 0x1d 55 if ( *(cursor - 2) == '0' && *(cursor - 1) == 'x' && 56 (*cursor == 'c' || *cursor == '1' || *cursor == '2') ) { // C99/C89/C 57 // Expand file by one byte to hold 2 character Cforall language code. 58 if ( ftruncate( fd, size + 1 ) ) { perror( "ftruncate" ); exit( EXIT_FAILURE ); }; 59 memmove( cursor + 2, cursor + 1, start + size - cursor - 1 ); // move remaining text 1 character right 60 } else if ( *(cursor - 3) == '0' && *(cursor - 2) == 'x' && *(cursor - 1) == '1' && *cursor == 'd' ) { // C11 61 } else { 62 for ( int i = 0; i < 6; i += 1 ) { // move N (magic) lines forward 63 cursor = strstr( cursor, "\n" ) + 1; 64 } // for 65 fprintf( stderr, "*** ERROR *** Invalid C language code found in assembler file: %s\n" 66 "Assembler debug information:\n%.*s", 67 argv[argc - 1], (int)(cursor - dcursor), dcursor ); 68 exit( EXIT_FAILURE ); 69 } // if 70 70 71 //*(cursor - 1) = '2'; // replace C89/C/C99/C11 language code with CFA code72 //*cursor = '5';73 //} // if74 //} // if71 *(cursor - 1) = '2'; // replace C89/C/C99/C11 language code with CFA code 72 *cursor = '5'; 73 } // if 74 } // if 75 75 76 //if ( munmap( start, size + 2 ) ) { perror( "munmap" ); exit( EXIT_FAILURE ); }; // update on disk77 //} // if76 if ( munmap( start, size + 2 ) ) { perror( "munmap" ); exit( EXIT_FAILURE ); }; // update on disk 77 } // if 78 78 79 79 argv[0] = "as";
Note:
See TracChangeset
for help on using the changeset viewer.