qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v2 1/7] configure: Drop adjustment of textseg


From: Alex Bennée
Subject: Re: [PATCH v2 1/7] configure: Drop adjustment of textseg
Date: Tue, 07 Jan 2020 11:34:11 +0000
User-agent: mu4e 1.3.6; emacs 28.0.50

Richard Henderson <address@hidden> writes:

> This adjustment was random and unnecessary.  The user mode
> startup code in probe_guest_base() will choose a value for
> guest_base that allows the host qemu binary to not conflict
> with the guest binary.
>
> With modern distributions, this isn't even used, as the default
> is PIE, which does the same job in a more portable way.
>
> Reviewed-by: Thomas Huth <address@hidden>
> Signed-off-by: Richard Henderson <address@hidden>

Reviewed-by: Alex Bennée <address@hidden>

> ---
> v2: Remove mention of config-host.ld from make distclean
> ---
>  Makefile  |  2 +-
>  configure | 47 -----------------------------------------------
>  2 files changed, 1 insertion(+), 48 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index 1361def144..adf83f75a1 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -735,7 +735,7 @@ rm -f $(MANUAL_BUILDDIR)/$1/objects.inv 
> $(MANUAL_BUILDDIR)/$1/searchindex.js $(M
>  endef
>  
>  distclean: clean
> -     rm -f config-host.mak config-host.h* config-host.ld $(DOCS) 
> qemu-options.texi qemu-img-cmds.texi qemu-monitor.texi qemu-monitor-info.texi
> +     rm -f config-host.mak config-host.h* $(DOCS) qemu-options.texi 
> qemu-img-cmds.texi qemu-monitor.texi qemu-monitor-info.texi
>       rm -f tests/tcg/config-*.mak
>       rm -f config-all-devices.mak config-all-disas.mak config.status
>       rm -f $(SUBDIR_DEVICES_MAK)
> diff --git a/configure b/configure
> index e0c66ee9b6..30e3875c6b 100755
> --- a/configure
> +++ b/configure
> @@ -6298,49 +6298,6 @@ if test "$cpu" = "s390x" ; then
>    fi
>  fi
>  
> -# Probe for the need for relocating the user-only binary.
> -if ( [ "$linux_user" = yes ] || [ "$bsd_user" = yes ] ) && [ "$pie" = no ]; 
> then
> -  textseg_addr=
> -  case "$cpu" in
> -    arm | i386 | ppc* | s390* | sparc* | x86_64 | x32)
> -      # ??? Rationale for choosing this address
> -      textseg_addr=0x60000000
> -      ;;
> -    mips)
> -      # A 256M aligned address, high in the address space, with enough
> -      # room for the code_gen_buffer above it before the stack.
> -      textseg_addr=0x60000000
> -      ;;
> -  esac
> -  if [ -n "$textseg_addr" ]; then
> -    cat > $TMPC <<EOF
> -    int main(void) { return 0; }
> -EOF
> -    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 -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
> -
> -      $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
> -
>  # Check that the C++ compiler exists and works with the C compiler.
>  # All the QEMU_CXXFLAGS are based on QEMU_CFLAGS. Keep this at the end to 
> don't miss any other that could be added.
>  if has $cxx; then
> @@ -7903,10 +7860,6 @@ if test "$gprof" = "yes" ; then
>    fi
>  fi
>  
> -if test "$target_linux_user" = "yes" || test "$target_bsd_user" = "yes" ; 
> then
> -  ldflags="$ldflags $textseg_ldflags"
> -fi
> -
>  # Newer kernels on s390 check for an S390_PGSTE program header and
>  # enable the pgste page table extensions in that case. This makes
>  # the vm.allocate_pgste sysctl unnecessary. We enable this program


-- 
Alex Bennée



reply via email to

[Prev in Thread] Current Thread [Next in Thread]