All of lore.kernel.org
 help / color / mirror / Atom feed
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
>>
>>
>

  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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.