Re: [PATCH] qemu-user: fix build with LLVM lld 10
On 3/27/20 3:51 AM, Laurent Vivier wrote: >> The Plan is still to drop this whole section of code. >> >> However, it's still blocked on getting the x86_64 vsyscall patches upstream. > > Richard, > > will you propose another fix to fix build with LLVM lld 10? Sent. r~
Re: [PATCH] qemu-user: fix build with LLVM lld 10
Daniel P. Berrangé writes: > On Fri, Mar 27, 2020 at 03:44:47PM +, Alex Bennée wrote: >> >> Roger Pau Monné writes: >> >> > On Fri, Mar 27, 2020 at 11:28:04AM +, Alex Bennée wrote: >> >> >> >> Roger Pau Monné writes: >> >> >> >> > On Thu, Mar 26, 2020 at 09:56:38AM -0700, Richard Henderson wrote: >> >> >> On 3/26/20 6:43 AM, Roger Pau Monne wrote: >> >> >> > lld 10.0.0 introduced a new linker option --image-base equivalent to >> >> >> > the GNU -Ttext-segment one, hence use it when available. >> >> >> > >> >> >> > This fixes the build of QEMU on systems using lld 10 or greater. >> >> >> > >> >> >> > Signed-off-by: Dimitry Andric >> >> >> > Signed-off-by: Roger Pau Monné >> >> >> > --- >> >> >> > Cc: Laurent Vivier >> >> >> > Cc: Richard Henderson >> >> >> > Cc: "Philippe Mathieu-Daudé" >> >> >> > Cc: Paolo Bonzini >> >> >> > Cc: "Daniel P. Berrangé" >> >> >> > --- >> >> >> >> >> >> The Plan is still to drop this whole section of code. >> >> >> >> >> >> However, it's still blocked on getting the x86_64 vsyscall patches >> >> >> upstream. >> >> > >> >> > While this doesn't materialize, could it be possible to get this patch >> >> > accepted? >> >> > >> >> > This is currently blocking the build of QEMU on FreeBSD HEAD, which >> >> > has already switched to LLVM 10.0.0. >> >> >> >> I think the vsyscall patch has just been merged, however way I don't >> >> think targeting HEAD of a OS release during the rc phase is appropriate. >> > >> > I'm not sure I understand what you mean. If QEMU doesn't build on >> > FreeBSD HEAD it won't build on the next release. Also the LLVM >> > toolchain used is not a development version AFAIK, but the actual >> > 10.0.0 release, which QEMU should aim to support? >> >> QEMU's supported build platforms are based on what is currently shipping >> as stable versions: >> >> https://www.qemu.org/docs/master/system/build-platforms.html > > FWIW, when I wrote that my intention was *not* to exclude the bleeding > edge distro development branches. > > Obviously we can break on those distros at any time as they're moving > targets, but IMHO we should treat bugs as we would for any other > released distros and aim to fix them promptly when bugs occurr. Sure - I think there are now patches incoming from Richard to delete the linker code which should meet the criteria for an RC fix, especially if they solve the LLVM 10.0 problem as well. -- Alex Bennée
Re: [PATCH] qemu-user: fix build with LLVM lld 10
On Fri, Mar 27, 2020 at 03:44:47PM +, Alex Bennée wrote: > > Roger Pau Monné writes: > > > On Fri, Mar 27, 2020 at 11:28:04AM +, Alex Bennée wrote: > >> > >> Roger Pau Monné writes: > >> > >> > On Thu, Mar 26, 2020 at 09:56:38AM -0700, Richard Henderson wrote: > >> >> On 3/26/20 6:43 AM, Roger Pau Monne wrote: > >> >> > lld 10.0.0 introduced a new linker option --image-base equivalent to > >> >> > the GNU -Ttext-segment one, hence use it when available. > >> >> > > >> >> > This fixes the build of QEMU on systems using lld 10 or greater. > >> >> > > >> >> > Signed-off-by: Dimitry Andric > >> >> > Signed-off-by: Roger Pau Monné > >> >> > --- > >> >> > Cc: Laurent Vivier > >> >> > Cc: Richard Henderson > >> >> > Cc: "Philippe Mathieu-Daudé" > >> >> > Cc: Paolo Bonzini > >> >> > Cc: "Daniel P. Berrangé" > >> >> > --- > >> >> > >> >> The Plan is still to drop this whole section of code. > >> >> > >> >> However, it's still blocked on getting the x86_64 vsyscall patches > >> >> upstream. > >> > > >> > While this doesn't materialize, could it be possible to get this patch > >> > accepted? > >> > > >> > This is currently blocking the build of QEMU on FreeBSD HEAD, which > >> > has already switched to LLVM 10.0.0. > >> > >> I think the vsyscall patch has just been merged, however way I don't > >> think targeting HEAD of a OS release during the rc phase is appropriate. > > > > I'm not sure I understand what you mean. If QEMU doesn't build on > > FreeBSD HEAD it won't build on the next release. Also the LLVM > > toolchain used is not a development version AFAIK, but the actual > > 10.0.0 release, which QEMU should aim to support? > > QEMU's supported build platforms are based on what is currently shipping > as stable versions: > > https://www.qemu.org/docs/master/system/build-platforms.html FWIW, when I wrote that my intention was *not* to exclude the bleeding edge distro development branches. Obviously we can break on those distros at any time as they're moving targets, but IMHO we should treat bugs as we would for any other released distros and aim to fix them promptly when bugs occurr. Regards, Daniel -- |: https://berrange.com -o-https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o-https://fstop138.berrange.com :| |: https://entangle-photo.org-o-https://www.instagram.com/dberrange :|
Re: [PATCH] qemu-user: fix build with LLVM lld 10
Roger Pau Monné writes: > On Fri, Mar 27, 2020 at 11:28:04AM +, Alex Bennée wrote: >> >> Roger Pau Monné writes: >> >> > On Thu, Mar 26, 2020 at 09:56:38AM -0700, Richard Henderson wrote: >> >> On 3/26/20 6:43 AM, Roger Pau Monne wrote: >> >> > lld 10.0.0 introduced a new linker option --image-base equivalent to >> >> > the GNU -Ttext-segment one, hence use it when available. >> >> > >> >> > This fixes the build of QEMU on systems using lld 10 or greater. >> >> > >> >> > Signed-off-by: Dimitry Andric >> >> > Signed-off-by: Roger Pau Monné >> >> > --- >> >> > Cc: Laurent Vivier >> >> > Cc: Richard Henderson >> >> > Cc: "Philippe Mathieu-Daudé" >> >> > Cc: Paolo Bonzini >> >> > Cc: "Daniel P. Berrangé" >> >> > --- >> >> >> >> The Plan is still to drop this whole section of code. >> >> >> >> However, it's still blocked on getting the x86_64 vsyscall patches >> >> upstream. >> > >> > While this doesn't materialize, could it be possible to get this patch >> > accepted? >> > >> > This is currently blocking the build of QEMU on FreeBSD HEAD, which >> > has already switched to LLVM 10.0.0. >> >> I think the vsyscall patch has just been merged, however way I don't >> think targeting HEAD of a OS release during the rc phase is appropriate. > > I'm not sure I understand what you mean. If QEMU doesn't build on > FreeBSD HEAD it won't build on the next release. Also the LLVM > toolchain used is not a development version AFAIK, but the actual > 10.0.0 release, which QEMU should aim to support? QEMU's supported build platforms are based on what is currently shipping as stable versions: https://www.qemu.org/docs/master/system/build-platforms.html > Can this be applied to stable branches then please if QEMU master > doesn't have that chunk in configure anymore? Usually platforms released after a given QEMU release will just carry their own patches in the local packaging. When is the current HEAD due to be cut as the next release? The schedule for QEMU's release is documented on out planning pages: https://wiki.qemu.org/Planning/5.0 > FWIW, I've just looked at configure from git master branch and it > still has that exact same linker detection chunk that this patch is > trying to fix. Now the vsyscalls patch is in this can be cleaned up I think. Richard? -- Alex Bennée
Re: [PATCH] qemu-user: fix build with LLVM lld 10
On Fri, Mar 27, 2020 at 11:28:04AM +, Alex Bennée wrote: > > Roger Pau Monné writes: > > > On Thu, Mar 26, 2020 at 09:56:38AM -0700, Richard Henderson wrote: > >> On 3/26/20 6:43 AM, Roger Pau Monne wrote: > >> > lld 10.0.0 introduced a new linker option --image-base equivalent to > >> > the GNU -Ttext-segment one, hence use it when available. > >> > > >> > This fixes the build of QEMU on systems using lld 10 or greater. > >> > > >> > Signed-off-by: Dimitry Andric > >> > Signed-off-by: Roger Pau Monné > >> > --- > >> > Cc: Laurent Vivier > >> > Cc: Richard Henderson > >> > Cc: "Philippe Mathieu-Daudé" > >> > Cc: Paolo Bonzini > >> > Cc: "Daniel P. Berrangé" > >> > --- > >> > >> The Plan is still to drop this whole section of code. > >> > >> However, it's still blocked on getting the x86_64 vsyscall patches > >> upstream. > > > > While this doesn't materialize, could it be possible to get this patch > > accepted? > > > > This is currently blocking the build of QEMU on FreeBSD HEAD, which > > has already switched to LLVM 10.0.0. > > I think the vsyscall patch has just been merged, however way I don't > think targeting HEAD of a OS release during the rc phase is appropriate. I'm not sure I understand what you mean. If QEMU doesn't build on FreeBSD HEAD it won't build on the next release. Also the LLVM toolchain used is not a development version AFAIK, but the actual 10.0.0 release, which QEMU should aim to support? Can this be applied to stable branches then please if QEMU master doesn't have that chunk in configure anymore? FWIW, I've just looked at configure from git master branch and it still has that exact same linker detection chunk that this patch is trying to fix. Thanks, Roger.
Re: [PATCH] qemu-user: fix build with LLVM lld 10
Roger Pau Monné writes: > On Thu, Mar 26, 2020 at 09:56:38AM -0700, Richard Henderson wrote: >> On 3/26/20 6:43 AM, Roger Pau Monne wrote: >> > lld 10.0.0 introduced a new linker option --image-base equivalent to >> > the GNU -Ttext-segment one, hence use it when available. >> > >> > This fixes the build of QEMU on systems using lld 10 or greater. >> > >> > Signed-off-by: Dimitry Andric >> > Signed-off-by: Roger Pau Monné >> > --- >> > Cc: Laurent Vivier >> > Cc: Richard Henderson >> > Cc: "Philippe Mathieu-Daudé" >> > Cc: Paolo Bonzini >> > Cc: "Daniel P. Berrangé" >> > --- >> >> The Plan is still to drop this whole section of code. >> >> However, it's still blocked on getting the x86_64 vsyscall patches upstream. > > While this doesn't materialize, could it be possible to get this patch > accepted? > > This is currently blocking the build of QEMU on FreeBSD HEAD, which > has already switched to LLVM 10.0.0. I think the vsyscall patch has just been merged, however way I don't think targeting HEAD of a OS release during the rc phase is appropriate. -- Alex Bennée
Re: [PATCH] qemu-user: fix build with LLVM lld 10
Le 26/03/2020 à 17:56, Richard Henderson a écrit : > On 3/26/20 6:43 AM, Roger Pau Monne wrote: >> lld 10.0.0 introduced a new linker option --image-base equivalent to >> the GNU -Ttext-segment one, hence use it when available. >> >> This fixes the build of QEMU on systems using lld 10 or greater. >> >> Signed-off-by: Dimitry Andric >> Signed-off-by: Roger Pau Monné >> --- >> Cc: Laurent Vivier >> Cc: Richard Henderson >> Cc: "Philippe Mathieu-Daudé" >> Cc: Paolo Bonzini >> Cc: "Daniel P. Berrangé" >> --- > > The Plan is still to drop this whole section of code. > > However, it's still blocked on getting the x86_64 vsyscall patches upstream. Richard, will you propose another fix to fix build with LLVM lld 10? Thanks, Laurent
Re: [PATCH] qemu-user: fix build with LLVM lld 10
On Thu, Mar 26, 2020 at 09:56:38AM -0700, Richard Henderson wrote: > On 3/26/20 6:43 AM, Roger Pau Monne wrote: > > lld 10.0.0 introduced a new linker option --image-base equivalent to > > the GNU -Ttext-segment one, hence use it when available. > > > > This fixes the build of QEMU on systems using lld 10 or greater. > > > > Signed-off-by: Dimitry Andric > > Signed-off-by: Roger Pau Monné > > --- > > Cc: Laurent Vivier > > Cc: Richard Henderson > > Cc: "Philippe Mathieu-Daudé" > > Cc: Paolo Bonzini > > Cc: "Daniel P. Berrangé" > > --- > > The Plan is still to drop this whole section of code. > > However, it's still blocked on getting the x86_64 vsyscall patches upstream. While this doesn't materialize, could it be possible to get this patch accepted? This is currently blocking the build of QEMU on FreeBSD HEAD, which has already switched to LLVM 10.0.0. Thanks, Roger.
Re: [PATCH] qemu-user: fix build with LLVM lld 10
On 3/26/20 6:43 AM, Roger Pau Monne wrote: > lld 10.0.0 introduced a new linker option --image-base equivalent to > the GNU -Ttext-segment one, hence use it when available. > > This fixes the build of QEMU on systems using lld 10 or greater. > > Signed-off-by: Dimitry Andric > Signed-off-by: Roger Pau Monné > --- > Cc: Laurent Vivier > Cc: Richard Henderson > Cc: "Philippe Mathieu-Daudé" > Cc: Paolo Bonzini > Cc: "Daniel P. Berrangé" > --- The Plan is still to drop this whole section of code. However, it's still blocked on getting the x86_64 vsyscall patches upstream. r~
[PATCH] qemu-user: fix build with LLVM lld 10
lld 10.0.0 introduced a new linker option --image-base equivalent to the GNU -Ttext-segment one, hence use it when available. This fixes the build of QEMU on systems using lld 10 or greater. Signed-off-by: Dimitry Andric Signed-off-by: Roger Pau Monné --- Cc: Laurent Vivier Cc: Richard Henderson Cc: "Philippe Mathieu-Daudé" Cc: Paolo Bonzini Cc: "Daniel P. Berrangé" --- configure | 42 +++--- 1 file changed, 23 insertions(+), 19 deletions(-) diff --git a/configure b/configure index da09c35895..92d57d84fa 100755 --- a/configure +++ b/configure @@ -6514,27 +6514,31 @@ if ( [ "$linux_user" = yes ] || [ "$bsd_user" = yes ] ) && [ "$pie" = no ]; then cat > $TMPC &1; then -error_exit \ -"We need to link the QEMU user mode binaries at a" \ -"specific text address. Unfortunately your linker" \ -"doesn't support either the -Ttext-segment option or" \ -"printing the default linker script with --verbose." \ -"If you don't want the user mode binaries, pass the" \ -"--disable-user option to configure." - fi + textseg_ldflags="-Wl,-Ttext-segment=$textseg_addr" + if ! compile_prog "" "$textseg_ldflags"; then +# In case ld does not support -Ttext-segment, edit the default linker +# script via sed to set the .text start addr. This is needed on FreeBSD +# at least. +if ! $ld --verbose >/dev/null 2>&1; then + error_exit \ + "We need to link the QEMU user mode binaries at a" \ + "specific text address. Unfortunately your linker" \ + "doesn't support either the --image-base or -Ttext-segment" \ + "options or printing the default linker script with" \ + "--verbose. If you don't want the user mode binaries," \ + "pass the --disable-user option to configure." +fi - $ld --verbose | sed \ --e '1,/==/d' \ --e '/==/,$d' \ --e "s/[.] = [0-9a-fx]* [+] SIZEOF_HEADERS/. = $textseg_addr + SIZEOF_HEADERS/" \ --e "s/__executable_start = [0-9a-fx]*/__executable_start = $textseg_addr/" > config-host.ld - textseg_ldflags="-Wl,-T../config-host.ld" +$ld --verbose | sed \ + -e '1,/==/d' \ + -e '/==/,$d' \ + -e "s/[.] = [0-9a-fx]* [+] SIZEOF_HEADERS/. = $textseg_addr + SIZEOF_HEADERS/" \ + -e "s/__executable_start = [0-9a-fx]*/__executable_start = $textseg_addr/" > config-host.ld +textseg_ldflags="-Wl,-T../config-host.ld" + fi fi fi fi -- 2.26.0