Opened 5 years ago
Last modified 5 years ago
#19287 new defect
gcc10 problems
Reported by: | Frank Batschulat (Oracle) | Owned by: | |
---|---|---|---|
Component: | other | Version: | VirtualBox 6.1.2 |
Keywords: | gcc10 | Cc: | |
Guest type: | other | Host type: | other |
Description (last modified by )
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
From: "Sérgio Basto" <> To: vbox-dev@virtualbox.org 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 */
Change History (3)
comment:1 by , 5 years ago
Description: | modified (diff) |
---|
comment:2 by , 5 years ago
Note:
See TracTickets
for help on using tickets.
fwiw, following changeset may fix it:
r135995 set -fcommon
trunk/src/VBox/Devices/PC/ipxe/Makefile.kmk