Commit Graph

20 Commits

Author SHA1 Message Date
Ross Burton e5fcc7e1ca pseudo: warn twice if the 32-bit toolchain appears broken
Putting a warning at the top of do_compile is useful but not everyone reads the
file from beginning to end, so use a trap to put the message at the bottom too.

[ YOCTO #4919 ]

(From OE-Core rev: 51950fcbe4b98bdbb8b3dde88a8729e540d9609f)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-26 17:00:05 +01:00
Ross Burton 601e1a740b pseudo: use bbnote/bbwarn instead of echo
In the future bbnote/bbwarn will be integrated into bitbake's logging, so use
those functions instead of echo directly.

(From OE-Core rev: 4933d7ae45d88090191c8ea07fd109ed34925e2d)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-26 17:00:05 +01:00
Randy MacLeod 139b44be7a pseudo: force NO32LIB to true for nativesdk
The exported SDK only needs simulated root privileges for specific
tasks, such as the user-mode NFS server or rootfs extraction, and
oe-core does not support multilib builds in the generated SDK, so
it is neither necessary nor possible to build a 32-bit libpseudo.so
for a 64-bit SDK.

[YOCTO #5135]

(From OE-Core rev: 908b179b798704db74c886ec4c70c0942b09cb00)

Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-22 12:19:42 +01:00
Peter Seebach b099c7b36e pseudo: Always try to build 32-bit libpseudo when NO32LIBS is set to 0
This is for Yocto bug #4920. The NO32LIBS variable is intended to allow
the user to force the creation of a 32-bit libpseudo, for use with things
like prebuilt binary toolchains. Unfortunately, the tests for likely
compilability (stubs-32.h) were still present, so you would get silent
failures. And if you did cause it to try to build, the failures were not
particularly clearly explained.

So, we:
1. Emit at least a message during configuration saying we're only
building 64-bit, if we are.
2. Warn the user for at least one common case where we know builds
are likely to fail.
3. If NO32LIBS is 0, we try the compile for sure, and if it fails,
we've emitted at least some sort of message up near the top of the
compile output that tells you what might be wrong.

(From OE-Core rev: 22548b3243dfa2dc9861b0f15530632b37812a8c)

Signed-off-by: Peter Seebach <peter.seebach@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-07-31 06:59:56 +01:00
Peter Seebach ec4c1ee435 pseudo.inc: pseudo 1.5 uprev, support extra config flags
The pseudo 1.5 update is a moderately experimental set of changes
which ought to improve performance. With these changes, pseudo
uses an in-memory sqlite database which is lushed on exit,
the protocol is changed to reduce waiting for server responses,
and pseudo can suppress any and all fsync/fdatasync type operations.

This last feature is optional, and not on by default, so we need
to pass in an extra configure argument, but that argument wouldn't
be known to an older configure, so... Enter PSEUDO_EXTRA_OPTS which
is passed to configure, and which pseudo_1.5.bb sets by default to
"--enable-force-async". (I haven't added it in pseudo_git.bb, but
maybe it should be changed; I'm not quite as sure there.)

The justification for these changes is that, for most of the real-world
build cases I deal with, they produce a 25% or more reduction in the
build time of a project. This increases when a system is heavily
loaded.

(From OE-Core rev: 79ddb0c33401da442dbaa8e0d73ebacf297d9185)

Signed-off-by: Peter Seebach <peter.seebach@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-19 08:47:35 -08:00
Peter Seebach 7ee057911f pseudo.inc: Fix sqlite libdir again, pseudo 1.4.3
This updates to pseudo 1.4.3. Changes:

1. A couple of minor tweaks to reduce difficulties using SDKs built
   on slightly more recent machines on older machines; specifically,
   avoiding getting @GLIBC_2.7 symbol references for sscanf(), fscanf(),
   and open2().
2. Revision of the logic determining the library directory to use for
   sqlite's library files.

The latter is a source of difficulty because it's come up a few times
that we may want pseudo to use lib64 for libpseudo.so, but bitbake's
usual setup would have libsqlite3.a in lib regardless of bit width.
Cleaned up previous design a bit by providing a distinct setting for
sqlite-lib, which defaults to the same library directory used for other
things. Adjusted build to use this new setting. (This ends up being
${baselib}; on targets, that might not be lib, but for native builds
it generally is, and for SDK builds it appears to do the right thing.)

Testing: Successful build of meta-toolchain for both 64-bit and 32-bit
SDKMACHINE, and builds with NO32LIBS = "0" also succeeded. Also builds
for multilib targets.

(From OE-Core rev: ae8811bb26fba2e71d7280f6d6c4f5cec6a2871b)

Signed-off-by: Peter Seebach <peter.seebach@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-08 14:50:36 +00:00
Robert Yang aea2d8c02c recipes-devtools: replace virtclass-native(sdk) with class-native(sdk)
The overrides virtclass-native and virtclass-nativesdk are deprecated,
which should be replaced by class-native and class-nativesdk.

[YOCTO #3297]

(From OE-Core rev: bb67ddeb2eed3e25c626a279ef53a7e8c7bfe6f2)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-11-02 16:18:29 +00:00
Mark Hatle 926092bf39 pseudo: Fix pseudo-native rebuild when triggered by dep change
When NO32LIBS = 0, building 32-bit version of pseudo-native and
building on a 64-bit host -- if the build was triggered by a
dependency change on something pseudo uses, the build could fail
due to left over files from the previous build.  Fix this by
ensuring we run make distclean (and ignoring any failure codes) to
ensure we start over.

(From OE-Core rev: 30ae7320265efe039730cd2faf7bd86a264412ed)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-08-19 10:45:59 +01:00
Peter Seebach 3d164f74fd 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.

(From OE-Core rev: 711fcb4f10e2cefd7ff6e1921d87d1cad840d0c8)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-29 10:16:16 +01:00
Richard Purdie 604fc2adce pseudo: Drop nativesdk wrapper and link against old memcpy symbol
The -nativesdk pseudo wrapper setting LD_LIBRARY_PATH turned out to be a
bad idea since it can mix up different libc and lib-dl verisons which
may or may not work depending on the phase of the moon.

As an alternative to solving the original problem, this patch drops the
symbol version requirement on memcpy which allows pseudo to work with
libc's back to 2.7 which should be sufficient for our supported targets
using nativesdk.

[YOCTO #2299]
[YOCTO #2351]

(From OE-Core rev: c6c701f424aeb502d20ff02d02712e56f4e259a5)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-22 16:00:19 +01:00
Richard Purdie ea3db01838 pseudo: Fix bashisms
(From OE-Core rev: 90e22bbb316088fa951d51e75de4e5424bd51ed6)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-22 16:00:11 +01:00
Richard Purdie f562e2a393 pseudo: Ensure the correct libraries are used at runtime
There can be a conflict between the nativesdk libc and the host system's
libc. It is assumed the nativesdk version is of an equal or higher version.
This is a particular issue for pseudo if its loading a system binary
since the system's libc might be used of an older verison which would
then confuse libpseudo.so when loaded as a preload.

To avoid this, set LD_LIBRARY_PATH so the nativesdk libc is always
used.

Since we now use --without-rpath, we can remove the MAKEOPTS RPATH workaround.

[YOCTO #2299]

(From OE-Core rev: a481fe3b9883aa744be3253e2b4b27e6e46eb059)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-15 17:31:59 +01:00
Paul Eggleton 7cf26b2d3d pseudo: default NO32LIBS to 1
If this value is not set to 1, then systems with some 32-bit libraries
but no 32-bit version of libgcc installed will have pseudo-native fail
at do_compile. It should only really be set to 0 by those who know what
they are doing.

(From OE-Core rev: 489a36d3d6b67d706f5918638e1fbc05ccd59e21)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-13 13:49:35 +01:00
Mark Hatle 554cac7d13 pseudo: Tell pseudo to avoid specifying an RPATH
[Yocto #2251]

Add --without-rpath to avoid embedding rpaths into the pseudo
components.

(From OE-Core rev: ae978e9671fdbcb31e306308bfb816b4bd2b2496)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-13 12:05:52 +01:00
Peter Seebach c718c10b4b Pseudo: Update to 1.3
The various local patches have made it into upstream, so we update
the build files and jump to pseudo 1.3.  This also includes a popen()
fix which fixes some edge cases that caused failures trying to check
git branches and the like.

[Yocto bug #2181]

(From OE-Core rev: 0b007519fcfb1bcf2be9cad40b0f6265f8798518)

Signed-off-by: Seebs <peter.seebach@windriver.com>

Updated the pseudo_git.bb to match.

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-28 10:10:56 +01:00
Lianhao Lu a6ec59c4b2 pseudo: package the var/pseudo directory.
Fixed the "not shipped" packaging warnings.

WARNING: For recipe pseudo-nativesdk, the following files/directories
were installed but not shipped in any package:
WARNING:   /opt/poky/1.1+snapshot/sysroots/x86_64-pokysdk-linux/usr/var
WARNING:
/opt/poky/1.1+snapshot/sysroots/x86_64-pokysdk-linux/usr/var/pseudo

(From OE-Core rev: 91f6d5777e4fc9f261c361f41eda397a4903b334)

Signed-off-by: Lianhao Lu <lianhao.lu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-23 12:13:06 +00:00
Saul Wold f3a1a8897c pseudo: ensure libs are included in package
[YOCTO #1868]

(From OE-Core rev: de679a3036ebef1c7d7b8ee23f05590c95e498d9)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-03 12:14:41 +00:00
Richard Purdie 6527c17d56 pseudo: Fix QA warnings
This fixes two QA warnings:

a) Debug files being contained in the main package (by adding
   an appropriate FILES expression)
b) Stop hardcoding the RPATH in the nativesdk case since our
   path is on the loaders default search path

(From OE-Core rev: 1577975202437f8f89ef24a5e4d3f6c6c8a88c5c)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-09-28 14:58:50 +01:00
Mark Hatle c647c7a54c pseudo: Update pseudo to 1.1.1 version
Update both the core and pseudo_git packages to the latest 1.1.1 verison.

This fixes an issues where the call system() was not wrapped.  This could
lead to issues where certain spawned commands broke out of a pseudo-chroot
and created files in the wrong place.

Also the update the 1.0 -> 1.1.1 adds additional capabilities such as
beginning support for MacOS X.

(From OE-Core rev: 9eaa9ed38a197be76317cd3e42f54d1808c3e971)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-06-09 15:48:27 +01:00
Richard Purdie b1c0b3de20 pseudo: Add and use the 1.0 release version
Not using the git version has the advantage of removing several early bootstrap
dependencies such as git-native (which pulls in perl and openssl).

Signed-off-by: Richard  Purdie <richard.purdie@linuxfoundation.org>
2011-02-10 12:01:04 +00:00