summaryrefslogtreecommitdiffstats
path: root/Makefile.target
Commit message (Collapse)AuthorAgeFilesLines
...
* trace: [tcg] Define TCG tracing helper routinesLluís Vilanova2014-08-121-0/+5
| | | | | | | | | | | | Generates file "trace/generated-helpers.c" with TCG helper definitions to trace events in guest code at execution time. The helpers ('helper_trace_${event}_exec_proxy') cast the TCG-compatible native argument types to their original types (as defined in "trace-events") and call the tracing routine ('trace_${event}_exec'). Signed-off-by: Lluís Vilanova <vilanova@ac.upc.edu> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
* trace: install simpletrace SystemTap tapsetStefan Hajnoczi2014-08-121-1/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | The simpletrace SystemTap tapset outputs simpletrace binary traces for SystemTap probes. This is useful because SystemTap has no default way to format or store traces. The simpletrace SystemTap tapset provides an easy way to store traces. The simpletrace.py tool or custom Python scripts using the simpletrace.py API can analyze SystemTap these traces: $ ./configure --enable-trace-backends=dtrace ... $ make && make install $ stap -e 'probe qemu.system.x86_64.simpletrace.* {}' \ -c qemu-system-x86_64 >/tmp/trace.out $ scripts/simpletrace.py --no-header trace-events /tmp/trace.out g_malloc 4.531 pid=15519 size=0xb ptr=0x7f8639c10470 g_malloc 3.264 pid=15519 size=0x300 ptr=0x7f8639c10490 g_free 5.155 pid=15519 ptr=0x7f8639c0f7b0 Note that, unlike qemu-system-x86_64.stp and qemu-system-x86_64.stp-installed, only one file is needed since the simpletrace SystemTap tapset does not reference the QEMU binary by path. Therefore it doesn't matter whether the QEMU binary is installed or not. Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
* configure: Fix -lm test, so that tools can be compiled on hosts that require -lmAlexey Kardashevskiy2014-07-011-4/+0Star
| | | | | | | | | | | | | | | | The existing test whether "-lm" needs to be included or not is insufficient as it reports false negative on Fedora20/ppc64. This happens because sin(0.0) is a constant value which compiler can safely throw away and therefore there is no need to add "-lm". As the result, qemu-nbd/qemu-io/qemu-img tools cannot compile. This adds a global variable and uses it in the test to prevent from optimization. Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru> [Use Peter's improvement on the test to fool LTO, and remove the now useless -lm addition in Makefile.target. - Paolo] Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
* build-sys: introduce install-prog macro to install&strip binaries and use itMichael Tokarev2014-06-241-4/+1Star
| | | | | | | | | Use common rule (macro) to install and strip binaries, and use it in all places where we install binaries, instead of fixing bugs like 1319493 in every place. (This fixes https://bugs.launchpad.net/bugs/1319493) Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
* NUMA: move numa related code to new file numa.cWanlong Gao2014-06-191-1/+1
| | | | | | | | | | | | | Signed-off-by: Wanlong Gao <gaowanlong@cn.fujitsu.com> Reviewed-by: Eduardo Habkost <ehabkost@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Hu Tao <hutao@cn.fujitsu.com> Signed-off-by: Blue Swirl <blauwirbel@gmail.com> Signed-off-by: Andre Przywara <andre.przywara@amd.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Acked-by: Michael S. Tsirkin <mst@redhat.com> MST: comment tweaks
* target-ppc: Enable Building of libdecnumberTom Musta2014-06-161-0/+6
| | | | | | | | | | | Enable compilation of the newly added libdecnumber library code. Object file targets are added to Makefile.target using a newly introduced flag CONFIG_LIBDECNUMBER. The flag is added to the PowerPC targets (ppc[64]-linux-user, ppc[64]-softmmu). Signed-off-by: Tom Musta <tommusta@gmail.com> [agraf: add ppcemb and ppc64abi32 config] Signed-off-by: Alexander Graf <agraf@suse.de>
* bsd-user: add HOST_VARIANT_DIR for various *BSD dependent codeStacey Son2014-06-111-1/+2
| | | | | | | | | | | | | This change adds HOST_VARIANT_DIR so the various BSD OS dependent code can be separated into its own directories rather than using #ifdef's. This may also allow an BSD variant OS to host another BSD variant's executable as a target. Signed-off-by: Sean Bruno <sbruno@freebsd.org> Message-id: 1402246651-71099-2-git-send-email-sbruno@freebsd.org Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
* trace: Multi-backend tracingLluís Vilanova2014-06-091-2/+2
| | | | | | | | | | | | | | | Adds support to compile QEMU with multiple tracing backends at the same time. For example, you can compile QEMU with: $ ./configure --enable-trace-backends=ftrace,dtrace Where 'ftrace' can be handy for having an in-flight record of events, and 'dtrace' can be later used to extract more information from the system. This patch allows having both available without recompiling QEMU. Signed-off-by: Lluís Vilanova <vilanova@ac.upc.edu> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
* Makefile.target: use $(INSTALL_PROG) for installing, not $(INSTALL)Michael Tokarev2014-05-081-1/+1
| | | | | | | | | | | | | | | | | $(INSTALL_PROG) is evaluated to libtool if using libtool, while $(INSTALL) is not. Use $(INSTALL_PROG) so that libtool is used with target too when necessary. This allows, for example, to link qemu with shared libcacard. Signed-off-by: Michael Tokarev <mjt@tls.msk.ru> Cc: Fam Zheng <famz@redhat.com> Cc: Paolo Bonzini <pbonzini@redhat.com> Cc: Alon Levy <alevy@redhat.com> Cc: qemu-trivial@nongnu.org -- This is done on top of previous patch (using $(STRIP)), but it can be used by its own. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
* Makefile: strip tools and modules tooMichael Tokarev2014-05-081-1/+1
| | | | | | | | | | | | | | | | | Commit 52ba784d3 replaced $(STRIP_OPT) with $(STRIP) in some places (for example, Makefile.target), but not all of them. There are a few places remain in main Makefile which still uses $(STRIP_OPT). Replace these places with $(STRIP) too. While at it, simplify variable pattern substitution of the surrounding places, change $(patsubst pat,rep,$(var)) into $(var:pat=rep) which is much easier to read (this is probably a good idea to do everywhere). Signed-off-by: Michael Tokarev <mjt@tls.msk.ru> Cc: Fam Zheng <famz@redhat.com> Cc: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
* build: simplify Makefile.target around unnest-vars invocationsPaolo Bonzini2014-05-081-9/+2Star
| | | | | | | No need to save/restore obj-y, we can just build all-obj-y incrementally. Reviewed-by: Fam Zheng <famz@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
* build: simplify Makefile.target a bit, use just one rule for softmmuMichael Tokarev2014-05-081-15/+11Star
| | | | | | | | | | | | On win*, we build QEMU_PROGW (GUI) and create a console app QEMU_PROG from it, while on non-win*, we make only QEMU_PROG using the same rules as used for QEMU_PROGW on win*. Make just one rule for building main executable, and an additional rule for win* to make console app from it. Also consolidate tests for $(QEMU_PROGW). Signed-off-by: Michael Tokarev <mjt@tls.msk.ru> [Fix user-mode compilation. - Paolo] Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
* xen: factor out common functionsWei Liu2014-05-071-2/+4
| | | | | | | | | | | | | So common functions used by both HVM and PV are factored out from xen-all.c to xen-common.c. Finally rename xen-all.c to xen-hvm.c, as those functions are only useful to HVM guest. Create *-stub files and modify Makefile.target to reflect the changes. Signed-off-by: Wei Liu <wei.liu2@citrix.com> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
* build: softmmu targets do not have a "main.o" filePaolo Bonzini2014-02-201-2/+0Star
| | | | | | Thus this rule is useless. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
* Makefile: introduce common-obj-m and block-obj-m for DSOFam Zheng2014-02-201-1/+5
| | | | | | | | $(common-obj-m) will include $(block-obj-m), like $(common-obj-y) does for $(block-obj-y). Signed-off-by: Fam Zheng <famz@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
* rules.mak: fix $(obj) to a real relative pathFam Zheng2014-02-201-4/+13
| | | | | | | | | | | | | | | | | | | | 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 <famz@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
* default-configs/: CONFIG_GDBSTUB_XML removedÁkos Kovács2013-10-161-1/+1
| | | | | | | | | Makefile.target: Build gdbstub-xml.o only when TARGET_XML_FILES is not empty. Signed-off-by: Ákos Kovács <akoskovacs@gmx.com> Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
* Makefile.target: CONFIG_NO_* variables removedÁkos Kovács2013-10-161-6/+2Star
| | | | | | | | | CONFIG_NO_* variables replaced with the lnot logical function Signed-off-by: Ákos Kovács <akoskovacs@gmx.com> [PMM: fixed a few CONFIG_NO_* uses that were missed] Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
* build: do not use TARGET_ARCHPaolo Bonzini2013-06-141-4/+4
| | | | | | | | | | | TARGET_ARCH is generally wrong to use, there are better variables provided in config-target.mak. The right one is usually TARGET_NAME (previously TARGET_ARCH2), but for bsd-user we can also use TARGET_ABI_DIR for consistency with linux-user. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Message-id: 1370349928-20419-4-git-send-email-pbonzini@redhat.com Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
* build: rename TARGET_ARCH2 to TARGET_NAMEPaolo Bonzini2013-06-141-3/+3
| | | | | | | | Do not introduce any new use yet. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Message-id: 1370349928-20419-3-git-send-email-pbonzini@redhat.com Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
* Add a stp file for usage from build directoryAlon Levy2013-06-141-3/+13
| | | | | | | | | | | | | | | | | | | For systemtap the location of the process being tapped is crucial, as a result the existing stp file requires installation for use. There are now two files: $(TARGET_DIR)/$(QEMU_PROG).stp-installed: copied to $(tapdir)/$(QEMU_PROG).stp $(TARGET_DIR)/$(QEMU_PROG).stp: pointing to the built binary, usable without installation To use: stap -I $(TARGET_DIR) ... Signed-off-by: Alon Levy <alevy@redhat.com> Acked-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Message-id: 1370349928-20419-2-git-send-email-pbonzini@redhat.com Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
* dump: Drop qmp_dump_guest_memory() stub and build for all targetsAndreas Färber2013-06-111-1/+1
| | | | | | | | | | | | | qmp_dump_guest_memory() calls dump_init() and returns an Error when cpu_get_dump_info() returns an error, as done by the stub. So there is no need to have a stub for qmp_dump_guest_memory(). Enable the documentation of the always-present dump-guest-memory command. That way we can drop CONFIG_HAVE_CORE_DUMP and leave configure completely out of the picture for target CPU features. Signed-off-by: Andreas Färber <afaerber@suse.de>
* memory_mapping: Drop qemu_get_memory_mapping() stubAndreas Färber2013-06-111-3/+1Star
| | | | | | | | | | | | | | | dump.c:dump_init() never checked for the return code anyway. If paging is not enabled, it will fall back to an identity map. If paging is enabled and getting memory mapping list is not implemented, qemu_get_guest_memory_mapping() will return an error. Since the targets not implementing memory mapping also don't implement dump support, we will not reach this code today and can worry about changing cpu_paging_enabled() default when the need arises. This allows us to drop CONFIG_HAVE_GET_MEMORY_SUPPORT. Signed-off-by: Andreas Färber <afaerber@suse.de>
* dump: Move stubs into libqemustub.aAndreas Färber2013-06-101-2/+0Star
| | | | | | | | This allows us to drop CONFIG_NO_CORE_DUMP with its indirect dependency on CONFIG_HAVE_CORE_DUMP. Acked-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Andreas Färber <afaerber@suse.de>
* cpu: Make kvm-stub.o available outside softmmuIgor Mammedov2013-05-011-7/+7
| | | | | | | | | It will provide stubs for *-user targets once softmmu-specific calls are attempted from common CPU code. Signed-off-by: Igor Mammedov <imammedo@redhat.com> Reviewed-by: Eduardo Habkost <ehabkost@redhat.com> Signed-off-by: Andreas Färber <afaerber@suse.de>
* win32: generate console executable againPaolo Bonzini2013-04-271-1/+1
| | | | | | | The -mwindows option is not anymore in LIBS at this point of the Makefile, it is only in libs_softmmu. Check the right variable. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
* build: include config-{, all-}devices.mak after defining CONFIG_SOFTMMU and ↵Paolo Bonzini2013-04-241-1/+1
| | | | | | | | | | | | CONFIG_USER_ONLY Moving the inclusions closer to Makefile, and before rules.mak, makes Makefile and Makefile.target more consistent with each other. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Tested-by: Markus Armbruster <armbru@redhat.com> Message-id: 1366102238-12374-1-git-send-email-pbonzini@redhat.com Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
* configure: move common libraries to config-host.makPaolo Bonzini2013-04-181-5/+5
| | | | | | | | | Move -lm to the end of the line, so that it can be picked up as a dependency by pixman in the static build case. Reviewed-by: Peter Maydell <peter.maydell@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
* build: always link device_tree.o into emulators if libfdt availablePaolo Bonzini2013-03-011-0/+1
| | | | Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
* qtest: Add MMIO supportAndreas Färber2013-02-181-0/+1
| | | | | | | | | | | | | Introduce [qtest_]{read,write}[bwlq]() libqtest functions and corresponding QTest protocol commands to replace local versions in libi2c-omap.c. Also convert m48t59-test's cmos_{read,write}_mmio() to {read,write}b(). Signed-off-by: Andreas Färber <afaerber@suse.de> Signed-off-by: Andreas Färber <afaerber@suse.de> Message-id: 1361051043-27944-4-git-send-email-afaerber@suse.de Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
* build: remove universal-obj-yPaolo Bonzini2013-01-261-2/+1Star
| | | | | | | | | | All of universal-obj-y, user-obj-y (right now unused) and common-obj-y can be unified into common-obj-y if we take care of defining CONFIG_SOFTMMU and CONFIG_USER_ONLY in the toplevel makefile. This is similar to how we define symbols for hardware components. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
* build: improve quiet output for .stp rulesPaolo Bonzini2013-01-121-1/+1
| | | | | | Mention the directory in which the .stp file is being generated. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
* build: consolidate multiple variables into universal-obj-yPaolo Bonzini2013-01-121-6/+1Star
| | | | | | | | | | | The directory descent mechanism, and a less-flat tree both helped in making some *-obj-y definitions very short. Many of these often end up in universal-obj-y, and used to be separate only because of libuser (which is now part of history...). Consolidate these variables in a single one. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
* build: move util-obj-y to libqemuutil.aPaolo Bonzini2013-01-121-4/+4
| | | | | | Use a static library to eliminate repetition in the linking rules. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
* build: rename oslib-obj-y to util-obj-yPaolo Bonzini2013-01-121-2/+2
| | | | | | This prepares the creation of libqemuutil.a in the next patch. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
* tci: Fix broken builds with TCG interpreterStefan Weil2013-01-021-2/+1Star
| | | | | | | | | | TCI no longer compiled after commit 76cad71136b7eb371cf2a2a4e1621cfe8d9c769a. The TCI disassembler depends on data structures which are different for each QEMU target, so it cannot be compiled as a universal-obj today. Signed-off-by: Stefan Weil <sw@weilnetz.de> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
* build: fix includes for VNCPaolo Bonzini2012-12-221-5/+0Star
| | | | | | | | | | | vnc-tls.h is included by vnc.h, and it includes gnutls/gnutls.h. Hence, GnuTLS header files are needed by all files that include vnc.h, most notably qmp.c. Move these flags to QEMU_CFLAGS for simplicity. Reported-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
* build: kill libuserPaolo Bonzini2012-12-191-2/+1Star
| | | | Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
* build: kill libdis, move disassemblers to disas/Paolo Bonzini2012-12-191-4/+1Star
| | | | Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
* build: compile translate.o with -fno-gcse option on GCC 4.6.x and 4.7.[012]Paolo Bonzini2012-11-281-0/+3
| | | | | | | | | | | These versions of GCC require insane (>2GB) amounts of memory to compile translate.o. As a countermeasure, disable the culprit optimization pass. This should fix the buildbot failure for default_x86_64_fedora16. Anyway this is a good thing to do because people will try to compile 1.3 with less than 2GB of memory and complain. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
* build: replace weak symbols with a static libraryPaolo Bonzini2012-11-181-2/+2
| | | | | | | | | | | | | | | | | | | | | | Weak symbols were a nice idea, but they turned out not to be a good one. Toolchain support is just too sparse, in particular llvm-gcc is totally broken. This patch uses a surprisingly low-tech approach: a static library. Symbols in a static library are always overridden by symbols in an object file. Furthermore, if you place each function in a separate source file, object files for unused functions will not be taken in. This means that each function can use all the dependencies that it needs (especially QAPI stuff such as error_setg). Thus, all stubs are placed in separate object files and put together in a static library. The library then is linked to all programs. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Tested-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Tested-by: Stefan Weil <sw@weilnetz.de> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
* Remove libhwStefan Weil2012-10-051-1/+0Star
| | | | | | | | | | The entries for libhw* are no longer needed in .gitignore. There is also no longer a difference between common-obj-y and hw-obj-y, so one of those two macros is sufficient. Signed-off-by: Stefan Weil <sw@weilnetz.de> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
* Make target_phys_addr_t 64 bits unconditionallyAvi Kivity2012-10-051-3/+0Star
| | | | | | | | | | The hassle and compile time overhead of maintaining both 32-bit and 64-bit capable source isn't worth the tiny performance advantage which is seen on a minority of configurations. Switch to compiling libhw only once, with target_phys_addr_t unconditionally typedefed to uint64_t. Signed-off-by: Avi Kivity <avi@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
* Remove unused CONFIG_TCG_PASS_AREG0 and dead codeBlue Swirl2012-09-151-8/+0Star
| | | | | | | | | | | | | Now that CONFIG_TCG_PASS_AREG0 is enabled for all targets, remove dead code and support for !CONFIG_TCG_PASS_AREG0 case. Remove dyngen-exec.h and all references to it. Although included by hw/spapr_hcall.c, it does not seem to use it. Remove unused HELPER_CFLAGS. Signed-off-by: Blue Swirl <blauwirbel@gmail.com> Reviewed-by: Richard Henderson <rth@twiddle.net>
* build: get dependency file directories from object file namesPaolo Bonzini2012-07-281-3/+0Star
| | | | | | | | | | After commit dcff25f2cd8c11a9368cc2369aeb0319c32d9e26, Dependency file are taken from the directories that have a Makefile.objs file. This is not enough, since files can be included from other directories. So, pick them from directories that have an object file in them. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
* bsd-user: fix buildBlue Swirl2012-06-281-1/+1
| | | | | | | Link in oslib objects also for BSD user, but avoid using the version of qemu_vmalloc() defined in oslib-posix.c. Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
* Makefile.target: Update clean command to clean hw/ directoryPeter Maydell2012-06-271-2/+2
| | | | | | | | | | | Now we create object files in a hierarchy under hw/, so the 'clean' target must also be updated to delete those object files. Rather than using a manual list of subdirectories which will easily drift out of date, we just delete all .o and .d files in the target directory hierarchy. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
* make: Fix dependencies for fpu/*.c and tcg/*.cStefan Weil2012-06-241-1/+1
| | | | | | | | | Commit dcff25f2cd8c11a9368cc2369aeb0319c32d9e26 removed too many *.d files. The directories fpu/ and tcg/ still don't use the recursive subdir rules. Signed-off-by: Stefan Weil <sw@weilnetz.de> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
* make: automatically include dependencies in recursive subdir rules (v2)Anthony Liguori2012-06-191-1/+1
| | | | | | | I think I understand enough of what's going on in these rules to ensure this is right. But I could certainly use a second or third opinion... Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
* Revert "build: compile oslib-obj-y once"Blue Swirl2012-06-101-1/+1
| | | | | | | This reverts commit 25f27a4f7160d077d6992e811021b4bc3a82abc1 because of bsd-user breakage. Signed-off-by: Blue Swirl <blauwirbel@gmail.com>