All the mail mirrored from lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH, RFC] Integrate OpenBIOS to QEMU build
@ 2011-08-28 15:46 Blue Swirl
  0 siblings, 0 replies; only message in thread
From: Blue Swirl @ 2011-08-28 15:46 UTC (permalink / raw
  To: qemu-devel

I'm trying to integrate OpenBIOS to general rom building framework in
QEMU but I have some problems with 'make'.

For some reason, build succeeds if run 'make' in
'obj-amd64/pc-bios/openbios' but fails in top level 'obj-amd64'. Maybe
some QEMU makefile variables leak to OpenBIOS make? Using a shell in
the middle didn't help.
  GEN   config-target.h
(sh -c "make -C build build-verbose")
Building...
  GEN   openbios/target/include/openbios-version.h
  GEN   openbios/forth/version.fs
 HOSTCC openbios/host/kernel/dict.o
/src/qemu/roms/openbios/kernel/dict.c:320: fatal error: opening
dependency file /.d: Read-only file system
compilation terminated.
make[3]: *** [host/kernel/dict.o] Error 1
make[2]: *** [build-verbose] Error 1
make[1]: *** [all] Error 2
make: *** [romsubdir-openbios] Error 2
make: Leaving directory `/src/qemu/obj-amd64'

The problem is with -MF $(*D)/$(*F).d which expands to /.d. How is that?

A patch is needed for OpenBIOS for complete out-of-tree build support
(sent to openbios list).

This is what I have for QEMU at the moment (no probing, error
handling, installing etc):
diff --git a/.gitmodules b/.gitmodules
index 7884471..c3faa38 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -10,3 +10,6 @@
 [submodule "roms/ipxe"]
        path = roms/ipxe
        url = git://git.qemu.org/ipxe.git
+[submodule "roms/openbios"]
+       path = roms/openbios
+       url = git://git.qemu.org/openbios.git
diff --git a/configure b/configure
index 1340c33..c408ffa 100755
--- a/configure
+++ b/configure
@@ -2646,6 +2646,7 @@ fi
 if test "$cpu" = "ppc64" -a "$targetos" != "Darwin" ; then
   roms="$roms spapr-rtas"
 fi
+roms="$roms openbios"

 echo "Install prefix    $prefix"
 echo "BIOS directory    `eval echo $datadir`"
@@ -3595,7 +3596,7 @@ echo "QEMU_INCLUDES+=$includes" >> $config_target_mak
 done # for target in $targets

 # build tree in object directory in case the source is not in the
current directory
-DIRS="tests tests/cris slirp audio block net pc-bios/optionrom"
+DIRS="tests tests/cris slirp audio block net pc-bios/optionrom
pc-bios/openbios"
 DIRS="$DIRS pc-bios/spapr-rtas"
 DIRS="$DIRS roms/seabios roms/vgabios"
 DIRS="$DIRS fsdev ui"
@@ -3605,6 +3606,7 @@ FILES="Makefile tests/Makefile"
 FILES="$FILES tests/cris/Makefile tests/cris/.gdbinit"
 FILES="$FILES pc-bios/optionrom/Makefile pc-bios/keymaps"
 FILES="$FILES pc-bios/spapr-rtas/Makefile"
+FILES="$FILES pc-bios/openbios/Makefile"
 FILES="$FILES roms/seabios/Makefile roms/vgabios/Makefile"
 for bios_file in $source_path/pc-bios/*.bin
$source_path/pc-bios/*.rom $source_path/pc-bios/*.dtb
$source_path/pc-bios/openbios-*; do
     FILES="$FILES pc-bios/`basename $bios_file`"
@@ -3629,6 +3631,9 @@ for rom in seabios vgabios ; do
     echo "LD=$ld" >> $config_mak
 done

+echo configuring OpenBIOS
+(cd pc-bios/openbios/build &&
$source_path/roms/openbios/config/scripts/switch-arch sparc32 sparc64
ppc)
+
 for hwlib in 32 64; do
   d=libhw$hwlib
   mkdir -p $d
diff --git a/pc-bios/openbios/Makefile b/pc-bios/openbios/Makefile
new file mode 100644
index 0000000..f019de5
--- /dev/null
+++ b/pc-bios/openbios/Makefile
@@ -0,0 +1,5 @@
+all:
+       (sh -c "make -C build build-verbose")
+
+clean:
+       make -C build $@
diff --git a/roms/openbios b/roms/openbios
new file mode 160000
index 0000000..ff61d97
--- /dev/null
+++ b/roms/openbios
@@ -0,0 +1 @@
+Subproject commit ff61d973e5a4a68b29e485b3f88e6a2d1d96cf45-dirty

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2011-08-28 15:47 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-08-28 15:46 [Qemu-devel] [PATCH, RFC] Integrate OpenBIOS to QEMU build Blue Swirl

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.