[dpdk-dev] [PATCH] net/virtio-user: fix O_CLOEXEC undeclared error

Ferruh Yigit ferruh.yigit at intel.com
Tue Jun 28 11:41:24 CEST 2016


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



More information about the dev mailing list