grobian 15/02/04 17:33:20 Added: ld64-241.9-lto-noremarks.patch Log: Add patch to silence when LTO is in use by Michael Weiser, bug #538604 (Portage version: 2.2.14-prefix/cvs/SunOS i386, signed Manifest commit with key 0x5F75F607C5C74E89)
Revision Changes Path 1.1 sys-devel/binutils-apple/files/ld64-241.9-lto-noremarks.patch file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-devel/binutils-apple/files/ld64-241.9-lto-noremarks.patch?rev=1.1&view=markup plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-devel/binutils-apple/files/ld64-241.9-lto-noremarks.patch?rev=1.1&content-type=text/plain Index: ld64-241.9-lto-noremarks.patch =================================================================== Shut up ld64 by default when using LTO. diff -ru ld64-241.9.orig/src/ld/Options.cpp ld64-241.9/src/ld/Options.cpp --- ld64-241.9.orig/src/ld/Options.cpp 2015-02-02 22:14:29.000000000 +0100 +++ ld64-241.9/src/ld/Options.cpp 2015-02-02 22:15:41.000000000 +0100 @@ -183,6 +183,9 @@ fDebugInfoStripping(kDebugInfoMinimal), fTraceOutputFile(NULL), fMacVersionMin(ld::macVersionUnset), fIOSVersionMin(ld::iOSVersionUnset), fSaveTempFiles(false), +#ifdef LTO + fVerboseLTORemarks(false), +#endif #ifdef SUPPORT_SNAPSHOTS fSnapshotRequested(false), #endif @@ -3138,6 +3141,11 @@ else if ( strcmp(arg, "-ignore_optimization_hints") == 0 ) { fIgnoreOptimizationHints = true; } +#ifdef LTO + else if ( strcmp(arg, "-verbose_lto_remarks") == 0 ) { + fVerboseLTORemarks = true; + } +#endif else if ( strcmp(arg, "-no_dtrace_dof") == 0 ) { fGenerateDtraceDOF = false; } Only in ld64-241.9/src/ld: Options.cpp~ diff -ru ld64-241.9.orig/src/ld/Options.h ld64-241.9/src/ld/Options.h --- ld64-241.9.orig/src/ld/Options.h 2015-02-02 22:14:29.000000000 +0100 +++ ld64-241.9/src/ld/Options.h 2015-02-02 22:16:36.000000000 +0100 @@ -381,6 +381,9 @@ bool forceWeakNonWildCard(const char* symbolName) const; bool forceNotWeakNonWildcard(const char* symbolName) const; bool forceCoalesce(const char* symbolName) const; +#ifdef LTO + bool verboseLTORemarks() const { return fVerboseLTORemarks; } +#endif #ifdef SUPPORT_SNAPSHOTS Snapshot& snapshot() const { return fLinkSnapshot; } #endif @@ -681,6 +684,9 @@ std::vector<SymbolsMove> fSymbolsMovesCode; std::vector<SymbolsMove> fSymbolsMovesZeroFill; bool fSaveTempFiles; +#ifdef LTO + bool fVerboseLTORemarks; +#endif #ifdef SUPPORT_SNAPSHOTS mutable Snapshot fLinkSnapshot; bool fSnapshotRequested; Only in ld64-241.9/src/ld: Options.h~ diff -ru ld64-241.9.orig/src/ld/Resolver.cpp ld64-241.9/src/ld/Resolver.cpp --- ld64-241.9.orig/src/ld/Resolver.cpp 2015-02-02 22:14:29.000000000 +0100 +++ ld64-241.9/src/ld/Resolver.cpp 2015-02-02 22:17:16.000000000 +0100 @@ -1559,6 +1559,7 @@ optOpt.mcpu = _options.mcpuLTO(); optOpt.llvmOptions = &_options.llvmOptions(); optOpt.initialUndefines = &_options.initialUndefines(); + optOpt.verboseLTORemarks = _options.verboseLTORemarks(); std::vector<const ld::Atom*> newAtoms; std::vector<const char*> additionalUndefines; Only in ld64-241.9/src/ld: Resolver.cpp~ diff -ru ld64-241.9.orig/src/ld/parsers/lto_file.cpp ld64-241.9/src/ld/parsers/lto_file.cpp --- ld64-241.9.orig/src/ld/parsers/lto_file.cpp 2015-02-02 22:14:29.000000000 +0100 +++ ld64-241.9/src/ld/parsers/lto_file.cpp 2015-02-02 22:18:27.000000000 +0100 @@ -489,13 +489,17 @@ #if LTO_API_VERSION >= 7 -void Parser::ltoDiagnosticHandler(lto_codegen_diagnostic_severity_t severity, const char* message, void*) +void Parser::ltoDiagnosticHandler(lto_codegen_diagnostic_severity_t severity, const char* message, void* data) { switch ( severity ) { #if LTO_API_VERSION >= 10 case LTO_DS_REMARK: + { + const OptimizeOptions* options = (const OptimizeOptions*)data; + if (options->verboseLTORemarks) fprintf(stderr, "ld: LTO remark: %s\n", message); break; + } #endif case LTO_DS_NOTE: case LTO_DS_WARNING: @@ -530,7 +533,7 @@ // create optimizer and add each Reader lto_code_gen_t generator = ::lto_codegen_create(); #if LTO_API_VERSION >= 7 - lto_codegen_set_diagnostic_handler(generator, ltoDiagnosticHandler, NULL); + lto_codegen_set_diagnostic_handler(generator, ltoDiagnosticHandler, (void*)&options); #endif // <rdar://problem/12379604> The order that files are merged must match command line order Only in ld64-241.9/src/ld/parsers: lto_file.cpp~ diff -ru ld64-241.9.orig/src/ld/parsers/lto_file.h ld64-241.9/src/ld/parsers/lto_file.h --- ld64-241.9.orig/src/ld/parsers/lto_file.h 2015-02-02 22:14:29.000000000 +0100 +++ ld64-241.9/src/ld/parsers/lto_file.h 2015-02-02 22:18:57.000000000 +0100 @@ -61,6 +61,7 @@ const char* mcpu; const std::vector<const char*>* llvmOptions; const std::vector<const char*>* initialUndefines; + bool verboseLTORemarks; }; extern bool optimize( const std::vector<const ld::Atom*>& allAtoms,
