╭─────────────╮ │scroll to top│ ╰─────────────╯ ╭ zig_llvm-ar.cpp ──────────────────────────────────────────────╮ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ╰───────────────────────────────────────────────────────────────╯
╭ find file ─ ─ ─ ─ ─ ─ ─ ─ ─ ─╮ ╭────╮ ╭ clone ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ╮ │ │ │http│ ssh │ │ ╰ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─╯ ╰────╯ ╰ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ╯
1489 1490 switch (BitMode) { 1491 case BitModeTy::Bit32: 1492 Symtab = SymtabWritingMode::BigArchive32; 1493 break; 1494 case BitModeTy::Bit64: 1495 Symtab = SymtabWritingMode::BigArchive64; 1496 break; 1497 default: 1498 Symtab = SymtabWritingMode::NormalSymtab; 1499 break; 1500 } 1501 } 1502 1503 for (StringRef Archive : Archives) { 1504 ArchiveName = Archive.str(); 1505 performOperation(CreateSymTab); 1506 } 1507 if (Archives.empty()) 1508 badUsage("an archive name must be specified"); 1509 return 0; 1510 } 1511 1512 static int llvm_ar_main(int argc, char **argv, const llvm::ToolContext &) { 1513 ToolName = argv[0]; 1514 1515 llvm::InitializeAllTargetInfos(); 1516 llvm::InitializeAllTargetMCs(); 1517 llvm::InitializeAllAsmParsers(); 1518 1519 Stem = sys::path::stem(ToolName); 1520 auto Is = [](StringRef Tool) { 1521 // We need to recognize the following filenames. 1522 // 1523 // Lib.exe -> lib (see D44808, MSBuild runs Lib.exe) 1524 // dlltool.exe -> dlltool 1525 // arm-pokymllib32-linux-gnueabi-llvm-ar-10 -> ar 1526 auto I = Stem.rfind_insensitive(Tool); 1527 return I != StringRef::npos && 1528 (I + Tool.size() == Stem.size() || !isAlnum(Stem[I + Tool.size()])); 1529 }; 1530 1531 if (Is("dlltool")) 1532 return dlltoolDriverMain(ArrayRef(argv, argc)); 1533 if (Is("ranlib")) 1534 return ranlib_main(argc, argv); 1535 if (Is("lib")) 1536 return libDriverMain(ArrayRef(argv, argc)); 1537 if (Is("ar")) 1538 return ar_main(argc, argv); 1539 1540 fail("not ranlib, ar, lib or dlltool"); 1541 } 1542 1543 extern "C" int ZigLlvmAr_main(int, char **); 1544 int ZigLlvmAr_main(int argc, char **argv) { 1545 return llvm_ar_main(argc, argv, {argv[0], nullptr, false}); 1546 } 1547