From patchwork Fri Feb 4 12:52:57 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?Martin_Li=C5=A1ka?= X-Patchwork-Id: 1588390 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=suse.cz header.i=@suse.cz header.a=rsa-sha256 header.s=susede2_rsa header.b=zKkz7f6S; dkim=pass header.d=suse.cz header.i=@suse.cz header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=Y+sIFbTI; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org (client-ip=8.43.85.97; helo=sourceware.org; envelope-from=gcc-patches-bounces+incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=) Received: from sourceware.org (ip-8-43-85-97.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4JqwSr28mVz9s8q for ; Fri, 4 Feb 2022 23:53:31 +1100 (AEDT) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 9DEDD3858024 for ; Fri, 4 Feb 2022 12:53:26 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by sourceware.org (Postfix) with ESMTPS id 0E0E93858D20 for ; Fri, 4 Feb 2022 12:52:59 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 0E0E93858D20 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=suse.cz Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.cz Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id F091E1F38E for ; Fri, 4 Feb 2022 12:52:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1643979177; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version:content-type:content-type; bh=84A6ILHaNQljlEdr4bJc/5G+6qEq9/9cI3icJXYoLyI=; b=zKkz7f6SkcIekhaTCNrxnmLMEgCQ6AKxKqJbVCzwug8QTO3WTzECHSUUfc577CN9Fl+Nf7 lBXzlI3vnNBJYVs5WQkMHXn5YalYTGVdeB65p8FS+4kj6NzCQJ5zsnuaQ2VzUYdXMARL0U a81qx/DJ+RSPP0ym7ORrdk5EY26sGDw= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1643979177; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version:content-type:content-type; bh=84A6ILHaNQljlEdr4bJc/5G+6qEq9/9cI3icJXYoLyI=; b=Y+sIFbTIizDJvd4En2n/sNEUozdGWJxS6IChznoVm6g3F9clds1K69G+8H4Tym+lG5rrss 2aUH+dPF6IpJkvBw== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id DFA2813A82 for ; Fri, 4 Feb 2022 12:52:57 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id 1rKiNakh/WHGXwAAMHmgww (envelope-from ) for ; Fri, 04 Feb 2022 12:52:57 +0000 Message-ID: <417eca08-e1ad-538e-c39a-388e20e2fcca@suse.cz> Date: Fri, 4 Feb 2022 13:52:57 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.5.1 From: =?utf-8?q?Martin_Li=C5=A1ka?= Subject: [PATCH] configure: add --disable-fix-includes To: gcc-patches@gcc.gnu.org Content-Language: en-US X-Spam-Status: No, score=-12.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_LOW, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces+incoming=patchwork.ozlabs.org@gcc.gnu.org Sender: "Gcc-patches" Hello. It seems to me that fixincludes is hardy unused feature for nowadays header files and so I'm suggesting a developer option that can skip the fixing. How is the feature used on other targets? Right now, fixinclude takes about 11 seconds on my machine, where it reads (and applies regexes) 130MB of header files. The number of fixed headers is negligible without any significant change. I'm attaching diff that I can see on my developer machine. Patch can bootstrap on x86_64-linux-gnu and survives regression tests. Ready to be installed? Thanks, Martin fixincludes/ChangeLog: * fixinc.in: Add early exit. gcc/ChangeLog: * Makefile.in: Support disable_fix_includes. * configure.ac: Add --disable-fix-includes. * configure: Regenerate. --- fixincludes/fixinc.in | 6 ++++++ gcc/Makefile.in | 6 ++++-- gcc/configure | 21 +++++++++++++++++++-- gcc/configure.ac | 6 ++++++ 4 files changed, 35 insertions(+), 4 deletions(-) --- /usr/include/X11/Xw32defs.h 2022-01-07 13:52:15.000000000 +0100 +++ include-fixed/X11/Xw32defs.h 2022-02-04 07:55:06.956493417 +0100 @@ -1,7 +1,16 @@ #ifndef _XW32DEFS_H # define _XW32DEFS_H -# ifdef __GNUC__ /* mingw is more close to unix than msvc */ +# ifdef __GNUC__ /* mingw is more close to __unix__ than msvc */ # if !defined(__daddr_t_defined) typedef char *caddr_t; # endif --- /usr/include/boost/predef/os/unix.h 2022-01-07 16:20:53.000000000 +0100 +++ include-fixed/boost/predef/os/unix.h 2022-02-04 07:55:06.564496142 +0100 @@ -1,3 +1,12 @@ /* Copyright Rene Rivera 2008-2015 Distributed under the Boost Software License, Version 1.0. @@ -29,7 +38,7 @@ #define BOOST_OS_UNIX BOOST_VERSION_NUMBER_NOT_AVAILABLE -#if defined(unix) || defined(__unix) || \ +#if defined(__unix__) || defined(__unix) || \ defined(_XOPEN_SOURCE) || defined(_POSIX_SOURCE) # undef BOOST_OS_UNIX # define BOOST_OS_UNIX BOOST_VERSION_NUMBER_AVAILABLE --- /usr/include/schily/prototyp.h 2022-01-07 15:51:33.000000000 +0100 +++ include-fixed/schily/prototyp.h 2022-02-04 07:55:04.260512155 +0100 @@ -1,3 +1,12 @@ /* * Definitions for dealing with ANSI / KR C-Compilers @@ -54,7 +63,7 @@ # if __STDC__ /* ANSI C */ # define PROTOTYPES # endif -# if defined(sun) && __STDC__ - 0 == 0 /* Sun C */ +# if defined(sun) && !defined(__STRICT_ANSI__) /* Sun C */ # define PROTOTYPES # endif # endif --- /usr/include/schily/mconfig.h 2022-01-07 15:51:33.000000000 +0100 +++ include-fixed/schily/mconfig.h 2022-02-04 07:55:04.244512265 +0100 @@ -1,3 +1,12 @@ /* * definitions for machine configuration @@ -106,7 +115,7 @@ # define IS_GCC_WIN32 # define IS_CYGWIN -#if defined(unix) || defined(_X86) +#if defined(__unix__) || defined(_X86) # define IS_CYGWIN_1 #endif #endif --- /usr/include/nss3/secport.h 2022-01-26 21:37:21.000000000 +0100 +++ include-fixed/nss3/secport.h 2022-02-04 07:55:04.232512351 +0100 @@ -1,3 +1,12 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ @@ -33,7 +42,7 @@ #endif #endif -#ifdef unix +#ifdef __unix__ #ifndef XP_UNIX #define XP_UNIX #endif --- /usr/include/msgpack/predef/os/unix.h 2019-07-04 06:36:12.000000000 +0200 +++ include-fixed/msgpack/predef/os/unix.h 2022-02-04 07:55:03.136519966 +0100 @@ -1,3 +1,12 @@ Copyright Rene Rivera 2008-2015 Distributed under the Boost Software License, Version 1.0. @@ -28,7 +37,7 @@ #define MSGPACK_OS_UNIX MSGPACK_VERSION_NUMBER_NOT_AVAILABLE -#if defined(unix) || defined(__unix) || \ +#if defined(__unix__) || defined(__unix) || \ defined(_XOPEN_SOURCE) || defined(_POSIX_SOURCE) # undef MSGPACK_OS_UNIX # define MSGPACK_OS_UNIX MSGPACK_VERSION_NUMBER_AVAILABLE --- /usr/include/msgpack/predef/os/linux.h 2019-07-04 06:36:12.000000000 +0200 +++ include-fixed/msgpack/predef/os/linux.h 2022-02-04 07:55:03.136519966 +0100 @@ -1,3 +1,12 @@ Copyright Rene Rivera 2008-2015 Distributed under the Boost Software License, Version 1.0. @@ -27,7 +36,7 @@ #define MSGPACK_OS_LINUX MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if !defined(MSGPACK_PREDEF_DETAIL_OS_DETECTED) && ( \ - defined(linux) || defined(__linux) \ + defined(__linux__) || defined(__linux) \ ) # undef MSGPACK_OS_LINUX # define MSGPACK_OS_LINUX MSGPACK_VERSION_NUMBER_AVAILABLE --- /usr/include/msgpack/sysdep.h 2020-02-19 10:21:46.000000000 +0100 +++ include-fixed/msgpack/sysdep.h 2022-02-04 07:55:03.124520052 +0100 @@ -1,3 +1,12 @@ * MessagePack system dependencies * @@ -87,7 +96,7 @@ #elif defined(unix) || defined(__unix) || defined(__APPLE__) || defined(__OpenBSD__) #include /* __BYTE_ORDER */ -# if defined(linux) +# if defined(__linux__) # include # endif @@ -99,7 +108,7 @@ #if MSGPACK_ENDIAN_LITTLE_BYTE -# if defined(unix) || defined(__unix) || defined(__APPLE__) || defined(__OpenBSD__) +# if defined(__unix__) || defined(__unix) || defined(__APPLE__) || defined(__OpenBSD__) # define _msgpack_be16(x) ntohs((uint16_t)x) # else # if defined(ntohs) @@ -113,7 +122,7 @@ # endif # endif -# if defined(unix) || defined(__unix) || defined(__APPLE__) || defined(__OpenBSD__) +# if defined(__unix__) || defined(__unix) || defined(__APPLE__) || defined(__OpenBSD__) # define _msgpack_be32(x) ntohl((uint32_t)x) # else # if defined(ntohl) --- /usr/include/msgpack/vrefbuffer.h 2020-02-19 10:21:46.000000000 +0100 +++ include-fixed/msgpack/vrefbuffer.h 2022-02-04 07:55:03.124520052 +0100 @@ -1,3 +1,12 @@ * MessagePack for C zero-copy buffer implementation * @@ -13,7 +22,7 @@ #include "zone.h" #include -#if defined(unix) || defined(__unix) || defined(__linux__) || defined(__APPLE__) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(__QNX__) || defined(__QNXTO__) || defined(__HAIKU__) +#if defined(__unix__) || defined(__unix) || defined(__linux__) || defined(__APPLE__) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(__QNX__) || defined(__QNXTO__) || defined(__HAIKU__) #include #else struct iovec { --- /usr/include/xorg/compiler.h 2022-01-07 20:21:20.000000000 +0100 +++ include-fixed/xorg/compiler.h 2022-02-04 07:55:02.816522192 +0100 @@ -1,3 +1,12 @@ * Copyright 1990,91 by Thomas Roell, Dinkelscherben, Germany. * @@ -936,7 +945,7 @@ #endif /* arch madness */ #else /* !GNUC */ -#if defined(__STDC__) && (__STDC__ == 1) +#if defined(__STDC__) && ( defined(__STRICT_ANSI__)) #ifndef asm #define asm __asm #endif --- /usr/include/xorg/edid.h 2022-01-07 20:21:20.000000000 +0100 +++ include-fixed/xorg/edid.h 2022-02-04 07:55:02.812522221 +0100 @@ -1,3 +1,12 @@ * edid.h: defines to parse an EDID block * @@ -336,7 +345,7 @@ #define ADD_DUMMY 0x10 #define _NEXT_DT_MD_SECTION(x) (x = (x + DET_TIMING_INFO_LEN)) -#define NEXT_DT_MD_SECTION _NEXT_DT_MD_SECTION(c) +#define NEXT_DT_MD_SECTION _NEXT_DT_MD_SECTION('c') #endif /* _PARSE_EDID_ */ --- /usr/include/smbios_c/config/suffix.h 2022-01-07 18:58:09.000000000 +0100 +++ include-fixed/smbios_c/config/suffix.h 2022-02-04 07:55:01.748529615 +0100 @@ -1,3 +1,12 @@ // (C) Copyright John Maddock 2001 - 2003. @@ -178,7 +187,7 @@ # define LIBSMBIOS_C_STDLIB "Unknown ISO standard library" # endif # ifndef LIBSMBIOS_C_PLATFORM -# if defined(unix) || defined(__unix) || defined(_XOPEN_SOURCE) \ +# if defined(__unix__) || defined(__unix) || defined(_XOPEN_SOURCE) \ || defined(_POSIX_SOURCE) # define LIBSMBIOS_C_PLATFORM "Generic Unix" # else --- /usr/include/zutil.h 2022-01-07 13:52:59.000000000 +0100 +++ include-fixed/zutil.h 2022-02-04 07:55:06.592495947 +0100 @@ -1,3 +1,12 @@ * Copyright (C) 1995-2016 Jean-loup Gailly, Mark Adler * For conditions of distribution and use, see copyright notice in zlib.h @@ -86,7 +95,7 @@ # define OS_CODE 0x00 # ifndef Z_SOLO # if defined(__TURBOC__) || defined(__BORLANDC__) -# if (__STDC__ == 1) && (defined(__LARGE__) || defined(__COMPACT__)) +# if ( defined(__STRICT_ANSI__)) && (defined(__LARGE__) || defined(__COMPACT__)) /* Allow compilation with ANSI keywords only enabled */ void _Cdecl farfree( void *block ); void *_Cdecl farmalloc( unsigned long nbytes ); --- /usr/include/slang.h 2022-01-02 16:15:25.000000000 +0100 +++ include-fixed/slang.h 2022-02-04 07:55:04.780508542 +0100 @@ -1,3 +1,12 @@ #define DAVIS_SLANG_H_ /* -*- mode: C; mode: fold; -*- */ @@ -43,7 +52,7 @@ # endif #endif /* __watcomc__ */ -#if defined(unix) || defined(__unix) +#if defined(__unix__) || defined(__unix) # ifndef __unix__ # define __unix__ 1 # endif --- /usr/include/libv4lconvert.h 2022-01-07 17:40:48.000000000 +0100 +++ include-fixed/libv4lconvert.h 2022-02-04 07:55:03.332518604 +0100 @@ -1,3 +1,12 @@ # (C) 2008 Hans de Goede @@ -22,7 +31,7 @@ /* These headers are not needed by us, but by linux/videodev2.h, which is broken on some systems and doesn't include them itself :( */ -#ifdef linux +#ifdef __linux__ #include #include #include --- /usr/include/libv4l1-videodev.h 2022-01-07 17:40:50.000000000 +0100 +++ include-fixed/libv4l1-videodev.h 2022-02-04 07:55:02.224526305 +0100 @@ -1,8 +1,17 @@ #ifndef __LINUX_VIDEODEV_H #define __LINUX_VIDEODEV_H -#ifdef linux +#ifdef __linux__ #include #endif --- /usr/include/pthread.h 2022-01-07 13:57:55.000000000 +0100 +++ include-fixed/pthread.h 2022-02-04 07:55:01.684530061 +0100 @@ -1,3 +1,12 @@ This file is part of the GNU C Library. @@ -770,7 +779,7 @@ #else # define __sigsetjmp_cancel(env, savemask) \ __sigsetjmp ((struct __jmp_buf_tag *) (void *) (env), (savemask)) -extern int __sigsetjmp (struct __jmp_buf_tag __env[1], +extern int __sigsetjmp (struct __jmp_buf_tag *__env, int __savemask) __THROWNL; #endif