From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pf0-f179.google.com (mail-pf0-f179.google.com [209.85.192.179]) by dpdk.org (Postfix) with ESMTP id 9E0B35F18 for ; Mon, 19 Mar 2018 18:50:50 +0100 (CET) Received: by mail-pf0-f179.google.com with SMTP id y186so7322981pfb.2 for ; Mon, 19 Mar 2018 10:50:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20150623.gappssmtp.com; s=20150623; h=date:from:to:subject:message-id:mime-version :content-transfer-encoding; bh=cdxzMM9tjzkmhVh7P/59E+h/JkReLeiTIfhKnc4oIHI=; b=J00tGEDYxefu1corPD8wSpmGd9iVx2fMI1RDXhgd2EBPJzohpSy88HBo1SZOv2DGOC 6ceskFLmdel67hBm1kQhWeBhe7bEbg/6CycEMEHSZ9CHCEWimIeSb3QyMqt5XjMxL26q jmdq9eovROpwloUiI0OnvCY3dRI99FS5lh6rzQd/mfwnyY5Jn5EmuhhP1TSu9tsiT7X1 tSJasAQJN3DiUgd2ycBQTpto4PncrECWRQSR0O5TYHWPsMnk83phaWCoYvOMhGAI7hvC llaSQu20raPvd/tCbWGqpGOqpbSpSrdyVM+xq1upSrk936fZplYNS+vJ2RRDU3KMR77t hRng== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:subject:message-id:mime-version :content-transfer-encoding; bh=cdxzMM9tjzkmhVh7P/59E+h/JkReLeiTIfhKnc4oIHI=; b=dNmL719iedHbCL9199RaNk+8OD3jHDX0ttnGyO4QYyTuOSbwhWRrsaer1UT/bw+P6Y SvdzEUYHfO0RaOIluMLApjO8DQIflfNF7ZywJbn1HuToPQXa2fGfmlCbAknMU6xc3oC5 xLyFGxNFNetCaRBB6KFcKBbI5U9BpfOz6FW4033CBfogx+ZDK+6dhfmqkzPBm+dS4Z1t 460F7BHMxnRyWqNYhBdUvo00DAGLjbJWSAKQvnMf20hrp+7Z5uziuL6EtwxPnNzKzNvJ /0bfn7HqlrmiSVP7xhVLlzCI9CoPOAOov/avzyYKK0xg9YXEDHD09rV7jDpZcNvqViHK IK+Q== X-Gm-Message-State: AElRT7EBV0PrJEwLD8Mc94gedY+MR38ivVh4OVGRTQtcLvU2CFF4kUNX bq7ZZOKVzmsT4qvWlzLZGX9kx6jcGoQ= X-Google-Smtp-Source: AG47ELuZu8M5puPw64jbsOvdUxG5SCHwHkq3rf+AWu6OZaQOL+tDpuPTl9vX2pycmRYkj4W3OcKzHA== X-Received: by 10.99.106.68 with SMTP id f65mr9685330pgc.343.1521481849610; Mon, 19 Mar 2018 10:50:49 -0700 (PDT) Received: from xeon-e3 (204-195-71-95.wavecable.com. [204.195.71.95]) by smtp.gmail.com with ESMTPSA id b5sm871447pgn.8.2018.03.19.10.50.49 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 19 Mar 2018 10:50:49 -0700 (PDT) Date: Mon, 19 Mar 2018 10:50:47 -0700 From: Stephen Hemminger To: dev@dpdk.org, guruprasadx.rao@intel.com Message-ID: <20180319105047.37b30e50@xeon-e3> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: [dpdk-dev] DPDK build issues with gcc-8 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Mar 2018 17:50:50 -0000 Tried building DPDK with gcc-8 and got several new warnings. Working on trivial patches for most of them, but the DPDK rte_table interfa= ce for hashing has a more fundamental problem which Gcc-8 discovers. The code is trying to cast an RTE hash function into a RTE table hash funct= ion with a different signature. It works because the two are mostly the same, = but it really shouldn't be done that way: Warning: CC rte_table_hash_cuckoo.o lib/librte_table/rte_table_hash_cuckoo.c: In function =E2=80=98rte_table_ha= sh_cuckoo_create=E2=80=99: lib/librte_table/rte_table_hash_cuckoo.c:110:16: error: cast between incomp= atible function types from =E2=80=98rte_table_hash_op_hash=E2=80=99 {aka = =E2=80=98long unsigned int (*)(void *, void *, unsigned int, long unsigned= int)=E2=80=99} to =E2=80=98uint32_t (*)(const void *, uint32_t, uint32_t)= =E2=80=99 {aka =E2=80=98unsigned int (*)(const void *, unsigned int, unsig= ned int)=E2=80=99} [-Werror=3Dcast-function-type] .hash_func =3D (rte_hash_function)(p->f_hash), ^ RTE hash: /** Type of function that can be used for calculating the hash value. */ typedef uint32_t (*rte_hash_function)(const void *key, uint32_t key_len, uint32_t init_val); RTE table hash: /** Hash function */ typedef uint64_t (*rte_table_hash_op_hash)( void *key, void *key_mask, uint32_t key_size, uint64_t seed); Just turning off the warning is not an acceptable solution. The API should = really be fixed. My preference would be to eliminate rte_table_hash_op_hash typedef and keep rte_hash_function.