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