VirtualBox

Opened 4 years ago

Last modified 4 years ago

#19287 new defect

gcc10 problems — at Initial Version

Reported by: Frank Batschulat (Oracle) Owned by:
Component: other Version: VirtualBox 6.1.2
Keywords: gcc10 Cc:
Guest type: other Host type: other

Description

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

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

<snip>


From: "Sérgio Basto" <> To: vbox-dev@… 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 <snip end>

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 */

Change History (0)

Note: See TracTickets for help on using tickets.

© 2023 Oracle
ContactPrivacy policyTerms of Use