[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PULL V2 00/20] Net patches
From: |
Dmitry Fleytman |
Subject: |
Re: [Qemu-devel] [PULL V2 00/20] Net patches |
Date: |
Wed, 25 May 2016 11:31:52 +0300 |
> On 25 May 2016, at 11:04 AM, Jason Wang <address@hidden> wrote:
>
>
>
> On 2016年05月24日 21:41, Peter Maydell wrote:
>> On 24 May 2016 at 08:49, Jason Wang <address@hidden> 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.
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?
Thanks,
Dmitry
>
> Thanks
>
>
- [Qemu-devel] [PULL V2 14/20] vmxnet3: Use pci_dma_* API instead of cpu_physical_memory_*, (continued)
- [Qemu-devel] [PULL V2 14/20] vmxnet3: Use pci_dma_* API instead of cpu_physical_memory_*, Jason Wang, 2016/05/24
- [Qemu-devel] [PULL V2 13/20] net_pkt: Extend packet abstraction as required by e1000e functionality, Jason Wang, 2016/05/24
- [Qemu-devel] [PULL V2 15/20] e1000_regs: Add definitions for Intel 82574-specific bits, Jason Wang, 2016/05/24
- [Qemu-devel] [PULL V2 16/20] e1000: Move out code that will be reused in e1000e, Jason Wang, 2016/05/24
- [Qemu-devel] [PULL V2 19/20] net: vl: Move default_net to vl.c, Jason Wang, 2016/05/24
- [Qemu-devel] [PULL V2 18/20] e1000e: Introduce qtest for e1000e device, Jason Wang, 2016/05/24
- [Qemu-devel] [PULL V2 20/20] net/net: Add SocketReadState for reuse codes, Jason Wang, 2016/05/24
- [Qemu-devel] [PULL V2 17/20] net: Introduce e1000e device emulation, Jason Wang, 2016/05/24
- Re: [Qemu-devel] [PULL V2 00/20] Net patches, Peter Maydell, 2016/05/24