* [Qemu-devel] [PATCH v3 1/3] configure: Put cross compile flags in EXTRA_CFLAGS
2013-03-04 6:30 [Qemu-devel] [PATCH v3 0/3] DTC as submodule Peter Crosthwaite
@ 2013-03-04 6:30 ` Peter Crosthwaite
2013-03-04 6:30 ` [Qemu-devel] [PATCH v3 2/3] dtc: add submodule Peter Crosthwaite
2013-03-04 6:30 ` [Qemu-devel] [PATCH v3 3/3] configure/Make: Build libfdt from submodule DTC Peter Crosthwaite
2 siblings, 0 replies; 4+ messages in thread
From: Peter Crosthwaite @ 2013-03-04 6:30 UTC (permalink / raw)
To: qemu-devel
Cc: peter.maydell, Peter Crosthwaite, david.holsgrove, agraf, kraxel,
afaerber
The cross compile CFLAGS are needed to properly build pixman (and any other
submodules). Only the EXTRA_CFLAGS set is passed to submodules not QEMU_CFLAGS,
so put the cross compile flags in EXTRA_CFLAGS instead.
Signed-off-by: Peter Crosthwaite peter.crosthwaite@xilinx.com>
---
Changed from v2:
Reverted first hunk to keep early CFLAGS settings (PMM review)
Pretty much a completely different implementation now.
configure | 15 +++++++++------
1 files changed, 9 insertions(+), 6 deletions(-)
diff --git a/configure b/configure
index 19738ac..a1efa21 100755
--- a/configure
+++ b/configure
@@ -913,33 +913,36 @@ done
case "$cpu" in
sparc)
LDFLAGS="-m32 $LDFLAGS"
- QEMU_CFLAGS="-m32 -mcpu=ultrasparc $QEMU_CFLAGS"
+ CPU_CFLAGS="-m32 -mcpu=ultrasparc"
;;
sparc64)
LDFLAGS="-m64 $LDFLAGS"
- QEMU_CFLAGS="-m64 -mcpu=ultrasparc $QEMU_CFLAGS"
+ CPU_CFLAGS="-m64 -mcpu=ultrasparc"
;;
s390)
- QEMU_CFLAGS="-m31 -march=z990 $QEMU_CFLAGS"
+ CPU_CFLAGS="-m31 -march=z990"
LDFLAGS="-m31 $LDFLAGS"
;;
s390x)
- QEMU_CFLAGS="-m64 -march=z990 $QEMU_CFLAGS"
+ CPU_CFLAGS="-m64 -march=z990"
LDFLAGS="-m64 $LDFLAGS"
;;
i386)
- QEMU_CFLAGS="-m32 $QEMU_CFLAGS"
+ CPU_CFLAGS="-m32"
LDFLAGS="-m32 $LDFLAGS"
cc_i386='$(CC) -m32'
;;
x86_64)
- QEMU_CFLAGS="-m64 $QEMU_CFLAGS"
+ CPU_CFLAGS="-m64"
LDFLAGS="-m64 $LDFLAGS"
cc_i386='$(CC) -m32'
;;
# No special flags required for other host CPUs
esac
+QEMU_CFLAGS="$CPU_CFLAGS $QEMU_CFLAGS"
+EXTRA_CFLAGS="$CPU_CFLAGS $EXTRA_CFLAGS"
+
default_target_list=""
# these targets are portable
--
1.7.0.4
^ permalink raw reply related [flat|nested] 4+ messages in thread* [Qemu-devel] [PATCH v3 3/3] configure/Make: Build libfdt from submodule DTC
2013-03-04 6:30 [Qemu-devel] [PATCH v3 0/3] DTC as submodule Peter Crosthwaite
2013-03-04 6:30 ` [Qemu-devel] [PATCH v3 1/3] configure: Put cross compile flags in EXTRA_CFLAGS Peter Crosthwaite
2013-03-04 6:30 ` [Qemu-devel] [PATCH v3 2/3] dtc: add submodule Peter Crosthwaite
@ 2013-03-04 6:30 ` Peter Crosthwaite
2 siblings, 0 replies; 4+ messages in thread
From: Peter Crosthwaite @ 2013-03-04 6:30 UTC (permalink / raw)
To: qemu-devel
Cc: peter.maydell, Peter Crosthwaite, david.holsgrove, agraf, kraxel,
afaerber
Configure to use the DTC submodule to build libfdt when no system libfdt
is found. Prompt to install the DTC submodule if --enable-fdt is set but
no DTC can be found.
DTC has no out-of-tree build capability, so the configure will symlink
the Makefile and scripts directory in the out of tree build directory
and pass in all the needed DTC arguments to make out of tree build happen.
Ideally we fix the DTC make to support out of tree, but did it this way to
avoid commits to DTC.
Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com>
Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
---
changed from v2:
Fixed quoting of Make arguments (PMM review)
Fixed comment styling and typos (PMM review)
Makefile | 10 ++++++++++
configure | 29 +++++++++++++++++++++++++----
2 files changed, 35 insertions(+), 4 deletions(-)
diff --git a/Makefile b/Makefile
index 2262410..b126b31 100644
--- a/Makefile
+++ b/Makefile
@@ -136,6 +136,15 @@ pixman/Makefile: $(SRC_PATH)/pixman/configure
$(SRC_PATH)/pixman/configure:
(cd $(SRC_PATH)/pixman; autoreconf -v --install)
+DTC_MAKE_ARGS=-I$(SRC_PATH)/dtc VPATH=$(SRC_PATH)/dtc -C dtc V="$(V)" LIBFDT_srcdir=$(SRC_PATH)/dtc/libfdt
+DTC_CFLAGS=$(CFLAGS) $(extra_cflags) -I$(BUILD_DIR)/dtc -I$(SRC_PATH)/dtc -I$(SRC_PATH)/dtc/libfdt
+
+subdir-dtc:dtc/libfdt dtc/tests
+ $(call quiet-command,$(MAKE) $(DTC_MAKE_ARGS) CPPFLAGS="$(DTC_CFLAGS)" LDFLAGS="$(LDFLAGS)" ARFLAGS="$(ARFLAGS)" CC="$(CC)" AR="$(AR)" LD="$(LD)" $(SUBDIR_MAKEFLAGS) libfdt,)
+
+dtc/%:
+ mkdir -p $@
+
$(SUBDIR_RULES): libqemuutil.a libqemustub.a $(common-obj-y)
ROMSUBDIR_RULES=$(patsubst %,romsubdir-%, $(ROMS))
@@ -253,6 +262,7 @@ distclean: clean
rm -rf $$d || exit 1 ; \
done
if test -f pixman/config.log; then make -C pixman distclean; fi
+ if test -f dtc/version_gen.h; then make $(DTC_MAKE_ARGS) clean; fi
KEYMAPS=da en-gb et fr fr-ch is lt modifiers no pt-br sv \
ar de en-us fi fr-be hr it lv nl pl ru th \
diff --git a/configure b/configure
index a1efa21..c589368 100755
--- a/configure
+++ b/configure
@@ -2418,11 +2418,28 @@ if test "$fdt" != "no" ; then
int main(void) { return 0; }
EOF
if compile_prog "" "$fdt_libs" ; then
+ # system DTC is good - use it
fdt=yes
- else
- if test "$fdt" = "yes" ; then
- feature_not_found "fdt"
+ elif test -d ${source_path}/dtc/libfdt ; then
+ # have submodule DTC - use it
+ fdt=yes
+ dtc_internal="yes"
+ mkdir -p dtc
+ if [ "$source_path" != `pwd` ]; then
+ symlink "$source_path/dtc/Makefile" "dtc/Makefile"
+ symlink "$source_path/dtc/scripts" "dtc/scripts"
fi
+ fdt_cflags="-I\$(SRC_PATH)/dtc/libfdt"
+ fdt_libs="-L\$(BUILD_DIR)/dtc/libfdt $fdt_libs"
+ elif test "$fdt" = "yes" ; then
+ # have neither and want - prompt for system/submodule install
+ echo "ERROR: DTC not present. Your options:"
+ echo " (1) Preferred: Install the DTC devel package"
+ echo " (2) Fetch the DTC submodule, using:"
+ echo " git submodule update --init dtc"
+ exit 1
+ else
+ # don't have and dont wan't
fdt_libs=
fdt=no
fi
@@ -3309,7 +3326,7 @@ if test "$cpu" = "ppc64" -a "$targetos" != "Darwin" ; then
fi
# add pixman flags after all config tests are done
-QEMU_CFLAGS="$QEMU_CFLAGS $pixman_cflags"
+QEMU_CFLAGS="$QEMU_CFLAGS $pixman_cflags $fdt_cflags"
libs_softmmu="$libs_softmmu $pixman_libs"
echo "Install prefix $prefix"
@@ -4356,6 +4373,10 @@ if [ "$pixman" = "internal" ]; then
echo "config-host.h: subdir-pixman" >> $config_host_mak
fi
+if [ "$dtc_internal" = "yes" ]; then
+ echo "config-host.h: subdir-dtc" >> $config_host_mak
+fi
+
# build tree in object directory in case the source is not in the current directory
DIRS="tests tests/tcg tests/tcg/cris tests/tcg/lm32"
DIRS="$DIRS pc-bios/optionrom pc-bios/spapr-rtas"
--
1.7.0.4
^ permalink raw reply related [flat|nested] 4+ messages in thread