Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(91)

Side by Side Diff: build/common.gypi

Issue 56180: Use -Wl,-{start,end}-group for LoadableModules, too. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 # Copyright (c) 2009 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 { 5 {
6 'variables': { 6 'variables': {
7 # .gyp files should set chromium_code to 1 if they build Chromium-specific 7 # .gyp files should set chromium_code to 1 if they build Chromium-specific
8 # code, as opposed to external code. This variable is used to control 8 # code, as opposed to external code. This variable is used to control
9 # such things as the set of warnings to enable, and whether warnings are 9 # such things as the set of warnings to enable, and whether warnings are
10 # treated as errors. 10 # treated as errors.
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
129 ], 129 ],
130 'linkflags': [ 130 'linkflags': [
131 '-m32', 131 '-m32',
132 '-pthread', 132 '-pthread',
133 ], 133 ],
134 'scons_variable_settings': { 134 'scons_variable_settings': {
135 'LIBPATH': ['$LIB_DIR'], 135 'LIBPATH': ['$LIB_DIR'],
136 # Linking of large files uses lots of RAM, so serialize links 136 # Linking of large files uses lots of RAM, so serialize links
137 # using the handy flock command from util-linux. 137 # using the handy flock command from util-linux.
138 'FLOCK_LINK': ['flock', '$TOP_BUILDDIR/linker.lock', '$LINK'], 138 'FLOCK_LINK': ['flock', '$TOP_BUILDDIR/linker.lock', '$LINK'],
139 'FLOCK_SHLINK': ['flock', '$TOP_BUILDDIR/linker.lock', '$SHLINK'],
140 'FLOCK_LDMODULE': ['flock', '$TOP_BUILDDIR/linker.lock', '$LDMODULE'],
139 141
140 # We have several cases where archives depend on each other in 142 # We have several cases where archives depend on each other in
141 # a cyclic fashion. Since the GNU linker does only a single 143 # a cyclic fashion. Since the GNU linker does only a single
142 # pass over the archives we surround the libraries with 144 # pass over the archives we surround the libraries with
143 # --start-group and --end-group (aka -( and -) ). That causes 145 # --start-group and --end-group (aka -( and -) ). That causes
144 # ld to loop over the group until no more undefined symbols 146 # ld to loop over the group until no more undefined symbols
145 # are found. In an ideal world we would only make groups from 147 # are found. In an ideal world we would only make groups from
146 # those libraries which we knew to be in cycles. However, 148 # those libraries which we knew to be in cycles. However,
147 # that's tough with SCons, so we bodge it by making all the 149 # that's tough with SCons, so we bodge it by making all the
148 # archives a group by redefining the linking command here. 150 # archives a group by redefining the linking command here.
149 # 151 #
150 # TODO: investigate whether we still have cycles that 152 # TODO: investigate whether we still have cycles that
151 # require --{start,end}-group. There has been a lot of 153 # require --{start,end}-group. There has been a lot of
152 # refactoring since this was first coded, which might have 154 # refactoring since this was first coded, which might have
153 # eliminated the circular dependencies. 155 # eliminated the circular dependencies.
154 'LINKCOM': [['$FLOCK_LINK', '-o', '$TARGET', '$LINKFLAGS', '$SOURCES', '$_LIBDIRFLAGS', '-Wl,--start-group', '$_LIBFLAGS', '-Wl,--end-group']], 156 'LINKCOM': [['$FLOCK_LINK', '-o', '$TARGET', '$LINKFLAGS', '$SOURCES', '$_LIBDIRFLAGS', '-Wl,--start-group', '$_LIBFLAGS', '-Wl,--end-group']],
155 'SHLINKCOM': [['$FLOCK_LINK', '-o', '$TARGET', '$SHLINFLAGS', '$SOURCE S', '$_LIBDIRFLAGS', '-Wl,--start-group', '$_LIBFLAGS', '-Wl,--end-group']], 157 'SHLINKCOM': [['$FLOCK_SHLINK', '-o', '$TARGET', '$SHLINKFLAGS', '$SOU RCES', '$_LIBDIRFLAGS', '-Wl,--start-group', '$_LIBFLAGS', '-Wl,--end-group']],
158 'LDMODULECOM': [['$FLOCK_LDMODULE', '-o', '$TARGET', '$LDMODULEFLAGS', '$SOURCES', '$_LIBDIRFLAGS', '-Wl,--start-group', '$_LIBFLAGS', '-Wl,--end-grou p']],
156 'IMPLICIT_COMMAND_DEPENDENCIES': 0, 159 'IMPLICIT_COMMAND_DEPENDENCIES': 0,
157 }, 160 },
158 'scons_import_variables': [ 161 'scons_import_variables': [
159 'CC', 162 'CC',
160 'CXX', 163 'CXX',
161 'LINK', 164 'LINK',
162 ], 165 ],
163 'scons_propagate_variables': [ 166 'scons_propagate_variables': [
164 'CC', 167 'CC',
165 'CCACHE_DIR', 168 'CCACHE_DIR',
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after
331 # settings in target dicts. SYMROOT is a special case, because many other 334 # settings in target dicts. SYMROOT is a special case, because many other
332 # Xcode variables depend on it, including variables such as 335 # Xcode variables depend on it, including variables such as
333 # PROJECT_DERIVED_FILE_DIR. When a source group corresponding to something 336 # PROJECT_DERIVED_FILE_DIR. When a source group corresponding to something
334 # like PROJECT_DERIVED_FILE_DIR is added to a project, in order for the 337 # like PROJECT_DERIVED_FILE_DIR is added to a project, in order for the
335 # files to appear (when present) in the UI as actual files and not red 338 # files to appear (when present) in the UI as actual files and not red
336 # red "missing file" proxies, the correct path to PROJECT_DERIVED_FILE_DIR, 339 # red "missing file" proxies, the correct path to PROJECT_DERIVED_FILE_DIR,
337 # and therefore SYMROOT, needs to be set at the project level. 340 # and therefore SYMROOT, needs to be set at the project level.
338 'SYMROOT': '<(DEPTH)/xcodebuild', 341 'SYMROOT': '<(DEPTH)/xcodebuild',
339 }, 342 },
340 } 343 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698