15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#!/usr/bin/env python
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Copyright (c) 2012 The Chromium Authors. All rights reserved.
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Use of this source code is governed by a BSD-style license that can be
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# found in the LICENSE file.
50f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)"""NaCl gcc wrapper that presents glibc and newlib as a single
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)toolchain.
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)This wraps the newlib and glibc compilers and allows users
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)to choose which one they really want by passed in --glibc
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)or --newlib on the command line.
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)We need this when using gyp to generator build files since
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)gyp only support one target toolchain and one host toolchain
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)(for now).
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)"""
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)import sys
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)import os
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)def main():
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  args = sys.argv[1:]
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  if '--glibc' in args:
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    variant = 'glibc'
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    args.remove('--glibc')
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  elif '--newlib' in args:
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    variant = 'newlib'
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    args.remove('--newlib')
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  else:
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    sys.exit("Expected --glibc or --newlib in arg list")
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  compiler = os.path.abspath(sys.argv[0])
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  compiler = compiler.replace("linux_x86", "linux_x86_%s" % variant)
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  args = [compiler] + args
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  os.execv(compiler, args)
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)if __name__ == '__main__':
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  main()
36