qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [qemu/qemu] 10f5bf: util: Split out exec_dir from os_find


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] 10f5bf: util: Split out exec_dir from os_find_datadir
Date: Mon, 24 Feb 2014 08:30:03 -0800

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 10f5bff622cad71645e22c027b77ac31e51008ef
      
https://github.com/qemu/qemu/commit/10f5bff622cad71645e22c027b77ac31e51008ef
  Author: Fam Zheng <address@hidden>
  Date:   2014-02-20 (Thu, 20 Feb 2014)

  Changed paths:
    M include/qemu-common.h
    M include/qemu/osdep.h
    M os-posix.c
    M os-win32.c
    M qemu-img.c
    M qemu-io.c
    M qemu-nbd.c
    M util/oslib-posix.c
    M util/oslib-win32.c
    M vl.c

  Log Message:
  -----------
  util: Split out exec_dir from os_find_datadir

With this change, main() calls qemu_init_exec_dir and uses argv[0] to
init exec_dir. The saved value can be retrieved with
qemu_get_exec_dir later. It will be reused by module loading.

Signed-off-by: Fam Zheng <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: ba1183da9a10b94611cad88c44a5c6df005f9b55
      
https://github.com/qemu/qemu/commit/ba1183da9a10b94611cad88c44a5c6df005f9b55
  Author: Fam Zheng <address@hidden>
  Date:   2014-02-20 (Thu, 20 Feb 2014)

  Changed paths:
    M Makefile
    M Makefile.objs
    M Makefile.target
    M configure
    M rules.mak

  Log Message:
  -----------
  rules.mak: fix $(obj) to a real relative path

Makefile.target includes rule.mak and unnested common-obj-y, then prefix
them with '../', this will ignore object specific QEMU_CFLAGS in subdir
Makefile.objs:

    $(obj)/curl.o: QEMU_CFLAGS += $(CURL_CFLAGS)

Because $(obj) here is './block', instead of '../block'. This doesn't
hurt compiling because we basically build all .o from top Makefile,
before entering Makefile.target, but it will affact arriving per-object
libs support.

The starting point of $(obj) is passed in as argument of unnest-vars, as
well as nested variables, so that different Makefiles can pass in a
right value.

Signed-off-by: Fam Zheng <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: 5c0d52bcd3aada33e274ea7dad75955f98bc2636
      
https://github.com/qemu/qemu/commit/5c0d52bcd3aada33e274ea7dad75955f98bc2636
  Author: Fam Zheng <address@hidden>
  Date:   2014-02-20 (Thu, 20 Feb 2014)

  Changed paths:
    M rules.mak

  Log Message:
  -----------
  rules.mak: allow per object cflags and libs

Adds extract-libs in LINK to expand any "per object libs", the syntax to define
such a libs options is like:
   foo.o-libs := $(CURL_LIBS)

in block/Makefile.objs.

Similarly,
   foo.o-cflags := $(FOO_CFLAGS)

is also supported.

"foo.o" must be listed in a nested var (e.g. common-obj-y) to make the
option variables effective.

Signed-off-by: Fam Zheng <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: 6ebc91e5d0f408371460ab4329dc6de7f93306ac
      
https://github.com/qemu/qemu/commit/6ebc91e5d0f408371460ab4329dc6de7f93306ac
  Author: Fam Zheng <address@hidden>
  Date:   2014-02-20 (Thu, 20 Feb 2014)

  Changed paths:
    M block/Makefile.objs
    M configure

  Log Message:
  -----------
  block: use per-object cflags and libs

No longer adds flags and libs for them to global variables, instead
create config-host.mak variables like FOO_CFLAGS and FOO_LIBS, which is
used as per object cflags and libs.

This removes unwanted dependencies from libcacard.

Signed-off-by: Fam Zheng <address@hidden>
[Split from Fam's patch to enable modules. - Paolo]
Signed-off-by: Paolo Bonzini <address@hidden>

Signed-off-by: Fam Zheng <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: 13b6ce0ec98dc0d757d5c9b50f3ce349d7af43bd
      
https://github.com/qemu/qemu/commit/13b6ce0ec98dc0d757d5c9b50f3ce349d7af43bd
  Author: Paolo Bonzini <address@hidden>
  Date:   2014-02-20 (Thu, 20 Feb 2014)

  Changed paths:
    M configure

  Log Message:
  -----------
  darwin: do not use -mdynamic-no-pic

While -mdynamic-no-pic can speed up the code somewhat, it is only used
on the legacy PowerPC Mac OS X, and I am not sure if anyone is still
testing that.  Disabling PIC can cause problems when enabling modules,
so do not do that.

Signed-off-by: Paolo Bonzini <address@hidden>
Signed-off-by: Fam Zheng <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: 17969268f5938ae1d7f3dedbd73e507badb6146d
      
https://github.com/qemu/qemu/commit/17969268f5938ae1d7f3dedbd73e507badb6146d
  Author: Fam Zheng <address@hidden>
  Date:   2014-02-20 (Thu, 20 Feb 2014)

  Changed paths:
    M .gitignore
    M Makefile
    M configure
    M rules.mak

  Log Message:
  -----------
  rules.mak: introduce DSO rules

Add necessary rules and flags for shared object generation.
The new rules introduced here are:

1) %.o in $(common-obj-m) is compiled to %.o, then linked to %.so.

2) %.mo in $(common-obj-m) is the placeholder for %.so for pattern
matching in Makefile. It's linked to "-shared" with all its dependencies
(multiple *.o) as input. Which means the list of depended objects must
be specified in each sub-Makefile.objs:

    foo.mo-objs := bar.o baz.o qux.o

in the same style with foo.o-cflags and foo.o-libs. The objects here
will be prefixed with "$(obj)/" if it's a subdirectory Makefile.objs.

3) For all files ending up in %.so, the following is added automatically:

    foo.o-cflags += -fPIC -DBUILD_DSO

Also introduce --enable-modules in configure, the option will enable
support of shared object build. Otherwise objects are static linked to
executables.

Signed-off-by: Fam Zheng <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: e26110cfc67d48331a76e9b1e6f7fed7569e1ab3
      
https://github.com/qemu/qemu/commit/e26110cfc67d48331a76e9b1e6f7fed7569e1ab3
  Author: Fam Zheng <address@hidden>
  Date:   2014-02-20 (Thu, 20 Feb 2014)

  Changed paths:
    M Makefile
    M configure
    M include/qemu/module.h
    A module-common.c
    M rules.mak
    M scripts/create_config
    M util/module.c

  Log Message:
  -----------
  module: implement module loading

This patch adds loading, stamp checking and initialization of modules.

The init function of dynamic module is no longer directly called as
__attribute__((constructor)) in static linked version, it is called
only after passed the checking of presense of stamp symbol:

    qemu_stamp_$RELEASEHASH

where $RELEASEHASH is generated by hashing version strings and content
of configure script.

With this, modules built from a different tree/version/configure will
not be loaded.

The module loading code requires gmodule-2.0.

Modules are searched under
 - CONFIG_MODDIR
 - executable folder (to allow running qemu-{img,io} in the build
   directory)
 - ../ of executable folder (to allow running system emulator in the
   build directory)

Modules are linked under their subdir respectively, then copied to top
level of build directory for above convinience, e.g.:
    $(BUILD_DIR)/block/curl.so -> $(BUILD_DIR)/block-curl.so

Signed-off-by: Paolo Bonzini <address@hidden>
Signed-off-by: Fam Zheng <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: e3be6f0ecc7e2c8e47ae7a49d523c50bc1bdf621
      
https://github.com/qemu/qemu/commit/e3be6f0ecc7e2c8e47ae7a49d523c50bc1bdf621
  Author: Fam Zheng <address@hidden>
  Date:   2014-02-20 (Thu, 20 Feb 2014)

  Changed paths:
    M Makefile

  Log Message:
  -----------
  Makefile: install modules with "make install"

Install all the modules to ${MODDIR}.

Signed-off-by: Fam Zheng <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: cc47569881d56ab11bd33b6fbaf60aeedb25e8a9
      
https://github.com/qemu/qemu/commit/cc47569881d56ab11bd33b6fbaf60aeedb25e8a9
  Author: Fam Zheng <address@hidden>
  Date:   2014-02-20 (Thu, 20 Feb 2014)

  Changed paths:
    M Makefile
    M Makefile.objs
    M Makefile.target

  Log Message:
  -----------
  Makefile: introduce common-obj-m and block-obj-m for DSO

$(common-obj-m) will include $(block-obj-m), like $(common-obj-y) does
for $(block-obj-y).

Signed-off-by: Fam Zheng <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: d3399d7cf8a6cd751519d3979592d888bbab697a
      
https://github.com/qemu/qemu/commit/d3399d7cf8a6cd751519d3979592d888bbab697a
  Author: Fam Zheng <address@hidden>
  Date:   2014-02-20 (Thu, 20 Feb 2014)

  Changed paths:
    M configure

  Log Message:
  -----------
  block: convert block drivers linked with libs to modules

The converted block drivers are:

    curl
    iscsi
    rbd
    ssh
    glusterfs

Signed-off-by: Fam Zheng <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: 66518bf668f09eaab14c174bc975f85480e2371f
      
https://github.com/qemu/qemu/commit/66518bf668f09eaab14c174bc975f85480e2371f
  Author: Don Slutz <address@hidden>
  Date:   2014-02-20 (Thu, 20 Feb 2014)

  Changed paths:
    M configure

  Log Message:
  -----------
  configure: Disable libtool if -fPIE does not work with it (bug #1257099)

Adjust TMPO and added TMPB, TMPL, and TMPA.  libtool needs the names
to be fixed (TMPB).

Add new functions do_libtool and libtool_prog.

Add check for broken gcc and libtool.

Signed-off-by: Don Slutz <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: f966f9ddd175bdf82f12650c3b7b5a93cc421d88
      
https://github.com/qemu/qemu/commit/f966f9ddd175bdf82f12650c3b7b5a93cc421d88
  Author: Paolo Bonzini <address@hidden>
  Date:   2014-02-20 (Thu, 20 Feb 2014)

  Changed paths:
    M Makefile.target

  Log Message:
  -----------
  build: softmmu targets do not have a "main.o" file

Thus this rule is useless.

Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: 6dedf0522c3fdeb10fe27d4aef35f4c57f3d0806
      
https://github.com/qemu/qemu/commit/6dedf0522c3fdeb10fe27d4aef35f4c57f3d0806
  Author: Peter Maydell <address@hidden>
  Date:   2014-02-24 (Mon, 24 Feb 2014)

  Changed paths:
    M .gitignore
    M Makefile
    M Makefile.objs
    M Makefile.target
    M block/Makefile.objs
    M configure
    M include/qemu-common.h
    M include/qemu/module.h
    M include/qemu/osdep.h
    A module-common.c
    M os-posix.c
    M os-win32.c
    M qemu-img.c
    M qemu-io.c
    M qemu-nbd.c
    M rules.mak
    M scripts/create_config
    M util/module.c
    M util/oslib-posix.c
    M util/oslib-win32.c
    M vl.c

  Log Message:
  -----------
  Merge remote-tracking branch 'remotes/bonzini/configure' into staging

* remotes/bonzini/configure:
  build: softmmu targets do not have a "main.o" file
  configure: Disable libtool if -fPIE does not work with it (bug #1257099)
  block: convert block drivers linked with libs to modules
  Makefile: introduce common-obj-m and block-obj-m for DSO
  Makefile: install modules with "make install"
  module: implement module loading
  rules.mak: introduce DSO rules
  darwin: do not use -mdynamic-no-pic
  block: use per-object cflags and libs
  rules.mak: allow per object cflags and libs
  rules.mak: fix $(obj) to a real relative path
  util: Split out exec_dir from os_find_datadir

Signed-off-by: Peter Maydell <address@hidden>


Compare: https://github.com/qemu/qemu/compare/98b21dcdb331...6dedf0522c3f

reply via email to

[Prev in Thread] Current Thread [Next in Thread]