From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yuanhan Liu Subject: Re: [PATCH] net/virtio-user: fix O_CLOEXEC undeclared error Date: Wed, 29 Jun 2016 09:56:10 +0800 Message-ID: <20160629015610.GA23111@yliu-dev.sh.intel.com> References: <1466948986-12255-1-git-send-email-jianfeng.tan@intel.com> <57724644.2070107@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Cc: Jianfeng Tan , dev@dpdk.org, huawei.xie@intel.com, Panu Matilainen , Christian Ehrhardt , Thomas Monjalon To: Ferruh Yigit Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by dpdk.org (Postfix) with ESMTP id 52A6F2904 for ; Wed, 29 Jun 2016 03:55:53 +0200 (CEST) Content-Disposition: inline In-Reply-To: <57724644.2070107@intel.com> List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On Tue, Jun 28, 2016 at 10:41:24AM +0100, Ferruh Yigit wrote: > On 6/26/2016 2:49 PM, Jianfeng Tan wrote: > > On some older systems, such as SUSE 11, the compiling error shows > > as: > > .../dpdk/drivers/net/virtio/virtio_user/virtio_user_dev.c:67:22: > > error: =E2=80=98O_CLOEXEC=E2=80=99 undeclared (first use in = this function) > >=20 > > The fix is to declare _GNU_SOURCE macro before include fcntl.h. > >=20 > > Fixes: 37a7eb2ae816 ("net/virtio-user: add device emulation layer") > >=20 > > Signed-off-by: Jianfeng Tan > > --- > > drivers/net/virtio/virtio_user/virtio_user_dev.c | 1 + > > 1 file changed, 1 insertion(+) > >=20 > > diff --git a/drivers/net/virtio/virtio_user/virtio_user_dev.c b/drive= rs/net/virtio/virtio_user/virtio_user_dev.c > > index 3d12a32..180f824 100644 > > --- a/drivers/net/virtio/virtio_user/virtio_user_dev.c > > +++ b/drivers/net/virtio/virtio_user/virtio_user_dev.c > > @@ -31,6 +31,7 @@ > > * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DA= MAGE. > > */ > > =20 > > +#define _GNU_SOURCE > This flag enables glibc extensions, and kind of problem on code > portability. How big problem is it? Honestly, I don't know. But I was also thinking that define _GNU_SOURCE here is an overkill to me. For this issue, we may simply fix it by reference the O_CLOEXEC flag only when it's defined. > Is there any platform that DPDK runs on which uses a libc that isn't > compatible with what this flag provides? >=20 > And it seems this flag already used in DPDK, including libraries. Yes, "git grep _GNU_SOURCE" shows a lot of such usage. --yliu > If we > are agree on using glibc extensions, does it make sense to move this > flag into a single common location (like mk/exec-env/) ? >=20 > > #include > > #include > > #include > >=20