Lines Matching defs:config

62 Configuration *config;
77 config = make<Configuration>();
113 if (config->dll)
115 else if (config->driver)
160 assert(config->machine != IMAGE_FILE_MACHINE_UNKNOWN);
161 if (config->machine == I386)
331 (!config->mingw && sym.contains('@'));
359 if (config->machine == I386 && config->mingw) {
366 config->exports.push_back(exp);
382 config->entry = addUndefined(mangle(arg->getValue()));
394 config->noDefaultLibs.insert(doFindLib(arg->getValue()).lower());
400 parseSubsystem(arg->getValue(), &config->subsystem,
401 &config->majorOSVersion, &config->minorOSVersion);
480 if (config->mingw && ret == filename)
489 if (config->noDefaultLibAll)
495 if (config->noDefaultLibs.count(path.lower()))
521 config->gcroot.push_back(b);
550 assert(config->subsystem != IMAGE_SUBSYSTEM_UNKNOWN &&
553 if (config->mingw)
554 return mangle(config->subsystem == IMAGE_SUBSYSTEM_WINDOWS_GUI
558 if (config->subsystem == IMAGE_SUBSYSTEM_WINDOWS_GUI) {
575 if (config->dll)
577 if (config->mingw)
600 if (config->is64())
601 return config->dll ? 0x180000000 : 0x140000000;
602 return config->dll ? 0x10000000 : 0x400000;
717 StringRef outFile = config->outputFile;
722 if (!config->implib.empty())
723 return config->implib;
724 SmallString<128> out = StringRef(config->outputFile);
739 if (config->importName.empty()) {
740 out.assign(sys::path::filename(config->outputFile));
744 out.assign(config->importName);
747 (config->dll || asLib) ? ".dll" : ".exe");
755 for (Export &e1 : config->exports) {
775 if (!config->incremental) {
776 handleError(writeImportLibrary(libName, path, exports, config->machine,
777 config->mingw));
786 handleError(writeImportLibrary(libName, path, exports, config->machine,
787 config->mingw));
797 if (Error e = writeImportLibrary(libName, tmpName, exports, config->machine,
798 config->mingw)) {
817 mb->getMemBufferRef(), config->machine, config->mingw));
819 if (config->outputFile.empty())
820 config->outputFile = saver.save(m.OutputFile);
821 config->importName = saver.save(m.ImportName);
823 config->imageBase = m.ImageBase;
825 config->stackReserve = m.StackReserve;
827 config->stackCommit = m.StackCommit;
829 config->heapReserve = m.HeapReserve;
831 config->heapCommit = m.HeapCommit;
833 config->majorImageVersion = m.MajorImageVersion;
835 config->minorImageVersion = m.MinorImageVersion;
837 config->majorOSVersion = m.MajorOSVersion;
839 config->minorOSVersion = m.MinorOSVersion;
850 config->exports.push_back(e2);
860 config->exports.push_back(e2);
907 if (config->machine == I386 && !isDecorated(s))
911 if (config->warnMissingOrderSymbol)
915 config->order[s] = INT_MIN + config->order.size();
928 for (Export &r : config->exports)
969 sys::path::filename(config->pdbPath, sys::path::Style::windows);
971 sys::path::extension(config->outputFile, sys::path::Style::windows);
1008 config->pdbAltPath = buf;
1022 if (!config->mingw &&
1051 if (!config->dll)
1055 if (!config->exports.empty())
1078 config->exports.push_back(e);
1147 config->showTiming = true;
1149 config->showSummary = args.hasArg(OPT_summary);
1162 config->mingw = args.hasArg(OPT_lldmingw);
1179 config->noEntry = true;
1197 config->warnMissingOrderSymbol = false;
1199 config->warnDebugInfoUnusable = false;
1201 config->warnLocallyDefinedImported = false;
1203 config->warnLongSectionNames = false;
1210 config->outputFile = arg->getValue();
1214 config->verbose = true;
1215 errorHandler().verbose = config->verbose;
1219 config->forceUnresolved = true;
1223 config->forceMultiple = true;
1227 config->forceMultipleRes = true;
1233 config->debug = true;
1234 config->incremental = true;
1238 config->demangle = args.hasFlag(OPT_demangle, OPT_demangle_no);
1241 config->debugTypes = parseDebugTypes(args);
1244 config->driverUponly = args.hasArg(OPT_driver_uponly) ||
1247 config->driverWdm = args.hasArg(OPT_driver_wdm) ||
1250 config->driver =
1251 config->driverUponly || config->driverWdm || args.hasArg(OPT_driver);
1258 config->pdbPath = arg->getValue();
1260 config->pdbAltPath = arg->getValue();
1262 config->natvisFiles = args.getAllArgValues(OPT_natvis);
1265 config->pdbSourcePath = arg->getValue();
1271 config->noEntry = true;
1278 config->dll = true;
1279 config->manifestID = 2;
1288 config->dynamicBase = false;
1299 config->relocatable = false;
1300 config->dynamicBase = false;
1305 config->appContainer =
1310 config->machine = getMachineType(arg->getValue());
1311 if (config->machine == IMAGE_FILE_MACHINE_UNKNOWN)
1317 config->noDefaultLibs.insert(doFindLib(arg->getValue()).lower());
1321 config->noDefaultLibAll = true;
1325 parseNumbers(arg->getValue(), &config->imageBase);
1329 parseNumbers(arg->getValue(), &config->fileAlign);
1330 if (!isPowerOf2_64(config->fileAlign))
1331 error("/filealign: not a power of two: " + Twine(config->fileAlign));
1336 parseNumbers(arg->getValue(), &config->stackReserve, &config->stackCommit);
1344 parseNumbers(arg->getValue(), &config->heapReserve, &config->heapCommit);
1348 parseVersion(arg->getValue(), &config->majorImageVersion,
1349 &config->minorImageVersion);
1353 parseSubsystem(arg->getValue(), &config->subsystem, &config->majorOSVersion,
1354 &config->minorOSVersion);
1359 config->timestamp = 0;
1360 config->repro = true;
1362 config->repro = false;
1364 if (value.getAsInteger(0, config->timestamp))
1369 config->repro = false;
1370 config->timestamp = time(nullptr);
1383 config->implib = arg->getValue();
1409 if (optLevel.getAsInteger(10, config->ltoo) || config->ltoo > 3)
1413 if (jobs.getAsInteger(10, config->thinLTOJobs) ||
1414 config->thinLTOJobs == 0)
1418 if (n.getAsInteger(10, config->ltoPartitions) ||
1419 config->ltoPartitions == 0)
1433 config->doGC = doGC;
1434 config->doICF = icfLevel > 0;
1435 config->tailMerge = (tailMerge == 1 && config->doICF) || tailMerge == 2;
1439 config->saveTemps = true;
1443 config->killAt = true;
1447 config->ltoCache = arg->getValue();
1451 config->ltoCachePolicy = CHECK(
1471 if (config->mingw) {
1483 parseNumbers(arg->getValue(), &config->align);
1484 if (!isPowerOf2_64(config->align))
1497 config->manifestDependency = arg->getValue();
1498 config->manifest = Configuration::SideBySide;
1504 config->manifest = Configuration::SideBySide;
1515 config->manifestFile = arg->getValue();
1519 config->manifestInput.push_back(arg->getValue());
1521 if (!config->manifestInput.empty() &&
1522 config->manifest != Configuration::Embed) {
1526 config->thinLTOEmitImportsFiles = args.hasArg(OPT_thinlto_emit_imports_files);
1527 config->thinLTOIndexOnly = args.hasArg(OPT_thinlto_index_only) ||
1529 config->thinLTOIndexOnlyArg =
1531 config->thinLTOPrefixReplace =
1533 config->thinLTOObjectSuffixReplace =
1535 config->ltoObjPath = args.getLastArgValue(OPT_lto_obj_path);
1537 config->allowBind = args.hasFlag(OPT_allowbind, OPT_allowbind_no, true);
1538 config->allowIsolation =
1540 config->incremental =
1542 !config->doGC && !config->doICF && !args.hasArg(OPT_order) &&
1544 config->integrityCheck =
1546 config->nxCompat = args.hasFlag(OPT_nxcompat, OPT_nxcompat_no, true);
1549 config->terminalServerAware =
1550 !config->dll && args.hasFlag(OPT_tsaware, OPT_tsaware_no, true);
1551 config->debugDwarf = debug == DebugKind::Dwarf;
1552 config->debugGHashes = debug == DebugKind::GHash;
1553 config->debugSymtab = debug == DebugKind::Symtab;
1557 if (config->mingw || config->debugDwarf)
1558 config->warnLongSectionNames = false;
1560 config->mapFile = getMapFile(args);
1562 if (config->incremental && args.hasArg(OPT_profile)) {
1564 config->incremental = false;
1567 if (config->incremental && args.hasArg(OPT_order)) {
1569 config->incremental = false;
1572 if (config->incremental && config->doGC) {
1575 config->incremental = false;
1578 if (config->incremental && config->doICF) {
1581 config->incremental = false;
1642 if (config->manifest == Configuration::Embed)
1653 if (config->machine == IMAGE_FILE_MACHINE_UNKNOWN) {
1655 config->machine = AMD64;
1657 config->wordsize = config->is64() ? 8 : 4;
1660 if (config->machine == I386 &&
1661 args.hasFlag(OPT_safeseh, OPT_safeseh_no, !config->mingw))
1662 config->safeSEH = true;
1666 parseFunctionPadMin(arg, config->machine);
1674 config->largeAddressAware = args.hasFlag(
1675 OPT_largeaddressaware, OPT_largeaddressaware_no, config->is64());
1678 config->highEntropyVA =
1679 config->is64() &&
1682 if (!config->dynamicBase &&
1683 (config->machine == ARMNT || config->machine == ARM64))
1685 machineToStr(config->machine));
1690 if (config->machine == I386) {
1696 config->exports.push_back(e);
1715 if (config->subsystem == IMAGE_SUBSYSTEM_UNKNOWN) {
1716 config->subsystem = inferSubsystem();
1717 if (config->subsystem == IMAGE_SUBSYSTEM_UNKNOWN)
1723 config->entry = addUndefined(mangle(arg->getValue()));
1724 } else if (!config->entry && !config->noEntry) {
1726 StringRef s = (config->machine == I386) ? "__DllMainCRTStartup@12"
1728 config->entry = addUndefined(s);
1729 } else if (config->driverWdm) {
1731 config->entry = addUndefined(mangle("_NtProcessStartup"));
1738 config->entry = addUndefined(s);
1745 config->delayLoads.insert(StringRef(arg->getValue()).lower());
1746 if (config->machine == I386) {
1747 config->delayLoadHelper = addUndefined("___delayLoadHelper2@8");
1749 config->delayLoadHelper = addUndefined("__delayLoadHelper2");
1754 if (config->outputFile.empty()) {
1755 config->outputFile = getOutputPath(
1760 if (auto e = tryCreateFile(config->outputFile)) {
1761 error("cannot open output file " + config->outputFile + ": " + e.message());
1767 if (config->pdbPath.empty()) {
1768 config->pdbPath = config->outputFile;
1769 sys::path::replace_extension(config->pdbPath, ".pdb");
1774 if (config->pdbAltPath.empty()) {
1775 config->pdbAltPath = config->pdbPath;
1780 sys::fs::make_absolute(config->pdbAltPath);
1781 sys::path::remove_dots(config->pdbAltPath);
1784 parsePDBAltPath(config->pdbAltPath);
1789 if (config->imageBase == uint64_t(-1))
1790 config->imageBase = getDefaultImageBase();
1793 if (config->machine == I386) {
1808 if (config->mingw) {
1821 if (config->entry)
1822 mangleMaybe(config->entry);
1825 for (Export &e : config->exports) {
1835 for (auto pair : config->alternateNames) {
1868 if (config->mingw) {
1890 if (!BitcodeFile::instances.empty() && !config->forceUnresolved)
1903 if (config->thinLTOIndexOnly)
1915 config->hadExplicitExports = !config->exports.empty();
1916 if (config->mingw) {
1941 if (!config->exports.empty() || config->dll) {
1943 if (!config->mingw || !config->implib.empty())
1953 for (auto pair : config->alignComm) {
1974 if (config->manifest == Configuration::SideBySide)
1984 if (config->doGC)
1991 if (config->doICF) {
2001 if (config->showTiming)