Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 722676 - app/emulation/virtualbox-6.1.6: emerge fails with gcc-10.1.0 (error gcc >= 4.4 required when compiling against Qt5!)
Summary: app/emulation/virtualbox-6.1.6: emerge fails with gcc-10.1.0 (error gcc >= 4....
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: AMD64 Linux
: Normal normal with 2 votes (vote)
Assignee: Lars Wendler (Polynomial-C) (RETIRED)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: gcc-10 gcc-10-stable
  Show dependency tree
 
Reported: 2020-05-12 11:37 UTC by Benjamin Réveillé
Modified: 2021-03-06 12:17 UTC (History)
3 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
gcc10.1_vbox_gcc_version.patch (gcc10.1_vbox_gcc_version.patch,801 bytes, patch)
2020-05-12 11:38 UTC, Benjamin Réveillé
Details | Diff
ebuild.patch (virtualbox-6.1.6.ebuild.patch,775 bytes, patch)
2020-05-12 11:40 UTC, Benjamin Réveillé
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Benjamin Réveillé 2020-05-12 11:37:12 UTC
I found 2 errors when compiling virtualbox-6.1.6 with gcc-10.1.0 :

1) Makefile.kmk:195
error gcc >= 4.4 required when compiling against Qt5!

This is due to the fact that "ifeq ($(int-ge $(VBOX_GCC_VERSION_CXX),40400),)" fails as code to get VBOX_GCC_VERSION_CXX does not correctly handle major versions of gcc to be above 9 and fails... returning 10000 instead of 1000100

Here is a patch to correct this to eapply through the ebuild:
> cat /usr/local/portage/app-emulation/virtualbox/files/gcc10.1_vbox_gcc_version.patch
--- VirtualBox-6.1.6/Config.kmk 2020-05-10 19:06:16.245769049 +0200
+++ VirtualBox-6.1.6/Config.kmk 2020-05-10 19:06:40.086107339 +0200
@@ -2685,7 +2685,7 @@
  # Some versions of gcc (e.g. openSUSE11) return only major.minor on `gcc -dumpversion`.
  # gcc-5 of openSUSE42.1 only returns the major version on `gcc -dumpversion`!
  VBOX_GCC_VERSION = $(shell ($(1) -dumpfullversion 2>/dev/null || $(1) -dumpversion) | \
-    $(SED_EXT) 's|\([0-9]\)\.\{0,1\}\([0-9]\{0,1\}\)\.\{0,1\}\([0-9]\{0,1\}\).*|$$(int-add $$(int-mul 10000, \1), $$(int-mul 100, $$(firstword \2 0)), $$(firstword \3 0))|' )
+    $(SED_EXT) 's|\([0-9]\{1,2\}\)\.\{0,1\}\([0-9]\{0,1\}\)\.\{0,1\}\([0-9]\{0,1\}\).*|$$(int-add $$(int-mul 10000, \1), $$(int-mul 100, $$(firstword \2 0)), $$(firstword \3 0))|' )
 endif
 
 # YASM macros

2) Once I correct this first error we get further but fail on :
/var/tmp/portage/app-emulation/virtualbox-6.1.6/work/VirtualBox-6.1.6/src/VBox/Debugger/DBGCDumpImage.cpp: Dans la fonction « const char* dbgcMachoCpuType(uint32_t, uint32_t) »:
/var/tmp/portage/app-emulation/virtualbox-6.1.6/work/VirtualBox-6.1.6/include/iprt/formats/mach-o.h:41:46: erreur: conversion réductrice de « -1 » depuis « int » vers « unsigned int » [-Wnarrowing]

That is corrected by adding -Wnarrowing to VBOX_GCC_OPT in the ebuild.

Here is the global patch to apply to the ebuild for these 2 corrections
> diff -U3 /usr/portage/app-emulation/virtualbox/virtualbox-6.1.6.ebuild /usr/local/portage/app-emulation/virtualbox/virtualbox-6.1.6-r1.ebuild 
--- /usr/portage/app-emulation/virtualbox/virtualbox-6.1.6.ebuild       2020-04-18 18:09:53.000000000 +0200
+++ /usr/local/portage/app-emulation/virtualbox/virtualbox-6.1.6-r1.ebuild      2020-05-10 22:22:51.762529310 +0200
@@ -207,6 +207,8 @@
                eapply "${FILESDIR}"/virtualbox-5.2.8-paxmark-bldprogs.patch
        fi
 
+       eapply "${FILESDIR}"/gcc10.1_vbox_gcc_version.patch
+
        eapply "${WORKDIR}/patches"
 
        eapply_user
@@ -265,7 +267,7 @@
                TOOL_GCC3_AS="$(tc-getCC)" TOOL_GCC3_AR="$(tc-getAR)" \
                TOOL_GCC3_LD="$(tc-getCXX)" TOOL_GCC3_LD_SYSMOD="$(tc-getLD)" \
                TOOL_GCC3_CFLAGS="${CFLAGS}" TOOL_GCC3_CXXFLAGS="${CXXFLAGS}" \
-               VBOX_GCC_OPT="${CXXFLAGS}" \
+               VBOX_GCC_OPT="${CXXFLAGS} -Wno-narrowing" \
                TOOL_YASM_AS=yasm KBUILD_VERBOSE=2 \
                VBOX_WITH_VBOXIMGMOUNT=1 \
                all



Reproducible: Always

Steps to Reproduce:
1.set gcc-10.1.0 as system compiler with gcc-config (& . /etc/profile)
2.emerge virtualbox
3.
Actual Results:  
see description

Expected Results:  
Emerge success
Comment 1 Benjamin Réveillé 2020-05-12 11:38:57 UTC
Created attachment 638426 [details, diff]
gcc10.1_vbox_gcc_version.patch
Comment 2 Benjamin Réveillé 2020-05-12 11:40:10 UTC
Created attachment 638428 [details, diff]
ebuild.patch
Comment 3 Alex 2020-05-28 17:55:40 UTC
Voting for this bug, 'cause it also affects me. Proposed solution works. Probably it'll be some time before upstream fixes that.
Comment 4 AxeL 2020-06-02 22:59:09 UTC
I have the same problem. 

// ---- My Error ----

In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/10.1.0/include/stdint.h:9,
                 from /var/tmp/portage/app-emulation/virtualbox-6.1.6/work/VirtualBox-6.1.6/include/iprt/stdint.h:58,
                 from /var/tmp/portage/app-emulation/virtualbox-6.1.6/work/VirtualBox-6.1.6/include/iprt/types.h:33,
                 from /var/tmp/portage/app-emulation/virtualbox-6.1.6/work/VirtualBox-6.1.6/include/VBox/types.h:33,
                 from /var/tmp/portage/app-emulation/virtualbox-6.1.6/work/VirtualBox-6.1.6/include/VBox/dbg.h:37,
                 from /var/tmp/portage/app-emulation/virtualbox-6.1.6/work/VirtualBox-6.1.6/src/VBox/Debugger/DBGCDumpImage.cpp:23:
/var/tmp/portage/app-emulation/virtualbox-6.1.6/work/VirtualBox-6.1.6/src/VBox/Debugger/DBGCDumpImage.cpp: In function ‘const char* dbgcMachoCpuType(uint32_t, uint32_t)’:
/var/tmp/portage/app-emulation/virtualbox-6.1.6/work/VirtualBox-6.1.6/include/iprt/formats/mach-o.h:41:46: error: narrowing conversion of ‘-1’ from ‘int’ to ‘unsigned int’ [-Wnarrowing]
   41 | #define CPU_TYPE_ANY                INT32_C(-1)
      |                                              ^
/var/tmp/portage/app-emulation/virtualbox-6.1.6/work/VirtualBox-6.1.6/src/VBox/Debugger/DBGCDumpImage.cpp:471:14: note: in expansion of macro ‘CPU_TYPE_ANY’
  471 |         case CPU_TYPE_ANY:          return "CPU_TYPE_ANY";
      |              ^~~~~~~~~~~~
kmk: *** [/usr/share/kBuild/footer-pass2-compiling-targets.kmk:226: /var/tmp/portage/app-emulation/virtualbox-6.1.6/work/VirtualBox-6.1.6/out/linux.amd64/release/obj/Debugger/DBGCDumpImage.o] Error 1
kmk: *** Waiting for unfinished jobs....
kmk_builtin_append -n "/var/tmp/portage/app-emulation/virtualbox-6.1.6/work/VirtualBox-6.1.6/out/linux.amd64/release/obj/Debugger/DBGCFunctions.o.dep" "" "/var/tmp/portage/app-emulation/virtualbox-6.1.6/work/VirtualBox-6.1.6/src/VBox/Debugger/DBGCFunctions.cpp:" ""
kmk_builtin_append -n "/var/tmp/portage/app-emulation/virtualbox-6.1.6/work/VirtualBox-6.1.6/out/linux.amd64/release/obj/Debugger/DBGCEval.o.dep" "" "/var/tmp/portage/app-emulation/virtualbox-6.1.6/work/VirtualBox-6.1.6/src/VBox/Debugger/DBGCEval.cpp:" ""
kmk_builtin_append -n "/var/tmp/portage/app-emulation/virtualbox-6.1.6/work/VirtualBox-6.1.6/out/linux.amd64/release/obj/Debugger/DBGConsole.o.dep" "" "/var/tmp/portage/app-emulation/virtualbox-6.1.6/work/VirtualBox-6.1.6/src/VBox/Debugger/DBGConsole.cpp:" ""
kmk_builtin_append -n "/var/tmp/portage/app-emulation/virtualbox-6.1.6/work/VirtualBox-6.1.6/out/linux.amd64/release/obj/Debugger/DBGCCommands.o.dep" "" "/var/tmp/portage/app-emulation/virtualbox-6.1.6/work/VirtualBox-6.1.6/src/VBox/Debugger/DBGCCommands.cpp:" ""
kmk: *** Exiting with status 2
 * ERROR: app-emulation/virtualbox-6.1.6::gentoo failed (compile phase):
 *   emake failed
 * 
 * If you need support, post the output of `emerge --info '=app-emulation/virtualbox-6.1.6::gentoo'`,
 * the complete build log and the output of `emerge -pqv '=app-emulation/virtualbox-6.1.6::gentoo'`.
 * The complete build log is located at '/var/tmp/portage/app-emulation/virtualbox-6.1.6/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/app-emulation/virtualbox-6.1.6/temp/environment'.
 * Working directory: '/var/tmp/portage/app-emulation/virtualbox-6.1.6/work/VirtualBox-6.1.6'
 * S: '/var/tmp/portage/app-emulation/virtualbox-6.1.6/work/VirtualBox-6.1.6'
!!! When you file a bug report, please include the following information:
GENTOO_VM=  CLASSPATH="" JAVA_HOME=""
JAVACFLAGS="" COMPILER=""
and of course, the output of emerge --info =virtualbox-6.1.6

>>> Failed to emerge app-emulation/virtualbox-6.1.6, Log file:

>>>  '/var/tmp/portage/app-emulation/virtualbox-6.1.6/temp/build.log'

 * Messages for package app-emulation/virtualbox-6.1.6:

 * User patches applied.
 * ERROR: app-emulation/virtualbox-6.1.6::gentoo failed (compile phase):
 *   emake failed
 * 
 * If you need support, post the output of `emerge --info '=app-emulation/virtualbox-6.1.6::gentoo'`,
 * the complete build log and the output of `emerge -pqv '=app-emulation/virtualbox-6.1.6::gentoo'`.
 * The complete build log is located at '/var/tmp/portage/app-emulation/virtualbox-6.1.6/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/app-emulation/virtualbox-6.1.6/temp/environment'.
 * Working directory: '/var/tmp/portage/app-emulation/virtualbox-6.1.6/work/VirtualBox-6.1.6'
 * S: '/var/tmp/portage/app-emulation/virtualbox-6.1.6/work/VirtualBox-6.1.6'
Comment 5 Viktor Yu. Kovalskii 2020-06-09 07:29:05 UTC
Upstream already fixed this issues:

1) for GCC-10:

https://www.virtualbox.org/changeset/84159/vbox

2) for error: narrowing conversion of ‘-1’ from ‘int’ to ‘unsigned int’ [-Wnarrowing]

https://www.virtualbox.org/changeset/84158/vbox

I think virtualbox-6.1.10 already has this fixes.
Comment 6 Michal Jakubowski 2020-06-09 09:36:35 UTC
Patches working.
Comment 7 Andreas K. Hüttel archtester gentoo-dev 2021-03-06 11:28:15 UTC
(In reply to Viktor Yu. Kovalskii from comment #5)
> Upstream already fixed this issues:
> 
> 1) for GCC-10:
> 
> https://www.virtualbox.org/changeset/84159/vbox
> 
> 2) for error: narrowing conversion of ‘-1’ from ‘int’ to ‘unsigned int’
> [-Wnarrowing]
> 
> https://www.virtualbox.org/changeset/84158/vbox
> 
> I think virtualbox-6.1.10 already has this fixes.

Well then we can close this bug.