1 diff -ruN tools/clang/include/clang/Basic/LangOptions.def tools/clang/include/clang/Basic/LangOptions.def
2 --- tools/clang/include/clang/Basic/LangOptions.def 2015-08-18 08:10:39 UTC
3 +++ tools/clang/include/clang/Basic/LangOptions.def
5 LANGOPT(RTTIData , 1, 1, "emit run-time type information data")
6 LANGOPT(MSBitfields , 1, 0, "Microsoft-compatible structure layout")
7 LANGOPT(Freestanding, 1, 0, "freestanding implementation")
8 +LANGOPT(FormatExtensions , 1, 0, "FreeBSD format extensions")
9 LANGOPT(NoBuiltin , 1, 0, "disable builtin functions")
10 LANGOPT(NoMathBuiltin , 1, 0, "disable math builtin functions")
11 LANGOPT(GNUAsm , 1, 1, "GNU-style inline assembly")
12 diff -ruN tools/clang/include/clang/Driver/Options.td tools/clang/include/clang/Driver/Options.td
13 --- tools/clang/include/clang/Driver/Options.td 2015-08-18 08:10:39 UTC
14 +++ tools/clang/include/clang/Driver/Options.td
17 def ffreestanding : Flag<["-"], "ffreestanding">, Group<f_Group>, Flags<[CC1Option]>,
18 HelpText<"Assert that the compilation takes place in a freestanding environment">;
19 +def fformat_extensions: Flag<["-"], "fformat-extensions">, Group<f_Group>, Flags<[CC1Option]>,
20 + HelpText<"Enable FreeBSD kernel specific format string extensions">;
21 def fgnu_keywords : Flag<["-"], "fgnu-keywords">, Group<f_Group>, Flags<[CC1Option]>,
22 HelpText<"Allow GNU-extension keywords regardless of language standard">;
23 def fgnu89_inline : Flag<["-"], "fgnu89-inline">, Group<f_Group>, Flags<[CC1Option]>,
24 diff -ruN tools/clang/lib/Driver/ToolChains/Clang.cpp tools/clang/lib/Driver/ToolChains/Clang.cpp
25 --- tools/clang/lib/Driver/ToolChains/Clang.cpp.orig 2017-03-27 21:06:42.969177000 +0000
26 +++ tools/clang/lib/Driver/ToolChains/Clang.cpp 2017-03-27 21:07:03.523370000 +0000
29 // Forward -f (flag) options which we can pass directly.
30 Args.AddLastArg(CmdArgs, options::OPT_femit_all_decls);
31 + Args.AddLastArg(CmdArgs, options::OPT_fformat_extensions);
32 Args.AddLastArg(CmdArgs, options::OPT_fheinous_gnu_extensions);
33 Args.AddLastArg(CmdArgs, options::OPT_fno_operator_names);
34 // Emulated TLS is enabled by default on Android, and can be enabled manually
35 diff -ruN tools/clang/lib/Frontend/CompilerInvocation.cpp tools/clang/lib/Frontend/CompilerInvocation.cpp
36 --- tools/clang/lib/Frontend/CompilerInvocation.cpp 2015-08-18 08:10:39 UTC
37 +++ tools/clang/lib/Frontend/CompilerInvocation.cpp
39 Opts.ShortWChar = Args.hasFlag(OPT_fshort_wchar, OPT_fno_short_wchar, false);
40 Opts.ShortEnums = Args.hasArg(OPT_fshort_enums);
41 Opts.Freestanding = Args.hasArg(OPT_ffreestanding);
42 + Opts.FormatExtensions = Args.hasArg(OPT_fformat_extensions);
43 Opts.NoBuiltin = Args.hasArg(OPT_fno_builtin) || Opts.Freestanding;
44 Opts.NoMathBuiltin = Args.hasArg(OPT_fno_math_builtin);
45 Opts.AssumeSaneOperatorNew = !Args.hasArg(OPT_fno_assume_sane_operator_new);