From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <adrien.mazarguil@6wind.com>
Received: from mail-wm0-f53.google.com (mail-wm0-f53.google.com [74.125.82.53])
 by dpdk.org (Postfix) with ESMTP id 2001A5689
 for <dev@dpdk.org>; Tue,  5 Jul 2016 13:35:06 +0200 (CEST)
Received: by mail-wm0-f53.google.com with SMTP id 187so26422224wmz.1
 for <dev@dpdk.org>; Tue, 05 Jul 2016 04:35:06 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=6wind-com.20150623.gappssmtp.com; s=20150623;
 h=date:from:to:cc:subject:message-id:mail-followup-to:references
 :mime-version:content-disposition:content-transfer-encoding
 :in-reply-to; bh=hzrS9Kp43sPUgbGm130lEb7xWZNT5l2qh/E5jfpNsrQ=;
 b=txi6GULG3qrfoNht9jPX0RN5XT63/TURukF0MFibVsjX6yi1x+x9LfBX6JGQMLv5p4
 XThX0nQdi61f0pIpSrXJLx4dxEt1BkyWBv6kvoumGBNSV/F8vWO697GBF+8avVS15e0s
 lcZSFSAbjd1B7WT5FgwXSXVCdaG6kxNFdFd8vJUckXy+HX2Jvr/Q0XFs+f6FtN3bVTsQ
 LMbWhlcuZYVTO6GD6QvzHHUJN7tANAICemI8u4FdfUwSKedQ2eRWQaAVx99Q3FXRw3Dz
 2Rzd2h7gqt04mEBQdzTWOHoYk9VMFvhVyIC/T6b+AXwHrnNANR9QZbdHE9zuyicVLJ7h
 yWLQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:date:from:to:cc:subject:message-id
 :mail-followup-to:references:mime-version:content-disposition
 :content-transfer-encoding:in-reply-to;
 bh=hzrS9Kp43sPUgbGm130lEb7xWZNT5l2qh/E5jfpNsrQ=;
 b=BBi8nBPf7fqyuka4D2nnBR98ZwHPAiIeN80QvSGSEkz6/V8aACob5RrwEhNJvh9zEy
 K9qRciQFV9puTn99NxOd6eoeIDWJxZ0INV5JBGvHSDdQC7RXzRyw6yeBzVXgy5h12uaM
 Iv4EswRQ2lgewCHBYZwLof3VSgQoxk5ucvohxe8eqNrXK+Wz4WMLtgf8HATwQbl5D1ol
 qYw7TJWjHq+3USvTwjx3hSjs3MyfJOvrNeDuyfJ8QP9mzG3rtwnC3766efkmbQNyp+b/
 IYX6Z5KW6PCpKT/RNZYzEDYOQ1ySa3iRfp7Z7l62LbcjRm0XEyh8sYX0uUizQiV0W3nc
 D3Rw==
X-Gm-Message-State: ALyK8tLn4z8lTsR6dcqrdoSPTu/H+VD9lfEmGlbnUwdEUNsBg6AeVVpwN9+YEZVOVq3qrGio
X-Received: by 10.194.67.39 with SMTP id k7mr16783699wjt.23.1467718505808;
 Tue, 05 Jul 2016 04:35:05 -0700 (PDT)
Received: from 6wind.com (guy78-3-82-239-227-177.fbx.proxad.net.
 [82.239.227.177])
 by smtp.gmail.com with ESMTPSA id w81sm2596770wmg.20.2016.07.05.04.35.04
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Tue, 05 Jul 2016 04:35:05 -0700 (PDT)
Date: Tue, 5 Jul 2016 13:35:03 +0200
From: Adrien Mazarguil <adrien.mazarguil@6wind.com>
To: Jan Viktorin <viktorin@rehivetech.com>
Cc: dev@dpdk.org
Message-ID: <20160705113503.GK7621@6wind.com>
Mail-Followup-To: Jan Viktorin <viktorin@rehivetech.com>, dev@dpdk.org
References: <1459865290-10248-1-git-send-email-adrien.mazarguil@6wind.com>
 <cover.1467715254.git.adrien.mazarguil@6wind.com>
 <20160705111523.5861459.30261.5810@rehivetech.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20160705111523.5861459.30261.5810@rehivetech.com>
Subject: Re: [dpdk-dev] [PATCH v2 00/11] Fix build errors related to
	exported headers
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: patches and discussions about DPDK <dev.dpdk.org>
List-Unsubscribe: <http://dpdk.org/ml/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://dpdk.org/ml/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <http://dpdk.org/ml/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Tue, 05 Jul 2016 11:35:06 -0000

Hi Jan,

On Tue, Jul 05, 2016 at 01:15:23PM +0200, Jan Viktorin wrote:
> Hi Adrien,
> 
> I am the only one in CC and only in the 00/11 patch. Is it a mistake? Or what is the purpose?

It was on purpose to draw your attention to my comment regarding #includes
within extern "C" blocks.

> Regards‎
> Jan Viktorin
> RehiveTech
> Sent from a mobile device
>   Původní zpráva  
> Od: Adrien Mazarguil
> Odesláno: úterý, 5. července 2016 12:45
> Komu: dev@dpdk.org
> Kopie: Jan Viktorin
> Předmět: [PATCH v2 00/11] Fix build errors related to exported headers
> 
> DPDK uses GNU C language extensions in most of its code base. This is fine
> for internal source files whose compilation flags are controlled by DPDK,
> however user applications that use exported "public" headers may experience
> compilation failures when enabling strict error/standard checks (-std and
> -pedantic for instance).
> 
> Exported headers are installed system-wide and must be as clean as possible
> so applications do not have to resort to workarounds.
> 
> This patchset affects exported headers only, compilation problems are
> addressed as follows:
> 
> - Adding the __extension__ keyword to nonstandard constructs (same method
> as existing libraries when there is no other choice).
> - Adding the __extension__ keyword to C11 constructs to remain compatible
> with pure C99.
> - Adding missing includes so exported files can be included out of order
> and on their own.
> - Fixing GNU printf-like variadic macros as there is no magic keyword for
> these.
> 
> Changes in v2:
> 
> - Rebased on top of the current HEAD.
> - Added script to check headers automatically (check-includes.sh), for both
> C and C++ compilation.
> - Updated test-build.sh to use it.
> - Fixed consistency of new #include directives, now inside extern "C"
> blocks for files that already do that (Jan, fixing these was too much
> work for this patchset so I settled on this solution in the meantime).
> - Updated headlines to address check-git-log.sh complaints.
> 
> Adrien Mazarguil (11):
> lib: work around braced-groups within expressions
> lib: work around large enum values
> lib: use C99 syntax for zero-size arrays
> lib: work around nonstandard bit-fields
> lib: work around structs with no members
> lib: work around unnamed structs/unions
> lib: add missing include dependencies
> lib: work around forward reference to enum types
> lib: remove named variadic macros in exported headers
> lib: hide static functions never defined
> scripts: check compilation of exported header files
> 
> MAINTAINERS | 1 +
> lib/librte_acl/rte_acl.h | 2 +-
> lib/librte_cfgfile/rte_cfgfile.h | 2 +
> lib/librte_cmdline/cmdline.h | 1 +
> lib/librte_cmdline/cmdline_parse_portlist.h | 1 +
> lib/librte_cmdline/cmdline_socket.h | 3 +
> lib/librte_cryptodev/rte_crypto.h | 2 +
> lib/librte_cryptodev/rte_crypto_sym.h | 3 +
> lib/librte_cryptodev/rte_cryptodev.h | 40 ++-
> lib/librte_cryptodev/rte_cryptodev_pmd.h | 6 +-
> .../common/include/arch/arm/rte_byteorder.h | 2 +
> .../common/include/arch/arm/rte_memcpy_32.h | 3 +-
> .../common/include/arch/arm/rte_prefetch_32.h | 1 +
> .../common/include/arch/arm/rte_prefetch_64.h | 1 +
> .../common/include/arch/arm/rte_vect.h | 1 +
> .../common/include/arch/ppc_64/rte_atomic.h | 1 +
> .../common/include/arch/ppc_64/rte_byteorder.h | 1 +
> .../common/include/arch/ppc_64/rte_cycles.h | 2 +
> .../common/include/arch/ppc_64/rte_memcpy.h | 3 +-
> .../common/include/arch/ppc_64/rte_prefetch.h | 1 +
> .../common/include/arch/x86/rte_atomic.h | 2 +
> .../common/include/arch/x86/rte_atomic_32.h | 9 +
> .../common/include/arch/x86/rte_atomic_64.h | 8 +
> .../common/include/arch/x86/rte_byteorder.h | 2 +
> .../common/include/arch/x86/rte_byteorder_32.h | 7 +
> .../common/include/arch/x86/rte_byteorder_64.h | 7 +
> .../common/include/arch/x86/rte_cycles.h | 2 +
> .../common/include/arch/x86/rte_memcpy.h | 4 +-
> .../common/include/arch/x86/rte_prefetch.h | 1 +
> .../common/include/arch/x86/rte_rtm.h | 1 +
> .../common/include/arch/x86/rte_vect.h | 8 +-
> .../common/include/generic/rte_atomic.h | 1 +
> .../common/include/generic/rte_byteorder.h | 2 +
> .../common/include/generic/rte_cpuflags.h | 3 +
> .../common/include/generic/rte_memcpy.h | 4 +
> lib/librte_eal/common/include/rte_common.h | 22 +-
> lib/librte_eal/common/include/rte_devargs.h | 1 +
> lib/librte_eal/common/include/rte_eal.h | 1 +
> lib/librte_eal/common/include/rte_interrupts.h | 2 +
> lib/librte_eal/common/include/rte_memory.h | 4 +
> lib/librte_eal/common/include/rte_memzone.h | 2 +
> lib/librte_eal/common/include/rte_time.h | 8 +
> lib/librte_eal/common/include/rte_version.h | 1 +
> .../eal/include/exec-env/rte_interrupts.h | 1 +
> .../eal/include/exec-env/rte_kni_common.h | 6 +-
> lib/librte_ether/rte_dev_info.h | 2 +
> lib/librte_ether/rte_eth_ctrl.h | 4 +
> lib/librte_ether/rte_ethdev.h | 4 +
> lib/librte_hash/rte_fbk_hash.h | 2 +-
> lib/librte_hash/rte_thash.h | 3 +
> lib/librte_ip_frag/rte_ip_frag.h | 2 +-
> lib/librte_lpm/rte_lpm.h | 7 +-
> lib/librte_lpm/rte_lpm_neon.h | 1 +
> lib/librte_lpm/rte_lpm_sse.h | 1 +
> lib/librte_mbuf/rte_mbuf.h | 9 +
> lib/librte_mempool/rte_mempool.h | 3 +
> lib/librte_pdump/rte_pdump.h | 4 +
> lib/librte_pipeline/rte_pipeline.h | 4 +-
> lib/librte_reorder/rte_reorder.h | 2 +
> lib/librte_ring/rte_ring.h | 2 +-
> lib/librte_sched/rte_bitmap.h | 3 +-
> lib/librte_sched/rte_reciprocal.h | 2 +
> lib/librte_sched/rte_sched_common.h | 1 +
> lib/librte_timer/rte_timer.h | 2 +
> scripts/check-includes.sh | 286 +++++++++++++++++++
> scripts/test-build.sh | 14 +
> 66 files changed, 511 insertions(+), 33 deletions(-)
> create mode 100755 scripts/check-includes.sh
> 
> -- 
> 2.1.4
> 

-- 
Adrien Mazarguil
6WIND