1 |
grobian 15/02/04 17:33:20 |
2 |
|
3 |
Added: ld64-241.9-lto-noremarks.patch |
4 |
Log: |
5 |
Add patch to silence when LTO is in use by Michael Weiser, bug #538604 |
6 |
|
7 |
(Portage version: 2.2.14-prefix/cvs/SunOS i386, signed Manifest commit with key 0x5F75F607C5C74E89) |
8 |
|
9 |
Revision Changes Path |
10 |
1.1 sys-devel/binutils-apple/files/ld64-241.9-lto-noremarks.patch |
11 |
|
12 |
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 |
13 |
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 |
14 |
|
15 |
Index: ld64-241.9-lto-noremarks.patch |
16 |
=================================================================== |
17 |
Shut up ld64 by default when using LTO. |
18 |
|
19 |
diff -ru ld64-241.9.orig/src/ld/Options.cpp ld64-241.9/src/ld/Options.cpp |
20 |
--- ld64-241.9.orig/src/ld/Options.cpp 2015-02-02 22:14:29.000000000 +0100 |
21 |
+++ ld64-241.9/src/ld/Options.cpp 2015-02-02 22:15:41.000000000 +0100 |
22 |
@@ -183,6 +183,9 @@ |
23 |
fDebugInfoStripping(kDebugInfoMinimal), fTraceOutputFile(NULL), |
24 |
fMacVersionMin(ld::macVersionUnset), fIOSVersionMin(ld::iOSVersionUnset), |
25 |
fSaveTempFiles(false), |
26 |
+#ifdef LTO |
27 |
+ fVerboseLTORemarks(false), |
28 |
+#endif |
29 |
#ifdef SUPPORT_SNAPSHOTS |
30 |
fSnapshotRequested(false), |
31 |
#endif |
32 |
@@ -3138,6 +3141,11 @@ |
33 |
else if ( strcmp(arg, "-ignore_optimization_hints") == 0 ) { |
34 |
fIgnoreOptimizationHints = true; |
35 |
} |
36 |
+#ifdef LTO |
37 |
+ else if ( strcmp(arg, "-verbose_lto_remarks") == 0 ) { |
38 |
+ fVerboseLTORemarks = true; |
39 |
+ } |
40 |
+#endif |
41 |
else if ( strcmp(arg, "-no_dtrace_dof") == 0 ) { |
42 |
fGenerateDtraceDOF = false; |
43 |
} |
44 |
Only in ld64-241.9/src/ld: Options.cpp~ |
45 |
diff -ru ld64-241.9.orig/src/ld/Options.h ld64-241.9/src/ld/Options.h |
46 |
--- ld64-241.9.orig/src/ld/Options.h 2015-02-02 22:14:29.000000000 +0100 |
47 |
+++ ld64-241.9/src/ld/Options.h 2015-02-02 22:16:36.000000000 +0100 |
48 |
@@ -381,6 +381,9 @@ |
49 |
bool forceWeakNonWildCard(const char* symbolName) const; |
50 |
bool forceNotWeakNonWildcard(const char* symbolName) const; |
51 |
bool forceCoalesce(const char* symbolName) const; |
52 |
+#ifdef LTO |
53 |
+ bool verboseLTORemarks() const { return fVerboseLTORemarks; } |
54 |
+#endif |
55 |
#ifdef SUPPORT_SNAPSHOTS |
56 |
Snapshot& snapshot() const { return fLinkSnapshot; } |
57 |
#endif |
58 |
@@ -681,6 +684,9 @@ |
59 |
std::vector<SymbolsMove> fSymbolsMovesCode; |
60 |
std::vector<SymbolsMove> fSymbolsMovesZeroFill; |
61 |
bool fSaveTempFiles; |
62 |
+#ifdef LTO |
63 |
+ bool fVerboseLTORemarks; |
64 |
+#endif |
65 |
#ifdef SUPPORT_SNAPSHOTS |
66 |
mutable Snapshot fLinkSnapshot; |
67 |
bool fSnapshotRequested; |
68 |
Only in ld64-241.9/src/ld: Options.h~ |
69 |
diff -ru ld64-241.9.orig/src/ld/Resolver.cpp ld64-241.9/src/ld/Resolver.cpp |
70 |
--- ld64-241.9.orig/src/ld/Resolver.cpp 2015-02-02 22:14:29.000000000 +0100 |
71 |
+++ ld64-241.9/src/ld/Resolver.cpp 2015-02-02 22:17:16.000000000 +0100 |
72 |
@@ -1559,6 +1559,7 @@ |
73 |
optOpt.mcpu = _options.mcpuLTO(); |
74 |
optOpt.llvmOptions = &_options.llvmOptions(); |
75 |
optOpt.initialUndefines = &_options.initialUndefines(); |
76 |
+ optOpt.verboseLTORemarks = _options.verboseLTORemarks(); |
77 |
|
78 |
std::vector<const ld::Atom*> newAtoms; |
79 |
std::vector<const char*> additionalUndefines; |
80 |
Only in ld64-241.9/src/ld: Resolver.cpp~ |
81 |
diff -ru ld64-241.9.orig/src/ld/parsers/lto_file.cpp ld64-241.9/src/ld/parsers/lto_file.cpp |
82 |
--- ld64-241.9.orig/src/ld/parsers/lto_file.cpp 2015-02-02 22:14:29.000000000 +0100 |
83 |
+++ ld64-241.9/src/ld/parsers/lto_file.cpp 2015-02-02 22:18:27.000000000 +0100 |
84 |
@@ -489,13 +489,17 @@ |
85 |
|
86 |
|
87 |
#if LTO_API_VERSION >= 7 |
88 |
-void Parser::ltoDiagnosticHandler(lto_codegen_diagnostic_severity_t severity, const char* message, void*) |
89 |
+void Parser::ltoDiagnosticHandler(lto_codegen_diagnostic_severity_t severity, const char* message, void* data) |
90 |
{ |
91 |
switch ( severity ) { |
92 |
#if LTO_API_VERSION >= 10 |
93 |
case LTO_DS_REMARK: |
94 |
+ { |
95 |
+ const OptimizeOptions* options = (const OptimizeOptions*)data; |
96 |
+ if (options->verboseLTORemarks) |
97 |
fprintf(stderr, "ld: LTO remark: %s\n", message); |
98 |
break; |
99 |
+ } |
100 |
#endif |
101 |
case LTO_DS_NOTE: |
102 |
case LTO_DS_WARNING: |
103 |
@@ -530,7 +533,7 @@ |
104 |
// create optimizer and add each Reader |
105 |
lto_code_gen_t generator = ::lto_codegen_create(); |
106 |
#if LTO_API_VERSION >= 7 |
107 |
- lto_codegen_set_diagnostic_handler(generator, ltoDiagnosticHandler, NULL); |
108 |
+ lto_codegen_set_diagnostic_handler(generator, ltoDiagnosticHandler, (void*)&options); |
109 |
#endif |
110 |
|
111 |
// <rdar://problem/12379604> The order that files are merged must match command line order |
112 |
Only in ld64-241.9/src/ld/parsers: lto_file.cpp~ |
113 |
diff -ru ld64-241.9.orig/src/ld/parsers/lto_file.h ld64-241.9/src/ld/parsers/lto_file.h |
114 |
--- ld64-241.9.orig/src/ld/parsers/lto_file.h 2015-02-02 22:14:29.000000000 +0100 |
115 |
+++ ld64-241.9/src/ld/parsers/lto_file.h 2015-02-02 22:18:57.000000000 +0100 |
116 |
@@ -61,6 +61,7 @@ |
117 |
const char* mcpu; |
118 |
const std::vector<const char*>* llvmOptions; |
119 |
const std::vector<const char*>* initialUndefines; |
120 |
+ bool verboseLTORemarks; |
121 |
}; |
122 |
|
123 |
extern bool optimize( const std::vector<const ld::Atom*>& allAtoms, |