diff options
author | Juan Quintela <quintela@redhat.com> | 2009-07-22 22:37:39 +0200 |
---|---|---|
committer | Anthony Liguori <aliguori@us.ibm.com> | 2009-07-27 14:10:56 -0500 |
commit | fa282484b373f4c5751cb46fb2daa8ba0245fe5c (patch) | |
tree | 9f793afab13945c7faa3dacf978301ee779abdfe | |
parent | 4318e1a6900b0e5fe84e3eba51839fe53ea99ff9 (diff) |
generate LDFLAGS for *-linux-user and *-bsd-user in a single place in configure
Remove lots of duplicate code in the process
Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
-rw-r--r-- | Makefile.target | 132 | ||||
-rwxr-xr-x | configure | 39 |
2 files changed, 39 insertions, 132 deletions
diff --git a/Makefile.target b/Makefile.target index b7eabff961..49ba08d8c5 100644 --- a/Makefile.target +++ b/Makefile.target @@ -169,72 +169,6 @@ ifdef CONFIG_LINUX_USER VPATH+=:$(SRC_PATH)/linux-user:$(SRC_PATH)/linux-user/$(TARGET_ABI_DIR) CPPFLAGS+=-I$(SRC_PATH)/linux-user -I$(SRC_PATH)/linux-user/$(TARGET_ABI_DIR) -ifeq ($(ARCH),i386) -ifdef TARGET_GPROF -USE_I386_LD=y -endif -ifdef CONFIG_STATIC -USE_I386_LD=y -endif -ifdef USE_I386_LD -LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld -else -# WARNING: this LDFLAGS is _very_ tricky : qemu is an ELF shared object -# that the kernel ELF loader considers as an executable. I think this -# is the simplest way to make it self virtualizable! -LDFLAGS+=-Wl,-shared -endif -endif - -ifeq ($(ARCH),x86_64) -LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld -endif - -ifeq ($(ARCH),ppc) -LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld -endif - -ifeq ($(ARCH),ppc64) -LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld -endif - -ifeq ($(ARCH),s390) -LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld -endif - -ifeq ($(ARCH),sparc) -# -static is used to avoid g1/g3 usage by the dynamic linker -LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld -static -endif - -ifeq ($(ARCH),sparc64) -LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld -endif - -ifeq ($(ARCH),alpha) -LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld -endif - -ifeq ($(ARCH),ia64) -LDFLAGS+=-Wl,-G0 -Wl,-T,$(SRC_PATH)/$(ARCH).ld -endif - -ifeq ($(ARCH),arm) -LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld -endif - -ifeq ($(ARCH),m68k) -LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld -endif - -ifeq ($(ARCH),mips) -LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld -endif - -ifeq ($(ARCH),mips64) -LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld -endif - # profiling code ifdef TARGET_GPROF LDFLAGS+=-p @@ -304,72 +238,6 @@ ifdef CONFIG_BSD_USER VPATH+=:$(SRC_PATH)/bsd-user CPPFLAGS+=-I$(SRC_PATH)/bsd-user -I$(SRC_PATH)/bsd-user/$(TARGET_ARCH) -ifeq ($(ARCH),i386) -ifdef TARGET_GPROF -USE_I386_LD=y -endif -ifdef CONFIG_STATIC -USE_I386_LD=y -endif -ifdef USE_I386_LD -LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld -else -# WARNING: this LDFLAGS is _very_ tricky : qemu is an ELF shared object -# that the kernel ELF loader considers as an executable. I think this -# is the simplest way to make it self virtualizable! -LDFLAGS+=-Wl,-shared -endif -endif - -ifeq ($(ARCH),x86_64) -LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld -endif - -ifeq ($(ARCH),ppc) -LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld -endif - -ifeq ($(ARCH),ppc64) -LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld -endif - -ifeq ($(ARCH),s390) -LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld -endif - -ifeq ($(ARCH),sparc) -# -static is used to avoid g1/g3 usage by the dynamic linker -LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld -static -endif - -ifeq ($(ARCH),sparc64) -LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld -endif - -ifeq ($(ARCH),alpha) -LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld -endif - -ifeq ($(ARCH),ia64) -LDFLAGS+=-Wl,-G0 -Wl,-T,$(SRC_PATH)/$(ARCH).ld -endif - -ifeq ($(ARCH),arm) -LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld -endif - -ifeq ($(ARCH),m68k) -LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld -endif - -ifeq ($(ARCH),mips) -LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld -endif - -ifeq ($(ARCH),mips64) -LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld -endif - obj-y = main.o bsdload.o elfload.o mmap.o path.o signal.o strace.o syscall.o \ gdbstub.o gdbstub-xml.o ioport-user.o obj-y += uaccess.o @@ -2042,6 +2042,45 @@ if test "$target_bsd_user" = "yes" ; then echo "CONFIG_BSD_USER=y" >> $config_mak fi +# generate LDFLAGS for targets + +ldflags="" +if test "$target_linux_user" = "yes" -o "$target_linux_user" = "yes" ; then + case "$ARCH" in + i386) + if test "$gprof" = "yes" -o "$static" = "yes" ; then + ldflags='-Wl,-T,$(SRC_PATH)/$(ARCH).ld' + else + # WARNING: this LDFLAGS is _very_ tricky : qemu is an ELF shared object + # that the kernel ELF loader considers as an executable. I think this + # is the simplest way to make it self virtualizable! + ldflags='-Wl,-shared' + fi + ;; + sparc) + # -static is used to avoid g1/g3 usage by the dynamic linker + ldflags='-Wl,-T,$(SRC_PATH)/$(ARCH).ld -static' + ;; + ia64) + ldflags='-Wl,-G0 -Wl,-T,$(SRC_PATH)/$(ARCH).ld -static' + ;; + x86_64|ppc|ppc64|s390|sparc64|alpha|arm|m68k|mips|mips64) + ldflags='-Wl,-T,$(SRC_PATH)/$(ARCH).ld' + ;; + esac +fi +if test "$target_softmmu" = "yes" ; then + case "$ARCH" in + ia64) + ldflags='-Wl,-G0 -Wl,-T,$(SRC_PATH)/$(ARCH).ld -static' + ;; + esac +fi + +if test "$ldflags" != "" ; then + echo "LDFLAGS+=$ldflags" >> $config_mak +fi + echo "/* Automatically generated by configure - do not modify */" > $config_h echo "#include \"../config-host.h\"" >> $config_h |