This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Remove unnecessary and harmful fixincludes for Android
- From: Andrew Pinski <pinskia at gmail dot com>
- To: Alexander Ivchenko <aivchenk at gmail dot com>
- Cc: GCC Patches <gcc-patches at gcc dot gnu dot org>, bkorb at gnu dot org, Andrew Hsieh <andrewhsieh at google dot com>, enh <enh at google dot com>
- Date: Mon, 4 Aug 2014 13:54:12 -0700
- Subject: Re: Remove unnecessary and harmful fixincludes for Android
- Authentication-results: sourceware.org; auth=none
- References: <CACysShg_=6t=Pwr=L3AmAjJcB5Z5bUJA9WyxWDx2wRQ46A1=jA at mail dot gmail dot com>
On Mon, Aug 4, 2014 at 8:29 AM, Alexander Ivchenko <aivchenk@gmail.com> wrote:
> Hi,
>
> The following patch disables "stdio_va_list" fix: stdio.h is already
> good in Android and, since ndk gcc is indented to be used with
> different Android sysroots, it is actually harmful, because without
> this fix only the version of stdio.h from the sysroot the compiler was
> built with will be used.
Isn't that why fixincludes is installed to run after the fact on sysroot?
Thanks,
Andrew Pinski
>
> complier_h_tradcpp fix is removed with this patch. This fix was made
> for Android, but it is outdated now. "linux/compiler.h" has been
> changed and the fix is not being applied anymore.
>
>
> diff --git a/fixincludes/ChangeLog b/fixincludes/ChangeLog
> index f7effee..19d70be 100644
> --- a/fixincludes/ChangeLog
> +++ b/fixincludes/ChangeLog
> @@ -1,3 +1,10 @@
> +2014-08-04 Alexander Ivchenko <alexander.ivchenko@intel.com>
> +
> + * inclhack.def (stdio_va_list): Disable fix for *android*.
> + (complier_h_tradcpp): Remove.
> + * fixincl.x: Regenerate.
> + * tests/base/linux/compiler.h: Remove.
> +
> 2014-04-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
>
> * inclhack.def (math_exception): Bypass on *-*-solaris2.1[0-9]*.
> diff --git a/fixincludes/fixincl.x b/fixincludes/fixincl.x
> index dd45802..8d6f1f2 100644
> --- a/fixincludes/fixincl.x
> +++ b/fixincludes/fixincl.x
> @@ -2,11 +2,11 @@
> *
> * DO NOT EDIT THIS FILE (fixincl.x)
> *
> - * It has been AutoGen-ed Tuesday January 7, 2014 at 12:02:54 PM MET
> + * It has been AutoGen-ed August 4, 2014 at 07:07:22 PM by AutoGen 5.12
> * From the definitions inclhack.def
> * and the template file fixincl
> */
> -/* DO NOT SVN-MERGE THIS FILE, EITHER Tue Jan 7 12:02:54 MET 2014
> +/* DO NOT SVN-MERGE THIS FILE, EITHER Mon Aug 4 19:07:23 MSK 2014
> *
> * You must regenerate it. Use the ./genfixes script.
> *
> @@ -15,7 +15,7 @@
> * certain ANSI-incompatible system header files which are fixed to work
> * correctly with ANSI C and placed in a directory that GNU C will search.
> *
> - * This file contains 224 fixup descriptions.
> + * This file contains 223 fixup descriptions.
> *
> * See README for more information.
> *
> @@ -2111,41 +2111,6 @@ int vfscanf(FILE *, const char *,
> __builtin_va_list) __asm__ (_BSD_STRING(__USER
>
> /* * * * * * * * * * * * * * * * * * * * * * * * * *
> *
> - * Description of Complier_H_Tradcpp fix
> - */
> -tSCC zComplier_H_TradcppName[] =
> - "complier_h_tradcpp";
> -
> -/*
> - * File name selection pattern
> - */
> -tSCC zComplier_H_TradcppList[] =
> - "linux/compiler.h\0";
> -/*
> - * Machine/OS name selection pattern
> - */
> -#define apzComplier_H_TradcppMachs (const char**)NULL
> -
> -/*
> - * content selection pattern - do fix if pattern found
> - */
> -tSCC zComplier_H_TradcppSelect0[] =
> - "#define __builtin_warning\\(x, y\\.\\.\\.\\) \\(1\\)";
> -
> -#define COMPLIER_H_TRADCPP_TEST_CT 1
> -static tTestDesc aComplier_H_TradcppTests[] = {
> - { TT_EGREP, zComplier_H_TradcppSelect0, (regex_t*)NULL }, };
> -
> -/*
> - * Fix Command Arguments for Complier_H_Tradcpp
> - */
> -static const char* apzComplier_H_TradcppPatch[] = {
> - "format",
> - "/* __builtin_warning(x, y...) is obsolete */",
> - (char*)NULL };
> -
> -/* * * * * * * * * * * * * * * * * * * * * * * * * *
> - *
> * Description of Ctrl_Quotes_Def fix
> */
> tSCC zCtrl_Quotes_DefName[] =
> @@ -7228,6 +7193,7 @@ tSCC zStdio_Va_ListList[] =
> */
> tSCC* apzStdio_Va_ListMachs[] = {
> "*-*-solaris2.1[0-9]*",
> + "*android*",
> (const char*)NULL };
>
> /*
> @@ -9187,9 +9153,9 @@ static const char* apzX11_SprintfPatch[] = {
> *
> * List of all fixes
> */
> -#define REGEX_COUNT 261
> +#define REGEX_COUNT 260
> #define MACH_LIST_SIZE_LIMIT 187
> -#define FIX_COUNT 224
> +#define FIX_COUNT 223
>
> /*
> * Enumerate the fixes
> @@ -9242,7 +9208,6 @@ typedef enum {
> BROKEN_CABS_FIXIDX,
> BROKEN_NAN_FIXIDX,
> BSD_STDIO_ATTRS_CONFLICT_FIXIDX,
> - COMPLIER_H_TRADCPP_FIXIDX,
> CTRL_QUOTES_DEF_FIXIDX,
> CTRL_QUOTES_USE_FIXIDX,
> CXX_UNREADY_FIXIDX,
> @@ -9657,11 +9622,6 @@ tFixDesc fixDescList[ FIX_COUNT ] = {
> BSD_STDIO_ATTRS_CONFLICT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
> aBsd_Stdio_Attrs_ConflictTests, apzBsd_Stdio_Attrs_ConflictPatch, 0 },
>
> - { zComplier_H_TradcppName, zComplier_H_TradcppList,
> - apzComplier_H_TradcppMachs,
> - COMPLIER_H_TRADCPP_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
> - aComplier_H_TradcppTests, apzComplier_H_TradcppPatch, 0 },
> -
> { zCtrl_Quotes_DefName, zCtrl_Quotes_DefList,
> apzCtrl_Quotes_DefMachs,
> CTRL_QUOTES_DEF_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
> diff --git a/fixincludes/inclhack.def b/fixincludes/inclhack.def
> index 6a1136c..cd3ad2d 100644
> --- a/fixincludes/inclhack.def
> +++ b/fixincludes/inclhack.def
> @@ -1140,20 +1140,6 @@ fix = {
> };
>
> /*
> - * Old Linux kernel's <compiler.h> header breaks Traditional CPP
> - */
> -fix = {
> - hackname = complier_h_tradcpp;
> - files = linux/compiler.h;
> -
> - select = "#define __builtin_warning\\(x, y\\.\\.\\.\\) \\(1\\)";
> - c_fix = format;
> - c_fix_arg = "/* __builtin_warning(x, y...) is obsolete */";
> -
> - test_text = "#define __builtin_warning(x, y...) (1)";
> -};
> -
> -/*
> * Fix various macros used to define ioctl numbers.
> * The traditional syntax was:
> *
> @@ -3727,8 +3713,9 @@ fix = {
> * On Solaris 10, the definition in
> * <stdio.h> is guarded appropriately by the _XPG4 feature macro;
> * there is therefore no need for this fix there.
> + * On Android va_list is always appropriately typedefed to __gnuc_va_list.
> */
> - mach = '*-*-solaris2.1[0-9]*';
> + mach = '*-*-solaris2.1[0-9]*', '*android*';
> not_machine = true;
>
> /*
> diff --git a/fixincludes/tests/base/linux/compiler.h
> b/fixincludes/tests/base/linux/compiler.h
> deleted file mode 100644
> index 7135276..0000000
> --- a/fixincludes/tests/base/linux/compiler.h
> +++ /dev/null
> @@ -1,14 +0,0 @@
> -/* DO NOT EDIT THIS FILE.
> -
> - It has been auto-edited by fixincludes from:
> -
> - "fixinc/tests/inc/linux/compiler.h"
> -
> - This had to be done to correct non-standard usages in the
> - original, manufacturer supplied header file. */
> -
> -
> -
> -#if defined( COMPLIER_H_TRADCPP_CHECK )
> -/* __builtin_warning(x, y...) is obsolete */
> -#endif /* COMPLIER_H_TRADCPP_CHECK */
>
>
> Is it OK?
>
> thanks,
> Alexander