VirtualBox

5 年 前 建立

5 年 前 更新

#19287 new defect

gcc10 problems — 於 版本 1

回報者: Frank Batschulat (Oracle) 負責人:
元件: other 版本: VirtualBox 6.1.2
關鍵字: gcc10 副本:
Guest type: other Host type: other

描述 (由 Frank Batschulat (Oracle) 作最後更新)

We've got reports of probelsm compiling the vbox code base with the newest GCC version 10. See below:

https://www.alldomusa.eu.org/pipermail/vbox-dev/2020-February/015411.html

From: "Sérgio Basto" <>
To: [email protected]
Cc:
Subject: [vbox-dev] problem with new GCC 10
Date: Wed, 05 Feb 2020 02:06:27 +0100

Hi,
Now seems to me, GCC10 forbids multiple definitions , I got at least  3  
packages with this
problem (of multiple definitions [1])  but in Virtual Box we have thousand  
of lines this these [2]

Best regards,

[1]
https://github.com/telmich/gpm/pull/37

[2]
ld:  
/builddir/build/BUILD/VirtualBox-6.1.2/obj/obj/iPxeBaseBin/src/arch/i386/core/relocate.o:(.bss+0x0):  
multiple definition of `__licence_public_domain';  
/builddir/build/BUILD/VirtualBox-6.1.2/obj/obj/iPxeBaseBin/src/arch/i386/core/basemem_packet.o:(.bss+0x0):  
first defined here
ld:  
/builddir/build/BUILD/VirtualBox-6.1.2/obj/obj/iPxeBaseBin/src/arch/i386/core/relocate.o:(.bss+0x1):  
multiple definition of `__licence_gpl2_only';  
/builddir/build/BUILD/VirtualBox-6.1.2/obj/obj/iPxeBaseBin/src/arch/i386/core/basemem_packet.o:(.bss+0x1):  
first defined here
ld:  
/builddir/build/BUILD/VirtualBox-6.1.2/obj/obj/iPxeBaseBin/src/arch/i386/core/relocate.o:(.bss+0x2):  
multiple definition of `__licence_gpl2_or_later';  
/builddir/build/BUILD/VirtualBox-6.1.2/obj/obj/iPxeBaseBin/src/arch/i386/core/basemem_packet.o:(.bss+0x2):  
first defined here
ld:  
/builddir/build/BUILD/VirtualBox-6.1.2/obj/obj/iPxeBaseBin/src/arch/i386/core/timer2.o:(.bss+0x0):  
multiple definition of `__licence_public_domain';  
/builddir/build/BUILD/VirtualBox-6.1.2/obj/obj/iPxeBaseBin/src/arch/i386/core/basemem_packet.o:(.bss+0x0):  
first defined here
ld:  
/builddir/build/BUILD/VirtualBox-6.1.2/obj/obj/iPxeBaseBin/src/arch/i386/core/timer2.o:(.bss+0x1):  
multiple definition of `__licence_gpl2_only';  
/builddir/build/BUILD/VirtualBox-6.1.2/obj/obj/iPxeBaseBin/src/arch/i386/core/basemem_packet.o:(.bss+0x1):  
first defined here
ld:  
/builddir/build/BUILD/VirtualBox-6.1.2/obj/obj/iPxeBaseBin/src/arch/i386/core/timer2.o:(.bss+0x2):  
multiple definition of `__licence_gpl2_or_later';  
/builddir/build/BUILD/VirtualBox-6.1.2/obj/obj/iPxeBaseBin/src/arch/i386/core/basemem_packet.o:(.bss+0x2):  
first defined here
ld:  
/builddir/build/BUILD/VirtualBox-6.1.2/obj/obj/iPxeBaseBin/src/arch/i386/firmware/pcbios/basemem.o:(.bss+0x0):  
multiple definition of `__licence_public_domain';  
/builddir/build/BUILD/VirtualBox-6.1.2/obj/obj/iPxeBaseBin/src/arch/i386/core/basemem_packet.o:(.bss+0x0):  
first defined here
ld:  
/builddir/build/BUILD/VirtualBox-6.1.2/obj/obj/iPxeBaseBin/src/arch/i386/firmware/pcbios/basemem.o:(.bss+0x1):  
multiple definition of `__licence_gpl2_only';  
/builddir/build/BUILD/VirtualBox-6.1.2/obj/obj/iPxeBaseBin/src/arch/i386/core/basemem_packet.o:(.bss+0x1):  
first defined here
ld:  
/builddir/build/BUILD/VirtualBox-6.1.2/obj/obj/iPxeBaseBin/src/arch/i386/firmware/pcbios/basemem.o:(.bss+0x2):  
multiple definition of `__licence_gpl2_or_later';  
/builddir/build/BUILD/VirtualBox-6.1.2/obj/obj/iPxeBaseBin/src/arch/i386/core/basemem_packet.o:(.bss+0x2):  
first defined here
ld:  
/builddir/build/BUILD/VirtualBox-6.1.2/obj/obj/iPxeBaseBin/src/arch/i386/firmwarel2_or_later';  
/builddir/build/BUILD/VirtualBox-6.1.2/obj/obj/iPxeBaseBin/src/arch/i386/core/basemem_packet.o:(.bss+0x2):  
first defined here

refer to:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85678
https://gcc.gnu.org/gcc-10/porting_to.html#common

THe complains are about:

trunk/src/VBox/Devices/PC/ipxe/src/include/compiler.h

653 #define FILE_LICENCE_PUBLIC_DOMAIN \
654         PROVIDE_SYMBOL ( __licence_public_domain )

662 #define FILE_LICENCE_GPL2_OR_LATER \
663         PROVIDE_SYMBOL ( __licence_gpl2_or_later )

671 #define FILE_LICENCE_GPL2_ONLY \
672         PROVIDE_SYMBOL ( __licence_gpl2_only )

683 #define FILE_LICENCE_GPL_ANY \
684         PROVIDE_SYMBOL ( __licence_gpl_any )

[...]
 60 /** Provide a symbol within this object file */
 61 #ifdef ASSEMBLY
 62 #define PROVIDE_SYMBOL( _sym )                          \
 63         .globl  _sym ;                                  \
 64         .comm   _sym, 0
 65 #else /* ASSEMBLY */
 66 #define PROVIDE_SYMBOL( _sym )                          \
 67         char _sym[0]
 68 #endif /* ASSEMBLY */

更動歷史 (1)

comment:1 5 年 前Frank Batschulat (Oracle) 編輯

描述: 修改 (差異)
注意: 瀏覽 TracTickets 來幫助您使用待辦事項功能

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette