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

Side by Side Diff: pnacl/driver/pnacl-driver.py

Issue 454593002: PNaCl driver: Add libgcc to mixed native/bitcode links (Closed) Base URL: svn://svn.chromium.org/native_client/trunk/src/native_client
Patch Set: fix 80col and comment typo Created 6 years, 4 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
OLDNEW
1 #!/usr/bin/python 1 #!/usr/bin/python
2 # Copyright (c) 2012 The Native Client Authors. All rights reserved. 2 # Copyright (c) 2012 The Native Client Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 # 5 #
6 # IMPORTANT NOTE: If you make local mods to this file, you must run: 6 # IMPORTANT NOTE: If you make local mods to this file, you must run:
7 # % pnacl/build.sh driver 7 # % pnacl/build.sh driver
8 # in order for them to take effect in the scons build. This command 8 # in order for them to take effect in the scons build. This command
9 # updates the copy in the toolchain/ tree. 9 # updates the copy in the toolchain/ tree.
10 # 10 #
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
116 'ISYSTEM_CXX_include_paths' : 116 'ISYSTEM_CXX_include_paths' :
117 '${BASE_USR}/include/c++/${STDLIB_IDIR} ' + 117 '${BASE_USR}/include/c++/${STDLIB_IDIR} ' +
118 '${BASE_USR}/include/c++/${STDLIB_IDIR}/arm-none-linux-gnueabi ' + 118 '${BASE_USR}/include/c++/${STDLIB_IDIR}/arm-none-linux-gnueabi ' +
119 '${BASE_USR}/include/c++/${STDLIB_IDIR}/backward', 119 '${BASE_USR}/include/c++/${STDLIB_IDIR}/backward',
120 120
121 121
122 # Only propagate opt level to linker if explicitly set, so that the 122 # Only propagate opt level to linker if explicitly set, so that the
123 # linker will know if an opt level was explicitly set or not. 123 # linker will know if an opt level was explicitly set or not.
124 'LD_FLAGS' : '${#OPT_LEVEL ? -O${OPT_LEVEL}} -static ' + 124 'LD_FLAGS' : '${#OPT_LEVEL ? -O${OPT_LEVEL}} -static ' +
125 '${PIC ? -fPIC} ${@AddPrefix:-L:SEARCH_DIRS} ' + 125 '${PIC ? -fPIC} ${@AddPrefix:-L:SEARCH_DIRS} ' +
126 '${ALLOW_NATIVE ? -L${LIBS_NATIVE_ARCH}} ' +
126 '--pnacl-exceptions=${CXX_EH_MODE}', 127 '--pnacl-exceptions=${CXX_EH_MODE}',
127 128
128 'SEARCH_DIRS' : '', # Directories specified using -L 129 'SEARCH_DIRS' : '', # Directories specified using -L
129 130
130 # Library Strings 131 # Library Strings
131 'EMITMODE' : '${!USE_STDLIB ? nostdlib : static}', 132 'EMITMODE' : '${!USE_STDLIB ? nostdlib : static}',
132 133
133 # This is setup so that LD_ARGS_xxx is evaluated lazily. 134 # This is setup so that LD_ARGS_xxx is evaluated lazily.
134 'LD_ARGS' : '${LD_ARGS_%EMITMODE%}', 135 'LD_ARGS' : '${LD_ARGS_%EMITMODE%}',
135 136
136 # ${ld_inputs} signifies where to place the objects and libraries 137 # ${ld_inputs} signifies where to place the objects and libraries
137 # provided on the command-line. 138 # provided on the command-line.
138 'LD_ARGS_nostdlib': '-nostdlib ${ld_inputs}', 139 'LD_ARGS_nostdlib': '-nostdlib ${ld_inputs}',
139 140
140 'LD_ARGS_static': 141 'LD_ARGS_static':
141 '${CXX_EH_MODE==zerocost ? -l:crt1_for_eh.x : -l:crt1.x} ' + 142 '${CXX_EH_MODE==zerocost ? -l:crt1_for_eh.x : -l:crt1.x} ' +
142 '-l:crti.bc -l:crtbegin.bc ' 143 '-l:crti.bc -l:crtbegin.bc '
143 '${CXX_EH_MODE==sjlj ? -l:sjlj_eh_redirect.bc : ' 144 '${CXX_EH_MODE==sjlj ? -l:sjlj_eh_redirect.bc : '
144 '${CXX_EH_MODE==none ? -l:unwind_stubs.bc}} ' + 145 '${CXX_EH_MODE==none ? -l:unwind_stubs.bc}} ' +
145 '${ld_inputs} ' + 146 '${ld_inputs} ' +
146 '--start-group ${STDLIBS} --end-group', 147 '--start-group ${STDLIBS} --end-group',
147 148
148 'LLVM_PASSES_TO_DISABLE': '', 149 'LLVM_PASSES_TO_DISABLE': '',
149 150
150 # Flags for translating to native .o files. 151 # Flags for translating to native .o files.
151 'TRANSLATE_FLAGS' : '-O${#OPT_LEVEL ? ${OPT_LEVEL} : 0}', 152 'TRANSLATE_FLAGS' : '-O${#OPT_LEVEL ? ${OPT_LEVEL} : 0}',
152 153
153 'STDLIBS' : '${DEFAULTLIBS ? ' 154 'STDLIBS' : '${DEFAULTLIBS ? '
154 '${LIBSTDCPP} ${LIBPTHREAD} ${LIBNACL} ${LIBC} ${LIBPNACLMM}}', 155 '${LIBSTDCPP} ${LIBPTHREAD} ${LIBNACL} ${LIBC} ${LIBPNACLMM} '
156 '${ALLOW_NATIVE ? ${NATIVELIBS}}}',
155 'LIBSTDCPP' : '${IS_CXX ? -l${STDLIB_TRUNC} -lm }', 157 'LIBSTDCPP' : '${IS_CXX ? -l${STDLIB_TRUNC} -lm }',
156 'LIBC' : '-lc', 158 'LIBC' : '-lc',
157 'LIBNACL' : '-lnacl', 159 'LIBNACL' : '-lnacl',
158 'LIBPNACLMM': '-lpnaclmm', 160 'LIBPNACLMM': '-lpnaclmm',
159 # Enabled/disabled by -pthreads 161 # Enabled/disabled by -pthreads
160 'LIBPTHREAD': '${PTHREAD ? -lpthread}', 162 'LIBPTHREAD': '${PTHREAD ? -lpthread}',
163 # For native/mixed links, also bring in the native libgcc to avoid link
164 # failure if pre-translated native code needs functions from it.
165 'NATIVELIBS': '-lgcc',
161 166
162 # IS_CXX is set by pnacl-clang and pnacl-clang++ programmatically 167 # IS_CXX is set by pnacl-clang and pnacl-clang++ programmatically
163 'CC' : '${IS_CXX ? ${CLANGXX} : ${CLANG}}', 168 'CC' : '${IS_CXX ? ${CLANGXX} : ${CLANG}}',
164 'RUN_CC': '${CC} -emit-llvm ${mode} ${CC_FLAGS} ' + 169 'RUN_CC': '${CC} -emit-llvm ${mode} ${CC_FLAGS} ' +
165 '${@AddPrefix:-isystem :ISYSTEM} ' + 170 '${@AddPrefix:-isystem :ISYSTEM} ' +
166 '-x${typespec} "${infile}" -o ${output}', 171 '-x${typespec} "${infile}" -o ${output}',
167 } 172 }
168 173
169 def AddLLVMPassDisableFlag(*args): 174 def AddLLVMPassDisableFlag(*args):
170 env.append('LLVM_PASSES_TO_DISABLE', *args) 175 env.append('LLVM_PASSES_TO_DISABLE', *args)
(...skipping 613 matching lines...) Expand 10 before | Expand all | Expand 10 after
784 -g Generate complete debug information. 789 -g Generate complete debug information.
785 -gline-tables-only Generate debug line-information only 790 -gline-tables-only Generate debug line-information only
786 (allowing for stack traces). 791 (allowing for stack traces).
787 -flimit-debug-info Generate limited debug information. 792 -flimit-debug-info Generate limited debug information.
788 -save-temps Keep intermediate compilation results. 793 -save-temps Keep intermediate compilation results.
789 -v Verbose output / show commands. 794 -v Verbose output / show commands.
790 -h | --help Show this help. 795 -h | --help Show this help.
791 --help-full Show underlying clang driver's help message 796 --help-full Show underlying clang driver's help message
792 (warning: not all options supported). 797 (warning: not all options supported).
793 """ % (tool) 798 """ % (tool)
OLDNEW
« no previous file with comments | « pnacl/driver/nativeld.py ('k') | tests/toolchain/nacl.scons » ('j') | tests/toolchain/nacl.scons » ('J')

Powered by Google App Engine
This is Rietveld 408576698