populate-volatile.sh: add ROOT_DIR variable to support running at rootfs time

For populate-volatile.sh script to run correctly both at rootfs time and
at system boot time, it needs to be aware of which situation it is now in.

We use the ROOT_DIR variable to indicate whether it is run at rootfs time or
not. ROOT_DIR being "/" indicates that this script is run at system boot time,
otherwise, it is run at rootfs time.

Also, we ignore failures when running this script at rootfs time.
For example, if ${ROOT_DIR}/var/dir1 is symlink to /var/volatile/dir1, it's
possible that the link is a dead link. So if we're going to create some file
under ${ROOT_DIR}/var/dir1, it will fail. But the failure does no harm,
because this script will always run at system boot time to set up the correct
files and directories.

[YOCTO #3406]

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
populate-volatile.sh: improve the handling of link config items

Previously, if there's a link config item in the config file like

	    l root root 1777 /tmp /var/tmp

and /tmp has existed, the symlink will not be created correctly.

Another example is the /run directory. If /run directory has been
created by some recipe or script before populate-volatile.sh runs,
the symlink of /run to /var/run will not be created correctly.

This patch ensures that the system creates symlinks exactly as the
config file tells it.

[YOCTO #3404]
[YOCTO #3406]

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
populate-volatile.sh: remove trailing whitespaces

Remove trailing whitespaces.

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
systemd: make gcrypt support (for signing the journal) optional

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
systemd: remove unused cached configure variables

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
systemd: remove --with-distro option, it's not used

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
systemd: set the location of the kill binary

Otherwise systemd uses AC_PROG_PATH and finds it in the sysroot, which won't
work on the target.

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
shadow: add build dependency on shadow-native

The postinst requires patched pwconv and grpconv from shadow-native,
without these the rootfs creation uses the host binaries and fails.

Signed-off-by: Martin Donnelly <martin.donnelly@ge.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
tune-cortexa15: add tunes for ARM Cortex-A15

http://www.arm.com/products/processors/cortex-a/cortex-a15.php

Signed-off-by: Denys Dmytriyenko <denys@ti.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
tune-cortexa7: add tunes for ARM Cortex-A7

http://www.arm.com/products/processors/cortex-a/cortex-a7.php

Signed-off-by: Denys Dmytriyenko <denys@ti.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
iproute2: Fix build failure on ppc64

Backport three patches from upstream for ppc64:

http://git.kernel.org/cgit/linux/kernel/git/shemminger/iproute2.git
ae70d96 ipntable: more fixes for ppc64
a55a8fd fix dependency on sizeof(__u64) == sizeof(unsigned long long)
a7c2882 ip: fix ipv6 ntable on ppc64

Signed-off-by: Ting Liu <b28495@freescale.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
sanity.bbclass:check if necessary to add march to BUILD_CFLAGS

1, There are a set of GCC built-in functions for atomic memory access. The
definition given in the Intel documentation allows only for the use of the
types int, long, long long as well as their unsigned counterparts. GCC will
allow any integral scalar or pointer type that is 1, 2, 4, 8 or 16 bytes in
length, suffix `_n' where n is the size of the data type.Such as:
__sync_fetch_and_add_n
__sync_fetch_and_sub_n
__sync_fetch_and_or_n
__sync_fetch_and_and_n
__sync_fetch_and_xor_n
__sync_fetch_and_nand_n
The above builtins are intended to be compatible with those described in the
Intel Itanium Processor-specific Application Binary Interface, section 7.4.

2, The glib-2.0-native and qemu-native invoke the above builtin function with
suffix `_4', and glib-2.0-native uses __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 to
test the existance.

3, Not all above builtin functions are supported by all target processors.Such
as i386 does not support the functions with suffix `_4', but i486 or later
support.

4, Prior to GCC 4.5, on the Intel's processor, the default arch is i386 unless
GCC is built with the --with-arch switch. Since GCC 4.5 the default arch is
implied by the target.

5, If your host GCC is older than 4.5 and it is built without the --with-arch
switch, when you use the GCC to compile target, you should specify -march to
tell GCC what the target's arch is, otherwise i386 is used as default.

Above all, when use older GCC to compile glib-2.0-native or glib-2.0-native,
and the GCC incorrectly uses i386 as default, the above builtin function
with suffix `_4' is not referenced. We should have a check in sanity.bbclass
to tell the user if necessary to add march to BUILD_CFLAGS in this situation.

http://gcc.gnu.org/onlinedocs/gcc-4.7.2/gcc/_005f_005fsync-Builtins.html#_005f_005fsync-Builtins
http://gcc.gnu.org/ml/gcc-help/2009-06/msg00037.html
http://gcc.gnu.org/gcc-4.5/changes.html
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47460
http://llvm.org/bugs/show_bug.cgi?id=11174
http://download.intel.com/design/itanium/downloads/245370.pdf

[YOCTO #3563]

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
connman: upgrade to 1.12

- 0002-storage.c-If-there-is-no-d_type-support-use-fstatat.patch no longer needed;
fix included in package source code

Signed-off-by: Cristian Iorga <cristian.iorga@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
connman: Wired inteface provisioned via qemu

- connman-conf package re-implemented
- connman 1.12 introduces provisioning for
wired interfaces also;
- wired interface settings are read from
kernel cmdline if present;
- after that are passed to connman as a
config file
- for BA, this is not needed, as BA will
have a network infrastructure to work with.

Fixes [YOCTO #3227];
Fixes [YOCTO #3804];
Fixes [YOCTO #3843].

Signed-off-by: Cristian Iorga <cristian.iorga@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
buildhistory.bbclass: add support for SRCREV logging

- create "latest_srcrev" for each recipe with the following format:
${BB_FILENAME},${SRC_URI},${SRCREV},${FROM_AUTOREV}

[YOCTO #3041]

Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
bitbake.conf: add STAMPS_DIR for constructing STAMP

Add STAMPS_DIR for constructing STAMP, the defination of STAMP is:

STAMP = "${TMPDIR}/stamps/${MULTIMACH_TARGET_SYS}/${PN}/${EXTENDPE}${PV}-${PR}"

We can only change the TMPDIR if we want to change the STAMP's location,
but the bb_cache.dat would be regenerated if TMPDIR changes, so add
STAMPS_DIR for constructing it, and add it to the BB_ENV_EXTRAWHITE,
this is very usefull for the "bitbake -S", since then it can be run by:

STAMPS_DIR=<path> bitbake -S <recipe>

which will avoid putting the stamps to ${TMPDIR}/stamps.

BTW, break the too long BB_ENV_EXTRAWHITE into several lines.

[YOCTO #1659]

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
bitbake-whatchanged: print what is about to happen

* Contents:
  - Summary
  - Usage
  - Implementation summary
  - Output
  - TODO

* Summary:
  This is used for printing what is about to happen between the current and last
  builds, for example:

  $ bitbake core-image-sato
  # Edit some recipes
  $ bitbake-whatchanged core-image-sato

  The changes will be printed.

* Usage:
  bitbake-whatchanged [[opts] recipe]

* Implementation summary:
  - Use the "STAMPS_DIR=<path> bitbake -S recipe" to generate the new
    stamps, compare these stamps to the one in the old stamps dir (tmp/stamps),
    so we will get what are changed.

  - When the "-v" (verbose) is not specified:
    > Figure out the newly added tasks
    > Figure out the PV (including PE) and PR changed tasks
    > The left tasks are the ones that the "Dependencies" changed tasks

  - When "-v" is specified:
    > Figure out the newly added tasks
    > Use bb.siggen.compare_sigfiles to figure out the details

* Output, for example (core-image-sato with different git tags)
  and with recipes upgraded):
  - without "-v":
    Figuring out the STAMPS_DIR ...
    Generating the new stamps ... (need several minutes)
    === Newly added tasks: (5 tasks)
      core-image-sato: do_configure do_populate_lic do_install do_rootfs do_compile
      # Note: This is because the "bitbake -S" always generate the sigdata for
      # do_compile, do_rootfs and other task, we may need fix this from "bitbake -S"

    === PV changed: (130 tasks)
      alsa-utils: 1.0.25 -> 1.0.26
      cross-localedef-native: 2.16 -> 2.17
      eglibc-initial: 2.16 -> 2.17
      [snip]

    === Dependencies changed: (3593 tasks)
      busybox: do_package do_package_write do_build do_packagedata do_populate_sysroot do_install do_compile do_package_write_rpm do_configure do_populate_lic
      atk-native: do_compile do_package_write_rpm do_package do_configure do_populate_sysroot do_install do_populate_lic do_patch do_packagedata do_build do_package_write do_unpack
      [snip]

    === Summary: (3728 changed, 1134 unchanged)
    Newly added: 5
    PV changed: 130
    PR changed: 0
    Dependencies changed: 3593

    Removing the newly generated stamps dir ...

  - with "-v":
    === Newly added tasks: (5 tasks)
      core-image-sato: do_configure do_populate_lic do_install do_rootfs do_compile

    === The verbose changes of glib-2.0-native.do_do_install:
    Hash for dependent task virtual:native:glib-2.0_2.34.3.bb.do_compile changed from bab8b8dd95be1b83dcec93f755b1812b to 70f746df7809acaa52de204b0685abb4

    [snip]

    === Summary: (3728 changed, 1134 unchanged)
    Newly added: 5
    Dependencies changed: 3723

    Removing the newly generated stamps dir ...

* TODO
  - It seems that the "bitbake -S core-image-sato" has bugs, it would always
    report errors, but doesn't fatal errors

  - The gcc-cross' stamps are in tmp/stamps/work-shared, but the
    "bitbake -S" doesn't put the stamps in work-shared.

  - The "bitbake -S" always generates the sigdata for image recipe's do_compile,
    do_install and other tasks, we may need fix this from "bitbake -S".

  - Print the ones which can be installed from the sstate.

[YOCTO #1659]

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
pulseaudio: rationalise existing configuration using PACKAGECONFIG

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
pulseaudio: respect the systemd DISTRO_FEATURE

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Near Field communication recipe for neard 0.9

The Linux NFC project aims to provide a full NFC support for Linux.
It is based on the neard NFC user space stack running on top of the
Linux kernel NFC subsystem.
The code generated using this recipe was tested on a ARM11 device, with
a kernel 3.6, using, for the NFC hardware, a USB dongle with the PN533
chipset (SCL3711)

Signed-off-by: Saul Wold <sgw@linux.intel.com>