[dpdk-dev] [PATCH] eal/linux: fix build
Ananyev, Konstantin
konstantin.ananyev at intel.com
Thu Mar 5 10:28:13 CET 2015
> -----Original Message-----
> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Qiu, Michael
> Sent: Thursday, March 05, 2015 9:13 AM
> To: Thomas Monjalon; David Marchand
> Cc: dev at dpdk.org
> Subject: Re: [dpdk-dev] [PATCH] eal/linux: fix build
>
> On 3/4/2015 6:24 AM, Thomas Monjalon wrote:
> >>> Compilation fails in some distributions because of missing unistd.h
> >>> needed for pread/pwrite (seen with Suse):
> >>> lib/librte_eal/linuxapp/eal/eal_pci_uio.c:62:2:
> >>> error: implicit declaration of function 'pread'
> >>>
> >>> Fixes: 4a499c649590 ("eal/linux: enable uio_pci_generic support")
> >>>
> >>> Signed-off-by: Thomas Monjalon <thomas.monjalon at 6wind.com>
> >> Acked-by: David Marchand <david.marchand at 6wind.com>
> > Applied
>
> Hi, Thomas
>
> This patch may be need to be reverted, as the error still exists.
>
> suse-11-sp3-32:~/dpdk # uname -a
> Linux suse-11-sp3-32 3.0.76-0.11-pae #1 SMP Fri Jun 14 08:21:43 UTC 2013
> (ccab990) i686 i686 i386 GNU/Linux
>
> suse-11-sp3-32:~/dpdk # gcc -v
> Using built-in specs.
> COLLECT_GCC=gcc
> COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/i686-pc-linux-gnu/4.5.1/lto-wrapper
> Target: i686-pc-linux-gnu
> Configured with: ./configure
> Thread model: posix
> gcc version 4.5.1 (GCC)
>
> As I try to check the manual of pread, find that it has two:
> ----------------------------------------------------------
> Man: find all matching manual pages
> * pread (2)
> pread (3p)
> Man: What manual page do you want?
> Man:
> -------------------------------------------------------------
> PREAD(2) Linux
> Programmer's
> Manual PREAD(2)
>
>
>
> NAME
> pread, pwrite - read from or write to a file descriptor at a
> given offset
>
> SYNOPSIS
> #define _XOPEN_SOURCE 500
>
> #include <unistd.h>
>
> ssize_t pread(int fd, void *buf, size_t count, off_t offset);
>
> ssize_t pwrite(int fd, const void *buf, size_t count, off_t offset);
>
> --------------------------------------------------------------------------------------------------------------------------------------------
>
> READ(3P) POSIX
> Programmer's
> Manual READ(3P)
>
>
>
> PROLOG
> This manual page is part of the POSIX Programmer's Manual. The
> Linux implementation of this interface may differ (consult the
> corresponding Linux
> manual page for details of Linux behavior), or the interface may
> not be implemented on Linux.
>
> NAME
> pread, read - read from a file
>
> SYNOPSIS
> #include <unistd.h>
>
>
>
> ssize_t pread(int fildes, void *buf, size_t nbyte, off_t offset);
> ssize_t read(int fildes, void *buf, size_t nbyte);
>
>
> DESCRIPTION
>
> ------------------------------------------------------------------------------------------------------------------------------------------
>
> While I try to add marco #define _XOPEN_SOURCE 500
>
> Other errors show up
>
> Who knows how to solve this issue?
>
> Thanks,
> Michael
>
> >
Can you try to add:
CFLAGS_<file_name>.o := -D_GNU_SOURCE
to your Makefile?
Konstantin
More information about the dev
mailing list