Changes in driver/cfa.cc [def9d4e:dfb7c96]
- File:
-
- 1 edited
-
driver/cfa.cc (modified) (12 diffs)
Legend:
- Unmodified
- Added
- Removed
-
driver/cfa.cc
rdef9d4e rdfb7c96 10 10 // Created On : Tue Aug 20 13:44:49 2002 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : T ue Jan 15 20:56:03 201913 // Update Count : 2 8012 // Last Modified On : Thu Aug 23 15:41:55 2018 13 // Update Count : 270 14 14 // 15 15 … … 43 43 const string suffixes[NumSuffixes] = { "cfa", "hfa", }; 44 44 45 boolsuffix( string arg, const char * args[], int & nargs ) {45 void suffix( string arg, const char * args[], int & nargs ) { 46 46 //std::cerr << arg << std::endl; 47 47 size_t dot = arg.find_last_of( "." ); 48 48 //std::cerr << dot << " " << (dot != string::npos ? arg.substr( dot + 1 ) : "fred" ) << std::endl; 49 if ( dot == string::npos ) return false;49 if ( dot == string::npos ) return; 50 50 string sx = arg.substr( dot + 1 ); 51 51 for ( int i = 0; i < NumSuffixes; i += 1 ) { … … 55 55 args[nargs] = "c"; 56 56 nargs += 1; 57 return true;57 return; 58 58 } // if 59 59 } // for 60 return false;61 60 } // suffix 62 61 … … 114 113 bool std_flag = false; // -std= flag 115 114 bool noincstd_flag = false; // -no-include-stdhdr= flag 115 bool xflag = false; // user supplied -x flag 116 116 bool debugging __attribute(( unused )) = false; // -g flag 117 117 bool m32 = false; // -m32 flag … … 128 128 #ifdef __DEBUG_H__ 129 129 cerr << "CFA:" << endl; 130 #endif // __DEBUG_H__ 131 132 // process command-line arguments 133 130 134 for ( int i = 1; i < argc; i += 1 ) { 131 cerr << "argv[" << i << "]:\"" << argv[i] << "\"" << endl; 132 } // for 133 #endif // __DEBUG_H__ 134 135 // process command-line arguments 136 137 for ( int i = 1; i < argc; i += 1 ) { 135 #ifdef __DEBUG_H__ 136 cerr << "argv[" << i << "]:\"" << argv[i] << "\"" << endl; 137 #endif // __DEBUG_H__ 138 138 arg = argv[i]; // convert to string value 139 #ifdef __DEBUG_H__ 140 cerr << "arg:\"" << arg << "\"" << endl; 141 #endif // __DEBUG_H__ 139 142 if ( prefix( arg, "-" ) ) { 140 143 // pass through arguments … … 199 202 args[nargs] = argv[i]; // pass the argument along 200 203 nargs += 1; 204 } else if ( arg == "-x" ) { 205 xflag = true; 206 args[nargs] = argv[i]; // pass the argument along 207 nargs += 1; 208 i += 1; // advance to argument 209 args[nargs] = argv[i]; // pass the argument along 210 nargs += 1; 211 // args[nargs] = ( *new string( string("-D__GCC_X__=") + argv[i] ) ).c_str(); // add the argument for -x 212 // nargs += 1; 213 } else if ( prefix( arg, "-x" ) ) { 214 xflag = true; 215 args[nargs] = argv[i]; // pass the argument along 216 nargs += 1; 217 // args[nargs] = ( *new string( string("-D__GCC_X__=") + arg.substr(2) ) ).c_str(); // add the argument for -x 218 // nargs += 1; 201 219 } else if ( arg == "-w" ) { 202 220 args[nargs] = argv[i]; // pass the argument along … … 280 298 } // if 281 299 } else { 282 bool cfa = suffix( arg, args, nargs ); // check suffix 283 args[nargs] = argv[i]; // concatenate file 300 bool opt = false; 301 if ( ! xflag ) { 302 suffix( arg, args, nargs ); // check suffix 303 // args[nargs] = ( *new string( string("-D__GCC_X__=c") ) ).c_str(); // add the argument for -x 304 // nargs += 1; 305 opt = true; 306 } // if 307 // concatenate other arguments 308 args[nargs] = argv[i]; 284 309 nargs += 1; 285 if ( cfa) {310 if ( opt ) { 286 311 args[nargs] = "-x"; 287 312 nargs += 1; 288 313 args[nargs] = "none"; 289 314 nargs += 1; 315 // args[nargs] = ( *new string( string("-D__GCC_X__=none") ) ).c_str(); // add the argument for -x 316 // nargs += 1; 290 317 } // if 291 318 nonoptarg = true; 319 xflag = false; 292 320 } // if 293 321 } // for 294 295 args[nargs] = "-x"; // turn off language296 nargs += 1;297 args[nargs] = "none";298 nargs += 1;299 322 300 323 #ifdef __x86_64__ … … 357 380 358 381 string arch = m32 ? CFA_32_CPU : (m64 ? CFA_64_CPU : CFA_DEFAULT_CPU); 359 if ( ! m32 && ! m64 ) { 360 if ( arch == "x86" ) { 361 args[nargs] = "-m32"; 362 nargs += 1; 363 } else if ( arch == "x64" ) { 364 args[nargs] = "-m64"; 365 nargs += 1; 366 } // if 382 if ( ! m32 && ! m64 && arch == "x86" ) { // no override and 32-bit architecture 383 args[nargs] = "-m32"; 384 nargs += 1; 367 385 } // if 368 386 const char * config = debug ? "debug": "nodebug"; … … 384 402 nargs += 1; 385 403 386 for ( int i = 0; i < nlibs; i += 1 ) { // copy non-user libraries after all user libraries387 args[nargs] = libs[i];388 nargs += 1;389 } // for390 391 404 if ( link ) { 392 405 args[nargs] = "-Xlinker"; … … 408 421 409 422 // include the cfa library in case it's needed 410 args[nargs] = ( *new string( string("-L" ) + libdir + (intree ? "/src/.libs" : "")) ).c_str(); 411 nargs += 1; 412 args[nargs] = ( *new string( string("-Wl,-rpath," ) + libdir + (intree ? "/src/.libs" : "")) ).c_str(); 423 args[nargs] = ( *new string( string("-L" ) + libdir + (intree ? "/src" : "")) ).c_str(); 413 424 nargs += 1; 414 425 args[nargs] = "-lcfa"; … … 419 430 nargs += 1; 420 431 args[nargs] = "-lrt"; 421 nargs += 1;422 args[nargs] = "-lm";423 432 nargs += 1; 424 433 } // if … … 505 514 args[nargs] = ( *new string( string("-B") + Bprefix ) ).c_str(); 506 515 nargs += 1; 516 args[nargs] = "-lm"; 517 nargs += 1; 507 518 } else { 508 519 cerr << argv[0] << " error, compiler \"" << compiler_name << "\" unsupported." << endl; 509 520 exit( EXIT_FAILURE ); 510 521 } // if 522 523 for ( int i = 0; i < nlibs; i += 1 ) { // copy non-user libraries after all user libraries 524 args[nargs] = libs[i]; 525 nargs += 1; 526 } // for 511 527 512 528 args[nargs] = NULL; // terminate with NULL
Note:
See TracChangeset
for help on using the changeset viewer.