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>
This commit is contained in:
		
							parent
							
								
									4318e1a690
								
							
						
					
					
						commit
						fa282484b3
					
				
							
								
								
									
										132
									
								
								Makefile.target
									
									
									
									
									
								
							
							
						
						
									
										132
									
								
								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 | ||||
|  | ||||
							
								
								
									
										39
									
								
								configure
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										39
									
								
								configure
									
									
									
									
										vendored
									
									
								
							| @ -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 | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Juan Quintela
						Juan Quintela