summaryrefslogtreecommitdiffstats
path: root/configure
diff options
context:
space:
mode:
authorJuan Quintela <quintela@redhat.com>2009-07-22 22:37:40 +0200
committerAnthony Liguori <aliguori@us.ibm.com>2009-07-27 14:10:56 -0500
commit4bf6b55b346d33ff16dd25f75bbea8e21f95dfa6 (patch)
tree14989fe5b367b33be294adca04fc342203c76be4 /configure
parentfa282484b373f4c5751cb46fb2daa8ba0245fe5c (diff)
downloadhqemu-4bf6b55b346d33ff16dd25f75bbea8e21f95dfa6.zip
hqemu-4bf6b55b346d33ff16dd25f75bbea8e21f95dfa6.tar.gz
set SEARCH_PATH for the linker script from output of ld --verbose -v
Signed-off-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Diffstat (limited to 'configure')
-rwxr-xr-xconfigure23
1 files changed, 18 insertions, 5 deletions
diff --git a/configure b/configure
index 02cf9e7..8160bed 100755
--- a/configure
+++ b/configure
@@ -1477,6 +1477,7 @@ fi
config_host_mak="config-host.mak"
config_host_h="config-host.h"
+config_host_ld="config-host.ld"
#echo "Creating $config_host_mak and $config_host_h"
@@ -1784,6 +1785,18 @@ if test -f ${config_host_h}~ ; then
fi
fi
+# generate list of library paths for linker script
+
+$ld --verbose -v 2> /dev/null | grep SEARCH_DIR > ${config_host_ld}
+
+if test -f ${config_host_ld}~ ; then
+ if cmp -s $config_host_ld ${config_host_ld}~ ; then
+ mv ${config_host_ld}~ $config_host_ld
+ else
+ rm ${config_host_ld}~
+ fi
+fi
+
for target in $target_list; do
target_dir="$target"
config_mak=$target_dir/config.mak
@@ -2049,7 +2062,7 @@ 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'
+ ldflags='-Wl,-T../config-host.ld -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
@@ -2059,20 +2072,20 @@ if test "$target_linux_user" = "yes" -o "$target_linux_user" = "yes" ; then
;;
sparc)
# -static is used to avoid g1/g3 usage by the dynamic linker
- ldflags='-Wl,-T,$(SRC_PATH)/$(ARCH).ld -static'
+ ldflags='-Wl,-T../config-host.ld -Wl,-T,$(SRC_PATH)/$(ARCH).ld -static'
;;
ia64)
- ldflags='-Wl,-G0 -Wl,-T,$(SRC_PATH)/$(ARCH).ld -static'
+ ldflags='-Wl,-G0 -Wl,-T../config-host.ld -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'
+ ldflags='-Wl,-T../config-host.ld -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'
+ ldflags='-Wl,-G0 -Wl,-T../config-host.ld -Wl,-T,$(SRC_PATH)/$(ARCH).ld -static'
;;
esac
fi
OpenPOWER on IntegriCloud