Age | Commit message (Collapse) | Author |
|
The default bdk config will append the variable and inject whitespace
into it. This isn't a problem normally except that the check to see
if any packages are configured doesn't filter out whitespace.
Change-Id: I6fbbc16cc7c07f4e1b7e44c8e20738ad8d184084
|
|
When building under the BDK, some paths are absolute instead of relative,
so we end up appending an absolute path to an absolute path which breaks.
Add explicit checks to each possible absolute path before we try to make
it into one by hand.
BUG=b/27434200
TEST=`m -j32` w/libpng under bdk works
TEST=`lunch && make` w/python works
TEST=`make PRODUCT-brilloemulator_arm-eng` w/python works
Change-Id: I89070760bc849ac652c2e4a71055d66da763792c
|
|
The buildbots run `make` directly rather than loading the envsetup.sh
file. This means none of the ANDROID vars we were using were exported.
Have the mk file recreate & pass them down.
BUG=b:26861037
TEST=`make PRODUCT-brilloemulator_arm-eng` w/python works
Change-Id: Ibdd74880b3aafa7d27eab70219ec007986f6689f
|
|
This appears to be necessary on the builders.
BUG=b:26861037
TEST=building arm w/python enabled still works locally
Change-Id: Ie2ce704df781bd2cbf89dea2c15e58be61adc8d6
|
|
Some flags we want to use everywhere and the build puts those into the
TARGET_GLOBAL_CFLAGS variable. These are things like stack-protector
and -D__BRILLO__ (which can in turn affect some bionic headers).
BUG=b:26861037
TEST=building python for arm/x86 works now
Change-Id: I46c617d2a27bc1dfbce9775e744e23a61871ef02
|
|
Bionic will reject non-PIC/PIE code now for all programs. We need to
manually add the -fpie/-pie flags to the command line in our compiler
wrapper so we get PIE programs by default. Ideally this would be in
the compiler itself, but the Android toolchain doesn't do that, and
upstream gcc support isn't available until gcc-6.
Bionic also only accepts DT_RUNPATH tags and ignores DT_RPATH tags,
so switch over to the newer tag format so ELFs can find their libs.
BUG=b:26861037
TEST=`python2.7 -c 'print("HI")'` works
Change-Id: I3d114119cd5c0920a152e9a7c136b1cf8c47a3d6
|
|
We don't need to hide the tools if no packages are opted in.
This way we can still get `emerge` when requested and then we
can run it by hand.
BUG=b:26861037
TEST=default build doesn't include any tools
TEST=adding 3rd-party-packages to PRODUCT_PACKAGES includes tools only
TEST=also adding PRODUCT_3RD_PARTY_PACKAGES includes those packages
Change-Id: I59a9eea6a6b3e0f15b0ca076be36340c786021e5
|
|
Gentoo is providing a newer version which python pulls in, so update
the dep on our side to match any version.
BUG=b:26861037
TEST=`emerge python:2.7` no longer pulls in eselect-python
Change-Id: I1b09b783c15d9ee214f33b2d070703313cb13bbc
|
|
The original design was that people could only install the latest version
of packages and that's it. Requests are now coming in to support older
SLOTs (like getting python-2.7). The current system turns the atoms into
make targets, but the full atom syntax includes bytes that are not valid
targets (such as the colon in "dev-lang/python:2.7").
Rework the modules so that we only run one instance of emerge, and give
it the full list of packages in one go.
BUG=b:26861037
TEST=`lunch brilloemulator_x86_64-eng && make -j32` now includes python in the image
Change-Id: Ia95e522572f4c944acbf449f93c702c6687f3fd1
|
|
The kati step does not seem to pass down variables used under
pattern targets.
BUG=b:26438312
TEST=building under ninja can find packages
Change-Id: I4179e8a8cb609072ad5508fc996b40ea84ae25b4
|
|
Since the zlib headers aren't exported/installed, we need to symlink
them in here for the compiler to find.
BUG=23171578
Change-Id: I5a2ef5d1508966902c6a722593c412a055917973
|
|
We don't want to include or link against host paths, so throw an error
rather than letting things perhaps silently compile.
Change-Id: I3908d2df6935ad81e883535311e10c363f55d302
|
|
It doesn't build and we don't want it (yet?), so disable it for now
and wait until someone requests it to figure things out.
Change-Id: Ieefc44a187ced06fdaef37deabfe8da34b86986b
|
|
Since the expat headers aren't exported/installed, we need to symlink
them in here for the compiler to find.
BUG=23171578
Change-Id: Ie74b16feb8d4c4b2663f6a0a6b474fadab469302
|
|
For 64bit targets, make sure we use /usr/lib64 instead of /usr/lib.
The binding between "is 64bit" and "use lib64" is kind of broken, but
Android doesn't really support multiple ABIs cleanly, so this is fine
until it does.
Change-Id: I3dcd7ee50bac08d4b72af793b37c6031c6890611
|
|
Since we have a bunch of libs already in external/, make sure we stub
out all the ebuilds that duplicate things. This way we don't build
from two different sources and clobber things in weird ways.
In order for packages to find their headers though, we need to set up
a system include tree for packages that aren't "installed".
BUG=23171578
Change-Id: Idb5a4711dd30f9c5011dda8d06a874849a3609cb
|
|
Since Android includes its own logging system, we don't need (or want)
an external system logger.
Change-Id: Ib4bbc7feb9af2acbf13452001b1de1e1c877b716
|
|
We sometimes fail when building in parallel because we start
emerging before the C/C++ core system libs are available.
Change-Id: I0b52f9b29bfe7418b4dc8cdb34c27e5d7d69e27d
|
|
Since Android is built w/System V features disabled, flip off this
flag as well.
Change-Id: Ic83c34d656bb9fccf3b56c9904495ec72652f24f
|
|
We still use gcc for 3rd party packages, so disable the use of clang when
building/linking against them.
Change-Id: Ie2389d0c8eb1eb8080ad77ddca1938b1ebf9109d
|
|
This allows us to override profile settings further:
- switch from ELIBC=glibc to ELIBC=bionic
- disable glib[mime] to avoid fat mime/xml deps
- disable USE=static-libs by default so we only use shared libs
- omit the charset.alias file from all packages as random GNU packages
all want to install it (which breaks due to collisions), and the
content is pretty pointless (maps like 2 obscure aliases)
Change-Id: I3bfa4ba2487257e59410f54da3c5596258462b8f
|
|
We need some extra flags when building C++, so create a new wrapper for it.
BUG=24803386
TEST=emerge glog/gflags works
Change-Id: I795e1bfd28c78150a2950b0c6b6e4d2b225406fd
|
|
Since we'll have a 3RD_PARTY_CXX setting, it doesn't make sense to have
a 3RD_PARTY_COMPILER variable anymore. Rename it everywhere.
We also drop it from the emerge deps as it's redundant -- it's already
listed in the 3RD_PARTY_WRAPPERS variable.
BUG=24803386
TEST=emerge glog/gflags works
Change-Id: Iea28b0668c043701b249e9a649a7f20ed6d92348
|
|
We have no interest in these currently.
Change-Id: I6b9f678a2e04d28bdc49c37c84340bc3109682b3
|
|
We want to use $(hide)mkdir rather than @mkdir, and delete some
left over debug echo code.
Change-Id: Ia0256dd7669a7d4b4b8090ed732d3f3911573854
|
|
We need to tell pkg-config where to find its .pc files, so add a wrapper
to dynamically locate the sysroot and various inputs.
BUG=24775992
TEST=building pax-utils (which uses pkg-config) works now
Change-Id: I6ad54e8521649422f43e72105c6b135043c99c0b
|
|
Change-Id: Ic63f4773bbb58ca0e956b92d5a1bca4179ed1729
|
|
Some build systems are stupid and look for "gcc" in the compiler name.
Rename the wrapper to "3rd-party-gcc" to avoid those bugs.
Change-Id: Ied37ccdb94faadd5585c2e1f82659cf4a19e6a24
|
|
This way we don't have to worry about the sources we're using disappearing.
Change-Id: I53024b02092f6812edac8a93d8921706c521c6a1
|
|
We don't actually need to set this (it's a copy & paste from CrOS), and
it breaks things because portage will try to run `bzip2 -c foo.bz2` but
that will try to compress, not decompress.
Change-Id: I24fc43169102b0698778bf957b052e3b74ea8e74
|
|
Stub out a bunch more packages that the Android base always provides.
BUG=24611334
TEST=emerge various packages no longer pulls these in
Change-Id: Iadaf63c9f027f095a187c0c742f81dd21a7db5c5
|
|
There's a bunch of settings we want to disable, so set up a make.defaults
file to hold all of those in our custom profile.
BUG=24611334
TEST=emerging packages no longer enables a lot of USE flags
Change-Id: I0b4987e050ecf3aa20da545f7d70ed120c1b8ec4
|
|
This is an example people can use for building against 3rd party libs.
BUG=24611334
TEST=built packages and they worked in qemu
Change-Id: I962cddf36d57450c8ed752b219b9e3ce2e2ededf
|
|
This is the main entry point for gluing Gentoo packages in.
To use this, just update your device's mk files like so:
PRODUCT_3RD_PARTY_PACKAGES := <list of Gentoo packages>
PRODUCT_PACKAGES += 3rd-party-packages
When you build, those packages will be built & installed automatically.
Examples for building your own code against those will be a follow up
commit.
BUG=24611334
TEST=built packages and they worked in qemu
Change-Id: Ic86d62415fdab1b94947dbfa7658264c2824d6e0
|
|
The way android builds things is via relative paths everywhere and with
the working directory of the top level checkout. When we go to build
external packages though, they often need to be in a different working
directory which means all of the relative paths break.
Add a compiler wrapper to merge the existing android env vars and the
relative paths to create absolute paths we can leverage.
Further, android will pass flags to the system paths during compile and
link. If those aren't used, then the build/link will fail in weird ways.
Unfortunately, some build systems might filter/sort flags, so add those
to the wrapper too rather than try and track down/fix every build system.
BUG=24611334
TEST=built packages and they worked in qemu
Change-Id: I93432c7ed23941cd44d799e7a8bdb83d745d1952
|
|
This creates emerge/ebuild/portageq wrappers people can execute directly
(as well as the android build system will use), and the target-specific
config files they rely on.
The tools should work off of the android env vars to locate the current
board/build directories rather than hardcoding any of them in the output.
BUG=24611334
TEST=built packages and they worked in qemu
Change-Id: I97171f3d8d88230880af9ba3045d691951e0b5fe
|
|
|