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: ?O_CLOEXEC? undeclared (first use in this function) > > The fix is to declare _GNU_SOURCE macro before include fcntl.h. > > Fixes: 37a7eb2ae816 ("net/virtio-user: add device emulation layer") > > Signed-off-by: Jianfeng Tan <jianfeng.tan at intel.com> > --- > drivers/net/virtio/virtio_user/virtio_user_dev.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/net/virtio/virtio_user/virtio_user_dev.c > b/drivers/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 DAMAGE. > */ > > +#define _GNU_SOURCE This flag enables glibc extensions, and kind of problem on code portability. How big problem is it? Is there any platform that DPDK runs on which uses a libc that isn't compatible with what this flag provides?
And it seems this flag already used in DPDK, including libraries. 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/) ? > #include <stdint.h> > #include <stdio.h> > #include <fcntl.h> >