From 2cb844ce9cf37fdd75438e27b515371ad1f71405 Mon Sep 17 00:00:00 2001 From: David Malcolm Date: Tue, 3 Feb 2015 17:19:58 +0000 Subject: PR jit/64810: driver, arm, jit: configure-time default options gcc/ChangeLog: PR jit/64810 * Makefile.in (GCC_OBJS): Add gcc-main.o. * gcc-main.c: New file, containing "main" taken from gcc.c. * gcc.c (do_self_spec): Free decoded_options. (class driver): Move declaration to gcc.h. (main): Move declaration and implementation to new file gcc-main.c. (driver_get_configure_time_options): New function. * gcc.h (class driver): Move this declaration here, from gcc.c. (driver_get_configure_time_options): New declaration. gcc/jit/ChangeLog: PR jit/64810 * Make-lang.in (jit_OBJS): Add jit/jit-spec.o and gcc.o. (LIBGCCJIT_FILENAME): Add EXTRA_GCC_OBJS. * jit-playback.c: Include gcc.h. (gcc::jit::playback::context::compile): Move mutex acquisition to before the call to make_fake_args. (append_arg_from_driver): New function. (gcc::jit::playback::context::make_fake_args): On the first call, call into driver_get_configure_time_options to get configure-time default options and cache them. Add them to the args for toplev::main. * jit-spec.c: New source file. * docs/internals/test-hello-world.exe.log.txt: Update to reflect above changes. From-SVN: r220373 --- gcc/gcc-main.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 gcc/gcc-main.c (limited to 'gcc/gcc-main.c') diff --git a/gcc/gcc-main.c b/gcc/gcc-main.c new file mode 100644 index 00000000000..230ba4846cd --- /dev/null +++ b/gcc/gcc-main.c @@ -0,0 +1,46 @@ +/* "main" for the compiler driver. + Copyright (C) 1987-2015 Free Software Foundation, Inc. + +This file is part of GCC. + +GCC is free software; you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free +Software Foundation; either version 3, or (at your option) any later +version. + +GCC is distributed in the hope that it will be useful, but WITHOUT ANY +WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +You should have received a copy of the GNU General Public License +along with GCC; see the file COPYING3. If not see +. */ + +/* This source file contains "main" for the compiler driver. + All of the real work is done within gcc.c; we implement "main" + in here for the "gcc" binary so that gcc.o can be used in + libgccjit.so. */ + +#include "config.h" +#include "system.h" +#include "coretypes.h" +#include "tm.h" +#include "xregex.h" +#include "obstack.h" +#include "intl.h" +#include "prefix.h" +#include "gcc.h" + +/* Implement the top-level "main" within the driver in terms of + driver::main (implemented in gcc.c). */ + +extern int main (int, char **); + +int +main (int argc, char **argv) +{ + driver d; + + return d.main (argc, argv); +} -- cgit v1.2.1