summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Olbrich <m.olbrich@pengutronix.de>2010-03-01 20:56:48 +0100
committerMichael Olbrich <m.olbrich@pengutronix.de>2010-03-02 08:49:19 +0100
commita0c9ed511ed0a8d9d545bce5817d85f521503e87 (patch)
tree07264355ec99a2a097e3e439504d9d9633fc8afc
parentc89ad70c66e101fd70889cdf9f56348565008e26 (diff)
downloadptxdist-a0c9ed511ed0a8d9d545bce5817d85f521503e87.tar.gz
ptxdist-a0c9ed511ed0a8d9d545bce5817d85f521503e87.tar.xz
[mesalib] make sure the mklib script uses the correct linker
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
-rw-r--r--patches/MesaLib-7.6.1/add-mklib-option.diff58
-rw-r--r--patches/MesaLib-7.6.1/fix-mklib-cmdline.diff26
-rw-r--r--patches/MesaLib-7.6.1/series2
-rw-r--r--rules/mesalib.make4
4 files changed, 90 insertions, 0 deletions
diff --git a/patches/MesaLib-7.6.1/add-mklib-option.diff b/patches/MesaLib-7.6.1/add-mklib-option.diff
new file mode 100644
index 000000000..f6651eedf
--- /dev/null
+++ b/patches/MesaLib-7.6.1/add-mklib-option.diff
@@ -0,0 +1,58 @@
+Subject: add -linker-prefix option to mklib
+From: Michael Olbrich <m.olbrich@pengutronix.de>
+
+On Linux mklib uses gcc or g++ (for C++) as linker. This breaks when
+cross-compiling. The "-linker" option cannot be used, because it cannot be
+used to specify a differen linker for C and C++.
+This patch adds an extra option to add a prefix for the linker command.
+
+Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
+
+---
+ bin/mklib | 11 ++++++++---
+ 1 file changed, 8 insertions(+), 3 deletions(-)
+
+Index: b/bin/mklib
+===================================================================
+--- a/bin/mklib
++++ b/bin/mklib
+@@ -34,6 +34,7 @@ MINOR=0
+ PATCH=""
+ DEPS=""
+ LINK=""
++LINK_PREFIX=""
+ LDFLAGS=""
+ CPLUSPLUS=0
+ STATIC=0
+@@ -99,6 +100,10 @@ do
+ shift 1;
+ LINK=$1
+ ;;
++ '-linker-prefix')
++ shift 1;
++ LINK_PREFIX=$1
++ ;;
+ '-ldflags')
+ shift 1;
+ LDFLAGS=$1
+@@ -234,9 +239,9 @@ case $ARCH in
+ if [ "x$LINK" = "x" ] ; then
+ # -linker was not specified so set default link command now
+ if [ $CPLUSPLUS = 1 ] ; then
+- LINK=g++
++ LINK=${LINK_PREFIX}g++
+ else
+- LINK=gcc
++ LINK=${LINK_PREFIX}gcc
+ fi
+ fi
+
+@@ -271,7 +276,7 @@ case $ARCH in
+ elif [ $STATIC = 1 ] ; then
+ LIBNAME="lib${LIBNAME}.a" # prefix with "lib", suffix with ".a"
+ echo "mklib: Making" $ARCH "static library: " ${LIBNAME}
+- LINK="ar"
++ LINK="${LINK_PREFIX}ar"
+ OPTS="-ru"
+ if [ "${ALTOPTS}" ] ; then
+ OPTS=${ALTOPTS}
diff --git a/patches/MesaLib-7.6.1/fix-mklib-cmdline.diff b/patches/MesaLib-7.6.1/fix-mklib-cmdline.diff
new file mode 100644
index 000000000..bb056e6ea
--- /dev/null
+++ b/patches/MesaLib-7.6.1/fix-mklib-cmdline.diff
@@ -0,0 +1,26 @@
+Subject: fix mklib command line
+From: Michael Olbrich <m.olbrich@pengutronix.de>
+
+during configure the environment variable MKLIB_OPTIONS can be used to
+specify extra options for mklib. This variable is not used everywhere.
+This patch fixes this.
+
+Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
+
+---
+ src/gallium/winsys/drm/Makefile.template | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: b/src/gallium/winsys/drm/Makefile.template
+===================================================================
+--- a/src/gallium/winsys/drm/Makefile.template
++++ b/src/gallium/winsys/drm/Makefile.template
+@@ -82,7 +82,7 @@ SHARED_INCLUDES = \
+ default: depend symlinks $(TOP)/$(LIB_DIR)/gallium/$(LIBNAME)
+
+ $(LIBNAME): $(OBJECTS) $(MESA_MODULES) $(PIPE_DRIVERS) $(WINOBJ) Makefile $(TOP)/src/mesa/drivers/dri/Makefile.template
+- $(MKLIB) -noprefix -o $@ \
++ $(MKLIB) -noprefix -o $@ $(MKLIB_OPTIONS) \
+ $(OBJECTS) $(PIPE_DRIVERS) \
+ -Wl,--start-group $(MESA_MODULES) -Wl,--end-group \
+ $(WINOBJ) $(DRI_LIB_DEPS) $(DRIVER_EXTRAS)
diff --git a/patches/MesaLib-7.6.1/series b/patches/MesaLib-7.6.1/series
index 2b0af5b95..dc9f03838 100644
--- a/patches/MesaLib-7.6.1/series
+++ b/patches/MesaLib-7.6.1/series
@@ -1 +1,3 @@
configure.ac.diff
+fix-mklib-cmdline.diff
+add-mklib-option.diff
diff --git a/rules/mesalib.make b/rules/mesalib.make
index 670b9ba70..8f72eaedd 100644
--- a/rules/mesalib.make
+++ b/rules/mesalib.make
@@ -69,6 +69,10 @@ endif
# Prepare
# ----------------------------------------------------------------------------
+MESALIB_CONF_ENV := \
+ $(CROSS_ENV) \
+ MKLIB_OPTIONS="-linker-prefix $(PTXCONF_COMPILER_PREFIX)"
+
MESALIB_COMPILE_ENV := $(CROSS_ENV_CC_FOR_BUILD)
MESALIB_DRIVERS-$(PTXCONF_MESALIB_DRIVER_XLIB) += xlib