aboutsummaryrefslogtreecommitdiffstats
path: root/config
diff options
context:
space:
mode:
authorkfraser@localhost.localdomain <kfraser@localhost.localdomain>2006-10-18 16:56:27 +0100
committerkfraser@localhost.localdomain <kfraser@localhost.localdomain>2006-10-18 16:56:27 +0100
commitea847a59dc7db35e48d15faf01ca81ba982675c8 (patch)
tree55ea2a33af872666068c03e1d25ec359f545b149 /config
parent8917832a55d01ea649c7d6a0265ccb3177098280 (diff)
downloadxen-ea847a59dc7db35e48d15faf01ca81ba982675c8.tar.gz
xen-ea847a59dc7db35e48d15faf01ca81ba982675c8.tar.bz2
xen-ea847a59dc7db35e48d15faf01ca81ba982675c8.zip
Clean up linker flag definitions.
1. GNU ld does not understand -m{32,64}. It must be cooked for it by the GCC driver program. 2. Where GNU ld is directly called we must use -melf_{i386,x86_64}. 3. We cannot avoid calling GNU ld directly in some cases (e.g., when specifying GNU-specific linker scripts) as on some host architectures the GCC driver is configured to call the host linker. 4. We cannot add -melf_{i386,x86_64} to LDFLAGS as the option is not recognised by GCC. Hence we define new LDFLAGS_DIRECT, to be added to the command line only when invoking GNU ld directly. Signed-off-by: Keir Fraser <keir@xensource.com>
Diffstat (limited to 'config')
-rw-r--r--config/x86_32.mk4
-rw-r--r--config/x86_64.mk4
2 files changed, 6 insertions, 2 deletions
diff --git a/config/x86_32.mk b/config/x86_32.mk
index 4db3c73b3b..7e13463326 100644
--- a/config/x86_32.mk
+++ b/config/x86_32.mk
@@ -7,5 +7,7 @@ CONFIG_XCUTILS := y
CONFIG_IOEMU := y
CFLAGS += -m32 -march=i686
-LDFLAGS += -m32
LIBDIR := lib
+
+# Use only if calling $(LD) directly.
+LDFLAGS_DIRECT += -melf_i386
diff --git a/config/x86_64.mk b/config/x86_64.mk
index c76567563c..3825caafd5 100644
--- a/config/x86_64.mk
+++ b/config/x86_64.mk
@@ -7,5 +7,7 @@ CONFIG_XCUTILS := y
CONFIG_IOEMU := y
CFLAGS += -m64
-LDFLAGS += -m64
LIBDIR = $(LIB64DIR)
+
+# Use only if calling $(LD) directly.
+LDFLAGS_DIRECT += -melf_x86_64