This script will be embedded in the SDK tarball and will be called by
the SDK installer. It replaces the interpreter path in all binaries and
it also changes the ld.so.cache and SYSDIRS in dynamic loader.
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This patch is needed so that all SDK binaries have the PT_INTERP section
size set to 4096 (max path size in Linux) in order to be able to parse
the binaries later and change the interpreter to the path we want.
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Modifying the dynamic loader path in all binaries by the SDK installer
would not be possible because we cannot know in advance the SDK target
location. Hence, the PT_INTERP section size has been set to 4096 (which
is the maximum path lengh in Linux).
Also, for the dynamic loader SYSDIRS and ld.so.cache paths, special
4096 bytes sections were allocated so that we can easily parse the ELF
binary at install time and modify the paths.
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Martin Jansa [Thu, 2 Aug 2012 12:09:50 +0000 (14:09 +0200)]
u-boot.inc: fix regexp used when ld-is-gold
* with old regexp it wasn't reentrant, causing stuff like this:
-LD = $(CROSS_COMPILE)ld
+LD = $(CROSS_COMPILE)ld.bfd.bfd
-LDR = $(CROSS_COMPILE)ldr
+LDR = $(CROSS_COMPILE)ld.bfd.bfdr
when do_compile was reexecuted, also breaking LDR variable and
http://git.yoctoproject.org/cgit/cgit.cgi/meta-ti/tree/recipes-bsp/u-boot/u-boot/0001-config-Always-use-GNU-ld.patch
when it was used together with u-boot.inc from oe-core (meta-ti is using own u-boot.inc)
* This patch is also better solution to ld-is-gold problem then regexp in metadata.
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Wed, 1 Aug 2012 08:01:28 +0000 (08:01 +0000)]
gcc-configure-target: Set native-system-header-dir for target gcc
Without this set, in the case host=target (which it does for on-target
gcc), the native header directory is set to the target sysroot with
no prefix. This means it would look for sdt.h on the build system
instead of in the target headers and this can lead to build failures
and is host contamination of the build.
The correct fix is to explicitly set the native header directory to
the correct location and then the headers get detected correctly.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
package_rpm.bbclass: Accomodate dash when using arrays
we were assigning local variable to an array coming through
positional arguments. local is a non posix contruct thats
also supported by dash luckily but operates differently in this
case it exapnds the array before assignment. so
local pkgs="$@"
turns into pkgs=locale-base-en-us locale-base-en-gb
ant we see errors
run.do_rootfs.25593: 932: local: locale-base-en-gb: bad variable name
So lets not use defining and assigning local in one go
first define a local and then the assignment
Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Paul Eggleton [Mon, 30 Jul 2012 08:52:01 +0000 (09:52 +0100)]
scripts/oe-pkgdata-util: exclude unpackaged in glob output
Check for .packaged file and exclude packages if this file does not
exist - this avoids attempting to install empty packages during
complementary package installation within do_rootfs that didn't end up
being created (and failing as a result).
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Paul Eggleton [Tue, 31 Jul 2012 10:22:05 +0000 (11:22 +0100)]
combo-layer: ensure init works with split local config
If the local configuration is already split out, ensure the init action
works properly and does not error in the case that last_revision is not
set. Additionally, if the local configuration is within the repository,
prevent it from being committed and add it to .gitignore.
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When you have a distro which has older version of
glib-2.0 installed then it does not have compile_resources
installed which essentially glib-2.0 nativesdk is
looking for on build host. So like in a cross build
we disable the configure check which will force it
to build an internal copy and use it.
This problem may not be seen on newer distros like
ubuntu 12.04 since they have newer version of glib-2.0
installed
Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Martin Jansa [Tue, 31 Jul 2012 02:00:01 +0000 (04:00 +0200)]
package.bbclass: fix TypeError in runstrip
* some packages have .ko files which are not elf, without this change
it fails with TypeError, with this change only runstip fails and
reports where:
ERROR: runstrip: ''arm-oe-linux-gnueabi-strip' '/OE/shr-core/tmp-eglibc/work/armv4t-oe-linux-gnueabi/emacs-23.4-r0/package/usr/share/emacs/23.4/etc/tutorials/TUTORIAL.ko'' strip command failed
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The patch of converting char type to signed char is only applied to arm,
in fact it should be applied to powerpc too since powerpc has the same
assumption for char type. To x86 and mips, this patch has not impact.
Signed-off-by: Roy.Li <rongqing.li@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
scripts/bitbake: unbreak the git version comparison
With the current code, we're calling awk to do a floating point comparison
between '1.7.0.4' and '1.7.5' (on an ubuntu 10.04 LTS machine). These clearly
aren't proper floating point numbers, and the comparison is incorrect. It's
returning true for 1.7.0.4 >= 1.7.5.
Instead of using a floating point comparison for this, call out to python and
let it do it.
Signed-off-by: Christopher Larson <chris_larson@mentor.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Paul Eggleton [Tue, 31 Jul 2012 00:06:26 +0000 (01:06 +0100)]
combo-layer: allow splitting out local config
Allow splitting the local parts of the configuration (mostly
local_repo_dir and last_revision, although there is no limitation) to
a side-by-side -local.conf file, with component sections optionally
tagged with the combo layer branch name. This effectively allows you to:
* avoid polluting the history by committing the updated last revision
to the combo repository for every update
* avoid putting local repo paths into the combo repository
* manage multiple branches of the combo repository whilst avoiding the
possibility of mixing the configuration for one branch with another.
An example split configuration (note, values may be artificial):
Paul Eggleton [Tue, 31 Jul 2012 00:06:24 +0000 (01:06 +0100)]
combo-layer: improve patch list handling and output
* Ignore blank lines in patch list
* Don't fail in interactive mode if patch list is deleted
* Show patch counter
* Show relative path for patches
* Print headings before applying patch list for each component
Also change to using a "with" block to read the patch list so it gets
closed properly when we're finished.
Fixes [YOCTO #2455].
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Paul Eggleton [Tue, 31 Jul 2012 00:06:23 +0000 (01:06 +0100)]
combo-layer: drop to a shell when apply fails during update
If applying a patch fails during the update process, drop to a shell
instead of exiting; at that point the user can manually apply the patch,
do nothing and "exit" to skip it, or "exit 1" to abort the process.
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Paul Eggleton [Mon, 30 Jul 2012 23:31:00 +0000 (00:31 +0100)]
qt4: allow recipes building commercial edition
To enable building the commercial edition of Qt (through additional
recipes that are *not* provided by OE-Core) we need to tweak a few
things:
* Don't make recipes that inherit qt4x11.bbclass depend on qt4-x11-free
- instead add qt4-x11 to DEPENDS and then have qt4-x11-free include
this in its PROVIDES. A commercial equivalent recipe should do the
same.
* Add a QT_LICENSE_FILE variable that can be used to specify the license
file required by the commercial edition.
* Add a QT_LICENSE_FLAGS variable which the recipe can set to select the
license option being used. The default of "-opensource" retains the
current behaviour; a commercial recipe should set it to "-commercial".
Fixes [YOCTO #2505].
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We set do_populate_sdk[depends] in populate_sdk_*.bbclass, but since
these are inherited at the top of populate_sdk_base.bbclass, those
values are wiped out by using = at the end of the latter class. Use +=
to avoid this.
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
guile:meta/Makefile change install-data-hook to install-exec-hook
In guile meta/Makefile, what install-data-hook do
must be run after install-binSCRIPTS.so it's a exec hook, not a data hook.
If keep these exec-hook in data-hook,when we run make with multi-jobbing ,
install-data-hook and install-binSCRIPTS will be separately
processed in different thread, no any dependence.
that will cause error sometimes.
[YOCTO #2796]
Signed-off-by: Song.Li <Song.Li@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Paul Eggleton [Sun, 29 Jul 2012 05:41:24 +0000 (06:41 +0100)]
classes/package: ensure pkgdata is cleaned out first
If do_package needs to be re-run and packages are removed/renamed as a
result, we want the corresponding stale pkgdata files to no longer be
present; for that we need to ensure all of the old pkgdata files are
cleaned out prior to creating the new ones. This is particularly
important now we rely on pkgdata more heavily (for complementary
packages, license manifest, etc.).
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Peter Seebach [Fri, 27 Jul 2012 21:54:48 +0000 (16:54 -0500)]
pseudo.inc/pseudo_1.4.bb: update pseudo to 1.4
This update replaces the half-baked --arch logic with the use
of $CFLAGS to pick compiler flags, on the grounds that it makes
a lot more sense for the build system to pick flags than for
pseudo to try to guess what they should be; this should allow
pseudo to at least compile for targets, and possibly run on
them.
This doesn't solve the problem of guessing how to forcibly
build the 32-bit variant on hosts, because we really don't
have a general solution for that. There's no idiom for "given
this set of compiler flags and this architecture, what flags
would you use to request a 32-bit compile instead?" So we
basically ignore that for now. If someone comes along trying
to use the build system to build pseudo-native on a 64-bit
host that also supports 32-bit binaries and isn't x86, we
will revisit this.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Paul Eggleton [Mon, 23 Jul 2012 06:59:11 +0000 (07:59 +0100)]
buildhistory: improve performance of image info collection
Reduce the number of calls to the packaging tool, especially in the case
of rpm, using helper utilities to gather the required information more
efficiently where possible.
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Paul Eggleton [Mon, 9 Jul 2012 13:15:08 +0000 (14:15 +0100)]
Rework installation of dev, dbg, doc, and locale packages
Use a similar mechanism that was previously used to install locales at
rootfs generation time to install other "complementary" packages (e.g.
*-dev packages) - i.e. install all of the explicitly requested packages
and their dependencies, then get a list of the packages that were
installed, and use that list to install the complementary packages. This
has been implemented by using a list of globs which should make it
easier to extend in future.
The previous locale package installation code assumed that the locale
packages did not have any dependencies that were not already installed;
now that we are installing non-locale packages this is no longer
correct. In practice only the rpm backend actually made use of this
assumption, so it needed to be changed to call into the existing package
backend code to do the complementary package installation rather than
calling rpm directly.
This fixes the doc-pkgs IMAGE_FEATURES feature to work correctly, and
also ensures that all dev/dbg packages get installed for
dev-pkgs/dbg-pkgs respectively even if the dependency chains between
those packages was not ensuring that already.
The code has also been adapted to work correctly with the new
SDK-from-image functionality. To that end, an SDKIMAGE_FEATURES variable
has been added to allow specifying what extra image features should go
into the SDK (extra, because by virtue of installing all of the packages
in the image into the target part of the SDK, we already include all of
IMAGE_FEATURES) with a default value of "dev-pkgs dbg-pkgs".
Fixes [YOCTO #2614].
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Paul Eggleton [Mon, 23 Jul 2012 09:43:22 +0000 (10:43 +0100)]
classes/rootfs_rpm: improve speed of RPM rootfs construction
Improve the performance of the RPM backend during do_rootfs by
performing most of the package name to file resolution in a separate
utility written in C, processing the entire list of packages at once
rather than running rpm on the command line which loads the RPM database
for every package.
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Richard Purdie [Thu, 26 Jul 2012 12:56:58 +0000 (12:56 +0000)]
sstate.bbclass: Add a string representing the lsb release to native/cross sstate
This patch adds the lsb name and revision to the path used for sstate files.
This means that reuse of sstate files between different distributions is restricted
by default. The behaviour can be configured using mirror urls, for example:
would map Ubuntu 11.10 to a more generic "Ubuntu" named sstate feed.
Usually, more modern distros have increased libc versions for example
so whilst more older native/cross sstate packages will usually work on newer
distros, the opposite is not true. This patch allows development of policy
to better handle this although no default policy is currently being used.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Tue, 24 Jul 2012 12:37:01 +0000 (12:37 +0000)]
sstate: Add a two character subdirectory to the sstate directory layout
Currently all sstate files are placed into one directory. This does not scale and
causes a variety of filesystem issues. This patch adds a two character subdirectory
to the layout (based on the first two characters of the hash) so that files
can be split into several directories.
This should help performance of sstate in most cases.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Thu, 26 Jul 2012 13:05:51 +0000 (14:05 +0100)]
lib/oe/lsb: Add basic LSB functions
This code was written by Christopher Larson <chris_larson@mentor.com> and
allows generation of the LSB release data based upon the lsb_release
command. It also includes a helper function to generate a string
representing a given distribution.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Saul Wold <sgw@linux.intel.com>
Yao Zhao [Thu, 26 Jul 2012 20:34:19 +0000 (16:34 -0400)]
bzip2-native: handling native path issue
follow Richard's approach, modify bzip2-native recipe to install bzip2 package
binaries to STAGING_BINDIR_NATIVE/bzip2-native to avoid problems when other
package is doing upack to reference bzip2. libbz2.so* still installs to
STAGING_LIBDIR_NATIVE.
change python-native to depends on bzip2-replacement-native instead of
bzip2-full-native and add EXTRANATIVEPATH for bzip2-native.
Didn't add bzip2native.bbclass as python-native is the only user so far.
Signed-off-by: Yao Zhao <yao.zhao@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
Paul Eggleton [Thu, 26 Jul 2012 14:35:00 +0000 (15:35 +0100)]
classes/package: reduce dbg package dependencies
Make dbg package dependencies added via DEPCHAIN_POST less aggressive -
only add dependencies on dbg packages for shared library dependencies.
This avoids dragging in extraneous packages (such as eglibc-dbg forcing
bash-dbg to be installed) whilst preserving the ability to easily debug
into shared libraries in use by an application by just requesting the
installation of the single dbg package for that application.
For task recipes however we preserve the previous behaviour, since when
you install task-xxx-dbg you expect the dbg packages for every package
in the task to be installed. Unfortunately not all of our tasks inherit
from task.bbclass so we just use a name match - this should be tidied up
later.
Fixes [YOCTO #2599].
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
u-boot.inc: update linker arguments to pass --sysroot arg
If we are building from sstate-cache it's possible to be building
from another folder on another machine, therefore the linker requires
that a proper --sysroot is passed too it so it can find things like
libgcc.a and avoid errors such as:
Since files installation dirs are DESTDIR/etc/, DESTDIR/sbin etc
in Makefile, not DESTDIR/${sysconfdir}/, DESTDIR/${sbindir}/, for
the native package, a prefix can not be inserted which is needed
when do the next step of install and do_populate_sysroot.
Now we define do_install_virtclass-native in which DESTDIR is
${D}/${STAGING_DIR_NATIVE}
This lets us control whether we build position independent executables. As, as
far as I know no distros are adding a 'pie' distro feature, the effect of this
commit for most will be to disable pie in bluez4. I think this is best to
ensure consistent behavior among the recipes with regard to this.
This also sidesteps a build failure I've seen with bluez4 failing due to
libudev.a not having been built fPIC.
Signed-off-by: Christopher Larson <chris_larson@mentor.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
bitbake.conf: override -cpu for qemu on ppc with SPE
We use -mtune flags which lets our application have
SPE intruction in them which is a good thing but when
running qemu especially in user mode these application
wont work with default powerpc emulation. Therefore we
have to add proper -cpu option to let qemu emulate for
a given cpu.
qemu: Fix illegal instruction errors on e500 emulation
I caught this when running user mode qemu for ppc/e500 applications
which had SPE instructions in them will abort with illegal instruction
error all the time.
The patch is already applied upstream we needed a backport into 0.15.x
The pkg.m4 file should be packaged as part of the base package
instead of the -dev package, it had been in the base package, but
I seemed to have missed that it moved during my PACKAGES reorder,
and this caused the meta-toolchain to break
Paul Eggleton [Thu, 26 Jul 2012 10:51:28 +0000 (11:51 +0100)]
usbutils: avoid dependency on bash
By virtue of having #!/bin/bash, the usb-devices script declared that it
requires bash, however manual examination, checkbashisms and tests with
dash and busybox show that it doesn't contain any bashisms, so change
the script's header and remove the RDEPENDS on bash.
Additionally, update-usbids.sh was manually checked for bashisms, run
through checkbashisms and tested with busybox (although it did not have
a bash-specific header).
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Paul Eggleton [Thu, 26 Jul 2012 14:34:59 +0000 (15:34 +0100)]
classes/package: do not add self-dependencies to dev/dbg packages
Avoid adding dependencies to dev and dbg packages on themselves via the
DEPCHAIN_* handling code. These don't actually cause any problems, but
they do complicate dependency graphs.
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Wed, 25 Jul 2012 20:16:46 +0000 (20:16 +0000)]
base/perlnative/pythonnative/gzipnative: Add a new variable to enable easier handling of native path issues
If something is listed in ASSUME_PROVIDED but also manually built (like bzip2-native and
bzip2-replacement-native), we need to ensure that the installed binaries are only accessed
for things which list the provider in DEPENDS.
This patch adds a generic mechanism to handle this instead of everything reinventing the
wheel. EXTRANATIVEPATH += "perl-native" will ensure that ${STAGING_BINDIR_NATIVE}/perl-native
is added to PATH.
This means that:
a) Such providers should install to ${bindir}/xxx-native
b) Should PROVIDE += "xxxx-replacement-native"
c) That users should DEPEND on xxx-replacement-native and have EXTRANATIVEPATH += "xxx-native"
This patch enables this at the core level, the bzip2 recipe still needs adjusting to work
like this along with adjustment of the users of bzip2-replacement-native (python-native?).
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
some bash macros are missing from acinclude.m4 which are added up-stream. This
wasn't actually breaking anything but but it was causing the configure script
to not run all the tests it's intended to run.
move the acinclude.m4 from "files" folder to version specific folders so that
readline-5.2 continue to use the older acinclude.m4 only readline-6.2 use the
updated one
m4/nullsort.m4 tries to find sort dir, and write it to updatedb,
but nullsort.m4 is checking the host dir. Once the sort dirs on
target and host are different, updatedb will fail due to wrong
sort dir.
Since we always have sort under ${bindir}, so we can assign it
directly.