Date: Mon, 27 Feb 2023 14:58:44 -0800 From: Kevin Oberman <rkoberman@gmail.com> To: Brooks Davis <brooks@freebsd.org> Cc: "freebsd-emulation@freebsd.org" <emulation@freebsd.org> Subject: Re: virtualbon-ose-kmod build fails with 14-CURRENT and llvm15 Message-ID: <CAN6yY1sSD6i85Bc8K409wR4W%2Bperxk-A5OM5KQg8m5yaKfdXxQ@mail.gmail.com> In-Reply-To: <Y/z2AGoKZ5gtu0Ks@spindle.one-eyed-alien.net> References: <CAN6yY1td9cRtj3BzMw-eAHS4HCAv049w3rjOpmjq-fCpmfp2Pw@mail.gmail.com> <Y/z2AGoKZ5gtu0Ks@spindle.one-eyed-alien.net>
next in thread | previous in thread | raw e-mail | index | archive | help
--000000000000b58b6b05f5b66c56 Content-Type: text/plain; charset="UTF-8" On Mon, Feb 27, 2023 at 10:27 AM Brooks Davis <brooks@freebsd.org> wrote: > On Sun, Feb 26, 2023 at 09:45:34AM -0800, Kevin Oberman wrote: > > I updated my system yesterday. I then tried to rebuild > virtualbox-ose-kmod. > > This fails under llvm15. The same source code built successfully with > > llvm14, so I assume that the code has a problem with 15. I suspect that > 15 > > changed some default and declared this as an error, but may be "fixed" > with > > the proper build option. > > > > Here is the command and error that I see: > > > > cc -O2 -pipe -fno-strict-aliasing -DRT_OS_FREEBSD -DIN_RING0 -DIN_RT_R0 > > -DIN_SUP_R0 -DSUPDRV_WITH_RELEASE_LOGGER -DVBOX -DRT_WITH_VBOX -w > > -DVBOX_WITH_HARDENING -DVBOX_WITH_64_BITS_GUESTS -DRT_ARCH_AMD64 -Werror > > -D_KERNEL -DKLD_MODULE -nostdinc -Iinclude -I. -Ir0drv -include > > > /usr/ports/emulators/virtualbox-ose-kmod/work/VirtualBox-6.1.36/out/freebsd.amd64/release/bin/src/vboxdrv/opt_global.h > > -I. -I/usr/src/sys -I/usr/src/sys/contrib/ck/include -fno-common > > -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer > > -fdebug-prefix-map=./machine=/usr/src/sys/amd64/include > > -fdebug-prefix-map=./x86=/usr/src/sys/x86/include > > -fdebug-prefix-map=./i386=/usr/src/sys/i386/include -MD > > -MF.depend.SUPDrv-freebsd.o -MTSUPDrv-freebsd.o -mcmodel=kernel > > -mno-red-zone -mno-mmx -mno-sse -msoft-float > > -fno-asynchronous-unwind-tables -ffreestanding -fwrapv -fstack-protector > > -Wall -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes > > -Wpointer-arith -Wcast-qual -Wundef -Wno-pointer-sign > > -D__printf__=__freebsd_kprintf__ -Wmissing-include-dirs > > -fdiagnostics-show-option -Wno-unknown-pragmas > > -Wno-error=tautological-compare -Wno-error=empty-body > > -Wno-error=parentheses-equality -Wno-error=unused-function > > -Wno-error=pointer-sign -Wno-error=shift-negative-value > > -Wno-address-of-packed-member -Wno-error=array-parameter > > -Wno-error=deprecated-non-prototype -Wno-error=strict-prototypes > > -Wno-error=unused-but-set-variable -Wno-format-zero-length -mno-aes > > -mno-avx -std=iso9899:1999 -c > > > /usr/ports/emulators/virtualbox-ose-kmod/work/VirtualBox-6.1.36/out/freebsd.amd64/release/bin/src/vboxdrv/freebsd/SUPDrv-freebsd.c > > -o SUPDrv-freebsd.o > > > /usr/ports/emulators/virtualbox-ose-kmod/work/VirtualBox-6.1.36/out/freebsd.amd64/release/bin/src/vboxdrv/freebsd/SUPDrv-freebsd.c:433:50: > > error: incompatible pointer to integer conversion passing 'void *' to > > parameter of type 'RTR3PTR' (aka 'unsigned long') [-Wint-conversion] > > if (RT_FAILURE(RTR0MemUserCopyFrom(&Hdr, pvUser, sizeof(Hdr)))) > > ^~~~~~ > > include/iprt/errcore.h:99:58: note: expanded from macro 'RT_FAILURE' > > > > Any help appreciated. I really need virtualbox. I think I may force it to > > build with llvm14, but I's prefer a fix to build with llvm15. > > Assuming the code works in practice, it should just be a matter of > adding a cast (void *)(uintptr_t)pvUser. > > -- Brooks > Thanks to both of you. Fixing the code seems preferable to patching and rebuilding llvm15, so I tried, but it made no difference, other than the cast, but I may have truncated the error message too soon. Here is the complete message after the patch: /usr/ports/emulators/virtualbox-ose-kmod/work/VirtualBox-6.1.36/out/freebsd.amd64/release/bin/src/vboxdrv/freebsd/SUPDrv-freebsd.c:433:50: error: incompatible pointer to integer conversion passing 'void *' to parameter of type 'RTR3PTR' (aka 'unsigned long') [-Wint-conversion] if (RT_FAILURE(RTR0MemUserCopyFrom(&Hdr, (void *)(uintptr_t)pvUser, sizeof(Hdr)))) ^~~~~~~~~~~~~~~~~~~~~~~~~ include/iprt/errcore.h:99:58: note: expanded from macro 'RT_FAILURE' #define RT_FAILURE(rc) ( RT_UNLIKELY(!RT_SUCCESS_NP(rc)) ) ^~ include/iprt/errcore.h:80:38: note: expanded from macro 'RT_SUCCESS_NP' # define RT_SUCCESS_NP(rc) ( (int)(rc) >= VINF_SUCCESS ) ^~ include/iprt/cdefs.h:1826:53: note: expanded from macro 'RT_UNLIKELY' # define RT_UNLIKELY(expr) __builtin_expect(!!(expr), 0) ^~~~ include/iprt/mem.h:756:56: note: passing argument to parameter 'R3PtrSrc' here RTR0DECL(int) RTR0MemUserCopyFrom(void *pvDst, RTR3PTR R3PtrSrc, size_t cb); ^ Please understand that I am not a C programmer. Looking at this leaves me a bit lost. -- Kevin Oberman, Part time kid herder and retired Network Engineer E-mail: rkoberman@gmail.com PGP Fingerprint: D03FB98AFA78E3B78C1694B318AB39EF1B055683 --000000000000b58b6b05f5b66c56 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr"><div dir=3D"ltr"><div class=3D"gmail_default" style=3D"fon= t-family:tahoma,sans-serif;font-size:small">On Mon, Feb 27, 2023 at 10:27 A= M Brooks Davis <<a href=3D"mailto:brooks@freebsd.org">brooks@freebsd.org= </a>> wrote:</div></div><div class=3D"gmail_quote"><blockquote class=3D"= gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(20= 4,204,204);padding-left:1ex">On Sun, Feb 26, 2023 at 09:45:34AM -0800, Kevi= n Oberman wrote:<br> > I updated my system yesterday. I then tried to rebuild virtualbox-ose-= kmod.<br> > This fails under llvm15. The same source code built successfully with<= br> > llvm14, so I assume that the code has a problem with 15. I suspect tha= t 15<br> > changed some default and declared this as an error, but may be "f= ixed" with<br> > the proper build option.<br> > <br> > Here is the command and error that I see:<br> > <br> > cc=C2=A0 -O2 -pipe -fno-strict-aliasing -DRT_OS_FREEBSD -DIN_RING0 -DI= N_RT_R0<br> > -DIN_SUP_R0 -DSUPDRV_WITH_RELEASE_LOGGER -DVBOX -DRT_WITH_VBOX -w<br> > -DVBOX_WITH_HARDENING -DVBOX_WITH_64_BITS_GUESTS -DRT_ARCH_AMD64=C2=A0= -Werror<br> > -D_KERNEL -DKLD_MODULE -nostdinc=C2=A0 -Iinclude -I. -Ir0drv -include<= br> > /usr/ports/emulators/virtualbox-ose-kmod/work/VirtualBox-6.1.36/out/fr= eebsd.amd64/release/bin/src/vboxdrv/opt_global.h<br> > -I. -I/usr/src/sys -I/usr/src/sys/contrib/ck/include -fno-common<br> >=C2=A0 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer<br> > -fdebug-prefix-map=3D./machine=3D/usr/src/sys/amd64/include<br> > -fdebug-prefix-map=3D./x86=3D/usr/src/sys/x86/include<br> > -fdebug-prefix-map=3D./i386=3D/usr/src/sys/i386/include=C2=A0 =C2=A0 = =C2=A0-MD<br> >=C2=A0 -MF.depend.SUPDrv-freebsd.o -MTSUPDrv-freebsd.o -mcmodel=3Dkerne= l<br> > -mno-red-zone -mno-mmx -mno-sse -msoft-float<br> >=C2=A0 -fno-asynchronous-unwind-tables -ffreestanding -fwrapv -fstack-p= rotector<br> > -Wall -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes<br> > -Wpointer-arith -Wcast-qual -Wundef -Wno-pointer-sign<br> > -D__printf__=3D__freebsd_kprintf__ -Wmissing-include-dirs<br> > -fdiagnostics-show-option -Wno-unknown-pragmas<br> > -Wno-error=3Dtautological-compare -Wno-error=3Dempty-body<br> > -Wno-error=3Dparentheses-equality -Wno-error=3Dunused-function<br> > -Wno-error=3Dpointer-sign -Wno-error=3Dshift-negative-value<br> > -Wno-address-of-packed-member -Wno-error=3Darray-parameter<br> > -Wno-error=3Ddeprecated-non-prototype -Wno-error=3Dstrict-prototypes<b= r> > -Wno-error=3Dunused-but-set-variable -Wno-format-zero-length=C2=A0 =C2= =A0-mno-aes<br> > -mno-avx=C2=A0 -std=3Diso9899:1999 -c<br> > /usr/ports/emulators/virtualbox-ose-kmod/work/VirtualBox-6.1.36/out/fr= eebsd.amd64/release/bin/src/vboxdrv/freebsd/SUPDrv-freebsd.c<br> > -o SUPDrv-freebsd.o<br> > /usr/ports/emulators/virtualbox-ose-kmod/work/VirtualBox-6.1.36/out/fr= eebsd.amd64/release/bin/src/vboxdrv/freebsd/SUPDrv-freebsd.c:433:50:<br> > error: incompatible pointer to integer conversion passing 'void *&= #39; to<br> > parameter of type 'RTR3PTR' (aka 'unsigned long') [-Wi= nt-conversion]<br> >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (RT_FAILURE(RTR0MemUserCopyFrom(&a= mp;Hdr, pvUser, sizeof(Hdr))))<br> >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ^~~~~~<br> > include/iprt/errcore.h:99:58: note: expanded from macro 'RT_FAILUR= E'<br> > <br> > Any help appreciated. I really need virtualbox. I think I may force it= to<br> > build with llvm14, but I's prefer a fix to build with llvm15.<br> <br> Assuming the code works in practice, it should just be a matter of<br> adding a cast (void *)(uintptr_t)pvUser.<br> <br> -- Brooks<br></blockquote><div>=C2=A0</div></div><div style=3D"font-family:= tahoma,sans-serif;font-size:small" class=3D"gmail_default">Thanks to both o= f you. Fixing the code seems preferable to patching and rebuilding llvm15, = so I tried, but it made no difference, other than the cast, but I may have = truncated the error message too soon. Here is the complete message after th= e patch:</div><div style=3D"font-family:tahoma,sans-serif;font-size:small" = class=3D"gmail_default">/usr/ports/emulators/virtualbox-ose-kmod/work/Virtu= alBox-6.1.36/out/freebsd.amd64/release/bin/src/vboxdrv/freebsd/SUPDrv-freeb= sd.c:433:50: error: incompatible pointer to integer conversion passing '= ;void *' to parameter of type 'RTR3PTR' (aka 'unsigned long= ') [-Wint-conversion]<br>=C2=A0<span style=3D"font-family:monospace"> = =C2=A0 =C2=A0 =C2=A0 if (RT_FAILURE(RTR0MemUserCopyFrom(&Hdr, (void *)(= uintptr_t)pvUser, sizeof(Hdr))))<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0^~~~~~~~~~~~~= ~~~~~~~~~~~~<br>include/iprt/errcore.h:99:58: note: expanded from macro = 9;RT_FAILURE'<br>#define RT_FAILURE(rc) =C2=A0 =C2=A0 =C2=A0( RT_UNLIKE= LY(!RT_SUCCESS_NP(rc)) )<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0^~<br>include/iprt/errcore.h:80:38: note: expanded from macro = 9;RT_SUCCESS_NP'<br># define RT_SUCCESS_NP(rc) =C2=A0 ( (int)(rc) >= =3D VINF_SUCCESS )<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0^~<br>include/iprt/cdefs.h:1826:53: note: expanded from macro 'RT= _UNLIKELY'<br># =C2=A0define RT_UNLIKELY(expr) =C2=A0 =C2=A0 __builtin_= expect(!!(expr), 0)<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ^~~~<br>include/ipr= t/mem.h:756:56: note: passing argument to parameter 'R3PtrSrc' here= <br>RTR0DECL(int) RTR0MemUserCopyFrom(void *pvDst, RTR3PTR R3PtrSrc, size_t= cb);</span></div><div style=3D"font-family:tahoma,sans-serif;font-size:sma= ll" class=3D"gmail_default"><span style=3D"font-family:monospace">=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0 ^<br></span></div><div style=3D"font-family:tahoma,sans-ser= if;font-size:small" class=3D"gmail_default"><br></div><div style=3D"font-si= ze:small" class=3D"gmail_default"><span style=3D"font-family:tahoma,sans-se= rif">Please understand that I am not a C programmer.=C2=A0 Looking at this = leaves me a bit lost. <br clear=3D"all"></span></div>-- <br><div dir=3D"ltr= " class=3D"gmail_signature"><div dir=3D"ltr"><div><div dir=3D"ltr"><div><di= v dir=3D"ltr"><div><div dir=3D"ltr">Kevin Oberman, Part time kid herder and= retired Network Engineer<br>E-mail: <a href=3D"mailto:rkoberman@gmail.com"= target=3D"_blank">rkoberman@gmail.com</a><br></div><div>PGP Fingerprint: D= 03FB98AFA78E3B78C1694B318AB39EF1B055683</div></div></div></div></div></div>= </div></div></div> --000000000000b58b6b05f5b66c56--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAN6yY1sSD6i85Bc8K409wR4W%2Bperxk-A5OM5KQg8m5yaKfdXxQ>