> -----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