From: Jason Wang <jasowang@redhat.com>
To: Dmitry Fleytman <dmitry@daynix.com>
Cc: Peter Maydell <peter.maydell@linaro.org>,
QEMU Developers <qemu-devel@nongnu.org>
Subject: Re: [Qemu-devel] [PULL V2 00/20] Net patches
Date: Wed, 25 May 2016 19:01:55 +0800 [thread overview]
Message-ID: <57458623.8010301@redhat.com> (raw)
In-Reply-To: <02F257B6-4170-4503-BF4C-270D831740B1@daynix.com>
On 2016年05月25日 16:31, Dmitry Fleytman wrote:
>> On 25 May 2016, at 11:04 AM, Jason Wang <jasowang@redhat.com> wrote:
>>
>>
>>
>> On 2016年05月24日 21:41, Peter Maydell wrote:
>>> On 24 May 2016 at 08:49, Jason Wang <jasowang@redhat.com> wrote:
>>>> The following changes since commit 3a2da52a99582ac2c0e29e548bb1fc28e2cdb84a:
>>>>
>>>> net/tap: Allocating Large sized arrays to heap (2016-05-24 15:30:41 +0800)
>>>>
>>>> are available in the git repository at:
>>>>
>>>> https://github.com/jasowang/qemu.git tags/net-pull-request
>>>>
>>>> for you to fetch changes up to f99d30aaf53e5b501dd3405007232db963ba65c6:
>>>>
>>>> net/net: Add SocketReadState for reuse codes (2016-05-24 15:30:42 +0800)
>>>>
>>>> ----------------------------------------------------------------
>>>>
>>>> Main changes:
>>>> - e1000e emulation
>>>> - convet vmxnet3 to use DMA api
>>>> Changes from V1:
>>>> - fix 32bit build
>>> Hi; I'm afraid this doesn't build on clang, which dislikes duplicate
>>> typedefs:
>>>
>>> In file included from /home/petmay01/linaro/qemu-for-merges/hw/net/e1000e.c:47:
>>> /home/petmay01/linaro/qemu-for-merges/hw/net/e1000e_core.h:110:3:
>>> error: redefinition of typedef 'E1000ECore' is a C11 feature
>>> [-Werror,-Wtypedef-redefinition]
>>> } E1000ECore;
>>> ^
>>> /home/petmay01/linaro/qemu-for-merges/hw/net/e1000e_core.h:43:29:
>>> note: previous definition is here
>>> typedef struct E1000Core_st E1000ECore;
>>> ^
>>>
>>> thanks
>>> -- PMM
>>>
>> Have a try on my machine, but looks like it works for me (./configure --cc=clang). version is
>>
>> clang version 3.8.0-2ubuntu3 (tags/RELEASE_380/final)
>> Target: x86_64-pc-linux-gnu
>> Thread model: posix
>> InstalledDir: /usr/bin
>> Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/5.3.1
>> Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/6.0.0
>> Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/5.3.1
>> Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/6.0.0
>> Selected GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/5.3.1
>> Candidate multilib: .;@m64
>> Selected multilib: .;@m64
>>
>> Looks like "-Werror,-Wtypedef-redefinition" was not used by default. After I add them to extra_cflags, e1000e can still build successfully.
>>
>> Is there anything I missed?
> Hi Jason,
>
> My clang 3.7.0 compiles this code fine as well. I just tried an older clang (3.4.2) and it produces build error as reported by Peter.
Aha, I see.
>
> The problematic patch is “net: Introduce e1000e device emulation"
>
> Fix is simple:
>
> diff --git a/hw/net/e1000e_core.h b/hw/net/e1000e_core.h
> index ff0ffbe..7a885e4 100644
> --- a/hw/net/e1000e_core.h
> +++ b/hw/net/e1000e_core.h
> @@ -55,7 +55,7 @@ typedef struct E1000IntrDelayTimer_st {
> E1000ECore *core;
> } E1000IntrDelayTimer;
>
> -typedef struct E1000Core_st {
> +struct E1000Core_st {
> uint32_t mac[E1000E_MAC_SIZE];
> uint16_t phy[E1000E_PHY_PAGES][E1000E_PHY_PAGE_SIZE];
> uint16_t eeprom[E1000E_EEPROM_SIZE];
> @@ -107,7 +107,7 @@ typedef struct E1000Core_st {
> NICState *owner_nic;
> PCIDevice *owner;
> void (*owner_start_recv)(PCIDevice *d);
> -} E1000ECore;
> +};
>
> Would you amend it yourself or should we send updated series?
I will amend it myself.
Thanks
>
> Thanks,
> Dmitry
>
>> Thanks
>>
>>
>
next prev parent reply other threads:[~2016-05-25 11:02 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-05-24 7:49 [Qemu-devel] [PULL V2 00/20] Net patches Jason Wang
2016-05-24 7:49 ` [Qemu-devel] [PULL V2 01/20] net/tap: Allocating Large sized arrays to heap Jason Wang
2016-05-24 7:49 ` [Qemu-devel] [PULL V2 02/20] net: mipsnet: check packet length against buffer Jason Wang
2016-05-24 7:49 ` [Qemu-devel] [PULL V2 03/20] msix: make msix_clr_pending() visible for clients Jason Wang
2016-05-24 7:49 ` [Qemu-devel] [PULL V2 04/20] pci: Introduce define for PM capability version 1.1 Jason Wang
2016-05-24 7:49 ` [Qemu-devel] [PULL V2 05/20] pcie: Add support for PCIe CAP v1 Jason Wang
2016-05-24 7:49 ` [Qemu-devel] [PULL V2 06/20] pcie: Introduce function for DSN capability creation Jason Wang
2016-05-24 7:49 ` [Qemu-devel] [PULL V2 07/20] vmxnet3: Use generic function for DSN capability definition Jason Wang
2016-05-24 7:49 ` [Qemu-devel] [PULL V2 08/20] net: Introduce Toeplitz hash calculator Jason Wang
2016-05-24 7:49 ` [Qemu-devel] [PULL V2 09/20] net: Add macros for MAC address tracing Jason Wang
2016-05-24 7:49 ` [Qemu-devel] [PULL V2 10/20] vmxnet3: Use common MAC address tracing macros Jason Wang
2016-05-24 7:49 ` [Qemu-devel] [PULL V2 11/20] net_pkt: Name vmxnet3 packet abstractions more generic Jason Wang
2016-05-24 7:49 ` [Qemu-devel] [PULL V2 12/20] rtl8139: Move more TCP definitions to common header Jason Wang
2016-05-24 7:49 ` [Qemu-devel] [PULL V2 13/20] net_pkt: Extend packet abstraction as required by e1000e functionality Jason Wang
2016-05-24 7:49 ` [Qemu-devel] [PULL V2 14/20] vmxnet3: Use pci_dma_* API instead of cpu_physical_memory_* Jason Wang
2016-05-24 7:49 ` [Qemu-devel] [PULL V2 15/20] e1000_regs: Add definitions for Intel 82574-specific bits Jason Wang
2016-05-24 7:49 ` [Qemu-devel] [PULL V2 16/20] e1000: Move out code that will be reused in e1000e Jason Wang
2016-05-24 7:49 ` [Qemu-devel] [PULL V2 17/20] net: Introduce e1000e device emulation Jason Wang
2016-05-24 7:49 ` [Qemu-devel] [PULL V2 18/20] e1000e: Introduce qtest for e1000e device Jason Wang
2016-05-24 7:49 ` [Qemu-devel] [PULL V2 19/20] net: vl: Move default_net to vl.c Jason Wang
2016-05-24 7:49 ` [Qemu-devel] [PULL V2 20/20] net/net: Add SocketReadState for reuse codes Jason Wang
2016-05-24 13:41 ` [Qemu-devel] [PULL V2 00/20] Net patches Peter Maydell
2016-05-25 8:04 ` Jason Wang
2016-05-25 8:31 ` Dmitry Fleytman
2016-05-25 11:01 ` Jason Wang [this message]
2016-05-25 11:04 ` Dmitry Fleytman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=57458623.8010301@redhat.com \
--to=jasowang@redhat.com \
--cc=dmitry@daynix.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).