With ~gcc-4.8.5 x11-drivers/xf86-video-virtualbox fails to compile VBox/Runtime/common/log/log.cpp with a "error: can’t set ‘no_instrument_function’ attribute after definition" from /lib/modules/4.1.3/build/include/linux/compiler.h on function "static __always_inline void __read_once_size(const volatile void *p, void *res, int size)" Seems to be due to gcc getting confused about macro defines in relation to "inline" and "notrace" Reproducible: Always Steps to Reproduce: 1. gentoo-sources-4.1.3 under virtualbox-5.0.0 using gcc-4.8.5 2. emerge x11-drivers/xf86-video-virtualbox 3. Actual Results: x86_64-pc-linux-gnu-g++ -c -O2 -nostdinc -iwithprefix include -include /lib/modules/4.1.3-gentoo/build/include/linux/kconfig.h -Wall -Wextra -Wno-missing-field-initializers -Wno-unused -Wno-trigraphs -fdiagnostics-show-option -Wno-unused-parameter -Wlogical-op -Wno-sign-compare -fdiagnostics-show-option -fno-stack-protector -O2 -mtune=generic -fno-omit-frame-pointer -fno-strict-aliasing -fno-common -include /var/tmp/portage/x11-drivers/xf86-video-virtualbox-5.0.0/work/VirtualBox-5.0.0/include/VBox/VBoxGuestMangling.h -m64 -mno-red-zone -mcmodel=kernel -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -fno-reorder-blocks -fno-asynchronous-unwind-tables -funit-at-a-time -Wno-sign-compare -fno-exceptions -fno-rtti -include /var/tmp/portage/x11-drivers/xf86-video-virtualbox-5.0.0/work/VirtualBox-5.0.0/include/VBox/VBoxGuestMangling.h -Ir0drv/linux -I/var/tmp/portage/x11-drivers/xf86-video-virtualbox-5.0.0/work/VirtualBox-5.0.0/src/VBox/Runtime -Iinclude -I/lib/modules/4.1.3-gentoo/build/include -I/lib/modules/4.1.3-gentoo/build/include/asm-i386/mach-default -I/lib/modules/4.1.3-gentoo/build/include/asm-x86/mach-default -I/lib/modules/4.1.3-gentoo/build/include/drm -I/lib/modules/4.1.3-gentoo/build/arch/x86/include -I/lib/modules/4.1.3-gentoo/build/arch/x86/include/asm/mach-default -I/lib/modules/4.1.3-gentoo/build/arch/x86/include/uapi -I/lib/modules/4.1.3-gentoo/build/arch/x86/include/generated -I/lib/modules/4.1.3-gentoo/build/arch/x86/include/generated/uapi -I/lib/modules/4.1.3-gentoo/build/include/uapi -I/lib/modules/4.1.3-gentoo/build/include/generated/uapi -I/lib/modules/4.1.3-gentoo/build/include -I/var/tmp/portage/x11-drivers/xf86-video-virtualbox-5.0.0/work/VirtualBox-5.0.0/out/linux.amd64/release/obj/RuntimeGuestR0/dtrace -I/var/tmp/portage/x11-drivers/xf86-video-virtualbox-5.0.0/work/VirtualBox-5.0.0/include -I/var/tmp/portage/x11-drivers/xf86-video-virtualbox-5.0.0/work/VirtualBox-5.0.0/out/linux.amd64/release -DVBOX -DVBOX_OSE -DVBOX_WITH_64_BITS_GUESTS -DVBOX_WITH_DEBUGGER -DRT_OS_LINUX -D_FILE_OFFSET_BITS=64 -DRT_ARCH_AMD64 -D__AMD64__ -DVBOX_WITH_HARDENING -DRTPATH_APP_PRIVATE=\"/opt/VirtualBox\" -DRTPATH_APP_PRIVATE_ARCH=\"/opt/VirtualBox\" -DRTPATH_SHARED_LIBS=\"/opt/VirtualBox\" -DRTPATH_APP_DOCS=\"/opt/VirtualBox\" -DIN_RING0 -DIN_RT_R0 -DHC_ARCH_BITS=64 -DGC_ARCH_BITS=64 -D__KERNEL__ -DMODULE -DIN_GUEST -DIN_GUEST_R0 -DIN_RT_R0 -DRT_WITH_VBOX -DRT_WITHOUT_NOCRT_WRAPPERS -DRT_NO_EXPORT_SYMBOL -DRT_NO_EXPORT_SYMBOL -DMODULE -DKBUILD_MODNAME=KBUILD_STR\(vboxdrv\) -DKBUILD_BASENAME=KBUILD_STR\(vboxdrv\) -DIN_SUP_R0 -Wp,-MD,/var/tmp/portage/x11-drivers/xf86-video-virtualbox-5.0.0/work/VirtualBox-5.0.0/out/linux.amd64/release/obj/RuntimeGuestR0/common/log/log.o.dep -Wp,-MT,/var/tmp/portage/x11-drivers/xf86-video-virtualbox-5.0.0/work/VirtualBox-5.0.0/out/linux.amd64/release/obj/RuntimeGuestR0/common/log/log.o -Wp,-MP -o /var/tmp/portage/x11-drivers/xf86-video-virtualbox-5.0.0/work/VirtualBox-5.0.0/out/linux.amd64/release/obj/RuntimeGuestR0/common/log/log.o /var/tmp/portage/x11-drivers/xf86-video-virtualbox-5.0.0/work/VirtualBox-5.0.0/src/VBox/Runtime/common/log/log.cpp In file included from /var/tmp/portage/x11-drivers/xf86-video-virtualbox-5.0.0/work/VirtualBox-5.0.0/include/iprt/types.h:116:0, from /var/tmp/portage/x11-drivers/xf86-video-virtualbox-5.0.0/work/VirtualBox-5.0.0/include/iprt/log.h:30, from /var/tmp/portage/x11-drivers/xf86-video-virtualbox-5.0.0/work/VirtualBox-5.0.0/src/VBox/Runtime/common/log/log.cpp:31: /lib/modules/4.1.3-gentoo/build/include/linux/compiler.h:199:29: error: can’t set ‘no_instrument_function’ attribute after definition static __always_inline void __read_once_size(const volatile void *p, void *res, int size) ^ /lib/modules/4.1.3-gentoo/build/include/linux/compiler.h:213:29: error: can’t set ‘no_instrument_function’ attribute after definition static __always_inline void __write_once_size(volatile void *p, void *res, int size) ^ kmk: *** [/var/tmp/portage/x11-drivers/xf86-video-virtualbox-5.0.0/work/VirtualBox-5.0.0/out/linux.amd64/release/obj/RuntimeGuestR0/common/log/log.o] Error 1 Expected Results: no error emerge --info: see attachments (bugzilla complains about length) build log: see attachments
Created attachment 407884 [details] emerge --info required for report
Created attachment 407886 [details] ebuild log (gzipped)
Virtualbox sources try to deal with something like this by re-defining some definitions, but somehow with Gentoo using gcc-4.8.5 the compiler gets confused between "__always_inline" and something with "notrace" and a phase error occurs as shown in the logs. virtualbox-guest-additions also has the same problem.
*** This bug has been marked as a duplicate of bug 550202 ***