mirror of
https://git.yoctoproject.org/poky
synced 2026-09-13 00:49:33 +02:00
Compare commits
188 Commits
yocto-5.0.
...
krogoth-15
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f5da2a5913 | ||
|
|
e244da150b | ||
|
|
c4d6b277f2 | ||
|
|
e89b6b84d8 | ||
|
|
325515a685 | ||
|
|
c2d93dcf42 | ||
|
|
116ee14fe0 | ||
|
|
b869068751 | ||
|
|
4eeaae772f | ||
|
|
4dc76844a6 | ||
|
|
d85ccb3daf | ||
|
|
4a98ef84b9 | ||
|
|
b6a3c9c298 | ||
|
|
fbe10c86e8 | ||
|
|
c96f149679 | ||
|
|
f73006031e | ||
|
|
c3f90184c7 | ||
|
|
ec0de3b71e | ||
|
|
54086de158 | ||
|
|
6dca3c67c3 | ||
|
|
88023056fe | ||
|
|
37b3e44b9d | ||
|
|
cb7787af8a | ||
|
|
3ee0f6afc8 | ||
|
|
b3acdca9b6 | ||
|
|
7204ed57ed | ||
|
|
7db217e7ac | ||
|
|
553ffcb941 | ||
|
|
ba4d4372b1 | ||
|
|
4f2716218f | ||
|
|
08e0391d9c | ||
|
|
5ddf1463d3 | ||
|
|
5f4369eb2a | ||
|
|
20aae4e5ef | ||
|
|
d4280db033 | ||
|
|
d79f5a98f7 | ||
|
|
22198f07af | ||
|
|
03d9d8e7d3 | ||
|
|
229e3e4e5f | ||
|
|
6ea7b46ef6 | ||
|
|
98c57bb512 | ||
|
|
ae849a348c | ||
|
|
95b2e086cb | ||
|
|
eea30774b4 | ||
|
|
250212eee6 | ||
|
|
e6917603e2 | ||
|
|
320dacf891 | ||
|
|
11ca5f99a7 | ||
|
|
cd0afe151c | ||
|
|
f7b994b752 | ||
|
|
720ae18403 | ||
|
|
ae832446d9 | ||
|
|
ba29029581 | ||
|
|
a4d74c100d | ||
|
|
b8e749ddd6 | ||
|
|
6240f7092e | ||
|
|
b2a6a89a29 | ||
|
|
39d2072ae9 | ||
|
|
8bdaefd8bd | ||
|
|
74f34dc4d2 | ||
|
|
e91e5324d0 | ||
|
|
99f695ac99 | ||
|
|
51e4dabf70 | ||
|
|
ff7c814661 | ||
|
|
ac84a1ce15 | ||
|
|
2bf1e70e3d | ||
|
|
ec2d08375b | ||
|
|
217448b911 | ||
|
|
662840a9ac | ||
|
|
1e583b1eb8 | ||
|
|
682cb00f04 | ||
|
|
726a2bf3bd | ||
|
|
5658888f11 | ||
|
|
6a268a6cf1 | ||
|
|
b2ab8f4321 | ||
|
|
76a4804f2b | ||
|
|
71ee363046 | ||
|
|
28066b3a21 | ||
|
|
4b57c55182 | ||
|
|
073c0ba55e | ||
|
|
727504235c | ||
|
|
6c56ed7b02 | ||
|
|
306cd99e98 | ||
|
|
f2b952fe99 | ||
|
|
b17a009b65 | ||
|
|
426eb13fa9 | ||
|
|
4007b48cf0 | ||
|
|
e506807f54 | ||
|
|
5a70719762 | ||
|
|
7901b12541 | ||
|
|
3674b577f6 | ||
|
|
9f0741a613 | ||
|
|
31351ce146 | ||
|
|
1c89eae86b | ||
|
|
95441efe6e | ||
|
|
5465517c85 | ||
|
|
d38658b784 | ||
|
|
abae515395 | ||
|
|
55b9718bd8 | ||
|
|
97753ee3ad | ||
|
|
fa602e6cc9 | ||
|
|
2806bed309 | ||
|
|
896b2a0a33 | ||
|
|
e576607c2d | ||
|
|
4fe89e0acd | ||
|
|
ff5b6b7eb1 | ||
|
|
83731d04b3 | ||
|
|
5cf3b562c3 | ||
|
|
613a74fcc8 | ||
|
|
4dd2808856 | ||
|
|
f43a689b3c | ||
|
|
9f968375b4 | ||
|
|
b5fcf4ec1b | ||
|
|
386c7c6ff5 | ||
|
|
c29636c369 | ||
|
|
99b89011f1 | ||
|
|
786f7eec78 | ||
|
|
3d6178ed1d | ||
|
|
73761bd8ac | ||
|
|
1ad7757cbb | ||
|
|
720c926271 | ||
|
|
e89f4e531f | ||
|
|
7925e8942f | ||
|
|
3a1b40b685 | ||
|
|
5b6e5ab134 | ||
|
|
613fee3563 | ||
|
|
7b10fd2026 | ||
|
|
5581f5a0f6 | ||
|
|
9825580d79 | ||
|
|
0df81c8485 | ||
|
|
2aae36ea43 | ||
|
|
7691471070 | ||
|
|
d8d2fa887d | ||
|
|
226d54067e | ||
|
|
200f6c8c35 | ||
|
|
7f9a10b861 | ||
|
|
b347363768 | ||
|
|
70918fbf25 | ||
|
|
d089de0d16 | ||
|
|
b3dc50e620 | ||
|
|
64512cbab8 | ||
|
|
8e44c6bff9 | ||
|
|
2fcce54c83 | ||
|
|
1b769a0774 | ||
|
|
be8dfdcb5a | ||
|
|
19f89f76bb | ||
|
|
4376fb8517 | ||
|
|
8f51f6153a | ||
|
|
829706d3c5 | ||
|
|
da4bfbef46 | ||
|
|
eff84a76ac | ||
|
|
e8898f0188 | ||
|
|
5d11ed7162 | ||
|
|
22f8a46d2d | ||
|
|
cc2522771e | ||
|
|
9e01e2ee5c | ||
|
|
f000d11753 | ||
|
|
9930fca92b | ||
|
|
387560a718 | ||
|
|
0e5cbe52b0 | ||
|
|
3261f47b97 | ||
|
|
b275edd305 | ||
|
|
0011368622 | ||
|
|
0461a6d433 | ||
|
|
b1df214a43 | ||
|
|
9c353b0849 | ||
|
|
3be5cc1cb9 | ||
|
|
2956e5ab34 | ||
|
|
de9f4b6982 | ||
|
|
f911299295 | ||
|
|
67454487be | ||
|
|
c0d988e676 | ||
|
|
42a4637a99 | ||
|
|
5b97ffa980 | ||
|
|
93f29f536e | ||
|
|
5a1ac4ea59 | ||
|
|
3aa988ef77 | ||
|
|
75ca532114 | ||
|
|
898a78357e | ||
|
|
4f483c7390 | ||
|
|
bdb4b02a08 | ||
|
|
c914668db2 | ||
|
|
badbddadcd | ||
|
|
5448ecf1a2 | ||
|
|
9b1af2eb0c | ||
|
|
cf88da9ae0 | ||
|
|
f832db4bbd | ||
|
|
9f96ef9d98 |
@@ -807,13 +807,15 @@ def runfetchcmd(cmd, d, quiet=False, cleanup=None):
|
|||||||
'GIT_SSL_CAINFO',
|
'GIT_SSL_CAINFO',
|
||||||
'GIT_SMART_HTTP',
|
'GIT_SMART_HTTP',
|
||||||
'SSH_AUTH_SOCK', 'SSH_AGENT_PID',
|
'SSH_AUTH_SOCK', 'SSH_AGENT_PID',
|
||||||
'SOCKS5_USER', 'SOCKS5_PASSWD']
|
'SOCKS5_USER', 'SOCKS5_PASSWD',
|
||||||
|
'DBUS_SESSION_BUS_ADDRESS']
|
||||||
|
|
||||||
if not cleanup:
|
if not cleanup:
|
||||||
cleanup = []
|
cleanup = []
|
||||||
|
|
||||||
|
origenv = d.getVar("BB_ORIGENV", False)
|
||||||
for var in exportvars:
|
for var in exportvars:
|
||||||
val = d.getVar(var, True)
|
val = d.getVar(var, True) or (origenv and origenv.getVar(var, True))
|
||||||
if val:
|
if val:
|
||||||
cmd = 'export ' + var + '=\"%s\"; %s' % (val, cmd)
|
cmd = 'export ' + var + '=\"%s\"; %s' % (val, cmd)
|
||||||
|
|
||||||
|
|||||||
@@ -415,6 +415,7 @@ class Build(models.Model):
|
|||||||
# to show build progress in mrb_section.html
|
# to show build progress in mrb_section.html
|
||||||
for build in recent_builds:
|
for build in recent_builds:
|
||||||
build.percentDone = build.completeper()
|
build.percentDone = build.completeper()
|
||||||
|
build.outcomeText = build.get_outcome_text()
|
||||||
|
|
||||||
return recent_builds
|
return recent_builds
|
||||||
|
|
||||||
|
|||||||
@@ -57,12 +57,12 @@ function mrbSectionInit(ctx){
|
|||||||
for (var i in prjInfo.builds){
|
for (var i in prjInfo.builds){
|
||||||
var build = prjInfo.builds[i];
|
var build = prjInfo.builds[i];
|
||||||
|
|
||||||
if (build.outcome === "In Progress" ||
|
if (build.outcomeText === "In Progress" ||
|
||||||
$(".progress .bar").length > 0){
|
$(".progress .bar").length > 0){
|
||||||
/* Update the build progress */
|
/* Update the build progress */
|
||||||
var percentDone;
|
var percentDone;
|
||||||
|
|
||||||
if (build.outcome !== "In Progress"){
|
if (build.outcomeText !== "In Progress"){
|
||||||
/* We have to ignore the value when it's Succeeded because it
|
/* We have to ignore the value when it's Succeeded because it
|
||||||
* goes back to 0
|
* goes back to 0
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -1567,7 +1567,7 @@
|
|||||||
</note>
|
</note>
|
||||||
</para></listitem>
|
</para></listitem>
|
||||||
<listitem><para><emphasis>Using Variables: <filename>${...}</filename></emphasis> -
|
<listitem><para><emphasis>Using Variables: <filename>${...}</filename></emphasis> -
|
||||||
Use the <filename>${<replaceable>varname</replaceable>}</filename> syntax to
|
Use the <filename>${<replaceable>VARNAME</replaceable>}</filename> syntax to
|
||||||
access the contents of a variable:
|
access the contents of a variable:
|
||||||
<literallayout class='monospaced'>
|
<literallayout class='monospaced'>
|
||||||
SRC_URI = "${SOURCEFORGE_MIRROR}/libpng/zlib-${PV}.tar.gz"
|
SRC_URI = "${SOURCEFORGE_MIRROR}/libpng/zlib-${PV}.tar.gz"
|
||||||
@@ -3726,6 +3726,230 @@
|
|||||||
</section>
|
</section>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
<section id='enabling-gobject-introspection-support'>
|
||||||
|
<title>Enabling GObject Introspection Support</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
<ulink url='https://wiki.gnome.org/Projects/GObjectIntrospection'>GObject introspection</ulink>
|
||||||
|
is the standard mechanism for accessing GObject-based software
|
||||||
|
from runtime environments.
|
||||||
|
GObject is a feature of the GLib library that provides an object
|
||||||
|
framework for the GNOME desktop and related software.
|
||||||
|
GObject Introspection adds information to GObject that allows
|
||||||
|
objects created within it to be represented across different
|
||||||
|
programming languages.
|
||||||
|
If you want to construct GStreamer pipelines using Python, or
|
||||||
|
control UPnP infrastructure using Javascript and GUPnP,
|
||||||
|
GObject introspection is the only way to do it.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This section describes the Yocto Project support for generating
|
||||||
|
and packaging GObject introspection data.
|
||||||
|
GObject introspection data is a description of the
|
||||||
|
API provided by libraries built on top of GLib framework,
|
||||||
|
and, in particular, that framework's GObject mechanism.
|
||||||
|
GObject Introspection Repository (GIR) files go to
|
||||||
|
<filename>-dev</filename> packages,
|
||||||
|
<filename>typelib</filename> files go to main packages as they
|
||||||
|
are packaged together with libraries that are introspected.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The data is generated when building such a library, by linking
|
||||||
|
the library with a small executable binary that asks the library
|
||||||
|
to describe itself, and then executing the binary and
|
||||||
|
processing its output.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Generating this data in a cross-compilation environment
|
||||||
|
is difficult because the library is produced for the target
|
||||||
|
architecture, but its code needs to be executed on the build host.
|
||||||
|
This problem is solved with the OpenEmbedded build system by
|
||||||
|
running the code through QEMU, which allows precisely that.
|
||||||
|
Unfortunately, QEMU does not always work perfectly as mentioned
|
||||||
|
in the xxx section.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<section id='enabling-the-generation-of-introspection-data'>
|
||||||
|
<title>Enabling the Generation of Introspection Data</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Enabling the generation of introspection data (GIR files)
|
||||||
|
in your library package involves the following:
|
||||||
|
<orderedlist>
|
||||||
|
<listitem><para>
|
||||||
|
Inherit the
|
||||||
|
<ulink url='&YOCTO_DOCS_REF_URL;#ref-classes-gobject-introspection'><filename>gobject-introspection</filename></ulink>
|
||||||
|
class.
|
||||||
|
</para></listitem>
|
||||||
|
<listitem><para>
|
||||||
|
Make sure introspection is not disabled anywhere in
|
||||||
|
the recipe or from anything the recipe includes.
|
||||||
|
Also, make sure that "gobject-introspection-data" is
|
||||||
|
not in
|
||||||
|
<ulink url='&YOCTO_DOCS_REF_URL;#var-DISTRO_FEATURES_BACKFILL_CONSIDERED'><filename>DISTRO_FEATURES_BACKFILL_CONSIDERED</filename></ulink>
|
||||||
|
and that "qemu-usermode" is not in
|
||||||
|
<ulink url='&YOCTO_DOCS_REF_URL;#var-MACHINE_FEATURES_BACKFILL_CONSIDERED'><filename>MACHINE_FEATURES_BACKFILL_CONSIDERED</filename></ulink>.
|
||||||
|
If either of these conditions exist, nothing will
|
||||||
|
happen.
|
||||||
|
</para></listitem>
|
||||||
|
<listitem><para>
|
||||||
|
Try to build the recipe.
|
||||||
|
If you encounter build errors that look like
|
||||||
|
something is unable to find
|
||||||
|
<filename>.so</filename> libraries, check where these
|
||||||
|
libraries are located in the source tree and add
|
||||||
|
the following to the recipe:
|
||||||
|
<literallayout class='monospaced'>
|
||||||
|
GIR_EXTRA_LIBS_PATH = "${B}/<replaceable>something</replaceable>/.libs"
|
||||||
|
</literallayout>
|
||||||
|
<note>
|
||||||
|
See recipes in the <filename>oe-core</filename>
|
||||||
|
repository that use that
|
||||||
|
<filename>GIR_EXTRA_LIBS_PATH</filename> variable
|
||||||
|
as an example.
|
||||||
|
</note>
|
||||||
|
</para></listitem>
|
||||||
|
<listitem><para>
|
||||||
|
Look for any other errors, which probably mean that
|
||||||
|
introspection support in a package is not entirely
|
||||||
|
standard, and thus breaks down in a cross-compilation
|
||||||
|
environment.
|
||||||
|
For such cases, custom-made fixes are needed.
|
||||||
|
A good place to ask and receive help in these cases
|
||||||
|
is the
|
||||||
|
<ulink url='&YOCTO_DOCS_REF_URL;#resources-mailinglist'>Yocto Project mailing lists</ulink>.
|
||||||
|
</para></listitem>
|
||||||
|
</orderedlist>
|
||||||
|
<note>
|
||||||
|
Using a library that no longer builds against the latest
|
||||||
|
Yocto Project release and prints introspection related
|
||||||
|
errors is a good candidate for the previous procedure.
|
||||||
|
</note>
|
||||||
|
</para>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section id='disabling-the-generation-of-introspection-data'>
|
||||||
|
<title>Disabling the Generation of Introspection Data</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
You might find that you do not want to generate
|
||||||
|
introspection data.
|
||||||
|
Or, perhaps QEMU does not work on your build host and
|
||||||
|
target architecture combination.
|
||||||
|
If so, you can use either of the following methods to
|
||||||
|
disable GIR file generations:
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem><para>
|
||||||
|
Add the following to your distro configuration:
|
||||||
|
<literallayout class='monospaced'>
|
||||||
|
DISTRO_FEATURES_BACKFILL_CONSIDERED = "gobject-introspection-data"
|
||||||
|
</literallayout>
|
||||||
|
Adding this statement disables generating
|
||||||
|
introspection data using QEMU but will still enable
|
||||||
|
building introspection tools and libraries
|
||||||
|
(i.e. building them does not require the use of QEMU).
|
||||||
|
</para></listitem>
|
||||||
|
<listitem><para>
|
||||||
|
Add the following to your machine configuration:
|
||||||
|
<literallayout class='monospaced'>
|
||||||
|
MACHINE_FEATURES_BACKFILL_CONSIDERED = "qemu-usermode"
|
||||||
|
</literallayout>
|
||||||
|
Adding this statement disables the use of QEMU
|
||||||
|
when building packages for your machine.
|
||||||
|
Currently, this feature is used only by introspection
|
||||||
|
recipes and has the same effect as the previously
|
||||||
|
described option.
|
||||||
|
<note>
|
||||||
|
Future releases of the Yocto Project might have
|
||||||
|
other features affected by this option.
|
||||||
|
</note>
|
||||||
|
</para></listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
If you disable introspection data, you can still
|
||||||
|
obtain it through other means such as copying the data
|
||||||
|
from a suitable sysroot, or by generating it on the
|
||||||
|
target hardware.
|
||||||
|
The OpenEmbedded build system does not currently
|
||||||
|
provide specific support for these techniques.
|
||||||
|
</para>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section id='testing-that-introspection-works-in-an-image'>
|
||||||
|
<title>Testing that Introspection Works in an Image</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Use the following procedure to test if generating
|
||||||
|
introspection data is working in an image:
|
||||||
|
<orderedlist>
|
||||||
|
<listitem><para>
|
||||||
|
Make sure that "gobject-introspection-data" is not in
|
||||||
|
<ulink url='&YOCTO_DOCS_REF_URL;#var-DISTRO_FEATURES_BACKFILL_CONSIDERED'><filename>DISTRO_FEATURES_BACKFILL_CONSIDERED</filename></ulink>
|
||||||
|
and that "qemu-usermode" is not in
|
||||||
|
<ulink url='&YOCTO_DOCS_REF_URL;#var-MACHINE_FEATURES_BACKFILL_CONSIDERED'><filename>MACHINE_FEATURES_BACKFILL_CONSIDERED</filename></ulink>.
|
||||||
|
</para></listitem>
|
||||||
|
<listitem><para>
|
||||||
|
Build <filename>core-image-sato</filename>.
|
||||||
|
</para></listitem>
|
||||||
|
<listitem><para>
|
||||||
|
Launch a Terminal and then start Python in the
|
||||||
|
terminal.
|
||||||
|
</para></listitem>
|
||||||
|
<listitem><para>
|
||||||
|
Enter the following in the terminal:
|
||||||
|
<literallayout class='monospaced'>
|
||||||
|
>>> from gi.repository import GLib
|
||||||
|
>>> GLib.get_host_name()
|
||||||
|
</literallayout>
|
||||||
|
</para></listitem>
|
||||||
|
<listitem><para>
|
||||||
|
For something a little more advanced, enter the
|
||||||
|
following:
|
||||||
|
<literallayout class='monospaced'>
|
||||||
|
http://python-gtk-3-tutorial.readthedocs.org/en/latest/introduction.html
|
||||||
|
</literallayout>
|
||||||
|
</para></listitem>
|
||||||
|
</orderedlist>
|
||||||
|
</para>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section id='known-issues'>
|
||||||
|
<title>Known Issues</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The following know issues exist for
|
||||||
|
GObject Introspection Support:
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem><para>
|
||||||
|
<filename>qemu-ppc64</filename> immediately crashes.
|
||||||
|
Consequently, you cannot build introspection data on
|
||||||
|
that architecture.
|
||||||
|
</para></listitem>
|
||||||
|
<listitem><para>
|
||||||
|
x32 is not supported by QEMU.
|
||||||
|
Consequently, introspection data is disabled.
|
||||||
|
</para></listitem>
|
||||||
|
<listitem><para>
|
||||||
|
musl causes transient GLib binaries to crash on
|
||||||
|
assertion failures.
|
||||||
|
Consequently, generating introspection data is
|
||||||
|
disabled.
|
||||||
|
</para></listitem>
|
||||||
|
<listitem><para>
|
||||||
|
Because QEMU is not able to run the binaries correctly,
|
||||||
|
introspection is disabled for some specific packages
|
||||||
|
under specific architectures (e.g.
|
||||||
|
<filename>gcr</filename>,
|
||||||
|
<filename>libsecret</filename>, and
|
||||||
|
<filename>webkit</filename>).
|
||||||
|
</para></listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</para>
|
||||||
|
</section>
|
||||||
|
</section>
|
||||||
|
|
||||||
<section id='dev-optionally-using-an-external-toolchain'>
|
<section id='dev-optionally-using-an-external-toolchain'>
|
||||||
<title>Optionally Using an External Toolchain</title>
|
<title>Optionally Using an External Toolchain</title>
|
||||||
|
|
||||||
@@ -3802,10 +4026,10 @@
|
|||||||
it is based on is by definition incomplete.
|
it is based on is by definition incomplete.
|
||||||
Its purpose is to allow the generation of customized images,
|
Its purpose is to allow the generation of customized images,
|
||||||
and as such was designed to be completely extensible through a
|
and as such was designed to be completely extensible through a
|
||||||
plugin interface.
|
plug-in interface.
|
||||||
See the
|
See the
|
||||||
"<link linkend='openembedded-kickstart-plugins'>Plugins</link>"
|
"<link linkend='openembedded-kickstart-plugins'>Plug-ins</link>"
|
||||||
section for information on these plugins.
|
section for information on these plug-ins.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
@@ -4367,21 +4591,21 @@
|
|||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section id='openembedded-kickstart-plugins'>
|
<section id='openembedded-kickstart-plugins'>
|
||||||
<title>Plugins</title>
|
<title>Plug-ins</title>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Plugins allow <filename>wic</filename> functionality to
|
Plug-ins allow <filename>wic</filename> functionality to
|
||||||
be extended and specialized by users.
|
be extended and specialized by users.
|
||||||
This section documents the plugin interface, which is
|
This section documents the plugin interface, which is
|
||||||
currently restricted to source plugins.
|
currently restricted to source plug ins.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Source plugins provide a mechanism to customize
|
Source plug ins provide a mechanism to customize
|
||||||
various aspects of the image generation process in
|
various aspects of the image generation process in
|
||||||
<filename>wic</filename>, mainly the contents of
|
<filename>wic</filename>, mainly the contents of
|
||||||
partitions.
|
partitions.
|
||||||
The plugins provide a mechanism for mapping values
|
The plug ins provide a mechanism for mapping values
|
||||||
specified in <filename>.wks</filename> files using the
|
specified in <filename>.wks</filename> files using the
|
||||||
<filename>--source</filename> keyword to a
|
<filename>--source</filename> keyword to a
|
||||||
particular plugin implementation that populates a
|
particular plugin implementation that populates a
|
||||||
|
|||||||
@@ -2447,8 +2447,8 @@
|
|||||||
</literallayout>
|
</literallayout>
|
||||||
</para></listitem>
|
</para></listitem>
|
||||||
<listitem><para>
|
<listitem><para>
|
||||||
<filename>d.delVar('</filename><replaceable>varname</replaceable><filename>')</filename> and
|
<filename>d.delVar('</filename><replaceable>VARNAME</replaceable><filename>')</filename> and
|
||||||
<filename>d.setVar('</filename><replaceable>varname</replaceable><filename>', None)</filename>
|
<filename>d.setVar('</filename><replaceable>VARNAME</replaceable><filename>', None)</filename>
|
||||||
result in the variable and all of its overrides being
|
result in the variable and all of its overrides being
|
||||||
cleared out.
|
cleared out.
|
||||||
Before the change, only the non-overridden values
|
Before the change, only the non-overridden values
|
||||||
@@ -2740,13 +2740,13 @@
|
|||||||
|
|
||||||
<para>
|
<para>
|
||||||
Variable expressions, such as
|
Variable expressions, such as
|
||||||
<filename>${</filename><replaceable>varname</replaceable><filename>}</filename>
|
<filename>${</filename><replaceable>VARNAME</replaceable><filename>}</filename>
|
||||||
no longer expand automatically within Python functions.
|
no longer expand automatically within Python functions.
|
||||||
Suppressing expansion was done to allow Python functions to
|
Suppressing expansion was done to allow Python functions to
|
||||||
construct shell scripts or other code for situations in which you
|
construct shell scripts or other code for situations in which you
|
||||||
do not want such expressions expanded.
|
do not want such expressions expanded.
|
||||||
For any existing code that relies on these expansions, you need to
|
For any existing code that relies on these expansions, you need to
|
||||||
change the expansions to either expand the value of individual
|
change the expansions to expand the value of individual
|
||||||
variables through <filename>d.getVar()</filename>.
|
variables through <filename>d.getVar()</filename>.
|
||||||
To alternatively expand more complex expressions,
|
To alternatively expand more complex expressions,
|
||||||
use <filename>d.expand()</filename>.
|
use <filename>d.expand()</filename>.
|
||||||
@@ -2880,7 +2880,7 @@
|
|||||||
to allow the default implementation from the
|
to allow the default implementation from the
|
||||||
<filename>autotools</filename> class to work such that
|
<filename>autotools</filename> class to work such that
|
||||||
<filename>autoreconf</filename> succeeds and produces a working
|
<filename>autoreconf</filename> succeeds and produces a working
|
||||||
configure script), and to remove the
|
configure script, and to remove the
|
||||||
overridden <filename>do_configure</filename> task such that the
|
overridden <filename>do_configure</filename> task such that the
|
||||||
default implementation does get used.
|
default implementation does get used.
|
||||||
</para>
|
</para>
|
||||||
@@ -2910,7 +2910,8 @@
|
|||||||
<filename>do_rootfs</filename>, you should make edits so that
|
<filename>do_rootfs</filename>, you should make edits so that
|
||||||
those tasks are after the
|
those tasks are after the
|
||||||
<link linkend='ref-tasks-image-complete'><filename>do_image_complete</filename></link>
|
<link linkend='ref-tasks-image-complete'><filename>do_image_complete</filename></link>
|
||||||
task rather than before the task so that the your added tasks
|
task rather than after <filename>do_rootfs</filename>
|
||||||
|
so that the your added tasks
|
||||||
run at the correct time.
|
run at the correct time.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
@@ -3057,6 +3058,10 @@
|
|||||||
<ulink url='&YOCTO_DOCS_SDK_URL;#sdk-extensible'>extensible SDK</ulink>.
|
<ulink url='&YOCTO_DOCS_SDK_URL;#sdk-extensible'>extensible SDK</ulink>.
|
||||||
For information on these SDKs and how to build and use them, see the
|
For information on these SDKs and how to build and use them, see the
|
||||||
<ulink url='&YOCTO_DOCS_SDK_URL;#sdk-intro'>Yocto Project Software Development Kit (SDK) Developer's Guide</ulink>.
|
<ulink url='&YOCTO_DOCS_SDK_URL;#sdk-intro'>Yocto Project Software Development Kit (SDK) Developer's Guide</ulink>.
|
||||||
|
<note>
|
||||||
|
The Yocto Project Eclipse IDE Plug-in is still supported and
|
||||||
|
is not affected by this change.
|
||||||
|
</note>
|
||||||
</para>
|
</para>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
@@ -3128,7 +3133,7 @@
|
|||||||
The separate <filename>poky-tiny</filename> distribution
|
The separate <filename>poky-tiny</filename> distribution
|
||||||
now uses the musl C library instead of a heavily pared
|
now uses the musl C library instead of a heavily pared
|
||||||
down <filename>glibc</filename>.
|
down <filename>glibc</filename>.
|
||||||
Using <filename>glibc</filename> results in a smaller
|
Using musl results in a smaller
|
||||||
distribution and facilitates much greater maintainability
|
distribution and facilitates much greater maintainability
|
||||||
because musl is designed to have a small footprint.</para>
|
because musl is designed to have a small footprint.</para>
|
||||||
|
|
||||||
@@ -3194,6 +3199,21 @@
|
|||||||
</para>
|
</para>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
<section id='migration-2.1-supporting-gobject-introspection'>
|
||||||
|
<title>Supporting GObject Introspection</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This release supports generation of GLib Introspective
|
||||||
|
Repository (GIR) files through GObject introspection, which is
|
||||||
|
the standard mechanism for accessing GObject-based software from
|
||||||
|
runtime environments.
|
||||||
|
You can enable, disable, and test the generation of this data.
|
||||||
|
See the
|
||||||
|
"<ulink url='&YOCTO_DOCS_DEV_URL;#enabling-gobject-introspection-support'>Enabling GObject Introspection Support</ulink>"
|
||||||
|
section for more information.
|
||||||
|
</para>
|
||||||
|
</section>
|
||||||
|
|
||||||
<section id='migration-2.1-miscellaneous-changes'>
|
<section id='migration-2.1-miscellaneous-changes'>
|
||||||
<title>Miscellaneous Changes</title>
|
<title>Miscellaneous Changes</title>
|
||||||
|
|
||||||
@@ -3205,6 +3225,9 @@
|
|||||||
If your host distribution does not provide a sufficiently
|
If your host distribution does not provide a sufficiently
|
||||||
recent version, you can install the buildtools, which
|
recent version, you can install the buildtools, which
|
||||||
will provide it.
|
will provide it.
|
||||||
|
See the
|
||||||
|
"<link linkend='required-git-tar-and-python-versions'>Required Git, tar, and Python Versions</link>"
|
||||||
|
section for more information on the buildtools tarball.
|
||||||
</para></listitem>
|
</para></listitem>
|
||||||
<listitem><para>
|
<listitem><para>
|
||||||
The buggy and incomplete support for the RPM version 4
|
The buggy and incomplete support for the RPM version 4
|
||||||
@@ -3212,6 +3235,25 @@
|
|||||||
The well-tested and maintained support for RPM version 5
|
The well-tested and maintained support for RPM version 5
|
||||||
remains.
|
remains.
|
||||||
</para></listitem>
|
</para></listitem>
|
||||||
|
<listitem><para>
|
||||||
|
Previously, the following list of packages were removed
|
||||||
|
if package-management was not in
|
||||||
|
<link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>,
|
||||||
|
regardless of any dependencies:
|
||||||
|
<literallayout class='monospaced'>
|
||||||
|
update-rc.d
|
||||||
|
base-passwd
|
||||||
|
shadow
|
||||||
|
update-alternatives
|
||||||
|
run-postinsts
|
||||||
|
</literallayout>
|
||||||
|
With the Yocto Project 2.1 release, these packages are only
|
||||||
|
removed if "read-only-rootfs" is in
|
||||||
|
<filename>IMAGE_FEATURES</filename>, since they might
|
||||||
|
still be needed for a read-write image even in the absence
|
||||||
|
of a package manager (e.g. if users need to be added,
|
||||||
|
modified, or removed at runtime).
|
||||||
|
</para></listitem>
|
||||||
<listitem><para>
|
<listitem><para>
|
||||||
The
|
The
|
||||||
<ulink url='&YOCTO_DOCS_SDK_URL;#sdk-devtool-use-devtool-modify-to-modify-the-source-of-an-existing-component'><filename>devtool modify</filename></ulink>
|
<ulink url='&YOCTO_DOCS_SDK_URL;#sdk-devtool-use-devtool-modify-to-modify-the-source-of-an-existing-component'><filename>devtool modify</filename></ulink>
|
||||||
@@ -3220,7 +3262,7 @@
|
|||||||
The "-x" or "--extract" options are now no-ops.
|
The "-x" or "--extract" options are now no-ops.
|
||||||
If you wish to provide your own existing source tree, you
|
If you wish to provide your own existing source tree, you
|
||||||
will now need to specify either the "-n" or
|
will now need to specify either the "-n" or
|
||||||
"--no-extract" option when running
|
"--no-extract" options when running
|
||||||
<filename>devtool modify</filename>.
|
<filename>devtool modify</filename>.
|
||||||
</para></listitem>
|
</para></listitem>
|
||||||
<listitem><para>
|
<listitem><para>
|
||||||
@@ -3228,10 +3270,8 @@
|
|||||||
or does not specify whether a keyboard is attached, then
|
or does not specify whether a keyboard is attached, then
|
||||||
the default is to assume a keyboard is attached rather
|
the default is to assume a keyboard is attached rather
|
||||||
than assume no keyboard.
|
than assume no keyboard.
|
||||||
<note>
|
This change primarily affects the Sato UI.
|
||||||
This change primarily affects the Sato UI.
|
</para></listitem>
|
||||||
</note>
|
|
||||||
</para></listitem>
|
|
||||||
<listitem><para>
|
<listitem><para>
|
||||||
The <filename>.debug</filename> directory packaging is
|
The <filename>.debug</filename> directory packaging is
|
||||||
now automatic.
|
now automatic.
|
||||||
@@ -3248,8 +3288,8 @@
|
|||||||
This data has been replaced with
|
This data has been replaced with
|
||||||
<filename>getrusage()</filename> data and corrected IO
|
<filename>getrusage()</filename> data and corrected IO
|
||||||
statistics.
|
statistics.
|
||||||
You will probably need to update code that reads the
|
You will probably need to update any custom code that reads
|
||||||
<filename>buildstats</filename> data.
|
the <filename>buildstats</filename> data.
|
||||||
</para></listitem>
|
</para></listitem>
|
||||||
<listitem><para>
|
<listitem><para>
|
||||||
The
|
The
|
||||||
@@ -3272,9 +3312,22 @@
|
|||||||
<filename>meta-yocto-bsp</filename> layer.
|
<filename>meta-yocto-bsp</filename> layer.
|
||||||
Most modern x86 boards do not rely on this file and it only
|
Most modern x86 boards do not rely on this file and it only
|
||||||
adds kernel error messages during startup.
|
adds kernel error messages during startup.
|
||||||
If you do still need the file, you can simply add
|
If you do still need to support
|
||||||
<filename>v86d</filename> to your image.
|
<filename>uvesafb</filename>, you can
|
||||||
|
simply add <filename>v86d</filename> to your image.
|
||||||
</para></listitem>
|
</para></listitem>
|
||||||
|
<listitem><para>
|
||||||
|
Build sysroot paths are now removed from debug symbol
|
||||||
|
files.
|
||||||
|
Removing these paths means that remote GDB using an
|
||||||
|
unstripped build system sysroot will no longer work
|
||||||
|
(although this was never documented to work).
|
||||||
|
The supported method to accomplish something similar is
|
||||||
|
to set <filename>IMAGE_GEN_DEBUGFS</filename> to "1",
|
||||||
|
which will generate a companion debug image
|
||||||
|
containing unstripped binaries and associated debug
|
||||||
|
sources alongside the image.
|
||||||
|
</para></listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
</para>
|
</para>
|
||||||
</section>
|
</section>
|
||||||
|
|||||||
@@ -168,7 +168,7 @@
|
|||||||
|
|
||||||
<para>
|
<para>
|
||||||
The following figure shows the resulting directory structure after
|
The following figure shows the resulting directory structure after
|
||||||
you install the Standard SDK by running the <filename>.sh</filename>
|
you install the Standard SDK by running the <filename>*.sh</filename>
|
||||||
SDK installation script:
|
SDK installation script:
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
@@ -209,7 +209,7 @@
|
|||||||
|
|
||||||
<para>
|
<para>
|
||||||
The following figure shows the resulting directory structure after
|
The following figure shows the resulting directory structure after
|
||||||
you install the Extensible SDK by running the <filename>.sh</filename>
|
you install the Extensible SDK by running the <filename>*.sh</filename>
|
||||||
SDK installation script:
|
SDK installation script:
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
|||||||
@@ -11,12 +11,12 @@
|
|||||||
<para>
|
<para>
|
||||||
Welcome to the Yocto Project Software Development Kit (SDK)
|
Welcome to the Yocto Project Software Development Kit (SDK)
|
||||||
Developer's Guide.
|
Developer's Guide.
|
||||||
This manual provides information that lets you use both the standard
|
This manual provides information that explains how to use both the
|
||||||
Yocto Project SDK and an extensible SDK to develop applications and
|
standard Yocto Project SDK and an extensible SDK to develop
|
||||||
images using the Yocto Project.
|
applications and images using the Yocto Project.
|
||||||
Additionally, the manual also provides information on how to use
|
Additionally, the manual also provides information on how to use
|
||||||
the popular <trademark class='trade'>Eclipse</trademark> IDE as part
|
the popular <trademark class='trade'>Eclipse</trademark> IDE as part
|
||||||
of your application development workflow.
|
of your application development workflow within the SDK environment.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
@@ -30,11 +30,24 @@
|
|||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
A standard SDK consists of a cross-development toolchain that contains
|
A standard SDK consists of the following:
|
||||||
a compiler, debugger, and various miscellaneous tools; libraries,
|
<itemizedlist>
|
||||||
headers, and symbols to match an image; and environment setup script.
|
<listitem><para><emphasis>Cross-Development Toolchain</emphasis>:
|
||||||
You can use this SDK to independently develop and test code that is
|
This toolchain contains a compiler, debugger, and various
|
||||||
destined to run on some target machine.
|
miscellaneous tools.
|
||||||
|
</para></listitem>
|
||||||
|
<listitem><para><emphasis>Libraries, Headers, and Symbols</emphasis>:
|
||||||
|
The libraries, headers, and symbols are specific to the image
|
||||||
|
(i.e. they match the image).
|
||||||
|
</para></listitem>
|
||||||
|
<listitem><para><emphasis>Environment Setup Script</emphasis>:
|
||||||
|
This <filename>*.sh</filename> file, once run, sets up the
|
||||||
|
cross-development environment by defining variables and
|
||||||
|
preparing for SDK use.
|
||||||
|
</para></listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
You can use the standard SDK to independently develop and test code
|
||||||
|
that is destined to run on some target machine.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
@@ -59,7 +72,7 @@
|
|||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Another feature for the SDKs is that only one set of cross-canadian
|
Another feature for the SDKs is that only one set of cross-compiler
|
||||||
toolchain binaries are produced per architecture.
|
toolchain binaries are produced per architecture.
|
||||||
This feature takes advantage of the fact that the target hardware can
|
This feature takes advantage of the fact that the target hardware can
|
||||||
be passed to <filename>gcc</filename> as a set of compiler options.
|
be passed to <filename>gcc</filename> as a set of compiler options.
|
||||||
@@ -74,12 +87,12 @@
|
|||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Going beyond the actual SDK, the SDK development environment consists
|
The SDK development environment consists of the following:
|
||||||
of the following:
|
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
<listitem><para>An architecture-specific cross-toolchain and
|
<listitem><para>The self-contained SDK, which is an
|
||||||
|
architecture-specific cross-toolchain and
|
||||||
matching sysroots (target and native) all built by the
|
matching sysroots (target and native) all built by the
|
||||||
OpenEmbedded build system.
|
OpenEmbedded build system (e.g. the SDK).
|
||||||
The toolchain and sysroots are based on a
|
The toolchain and sysroots are based on a
|
||||||
<ulink url='&YOCTO_DOCS_DEV_URL;#metadata'>Metadata</ulink>
|
<ulink url='&YOCTO_DOCS_DEV_URL;#metadata'>Metadata</ulink>
|
||||||
configuration and extensions,
|
configuration and extensions,
|
||||||
@@ -91,10 +104,10 @@
|
|||||||
QEMU is not literally part of the SDK.
|
QEMU is not literally part of the SDK.
|
||||||
You must build and include this emulator separately.
|
You must build and include this emulator separately.
|
||||||
However, QEMU plays an important role in the development
|
However, QEMU plays an important role in the development
|
||||||
process that revolves around use of and SDK.
|
process that revolves around use of the SDK.
|
||||||
</para></listitem>
|
</para></listitem>
|
||||||
<listitem><para>The Eclipse IDE Yocto Plug-in.
|
<listitem><para>The Eclipse IDE Yocto Plug-in.
|
||||||
This plug-in is also available for you if you are an Eclipse
|
This plug-in is available for you if you are an Eclipse
|
||||||
user.
|
user.
|
||||||
In the same manner as QEMU, the plug-in is not literally part
|
In the same manner as QEMU, the plug-in is not literally part
|
||||||
of the SDK but is rather available for use as part of the
|
of the SDK but is rather available for use as part of the
|
||||||
@@ -201,8 +214,8 @@
|
|||||||
<title>User-Space Tools</title>
|
<title>User-Space Tools</title>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
User-space tools are available as part of the SDK development
|
User-space tools, which are available as part of the SDK
|
||||||
process and can be helpful.
|
development environment, can be helpful.
|
||||||
The tools include LatencyTOP, PowerTOP, Perf, SystemTap,
|
The tools include LatencyTOP, PowerTOP, Perf, SystemTap,
|
||||||
and Lttng-ust.
|
and Lttng-ust.
|
||||||
These tools are common development tools for the Linux platform.
|
These tools are common development tools for the Linux platform.
|
||||||
@@ -264,7 +277,7 @@
|
|||||||
A developer can independently compile and test an object on their
|
A developer can independently compile and test an object on their
|
||||||
machine and then, when the object is ready for integration into an
|
machine and then, when the object is ready for integration into an
|
||||||
image, they can simply make it available to the machine that has the
|
image, they can simply make it available to the machine that has the
|
||||||
the Yocto Project.
|
Yocto Project.
|
||||||
Once the object is available, the image can be rebuilt using the
|
Once the object is available, the image can be rebuilt using the
|
||||||
Yocto Project to produce the modified image.
|
Yocto Project to produce the modified image.
|
||||||
</para>
|
</para>
|
||||||
@@ -303,12 +316,15 @@
|
|||||||
64-bit architecture).
|
64-bit architecture).
|
||||||
Download kernel, root filesystem, and any other files you
|
Download kernel, root filesystem, and any other files you
|
||||||
need for your process.
|
need for your process.
|
||||||
<note>In order to use the root filesystem in QEMU, you
|
<note>
|
||||||
need to extract it.
|
To use the root filesystem in QEMU, you
|
||||||
See the
|
need to extract it.
|
||||||
"<link url='sdk-extracting-the-root-filesystem'>Extracting the Root Filesystem</link>"
|
See the
|
||||||
section for information on how to extract the root
|
"<link url='sdk-extracting-the-root-filesystem'>Extracting the Root Filesystem</link>"
|
||||||
filesystem.</note></para></listitem>
|
section for information on how to extract the root
|
||||||
|
filesystem.
|
||||||
|
</note>
|
||||||
|
</para></listitem>
|
||||||
<listitem><para><emphasis>Develop and Test your
|
<listitem><para><emphasis>Develop and Test your
|
||||||
Application:</emphasis> At this point, you have the tools
|
Application:</emphasis> At this point, you have the tools
|
||||||
to develop your application.
|
to develop your application.
|
||||||
@@ -316,7 +332,7 @@
|
|||||||
emulator, you can go to
|
emulator, you can go to
|
||||||
<ulink url='http://wiki.qemu.org/Main_Page'>QEMU Home Page</ulink>
|
<ulink url='http://wiki.qemu.org/Main_Page'>QEMU Home Page</ulink>
|
||||||
to download and learn about the emulator.
|
to download and learn about the emulator.
|
||||||
You can see the
|
See the
|
||||||
"<ulink url='&YOCTO_DOCS_DEV_URL;#dev-manual-qemu'>Using the Quick EMUlator (QEMU)</ulink>"
|
"<ulink url='&YOCTO_DOCS_DEV_URL;#dev-manual-qemu'>Using the Quick EMUlator (QEMU)</ulink>"
|
||||||
chapter in the Yocto Project Development Manual
|
chapter in the Yocto Project Development Manual
|
||||||
for information on using QEMU within the Yocto
|
for information on using QEMU within the Yocto
|
||||||
|
|||||||
@@ -1,12 +1,11 @@
|
|||||||
<?xml version='1.0'?>
|
<?xml version='1.0'?>
|
||||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" xmlns:fo="http://www.w3.org/1999/XSL/Format" version="1.0">
|
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" xmlns:fo="http://www.w3.org/1999/XSL/Format" version="1.0">
|
||||||
|
|
||||||
<!-- <xsl:import href="http://downloads.yoctoproject.org/mirror/docbook-mirror/docbook-xsl-1.76.1/xhtml/docbook.xsl" />
|
<xsl:import href="http://downloads.yoctoproject.org/mirror/docbook-mirror/docbook-xsl-1.76.1/xhtml/docbook.xsl" />
|
||||||
-->
|
|
||||||
|
|
||||||
<xsl:import href="../template/1.76.1/docbook-xsl-1.76.1/xhtml/docbook.xsl" />
|
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
|
<xsl:import href="../template/1.76.1/docbook-xsl-1.76.1/xhtml/docbook.xsl" />
|
||||||
|
|
||||||
<xsl:import href="http://docbook.sourceforge.net/release/xsl/1.76.1/xhtml/docbook.xsl" />
|
<xsl:import href="http://docbook.sourceforge.net/release/xsl/1.76.1/xhtml/docbook.xsl" />
|
||||||
|
|
||||||
-->
|
-->
|
||||||
|
|||||||
@@ -5,14 +5,12 @@
|
|||||||
xmlns:fo="http://www.w3.org/1999/XSL/Format"
|
xmlns:fo="http://www.w3.org/1999/XSL/Format"
|
||||||
version="1.0">
|
version="1.0">
|
||||||
|
|
||||||
<!--
|
|
||||||
<xsl:import href="http://downloads.yoctoproject.org/mirror/docbook-mirror/docbook-xsl-1.76.1/eclipse/eclipse3.xsl" />
|
<xsl:import href="http://downloads.yoctoproject.org/mirror/docbook-mirror/docbook-xsl-1.76.1/eclipse/eclipse3.xsl" />
|
||||||
-->
|
|
||||||
|
<!--
|
||||||
|
|
||||||
<xsl:import href="../template/1.76.1/docbook-xsl-1.76.1/eclipse/eclipse3.xsl" />
|
<xsl:import href="../template/1.76.1/docbook-xsl-1.76.1/eclipse/eclipse3.xsl" />
|
||||||
|
|
||||||
<!--
|
|
||||||
|
|
||||||
<xsl:import
|
<xsl:import
|
||||||
href="http://docbook.sourceforge.net/release/xsl/1.76.1/eclipse/eclipse3.xsl" />
|
href="http://docbook.sourceforge.net/release/xsl/1.76.1/eclipse/eclipse3.xsl" />
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
The tasks you can perform using a standard SDK are also applicable
|
The tasks you can perform using a standard SDK are also applicable
|
||||||
when you are using an extensible SDK.
|
when you are using an extensible SDK.
|
||||||
For information on the differences when using an extensible SDK as
|
For information on the differences when using an extensible SDK as
|
||||||
compared to an extensible SDK, see the
|
compared to a standard SDK, see the
|
||||||
"<link linkend='sdk-extensible'>Using the Extensible SDK</link>"
|
"<link linkend='sdk-extensible'>Using the Extensible SDK</link>"
|
||||||
chapter.
|
chapter.
|
||||||
</note>
|
</note>
|
||||||
@@ -46,7 +46,7 @@
|
|||||||
|
|
||||||
<para>
|
<para>
|
||||||
The first thing you need to do is install the SDK on your host
|
The first thing you need to do is install the SDK on your host
|
||||||
development machine by running the <filename>.sh</filename>
|
development machine by running the <filename>*.sh</filename>
|
||||||
installation script.
|
installation script.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
@@ -382,8 +382,8 @@
|
|||||||
To illustrate this, consider the following four cross-toolchain
|
To illustrate this, consider the following four cross-toolchain
|
||||||
environment variables:
|
environment variables:
|
||||||
<literallayout class='monospaced'>
|
<literallayout class='monospaced'>
|
||||||
<ulink url='&YOCTO_DOCS_REF_URL;#var-CC'>CC</ulink>=i586-poky-linux-gcc -m32 -march=i586 --sysroot=/opt/poky/1.8/sysroots/i586-poky-linux
|
<ulink url='&YOCTO_DOCS_REF_URL;#var-CC'>CC</ulink>=i586-poky-linux-gcc -m32 -march=i586 --sysroot=/opt/poky/&DISTRO;/sysroots/i586-poky-linux
|
||||||
<ulink url='&YOCTO_DOCS_REF_URL;#var-LD'>LD</ulink>=i586-poky-linux-ld --sysroot=/opt/poky/1.8/sysroots/i586-poky-linux
|
<ulink url='&YOCTO_DOCS_REF_URL;#var-LD'>LD</ulink>=i586-poky-linux-ld --sysroot=/opt/poky/&DISTRO;/sysroots/i586-poky-linux
|
||||||
<ulink url='&YOCTO_DOCS_REF_URL;#var-CFLAGS'>CFLAGS</ulink>=-O2 -pipe -g -feliminate-unused-debug-types
|
<ulink url='&YOCTO_DOCS_REF_URL;#var-CFLAGS'>CFLAGS</ulink>=-O2 -pipe -g -feliminate-unused-debug-types
|
||||||
<ulink url='&YOCTO_DOCS_REF_URL;#var-CXXFLAGS'>CXXFLAGS</ulink>=-O2 -pipe -g -feliminate-unused-debug-types
|
<ulink url='&YOCTO_DOCS_REF_URL;#var-CXXFLAGS'>CXXFLAGS</ulink>=-O2 -pipe -g -feliminate-unused-debug-types
|
||||||
</literallayout>
|
</literallayout>
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
DISTRO = "poky"
|
DISTRO = "poky"
|
||||||
DISTRO_NAME = "Poky (Yocto Project Reference Distro)"
|
DISTRO_NAME = "Poky (Yocto Project Reference Distro)"
|
||||||
DISTRO_VERSION = "2.1"
|
DISTRO_VERSION = "2.1.1"
|
||||||
DISTRO_CODENAME = "krogoth"
|
DISTRO_CODENAME = "krogoth"
|
||||||
SDK_VENDOR = "-pokysdk"
|
SDK_VENDOR = "-pokysdk"
|
||||||
SDK_VERSION := "${@'${DISTRO_VERSION}'.replace('snapshot-${DATE}','snapshot')}"
|
SDK_VERSION := "${@'${DISTRO_VERSION}'.replace('snapshot-${DATE}','snapshot')}"
|
||||||
|
|||||||
@@ -40,23 +40,17 @@
|
|||||||
"name": "OpenEmbedded",
|
"name": "OpenEmbedded",
|
||||||
"sourcetype": "layerindex",
|
"sourcetype": "layerindex",
|
||||||
"apiurl": "http://layers.openembedded.org/layerindex/api/",
|
"apiurl": "http://layers.openembedded.org/layerindex/api/",
|
||||||
"branches": ["master", "jethro", "krogoth"]
|
"branches": ["jethro", "krogoth"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Imported layers",
|
"name": "Imported layers",
|
||||||
"sourcetype": "imported",
|
"sourcetype": "imported",
|
||||||
"apiurl": "",
|
"apiurl": "",
|
||||||
"branches": ["master", "jethro", "krogoth", "HEAD"]
|
"branches": ["jethro", "krogoth", "HEAD"]
|
||||||
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"bitbake" : [
|
"bitbake" : [
|
||||||
{
|
|
||||||
"name": "master",
|
|
||||||
"giturl": "remote:origin",
|
|
||||||
"branch": "master",
|
|
||||||
"dirpath": "bitbake"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "jethro",
|
"name": "jethro",
|
||||||
"giturl": "remote:origin",
|
"giturl": "remote:origin",
|
||||||
@@ -77,18 +71,9 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|
||||||
"defaultrelease": "master",
|
"defaultrelease": "krogoth",
|
||||||
|
|
||||||
"releases": [
|
"releases": [
|
||||||
{
|
|
||||||
"name": "master",
|
|
||||||
"description": "Yocto Project master",
|
|
||||||
"bitbake": "master",
|
|
||||||
"branch": "master",
|
|
||||||
"defaultlayers": [ "openembedded-core", "meta-poky", "meta-yocto-bsp"],
|
|
||||||
"layersourcepriority": { "Imported layers": 99, "Local Yocto Project" : 10, "OpenEmbedded" : 0 },
|
|
||||||
"helptext": "Toaster will run your builds using the tip of the <a href=\"http://git.yoctoproject.org/cgit/cgit.cgi/poky/log/\">Yocto Project master branch</a>, where active development takes place. This is not a stable branch, so your builds might not work as expected."
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "jethro",
|
"name": "jethro",
|
||||||
"description": "Yocto Project 2.0 Jethro",
|
"description": "Yocto Project 2.0 Jethro",
|
||||||
|
|||||||
@@ -77,6 +77,8 @@ CONFIGUREOPTS = " --build=${BUILD_SYS} \
|
|||||||
${@append_libtool_sysroot(d)}"
|
${@append_libtool_sysroot(d)}"
|
||||||
CONFIGUREOPT_DEPTRACK ?= "--disable-dependency-tracking"
|
CONFIGUREOPT_DEPTRACK ?= "--disable-dependency-tracking"
|
||||||
|
|
||||||
|
CACHED_CONFIGUREVARS ?= ""
|
||||||
|
|
||||||
AUTOTOOLS_SCRIPT_PATH ?= "${S}"
|
AUTOTOOLS_SCRIPT_PATH ?= "${S}"
|
||||||
CONFIGURE_SCRIPT ?= "${AUTOTOOLS_SCRIPT_PATH}/configure"
|
CONFIGURE_SCRIPT ?= "${AUTOTOOLS_SCRIPT_PATH}/configure"
|
||||||
|
|
||||||
|
|||||||
@@ -105,6 +105,9 @@ def get_lic_checksum_file_list(d):
|
|||||||
# any others should be covered by SRC_URI.
|
# any others should be covered by SRC_URI.
|
||||||
try:
|
try:
|
||||||
path = bb.fetch.decodeurl(url)[2]
|
path = bb.fetch.decodeurl(url)[2]
|
||||||
|
if not path:
|
||||||
|
raise bb.fetch.MalformedUrl(url)
|
||||||
|
|
||||||
if path[0] == '/':
|
if path[0] == '/':
|
||||||
if path.startswith(tmpdir):
|
if path.startswith(tmpdir):
|
||||||
continue
|
continue
|
||||||
|
|||||||
@@ -68,6 +68,7 @@ python () {
|
|||||||
elif tarch == "mips64":
|
elif tarch == "mips64":
|
||||||
d.appendVar("CANADIANEXTRAOS", " linux-gnun32 linux-uclibcn32 linux-musln32")
|
d.appendVar("CANADIANEXTRAOS", " linux-gnun32 linux-uclibcn32 linux-musln32")
|
||||||
if tarch == "arm" or tarch == "armeb":
|
if tarch == "arm" or tarch == "armeb":
|
||||||
|
d.appendVar("CANADIANEXTRAOS", " linux-musleabi linux-uclibceabi")
|
||||||
d.setVar("TARGET_OS", "linux-gnueabi")
|
d.setVar("TARGET_OS", "linux-gnueabi")
|
||||||
else:
|
else:
|
||||||
d.setVar("TARGET_OS", "linux")
|
d.setVar("TARGET_OS", "linux")
|
||||||
|
|||||||
@@ -65,7 +65,6 @@ def devpyshell(d):
|
|||||||
os.dup2(m, sys.stdout.fileno())
|
os.dup2(m, sys.stdout.fileno())
|
||||||
os.dup2(m, sys.stderr.fileno())
|
os.dup2(m, sys.stderr.fileno())
|
||||||
|
|
||||||
sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0)
|
|
||||||
sys.stdin = os.fdopen(sys.stdin.fileno(), 'r', 0)
|
sys.stdin = os.fdopen(sys.stdin.fileno(), 'r', 0)
|
||||||
|
|
||||||
bb.utils.nonblockingfd(sys.stdout)
|
bb.utils.nonblockingfd(sys.stdout)
|
||||||
|
|||||||
@@ -23,16 +23,17 @@ do_bootdirectdisk[depends] += "dosfstools-native:do_populate_sysroot \
|
|||||||
syslinux-native:do_populate_sysroot \
|
syslinux-native:do_populate_sysroot \
|
||||||
parted-native:do_populate_sysroot \
|
parted-native:do_populate_sysroot \
|
||||||
mtools-native:do_populate_sysroot \
|
mtools-native:do_populate_sysroot \
|
||||||
${PN}:do_image_ext4 \
|
${PN}:do_image_${VM_ROOTFS_TYPE} \
|
||||||
"
|
"
|
||||||
|
|
||||||
IMAGE_TYPEDEP_vmdk = "ext4"
|
IMAGE_TYPEDEP_vmdk = "${VM_ROOTFS_TYPE}"
|
||||||
IMAGE_TYPEDEP_vdi = "ext4"
|
IMAGE_TYPEDEP_vdi = "${VM_ROOTFS_TYPE}"
|
||||||
IMAGE_TYPEDEP_qcow2 = "ext4"
|
IMAGE_TYPEDEP_qcow2 = "${VM_ROOTFS_TYPE}"
|
||||||
IMAGE_TYPEDEP_hdddirect = "ext4"
|
IMAGE_TYPEDEP_hdddirect = "${VM_ROOTFS_TYPE}"
|
||||||
IMAGE_TYPES_MASKED += "vmdk vdi qcow2 hdddirect"
|
IMAGE_TYPES_MASKED += "vmdk vdi qcow2 hdddirect"
|
||||||
|
|
||||||
ROOTFS ?= "${DEPLOY_DIR_IMAGE}/${IMAGE_LINK_NAME}.ext4"
|
VM_ROOTFS_TYPE ?= "ext4"
|
||||||
|
ROOTFS ?= "${DEPLOY_DIR_IMAGE}/${IMAGE_LINK_NAME}.${VM_ROOTFS_TYPE}"
|
||||||
|
|
||||||
# Used by bootloader
|
# Used by bootloader
|
||||||
LABELS_VM ?= "boot"
|
LABELS_VM ?= "boot"
|
||||||
|
|||||||
@@ -166,7 +166,7 @@ python () {
|
|||||||
if temp:
|
if temp:
|
||||||
bb.fatal("%s contains conflicting IMAGE_FEATURES %s %s" % (d.getVar('PN', True), feature, ' '.join(list(temp))))
|
bb.fatal("%s contains conflicting IMAGE_FEATURES %s %s" % (d.getVar('PN', True), feature, ' '.join(list(temp))))
|
||||||
|
|
||||||
d.setVar('IMAGE_FEATURES', ' '.join(list(remain_features)))
|
d.setVar('IMAGE_FEATURES', ' '.join(sorted(list(remain_features))))
|
||||||
|
|
||||||
check_image_features(d)
|
check_image_features(d)
|
||||||
initramfs_image = d.getVar('INITRAMFS_IMAGE', True) or ""
|
initramfs_image = d.getVar('INITRAMFS_IMAGE', True) or ""
|
||||||
@@ -388,19 +388,27 @@ python () {
|
|||||||
bb.fatal("No IMAGE_CMD defined for IMAGE_FSTYPES entry '%s' - possibly invalid type name or missing support class" % t)
|
bb.fatal("No IMAGE_CMD defined for IMAGE_FSTYPES entry '%s' - possibly invalid type name or missing support class" % t)
|
||||||
cmds.append(localdata.expand("\tcd ${DEPLOY_DIR_IMAGE}"))
|
cmds.append(localdata.expand("\tcd ${DEPLOY_DIR_IMAGE}"))
|
||||||
|
|
||||||
|
# Since a copy of IMAGE_CMD_xxx will be inlined within do_image_xxx,
|
||||||
|
# prevent a redundant copy of IMAGE_CMD_xxx being emitted as a function.
|
||||||
|
d.delVarFlag('IMAGE_CMD_' + realt, 'func')
|
||||||
|
|
||||||
rm_tmp_images = set()
|
rm_tmp_images = set()
|
||||||
def gen_conversion_cmds(bt):
|
def gen_conversion_cmds(bt):
|
||||||
for ctype in ctypes:
|
for ctype in ctypes:
|
||||||
if bt.endswith("." + ctype):
|
if bt[bt.find('.') + 1:] == ctype:
|
||||||
type = bt[0:-len(ctype) - 1]
|
type = bt[0:-len(ctype) - 1]
|
||||||
if type.startswith("debugfs_"):
|
if type.startswith("debugfs_"):
|
||||||
type = type[8:]
|
type = type[8:]
|
||||||
# Create input image first.
|
# Create input image first.
|
||||||
gen_conversion_cmds(type)
|
gen_conversion_cmds(type)
|
||||||
localdata.setVar('type', type)
|
localdata.setVar('type', type)
|
||||||
cmds.append("\t" + localdata.getVar("COMPRESS_CMD_" + ctype, True))
|
cmd = "\t" + localdata.getVar("COMPRESS_CMD_" + ctype, True)
|
||||||
|
if cmd not in cmds:
|
||||||
|
cmds.append(cmd)
|
||||||
vardeps.add('COMPRESS_CMD_' + ctype)
|
vardeps.add('COMPRESS_CMD_' + ctype)
|
||||||
subimages.append(type + "." + ctype)
|
subimage = type + "." + ctype
|
||||||
|
if subimage not in subimages:
|
||||||
|
subimages.append(subimage)
|
||||||
if type not in alltypes:
|
if type not in alltypes:
|
||||||
rm_tmp_images.add(localdata.expand("${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}"))
|
rm_tmp_images.add(localdata.expand("${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}"))
|
||||||
|
|
||||||
|
|||||||
@@ -11,32 +11,28 @@ IMAGE_ROOTFS_ALIGNMENT ?= "1"
|
|||||||
|
|
||||||
def imagetypes_getdepends(d):
|
def imagetypes_getdepends(d):
|
||||||
def adddep(depstr, deps):
|
def adddep(depstr, deps):
|
||||||
for i in (depstr or "").split():
|
for d in (depstr or "").split():
|
||||||
if i not in deps:
|
# Add task dependency if not already present
|
||||||
deps.append(i)
|
if ":" not in d:
|
||||||
|
d += ":do_populate_sysroot"
|
||||||
|
deps.add(d)
|
||||||
|
|
||||||
deps = []
|
|
||||||
ctypes = d.getVar('COMPRESSIONTYPES', True).split()
|
|
||||||
fstypes = set((d.getVar('IMAGE_FSTYPES', True) or "").split())
|
fstypes = set((d.getVar('IMAGE_FSTYPES', True) or "").split())
|
||||||
fstypes |= set((d.getVar('IMAGE_FSTYPES_DEBUGFS', True) or "").split())
|
fstypes |= set((d.getVar('IMAGE_FSTYPES_DEBUGFS', True) or "").split())
|
||||||
for type in fstypes:
|
|
||||||
if type in ["vmdk", "vdi", "qcow2", "hdddirect", "live", "iso", "hddimg"]:
|
deps = set()
|
||||||
type = "ext4"
|
for typestring in fstypes:
|
||||||
basetype = type
|
types = typestring.split(".")
|
||||||
for ctype in ctypes:
|
basetype, resttypes = types[0], types[1:]
|
||||||
if type.endswith("." + ctype):
|
|
||||||
basetype = type[:-len("." + ctype)]
|
adddep(d.getVar('IMAGE_DEPENDS_%s' % basetype, True) , deps)
|
||||||
adddep(d.getVar("COMPRESS_DEPENDS_%s" % ctype, True), deps)
|
|
||||||
break
|
|
||||||
for typedepends in (d.getVar("IMAGE_TYPEDEP_%s" % basetype, True) or "").split():
|
for typedepends in (d.getVar("IMAGE_TYPEDEP_%s" % basetype, True) or "").split():
|
||||||
adddep(d.getVar('IMAGE_DEPENDS_%s' % typedepends, True) , deps)
|
adddep(d.getVar('IMAGE_DEPENDS_%s' % typedepends, True) , deps)
|
||||||
adddep(d.getVar('IMAGE_DEPENDS_%s' % basetype, True) , deps)
|
for ctype in resttypes:
|
||||||
|
adddep(d.getVar("COMPRESS_DEPENDS_%s" % ctype, True), deps)
|
||||||
depstr = ""
|
|
||||||
for dep in deps:
|
|
||||||
depstr += " " + dep + ":do_populate_sysroot"
|
|
||||||
return depstr
|
|
||||||
|
|
||||||
|
# Sort the set so that ordering is consistant
|
||||||
|
return " ".join(sorted(deps))
|
||||||
|
|
||||||
XZ_COMPRESSION_LEVEL ?= "-e -6"
|
XZ_COMPRESSION_LEVEL ?= "-e -6"
|
||||||
XZ_INTEGRITY_CHECK ?= "crc32"
|
XZ_INTEGRITY_CHECK ?= "crc32"
|
||||||
|
|||||||
@@ -672,7 +672,7 @@ def package_qa_check_symlink_to_sysroot(path, name, d, elf, messages):
|
|||||||
trimmed = path.replace(os.path.join (d.getVar("PKGDEST", True), name), "")
|
trimmed = path.replace(os.path.join (d.getVar("PKGDEST", True), name), "")
|
||||||
package_qa_add_message(messages, "symlink-to-sysroot", "Symlink %s in %s points to TMPDIR" % (trimmed, name))
|
package_qa_add_message(messages, "symlink-to-sysroot", "Symlink %s in %s points to TMPDIR" % (trimmed, name))
|
||||||
|
|
||||||
def package_qa_check_license(workdir, d):
|
def package_qa_check_license(d):
|
||||||
"""
|
"""
|
||||||
Check for changes in the license files
|
Check for changes in the license files
|
||||||
"""
|
"""
|
||||||
@@ -1211,7 +1211,7 @@ Missing inherit gettext?""" % (gt, config))
|
|||||||
# Check license variables
|
# Check license variables
|
||||||
###########################################################################
|
###########################################################################
|
||||||
|
|
||||||
package_qa_check_license(workdir, d)
|
package_qa_check_license(d)
|
||||||
|
|
||||||
###########################################################################
|
###########################################################################
|
||||||
# Check unrecognised configure options (with a white list)
|
# Check unrecognised configure options (with a white list)
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ python __anonymous () {
|
|||||||
# KEEPUIMAGE == yes. Otherwise, we pack compressed vmlinux into
|
# KEEPUIMAGE == yes. Otherwise, we pack compressed vmlinux into
|
||||||
# the uImage .
|
# the uImage .
|
||||||
if d.getVar("KEEPUIMAGE", True) != 'yes':
|
if d.getVar("KEEPUIMAGE", True) != 'yes':
|
||||||
d.setVar("KERNEL_IMAGETYPE_FOR_MAKE", "zImage")
|
d.setVar("KERNEL_IMAGETYPE_FOR_MAKE", "vmlinux")
|
||||||
}
|
}
|
||||||
|
|
||||||
do_uboot_mkimage() {
|
do_uboot_mkimage() {
|
||||||
|
|||||||
@@ -170,15 +170,20 @@ do_patch() {
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
current_branch=`git rev-parse --abbrev-ref HEAD`
|
if [ -n "${KMETA_AUDIT}" ]; then
|
||||||
machine_branch="${@ get_machine_branch(d, "${KBRANCH}" )}"
|
current_branch=`git rev-parse --abbrev-ref HEAD`
|
||||||
if [ "${current_branch}" != "${machine_branch}" ]; then
|
machine_branch="${@ get_machine_branch(d, "${KBRANCH}" )}"
|
||||||
bbwarn "After meta data application, the kernel tree branch is ${current_branch}. The"
|
if [ "${current_branch}" != "${machine_branch}" ]; then
|
||||||
bbwarn "SRC_URI specified branch ${machine_branch}. The branch will be forced to ${machine_branch},"
|
bbwarn "After meta data application, the kernel tree branch is ${current_branch}."
|
||||||
bbwarn "but this means the board meta data (.scc files) do not match the SRC_URI specification."
|
bbwarn "The SRC_URI specified branch ${machine_branch}."
|
||||||
bbwarn "The meta data and branch ${machine_branch} should be inspected to ensure the proper"
|
bbwarn ""
|
||||||
bbwarn "kernel is being built."
|
bbwarn "The branch will be forced to ${machine_branch}, but this means the board meta data"
|
||||||
git checkout -f ${machine_branch}
|
bbwarn "(.scc files) do not match the SRC_URI specification."
|
||||||
|
bbwarn ""
|
||||||
|
bbwarn "The meta data and branch ${machine_branch} should be inspected to ensure the proper"
|
||||||
|
bbwarn "kernel is being built."
|
||||||
|
git checkout -f ${machine_branch}
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "${machine_srcrev}" != "AUTOINC" ]; then
|
if [ "${machine_srcrev}" != "AUTOINC" ]; then
|
||||||
|
|||||||
@@ -4,8 +4,7 @@ METADATA_REVISION ?= "${@base_detect_revision(d)}"
|
|||||||
def base_detect_revision(d):
|
def base_detect_revision(d):
|
||||||
path = base_get_scmbasepath(d)
|
path = base_get_scmbasepath(d)
|
||||||
|
|
||||||
scms = [base_get_metadata_git_revision, \
|
scms = [base_get_metadata_git_revision]
|
||||||
base_get_metadata_svn_revision]
|
|
||||||
|
|
||||||
for scm in scms:
|
for scm in scms:
|
||||||
rev = scm(path, d)
|
rev = scm(path, d)
|
||||||
@@ -27,7 +26,7 @@ def base_detect_branch(d):
|
|||||||
return "<unknown>"
|
return "<unknown>"
|
||||||
|
|
||||||
def base_get_scmbasepath(d):
|
def base_get_scmbasepath(d):
|
||||||
return d.getVar( 'COREBASE', True)
|
return os.path.join(d.getVar('COREBASE', True), 'meta')
|
||||||
|
|
||||||
def base_get_metadata_monotone_branch(path, d):
|
def base_get_metadata_monotone_branch(path, d):
|
||||||
monotone_branch = "<unknown>"
|
monotone_branch = "<unknown>"
|
||||||
|
|||||||
@@ -146,7 +146,7 @@ def do_split_packages(d, root, file_regex, output_pattern, description, postinst
|
|||||||
|
|
||||||
|
|
||||||
packages = d.getVar('PACKAGES', True).split()
|
packages = d.getVar('PACKAGES', True).split()
|
||||||
split_packages = []
|
split_packages = set()
|
||||||
|
|
||||||
if postinst:
|
if postinst:
|
||||||
postinst = '#!/bin/sh\n' + postinst + '\n'
|
postinst = '#!/bin/sh\n' + postinst + '\n'
|
||||||
@@ -183,7 +183,7 @@ def do_split_packages(d, root, file_regex, output_pattern, description, postinst
|
|||||||
continue
|
continue
|
||||||
on = legitimize_package_name(m.group(1))
|
on = legitimize_package_name(m.group(1))
|
||||||
pkg = output_pattern % on
|
pkg = output_pattern % on
|
||||||
split_packages.append(pkg)
|
split_packages.add(pkg)
|
||||||
if not pkg in packages:
|
if not pkg in packages:
|
||||||
if prepend:
|
if prepend:
|
||||||
packages = [pkg] + packages
|
packages = [pkg] + packages
|
||||||
@@ -226,7 +226,7 @@ def do_split_packages(d, root, file_regex, output_pattern, description, postinst
|
|||||||
hook(f, pkg, file_regex, output_pattern, m.group(1))
|
hook(f, pkg, file_regex, output_pattern, m.group(1))
|
||||||
|
|
||||||
d.setVar('PACKAGES', ' '.join(packages))
|
d.setVar('PACKAGES', ' '.join(packages))
|
||||||
return split_packages
|
return list(split_packages)
|
||||||
|
|
||||||
PACKAGE_DEPENDS += "file-native"
|
PACKAGE_DEPENDS += "file-native"
|
||||||
|
|
||||||
|
|||||||
@@ -221,7 +221,7 @@ python copy_buildsystem () {
|
|||||||
|
|
||||||
# Error if the sigs in the locked-signature file don't match
|
# Error if the sigs in the locked-signature file don't match
|
||||||
# the sig computed from the metadata.
|
# the sig computed from the metadata.
|
||||||
f.write('SIGGEN_LOCKEDSIGS_TASKSIG_CHECK = "error"\n\n')
|
f.write('SIGGEN_LOCKEDSIGS_TASKSIG_CHECK = "warn"\n\n')
|
||||||
|
|
||||||
# Hide the config information from bitbake output (since it's fixed within the SDK)
|
# Hide the config information from bitbake output (since it's fixed within the SDK)
|
||||||
f.write('BUILDCFG_HEADER = ""\n')
|
f.write('BUILDCFG_HEADER = ""\n')
|
||||||
@@ -420,7 +420,7 @@ sdk_ext_postinst() {
|
|||||||
# current working directory when first ran, nor will it set $1 when
|
# current working directory when first ran, nor will it set $1 when
|
||||||
# sourcing a script. That is why this has to look so ugly.
|
# sourcing a script. That is why this has to look so ugly.
|
||||||
LOGFILE="$target_sdk_dir/preparing_build_system.log"
|
LOGFILE="$target_sdk_dir/preparing_build_system.log"
|
||||||
sh -c ". buildtools/environment-setup* > $LOGFILE && cd $target_sdk_dir/`dirname ${oe_init_build_env_path}` && set $target_sdk_dir && . $target_sdk_dir/${oe_init_build_env_path} $target_sdk_dir >> $LOGFILE && python $target_sdk_dir/ext-sdk-prepare.py '${SDK_INSTALL_TARGETS}' >> $LOGFILE 2>&1" || { echo "ERROR: SDK preparation failed: see $LOGFILE"; echo "printf 'ERROR: this SDK was not fully installed and needs reinstalling\n'" >> $env_setup_script ; exit 1 ; }
|
sh -c ". buildtools/environment-setup* > $LOGFILE && cd $target_sdk_dir/`dirname ${oe_init_build_env_path}` && set $target_sdk_dir && . $target_sdk_dir/${oe_init_build_env_path} $target_sdk_dir >> $LOGFILE && python $target_sdk_dir/ext-sdk-prepare.py '${SDK_INSTALL_TARGETS}' >> $LOGFILE 2>&1" || { echo "ERROR: SDK preparation failed: see $LOGFILE"; cat "$LOGFILE"; echo "printf 'ERROR: this SDK was not fully installed and needs reinstalling\n'" >> $env_setup_script ; exit 1 ; }
|
||||||
rm $target_sdk_dir/ext-sdk-prepare.py
|
rm $target_sdk_dir/ext-sdk-prepare.py
|
||||||
fi
|
fi
|
||||||
echo done
|
echo done
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ SYSLINUX_SERIAL_TTY ?= "console=ttyS0,115200"
|
|||||||
SYSLINUX_PROMPT ?= "0"
|
SYSLINUX_PROMPT ?= "0"
|
||||||
SYSLINUX_TIMEOUT ?= "50"
|
SYSLINUX_TIMEOUT ?= "50"
|
||||||
AUTO_SYSLINUXMENU ?= "1"
|
AUTO_SYSLINUXMENU ?= "1"
|
||||||
|
SYSLINUX_ALLOWOPTIONS ?= "1"
|
||||||
SYSLINUX_ROOT ?= "${ROOT}"
|
SYSLINUX_ROOT ?= "${ROOT}"
|
||||||
SYSLINUX_CFG_VM ?= "${S}/syslinux_vm.cfg"
|
SYSLINUX_CFG_VM ?= "${S}/syslinux_vm.cfg"
|
||||||
SYSLINUX_CFG_LIVE ?= "${S}/syslinux_live.cfg"
|
SYSLINUX_CFG_LIVE ?= "${S}/syslinux_live.cfg"
|
||||||
@@ -114,7 +115,12 @@ python build_syslinux_cfg () {
|
|||||||
for opt in opts.split(';'):
|
for opt in opts.split(';'):
|
||||||
cfgfile.write('%s\n' % opt)
|
cfgfile.write('%s\n' % opt)
|
||||||
|
|
||||||
cfgfile.write('ALLOWOPTIONS 1\n');
|
allowoptions = d.getVar('SYSLINUX_ALLOWOPTIONS', True)
|
||||||
|
if allowoptions:
|
||||||
|
cfgfile.write('ALLOWOPTIONS %s\n' % allowoptions)
|
||||||
|
else:
|
||||||
|
cfgfile.write('ALLOWOPTIONS 1\n')
|
||||||
|
|
||||||
syslinux_default_console = d.getVar('SYSLINUX_DEFAULT_CONSOLE', True)
|
syslinux_default_console = d.getVar('SYSLINUX_DEFAULT_CONSOLE', True)
|
||||||
syslinux_serial_tty = d.getVar('SYSLINUX_SERIAL_TTY', True)
|
syslinux_serial_tty = d.getVar('SYSLINUX_SERIAL_TTY', True)
|
||||||
syslinux_serial = d.getVar('SYSLINUX_SERIAL', True)
|
syslinux_serial = d.getVar('SYSLINUX_SERIAL', True)
|
||||||
|
|||||||
@@ -89,12 +89,12 @@ toolchain_shared_env_script () {
|
|||||||
# Append environment subscripts
|
# Append environment subscripts
|
||||||
if [ -d "\$OECORE_TARGET_SYSROOT/environment-setup.d" ]; then
|
if [ -d "\$OECORE_TARGET_SYSROOT/environment-setup.d" ]; then
|
||||||
for envfile in \$OECORE_TARGET_SYSROOT/environment-setup.d/*.sh; do
|
for envfile in \$OECORE_TARGET_SYSROOT/environment-setup.d/*.sh; do
|
||||||
source \$envfile
|
. \$envfile
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
if [ -d "\$OECORE_NATIVE_SYSROOT/environment-setup.d" ]; then
|
if [ -d "\$OECORE_NATIVE_SYSROOT/environment-setup.d" ]; then
|
||||||
for envfile in \$OECORE_NATIVE_SYSROOT/environment-setup.d/*.sh; do
|
for envfile in \$OECORE_NATIVE_SYSROOT/environment-setup.d/*.sh; do
|
||||||
source \$envfile
|
. \$envfile
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
EOF
|
EOF
|
||||||
|
|||||||
@@ -71,14 +71,14 @@ def gen_updatealternativesvardeps(d):
|
|||||||
|
|
||||||
# First compute them for non_pkg versions
|
# First compute them for non_pkg versions
|
||||||
for v in vars:
|
for v in vars:
|
||||||
for flag in (d.getVarFlags(v) or {}):
|
for flag in sorted((d.getVarFlags(v) or {}).keys()):
|
||||||
if flag == "doc" or flag == "vardeps" or flag == "vardepsexp":
|
if flag == "doc" or flag == "vardeps" or flag == "vardepsexp":
|
||||||
continue
|
continue
|
||||||
d.appendVar('%s_VARDEPS' % (v), ' %s:%s' % (flag, d.getVarFlag(v, flag, False)))
|
d.appendVar('%s_VARDEPS' % (v), ' %s:%s' % (flag, d.getVarFlag(v, flag, False)))
|
||||||
|
|
||||||
for p in pkgs:
|
for p in pkgs:
|
||||||
for v in vars:
|
for v in vars:
|
||||||
for flag in (d.getVarFlags("%s_%s" % (v,p)) or {}):
|
for flag in sorted((d.getVarFlags("%s_%s" % (v,p)) or {}).keys()):
|
||||||
if flag == "doc" or flag == "vardeps" or flag == "vardepsexp":
|
if flag == "doc" or flag == "vardeps" or flag == "vardepsexp":
|
||||||
continue
|
continue
|
||||||
d.appendVar('%s_VARDEPS_%s' % (v,p), ' %s:%s' % (flag, d.getVarFlag('%s_%s' % (v,p), flag, False)))
|
d.appendVar('%s_VARDEPS_%s' % (v,p), ' %s:%s' % (flag, d.getVarFlag('%s_%s' % (v,p), flag, False)))
|
||||||
|
|||||||
@@ -46,6 +46,14 @@ def update_useradd_static_config(d):
|
|||||||
|
|
||||||
return id_table
|
return id_table
|
||||||
|
|
||||||
|
def handle_missing_id(id, type, pkg):
|
||||||
|
# For backwards compatibility we accept "1" in addition to "error"
|
||||||
|
if d.getVar('USERADD_ERROR_DYNAMIC', True) == 'error' or d.getVar('USERADD_ERROR_DYNAMIC', True) == '1':
|
||||||
|
#bb.error("Skipping recipe %s, package %s which adds %sname %s does not have a static ID defined." % (d.getVar('PN', True), pkg, type, id))
|
||||||
|
raise bb.build.FuncFailed("%s - %s: %sname %s does not have a static ID defined." % (d.getVar('PN', True), pkg, type, id))
|
||||||
|
elif d.getVar('USERADD_ERROR_DYNAMIC', True) == 'warn':
|
||||||
|
bb.warn("%s - %s: %sname %s does not have a static ID defined." % (d.getVar('PN', True), pkg, type, id))
|
||||||
|
|
||||||
# We parse and rewrite the useradd components
|
# We parse and rewrite the useradd components
|
||||||
def rewrite_useradd(params):
|
def rewrite_useradd(params):
|
||||||
# The following comes from --help on useradd from shadow
|
# The following comes from --help on useradd from shadow
|
||||||
@@ -112,6 +120,8 @@ def update_useradd_static_config(d):
|
|||||||
users = merge_files(get_passwd_list(d), 7)
|
users = merge_files(get_passwd_list(d), 7)
|
||||||
|
|
||||||
if uaargs.LOGIN not in users:
|
if uaargs.LOGIN not in users:
|
||||||
|
if not uaargs.uid or not uaargs.uid.isdigit() or not uaargs.gid:
|
||||||
|
handle_missing_id(uaargs.LOGIN, 'user', pkg)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
field = users[uaargs.LOGIN]
|
field = users[uaargs.LOGIN]
|
||||||
@@ -161,9 +171,8 @@ def update_useradd_static_config(d):
|
|||||||
uaargs.shell = field[6] or uaargs.shell
|
uaargs.shell = field[6] or uaargs.shell
|
||||||
|
|
||||||
# Should be an error if a specific option is set...
|
# Should be an error if a specific option is set...
|
||||||
if d.getVar('USERADD_ERROR_DYNAMIC', True) == '1' and not ((uaargs.uid and uaargs.uid.isdigit()) and uaargs.gid):
|
if not uaargs.uid or not uaargs.uid.isdigit() or not uaargs.gid:
|
||||||
#bb.error("Skipping recipe %s, package %s which adds username %s does not have a static uid defined." % (d.getVar('PN', True), pkg, uaargs.LOGIN))
|
handle_missing_id(uaargs.LOGIN, 'user', pkg)
|
||||||
raise bb.build.FuncFailed("%s - %s: Username %s does not have a static uid defined." % (d.getVar('PN', True), pkg, uaargs.LOGIN))
|
|
||||||
|
|
||||||
# Reconstruct the args...
|
# Reconstruct the args...
|
||||||
newparam = ['', ' --defaults'][uaargs.defaults]
|
newparam = ['', ' --defaults'][uaargs.defaults]
|
||||||
@@ -244,6 +253,8 @@ def update_useradd_static_config(d):
|
|||||||
groups = merge_files(get_group_list(d), 4)
|
groups = merge_files(get_group_list(d), 4)
|
||||||
|
|
||||||
if gaargs.GROUP not in groups:
|
if gaargs.GROUP not in groups:
|
||||||
|
if not gaargs.gid or not gaargs.gid.isdigit():
|
||||||
|
handle_missing_id(gaargs.GROUP, 'group', pkg)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
field = groups[gaargs.GROUP]
|
field = groups[gaargs.GROUP]
|
||||||
@@ -253,9 +264,8 @@ def update_useradd_static_config(d):
|
|||||||
bb.warn("%s: Changing groupname %s's gid from (%s) to (%s), verify configuration files!" % (d.getVar('PN', True), gaargs.GROUP, gaargs.gid, field[2]))
|
bb.warn("%s: Changing groupname %s's gid from (%s) to (%s), verify configuration files!" % (d.getVar('PN', True), gaargs.GROUP, gaargs.gid, field[2]))
|
||||||
gaargs.gid = field[2]
|
gaargs.gid = field[2]
|
||||||
|
|
||||||
if d.getVar('USERADD_ERROR_DYNAMIC', True) == '1' and not (gaargs.gid and gaargs.gid.isdigit()):
|
if not gaargs.gid or not gaargs.gid.isdigit():
|
||||||
#bb.error("Skipping recipe %s, package %s which adds groupname %s does not have a static gid defined." % (d.getVar('PN', True), pkg, gaargs.GROUP))
|
handle_missing_id(gaargs.GROUP, 'group', pkg)
|
||||||
raise bb.build.FuncFailed("%s - %s: Groupname %s does not have a static gid defined." % (d.getVar('PN', True), pkg, gaargs.GROUP))
|
|
||||||
|
|
||||||
# Reconstruct the args...
|
# Reconstruct the args...
|
||||||
newparam = ['', ' --force'][gaargs.force]
|
newparam = ['', ' --force'][gaargs.force]
|
||||||
|
|||||||
@@ -444,10 +444,10 @@ CCACHE ??= ""
|
|||||||
# Disable ccache explicitly if CCACHE is null since gcc may be a symlink
|
# Disable ccache explicitly if CCACHE is null since gcc may be a symlink
|
||||||
# of ccache some distributions (e.g., Fedora 17).
|
# of ccache some distributions (e.g., Fedora 17).
|
||||||
export CCACHE_DISABLE ??= "${@[0,1][d.getVar('CCACHE', True) == '']}"
|
export CCACHE_DISABLE ??= "${@[0,1][d.getVar('CCACHE', True) == '']}"
|
||||||
# Assign CCACHE_DIR a default value to fix a bug of ccache 3.1.7,
|
# ccache < 3.1.10 will create CCACHE_DIR on startup even if disabled, and
|
||||||
# since it would always create CCACHE_DIR/.ccache even if
|
# autogen sets HOME=/dev/null so in certain situations builds can fail.
|
||||||
# CCACHE_DISABLE = 1.
|
# Explicitly export CCACHE_DIR until we can assume ccache >3.1.10 on the host.
|
||||||
export CCACHE_DIR ??= "${@os.getenv('HOME')}"
|
export CCACHE_DIR ??= "${@os.getenv('HOME')}/.ccache"
|
||||||
|
|
||||||
TOOLCHAIN_OPTIONS = " --sysroot=${STAGING_DIR_TARGET}"
|
TOOLCHAIN_OPTIONS = " --sysroot=${STAGING_DIR_TARGET}"
|
||||||
|
|
||||||
@@ -572,7 +572,7 @@ BBLAYERS_FETCH_DIR ??= "${COREBASE}"
|
|||||||
# Download locations and utilities.
|
# Download locations and utilities.
|
||||||
##################################################################
|
##################################################################
|
||||||
|
|
||||||
APACHE_MIRROR = "http://www.eu.apache.org/dist/"
|
APACHE_MIRROR = "http://archive.apache.org/dist"
|
||||||
DEBIAN_MIRROR = "ftp://ftp.debian.org/debian/pool"
|
DEBIAN_MIRROR = "ftp://ftp.debian.org/debian/pool"
|
||||||
GENTOO_MIRROR = "http://distfiles.gentoo.org/distfiles"
|
GENTOO_MIRROR = "http://distfiles.gentoo.org/distfiles"
|
||||||
GNOME_GIT = "git://git.gnome.org"
|
GNOME_GIT = "git://git.gnome.org"
|
||||||
@@ -713,6 +713,7 @@ require conf/sanity.conf
|
|||||||
DL_DIR ?= "${TOPDIR}/downloads"
|
DL_DIR ?= "${TOPDIR}/downloads"
|
||||||
SSTATE_DIR ?= "${TOPDIR}/sstate-cache"
|
SSTATE_DIR ?= "${TOPDIR}/sstate-cache"
|
||||||
IMAGE_FSTYPES ?= "tar.gz"
|
IMAGE_FSTYPES ?= "tar.gz"
|
||||||
|
IMAGE_FSTYPES_DEBUGFS ?= "${IMAGE_FSTYPES}"
|
||||||
|
|
||||||
INITRAMFS_FSTYPES ?= "cpio.gz"
|
INITRAMFS_FSTYPES ?= "cpio.gz"
|
||||||
# The maximum size in Kbytes for the generated initramfs image size.
|
# The maximum size in Kbytes for the generated initramfs image size.
|
||||||
|
|||||||
@@ -451,8 +451,12 @@ UBOOT_SUFFIX[doc] = "Points to the generated U-Boot extension."
|
|||||||
UBOOT_TARGET[doc] = "Specifies the target used for building U-Boot."
|
UBOOT_TARGET[doc] = "Specifies the target used for building U-Boot."
|
||||||
USE_DEVFS[doc] = "When building images, specifies to populate or not /dev. This variable defaults to '1' (leave directory empty, surely because devtmpfs do the job). Set it to '0' to use makedevs (or consider using a custom file with IMAGE_DEVICE_TABLES)."
|
USE_DEVFS[doc] = "When building images, specifies to populate or not /dev. This variable defaults to '1' (leave directory empty, surely because devtmpfs do the job). Set it to '0' to use makedevs (or consider using a custom file with IMAGE_DEVICE_TABLES)."
|
||||||
USER_CLASSES[doc] = "List of additional classes to use when building images that enable extra features."
|
USER_CLASSES[doc] = "List of additional classes to use when building images that enable extra features."
|
||||||
|
USERADD_ERROR_DYNAMIC[doc] = "If set to 'error', forces the OpenEmbedded build system to produce an error if the user identification (uid) and group identification (gid) values are not defined in any of the files listed in USERADD_UID_TABLES and USERADD_GID_TABLES. If set to 'warn', a warning will be issued instead."
|
||||||
|
USERADD_GID_TABLES[doc] = "Specifies a password file to use for obtaining static group identification (gid) values when the OpenEmbedded build system adds a group to the system during package installation."
|
||||||
USERADD_PACKAGES[doc] = "When a recipe inherits the useradd class, this variable specifies the individual packages within the recipe that require users and/or groups to be added."
|
USERADD_PACKAGES[doc] = "When a recipe inherits the useradd class, this variable specifies the individual packages within the recipe that require users and/or groups to be added."
|
||||||
USERADD_PARAM[doc] = "When a recipe inherits the useradd class, this variable specifies for a package what parameters should be passed to the useradd command if you wish to add a user to the system when the package is installed."
|
USERADD_PARAM[doc] = "When a recipe inherits the useradd class, this variable specifies for a package what parameters should be passed to the useradd command if you wish to add a user to the system when the package is installed."
|
||||||
|
USERADD_UID_TABLES[doc] = "Specifies a password file to use for obtaining static user identification (uid) values when the OpenEmbedded build system adds a user to the system during package installation."
|
||||||
|
USERADDEXTENSION[doc] = "When set to 'useradd-staticids', causes the OpenEmbedded build system to base all user and group additions on files listed in USERADD_UID_TABLES and USERADD_GID_TABLES."
|
||||||
|
|
||||||
#W
|
#W
|
||||||
|
|
||||||
|
|||||||
@@ -5,8 +5,7 @@ TUNECONFLICTS[armv7ve] = "armv4 armv5 armv6 armv7 armv7a"
|
|||||||
TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv7ve', ' -march=armv7ve', '', d)}"
|
TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv7ve', ' -march=armv7ve', '', d)}"
|
||||||
MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv7ve', 'armv7ve:', '' ,d)}"
|
MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv7ve', 'armv7ve:', '' ,d)}"
|
||||||
|
|
||||||
require conf/machine/include/arm/arch-armv6.inc
|
require conf/machine/include/arm/arch-armv7a.inc
|
||||||
require conf/machine/include/arm/feature-arm-neon.inc
|
|
||||||
|
|
||||||
# Little Endian base configs
|
# Little Endian base configs
|
||||||
AVAILTUNES += "armv7ve armv7vet armv7ve-vfpv3d16 armv7vet-vfpv3d16 armv7ve-vfpv3 armv7vet-vfpv3 armv7ve-neon armv7vet-neon armv7ve-neon-vfpv4 armv7vet-neon-vfpv4"
|
AVAILTUNES += "armv7ve armv7vet armv7ve-vfpv3d16 armv7vet-vfpv3d16 armv7ve-vfpv3 armv7vet-vfpv3 armv7ve-neon armv7vet-neon armv7ve-neon-vfpv4 armv7vet-neon-vfpv4"
|
||||||
@@ -30,8 +29,8 @@ TUNE_FEATURES_tune-armv7ve-neon = "${TUNE_FEATURES_tune-armv7ve} neon"
|
|||||||
TUNE_FEATURES_tune-armv7vet-neon = "${TUNE_FEATURES_tune-armv7vet} neon"
|
TUNE_FEATURES_tune-armv7vet-neon = "${TUNE_FEATURES_tune-armv7vet} neon"
|
||||||
TUNE_FEATURES_tune-armv7ve-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7ve-neon} vfpv4"
|
TUNE_FEATURES_tune-armv7ve-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7ve-neon} vfpv4"
|
||||||
TUNE_FEATURES_tune-armv7vet-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7vet-neon} vfpv4"
|
TUNE_FEATURES_tune-armv7vet-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7vet-neon} vfpv4"
|
||||||
PACKAGE_EXTRA_ARCHS_tune-armv7ve = "${PACKAGE_EXTRA_ARCHS_tune-armv6} armv7ve armv7ve-vfp"
|
PACKAGE_EXTRA_ARCHS_tune-armv7ve = "${PACKAGE_EXTRA_ARCHS_tune-armv7a} armv7ve armv7ve-vfp"
|
||||||
PACKAGE_EXTRA_ARCHS_tune-armv7vet = "${PACKAGE_EXTRA_ARCHS_tune-armv6t} armv7ve armv7ve-vfp armv7vet2-vfp"
|
PACKAGE_EXTRA_ARCHS_tune-armv7vet = "${PACKAGE_EXTRA_ARCHS_tune-armv7at} armv7ve armv7ve-vfp armv7vet2-vfp"
|
||||||
PACKAGE_EXTRA_ARCHS_tune-armv7ve-vfpv3d16 = "${PACKAGE_EXTRA_ARCHS_tune-armv7ve} armv7ve-vfpv3d16"
|
PACKAGE_EXTRA_ARCHS_tune-armv7ve-vfpv3d16 = "${PACKAGE_EXTRA_ARCHS_tune-armv7ve} armv7ve-vfpv3d16"
|
||||||
PACKAGE_EXTRA_ARCHS_tune-armv7vet-vfpv3d16 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vet} armv7ve-vfpv3d16 armv7vet2-vfpv3d16"
|
PACKAGE_EXTRA_ARCHS_tune-armv7vet-vfpv3d16 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vet} armv7ve-vfpv3d16 armv7vet2-vfpv3d16"
|
||||||
PACKAGE_EXTRA_ARCHS_tune-armv7ve-vfpv3 = "${PACKAGE_EXTRA_ARCHS_tune-armv7ve-vfpv3d16} armv7ve-vfpv3"
|
PACKAGE_EXTRA_ARCHS_tune-armv7ve-vfpv3 = "${PACKAGE_EXTRA_ARCHS_tune-armv7ve-vfpv3d16} armv7ve-vfpv3"
|
||||||
@@ -63,8 +62,8 @@ TUNE_FEATURES_tune-armv7vehf-neon = "${TUNE_FEATURES_tune-armv7ve-neon}
|
|||||||
TUNE_FEATURES_tune-armv7vethf-neon = "${TUNE_FEATURES_tune-armv7vet-neon} callconvention-hard"
|
TUNE_FEATURES_tune-armv7vethf-neon = "${TUNE_FEATURES_tune-armv7vet-neon} callconvention-hard"
|
||||||
TUNE_FEATURES_tune-armv7vehf-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7ve-neon-vfpv4} callconvention-hard"
|
TUNE_FEATURES_tune-armv7vehf-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7ve-neon-vfpv4} callconvention-hard"
|
||||||
TUNE_FEATURES_tune-armv7vethf-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7vet-neon-vfpv4} callconvention-hard"
|
TUNE_FEATURES_tune-armv7vethf-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7vet-neon-vfpv4} callconvention-hard"
|
||||||
PACKAGE_EXTRA_ARCHS_tune-armv7vehf = "${PACKAGE_EXTRA_ARCHS_tune-armv6hf} armv7vehf-vfp"
|
PACKAGE_EXTRA_ARCHS_tune-armv7vehf = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf} armv7vehf-vfp"
|
||||||
PACKAGE_EXTRA_ARCHS_tune-armv7vethf = "${PACKAGE_EXTRA_ARCHS_tune-armv6thf} armv7vehf-vfp armv7vet2hf-vfp"
|
PACKAGE_EXTRA_ARCHS_tune-armv7vethf = "${PACKAGE_EXTRA_ARCHS_tune-armv7athf} armv7vehf-vfp armv7vet2hf-vfp"
|
||||||
PACKAGE_EXTRA_ARCHS_tune-armv7vehf-vfpv3d16 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vehf} armv7vehf-vfpv3d16"
|
PACKAGE_EXTRA_ARCHS_tune-armv7vehf-vfpv3d16 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vehf} armv7vehf-vfpv3d16"
|
||||||
PACKAGE_EXTRA_ARCHS_tune-armv7vethf-vfpv3d16 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vethf} armv7vehf-vfpv3d16 armv7vet2hf-vfpv3d16"
|
PACKAGE_EXTRA_ARCHS_tune-armv7vethf-vfpv3d16 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vethf} armv7vehf-vfpv3d16 armv7vet2hf-vfpv3d16"
|
||||||
PACKAGE_EXTRA_ARCHS_tune-armv7vehf-vfpv3 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vehf-vfpv3d16} armv7vehf-vfpv3"
|
PACKAGE_EXTRA_ARCHS_tune-armv7vehf-vfpv3 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vehf-vfpv3d16} armv7vehf-vfpv3"
|
||||||
@@ -96,8 +95,8 @@ TUNE_FEATURES_tune-armv7veb-neon = "${TUNE_FEATURES_tune-armv7ve-neon}
|
|||||||
TUNE_FEATURES_tune-armv7vetb-neon = "${TUNE_FEATURES_tune-armv7vet-neon} bigendian"
|
TUNE_FEATURES_tune-armv7vetb-neon = "${TUNE_FEATURES_tune-armv7vet-neon} bigendian"
|
||||||
TUNE_FEATURES_tune-armv7veb-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7ve-neon-vfpv4} bigendian"
|
TUNE_FEATURES_tune-armv7veb-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7ve-neon-vfpv4} bigendian"
|
||||||
TUNE_FEATURES_tune-armv7vetb-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7vet-neon-vfpv4} bigendian"
|
TUNE_FEATURES_tune-armv7vetb-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7vet-neon-vfpv4} bigendian"
|
||||||
PACKAGE_EXTRA_ARCHS_tune-armv7veb = "${PACKAGE_EXTRA_ARCHS_tune-armv6b} armv7veb-vfp"
|
PACKAGE_EXTRA_ARCHS_tune-armv7veb = "${PACKAGE_EXTRA_ARCHS_tune-armv7ab} armv7veb-vfp"
|
||||||
PACKAGE_EXTRA_ARCHS_tune-armv7vetb = "${PACKAGE_EXTRA_ARCHS_tune-armv6tb} armv7veb-vfp armv7vet2b-vfp"
|
PACKAGE_EXTRA_ARCHS_tune-armv7vetb = "${PACKAGE_EXTRA_ARCHS_tune-armv7atb} armv7veb-vfp armv7vet2b-vfp"
|
||||||
PACKAGE_EXTRA_ARCHS_tune-armv7veb-vfpv3d16 = "${PACKAGE_EXTRA_ARCHS_tune-armv7veb} armv7veb-vfpv3d16"
|
PACKAGE_EXTRA_ARCHS_tune-armv7veb-vfpv3d16 = "${PACKAGE_EXTRA_ARCHS_tune-armv7veb} armv7veb-vfpv3d16"
|
||||||
PACKAGE_EXTRA_ARCHS_tune-armv7vetb-vfpv3d16 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vetb} armv7veb-vfpv3d16 armv7vet2b-vfpv3d16"
|
PACKAGE_EXTRA_ARCHS_tune-armv7vetb-vfpv3d16 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vetb} armv7veb-vfpv3d16 armv7vet2b-vfpv3d16"
|
||||||
PACKAGE_EXTRA_ARCHS_tune-armv7veb-vfpv3 = "${PACKAGE_EXTRA_ARCHS_tune-armv7veb-vfpv3d16} armv7veb-vfpv3"
|
PACKAGE_EXTRA_ARCHS_tune-armv7veb-vfpv3 = "${PACKAGE_EXTRA_ARCHS_tune-armv7veb-vfpv3d16} armv7veb-vfpv3"
|
||||||
@@ -129,8 +128,8 @@ TUNE_FEATURES_tune-armv7vehfb-neon = "${TUNE_FEATURES_tune-armv7vehf-neon
|
|||||||
TUNE_FEATURES_tune-armv7vethfb-neon = "${TUNE_FEATURES_tune-armv7vethf-neon} bigendian"
|
TUNE_FEATURES_tune-armv7vethfb-neon = "${TUNE_FEATURES_tune-armv7vethf-neon} bigendian"
|
||||||
TUNE_FEATURES_tune-armv7vehfb-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7vehf-neon-vfpv4} bigendian"
|
TUNE_FEATURES_tune-armv7vehfb-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7vehf-neon-vfpv4} bigendian"
|
||||||
TUNE_FEATURES_tune-armv7vethfb-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7vethf-neon-vfpv4} bigendian"
|
TUNE_FEATURES_tune-armv7vethfb-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7vethf-neon-vfpv4} bigendian"
|
||||||
PACKAGE_EXTRA_ARCHS_tune-armv7vehfb = "${PACKAGE_EXTRA_ARCHS_tune-armv6hfb} armv7vehfb-vfp"
|
PACKAGE_EXTRA_ARCHS_tune-armv7vehfb = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahfb} armv7vehfb-vfp"
|
||||||
PACKAGE_EXTRA_ARCHS_tune-armv7vethfb = "${PACKAGE_EXTRA_ARCHS_tune-armv6thfb} armv7vehfb-vfp armv7vet2hfb-vfp"
|
PACKAGE_EXTRA_ARCHS_tune-armv7vethfb = "${PACKAGE_EXTRA_ARCHS_tune-armv7athfb} armv7vehfb-vfp armv7vet2hfb-vfp"
|
||||||
PACKAGE_EXTRA_ARCHS_tune-armv7vehfb-vfpv3d16 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vehfb} armv7vehfb-vfpv3d16"
|
PACKAGE_EXTRA_ARCHS_tune-armv7vehfb-vfpv3d16 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vehfb} armv7vehfb-vfpv3d16"
|
||||||
PACKAGE_EXTRA_ARCHS_tune-armv7vethfb-vfpv3d16 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vethfb} armv7vehfb-vfpv3d16 armv7vet2hfb-vfpv3d16"
|
PACKAGE_EXTRA_ARCHS_tune-armv7vethfb-vfpv3d16 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vethfb} armv7vehfb-vfpv3d16 armv7vet2hfb-vfpv3d16"
|
||||||
PACKAGE_EXTRA_ARCHS_tune-armv7vehfb-vfpv3 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vehfb-vfpv3d16} armv7vehfb-vfpv3"
|
PACKAGE_EXTRA_ARCHS_tune-armv7vehfb-vfpv3 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vehfb-vfpv3d16} armv7vehfb-vfpv3"
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ TUNEVALID[neon] = "Enable Neon SIMD accelerator unit."
|
|||||||
TUNE_CCARGS_MFPU .= "${@bb.utils.contains('TUNE_FEATURES', 'neon', ' neon', '', d)}"
|
TUNE_CCARGS_MFPU .= "${@bb.utils.contains('TUNE_FEATURES', 'neon', ' neon', '', d)}"
|
||||||
|
|
||||||
TUNEVALID[vfpv3d16] = "Enable Vector Floating Point Version 3 with 16 registers (vfpv3-d16) unit."
|
TUNEVALID[vfpv3d16] = "Enable Vector Floating Point Version 3 with 16 registers (vfpv3-d16) unit."
|
||||||
TUNE_CCARGS_MFPU .= "${@bb.utils.contains('TUNE_FEATURES', 'vfpv3d16', ' vfpv3d16', '', d)}"
|
TUNE_CCARGS_MFPU .= "${@bb.utils.contains('TUNE_FEATURES', 'vfpv3d16', ' vfpv3-d16', '', d)}"
|
||||||
|
|
||||||
TUNEVALID[vfpv3] = "Enable Vector Floating Point Version 3 with 32 registers (vfpv3) unit."
|
TUNEVALID[vfpv3] = "Enable Vector Floating Point Version 3 with 32 registers (vfpv3) unit."
|
||||||
TUNE_CCARGS_MFPU .= "${@bb.utils.contains('TUNE_FEATURES', 'vfpv3', ' vfpv3', '' , d)}"
|
TUNE_CCARGS_MFPU .= "${@bb.utils.contains('TUNE_FEATURES', 'vfpv3', ' vfpv3', '' , d)}"
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ TUNEVALID[vfp] = "Enable Vector Floating Point (vfp) unit."
|
|||||||
TUNE_CCARGS_MFPU .= "${@bb.utils.contains('TUNE_FEATURES', 'vfp', ' vfp', '', d)}"
|
TUNE_CCARGS_MFPU .= "${@bb.utils.contains('TUNE_FEATURES', 'vfp', ' vfp', '', d)}"
|
||||||
|
|
||||||
TUNE_CCARGS .= "${@ (' -mfpu=%s ' % d.getVar('TUNE_CCARGS_MFPU', True).split()[-1]) if (d.getVar('TUNE_CCARGS_MFPU', True) != '') else ''}"
|
TUNE_CCARGS .= "${@ (' -mfpu=%s ' % d.getVar('TUNE_CCARGS_MFPU', True).split()[-1]) if (d.getVar('TUNE_CCARGS_MFPU', True) != '') else ''}"
|
||||||
ARMPKGSFX_FPU = "${@ ('-%s' % d.getVar('TUNE_CCARGS_MFPU', True).split()[-1]) if (d.getVar('TUNE_CCARGS_MFPU', True) != '') else ''}"
|
ARMPKGSFX_FPU = "${@ ('-%s' % d.getVar('TUNE_CCARGS_MFPU', True).split()[-1].replace('vfpv3-d16', 'vfpv3d16')) if (d.getVar('TUNE_CCARGS_MFPU', True) != '') else ''}"
|
||||||
|
|
||||||
TUNEVALID[callconvention-hard] = "Enable EABI hard float call convention, requires VFP."
|
TUNEVALID[callconvention-hard] = "Enable EABI hard float call convention, requires VFP."
|
||||||
TUNE_CCARGS_MFLOAT = "${@ bb.utils.contains('TUNE_FEATURES', 'callconvention-hard', 'hard', 'softfp', d) if (d.getVar('TUNE_CCARGS_MFPU', True) != '') else '' }"
|
TUNE_CCARGS_MFLOAT = "${@ bb.utils.contains('TUNE_FEATURES', 'callconvention-hard', 'hard', 'softfp', d) if (d.getVar('TUNE_CCARGS_MFPU', True) != '') else '' }"
|
||||||
|
|||||||
@@ -7,6 +7,9 @@ TUNECONFLICTS[m64] = "m32 nf"
|
|||||||
TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'm64', ' -m64', '', d)}"
|
TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'm64', ' -m64', '', d)}"
|
||||||
TUNE_ARCH .= "${@bb.utils.contains('TUNE_FEATURES', [ 'm64' ], 'powerpc64', '', d)}"
|
TUNE_ARCH .= "${@bb.utils.contains('TUNE_FEATURES', [ 'm64' ], 'powerpc64', '', d)}"
|
||||||
|
|
||||||
|
# user mode qemu doesn't support ppc64
|
||||||
|
MACHINE_FEATURES_BACKFILL_CONSIDERED_append = " ${@bb.utils.contains('TUNE_FEATURES', 'm64', 'qemu-usermode', '', d)}"
|
||||||
|
|
||||||
AVAILTUNES += "powerpc64"
|
AVAILTUNES += "powerpc64"
|
||||||
TUNE_FEATURES_tune-powerpc64 = "m64 fpu-hard"
|
TUNE_FEATURES_tune-powerpc64 = "m64 fpu-hard"
|
||||||
BASE_LIB_tune-powerpc64 = "lib64"
|
BASE_LIB_tune-powerpc64 = "lib64"
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
"name": "Local OpenEmbedded",
|
"name": "Local OpenEmbedded",
|
||||||
"sourcetype": "local",
|
"sourcetype": "local",
|
||||||
"apiurl": "../../",
|
"apiurl": "../../",
|
||||||
"branches": ["HEAD", "master", "jethro", "krogoth"],
|
"branches": ["HEAD", "jethro", "krogoth"],
|
||||||
"layers": [
|
"layers": [
|
||||||
{
|
{
|
||||||
"name": "openembedded-core",
|
"name": "openembedded-core",
|
||||||
@@ -27,23 +27,17 @@
|
|||||||
"name": "OpenEmbedded",
|
"name": "OpenEmbedded",
|
||||||
"sourcetype": "layerindex",
|
"sourcetype": "layerindex",
|
||||||
"apiurl": "http://layers.openembedded.org/layerindex/api/",
|
"apiurl": "http://layers.openembedded.org/layerindex/api/",
|
||||||
"branches": ["master", "jethro", "krogoth"]
|
"branches": ["jethro", "krogoth"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Imported layers",
|
"name": "Imported layers",
|
||||||
"sourcetype": "imported",
|
"sourcetype": "imported",
|
||||||
"apiurl": "",
|
"apiurl": "",
|
||||||
"branches": ["master", "jethro", "krogoth", "HEAD"]
|
"branches": ["jethro", "krogoth", "HEAD"]
|
||||||
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"bitbake" : [
|
"bitbake" : [
|
||||||
{
|
|
||||||
"name": "master",
|
|
||||||
"giturl": "git://git.openembedded.org/bitbake",
|
|
||||||
"branch": "master",
|
|
||||||
"dirpath": ""
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "jethro",
|
"name": "jethro",
|
||||||
"giturl": "git://git.openembedded.org/bitbake",
|
"giturl": "git://git.openembedded.org/bitbake",
|
||||||
@@ -64,18 +58,9 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|
||||||
"defaultrelease": "master",
|
"defaultrelease": "krogoth",
|
||||||
|
|
||||||
"releases": [
|
"releases": [
|
||||||
{
|
|
||||||
"name": "master",
|
|
||||||
"description": "OpenEmbedded master",
|
|
||||||
"bitbake": "master",
|
|
||||||
"branch": "master",
|
|
||||||
"defaultlayers": [ "openembedded-core" ],
|
|
||||||
"layersourcepriority": { "Imported layers": 99, "Local OpenEmbedded" : 10, "OpenEmbedded" : 0 },
|
|
||||||
"helptext": "Toaster will run your builds using the tip of the <a href=\"http://cgit.openembedded.org/openembedded-core/log/\">OpenEmbedded master</a> branch, where active development takes place. This is not a stable branch, so your builds might not work as expected."
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "jethro",
|
"name": "jethro",
|
||||||
"description": "OpenEmbedded Jethro",
|
"description": "OpenEmbedded Jethro",
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
import collections
|
||||||
|
|
||||||
class ClassExtender(object):
|
class ClassExtender(object):
|
||||||
def __init__(self, extname, d):
|
def __init__(self, extname, d):
|
||||||
self.extname = extname
|
self.extname = extname
|
||||||
@@ -77,7 +79,7 @@ class ClassExtender(object):
|
|||||||
self.d.setVar("EXTENDPKGV", orig)
|
self.d.setVar("EXTENDPKGV", orig)
|
||||||
return
|
return
|
||||||
deps = bb.utils.explode_dep_versions2(deps)
|
deps = bb.utils.explode_dep_versions2(deps)
|
||||||
newdeps = {}
|
newdeps = collections.OrderedDict()
|
||||||
for dep in deps:
|
for dep in deps:
|
||||||
newdeps[self.map_depends(dep)] = deps[dep]
|
newdeps[self.map_depends(dep)] = deps[dep]
|
||||||
|
|
||||||
|
|||||||
@@ -149,7 +149,7 @@ def npm_split_package_dirs(pkgdir):
|
|||||||
if os.path.exists(pkgfile):
|
if os.path.exists(pkgfile):
|
||||||
with open(pkgfile, 'r') as f:
|
with open(pkgfile, 'r') as f:
|
||||||
data = json.loads(f.read())
|
data = json.loads(f.read())
|
||||||
packages[pkgname] = (relpth, data)
|
packages[pkgname] = (relpth, data)
|
||||||
# We want the main package for a module sorted *after* its subpackages
|
# We want the main package for a module sorted *after* its subpackages
|
||||||
# (so that it doesn't otherwise steal the files for the subpackage), so
|
# (so that it doesn't otherwise steal the files for the subpackage), so
|
||||||
# this is a cheap way to do that whilst still having an otherwise
|
# this is a cheap way to do that whilst still having an otherwise
|
||||||
|
|||||||
@@ -121,6 +121,8 @@ class Rootfs(object):
|
|||||||
|
|
||||||
bb.note(" Copying back package database...")
|
bb.note(" Copying back package database...")
|
||||||
for dir in dirs:
|
for dir in dirs:
|
||||||
|
if not os.path.isdir(self.image_rootfs + '-orig' + dir):
|
||||||
|
continue
|
||||||
bb.utils.mkdirhier(self.image_rootfs + os.path.dirname(dir))
|
bb.utils.mkdirhier(self.image_rootfs + os.path.dirname(dir))
|
||||||
shutil.copytree(self.image_rootfs + '-orig' + dir, self.image_rootfs + dir, symlinks=True)
|
shutil.copytree(self.image_rootfs + '-orig' + dir, self.image_rootfs + dir, symlinks=True)
|
||||||
|
|
||||||
@@ -907,7 +909,7 @@ class OpkgRootfs(DpkgOpkgRootfs):
|
|||||||
|
|
||||||
self.pm.install_complementary()
|
self.pm.install_complementary()
|
||||||
|
|
||||||
self._setup_dbg_rootfs(['/etc', '/var/lib/opkg'])
|
self._setup_dbg_rootfs(['/etc', '/var/lib/opkg', '/usr/lib/ssl'])
|
||||||
|
|
||||||
execute_pre_post_process(self.d, opkg_post_process_cmds)
|
execute_pre_post_process(self.d, opkg_post_process_cmds)
|
||||||
|
|
||||||
|
|||||||
@@ -199,65 +199,6 @@ class BuildhistoryTests(BuildhistoryBase):
|
|||||||
self.run_buildhistory_operation(target, target_config="PR = \"r1\"", change_bh_location=True)
|
self.run_buildhistory_operation(target, target_config="PR = \"r1\"", change_bh_location=True)
|
||||||
self.run_buildhistory_operation(target, target_config="PR = \"r0\"", change_bh_location=False, expect_error=True, error_regex=error)
|
self.run_buildhistory_operation(target, target_config="PR = \"r0\"", change_bh_location=False, expect_error=True, error_regex=error)
|
||||||
|
|
||||||
@testcase(1386)
|
|
||||||
def test_buildhistory_does_not_change_signatures(self):
|
|
||||||
"""
|
|
||||||
Summary: Ensure that buildhistory does not change signatures
|
|
||||||
Expected: Only 'do_rootfs' task should be rerun
|
|
||||||
Product: oe-core
|
|
||||||
Author: Daniel Istrate <daniel.alexandrux.istrate@intel.com>
|
|
||||||
AutomatedBy: Daniel Istrate <daniel.alexandrux.istrate@intel.com>
|
|
||||||
"""
|
|
||||||
|
|
||||||
tmpdir1_name = 'tmpsig1'
|
|
||||||
tmpdir2_name = 'tmpsig2'
|
|
||||||
builddir = os.environ.get('BUILDDIR')
|
|
||||||
tmpdir1 = os.path.join(builddir, tmpdir1_name)
|
|
||||||
tmpdir2 = os.path.join(builddir, tmpdir2_name)
|
|
||||||
|
|
||||||
self.track_for_cleanup(tmpdir1)
|
|
||||||
self.track_for_cleanup(tmpdir2)
|
|
||||||
|
|
||||||
features = 'TMPDIR = "%s"\n' % tmpdir1
|
|
||||||
self.write_config(features)
|
|
||||||
bitbake('core-image-minimal -S none -c rootfs')
|
|
||||||
|
|
||||||
features = 'TMPDIR = "%s"\n' % tmpdir2
|
|
||||||
features += 'INHERIT += "buildhistory"\n'
|
|
||||||
self.write_config(features)
|
|
||||||
bitbake('core-image-minimal -S none -c rootfs')
|
|
||||||
|
|
||||||
def get_files(d):
|
|
||||||
f = []
|
|
||||||
for root, dirs, files in os.walk(d):
|
|
||||||
for name in files:
|
|
||||||
f.append(os.path.join(root, name))
|
|
||||||
return f
|
|
||||||
|
|
||||||
files1 = get_files(tmpdir1 + '/stamps')
|
|
||||||
files2 = get_files(tmpdir2 + '/stamps')
|
|
||||||
files2 = [x.replace(tmpdir2_name, tmpdir1_name) for x in files2]
|
|
||||||
|
|
||||||
f1 = set(files1)
|
|
||||||
f2 = set(files2)
|
|
||||||
sigdiff = f1 - f2
|
|
||||||
|
|
||||||
self.assertEqual(len(sigdiff), 1, 'Expected 1 signature differences. Out: %s' % list(sigdiff))
|
|
||||||
|
|
||||||
unexpected_diff = []
|
|
||||||
|
|
||||||
# No new signatures should appear apart from do_rootfs
|
|
||||||
found_do_rootfs_flag = False
|
|
||||||
|
|
||||||
for sig in sigdiff:
|
|
||||||
if 'do_rootfs' in sig:
|
|
||||||
found_do_rootfs_flag = True
|
|
||||||
else:
|
|
||||||
unexpected_diff.append(sig)
|
|
||||||
|
|
||||||
self.assertTrue(found_do_rootfs_flag, 'Task do_rootfs did not rerun.')
|
|
||||||
self.assertFalse(unexpected_diff, 'Found unexpected signature differences. Out: %s' % unexpected_diff)
|
|
||||||
|
|
||||||
|
|
||||||
class BuildImagesTest(oeSelfTest):
|
class BuildImagesTest(oeSelfTest):
|
||||||
@testcase(563)
|
@testcase(563)
|
||||||
|
|||||||
@@ -357,7 +357,7 @@ class DevtoolTests(DevtoolBase):
|
|||||||
self.assertIn('_git.bb', recipefile, 'Recipe file incorrectly named')
|
self.assertIn('_git.bb', recipefile, 'Recipe file incorrectly named')
|
||||||
checkvars = {}
|
checkvars = {}
|
||||||
checkvars['S'] = '${WORKDIR}/git'
|
checkvars['S'] = '${WORKDIR}/git'
|
||||||
checkvars['PV'] = '1.11+git${SRCPV}'
|
checkvars['PV'] = '1.12+git${SRCPV}'
|
||||||
checkvars['SRC_URI'] = url
|
checkvars['SRC_URI'] = url
|
||||||
checkvars['SRCREV'] = '${AUTOREV}'
|
checkvars['SRCREV'] = '${AUTOREV}'
|
||||||
self._test_recipe_contents(recipefile, checkvars, [])
|
self._test_recipe_contents(recipefile, checkvars, [])
|
||||||
|
|||||||
@@ -389,7 +389,7 @@ class RecipetoolTests(RecipetoolBase):
|
|||||||
os.makedirs(tempsrc)
|
os.makedirs(tempsrc)
|
||||||
recipefile = os.path.join(self.tempdir, 'libmatchbox.bb')
|
recipefile = os.path.join(self.tempdir, 'libmatchbox.bb')
|
||||||
srcuri = 'git://git.yoctoproject.org/libmatchbox'
|
srcuri = 'git://git.yoctoproject.org/libmatchbox'
|
||||||
result = runCmd('recipetool create -o %s %s -x %s' % (recipefile, srcuri, tempsrc))
|
result = runCmd(['recipetool', 'create', '-o', recipefile, srcuri + ";rev=9f7cf8895ae2d39c465c04cc78e918c157420269", '-x', tempsrc])
|
||||||
self.assertTrue(os.path.isfile(recipefile), 'recipetool did not create recipe file; output:\n%s' % result.output)
|
self.assertTrue(os.path.isfile(recipefile), 'recipetool did not create recipe file; output:\n%s' % result.output)
|
||||||
checkvars = {}
|
checkvars = {}
|
||||||
checkvars['LICENSE'] = 'LGPLv2.1'
|
checkvars['LICENSE'] = 'LGPLv2.1'
|
||||||
|
|||||||
@@ -411,9 +411,11 @@ PARALLEL_MAKE = "-j 1"
|
|||||||
DL_DIR = "${TOPDIR}/download1"
|
DL_DIR = "${TOPDIR}/download1"
|
||||||
TIME = "111111"
|
TIME = "111111"
|
||||||
DATE = "20161111"
|
DATE = "20161111"
|
||||||
INHERIT_remove = "buildstats-summary buildhistory"
|
INHERIT_remove = "buildstats-summary buildhistory uninative"
|
||||||
|
http_proxy = ""
|
||||||
""")
|
""")
|
||||||
self.track_for_cleanup(topdir + "/tmp-sstatesamehash")
|
self.track_for_cleanup(topdir + "/tmp-sstatesamehash")
|
||||||
|
self.track_for_cleanup(topdir + "/download1")
|
||||||
bitbake("world meta-toolchain -S none")
|
bitbake("world meta-toolchain -S none")
|
||||||
self.write_config("""
|
self.write_config("""
|
||||||
TMPDIR = "${TOPDIR}/tmp-sstatesamehash2"
|
TMPDIR = "${TOPDIR}/tmp-sstatesamehash2"
|
||||||
@@ -422,9 +424,13 @@ PARALLEL_MAKE = "-j 2"
|
|||||||
DL_DIR = "${TOPDIR}/download2"
|
DL_DIR = "${TOPDIR}/download2"
|
||||||
TIME = "222222"
|
TIME = "222222"
|
||||||
DATE = "20161212"
|
DATE = "20161212"
|
||||||
|
# Always remove uninative as we're changing proxies
|
||||||
|
INHERIT_remove = "uninative"
|
||||||
INHERIT += "buildstats-summary buildhistory"
|
INHERIT += "buildstats-summary buildhistory"
|
||||||
|
http_proxy = "http://example.com/"
|
||||||
""")
|
""")
|
||||||
self.track_for_cleanup(topdir + "/tmp-sstatesamehash2")
|
self.track_for_cleanup(topdir + "/tmp-sstatesamehash2")
|
||||||
|
self.track_for_cleanup(topdir + "/download2")
|
||||||
bitbake("world meta-toolchain -S none")
|
bitbake("world meta-toolchain -S none")
|
||||||
|
|
||||||
def get_files(d):
|
def get_files(d):
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
|
|||||||
file://apm.h;beginline=6;endline=18;md5=7d4acc1250910a89f84ce3cc6557c4c2"
|
file://apm.h;beginline=6;endline=18;md5=7d4acc1250910a89f84ce3cc6557c4c2"
|
||||||
DEPENDS = "libtool-cross"
|
DEPENDS = "libtool-cross"
|
||||||
|
|
||||||
SRC_URI = "${DEBIAN_MIRROR}/main/a/apmd/apmd_3.2.2.orig.tar.gz;name=tarball \
|
SRC_URI = "http://snapshot.debian.org/archive/debian/20160728T043443Z/pool/main/a/${BPN}/${BPN}_3.2.2.orig.tar.gz;name=tarball \
|
||||||
file://legacy.patch \
|
file://legacy.patch \
|
||||||
file://libtool.patch \
|
file://libtool.patch \
|
||||||
file://unlinux.patch \
|
file://unlinux.patch \
|
||||||
@@ -26,6 +26,7 @@ SRC_URI[tarball.sha256sum] = "7f7d9f60b7766b852881d40b8ff91d8e39fccb0d1d913102a5
|
|||||||
|
|
||||||
# for this package we're mostly interested in tracking debian patches,
|
# for this package we're mostly interested in tracking debian patches,
|
||||||
# and not in the upstream version where all development has effectively stopped
|
# and not in the upstream version where all development has effectively stopped
|
||||||
|
UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/a/apmd/"
|
||||||
UPSTREAM_CHECK_REGEX = "(?P<pver>((\d+\.*)+)-((\d+\.*)+))\.(diff|debian\.tar)\.(gz|xz)"
|
UPSTREAM_CHECK_REGEX = "(?P<pver>((\d+\.*)+)-((\d+\.*)+))\.(diff|debian\.tar)\.(gz|xz)"
|
||||||
|
|
||||||
S = "${WORKDIR}/apmd-3.2.2.orig"
|
S = "${WORKDIR}/apmd-3.2.2.orig"
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ SRC_URI[md5sum] = "15a4bcbc18a9a5e8110ed955970622e6"
|
|||||||
SRC_URI[sha256sum] = "c530f21a15fd9c214dd92d29a6caa20fac989289267512020b6da1f5e6f5b4cb"
|
SRC_URI[sha256sum] = "c530f21a15fd9c214dd92d29a6caa20fac989289267512020b6da1f5e6f5b4cb"
|
||||||
|
|
||||||
COMPATIBLE_HOST = "(x86_64.*|i.86.*|aarch64.*|arm.*)-linux"
|
COMPATIBLE_HOST = "(x86_64.*|i.86.*|aarch64.*|arm.*)-linux"
|
||||||
|
COMPATIBLE_HOST_armv4 = 'null'
|
||||||
|
|
||||||
def gnu_efi_arch(d):
|
def gnu_efi_arch(d):
|
||||||
import re
|
import re
|
||||||
|
|||||||
@@ -0,0 +1,39 @@
|
|||||||
|
From f30c692c1f9ef0e93bee2b408a24baa017f1ca9d Mon Sep 17 00:00:00 2001
|
||||||
|
From: Vladimir Serbinenko <phcoder@gmail.com>
|
||||||
|
Date: Thu, 7 Nov 2013 01:01:47 +0100
|
||||||
|
Subject: [PATCH] * grub-core/gettext/gettext.c (main_context),
|
||||||
|
(secondary_context): Define after defining type and not before.
|
||||||
|
|
||||||
|
---
|
||||||
|
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||||
|
Upstream-Status: Backport
|
||||||
|
|
||||||
|
ChangeLog | 5 +++++
|
||||||
|
grub-core/gettext/gettext.c | 4 ++--
|
||||||
|
2 files changed, 7 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/grub-core/gettext/gettext.c b/grub-core/gettext/gettext.c
|
||||||
|
index df73570..4880cef 100644
|
||||||
|
--- a/grub-core/gettext/gettext.c
|
||||||
|
+++ b/grub-core/gettext/gettext.c
|
||||||
|
@@ -34,8 +34,6 @@ GRUB_MOD_LICENSE ("GPLv3+");
|
||||||
|
http://www.gnu.org/software/autoconf/manual/gettext/MO-Files.html .
|
||||||
|
*/
|
||||||
|
|
||||||
|
-static struct grub_gettext_context main_context, secondary_context;
|
||||||
|
-
|
||||||
|
static const char *(*grub_gettext_original) (const char *s);
|
||||||
|
|
||||||
|
struct grub_gettext_msg
|
||||||
|
@@ -69,6 +67,8 @@ struct grub_gettext_context
|
||||||
|
struct grub_gettext_msg *grub_gettext_msg_list;
|
||||||
|
};
|
||||||
|
|
||||||
|
+static struct grub_gettext_context main_context, secondary_context;
|
||||||
|
+
|
||||||
|
#define MO_MAGIC_NUMBER 0x950412de
|
||||||
|
|
||||||
|
static grub_err_t
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
@@ -30,6 +30,7 @@ SRC_URI = "ftp://ftp.gnu.org/gnu/grub/grub-${PV}.tar.gz \
|
|||||||
file://0001-Fix-CVE-2015-8370-Grub2-user-pass-vulnerability.patch \
|
file://0001-Fix-CVE-2015-8370-Grub2-user-pass-vulnerability.patch \
|
||||||
file://0001-Remove-direct-_llseek-code-and-require-long-filesyst.patch \
|
file://0001-Remove-direct-_llseek-code-and-require-long-filesyst.patch \
|
||||||
file://fix-texinfo.patch \
|
file://fix-texinfo.patch \
|
||||||
|
file://0001-grub-core-gettext-gettext.c-main_context-secondary_c.patch \
|
||||||
"
|
"
|
||||||
|
|
||||||
DEPENDS = "flex-native bison-native"
|
DEPENDS = "flex-native bison-native"
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ SRC_URI = "git://git.savannah.gnu.org/grub.git \
|
|||||||
S = "${WORKDIR}/git"
|
S = "${WORKDIR}/git"
|
||||||
|
|
||||||
COMPATIBLE_HOST = '(x86_64.*|i.86.*|arm.*|aarch64.*)-(linux.*|freebsd.*)'
|
COMPATIBLE_HOST = '(x86_64.*|i.86.*|arm.*|aarch64.*)-(linux.*|freebsd.*)'
|
||||||
|
COMPATIBLE_HOST_armv7a = 'null'
|
||||||
|
|
||||||
inherit autotools gettext texinfo
|
inherit autotools gettext texinfo
|
||||||
|
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ PACKAGECONFIG[experimental] = "--enable-experimental,--disable-experimental,"
|
|||||||
|
|
||||||
SRC_URI = "\
|
SRC_URI = "\
|
||||||
${KERNELORG_MIRROR}/linux/bluetooth/bluez-${PV}.tar.xz \
|
${KERNELORG_MIRROR}/linux/bluetooth/bluez-${PV}.tar.xz \
|
||||||
|
file://out-of-tree.patch \
|
||||||
file://init \
|
file://init \
|
||||||
file://run-ptest \
|
file://run-ptest \
|
||||||
${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '', 'file://0001-Allow-using-obexd-without-systemd-in-the-user-sessio.patch', d)} \
|
${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '', 'file://0001-Allow-using-obexd-without-systemd-in-the-user-sessio.patch', d)} \
|
||||||
@@ -25,7 +26,7 @@ SRC_URI = "\
|
|||||||
"
|
"
|
||||||
S = "${WORKDIR}/bluez-${PV}"
|
S = "${WORKDIR}/bluez-${PV}"
|
||||||
|
|
||||||
inherit autotools-brokensep pkgconfig systemd update-rc.d distro_features_check ptest
|
inherit autotools pkgconfig systemd update-rc.d distro_features_check ptest
|
||||||
|
|
||||||
EXTRA_OECONF = "\
|
EXTRA_OECONF = "\
|
||||||
--enable-tools \
|
--enable-tools \
|
||||||
@@ -60,6 +61,10 @@ do_install_append() {
|
|||||||
install -m 0644 ${S}/profiles/input/input.conf ${D}/${sysconfdir}/bluetooth/
|
install -m 0644 ${S}/profiles/input/input.conf ${D}/${sysconfdir}/bluetooth/
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ -f ${D}/${sysconfdir}/init.d/bluetooth ]; then
|
||||||
|
sed -i -e 's#@LIBEXECDIR@#${libexecdir}#g' ${D}/${sysconfdir}/init.d/bluetooth
|
||||||
|
fi
|
||||||
|
|
||||||
# Install desired tools that upstream leaves in build area
|
# Install desired tools that upstream leaves in build area
|
||||||
for f in ${NOINST_TOOLS} ; do
|
for f in ${NOINST_TOOLS} ; do
|
||||||
install -m 755 ${B}/$f ${D}/${bindir}
|
install -m 755 ${B}/$f ${D}/${bindir}
|
||||||
@@ -108,5 +113,5 @@ do_compile_ptest() {
|
|||||||
|
|
||||||
do_install_ptest() {
|
do_install_ptest() {
|
||||||
cp -r ${B}/unit/ ${D}${PTEST_PATH}
|
cp -r ${B}/unit/ ${D}${PTEST_PATH}
|
||||||
rm ${D}${PTEST_PATH}/unit/*.c ${D}${PTEST_PATH}/unit/*.o
|
rm -f ${D}${PTEST_PATH}/unit/*.o
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
PATH=/sbin:/bin:/usr/sbin:/usr/bin
|
PATH=/sbin:/bin:/usr/sbin:/usr/bin
|
||||||
DESC=bluetooth
|
DESC=bluetooth
|
||||||
|
|
||||||
DAEMON=/usr/lib/bluez5/bluetooth/bluetoothd
|
DAEMON=@LIBEXECDIR@/bluetooth/bluetoothd
|
||||||
|
|
||||||
# If you want to be ignore error of "org.freedesktop.hostname1",
|
# If you want to be ignore error of "org.freedesktop.hostname1",
|
||||||
# please enable NOPLUGIN_OPTION.
|
# please enable NOPLUGIN_OPTION.
|
||||||
|
|||||||
26
meta/recipes-connectivity/bluez5/bluez5/out-of-tree.patch
Normal file
26
meta/recipes-connectivity/bluez5/bluez5/out-of-tree.patch
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
From ed55b49a226ca3909f52416be2ae5ce1c5ca2cb2 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Ross Burton <ross.burton@intel.com>
|
||||||
|
Date: Fri, 22 Apr 2016 15:40:37 +0100
|
||||||
|
Subject: [PATCH] Makefile.obexd: add missing mkdir in builtin.h generation
|
||||||
|
|
||||||
|
In parallel out-of-tree builds it's possible that obexd/src/builtin.h is
|
||||||
|
generated before the target directory has been implicitly created. Solve this by
|
||||||
|
creating the directory before writing into it.
|
||||||
|
|
||||||
|
Upstream-Status: Submitted
|
||||||
|
Signed-off-by: Ross Burton <ross.burton@intel.com>
|
||||||
|
---
|
||||||
|
Makefile.obexd | 1 +
|
||||||
|
1 file changed, 1 insertion(+)
|
||||||
|
|
||||||
|
diff --git a/Makefile.obexd b/Makefile.obexd
|
||||||
|
index 2e33cbc..c8286f0 100644
|
||||||
|
--- a/Makefile.obexd
|
||||||
|
+++ b/Makefile.obexd
|
||||||
|
@@ -105,2 +105,3 @@ obexd/src/plugin.$(OBJEXT): obexd/src/builtin.h
|
||||||
|
obexd/src/builtin.h: obexd/src/genbuiltin $(obexd_builtin_sources)
|
||||||
|
+ $(AM_V_at)$(MKDIR_P) $(dir $@)
|
||||||
|
$(AM_V_GEN)$(srcdir)/obexd/src/genbuiltin $(obexd_builtin_modules) > $@
|
||||||
|
--
|
||||||
|
2.8.0.rc3
|
||||||
|
|
||||||
@@ -41,7 +41,7 @@ check_privsep_dir() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
check_config() {
|
check_config() {
|
||||||
/usr/sbin/sshd -t || exit 1
|
/usr/sbin/sshd -t $SSHD_OPTS || exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
check_keys() {
|
check_keys() {
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ LIC_FILES_CHKSUM = "file://LICENCE;md5=e326045657e842541d3f35aada442507"
|
|||||||
DEPENDS = "zlib openssl"
|
DEPENDS = "zlib openssl"
|
||||||
DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}"
|
DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}"
|
||||||
|
|
||||||
SRC_URI = "ftp://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-${PV}.tar.gz \
|
SRC_URI = "http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-${PV}.tar.gz \
|
||||||
file://sshd_config \
|
file://sshd_config \
|
||||||
file://ssh_config \
|
file://ssh_config \
|
||||||
file://init \
|
file://init \
|
||||||
|
|||||||
@@ -8,16 +8,16 @@ http://www.mail-archive.com/openssl-dev@openssl.org/msg32860.html
|
|||||||
|
|
||||||
Signed-off-by: Xufeng Zhang <xufeng.zhang@windriver.com>
|
Signed-off-by: Xufeng Zhang <xufeng.zhang@windriver.com>
|
||||||
---
|
---
|
||||||
Index: openssl-1.0.2/crypto/evp/digest.c
|
Index: openssl-1.0.2h/crypto/evp/digest.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- openssl-1.0.2.orig/crypto/evp/digest.c
|
--- openssl-1.0.2h.orig/crypto/evp/digest.c
|
||||||
+++ openssl-1.0.2/crypto/evp/digest.c
|
+++ openssl-1.0.2h/crypto/evp/digest.c
|
||||||
@@ -208,7 +208,7 @@ int EVP_DigestInit_ex(EVP_MD_CTX *ctx, c
|
@@ -211,7 +211,7 @@ int EVP_DigestInit_ex(EVP_MD_CTX *ctx, c
|
||||||
return 0;
|
type = ctx->digest;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
- if (ctx->digest != type) {
|
- if (ctx->digest != type) {
|
||||||
+ if (type && (ctx->digest != type)) {
|
+ if (type && (ctx->digest != type)) {
|
||||||
if (ctx->digest && ctx->digest->ctx_size)
|
if (ctx->digest && ctx->digest->ctx_size) {
|
||||||
OPENSSL_free(ctx->md_data);
|
OPENSSL_free(ctx->md_data);
|
||||||
ctx->digest = type;
|
ctx->md_data = NULL;
|
||||||
|
|||||||
@@ -34,15 +34,13 @@ SRC_URI += "file://find.pl;subdir=${BP}/util/ \
|
|||||||
file://openssl-fix-des.pod-error.patch \
|
file://openssl-fix-des.pod-error.patch \
|
||||||
file://Makefiles-ptest.patch \
|
file://Makefiles-ptest.patch \
|
||||||
file://ptest-deps.patch \
|
file://ptest-deps.patch \
|
||||||
file://crypto_use_bigint_in_x86-64_perl.patch \
|
|
||||||
file://openssl-1.0.2a-x32-asm.patch \
|
file://openssl-1.0.2a-x32-asm.patch \
|
||||||
file://ptest_makefile_deps.patch \
|
file://ptest_makefile_deps.patch \
|
||||||
file://configure-musl-target.patch \
|
file://configure-musl-target.patch \
|
||||||
file://parallel.patch \
|
file://parallel.patch \
|
||||||
"
|
"
|
||||||
|
SRC_URI[md5sum] = "9392e65072ce4b614c1392eefc1f23d0"
|
||||||
SRC_URI[md5sum] = "f3c710c045cdee5fd114feb69feba7aa"
|
SRC_URI[sha256sum] = "1d4007e53aad94a5b2002fe045ee7bb0b3d98f1a47f8b2bc851dcd1c74332919"
|
||||||
SRC_URI[sha256sum] = "b784b1b3907ce39abf4098702dade6365522a253ad1552e267a9a0e89594aa33"
|
|
||||||
|
|
||||||
PACKAGES =+ "${PN}-engines"
|
PACKAGES =+ "${PN}-engines"
|
||||||
FILES_${PN}-engines = "${libdir}/ssl/engines/*.so ${libdir}/engines"
|
FILES_${PN}-engines = "${libdir}/ssl/engines/*.so ${libdir}/engines"
|
||||||
@@ -20,8 +20,10 @@ if [ "$PS1" ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -d /etc/profile.d ]; then
|
if [ -d /etc/profile.d ]; then
|
||||||
for i in /etc/profile.d/* ; do
|
for i in /etc/profile.d/*.sh ; do
|
||||||
. $i
|
if [ -f $i -a -r $i ]; then
|
||||||
|
. $i
|
||||||
|
fi
|
||||||
done
|
done
|
||||||
unset i
|
unset i
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -135,7 +135,7 @@ CONFIG_FEATURE_SEAMLESS_LZMA=y
|
|||||||
CONFIG_FEATURE_SEAMLESS_BZ2=y
|
CONFIG_FEATURE_SEAMLESS_BZ2=y
|
||||||
CONFIG_FEATURE_SEAMLESS_GZ=y
|
CONFIG_FEATURE_SEAMLESS_GZ=y
|
||||||
CONFIG_FEATURE_SEAMLESS_Z=y
|
CONFIG_FEATURE_SEAMLESS_Z=y
|
||||||
CONFIG_AR=y
|
# CONFIG_AR is not set
|
||||||
# CONFIG_FEATURE_AR_LONG_FILENAMES is not set
|
# CONFIG_FEATURE_AR_LONG_FILENAMES is not set
|
||||||
# CONFIG_FEATURE_AR_CREATE is not set
|
# CONFIG_FEATURE_AR_CREATE is not set
|
||||||
# CONFIG_UNCOMPRESS is not set
|
# CONFIG_UNCOMPRESS is not set
|
||||||
|
|||||||
@@ -69,6 +69,15 @@ do_compile_prepend () {
|
|||||||
mkdir -p ${B}/src
|
mkdir -p ${B}/src
|
||||||
}
|
}
|
||||||
|
|
||||||
|
do_install_class-native() {
|
||||||
|
autotools_do_install
|
||||||
|
# remove groups to fix conflict with shadow-native
|
||||||
|
rm -f ${D}${STAGING_BINDIR_NATIVE}/groups
|
||||||
|
# The return is a must since native doesn't need the
|
||||||
|
# do_install_append() in the below.
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
do_install_append() {
|
do_install_append() {
|
||||||
for i in df mktemp base64; do mv ${D}${bindir}/$i ${D}${bindir}/$i.${BPN}; done
|
for i in df mktemp base64; do mv ${D}${bindir}/$i ${D}${bindir}/$i.${BPN}; done
|
||||||
|
|
||||||
@@ -91,11 +100,6 @@ do_install_append() {
|
|||||||
cp -a ${D}${mandir}/man1/test.1 ${D}${mandir}/man1/lbracket.1.${BPN}
|
cp -a ${D}${mandir}/man1/test.1 ${D}${mandir}/man1/lbracket.1.${BPN}
|
||||||
}
|
}
|
||||||
|
|
||||||
do_install_append_class-native(){
|
|
||||||
# remove groups to fix conflict with shadow-native
|
|
||||||
rm -f ${D}${STAGING_BINDIR_NATIVE}/groups
|
|
||||||
}
|
|
||||||
|
|
||||||
inherit update-alternatives
|
inherit update-alternatives
|
||||||
|
|
||||||
ALTERNATIVE_PRIORITY = "100"
|
ALTERNATIVE_PRIORITY = "100"
|
||||||
|
|||||||
@@ -12,7 +12,6 @@ RDEPENDS_${PN}-dev = ""
|
|||||||
|
|
||||||
SRC_URI = "http://dbus.freedesktop.org/releases/dbus/dbus-${PV}.tar.gz \
|
SRC_URI = "http://dbus.freedesktop.org/releases/dbus/dbus-${PV}.tar.gz \
|
||||||
file://tmpdir.patch \
|
file://tmpdir.patch \
|
||||||
file://dbus-1.init \
|
|
||||||
file://run-ptest \
|
file://run-ptest \
|
||||||
file://python-config.patch \
|
file://python-config.patch \
|
||||||
file://clear-guid_from_server-if-send_negotiate_unix_f.patch \
|
file://clear-guid_from_server-if-send_negotiate_unix_f.patch \
|
||||||
@@ -49,13 +48,11 @@ do_install() {
|
|||||||
|
|
||||||
do_install_ptest() {
|
do_install_ptest() {
|
||||||
install -d ${D}${PTEST_PATH}/test
|
install -d ${D}${PTEST_PATH}/test
|
||||||
case1="shell printf refs syslog"
|
l="shell printf refs syslog marshal syntax corrupt dbus-daemon dbus-daemon-eavesdrop loopback relay"
|
||||||
for i in ${case1}; do install ${B}/test/test-$i ${D}${PTEST_PATH}/test; done
|
for i in $l; do install ${B}/test/.libs/test-$i ${D}${PTEST_PATH}/test; done
|
||||||
case2="marshal syntax corrupt dbus-daemon dbus-daemon-eavesdrop loopback relay"
|
l="bus bus-system bus-launch-helper"
|
||||||
for i in ${case2}; do install ${B}/test/.libs/test-$i ${D}${PTEST_PATH}/test; done
|
for i in $l; do install ${B}/bus/.libs/test-$i ${D}${PTEST_PATH}/test; done
|
||||||
case3="bus bus-system bus-launch-helper"
|
install ${B}/dbus/.libs/test-dbus ${D}${PTEST_PATH}/test
|
||||||
for i in ${case3}; do install ${B}/bus/test-$i ${D}${PTEST_PATH}/test; done
|
|
||||||
install ${B}/dbus/test-dbus ${D}${PTEST_PATH}/test
|
|
||||||
cp -r ${B}/test/data ${D}${PTEST_PATH}/test
|
cp -r ${B}/test/data ${D}${PTEST_PATH}/test
|
||||||
}
|
}
|
||||||
RDEPENDS_${PN}-ptest += "bash"
|
RDEPENDS_${PN}-ptest += "bash"
|
||||||
|
|||||||
@@ -46,7 +46,6 @@ BINCOMMANDS = "dbclient ssh scp"
|
|||||||
EXTRA_OEMAKE = 'MULTI=1 SCPPROGRESS=1 PROGRAMS="${SBINCOMMANDS} ${BINCOMMANDS}"'
|
EXTRA_OEMAKE = 'MULTI=1 SCPPROGRESS=1 PROGRAMS="${SBINCOMMANDS} ${BINCOMMANDS}"'
|
||||||
EXTRA_OECONF += "\
|
EXTRA_OECONF += "\
|
||||||
${@bb.utils.contains('DISTRO_FEATURES', 'pam', '--enable-pam', '--disable-pam', d)}"
|
${@bb.utils.contains('DISTRO_FEATURES', 'pam', '--enable-pam', '--disable-pam', d)}"
|
||||||
CFLAGS += "-DSFTPSERVER_PATH=\\"${libdir}/openssh/sftp-server\\""
|
|
||||||
|
|
||||||
do_install() {
|
do_install() {
|
||||||
install -d ${D}${sysconfdir} \
|
install -d ${D}${sysconfdir} \
|
||||||
|
|||||||
@@ -0,0 +1,42 @@
|
|||||||
|
From d6501b107940e9f548c89236d773c6d33c15a5c9 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Khem Raj <raj.khem@gmail.com>
|
||||||
|
Date: Sat, 16 Apr 2016 13:28:59 -0700
|
||||||
|
Subject: [PATCH 1/2] Do not ignore return value of write()
|
||||||
|
|
||||||
|
gcc warns about ignoring return value when compiling
|
||||||
|
with fortify turned on.
|
||||||
|
|
||||||
|
assert when write() fails
|
||||||
|
|
||||||
|
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||||
|
---
|
||||||
|
Upstream-Status: Submitted
|
||||||
|
|
||||||
|
glib/tests/unix.c | 5 +++--
|
||||||
|
1 file changed, 3 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/glib/tests/unix.c b/glib/tests/unix.c
|
||||||
|
index 3543458..4e7ed85 100644
|
||||||
|
--- a/glib/tests/unix.c
|
||||||
|
+++ b/glib/tests/unix.c
|
||||||
|
@@ -32,14 +32,15 @@ test_pipe (void)
|
||||||
|
GError *error = NULL;
|
||||||
|
int pipefd[2];
|
||||||
|
char buf[1024];
|
||||||
|
- ssize_t bytes_read;
|
||||||
|
+ ssize_t bytes_read, bytes_written;
|
||||||
|
gboolean res;
|
||||||
|
|
||||||
|
res = g_unix_open_pipe (pipefd, FD_CLOEXEC, &error);
|
||||||
|
g_assert (res);
|
||||||
|
g_assert_no_error (error);
|
||||||
|
|
||||||
|
- write (pipefd[1], "hello", sizeof ("hello"));
|
||||||
|
+ bytes_written = write (pipefd[1], "hello", sizeof ("hello"));
|
||||||
|
+ g_assert (bytes_written != -1 && "write() failed");
|
||||||
|
memset (buf, 0, sizeof (buf));
|
||||||
|
bytes_read = read (pipefd[0], buf, sizeof(buf) - 1);
|
||||||
|
g_assert_cmpint (bytes_read, >, 0);
|
||||||
|
--
|
||||||
|
2.8.0
|
||||||
|
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
From b06b22fecc7deda8c65e28670562ca2371e4e725 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Khem Raj <raj.khem@gmail.com>
|
||||||
|
Date: Sat, 16 Apr 2016 13:43:54 -0700
|
||||||
|
Subject: [PATCH 2/2] tests: Ignore y2k warnings
|
||||||
|
|
||||||
|
silences
|
||||||
|
| ../../../../../../../../workspace/sources/glib-2.0/glib/tests/gdatetime.c: In function 'test_strftime':
|
||||||
|
| ../../../../../../../../workspace/sources/glib-2.0/glib/tests/gdatetime.c:1338:3: error: '%c' yields only last 2 digits of year in some locales [-Werror=format-y2k]
|
||||||
|
| "a%a A%A b%b B%B c%c C%C d%d e%e F%F g%g G%G h%h H%H I%I j%j m%m M%M "
|
||||||
|
|
||||||
|
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||||
|
---
|
||||||
|
Upstream-Status: Submitted
|
||||||
|
|
||||||
|
glib/tests/gdatetime.c | 4 ++++
|
||||||
|
1 file changed, 4 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/glib/tests/gdatetime.c b/glib/tests/gdatetime.c
|
||||||
|
index 16a163c..e6062fc 100644
|
||||||
|
--- a/glib/tests/gdatetime.c
|
||||||
|
+++ b/glib/tests/gdatetime.c
|
||||||
|
@@ -1326,6 +1326,9 @@ test_z (void)
|
||||||
|
g_time_zone_unref (tz);
|
||||||
|
}
|
||||||
|
|
||||||
|
+#pragma GCC diagnostic push
|
||||||
|
+#pragma GCC diagnostic ignored "-Wformat-y2k"
|
||||||
|
+
|
||||||
|
static void
|
||||||
|
test_strftime (void)
|
||||||
|
{
|
||||||
|
@@ -1351,6 +1354,7 @@ test_strftime (void)
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
+#pragma GCC diagnostic pop
|
||||||
|
|
||||||
|
static void
|
||||||
|
test_find_interval (void)
|
||||||
|
--
|
||||||
|
2.8.0
|
||||||
|
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
From 8cdbc7fb2c8c876902e457abe46ee18a0b134486 Mon Sep 17 00:00:00 2001
|
||||||
|
From: coypu <coypu@sdf.org>
|
||||||
|
Date: Wed, 2 Mar 2016 19:38:48 +0200
|
||||||
|
Subject: gdate: Move warning pragma outside of function
|
||||||
|
|
||||||
|
Commit 0817af40e8c74c721c30f6ef482b1f53d12044c7 breaks the build on
|
||||||
|
older versions of GCC, which don't allow pragma inside functions.
|
||||||
|
|
||||||
|
https://bugzilla.gnome.org/761550
|
||||||
|
---
|
||||||
|
Upstream-Status: Backport
|
||||||
|
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||||
|
|
||||||
|
glib/gdate.c | 8 +++++---
|
||||||
|
1 file changed, 5 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/glib/gdate.c b/glib/gdate.c
|
||||||
|
index cdc735c..92c34d2 100644
|
||||||
|
--- a/glib/gdate.c
|
||||||
|
+++ b/glib/gdate.c
|
||||||
|
@@ -2439,6 +2439,9 @@ win32_strftime_helper (const GDate *d,
|
||||||
|
*
|
||||||
|
* Returns: number of characters written to the buffer, or 0 the buffer was too small
|
||||||
|
*/
|
||||||
|
+#pragma GCC diagnostic push
|
||||||
|
+#pragma GCC diagnostic ignored "-Wformat-nonliteral"
|
||||||
|
+
|
||||||
|
gsize
|
||||||
|
g_date_strftime (gchar *s,
|
||||||
|
gsize slen,
|
||||||
|
@@ -2552,3 +2552,5 @@ g_date_strftime (gchar *s,
|
||||||
|
return retval;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+#pragma GCC diagnostic pop
|
||||||
|
--
|
||||||
|
cgit v0.12
|
||||||
|
|
||||||
@@ -13,11 +13,14 @@ SRC_URI = "${GNOME_MIRROR}/glib/${SHRT_VER}/glib-${PV}.tar.xz \
|
|||||||
file://uclibc_musl_translation.patch \
|
file://uclibc_musl_translation.patch \
|
||||||
file://0001-configure.ac-Do-not-use-readlink-when-cross-compilin.patch \
|
file://0001-configure.ac-Do-not-use-readlink-when-cross-compilin.patch \
|
||||||
file://allow-run-media-sdX-drive-mount-if-username-root.patch \
|
file://allow-run-media-sdX-drive-mount-if-username-root.patch \
|
||||||
file://0001-Remove-the-warning-about-deprecated-paths-in-schemas.patch \
|
file://0001-Remove-the-warning-about-deprecated-paths-in-schemas.patch \
|
||||||
file://Enable-more-tests-while-cross-compiling.patch \
|
file://Enable-more-tests-while-cross-compiling.patch \
|
||||||
file://gi-exclude.patch \
|
file://gi-exclude.patch \
|
||||||
file://0001-Install-gio-querymodules-as-libexec_PROGRAM.patch \
|
file://0001-Install-gio-querymodules-as-libexec_PROGRAM.patch \
|
||||||
"
|
file://ignore-format-nonliteral-warning.patch \
|
||||||
|
file://0001-Do-not-ignore-return-value-of-write.patch \
|
||||||
|
file://0002-tests-Ignore-y2k-warnings.patch \
|
||||||
|
"
|
||||||
|
|
||||||
SRC_URI_append_class-native = " file://glib-gettextize-dir.patch \
|
SRC_URI_append_class-native = " file://glib-gettextize-dir.patch \
|
||||||
file://relocate-modules.patch"
|
file://relocate-modules.patch"
|
||||||
|
|||||||
@@ -9,6 +9,10 @@ LIC_FILES_CHKSUM = "file://LICENSES;md5=e9a558e243b36d3209f380deb394b213 \
|
|||||||
file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c"
|
file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c"
|
||||||
|
|
||||||
|
|
||||||
|
# Tell autotools that we're working in the localedef directory
|
||||||
|
#
|
||||||
|
AUTOTOOLS_SCRIPT_PATH = "${S}/localedef"
|
||||||
|
|
||||||
inherit native
|
inherit native
|
||||||
inherit autotools
|
inherit autotools
|
||||||
|
|
||||||
@@ -47,11 +51,6 @@ S = "${WORKDIR}/git"
|
|||||||
EXTRA_OECONF = "--with-glibc=${S}"
|
EXTRA_OECONF = "--with-glibc=${S}"
|
||||||
CFLAGS += "-fgnu89-inline -std=gnu99 -DIS_IN\(x\)='0'"
|
CFLAGS += "-fgnu89-inline -std=gnu99 -DIS_IN\(x\)='0'"
|
||||||
|
|
||||||
do_configure () {
|
|
||||||
${S}/localedef/configure ${EXTRA_OECONF}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
do_install() {
|
do_install() {
|
||||||
install -d ${D}${bindir}
|
install -d ${D}${bindir}
|
||||||
install -m 0755 ${B}/localedef ${D}${bindir}/cross-localedef
|
install -m 0755 ${B}/localedef ${D}${bindir}/cross-localedef
|
||||||
|
|||||||
224
meta/recipes-core/glibc/glibc/CVE-2016-3706.patch
Normal file
224
meta/recipes-core/glibc/glibc/CVE-2016-3706.patch
Normal file
@@ -0,0 +1,224 @@
|
|||||||
|
From 4ab2ab03d4351914ee53248dc5aef4a8c88ff8b9 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Florian Weimer <fweimer@redhat.com>
|
||||||
|
Date: Fri, 29 Apr 2016 10:35:34 +0200
|
||||||
|
Subject: [PATCH] CVE-2016-3706: getaddrinfo: stack overflow in hostent
|
||||||
|
conversion [BZ #20010]
|
||||||
|
|
||||||
|
When converting a struct hostent response to struct gaih_addrtuple, the
|
||||||
|
gethosts macro (which is called from gaih_inet) used alloca, without
|
||||||
|
malloc fallback for large responses. This commit changes this code to
|
||||||
|
use calloc unconditionally.
|
||||||
|
|
||||||
|
This commit also consolidated a second hostent-to-gaih_addrtuple
|
||||||
|
conversion loop (in gaih_inet) to use the new conversion function.
|
||||||
|
|
||||||
|
Upstream-Status: Backport
|
||||||
|
CVE: CVE-2016-3706
|
||||||
|
|
||||||
|
Signed-off-by: Armin Kuster <akuster@mvista.com>
|
||||||
|
|
||||||
|
---
|
||||||
|
ChangeLog | 10 ++++
|
||||||
|
NEWS | 5 +-
|
||||||
|
sysdeps/posix/getaddrinfo.c | 130 +++++++++++++++++++++++---------------------
|
||||||
|
3 files changed, 83 insertions(+), 62 deletions(-)
|
||||||
|
|
||||||
|
Index: git/sysdeps/posix/getaddrinfo.c
|
||||||
|
===================================================================
|
||||||
|
--- git.orig/sysdeps/posix/getaddrinfo.c
|
||||||
|
+++ git/sysdeps/posix/getaddrinfo.c
|
||||||
|
@@ -168,9 +168,58 @@ gaih_inet_serv (const char *servicename,
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
+/* Convert struct hostent to a list of struct gaih_addrtuple objects.
|
||||||
|
+ h_name is not copied, and the struct hostent object must not be
|
||||||
|
+ deallocated prematurely. *RESULT must be NULL or a pointer to an
|
||||||
|
+ object allocated using malloc, which is freed. */
|
||||||
|
+static bool
|
||||||
|
+convert_hostent_to_gaih_addrtuple (const struct addrinfo *req,
|
||||||
|
+ int family,
|
||||||
|
+ struct hostent *h,
|
||||||
|
+ struct gaih_addrtuple **result)
|
||||||
|
+{
|
||||||
|
+ free (*result);
|
||||||
|
+ *result = NULL;
|
||||||
|
+
|
||||||
|
+ /* Count the number of addresses in h->h_addr_list. */
|
||||||
|
+ size_t count = 0;
|
||||||
|
+ for (char **p = h->h_addr_list; *p != NULL; ++p)
|
||||||
|
+ ++count;
|
||||||
|
+
|
||||||
|
+ /* Report no data if no addresses are available, or if the incoming
|
||||||
|
+ address size is larger than what we can store. */
|
||||||
|
+ if (count == 0 || h->h_length > sizeof (((struct gaih_addrtuple) {}).addr))
|
||||||
|
+ return true;
|
||||||
|
+
|
||||||
|
+ struct gaih_addrtuple *array = calloc (count, sizeof (*array));
|
||||||
|
+ if (array == NULL)
|
||||||
|
+ return false;
|
||||||
|
+
|
||||||
|
+ for (size_t i = 0; i < count; ++i)
|
||||||
|
+ {
|
||||||
|
+ if (family == AF_INET && req->ai_family == AF_INET6)
|
||||||
|
+ {
|
||||||
|
+ /* Perform address mapping. */
|
||||||
|
+ array[i].family = AF_INET6;
|
||||||
|
+ memcpy(array[i].addr + 3, h->h_addr_list[i], sizeof (uint32_t));
|
||||||
|
+ array[i].addr[2] = htonl (0xffff);
|
||||||
|
+ }
|
||||||
|
+ else
|
||||||
|
+ {
|
||||||
|
+ array[i].family = family;
|
||||||
|
+ memcpy (array[i].addr, h->h_addr_list[i], h->h_length);
|
||||||
|
+ }
|
||||||
|
+ array[i].next = array + i + 1;
|
||||||
|
+ }
|
||||||
|
+ array[0].name = h->h_name;
|
||||||
|
+ array[count - 1].next = NULL;
|
||||||
|
+
|
||||||
|
+ *result = array;
|
||||||
|
+ return true;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
#define gethosts(_family, _type) \
|
||||||
|
{ \
|
||||||
|
- int i; \
|
||||||
|
int herrno; \
|
||||||
|
struct hostent th; \
|
||||||
|
struct hostent *h; \
|
||||||
|
@@ -219,36 +268,23 @@ gaih_inet_serv (const char *servicename,
|
||||||
|
} \
|
||||||
|
else if (h != NULL) \
|
||||||
|
{ \
|
||||||
|
- for (i = 0; h->h_addr_list[i]; i++) \
|
||||||
|
+ /* Make sure that addrmem can be freed. */ \
|
||||||
|
+ if (!malloc_addrmem) \
|
||||||
|
+ addrmem = NULL; \
|
||||||
|
+ if (!convert_hostent_to_gaih_addrtuple (req, _family,h, &addrmem)) \
|
||||||
|
{ \
|
||||||
|
- if (*pat == NULL) \
|
||||||
|
- { \
|
||||||
|
- *pat = __alloca (sizeof (struct gaih_addrtuple)); \
|
||||||
|
- (*pat)->scopeid = 0; \
|
||||||
|
- } \
|
||||||
|
- uint32_t *addr = (*pat)->addr; \
|
||||||
|
- (*pat)->next = NULL; \
|
||||||
|
- (*pat)->name = i == 0 ? strdupa (h->h_name) : NULL; \
|
||||||
|
- if (_family == AF_INET && req->ai_family == AF_INET6) \
|
||||||
|
- { \
|
||||||
|
- (*pat)->family = AF_INET6; \
|
||||||
|
- addr[3] = *(uint32_t *) h->h_addr_list[i]; \
|
||||||
|
- addr[2] = htonl (0xffff); \
|
||||||
|
- addr[1] = 0; \
|
||||||
|
- addr[0] = 0; \
|
||||||
|
- } \
|
||||||
|
- else \
|
||||||
|
- { \
|
||||||
|
- (*pat)->family = _family; \
|
||||||
|
- memcpy (addr, h->h_addr_list[i], sizeof(_type)); \
|
||||||
|
- } \
|
||||||
|
- pat = &((*pat)->next); \
|
||||||
|
+ _res.options |= old_res_options & RES_USE_INET6; \
|
||||||
|
+ result = -EAI_SYSTEM; \
|
||||||
|
+ goto free_and_return; \
|
||||||
|
} \
|
||||||
|
+ *pat = addrmem; \
|
||||||
|
+ /* The conversion uses malloc unconditionally. */ \
|
||||||
|
+ malloc_addrmem = true; \
|
||||||
|
\
|
||||||
|
if (localcanon != NULL && canon == NULL) \
|
||||||
|
canon = strdupa (localcanon); \
|
||||||
|
\
|
||||||
|
- if (_family == AF_INET6 && i > 0) \
|
||||||
|
+ if (_family == AF_INET6 && *pat != NULL) \
|
||||||
|
got_ipv6 = true; \
|
||||||
|
} \
|
||||||
|
}
|
||||||
|
@@ -612,44 +648,16 @@ gaih_inet (const char *name, const struc
|
||||||
|
{
|
||||||
|
if (h != NULL)
|
||||||
|
{
|
||||||
|
- int i;
|
||||||
|
- /* We found data, count the number of addresses. */
|
||||||
|
- for (i = 0; h->h_addr_list[i]; ++i)
|
||||||
|
- ;
|
||||||
|
- if (i > 0 && *pat != NULL)
|
||||||
|
- --i;
|
||||||
|
-
|
||||||
|
- if (__libc_use_alloca (alloca_used
|
||||||
|
- + i * sizeof (struct gaih_addrtuple)))
|
||||||
|
- addrmem = alloca_account (i * sizeof (struct gaih_addrtuple),
|
||||||
|
- alloca_used);
|
||||||
|
- else
|
||||||
|
+ /* We found data, convert it. */
|
||||||
|
+ if (!convert_hostent_to_gaih_addrtuple
|
||||||
|
+ (req, AF_INET, h, &addrmem))
|
||||||
|
{
|
||||||
|
- addrmem = malloc (i
|
||||||
|
- * sizeof (struct gaih_addrtuple));
|
||||||
|
- if (addrmem == NULL)
|
||||||
|
- {
|
||||||
|
- result = -EAI_MEMORY;
|
||||||
|
- goto free_and_return;
|
||||||
|
- }
|
||||||
|
- malloc_addrmem = true;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- /* Now convert it into the list. */
|
||||||
|
- struct gaih_addrtuple *addrfree = addrmem;
|
||||||
|
- for (i = 0; h->h_addr_list[i]; ++i)
|
||||||
|
- {
|
||||||
|
- if (*pat == NULL)
|
||||||
|
- {
|
||||||
|
- *pat = addrfree++;
|
||||||
|
- (*pat)->scopeid = 0;
|
||||||
|
- }
|
||||||
|
- (*pat)->next = NULL;
|
||||||
|
- (*pat)->family = AF_INET;
|
||||||
|
- memcpy ((*pat)->addr, h->h_addr_list[i],
|
||||||
|
- h->h_length);
|
||||||
|
- pat = &((*pat)->next);
|
||||||
|
+ result = -EAI_MEMORY;
|
||||||
|
+ goto free_and_return;
|
||||||
|
}
|
||||||
|
+ *pat = addrmem;
|
||||||
|
+ /* The conversion uses malloc unconditionally. */
|
||||||
|
+ malloc_addrmem = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
Index: git/NEWS
|
||||||
|
===================================================================
|
||||||
|
--- git.orig/NEWS
|
||||||
|
+++ git/NEWS
|
||||||
|
@@ -2,6 +2,11 @@ GNU C Library NEWS -- history of user-vi
|
||||||
|
Copyright (C) 1992-2016 Free Software Foundation, Inc.
|
||||||
|
See the end for copying conditions.
|
||||||
|
|
||||||
|
+* Previously, getaddrinfo copied large amounts of address data to the stack,
|
||||||
|
+ even after the fix for CVE-2013-4458 has been applied, potentially
|
||||||
|
+ resulting in a stack overflow. getaddrinfo now uses a heap allocation
|
||||||
|
+ instead. Reported by Michael Petlan. (CVE-2016-3706)
|
||||||
|
+
|
||||||
|
Please send GNU C library bug reports via <http://sourceware.org/bugzilla/>
|
||||||
|
using `glibc' in the "product" field.
|
||||||
|
|
||||||
|
Index: git/ChangeLog
|
||||||
|
===================================================================
|
||||||
|
--- git.orig/ChangeLog
|
||||||
|
+++ git/ChangeLog
|
||||||
|
@@ -1,3 +1,13 @@
|
||||||
|
+2016-04-29 Florian Weimer <fweimer@redhat.com>
|
||||||
|
+
|
||||||
|
+ [BZ #20010]
|
||||||
|
+ CVE-2016-3706
|
||||||
|
+ * sysdeps/posix/getaddrinfo.c
|
||||||
|
+ (convert_hostent_to_gaih_addrtuple): New function.
|
||||||
|
+ (gethosts): Call convert_hostent_to_gaih_addrtuple.
|
||||||
|
+ (gaih_inet): Use convert_hostent_to_gaih_addrtuple to convert
|
||||||
|
+ AF_INET data.
|
||||||
|
+
|
||||||
|
2016-02-18 Adhemerval Zanella <adhemerval.zanella@linaro.org>
|
||||||
|
|
||||||
|
* configure: Regenerated.
|
||||||
89
meta/recipes-core/glibc/glibc/CVE-2016-4429.patch
Normal file
89
meta/recipes-core/glibc/glibc/CVE-2016-4429.patch
Normal file
@@ -0,0 +1,89 @@
|
|||||||
|
From bc779a1a5b3035133024b21e2f339fe4219fb11c Mon Sep 17 00:00:00 2001
|
||||||
|
From: Florian Weimer <fweimer@redhat.com>
|
||||||
|
Date: Mon, 23 May 2016 20:18:34 +0200
|
||||||
|
Subject: [PATCH] CVE-2016-4429: sunrpc: Do not use alloca in clntudp_call [BZ
|
||||||
|
#20112]
|
||||||
|
|
||||||
|
The call is technically in a loop, and under certain circumstances
|
||||||
|
(which are quite difficult to reproduce in a test case), alloca
|
||||||
|
can be invoked repeatedly during a single call to clntudp_call.
|
||||||
|
As a result, the available stack space can be exhausted (even
|
||||||
|
though individual alloca sizes are bounded implicitly by what
|
||||||
|
can fit into a UDP packet, as a side effect of the earlier
|
||||||
|
successful send operation).
|
||||||
|
|
||||||
|
Upstream-Status: Backport
|
||||||
|
CVE: CVE-2016-4429
|
||||||
|
|
||||||
|
Signed-off-by: Armin Kuster <akuster@mvsita.com>
|
||||||
|
|
||||||
|
---
|
||||||
|
ChangeLog | 7 +++++++
|
||||||
|
NEWS | 4 ++++
|
||||||
|
sunrpc/clnt_udp.c | 10 +++++++++-
|
||||||
|
3 files changed, 20 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
Index: git/NEWS
|
||||||
|
===================================================================
|
||||||
|
--- git.orig/NEWS
|
||||||
|
+++ git/NEWS
|
||||||
|
@@ -110,6 +110,10 @@ Security related changes:
|
||||||
|
reporting the security impact of this issue, and Robert Holiday of
|
||||||
|
Ciena for reporting the related bug 18665. (CVE-2015-7547)
|
||||||
|
|
||||||
|
+* The Sun RPC UDP client could exhaust all available stack space when
|
||||||
|
+ flooded with crafted ICMP and UDP messages. Reported by Aldy Hernandez'
|
||||||
|
+ alloca plugin for GCC. (CVE-2016-4429)
|
||||||
|
+
|
||||||
|
The following bugs are resolved with this release:
|
||||||
|
|
||||||
|
[89] localedata: Locales nb_NO and nn_NO should transliterate æøå
|
||||||
|
Index: git/sunrpc/clnt_udp.c
|
||||||
|
===================================================================
|
||||||
|
--- git.orig/sunrpc/clnt_udp.c
|
||||||
|
+++ git/sunrpc/clnt_udp.c
|
||||||
|
@@ -388,9 +388,15 @@ send_again:
|
||||||
|
struct sock_extended_err *e;
|
||||||
|
struct sockaddr_in err_addr;
|
||||||
|
struct iovec iov;
|
||||||
|
- char *cbuf = (char *) alloca (outlen + 256);
|
||||||
|
+ char *cbuf = malloc (outlen + 256);
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
+ if (cbuf == NULL)
|
||||||
|
+ {
|
||||||
|
+ cu->cu_error.re_errno = errno;
|
||||||
|
+ return (cu->cu_error.re_status = RPC_CANTRECV);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
iov.iov_base = cbuf + 256;
|
||||||
|
iov.iov_len = outlen;
|
||||||
|
msg.msg_name = (void *) &err_addr;
|
||||||
|
@@ -415,10 +421,12 @@ send_again:
|
||||||
|
cmsg = CMSG_NXTHDR (&msg, cmsg))
|
||||||
|
if (cmsg->cmsg_level == SOL_IP && cmsg->cmsg_type == IP_RECVERR)
|
||||||
|
{
|
||||||
|
+ free (cbuf);
|
||||||
|
e = (struct sock_extended_err *) CMSG_DATA(cmsg);
|
||||||
|
cu->cu_error.re_errno = e->ee_errno;
|
||||||
|
return (cu->cu_error.re_status = RPC_CANTRECV);
|
||||||
|
}
|
||||||
|
+ free (cbuf);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
do
|
||||||
|
Index: git/ChangeLog
|
||||||
|
===================================================================
|
||||||
|
--- git.orig/ChangeLog
|
||||||
|
+++ git/ChangeLog
|
||||||
|
@@ -1,3 +1,10 @@
|
||||||
|
+2016-05-23 Florian Weimer <fweimer@redhat.com>
|
||||||
|
+
|
||||||
|
+ CVE-2016-4429
|
||||||
|
+ [BZ #20112]
|
||||||
|
+ * sunrpc/clnt_udp.c (clntudp_call): Use malloc/free for the error
|
||||||
|
+ payload.
|
||||||
|
+
|
||||||
|
2016-04-29 Florian Weimer <fweimer@redhat.com>
|
||||||
|
|
||||||
|
[BZ #20010]
|
||||||
@@ -36,6 +36,8 @@ SRC_URI = "${GLIBC_GIT_URI};branch=${SRCBRANCH};name=glibc \
|
|||||||
file://0023-eglibc-Install-PIC-archives.patch \
|
file://0023-eglibc-Install-PIC-archives.patch \
|
||||||
file://0025-eglibc-Forward-port-cross-locale-generation-support.patch \
|
file://0025-eglibc-Forward-port-cross-locale-generation-support.patch \
|
||||||
file://0026-When-disabling-SSE-make-sure-fpmath-is-not-set-to-us.patch \
|
file://0026-When-disabling-SSE-make-sure-fpmath-is-not-set-to-us.patch \
|
||||||
|
file://CVE-2016-3706.patch \
|
||||||
|
file://CVE-2016-4429.patch \
|
||||||
"
|
"
|
||||||
|
|
||||||
SRC_URI += "\
|
SRC_URI += "\
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ IMAGE_FSTYPES = "vmdk"
|
|||||||
|
|
||||||
inherit core-image module-base
|
inherit core-image module-base
|
||||||
|
|
||||||
SRCREV ?= "5f84d6545e6d7a2be8e603a1f4b1afae0dad0a9b"
|
SRCREV ?= "e244da150b3a71e2f43f99a10288274d7b20d848"
|
||||||
SRC_URI = "git://git.yoctoproject.org/poky;branch=krogoth \
|
SRC_URI = "git://git.yoctoproject.org/poky;branch=krogoth \
|
||||||
file://Yocto_Build_Appliance.vmx \
|
file://Yocto_Build_Appliance.vmx \
|
||||||
file://Yocto_Build_Appliance.vmxf \
|
file://Yocto_Build_Appliance.vmxf \
|
||||||
|
|||||||
@@ -76,8 +76,8 @@ MODULES_DIR=/init.d # place to look for modules
|
|||||||
# make mount stop complaining about missing /etc/fstab
|
# make mount stop complaining about missing /etc/fstab
|
||||||
touch /etc/fstab
|
touch /etc/fstab
|
||||||
|
|
||||||
# initialize /proc, /sys and /var/lock
|
# initialize /proc, /sys, /run/lock and /var/lock
|
||||||
mkdir -p /proc /sys /var/lock
|
mkdir -p /proc /sys /run/lock /var/lock
|
||||||
mount -t proc proc /proc
|
mount -t proc proc /proc
|
||||||
mount -t sysfs sysfs /sys
|
mount -t sysfs sysfs /sys
|
||||||
|
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ PACKAGES = "${PN}-base \
|
|||||||
FILES_${PN}-base = "/init /init.d/99-finish /dev"
|
FILES_${PN}-base = "/init /init.d/99-finish /dev"
|
||||||
|
|
||||||
SUMMARY_initramfs-module-mdev = "initramfs support for mdev"
|
SUMMARY_initramfs-module-mdev = "initramfs support for mdev"
|
||||||
RDEPENDS_initramfs-module-mdev = "${PN}-base"
|
RDEPENDS_initramfs-module-mdev = "${PN}-base busybox-mdev"
|
||||||
FILES_initramfs-module-mdev = "/init.d/01-mdev"
|
FILES_initramfs-module-mdev = "/init.d/01-mdev"
|
||||||
|
|
||||||
SUMMARY_initramfs-module-udev = "initramfs support for udev"
|
SUMMARY_initramfs-module-udev = "initramfs support for udev"
|
||||||
|
|||||||
@@ -1,45 +0,0 @@
|
|||||||
configure.ac: fix cross compiling warning
|
|
||||||
|
|
||||||
There is a warning while cross compiling which triggered a
|
|
||||||
failure by do_qa_configure
|
|
||||||
...
|
|
||||||
|configure:12652: checking for gzread in -lz
|
|
||||||
|configure:12677: mips-poky-linux-gcc -meb -mabi=32 -mhard-float
|
|
||||||
-L/lib conftest.c -lz >&5
|
|
||||||
|ld: warning: library search path "/lib" is unsafe for cross-compilation
|
|
||||||
...
|
|
||||||
|
|
||||||
While do the lib checking, do not add '-L${Z_DIR}/lib' to LDFLAGS could fix it.
|
|
||||||
|
|
||||||
Upstream-Status: Inappropriate [oe specific]
|
|
||||||
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
|
|
||||||
---
|
|
||||||
configure.ac | 5 +----
|
|
||||||
1 file changed, 1 insertion(+), 4 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/configure.ac b/configure.ac
|
|
||||||
index 9a90600..0bac8a4 100644
|
|
||||||
--- a/configure.ac
|
|
||||||
+++ b/configure.ac
|
|
||||||
@@ -391,8 +391,6 @@ if test "$with_zlib" = "no"; then
|
|
||||||
echo "Disabling compression support"
|
|
||||||
else
|
|
||||||
AC_CHECK_HEADERS(zlib.h,
|
|
||||||
- [SAVE_LDFLAGS="${LDFLAGS}"
|
|
||||||
- LDFLAGS="-L${Z_DIR}/lib"
|
|
||||||
AC_CHECK_LIB(z, gzread,[
|
|
||||||
AC_DEFINE([HAVE_LIBZ], [1], [Have compression library])
|
|
||||||
WITH_ZLIB=1
|
|
||||||
@@ -406,8 +404,7 @@ else
|
|
||||||
esac]
|
|
||||||
else
|
|
||||||
Z_LIBS="-lz"
|
|
||||||
- fi])
|
|
||||||
- LDFLAGS="${SAVE_LDFLAGS}"])
|
|
||||||
+ fi]))
|
|
||||||
fi
|
|
||||||
|
|
||||||
AC_SUBST(Z_CFLAGS)
|
|
||||||
--
|
|
||||||
1.9.1
|
|
||||||
|
|
||||||
@@ -9,7 +9,7 @@ LIC_FILES_CHKSUM = "file://Copyright;md5=2044417e2e5006b65a8b9067b683fcf1 \
|
|||||||
file://list.c;beginline=4;endline=13;md5=cdbfa3dee51c099edb04e39f762ee907 \
|
file://list.c;beginline=4;endline=13;md5=cdbfa3dee51c099edb04e39f762ee907 \
|
||||||
file://trio.c;beginline=5;endline=14;md5=6c025753c86d958722ec76e94cae932e"
|
file://trio.c;beginline=5;endline=14;md5=6c025753c86d958722ec76e94cae932e"
|
||||||
|
|
||||||
DEPENDS = "zlib"
|
DEPENDS = "zlib virtual/libiconv"
|
||||||
|
|
||||||
SRC_URI = "ftp://xmlsoft.org/libxml2/libxml2-${PV}.tar.gz;name=libtar \
|
SRC_URI = "ftp://xmlsoft.org/libxml2/libxml2-${PV}.tar.gz;name=libtar \
|
||||||
http://www.w3.org/XML/Test/xmlts20080827.tar.gz;name=testtar \
|
http://www.w3.org/XML/Test/xmlts20080827.tar.gz;name=testtar \
|
||||||
@@ -19,11 +19,10 @@ SRC_URI = "ftp://xmlsoft.org/libxml2/libxml2-${PV}.tar.gz;name=libtar \
|
|||||||
file://run-ptest \
|
file://run-ptest \
|
||||||
file://python-sitepackages-dir.patch \
|
file://python-sitepackages-dir.patch \
|
||||||
file://libxml-m4-use-pkgconfig.patch \
|
file://libxml-m4-use-pkgconfig.patch \
|
||||||
file://configure.ac-fix-cross-compiling-warning.patch \
|
|
||||||
"
|
"
|
||||||
|
|
||||||
SRC_URI[libtar.md5sum] = "daece17e045f1c107610e137ab50c179"
|
SRC_URI[libtar.md5sum] = "ae249165c173b1ff386ee8ad676815f5"
|
||||||
SRC_URI[libtar.sha256sum] = "4de9e31f46b44d34871c22f54bfc54398ef124d6f7cafb1f4a5958fbcd3ba12d"
|
SRC_URI[libtar.sha256sum] = "ffb911191e509b966deb55de705387f14156e1a56b21824357cdf0053233633c"
|
||||||
SRC_URI[testtar.md5sum] = "ae3d1ebe000a3972afa104ca7f0e1b4a"
|
SRC_URI[testtar.md5sum] = "ae3d1ebe000a3972afa104ca7f0e1b4a"
|
||||||
SRC_URI[testtar.sha256sum] = "96151685cec997e1f9f3387e3626d61e6284d4d6e66e0e440c209286c03e9cc7"
|
SRC_URI[testtar.sha256sum] = "96151685cec997e1f9f3387e3626d61e6284d4d6e66e0e440c209286c03e9cc7"
|
||||||
|
|
||||||
@@ -9,7 +9,7 @@ standards-conformance and safety."
|
|||||||
HOMEPAGE = "http://www.musl-libc.org/"
|
HOMEPAGE = "http://www.musl-libc.org/"
|
||||||
LICENSE = "MIT"
|
LICENSE = "MIT"
|
||||||
SECTION = "libs"
|
SECTION = "libs"
|
||||||
LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=082411391b4d1ace0d30f4c84317cc05"
|
LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=7928b7ad32ceda04932478e330e52f7f"
|
||||||
|
|
||||||
PATH_prepend = "${STAGING_BINDIR_TOOLCHAIN}.${STAGINGCC}:"
|
PATH_prepend = "${STAGING_BINDIR_TOOLCHAIN}.${STAGINGCC}:"
|
||||||
TOOLCHAIN_OPTIONS = " --sysroot=${STAGING_DIR_TCBOOTSTRAP}"
|
TOOLCHAIN_OPTIONS = " --sysroot=${STAGING_DIR_TCBOOTSTRAP}"
|
||||||
|
|||||||
@@ -3,9 +3,9 @@
|
|||||||
|
|
||||||
require musl.inc
|
require musl.inc
|
||||||
|
|
||||||
SRCREV = "5978eb703ce0e64dd778a88c1ffffb76fe5e2202"
|
SRCREV = "faf69b9a73d09fafcbe4fd3007b8d8724293d8e1"
|
||||||
|
|
||||||
PV = "1.1.14+git${SRCPV}"
|
PV = "1.1.15+git${SRCPV}"
|
||||||
|
|
||||||
# mirror is at git://github.com/kraj/musl.git
|
# mirror is at git://github.com/kraj/musl.git
|
||||||
|
|
||||||
@@ -52,6 +52,10 @@ do_install() {
|
|||||||
|
|
||||||
install -d ${D}${bindir}
|
install -d ${D}${bindir}
|
||||||
ln -s ../../${libdir}/libc.so ${D}${bindir}/ldd
|
ln -s ../../${libdir}/libc.so ${D}${bindir}/ldd
|
||||||
|
for l in crypt dl m pthread resolv rt util xnet
|
||||||
|
do
|
||||||
|
ln -s libc.so ${D}${libdir}/lib$l.so
|
||||||
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
RDEPENDS_${PN}-dev += "linux-libc-headers-dev bsd-headers-dev"
|
RDEPENDS_${PN}-dev += "linux-libc-headers-dev bsd-headers-dev"
|
||||||
|
|||||||
@@ -6,13 +6,14 @@ LICENSE = "GPLv2"
|
|||||||
LIC_FILES_CHKSUM = "file://debian/copyright;md5=3dd6192d306f582dee7687da3d8748ab"
|
LIC_FILES_CHKSUM = "file://debian/copyright;md5=3dd6192d306f582dee7687da3d8748ab"
|
||||||
PE = "1"
|
PE = "1"
|
||||||
|
|
||||||
SRC_URI = "${DEBIAN_MIRROR}/main/n/netbase/netbase_${PV}.tar.xz \
|
SRC_URI = "http://snapshot.debian.org/archive/debian/20160728T043443Z/pool/main/n/${BPN}/${BPN}_${PV}.tar.xz \
|
||||||
file://netbase-add-rpcbind-as-an-alias-to-sunrpc.patch \
|
file://netbase-add-rpcbind-as-an-alias-to-sunrpc.patch \
|
||||||
file://hosts"
|
file://hosts"
|
||||||
|
|
||||||
SRC_URI[md5sum] = "2637a27fd3de02a278d2b5be7e6558c1"
|
SRC_URI[md5sum] = "2637a27fd3de02a278d2b5be7e6558c1"
|
||||||
SRC_URI[sha256sum] = "81f6c69795044d62b8ad959cf9daf049d0545fd466c52860ad3f933b1e97b88b"
|
SRC_URI[sha256sum] = "81f6c69795044d62b8ad959cf9daf049d0545fd466c52860ad3f933b1e97b88b"
|
||||||
|
|
||||||
|
UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/n/netbase/"
|
||||||
do_install () {
|
do_install () {
|
||||||
install -d ${D}/${mandir}/man8 ${D}${sysconfdir}
|
install -d ${D}/${mandir}/man8 ${D}${sysconfdir}
|
||||||
install -m 0644 ${WORKDIR}/hosts ${D}${sysconfdir}/hosts
|
install -m 0644 ${WORKDIR}/hosts ${D}${sysconfdir}/hosts
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ LTTNGMODULES = "lttng-modules"
|
|||||||
|
|
||||||
BABELTRACE = "babeltrace"
|
BABELTRACE = "babeltrace"
|
||||||
|
|
||||||
# valgrind does not work on mips
|
# valgrind does not work on the following configurations/architectures
|
||||||
|
|
||||||
VALGRIND = "valgrind"
|
VALGRIND = "valgrind"
|
||||||
VALGRIND_libc-uclibc = ""
|
VALGRIND_libc-uclibc = ""
|
||||||
@@ -68,7 +68,9 @@ VALGRIND_mips = ""
|
|||||||
VALGRIND_mips64 = ""
|
VALGRIND_mips64 = ""
|
||||||
VALGRIND_mips64n32 = ""
|
VALGRIND_mips64n32 = ""
|
||||||
VALGRIND_nios2 = ""
|
VALGRIND_nios2 = ""
|
||||||
VALGRIND_arm = ""
|
VALGRIND_armv4 = ""
|
||||||
|
VALGRIND_armv5 = ""
|
||||||
|
VALGRIND_armv6 = ""
|
||||||
VALGRIND_aarch64 = ""
|
VALGRIND_aarch64 = ""
|
||||||
|
|
||||||
RDEPENDS_${PN} = "\
|
RDEPENDS_${PN} = "\
|
||||||
|
|||||||
@@ -26,7 +26,8 @@ do_install() {
|
|||||||
for i in $tmp
|
for i in $tmp
|
||||||
do
|
do
|
||||||
j=`echo ${i} | sed s/\;/\ /g`
|
j=`echo ${i} | sed s/\;/\ /g`
|
||||||
label=`echo ${i} | sed -e 's/tty//' -e 's/^.*;//' -e 's/;.*//'`
|
l=`echo ${i} | sed -e 's/tty//' -e 's/^.*;//' -e 's/;.*//'`
|
||||||
|
label=`echo $l | sed 's/.*\(....\)/\1/'`
|
||||||
echo "$label:12345:respawn:${base_bindir}/start_getty ${j}" >> ${D}${sysconfdir}/inittab
|
echo "$label:12345:respawn:${base_bindir}/start_getty ${j}" >> ${D}${sysconfdir}/inittab
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|||||||
@@ -32,6 +32,9 @@ EXTRA_OECONF = " \
|
|||||||
--with-rootprefix= \
|
--with-rootprefix= \
|
||||||
"
|
"
|
||||||
|
|
||||||
|
PACKAGECONFIG ??= "hwdb"
|
||||||
|
PACKAGECONFIG[hwdb] = "--enable-hwdb,--disable-hwdb"
|
||||||
|
|
||||||
do_install_append() {
|
do_install_append() {
|
||||||
install -d ${D}${sysconfdir}/init.d
|
install -d ${D}${sysconfdir}/init.d
|
||||||
install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/udev
|
install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/udev
|
||||||
@@ -83,7 +86,7 @@ FILES_eudev-hwdb = "${sysconfdir}/udev/hwdb.d"
|
|||||||
|
|
||||||
RDEPENDS_eudev-hwdb += "eudev"
|
RDEPENDS_eudev-hwdb += "eudev"
|
||||||
|
|
||||||
RRECOMMENDS_${PN} += "udev-cache eudev-hwdb"
|
RRECOMMENDS_${PN} += "udev-cache"
|
||||||
|
|
||||||
RPROVIDES_${PN} = "hotplug udev"
|
RPROVIDES_${PN} = "hotplug udev"
|
||||||
|
|
||||||
@@ -104,4 +107,3 @@ pkg_postinst_eudev-hwdb () {
|
|||||||
pkg_prerm_eudev-hwdb () {
|
pkg_prerm_eudev-hwdb () {
|
||||||
rm -f $D${sysconfdir}/udev/hwdb.bin
|
rm -f $D${sysconfdir}/udev/hwdb.bin
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -34,6 +34,7 @@ SRC_URI = "\
|
|||||||
file://0012-Add-support-for-Netlogic-XLP.patch \
|
file://0012-Add-support-for-Netlogic-XLP.patch \
|
||||||
file://0013-Fix-GOT-address-computations-in-initial-PLT-entries-.patch \
|
file://0013-Fix-GOT-address-computations-in-initial-PLT-entries-.patch \
|
||||||
file://0014-Correct-nios2-_gp-address-computation.patch \
|
file://0014-Correct-nios2-_gp-address-computation.patch \
|
||||||
|
file://aarch64-tls.patch \
|
||||||
"
|
"
|
||||||
S = "${WORKDIR}/git"
|
S = "${WORKDIR}/git"
|
||||||
|
|
||||||
|
|||||||
@@ -72,6 +72,7 @@ B = "${S}/build.${HOST_SYS}.${TARGET_SYS}"
|
|||||||
|
|
||||||
EXTRA_OECONF = "--program-prefix=${TARGET_PREFIX} \
|
EXTRA_OECONF = "--program-prefix=${TARGET_PREFIX} \
|
||||||
--disable-werror \
|
--disable-werror \
|
||||||
|
--enable-deterministic-archives \
|
||||||
--enable-plugins \
|
--enable-plugins \
|
||||||
${LDGOLD} \
|
${LDGOLD} \
|
||||||
${@bb.utils.contains('DISTRO_FEATURES', 'multiarch', '--enable-64-bit-bfd', '', d)}"
|
${@bb.utils.contains('DISTRO_FEATURES', 'multiarch', '--enable-64-bit-bfd', '', d)}"
|
||||||
|
|||||||
177
meta/recipes-devtools/binutils/binutils/aarch64-tls.patch
Normal file
177
meta/recipes-devtools/binutils/binutils/aarch64-tls.patch
Normal file
@@ -0,0 +1,177 @@
|
|||||||
|
Building WebKit on an aarch64 host will fail:
|
||||||
|
|
||||||
|
gold/ld-new: internal error in relocate_tls, at ../../binutils/gold/aarch64.cc:7418
|
||||||
|
|
||||||
|
This was a binutils bug, so backport the fix.
|
||||||
|
|
||||||
|
https://sourceware.org/bugzilla/show_bug.cgi?id=19353
|
||||||
|
|
||||||
|
Upstream-Status: Backport
|
||||||
|
Signed-off-by: Ross Burton <ross.burton@intel.com>
|
||||||
|
|
||||||
|
From d21f123b0ead1806416cf0dafae12bec4cca8920 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Cary Coutant <ccoutant@gmail.com>
|
||||||
|
Date: Mon, 11 Jan 2016 23:57:44 -0800
|
||||||
|
Subject: [PATCH] Fix internal error when applying TLSDESC relocations with no TLS segment.
|
||||||
|
|
||||||
|
gold/
|
||||||
|
PR gold/19353
|
||||||
|
* aarch64.cc (Target_aarch64::relocate_tls): Don't insist that
|
||||||
|
we have a TLS segment for GD-to-IE optimization.
|
||||||
|
* i386.cc (Target_i386::tls_gd_to_ie): Remove tls_segment parameter.
|
||||||
|
Adjust all calls.
|
||||||
|
(Target_i386::tls_desc_gd_to_ie): Likewise.
|
||||||
|
(Target_i386::relocate_tls): Don't insist that we have a TLS segment
|
||||||
|
for TLSDESC GD-to-IE optimizations.
|
||||||
|
* x86_64.cc (Target_x86_64::tls_gd_to_ie): Remove tls_segment parameter.
|
||||||
|
Adjust all calls.
|
||||||
|
(Target_x86_64::tls_desc_gd_to_ie): Likewise.
|
||||||
|
(Target_x86_64::relocate_tls): Don't insist that we have a TLS segment
|
||||||
|
for TLSDESC GD-to-IE optimizations.
|
||||||
|
---
|
||||||
|
gold/ChangeLog | 16 ++++++++++++++++
|
||||||
|
gold/aarch64.cc | 6 ------
|
||||||
|
gold/i386.cc | 14 ++------------
|
||||||
|
gold/x86_64.cc | 14 ++------------
|
||||||
|
4 files changed, 20 insertions(+), 30 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/gold/aarch64.cc b/gold/aarch64.cc
|
||||||
|
index 20f2f4f..5ad061b 100644
|
||||||
|
--- a/gold/aarch64.cc
|
||||||
|
+++ b/gold/aarch64.cc
|
||||||
|
@@ -7422,12 +7422,6 @@ Target_aarch64<size, big_endian>::Relocate::relocate_tls(
|
||||||
|
}
|
||||||
|
if (tlsopt == tls::TLSOPT_TO_IE)
|
||||||
|
{
|
||||||
|
- if (tls_segment == NULL)
|
||||||
|
- {
|
||||||
|
- gold_assert(parameters->errors()->error_count() > 0
|
||||||
|
- || issue_undefined_symbol_error(gsym));
|
||||||
|
- return aarch64_reloc_funcs::STATUS_BAD_RELOC;
|
||||||
|
- }
|
||||||
|
return tls_desc_gd_to_ie(relinfo, target, rela, r_type,
|
||||||
|
view, psymval, got_entry_address,
|
||||||
|
address);
|
||||||
|
diff --git a/gold/i386.cc b/gold/i386.cc
|
||||||
|
index 82886d4..a7168a8 100644
|
||||||
|
--- a/gold/i386.cc
|
||||||
|
+++ b/gold/i386.cc
|
||||||
|
@@ -668,7 +668,6 @@ class Target_i386 : public Sized_target<32, false>
|
||||||
|
// Do a TLS General-Dynamic to Initial-Exec transition.
|
||||||
|
inline void
|
||||||
|
tls_gd_to_ie(const Relocate_info<32, false>*, size_t relnum,
|
||||||
|
- Output_segment* tls_segment,
|
||||||
|
const elfcpp::Rel<32, false>&, unsigned int r_type,
|
||||||
|
elfcpp::Elf_types<32>::Elf_Addr value,
|
||||||
|
unsigned char* view,
|
||||||
|
@@ -687,7 +686,6 @@ class Target_i386 : public Sized_target<32, false>
|
||||||
|
// transition.
|
||||||
|
inline void
|
||||||
|
tls_desc_gd_to_ie(const Relocate_info<32, false>*, size_t relnum,
|
||||||
|
- Output_segment* tls_segment,
|
||||||
|
const elfcpp::Rel<32, false>&, unsigned int r_type,
|
||||||
|
elfcpp::Elf_types<32>::Elf_Addr value,
|
||||||
|
unsigned char* view,
|
||||||
|
@@ -3054,7 +3052,7 @@ Target_i386::Relocate::relocate_tls(const Relocate_info<32, false>* relinfo,
|
||||||
|
}
|
||||||
|
if (optimized_type == tls::TLSOPT_TO_IE)
|
||||||
|
{
|
||||||
|
- this->tls_gd_to_ie(relinfo, relnum, tls_segment, rel, r_type,
|
||||||
|
+ this->tls_gd_to_ie(relinfo, relnum, rel, r_type,
|
||||||
|
got_offset, view, view_size);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
@@ -3116,13 +3114,7 @@ Target_i386::Relocate::relocate_tls(const Relocate_info<32, false>* relinfo,
|
||||||
|
}
|
||||||
|
if (optimized_type == tls::TLSOPT_TO_IE)
|
||||||
|
{
|
||||||
|
- if (tls_segment == NULL)
|
||||||
|
- {
|
||||||
|
- gold_assert(parameters->errors()->error_count() > 0
|
||||||
|
- || issue_undefined_symbol_error(gsym));
|
||||||
|
- return;
|
||||||
|
- }
|
||||||
|
- this->tls_desc_gd_to_ie(relinfo, relnum, tls_segment, rel, r_type,
|
||||||
|
+ this->tls_desc_gd_to_ie(relinfo, relnum, rel, r_type,
|
||||||
|
got_offset, view, view_size);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
@@ -3354,7 +3346,6 @@ Target_i386::Relocate::tls_gd_to_le(const Relocate_info<32, false>* relinfo,
|
||||||
|
inline void
|
||||||
|
Target_i386::Relocate::tls_gd_to_ie(const Relocate_info<32, false>* relinfo,
|
||||||
|
size_t relnum,
|
||||||
|
- Output_segment*,
|
||||||
|
const elfcpp::Rel<32, false>& rel,
|
||||||
|
unsigned int,
|
||||||
|
elfcpp::Elf_types<32>::Elf_Addr value,
|
||||||
|
@@ -3449,7 +3440,6 @@ inline void
|
||||||
|
Target_i386::Relocate::tls_desc_gd_to_ie(
|
||||||
|
const Relocate_info<32, false>* relinfo,
|
||||||
|
size_t relnum,
|
||||||
|
- Output_segment*,
|
||||||
|
const elfcpp::Rel<32, false>& rel,
|
||||||
|
unsigned int r_type,
|
||||||
|
elfcpp::Elf_types<32>::Elf_Addr value,
|
||||||
|
diff --git a/gold/x86_64.cc b/gold/x86_64.cc
|
||||||
|
index 3cfc064..4ad5afc 100644
|
||||||
|
--- a/gold/x86_64.cc
|
||||||
|
+++ b/gold/x86_64.cc
|
||||||
|
@@ -816,7 +816,6 @@ class Target_x86_64 : public Sized_target<size, false>
|
||||||
|
// Do a TLS General-Dynamic to Initial-Exec transition.
|
||||||
|
inline void
|
||||||
|
tls_gd_to_ie(const Relocate_info<size, false>*, size_t relnum,
|
||||||
|
- Output_segment* tls_segment,
|
||||||
|
const elfcpp::Rela<size, false>&, unsigned int r_type,
|
||||||
|
typename elfcpp::Elf_types<size>::Elf_Addr value,
|
||||||
|
unsigned char* view,
|
||||||
|
@@ -835,7 +834,6 @@ class Target_x86_64 : public Sized_target<size, false>
|
||||||
|
// Do a TLSDESC-style General-Dynamic to Initial-Exec transition.
|
||||||
|
inline void
|
||||||
|
tls_desc_gd_to_ie(const Relocate_info<size, false>*, size_t relnum,
|
||||||
|
- Output_segment* tls_segment,
|
||||||
|
const elfcpp::Rela<size, false>&, unsigned int r_type,
|
||||||
|
typename elfcpp::Elf_types<size>::Elf_Addr value,
|
||||||
|
unsigned char* view,
|
||||||
|
@@ -3733,7 +3731,7 @@ Target_x86_64<size>::Relocate::relocate_tls(
|
||||||
|
if (optimized_type == tls::TLSOPT_TO_IE)
|
||||||
|
{
|
||||||
|
value = target->got_plt_section()->address() + got_offset;
|
||||||
|
- this->tls_gd_to_ie(relinfo, relnum, tls_segment, rela, r_type,
|
||||||
|
+ this->tls_gd_to_ie(relinfo, relnum, rela, r_type,
|
||||||
|
value, view, address, view_size);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
@@ -3800,14 +3798,8 @@ Target_x86_64<size>::Relocate::relocate_tls(
|
||||||
|
}
|
||||||
|
if (optimized_type == tls::TLSOPT_TO_IE)
|
||||||
|
{
|
||||||
|
- if (tls_segment == NULL)
|
||||||
|
- {
|
||||||
|
- gold_assert(parameters->errors()->error_count() > 0
|
||||||
|
- || issue_undefined_symbol_error(gsym));
|
||||||
|
- return;
|
||||||
|
- }
|
||||||
|
value = target->got_plt_section()->address() + got_offset;
|
||||||
|
- this->tls_desc_gd_to_ie(relinfo, relnum, tls_segment,
|
||||||
|
+ this->tls_desc_gd_to_ie(relinfo, relnum,
|
||||||
|
rela, r_type, value, view, address,
|
||||||
|
view_size);
|
||||||
|
break;
|
||||||
|
@@ -3973,7 +3965,6 @@ inline void
|
||||||
|
Target_x86_64<size>::Relocate::tls_gd_to_ie(
|
||||||
|
const Relocate_info<size, false>* relinfo,
|
||||||
|
size_t relnum,
|
||||||
|
- Output_segment*,
|
||||||
|
const elfcpp::Rela<size, false>& rela,
|
||||||
|
unsigned int,
|
||||||
|
typename elfcpp::Elf_types<size>::Elf_Addr value,
|
||||||
|
@@ -4085,7 +4076,6 @@ inline void
|
||||||
|
Target_x86_64<size>::Relocate::tls_desc_gd_to_ie(
|
||||||
|
const Relocate_info<size, false>* relinfo,
|
||||||
|
size_t relnum,
|
||||||
|
- Output_segment*,
|
||||||
|
const elfcpp::Rela<size, false>& rela,
|
||||||
|
unsigned int r_type,
|
||||||
|
typename elfcpp::Elf_types<size>::Elf_Addr value,
|
||||||
|
--
|
||||||
|
1.7.1
|
||||||
@@ -13,7 +13,8 @@ EXTRA_OECONF += "--with-sysroot=/ \
|
|||||||
EXTRA_OECONF_class-native = "--enable-targets=all \
|
EXTRA_OECONF_class-native = "--enable-targets=all \
|
||||||
--enable-64-bit-bfd \
|
--enable-64-bit-bfd \
|
||||||
--enable-install-libiberty \
|
--enable-install-libiberty \
|
||||||
--enable-install-libbfd"
|
--enable-install-libbfd \
|
||||||
|
--disable-werror"
|
||||||
|
|
||||||
do_install_class-native () {
|
do_install_class-native () {
|
||||||
autotools_do_install
|
autotools_do_install
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ LIC_FILES_CHKSUM = "file://${WORKDIR}/LICENSE-OASIS;md5=c608985dd5f7f215e669e763
|
|||||||
# Note: the upstream sources are not distributed with a license file.
|
# Note: the upstream sources are not distributed with a license file.
|
||||||
# LICENSE-OASIS is included as a "patch" to workaround this. When
|
# LICENSE-OASIS is included as a "patch" to workaround this. When
|
||||||
# upgrading this recipe, please verify whether this is still needed.
|
# upgrading this recipe, please verify whether this is still needed.
|
||||||
SRC_URI = "${DEBIAN_MIRROR}/main/d/docbook-xml/docbook-xml_${PV}.orig.tar.gz \
|
SRC_URI = "http://snapshot.debian.org/archive/debian/20160728T043443Z/pool/main/d/docbook-xml/docbook-xml_${PV}.orig.tar.gz \
|
||||||
file://LICENSE-OASIS \
|
file://LICENSE-OASIS \
|
||||||
file://docbook-xml-update-catalog.xml.patch \
|
file://docbook-xml-update-catalog.xml.patch \
|
||||||
file://docbook-xml.xml \
|
file://docbook-xml.xml \
|
||||||
@@ -20,6 +20,8 @@ SRC_URI = "${DEBIAN_MIRROR}/main/d/docbook-xml/docbook-xml_${PV}.orig.tar.gz \
|
|||||||
SRC_URI[md5sum] = "487b4d44e15cffb1f4048af23f98208e"
|
SRC_URI[md5sum] = "487b4d44e15cffb1f4048af23f98208e"
|
||||||
SRC_URI[sha256sum] = "b0f8edcf697f5318e63dd98c9a931f3fee167af0805ba441db372e0f17b2a44f"
|
SRC_URI[sha256sum] = "b0f8edcf697f5318e63dd98c9a931f3fee167af0805ba441db372e0f17b2a44f"
|
||||||
|
|
||||||
|
UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/d/docbook-xml/"
|
||||||
|
|
||||||
S="${WORKDIR}/docbook-xml-4.5.c31424"
|
S="${WORKDIR}/docbook-xml-4.5.c31424"
|
||||||
|
|
||||||
inherit allarch
|
inherit allarch
|
||||||
|
|||||||
@@ -2,8 +2,6 @@ SUMMARY = "Package maintenance system from Debian"
|
|||||||
LICENSE = "GPLv2.0+"
|
LICENSE = "GPLv2.0+"
|
||||||
SECTION = "base"
|
SECTION = "base"
|
||||||
|
|
||||||
SRC_URI = "${DEBIAN_MIRROR}/main/d/dpkg/dpkg_${PV}.tar.xz"
|
|
||||||
|
|
||||||
SRC_URI_append_class-native = " file://0001-When-running-do_package_write_deb-we-have-trees-of-h.patch"
|
SRC_URI_append_class-native = " file://0001-When-running-do_package_write_deb-we-have-trees-of-h.patch"
|
||||||
|
|
||||||
DEPENDS = "zlib bzip2 perl ncurses"
|
DEPENDS = "zlib bzip2 perl ncurses"
|
||||||
@@ -11,6 +9,8 @@ DEPENDS_class-native = "bzip2-replacement-native zlib-native virtual/update-alte
|
|||||||
RDEPENDS_${PN} = "${VIRTUAL-RUNTIME_update-alternatives} xz run-postinsts perl"
|
RDEPENDS_${PN} = "${VIRTUAL-RUNTIME_update-alternatives} xz run-postinsts perl"
|
||||||
RDEPENDS_${PN}_class-native = "xz-native"
|
RDEPENDS_${PN}_class-native = "xz-native"
|
||||||
|
|
||||||
|
UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/d/dpkg/"
|
||||||
|
|
||||||
inherit autotools gettext perlnative pkgconfig systemd
|
inherit autotools gettext perlnative pkgconfig systemd
|
||||||
|
|
||||||
python () {
|
python () {
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
require dpkg.inc
|
require dpkg.inc
|
||||||
LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
|
LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
|
||||||
|
|
||||||
SRC_URI_append_class-native =" file://glibc2.5-sync_file_range.patch "
|
SRC_URI += "http://snapshot.debian.org/archive/debian/20160509T100042Z/pool/main/d/${BPN}/${BPN}_${PV}.tar.xz \
|
||||||
SRC_URI += "file://noman.patch \
|
file://noman.patch \
|
||||||
file://remove-tar-no-timestamp.patch \
|
file://remove-tar-no-timestamp.patch \
|
||||||
file://fix-abs-redefine.patch \
|
file://fix-abs-redefine.patch \
|
||||||
file://arch_pm.patch \
|
file://arch_pm.patch \
|
||||||
@@ -14,6 +14,7 @@ SRC_URI += "file://noman.patch \
|
|||||||
file://0005-dpkg-compiler.m4-remove-Wvla.patch \
|
file://0005-dpkg-compiler.m4-remove-Wvla.patch \
|
||||||
file://0006-add-musleabi-to-known-target-tripets.patch \
|
file://0006-add-musleabi-to-known-target-tripets.patch \
|
||||||
"
|
"
|
||||||
|
SRC_URI_append_class-native =" file://glibc2.5-sync_file_range.patch "
|
||||||
|
|
||||||
SRC_URI[md5sum] = "e95b513c89693f6ec3ab53b6b1c3defd"
|
SRC_URI[md5sum] = "e95b513c89693f6ec3ab53b6b1c3defd"
|
||||||
SRC_URI[sha256sum] = "fe89243868888ce715bf45861f26264f767d4e4dbd0d6f1a26ce60bbbbf106da"
|
SRC_URI[sha256sum] = "fe89243868888ce715bf45861f26264f767d4e4dbd0d6f1a26ce60bbbbf106da"
|
||||||
|
|||||||
23
meta/recipes-devtools/elfutils/elfutils-0.148/gcc6.patch
Normal file
23
meta/recipes-devtools/elfutils/elfutils-0.148/gcc6.patch
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
Fix warnings found with gcc6
|
||||||
|
|
||||||
|
| ../../elfutils-0.148/libdw/dwarf_siblingof.c: In function 'dwarf_siblingof':
|
||||||
|
| ../../elfutils-0.148/libdw/dwarf_siblingof.c:69:6: error: nonnull argument 'result' compared to NULL [-Werror=nonnull-compare]
|
||||||
|
| if (result == NULL)
|
||||||
|
| ^
|
||||||
|
|
||||||
|
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||||
|
Upstream-Status: Inappropriate [ unmaintained ]
|
||||||
|
Index: elfutils-0.148/libdw/dwarf_siblingof.c
|
||||||
|
===================================================================
|
||||||
|
--- elfutils-0.148.orig/libdw/dwarf_siblingof.c
|
||||||
|
+++ elfutils-0.148/libdw/dwarf_siblingof.c
|
||||||
|
@@ -66,9 +66,6 @@ dwarf_siblingof (die, result)
|
||||||
|
if (die == NULL)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
- if (result == NULL)
|
||||||
|
- return -1;
|
||||||
|
-
|
||||||
|
if (result != die)
|
||||||
|
result->addr = NULL;
|
||||||
|
|
||||||
@@ -0,0 +1,419 @@
|
|||||||
|
The upstream patch libebl/Changelog does not apply cleanly.
|
||||||
|
Modify the patch to skip that change only.
|
||||||
|
|
||||||
|
Upstream-Status: Backport
|
||||||
|
|
||||||
|
Signed-off-by: Tim Orling <timothy.t.orling@linux.intel.com>
|
||||||
|
|
||||||
|
From c5da7c9e08c2bdb6dba8e115dcc09ed51a07f0e4 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Mark Wielaard <mjw@redhat.com>
|
||||||
|
Date: Sat, 9 Jan 2016 22:09:48 +0100
|
||||||
|
Subject: libebl: Fix missing brackets around if statement body.
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
GCC6 [will have] a nice new warning that showed a real bug:
|
||||||
|
|
||||||
|
elfutils/libebl/eblobjnote.c: In function ‘ebl_object_note’:
|
||||||
|
elfutils/libebl/eblobjnote.c:135:5: error: statement is indented as if it were guarded by... [-Werror=misleading-indentation]
|
||||||
|
switch (type)
|
||||||
|
^~~~~~
|
||||||
|
|
||||||
|
elfutils/libebl/eblobjnote.c:45:3: note: ...this ‘if’ clause, but it is not
|
||||||
|
if (! ebl->object_note (name, type, descsz, desc))
|
||||||
|
^~
|
||||||
|
|
||||||
|
And indeed, it should have been under the if, but wasn't because of missing
|
||||||
|
brackets. Added brackets (and reindent).
|
||||||
|
|
||||||
|
Signed-off-by: Mark Wielaard <mjw@redhat.com>
|
||||||
|
---
|
||||||
|
libebl/eblobjnote.c | 362 ++++++++++++++++++++++++++--------------------------
|
||||||
|
2 files changed, 187 insertions(+), 180 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/libebl/eblobjnote.c b/libebl/eblobjnote.c
|
||||||
|
index fa1eb93..f80a1a5 100644
|
||||||
|
--- a/libebl/eblobjnote.c
|
||||||
|
+++ b/libebl/eblobjnote.c
|
||||||
|
@@ -1,5 +1,5 @@
|
||||||
|
/* Print contents of object file note.
|
||||||
|
- Copyright (C) 2002, 2007, 2009, 2011, 2015 Red Hat, Inc.
|
||||||
|
+ Copyright (C) 2002, 2007, 2009, 2011, 2015, 2016 Red Hat, Inc.
|
||||||
|
This file is part of elfutils.
|
||||||
|
Written by Ulrich Drepper <drepper@redhat.com>, 2002.
|
||||||
|
|
||||||
|
@@ -43,189 +43,191 @@ ebl_object_note (Ebl *ebl, const char *name, uint32_t type,
|
||||||
|
uint32_t descsz, const char *desc)
|
||||||
|
{
|
||||||
|
if (! ebl->object_note (name, type, descsz, desc))
|
||||||
|
- /* The machine specific function did not know this type. */
|
||||||
|
+ {
|
||||||
|
+ /* The machine specific function did not know this type. */
|
||||||
|
|
||||||
|
- if (strcmp ("stapsdt", name) == 0)
|
||||||
|
- {
|
||||||
|
- if (type != 3)
|
||||||
|
- {
|
||||||
|
- printf (gettext ("unknown SDT version %u\n"), type);
|
||||||
|
- return;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- /* Descriptor starts with three addresses, pc, base ref and
|
||||||
|
- semaphore. Then three zero terminated strings provider,
|
||||||
|
- name and arguments. */
|
||||||
|
-
|
||||||
|
- union
|
||||||
|
+ if (strcmp ("stapsdt", name) == 0)
|
||||||
|
{
|
||||||
|
- Elf64_Addr a64[3];
|
||||||
|
- Elf32_Addr a32[3];
|
||||||
|
- } addrs;
|
||||||
|
+ if (type != 3)
|
||||||
|
+ {
|
||||||
|
+ printf (gettext ("unknown SDT version %u\n"), type);
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
- size_t addrs_size = gelf_fsize (ebl->elf, ELF_T_ADDR, 3, EV_CURRENT);
|
||||||
|
- if (descsz < addrs_size + 3)
|
||||||
|
- {
|
||||||
|
- invalid_sdt:
|
||||||
|
- printf (gettext ("invalid SDT probe descriptor\n"));
|
||||||
|
- return;
|
||||||
|
- }
|
||||||
|
+ /* Descriptor starts with three addresses, pc, base ref and
|
||||||
|
+ semaphore. Then three zero terminated strings provider,
|
||||||
|
+ name and arguments. */
|
||||||
|
|
||||||
|
- Elf_Data src =
|
||||||
|
+ union
|
||||||
|
{
|
||||||
|
- .d_type = ELF_T_ADDR, .d_version = EV_CURRENT,
|
||||||
|
- .d_buf = (void *) desc, .d_size = addrs_size
|
||||||
|
- };
|
||||||
|
-
|
||||||
|
- Elf_Data dst =
|
||||||
|
- {
|
||||||
|
- .d_type = ELF_T_ADDR, .d_version = EV_CURRENT,
|
||||||
|
- .d_buf = &addrs, .d_size = addrs_size
|
||||||
|
- };
|
||||||
|
-
|
||||||
|
- if (gelf_xlatetom (ebl->elf, &dst, &src,
|
||||||
|
- elf_getident (ebl->elf, NULL)[EI_DATA]) == NULL)
|
||||||
|
- {
|
||||||
|
- printf ("%s\n", elf_errmsg (-1));
|
||||||
|
- return;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- const char *provider = desc + addrs_size;
|
||||||
|
- const char *pname = memchr (provider, '\0', desc + descsz - provider);
|
||||||
|
- if (pname == NULL)
|
||||||
|
- goto invalid_sdt;
|
||||||
|
-
|
||||||
|
- ++pname;
|
||||||
|
- const char *args = memchr (pname, '\0', desc + descsz - pname);
|
||||||
|
- if (args == NULL ||
|
||||||
|
- memchr (++args, '\0', desc + descsz - pname) != desc + descsz - 1)
|
||||||
|
- goto invalid_sdt;
|
||||||
|
-
|
||||||
|
- GElf_Addr pc;
|
||||||
|
- GElf_Addr base;
|
||||||
|
- GElf_Addr sem;
|
||||||
|
- if (gelf_getclass (ebl->elf) == ELFCLASS32)
|
||||||
|
- {
|
||||||
|
- pc = addrs.a32[0];
|
||||||
|
- base = addrs.a32[1];
|
||||||
|
- sem = addrs.a32[2];
|
||||||
|
- }
|
||||||
|
- else
|
||||||
|
- {
|
||||||
|
- pc = addrs.a64[0];
|
||||||
|
- base = addrs.a64[1];
|
||||||
|
- sem = addrs.a64[2];
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- printf (gettext (" PC: "));
|
||||||
|
- printf ("%#" PRIx64 ",", pc);
|
||||||
|
- printf (gettext (" Base: "));
|
||||||
|
- printf ("%#" PRIx64 ",", base);
|
||||||
|
- printf (gettext (" Semaphore: "));
|
||||||
|
- printf ("%#" PRIx64 "\n", sem);
|
||||||
|
- printf (gettext (" Provider: "));
|
||||||
|
- printf ("%s,", provider);
|
||||||
|
- printf (gettext (" Name: "));
|
||||||
|
- printf ("%s,", pname);
|
||||||
|
- printf (gettext (" Args: "));
|
||||||
|
- printf ("'%s'\n", args);
|
||||||
|
- return;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- switch (type)
|
||||||
|
- {
|
||||||
|
- case NT_GNU_BUILD_ID:
|
||||||
|
- if (strcmp (name, "GNU") == 0 && descsz > 0)
|
||||||
|
- {
|
||||||
|
- printf (gettext (" Build ID: "));
|
||||||
|
- uint_fast32_t i;
|
||||||
|
- for (i = 0; i < descsz - 1; ++i)
|
||||||
|
- printf ("%02" PRIx8, (uint8_t) desc[i]);
|
||||||
|
- printf ("%02" PRIx8 "\n", (uint8_t) desc[i]);
|
||||||
|
- }
|
||||||
|
- break;
|
||||||
|
-
|
||||||
|
- case NT_GNU_GOLD_VERSION:
|
||||||
|
- if (strcmp (name, "GNU") == 0 && descsz > 0)
|
||||||
|
- /* A non-null terminated version string. */
|
||||||
|
- printf (gettext (" Linker version: %.*s\n"),
|
||||||
|
- (int) descsz, desc);
|
||||||
|
- break;
|
||||||
|
-
|
||||||
|
- case NT_GNU_ABI_TAG:
|
||||||
|
- if (strcmp (name, "GNU") == 0 && descsz >= 8 && descsz % 4 == 0)
|
||||||
|
- {
|
||||||
|
- Elf_Data in =
|
||||||
|
- {
|
||||||
|
- .d_version = EV_CURRENT,
|
||||||
|
- .d_type = ELF_T_WORD,
|
||||||
|
- .d_size = descsz,
|
||||||
|
- .d_buf = (void *) desc
|
||||||
|
- };
|
||||||
|
- /* Normally NT_GNU_ABI_TAG is just 4 words (16 bytes). If it
|
||||||
|
- is much (4*) larger dynamically allocate memory to convert. */
|
||||||
|
+ Elf64_Addr a64[3];
|
||||||
|
+ Elf32_Addr a32[3];
|
||||||
|
+ } addrs;
|
||||||
|
+
|
||||||
|
+ size_t addrs_size = gelf_fsize (ebl->elf, ELF_T_ADDR, 3, EV_CURRENT);
|
||||||
|
+ if (descsz < addrs_size + 3)
|
||||||
|
+ {
|
||||||
|
+ invalid_sdt:
|
||||||
|
+ printf (gettext ("invalid SDT probe descriptor\n"));
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ Elf_Data src =
|
||||||
|
+ {
|
||||||
|
+ .d_type = ELF_T_ADDR, .d_version = EV_CURRENT,
|
||||||
|
+ .d_buf = (void *) desc, .d_size = addrs_size
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ Elf_Data dst =
|
||||||
|
+ {
|
||||||
|
+ .d_type = ELF_T_ADDR, .d_version = EV_CURRENT,
|
||||||
|
+ .d_buf = &addrs, .d_size = addrs_size
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ if (gelf_xlatetom (ebl->elf, &dst, &src,
|
||||||
|
+ elf_getident (ebl->elf, NULL)[EI_DATA]) == NULL)
|
||||||
|
+ {
|
||||||
|
+ printf ("%s\n", elf_errmsg (-1));
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ const char *provider = desc + addrs_size;
|
||||||
|
+ const char *pname = memchr (provider, '\0', desc + descsz - provider);
|
||||||
|
+ if (pname == NULL)
|
||||||
|
+ goto invalid_sdt;
|
||||||
|
+
|
||||||
|
+ ++pname;
|
||||||
|
+ const char *args = memchr (pname, '\0', desc + descsz - pname);
|
||||||
|
+ if (args == NULL ||
|
||||||
|
+ memchr (++args, '\0', desc + descsz - pname) != desc + descsz - 1)
|
||||||
|
+ goto invalid_sdt;
|
||||||
|
+
|
||||||
|
+ GElf_Addr pc;
|
||||||
|
+ GElf_Addr base;
|
||||||
|
+ GElf_Addr sem;
|
||||||
|
+ if (gelf_getclass (ebl->elf) == ELFCLASS32)
|
||||||
|
+ {
|
||||||
|
+ pc = addrs.a32[0];
|
||||||
|
+ base = addrs.a32[1];
|
||||||
|
+ sem = addrs.a32[2];
|
||||||
|
+ }
|
||||||
|
+ else
|
||||||
|
+ {
|
||||||
|
+ pc = addrs.a64[0];
|
||||||
|
+ base = addrs.a64[1];
|
||||||
|
+ sem = addrs.a64[2];
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ printf (gettext (" PC: "));
|
||||||
|
+ printf ("%#" PRIx64 ",", pc);
|
||||||
|
+ printf (gettext (" Base: "));
|
||||||
|
+ printf ("%#" PRIx64 ",", base);
|
||||||
|
+ printf (gettext (" Semaphore: "));
|
||||||
|
+ printf ("%#" PRIx64 "\n", sem);
|
||||||
|
+ printf (gettext (" Provider: "));
|
||||||
|
+ printf ("%s,", provider);
|
||||||
|
+ printf (gettext (" Name: "));
|
||||||
|
+ printf ("%s,", pname);
|
||||||
|
+ printf (gettext (" Args: "));
|
||||||
|
+ printf ("'%s'\n", args);
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ switch (type)
|
||||||
|
+ {
|
||||||
|
+ case NT_GNU_BUILD_ID:
|
||||||
|
+ if (strcmp (name, "GNU") == 0 && descsz > 0)
|
||||||
|
+ {
|
||||||
|
+ printf (gettext (" Build ID: "));
|
||||||
|
+ uint_fast32_t i;
|
||||||
|
+ for (i = 0; i < descsz - 1; ++i)
|
||||||
|
+ printf ("%02" PRIx8, (uint8_t) desc[i]);
|
||||||
|
+ printf ("%02" PRIx8 "\n", (uint8_t) desc[i]);
|
||||||
|
+ }
|
||||||
|
+ break;
|
||||||
|
+
|
||||||
|
+ case NT_GNU_GOLD_VERSION:
|
||||||
|
+ if (strcmp (name, "GNU") == 0 && descsz > 0)
|
||||||
|
+ /* A non-null terminated version string. */
|
||||||
|
+ printf (gettext (" Linker version: %.*s\n"),
|
||||||
|
+ (int) descsz, desc);
|
||||||
|
+ break;
|
||||||
|
+
|
||||||
|
+ case NT_GNU_ABI_TAG:
|
||||||
|
+ if (strcmp (name, "GNU") == 0 && descsz >= 8 && descsz % 4 == 0)
|
||||||
|
+ {
|
||||||
|
+ Elf_Data in =
|
||||||
|
+ {
|
||||||
|
+ .d_version = EV_CURRENT,
|
||||||
|
+ .d_type = ELF_T_WORD,
|
||||||
|
+ .d_size = descsz,
|
||||||
|
+ .d_buf = (void *) desc
|
||||||
|
+ };
|
||||||
|
+ /* Normally NT_GNU_ABI_TAG is just 4 words (16 bytes). If it
|
||||||
|
+ is much (4*) larger dynamically allocate memory to convert. */
|
||||||
|
#define FIXED_TAG_BYTES 16
|
||||||
|
- uint32_t sbuf[FIXED_TAG_BYTES];
|
||||||
|
- uint32_t *buf;
|
||||||
|
- if (unlikely (descsz / 4 > FIXED_TAG_BYTES))
|
||||||
|
- {
|
||||||
|
- buf = malloc (descsz);
|
||||||
|
- if (unlikely (buf == NULL))
|
||||||
|
- return;
|
||||||
|
- }
|
||||||
|
- else
|
||||||
|
- buf = sbuf;
|
||||||
|
- Elf_Data out =
|
||||||
|
- {
|
||||||
|
- .d_version = EV_CURRENT,
|
||||||
|
- .d_type = ELF_T_WORD,
|
||||||
|
- .d_size = descsz,
|
||||||
|
- .d_buf = buf
|
||||||
|
- };
|
||||||
|
-
|
||||||
|
- if (elf32_xlatetom (&out, &in, ebl->data) != NULL)
|
||||||
|
- {
|
||||||
|
- const char *os;
|
||||||
|
- switch (buf[0])
|
||||||
|
- {
|
||||||
|
- case ELF_NOTE_OS_LINUX:
|
||||||
|
- os = "Linux";
|
||||||
|
- break;
|
||||||
|
-
|
||||||
|
- case ELF_NOTE_OS_GNU:
|
||||||
|
- os = "GNU";
|
||||||
|
- break;
|
||||||
|
-
|
||||||
|
- case ELF_NOTE_OS_SOLARIS2:
|
||||||
|
- os = "Solaris";
|
||||||
|
- break;
|
||||||
|
-
|
||||||
|
- case ELF_NOTE_OS_FREEBSD:
|
||||||
|
- os = "FreeBSD";
|
||||||
|
- break;
|
||||||
|
-
|
||||||
|
- default:
|
||||||
|
- os = "???";
|
||||||
|
- break;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- printf (gettext (" OS: %s, ABI: "), os);
|
||||||
|
- for (size_t cnt = 1; cnt < descsz / 4; ++cnt)
|
||||||
|
- {
|
||||||
|
- if (cnt > 1)
|
||||||
|
- putchar_unlocked ('.');
|
||||||
|
- printf ("%" PRIu32, buf[cnt]);
|
||||||
|
- }
|
||||||
|
- putchar_unlocked ('\n');
|
||||||
|
- }
|
||||||
|
- if (descsz / 4 > FIXED_TAG_BYTES)
|
||||||
|
- free (buf);
|
||||||
|
- break;
|
||||||
|
- }
|
||||||
|
- /* FALLTHROUGH */
|
||||||
|
-
|
||||||
|
- default:
|
||||||
|
- /* Unknown type. */
|
||||||
|
- break;
|
||||||
|
- }
|
||||||
|
+ uint32_t sbuf[FIXED_TAG_BYTES];
|
||||||
|
+ uint32_t *buf;
|
||||||
|
+ if (unlikely (descsz / 4 > FIXED_TAG_BYTES))
|
||||||
|
+ {
|
||||||
|
+ buf = malloc (descsz);
|
||||||
|
+ if (unlikely (buf == NULL))
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+ else
|
||||||
|
+ buf = sbuf;
|
||||||
|
+ Elf_Data out =
|
||||||
|
+ {
|
||||||
|
+ .d_version = EV_CURRENT,
|
||||||
|
+ .d_type = ELF_T_WORD,
|
||||||
|
+ .d_size = descsz,
|
||||||
|
+ .d_buf = buf
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ if (elf32_xlatetom (&out, &in, ebl->data) != NULL)
|
||||||
|
+ {
|
||||||
|
+ const char *os;
|
||||||
|
+ switch (buf[0])
|
||||||
|
+ {
|
||||||
|
+ case ELF_NOTE_OS_LINUX:
|
||||||
|
+ os = "Linux";
|
||||||
|
+ break;
|
||||||
|
+
|
||||||
|
+ case ELF_NOTE_OS_GNU:
|
||||||
|
+ os = "GNU";
|
||||||
|
+ break;
|
||||||
|
+
|
||||||
|
+ case ELF_NOTE_OS_SOLARIS2:
|
||||||
|
+ os = "Solaris";
|
||||||
|
+ break;
|
||||||
|
+
|
||||||
|
+ case ELF_NOTE_OS_FREEBSD:
|
||||||
|
+ os = "FreeBSD";
|
||||||
|
+ break;
|
||||||
|
+
|
||||||
|
+ default:
|
||||||
|
+ os = "???";
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ printf (gettext (" OS: %s, ABI: "), os);
|
||||||
|
+ for (size_t cnt = 1; cnt < descsz / 4; ++cnt)
|
||||||
|
+ {
|
||||||
|
+ if (cnt > 1)
|
||||||
|
+ putchar_unlocked ('.');
|
||||||
|
+ printf ("%" PRIu32, buf[cnt]);
|
||||||
|
+ }
|
||||||
|
+ putchar_unlocked ('\n');
|
||||||
|
+ }
|
||||||
|
+ if (descsz / 4 > FIXED_TAG_BYTES)
|
||||||
|
+ free (buf);
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
+ /* FALLTHROUGH */
|
||||||
|
+
|
||||||
|
+ default:
|
||||||
|
+ /* Unknown type. */
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
--
|
||||||
|
cgit v0.12
|
||||||
|
|
||||||
@@ -34,6 +34,7 @@ SRC_URI += "\
|
|||||||
file://Fix_elf_cvt_gunhash.patch \
|
file://Fix_elf_cvt_gunhash.patch \
|
||||||
file://elf_begin.c-CVE-2014-9447-fix.patch \
|
file://elf_begin.c-CVE-2014-9447-fix.patch \
|
||||||
file://fix-build-gcc-4.8.patch \
|
file://fix-build-gcc-4.8.patch \
|
||||||
|
file://gcc6.patch \
|
||||||
"
|
"
|
||||||
# Only apply when building uclibc based target recipe
|
# Only apply when building uclibc based target recipe
|
||||||
SRC_URI_append_libc-uclibc = " file://uclibc-support-for-elfutils-0.148.patch"
|
SRC_URI_append_libc-uclibc = " file://uclibc-support-for-elfutils-0.148.patch"
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ SRC_URI += "\
|
|||||||
file://0001-fix-a-stack-usage-warning.patch \
|
file://0001-fix-a-stack-usage-warning.patch \
|
||||||
file://aarch64_uio.patch \
|
file://aarch64_uio.patch \
|
||||||
file://shadow.patch \
|
file://shadow.patch \
|
||||||
|
file://libebl-Fix-missing-brackets-around-if-statement-body.patch \
|
||||||
"
|
"
|
||||||
|
|
||||||
# pick the patch from debian
|
# pick the patch from debian
|
||||||
|
|||||||
@@ -90,6 +90,8 @@ SRC_URI = "\
|
|||||||
file://0072-support-ffile-prefix-map.patch \
|
file://0072-support-ffile-prefix-map.patch \
|
||||||
file://0073-Reuse-fdebug-prefix-map-to-replace-ffile-prefix-map.patch \
|
file://0073-Reuse-fdebug-prefix-map-to-replace-ffile-prefix-map.patch \
|
||||||
file://0074-fdebug-prefix-map-support-to-remap-relative-path.patch \
|
file://0074-fdebug-prefix-map-support-to-remap-relative-path.patch \
|
||||||
|
file://0075-libgcc-use-ldflags.patch \
|
||||||
|
file://0076-Fix-build-with-gcc-6.patch \
|
||||||
"
|
"
|
||||||
SRC_URI[md5sum] = "6f831b4d251872736e8e9cc09746f327"
|
SRC_URI[md5sum] = "6f831b4d251872736e8e9cc09746f327"
|
||||||
SRC_URI[sha256sum] = "2332b2a5a321b57508b9031354a8503af6fdfb868b8c1748d33028d100a8b67e"
|
SRC_URI[sha256sum] = "2332b2a5a321b57508b9031354a8503af6fdfb868b8c1748d33028d100a8b67e"
|
||||||
|
|||||||
@@ -0,0 +1,16 @@
|
|||||||
|
Link libgcc using LDFLAGS, not just SHLIB_LDFLAGS
|
||||||
|
|
||||||
|
Signed-off-by: Christopher Larson <chris_larson@mentor.com>
|
||||||
|
Upstream-Status: Pending
|
||||||
|
|
||||||
|
--- gcc-5.3.0.orig/libgcc/config/t-slibgcc
|
||||||
|
+++ gcc-5.3.0/libgcc/config/t-slibgcc
|
||||||
|
@@ -32,7 +32,7 @@ SHLIB_INSTALL_SOLINK = $(LN_S) $(SHLIB_S
|
||||||
|
$(DESTDIR)$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK)
|
||||||
|
|
||||||
|
SHLIB_LINK = $(CC) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \
|
||||||
|
- $(SHLIB_LDFLAGS) \
|
||||||
|
+ $(LDFLAGS) $(SHLIB_LDFLAGS) \
|
||||||
|
-o $(SHLIB_DIR)/$(SHLIB_SONAME).tmp @multilib_flags@ \
|
||||||
|
$(SHLIB_OBJS) $(SHLIB_LC) && \
|
||||||
|
rm -f $(SHLIB_DIR)/$(SHLIB_SOLINK) && \
|
||||||
@@ -0,0 +1,151 @@
|
|||||||
|
From efdf2b53b907c96ad3f00275588eb311335d0c91 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Ioan-Adrian Ratiu <adrian.ratiu@ni.com>
|
||||||
|
Date: Thu, 12 May 2016 15:24:25 +0300
|
||||||
|
Subject: [PATCH] Fix build with gcc 6
|
||||||
|
|
||||||
|
* Make-lang.in: Invoke gperf with -L C++.
|
||||||
|
* cfns.gperf: Remove prototypes for hash and libc_name_p
|
||||||
|
inlines.
|
||||||
|
* cfns.h: Regenerated.
|
||||||
|
* except.c (nothrow_libfn_p): Adjust.
|
||||||
|
|
||||||
|
svn rev: r233572
|
||||||
|
|
||||||
|
Upstream-status: Backport [gcc 4.9]
|
||||||
|
|
||||||
|
Signed-off-by: Ioan-Adrian Ratiu <adrian.ratiu@ni.com>
|
||||||
|
---
|
||||||
|
gcc/cp/Make-lang.in | 2 +-
|
||||||
|
gcc/cp/cfns.gperf | 10 ++--------
|
||||||
|
gcc/cp/cfns.h | 41 ++++++++++++++---------------------------
|
||||||
|
gcc/cp/except.c | 3 ++-
|
||||||
|
4 files changed, 19 insertions(+), 37 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/gcc/cp/Make-lang.in b/gcc/cp/Make-lang.in
|
||||||
|
index bd1c1d7..a0ea0d4 100644
|
||||||
|
--- a/gcc/cp/Make-lang.in
|
||||||
|
+++ b/gcc/cp/Make-lang.in
|
||||||
|
@@ -111,7 +111,7 @@ else
|
||||||
|
# deleting the $(srcdir)/cp/cfns.h file.
|
||||||
|
$(srcdir)/cp/cfns.h:
|
||||||
|
endif
|
||||||
|
- gperf -o -C -E -k '1-6,$$' -j1 -D -N 'libc_name_p' -L ANSI-C \
|
||||||
|
+ gperf -o -C -E -k '1-6,$$' -j1 -D -N 'libc_name_p' -L C++ \
|
||||||
|
$(srcdir)/cp/cfns.gperf --output-file $(srcdir)/cp/cfns.h
|
||||||
|
|
||||||
|
#
|
||||||
|
diff --git a/gcc/cp/cfns.gperf b/gcc/cp/cfns.gperf
|
||||||
|
index 05ca753..d9b16b8 100644
|
||||||
|
--- a/gcc/cp/cfns.gperf
|
||||||
|
+++ b/gcc/cp/cfns.gperf
|
||||||
|
@@ -1,3 +1,5 @@
|
||||||
|
+%language=C++
|
||||||
|
+%define class-name libc_name
|
||||||
|
%{
|
||||||
|
/* Copyright (C) 2000-2014 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
@@ -16,14 +18,6 @@ for more details.
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with GCC; see the file COPYING3. If not see
|
||||||
|
<http://www.gnu.org/licenses/>. */
|
||||||
|
-#ifdef __GNUC__
|
||||||
|
-__inline
|
||||||
|
-#endif
|
||||||
|
-static unsigned int hash (const char *, unsigned int);
|
||||||
|
-#ifdef __GNUC__
|
||||||
|
-__inline
|
||||||
|
-#endif
|
||||||
|
-const char * libc_name_p (const char *, unsigned int);
|
||||||
|
%}
|
||||||
|
%%
|
||||||
|
# The standard C library functions, for feeding to gperf; the result is used
|
||||||
|
diff --git a/gcc/cp/cfns.h b/gcc/cp/cfns.h
|
||||||
|
index c845ddf..65801d1 100644
|
||||||
|
--- a/gcc/cp/cfns.h
|
||||||
|
+++ b/gcc/cp/cfns.h
|
||||||
|
@@ -1,5 +1,5 @@
|
||||||
|
-/* ANSI-C code produced by gperf version 3.0.3 */
|
||||||
|
-/* Command-line: gperf -o -C -E -k '1-6,$' -j1 -D -N libc_name_p -L ANSI-C cfns.gperf */
|
||||||
|
+/* C++ code produced by gperf version 3.0.4 */
|
||||||
|
+/* Command-line: gperf -o -C -E -k '1-6,$' -j1 -D -N libc_name_p -L C++ --output-file cfns.h cfns.gperf */
|
||||||
|
|
||||||
|
#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
|
||||||
|
&& ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
|
||||||
|
@@ -28,7 +28,7 @@
|
||||||
|
#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
-#line 1 "cfns.gperf"
|
||||||
|
+#line 3 "cfns.gperf"
|
||||||
|
|
||||||
|
/* Copyright (C) 2000-2014 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
@@ -47,25 +47,18 @@ for more details.
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with GCC; see the file COPYING3. If not see
|
||||||
|
<http://www.gnu.org/licenses/>. */
|
||||||
|
-#ifdef __GNUC__
|
||||||
|
-__inline
|
||||||
|
-#endif
|
||||||
|
-static unsigned int hash (const char *, unsigned int);
|
||||||
|
-#ifdef __GNUC__
|
||||||
|
-__inline
|
||||||
|
-#endif
|
||||||
|
-const char * libc_name_p (const char *, unsigned int);
|
||||||
|
/* maximum key range = 391, duplicates = 0 */
|
||||||
|
|
||||||
|
-#ifdef __GNUC__
|
||||||
|
-__inline
|
||||||
|
-#else
|
||||||
|
-#ifdef __cplusplus
|
||||||
|
-inline
|
||||||
|
-#endif
|
||||||
|
-#endif
|
||||||
|
-static unsigned int
|
||||||
|
-hash (register const char *str, register unsigned int len)
|
||||||
|
+class libc_name
|
||||||
|
+{
|
||||||
|
+private:
|
||||||
|
+ static inline unsigned int hash (const char *str, unsigned int len);
|
||||||
|
+public:
|
||||||
|
+ static const char *libc_name_p (const char *str, unsigned int len);
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+inline unsigned int
|
||||||
|
+libc_name::hash (register const char *str, register unsigned int len)
|
||||||
|
{
|
||||||
|
static const unsigned short asso_values[] =
|
||||||
|
{
|
||||||
|
@@ -122,14 +115,8 @@ hash (register const char *str, register unsigned int len)
|
||||||
|
return hval + asso_values[(unsigned char)str[len - 1]];
|
||||||
|
}
|
||||||
|
|
||||||
|
-#ifdef __GNUC__
|
||||||
|
-__inline
|
||||||
|
-#ifdef __GNUC_STDC_INLINE__
|
||||||
|
-__attribute__ ((__gnu_inline__))
|
||||||
|
-#endif
|
||||||
|
-#endif
|
||||||
|
const char *
|
||||||
|
-libc_name_p (register const char *str, register unsigned int len)
|
||||||
|
+libc_name::libc_name_p (register const char *str, register unsigned int len)
|
||||||
|
{
|
||||||
|
enum
|
||||||
|
{
|
||||||
|
diff --git a/gcc/cp/except.c b/gcc/cp/except.c
|
||||||
|
index 221971a..32340f5 100644
|
||||||
|
--- a/gcc/cp/except.c
|
||||||
|
+++ b/gcc/cp/except.c
|
||||||
|
@@ -1030,7 +1030,8 @@ nothrow_libfn_p (const_tree fn)
|
||||||
|
unless the system headers are playing rename tricks, and if
|
||||||
|
they are, we don't want to be confused by them. */
|
||||||
|
id = DECL_NAME (fn);
|
||||||
|
- return !!libc_name_p (IDENTIFIER_POINTER (id), IDENTIFIER_LENGTH (id));
|
||||||
|
+ return !!libc_name::libc_name_p (IDENTIFIER_POINTER (id),
|
||||||
|
+ IDENTIFIER_LENGTH (id));
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Returns nonzero if an exception of type FROM will be caught by a
|
||||||
|
--
|
||||||
|
2.8.2
|
||||||
|
|
||||||
@@ -88,6 +88,12 @@ SRC_URI = "\
|
|||||||
file://0056-Enable-libc-provide-ssp-and-gcc_cv_target_dl_iterate.patch \
|
file://0056-Enable-libc-provide-ssp-and-gcc_cv_target_dl_iterate.patch \
|
||||||
file://0057-unwind-fix-for-musl.patch \
|
file://0057-unwind-fix-for-musl.patch \
|
||||||
file://0058-fdebug-prefix-map-support-to-remap-relative-path.patch \
|
file://0058-fdebug-prefix-map-support-to-remap-relative-path.patch \
|
||||||
|
file://0059-libgcc-use-ldflags.patch \
|
||||||
|
file://0060-fix-build-when-using-gcc6.patch \
|
||||||
|
file://CVE-2016-4488.patch \
|
||||||
|
file://CVE-2016-4489.patch \
|
||||||
|
file://CVE-2016-2226.patch \
|
||||||
|
file://CVE-2016-4490.patch \
|
||||||
"
|
"
|
||||||
|
|
||||||
BACKPORTS = ""
|
BACKPORTS = ""
|
||||||
|
|||||||
@@ -15,10 +15,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|||||||
gcc/ginclude/stddef.h | 3 ++
|
gcc/ginclude/stddef.h | 3 ++
|
||||||
6 files changed, 110 insertions(+), 13 deletions(-)
|
6 files changed, 110 insertions(+), 13 deletions(-)
|
||||||
|
|
||||||
diff --git a/gcc/config.gcc b/gcc/config.gcc
|
Index: gcc-5.4.0/gcc/config.gcc
|
||||||
index 3825bd5..39ce047 100644
|
===================================================================
|
||||||
--- a/gcc/config.gcc
|
--- gcc-5.4.0.orig/gcc/config.gcc
|
||||||
+++ b/gcc/config.gcc
|
+++ gcc-5.4.0/gcc/config.gcc
|
||||||
@@ -575,7 +575,7 @@ case ${target} in
|
@@ -575,7 +575,7 @@ case ${target} in
|
||||||
esac
|
esac
|
||||||
|
|
||||||
@@ -50,11 +50,11 @@ index 3825bd5..39ce047 100644
|
|||||||
if test x${enable_secureplt} = xyes; then
|
if test x${enable_secureplt} = xyes; then
|
||||||
tm_file="rs6000/secureplt.h ${tm_file}"
|
tm_file="rs6000/secureplt.h ${tm_file}"
|
||||||
fi
|
fi
|
||||||
diff --git a/gcc/config/linux.h b/gcc/config/linux.h
|
Index: gcc-5.4.0/gcc/config/linux.h
|
||||||
index 22b9be5..ca9a17f 100644
|
===================================================================
|
||||||
--- a/gcc/config/linux.h
|
--- gcc-5.4.0.orig/gcc/config/linux.h
|
||||||
+++ b/gcc/config/linux.h
|
+++ gcc-5.4.0/gcc/config/linux.h
|
||||||
@@ -32,10 +32,12 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
@@ -32,10 +32,12 @@ see the files COPYING3 and COPYING.RUNTI
|
||||||
#define OPTION_GLIBC (DEFAULT_LIBC == LIBC_GLIBC)
|
#define OPTION_GLIBC (DEFAULT_LIBC == LIBC_GLIBC)
|
||||||
#define OPTION_UCLIBC (DEFAULT_LIBC == LIBC_UCLIBC)
|
#define OPTION_UCLIBC (DEFAULT_LIBC == LIBC_UCLIBC)
|
||||||
#define OPTION_BIONIC (DEFAULT_LIBC == LIBC_BIONIC)
|
#define OPTION_BIONIC (DEFAULT_LIBC == LIBC_BIONIC)
|
||||||
@@ -67,7 +67,7 @@ index 22b9be5..ca9a17f 100644
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define GNU_USER_TARGET_OS_CPP_BUILTINS() \
|
#define GNU_USER_TARGET_OS_CPP_BUILTINS() \
|
||||||
@@ -53,18 +55,21 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
@@ -53,18 +55,21 @@ see the files COPYING3 and COPYING.RUNTI
|
||||||
uClibc or Bionic is the default C library and whether
|
uClibc or Bionic is the default C library and whether
|
||||||
-muclibc or -mglibc or -mbionic has been passed to change the default. */
|
-muclibc or -mglibc or -mbionic has been passed to change the default. */
|
||||||
|
|
||||||
@@ -97,7 +97,7 @@ index 22b9be5..ca9a17f 100644
|
|||||||
#else
|
#else
|
||||||
#error "Unsupported DEFAULT_LIBC"
|
#error "Unsupported DEFAULT_LIBC"
|
||||||
#endif /* DEFAULT_LIBC */
|
#endif /* DEFAULT_LIBC */
|
||||||
@@ -84,16 +89,16 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
@@ -84,16 +89,16 @@ see the files COPYING3 and COPYING.RUNTI
|
||||||
|
|
||||||
#define GNU_USER_DYNAMIC_LINKER \
|
#define GNU_USER_DYNAMIC_LINKER \
|
||||||
CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER, \
|
CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER, \
|
||||||
@@ -118,7 +118,7 @@ index 22b9be5..ca9a17f 100644
|
|||||||
|
|
||||||
/* Whether we have Bionic libc runtime */
|
/* Whether we have Bionic libc runtime */
|
||||||
#undef TARGET_HAS_BIONIC
|
#undef TARGET_HAS_BIONIC
|
||||||
@@ -123,3 +128,74 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
@@ -123,3 +128,74 @@ see the files COPYING3 and COPYING.RUNTI
|
||||||
# define TARGET_LIBC_HAS_FUNCTION linux_libc_has_function
|
# define TARGET_LIBC_HAS_FUNCTION linux_libc_has_function
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@@ -193,32 +193,35 @@ index 22b9be5..ca9a17f 100644
|
|||||||
+ { 0, 0, 0, 0, 0, 0 } \
|
+ { 0, 0, 0, 0, 0, 0 } \
|
||||||
+ }
|
+ }
|
||||||
+#endif
|
+#endif
|
||||||
diff --git a/gcc/config/linux.opt b/gcc/config/linux.opt
|
Index: gcc-5.4.0/gcc/config/linux.opt
|
||||||
index c054338..9334f74 100644
|
===================================================================
|
||||||
--- a/gcc/config/linux.opt
|
--- gcc-5.4.0.orig/gcc/config/linux.opt
|
||||||
+++ b/gcc/config/linux.opt
|
+++ gcc-5.4.0/gcc/config/linux.opt
|
||||||
@@ -30,3 +30,7 @@ Use GNU C library
|
@@ -28,5 +28,9 @@ Target Report RejectNegative Var(linux_l
|
||||||
|
Use GNU C library
|
||||||
|
|
||||||
muclibc
|
muclibc
|
||||||
Target Report RejectNegative Var(linux_libc,LIBC_UCLIBC) Negative(mbionic)
|
-Target Report RejectNegative Var(linux_libc,LIBC_UCLIBC) Negative(mbionic)
|
||||||
|
+Target Report RejectNegative Var(linux_libc,LIBC_UCLIBC) Negative(mmusl)
|
||||||
Use uClibc C library
|
Use uClibc C library
|
||||||
+
|
+
|
||||||
+mmusl
|
+mmusl
|
||||||
+Target Report RejectNegative Var(linux_libc,LIBC_MUSL) Negative(mglibc)
|
+Target Report RejectNegative Var(linux_libc,LIBC_MUSL) Negative(mbionic)
|
||||||
+Use musl C library
|
+Use musl C library
|
||||||
diff --git a/gcc/config/rs6000/secureplt.h b/gcc/config/rs6000/secureplt.h
|
Index: gcc-5.4.0/gcc/config/rs6000/secureplt.h
|
||||||
index b463463..77edf2a 100644
|
===================================================================
|
||||||
--- a/gcc/config/rs6000/secureplt.h
|
--- gcc-5.4.0.orig/gcc/config/rs6000/secureplt.h
|
||||||
+++ b/gcc/config/rs6000/secureplt.h
|
+++ gcc-5.4.0/gcc/config/rs6000/secureplt.h
|
||||||
@@ -18,3 +18,4 @@ along with GCC; see the file COPYING3. If not see
|
@@ -18,3 +18,4 @@ along with GCC; see the file COPYING3.
|
||||||
<http://www.gnu.org/licenses/>. */
|
<http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
#define CC1_SECURE_PLT_DEFAULT_SPEC "-msecure-plt"
|
#define CC1_SECURE_PLT_DEFAULT_SPEC "-msecure-plt"
|
||||||
+#define LINK_SECURE_PLT_DEFAULT_SPEC "--secure-plt"
|
+#define LINK_SECURE_PLT_DEFAULT_SPEC "--secure-plt"
|
||||||
diff --git a/gcc/config/rs6000/sysv4.h b/gcc/config/rs6000/sysv4.h
|
Index: gcc-5.4.0/gcc/config/rs6000/sysv4.h
|
||||||
index c6c31dc..7cd07e0 100644
|
===================================================================
|
||||||
--- a/gcc/config/rs6000/sysv4.h
|
--- gcc-5.4.0.orig/gcc/config/rs6000/sysv4.h
|
||||||
+++ b/gcc/config/rs6000/sysv4.h
|
+++ gcc-5.4.0/gcc/config/rs6000/sysv4.h
|
||||||
@@ -538,6 +538,10 @@ ENDIAN_SELECT(" -mbig", " -mlittle", DEFAULT_ASM_ENDIAN)
|
@@ -538,6 +538,10 @@ ENDIAN_SELECT(" -mbig", " -mlittle", DEF
|
||||||
#define CC1_SECURE_PLT_DEFAULT_SPEC ""
|
#define CC1_SECURE_PLT_DEFAULT_SPEC ""
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -237,10 +240,10 @@ index c6c31dc..7cd07e0 100644
|
|||||||
{ "cpp_os_ads", CPP_OS_ADS_SPEC }, \
|
{ "cpp_os_ads", CPP_OS_ADS_SPEC }, \
|
||||||
{ "cpp_os_yellowknife", CPP_OS_YELLOWKNIFE_SPEC }, \
|
{ "cpp_os_yellowknife", CPP_OS_YELLOWKNIFE_SPEC }, \
|
||||||
{ "cpp_os_mvme", CPP_OS_MVME_SPEC }, \
|
{ "cpp_os_mvme", CPP_OS_MVME_SPEC }, \
|
||||||
diff --git a/gcc/ginclude/stddef.h b/gcc/ginclude/stddef.h
|
Index: gcc-5.4.0/gcc/ginclude/stddef.h
|
||||||
index f20a41b..eb879ef 100644
|
===================================================================
|
||||||
--- a/gcc/ginclude/stddef.h
|
--- gcc-5.4.0.orig/gcc/ginclude/stddef.h
|
||||||
+++ b/gcc/ginclude/stddef.h
|
+++ gcc-5.4.0/gcc/ginclude/stddef.h
|
||||||
@@ -184,6 +184,7 @@ typedef __PTRDIFF_TYPE__ ptrdiff_t;
|
@@ -184,6 +184,7 @@ typedef __PTRDIFF_TYPE__ ptrdiff_t;
|
||||||
#ifndef _GCC_SIZE_T
|
#ifndef _GCC_SIZE_T
|
||||||
#ifndef _SIZET_
|
#ifndef _SIZET_
|
||||||
@@ -265,6 +268,3 @@ index f20a41b..eb879ef 100644
|
|||||||
#endif /* __size_t */
|
#endif /* __size_t */
|
||||||
#endif /* _SIZET_ */
|
#endif /* _SIZET_ */
|
||||||
#endif /* _GCC_SIZE_T */
|
#endif /* _GCC_SIZE_T */
|
||||||
--
|
|
||||||
2.6.3
|
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,16 @@
|
|||||||
|
Link libgcc using LDFLAGS, not just SHLIB_LDFLAGS
|
||||||
|
|
||||||
|
Signed-off-by: Christopher Larson <chris_larson@mentor.com>
|
||||||
|
Upstream-Status: Pending
|
||||||
|
|
||||||
|
--- gcc-5.3.0.orig/libgcc/config/t-slibgcc
|
||||||
|
+++ gcc-5.3.0/libgcc/config/t-slibgcc
|
||||||
|
@@ -32,7 +32,7 @@ SHLIB_INSTALL_SOLINK = $(LN_S) $(SHLIB_S
|
||||||
|
$(DESTDIR)$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK)
|
||||||
|
|
||||||
|
SHLIB_LINK = $(CC) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \
|
||||||
|
- $(SHLIB_LDFLAGS) \
|
||||||
|
+ $(LDFLAGS) $(SHLIB_LDFLAGS) \
|
||||||
|
-o $(SHLIB_DIR)/$(SHLIB_SONAME).tmp @multilib_flags@ \
|
||||||
|
$(SHLIB_OBJS) $(SHLIB_LC) && \
|
||||||
|
rm -f $(SHLIB_DIR)/$(SHLIB_SOLINK) && \
|
||||||
@@ -0,0 +1,157 @@
|
|||||||
|
Upstream-Status: Backport
|
||||||
|
|
||||||
|
Signed-off-by: Tim Orling <timothy.t.orling@linux.intel.com>
|
||||||
|
|
||||||
|
From 1e5f1089dec3af328fd03125d6778f666d0bd4e4 Mon Sep 17 00:00:00 2001
|
||||||
|
From: edlinger <edlinger@138bc75d-0d04-0410-961f-82ee72b054a4>
|
||||||
|
Date: Thu, 25 Feb 2016 15:33:50 +0000
|
||||||
|
Subject: [PATCH 1/1] 2016-02-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
|
||||||
|
|
||||||
|
Backported from mainline
|
||||||
|
2016-02-19 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
Bernd Edlinger <bernd.edlinger@hotmail.de>
|
||||||
|
|
||||||
|
* Make-lang.in: Invoke gperf with -L C++.
|
||||||
|
* cfns.gperf: Remove prototypes for hash and libc_name_p
|
||||||
|
inlines.
|
||||||
|
* cfns.h: Regenerated.
|
||||||
|
* except.c (nothrow_libfn_p): Adjust.
|
||||||
|
|
||||||
|
|
||||||
|
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-5-branch@233720 138bc75d-0d04-0410-961f-82ee72b054a4
|
||||||
|
|
||||||
|
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
|
||||||
|
---
|
||||||
|
gcc/cp/Make-lang.in | 2 +-
|
||||||
|
gcc/cp/cfns.gperf | 10 ++--------
|
||||||
|
gcc/cp/cfns.h | 41 ++++++++++++++---------------------------
|
||||||
|
gcc/cp/except.c | 3 ++-
|
||||||
|
5 files changed, 31 insertions(+), 37 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/gcc/cp/Make-lang.in b/gcc/cp/Make-lang.in
|
||||||
|
index e98beb1..b09fb02 100644
|
||||||
|
--- a/gcc/cp/Make-lang.in
|
||||||
|
+++ b/gcc/cp/Make-lang.in
|
||||||
|
@@ -111,7 +111,7 @@ else
|
||||||
|
# deleting the $(srcdir)/cp/cfns.h file.
|
||||||
|
$(srcdir)/cp/cfns.h:
|
||||||
|
endif
|
||||||
|
- gperf -o -C -E -k '1-6,$$' -j1 -D -N 'libc_name_p' -L ANSI-C \
|
||||||
|
+ gperf -o -C -E -k '1-6,$$' -j1 -D -N 'libc_name_p' -L C++ \
|
||||||
|
$(srcdir)/cp/cfns.gperf --output-file $(srcdir)/cp/cfns.h
|
||||||
|
|
||||||
|
#
|
||||||
|
diff --git a/gcc/cp/cfns.gperf b/gcc/cp/cfns.gperf
|
||||||
|
index 68acd3d..214ecf6 100644
|
||||||
|
--- a/gcc/cp/cfns.gperf
|
||||||
|
+++ b/gcc/cp/cfns.gperf
|
||||||
|
@@ -1,3 +1,5 @@
|
||||||
|
+%language=C++
|
||||||
|
+%define class-name libc_name
|
||||||
|
%{
|
||||||
|
/* Copyright (C) 2000-2015 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
@@ -16,14 +18,6 @@ for more details.
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with GCC; see the file COPYING3. If not see
|
||||||
|
<http://www.gnu.org/licenses/>. */
|
||||||
|
-#ifdef __GNUC__
|
||||||
|
-__inline
|
||||||
|
-#endif
|
||||||
|
-static unsigned int hash (const char *, unsigned int);
|
||||||
|
-#ifdef __GNUC__
|
||||||
|
-__inline
|
||||||
|
-#endif
|
||||||
|
-const char * libc_name_p (const char *, unsigned int);
|
||||||
|
%}
|
||||||
|
%%
|
||||||
|
# The standard C library functions, for feeding to gperf; the result is used
|
||||||
|
diff --git a/gcc/cp/cfns.h b/gcc/cp/cfns.h
|
||||||
|
index 1c6665d..596f413 100644
|
||||||
|
--- a/gcc/cp/cfns.h
|
||||||
|
+++ b/gcc/cp/cfns.h
|
||||||
|
@@ -1,5 +1,5 @@
|
||||||
|
-/* ANSI-C code produced by gperf version 3.0.3 */
|
||||||
|
-/* Command-line: gperf -o -C -E -k '1-6,$' -j1 -D -N libc_name_p -L ANSI-C cfns.gperf */
|
||||||
|
+/* C++ code produced by gperf version 3.0.4 */
|
||||||
|
+/* Command-line: gperf -o -C -E -k '1-6,$' -j1 -D -N libc_name_p -L C++ --output-file cfns.h cfns.gperf */
|
||||||
|
|
||||||
|
#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
|
||||||
|
&& ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
|
||||||
|
@@ -28,7 +28,7 @@
|
||||||
|
#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
-#line 1 "cfns.gperf"
|
||||||
|
+#line 3 "cfns.gperf"
|
||||||
|
|
||||||
|
/* Copyright (C) 2000-2015 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
@@ -47,25 +47,18 @@ for more details.
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with GCC; see the file COPYING3. If not see
|
||||||
|
<http://www.gnu.org/licenses/>. */
|
||||||
|
-#ifdef __GNUC__
|
||||||
|
-__inline
|
||||||
|
-#endif
|
||||||
|
-static unsigned int hash (const char *, unsigned int);
|
||||||
|
-#ifdef __GNUC__
|
||||||
|
-__inline
|
||||||
|
-#endif
|
||||||
|
-const char * libc_name_p (const char *, unsigned int);
|
||||||
|
/* maximum key range = 391, duplicates = 0 */
|
||||||
|
|
||||||
|
-#ifdef __GNUC__
|
||||||
|
-__inline
|
||||||
|
-#else
|
||||||
|
-#ifdef __cplusplus
|
||||||
|
-inline
|
||||||
|
-#endif
|
||||||
|
-#endif
|
||||||
|
-static unsigned int
|
||||||
|
-hash (register const char *str, register unsigned int len)
|
||||||
|
+class libc_name
|
||||||
|
+{
|
||||||
|
+private:
|
||||||
|
+ static inline unsigned int hash (const char *str, unsigned int len);
|
||||||
|
+public:
|
||||||
|
+ static const char *libc_name_p (const char *str, unsigned int len);
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+inline unsigned int
|
||||||
|
+libc_name::hash (register const char *str, register unsigned int len)
|
||||||
|
{
|
||||||
|
static const unsigned short asso_values[] =
|
||||||
|
{
|
||||||
|
@@ -122,14 +115,8 @@ hash (register const char *str, register unsigned int len)
|
||||||
|
return hval + asso_values[(unsigned char)str[len - 1]];
|
||||||
|
}
|
||||||
|
|
||||||
|
-#ifdef __GNUC__
|
||||||
|
-__inline
|
||||||
|
-#ifdef __GNUC_STDC_INLINE__
|
||||||
|
-__attribute__ ((__gnu_inline__))
|
||||||
|
-#endif
|
||||||
|
-#endif
|
||||||
|
const char *
|
||||||
|
-libc_name_p (register const char *str, register unsigned int len)
|
||||||
|
+libc_name::libc_name_p (register const char *str, register unsigned int len)
|
||||||
|
{
|
||||||
|
enum
|
||||||
|
{
|
||||||
|
diff --git a/gcc/cp/except.c b/gcc/cp/except.c
|
||||||
|
index 3ff1ce6..2f2e396 100644
|
||||||
|
--- a/gcc/cp/except.c
|
||||||
|
+++ b/gcc/cp/except.c
|
||||||
|
@@ -1040,7 +1040,8 @@ nothrow_libfn_p (const_tree fn)
|
||||||
|
unless the system headers are playing rename tricks, and if
|
||||||
|
they are, we don't want to be confused by them. */
|
||||||
|
id = DECL_NAME (fn);
|
||||||
|
- return !!libc_name_p (IDENTIFIER_POINTER (id), IDENTIFIER_LENGTH (id));
|
||||||
|
+ return !!libc_name::libc_name_p (IDENTIFIER_POINTER (id),
|
||||||
|
+ IDENTIFIER_LENGTH (id));
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Returns nonzero if an exception of type FROM will be caught by a
|
||||||
|
--
|
||||||
|
1.7.1
|
||||||
103
meta/recipes-devtools/gcc/gcc-5.3/CVE-2016-2226.patch
Normal file
103
meta/recipes-devtools/gcc/gcc-5.3/CVE-2016-2226.patch
Normal file
@@ -0,0 +1,103 @@
|
|||||||
|
From b8106f544a7fd485b6959ebd197bdd99a8884416 Mon Sep 17 00:00:00 2001
|
||||||
|
From: bernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4>
|
||||||
|
Date: Fri, 8 Apr 2016 12:10:21 +0000
|
||||||
|
Subject: [PATCH] =?UTF-8?q?Fix=20memory=20allocation=20size=20overflows=20?=
|
||||||
|
=?UTF-8?q?(PR69687,=20patch=20by=20Marcel=20B=C3=B6hme)?=
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
PR c++/69687
|
||||||
|
* cplus-dem.c: Include <limits.h> if available.
|
||||||
|
(INT_MAX): Define if necessary.
|
||||||
|
(remember_type, remember_Ktype, register_Btype, string_need):
|
||||||
|
Abort if we detect cases where we the size of the allocation would
|
||||||
|
overflow.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@234829 138bc75d-0d04-0410-961f-82ee72b054a4
|
||||||
|
Upstream-Status: Backport
|
||||||
|
CVE: CVE-2016-2226
|
||||||
|
|
||||||
|
Signed-off-by: Armin Kuster <akuster@mvista.com>
|
||||||
|
|
||||||
|
---
|
||||||
|
libiberty/ChangeLog | 7 +++++++
|
||||||
|
libiberty/cplus-dem.c | 15 +++++++++++++++
|
||||||
|
2 files changed, 22 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/libiberty/ChangeLog b/libiberty/ChangeLog
|
||||||
|
index 8e82a5f..2a34356 100644
|
||||||
|
--- a/libiberty/ChangeLog
|
||||||
|
+++ b/libiberty/ChangeLog
|
||||||
|
@@ -1,5 +1,12 @@
|
||||||
|
2016-04-08 Marcel Böhme <boehme.marcel@gmail.com>
|
||||||
|
|
||||||
|
+ PR c++/69687
|
||||||
|
+ * cplus-dem.c: Include <limits.h> if available.
|
||||||
|
+ (INT_MAX): Define if necessary.
|
||||||
|
+ (remember_type, remember_Ktype, register_Btype, string_need):
|
||||||
|
+ Abort if we detect cases where we the size of the allocation would
|
||||||
|
+ overflow.
|
||||||
|
+
|
||||||
|
PR c++/70498
|
||||||
|
* cplus-dem.c (gnu_special): Handle case where consume_count returns
|
||||||
|
-1.
|
||||||
|
diff --git a/libiberty/cplus-dem.c b/libiberty/cplus-dem.c
|
||||||
|
index abba234..7514e57 100644
|
||||||
|
--- a/libiberty/cplus-dem.c
|
||||||
|
+++ b/libiberty/cplus-dem.c
|
||||||
|
@@ -56,6 +56,13 @@ void * malloc ();
|
||||||
|
void * realloc ();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
+#ifdef HAVE_LIMITS_H
|
||||||
|
+#include <limits.h>
|
||||||
|
+#endif
|
||||||
|
+#ifndef INT_MAX
|
||||||
|
+# define INT_MAX (int)(((unsigned int) ~0) >> 1) /* 0x7FFFFFFF */
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
#include <demangle.h>
|
||||||
|
#undef CURRENT_DEMANGLING_STYLE
|
||||||
|
#define CURRENT_DEMANGLING_STYLE work->options
|
||||||
|
@@ -4261,6 +4268,8 @@ remember_type (struct work_stuff *work, const char *start, int len)
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
+ if (work -> typevec_size > INT_MAX / 2)
|
||||||
|
+ xmalloc_failed (INT_MAX);
|
||||||
|
work -> typevec_size *= 2;
|
||||||
|
work -> typevec
|
||||||
|
= XRESIZEVEC (char *, work->typevec, work->typevec_size);
|
||||||
|
@@ -4288,6 +4297,8 @@ remember_Ktype (struct work_stuff *work, const char *start, int len)
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
+ if (work -> ksize > INT_MAX / 2)
|
||||||
|
+ xmalloc_failed (INT_MAX);
|
||||||
|
work -> ksize *= 2;
|
||||||
|
work -> ktypevec
|
||||||
|
= XRESIZEVEC (char *, work->ktypevec, work->ksize);
|
||||||
|
@@ -4317,6 +4328,8 @@ register_Btype (struct work_stuff *work)
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
+ if (work -> bsize > INT_MAX / 2)
|
||||||
|
+ xmalloc_failed (INT_MAX);
|
||||||
|
work -> bsize *= 2;
|
||||||
|
work -> btypevec
|
||||||
|
= XRESIZEVEC (char *, work->btypevec, work->bsize);
|
||||||
|
@@ -4771,6 +4784,8 @@ string_need (string *s, int n)
|
||||||
|
else if (s->e - s->p < n)
|
||||||
|
{
|
||||||
|
tem = s->p - s->b;
|
||||||
|
+ if (n > INT_MAX / 2 - tem)
|
||||||
|
+ xmalloc_failed (INT_MAX);
|
||||||
|
n += tem;
|
||||||
|
n *= 2;
|
||||||
|
s->b = XRESIZEVEC (char, s->b, n);
|
||||||
|
--
|
||||||
|
2.3.5
|
||||||
|
|
||||||
73
meta/recipes-devtools/gcc/gcc-5.3/CVE-2016-4488.patch
Normal file
73
meta/recipes-devtools/gcc/gcc-5.3/CVE-2016-4488.patch
Normal file
@@ -0,0 +1,73 @@
|
|||||||
|
From be3004dc350a820a5b0320b34bd05673ba534058 Mon Sep 17 00:00:00 2001
|
||||||
|
From: law <law@138bc75d-0d04-0410-961f-82ee72b054a4>
|
||||||
|
Date: Thu, 31 Mar 2016 17:20:53 +0000
|
||||||
|
Subject: [PATCH] * cplus-dem.c (squangle_mop_up): Zero bsize/ksize
|
||||||
|
after freeing btypevec/ktypevec. * testsuite/demangle-expected: Add
|
||||||
|
coverage tests.
|
||||||
|
|
||||||
|
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@234645 138bc75d-0d04-0410-961f-82ee72b054a4
|
||||||
|
|
||||||
|
Upstream-Status: Backport
|
||||||
|
CVE: CVE-2016-4488
|
||||||
|
|
||||||
|
patched ChangeLog and demangle-expected as patch is from tip.
|
||||||
|
Signed-off-by: Armin Kuster <akuster@mvista.com>
|
||||||
|
|
||||||
|
|
||||||
|
---
|
||||||
|
libiberty/ChangeLog | 7 +++++++
|
||||||
|
libiberty/cplus-dem.c | 2 ++
|
||||||
|
libiberty/testsuite/demangle-expected | 10 ++++++++++
|
||||||
|
3 files changed, 19 insertions(+)
|
||||||
|
|
||||||
|
Index: gcc-5.3.0/libiberty/cplus-dem.c
|
||||||
|
===================================================================
|
||||||
|
--- gcc-5.3.0.orig/libiberty/cplus-dem.c
|
||||||
|
+++ gcc-5.3.0/libiberty/cplus-dem.c
|
||||||
|
@@ -1237,11 +1237,13 @@ squangle_mop_up (struct work_stuff *work
|
||||||
|
{
|
||||||
|
free ((char *) work -> btypevec);
|
||||||
|
work->btypevec = NULL;
|
||||||
|
+ work->bsize = 0;
|
||||||
|
}
|
||||||
|
if (work -> ktypevec != NULL)
|
||||||
|
{
|
||||||
|
free ((char *) work -> ktypevec);
|
||||||
|
work->ktypevec = NULL;
|
||||||
|
+ work->ksize = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Index: gcc-5.3.0/libiberty/testsuite/demangle-expected
|
||||||
|
===================================================================
|
||||||
|
--- gcc-5.3.0.orig/libiberty/testsuite/demangle-expected
|
||||||
|
+++ gcc-5.3.0/libiberty/testsuite/demangle-expected
|
||||||
|
@@ -4356,3 +4356,13 @@ _QueueNotification_QueueController__$4PP
|
||||||
|
--format=gnu-v3
|
||||||
|
_Z1fSsB3fooS_
|
||||||
|
f(std::string[abi:foo], std::string[abi:foo])
|
||||||
|
+#
|
||||||
|
+# Tests a use-after-free problem
|
||||||
|
+
|
||||||
|
+_Q.__0
|
||||||
|
+::Q.(void)
|
||||||
|
+#
|
||||||
|
+# Tests a use-after-free problem
|
||||||
|
+
|
||||||
|
+_Q10-__9cafebabe.
|
||||||
|
+cafebabe.::-(void)
|
||||||
|
Index: gcc-5.3.0/libiberty/ChangeLog
|
||||||
|
===================================================================
|
||||||
|
--- gcc-5.3.0.orig/libiberty/ChangeLog
|
||||||
|
+++ gcc-5.3.0/libiberty/ChangeLog
|
||||||
|
@@ -1,3 +1,10 @@
|
||||||
|
+2016-03-31 Mikhail Maltsev <maltsevm@gmail.com>
|
||||||
|
+ Marcel Bohme boehme.marcel@gmail.com
|
||||||
|
+
|
||||||
|
+ * cplus-dem.c (squangle_mop_up): Zero bsize/ksize after freeing
|
||||||
|
+ btypevec/ktypevec.
|
||||||
|
+ * testsuite/demangle-expected: Add coverage tests.
|
||||||
|
+
|
||||||
|
2015-12-04 Release Manager
|
||||||
|
|
||||||
|
* GCC 5.3.0 released.
|
||||||
56
meta/recipes-devtools/gcc/gcc-5.3/CVE-2016-4489.patch
Normal file
56
meta/recipes-devtools/gcc/gcc-5.3/CVE-2016-4489.patch
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
From 053ec2207203a194d2ae82e2f164009aad3f14d2 Mon Sep 17 00:00:00 2001
|
||||||
|
From: bernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4>
|
||||||
|
Date: Fri, 8 Apr 2016 12:06:59 +0000
|
||||||
|
Subject: [PATCH] =?UTF-8?q?Handle=20an=20overflow=20case=20(PR70498,=20pat?=
|
||||||
|
=?UTF-8?q?ch=20by=20Marcel=20B=C3=B6hme).?=
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
PR c++/70498
|
||||||
|
* cplus-dem.c (gnu_special): Handle case where consume_count returns
|
||||||
|
-1.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@234828 138bc75d-0d04-0410-961f-82ee72b054a4
|
||||||
|
|
||||||
|
Upstream-Status: Backport
|
||||||
|
CVE: CVE-2016-4489
|
||||||
|
|
||||||
|
Signed-off-by: Armin Kuster <akuster@mvista.com>
|
||||||
|
---
|
||||||
|
libiberty/ChangeLog | 6 ++++++
|
||||||
|
libiberty/cplus-dem.c | 5 +++++
|
||||||
|
2 files changed, 11 insertions(+)
|
||||||
|
|
||||||
|
Index: gcc-5.3.0/libiberty/ChangeLog
|
||||||
|
===================================================================
|
||||||
|
--- gcc-5.3.0.orig/libiberty/ChangeLog
|
||||||
|
+++ gcc-5.3.0/libiberty/ChangeLog
|
||||||
|
@@ -1,3 +1,9 @@
|
||||||
|
+2016-04-08 Marcel Böhme <boehme.marcel@gmail.com>
|
||||||
|
+
|
||||||
|
+ PR c++/70498
|
||||||
|
+ * cplus-dem.c (gnu_special): Handle case where consume_count returns
|
||||||
|
+ -1.
|
||||||
|
+
|
||||||
|
2016-03-31 Mikhail Maltsev <maltsevm@gmail.com>
|
||||||
|
Marcel Bohme boehme.marcel@gmail.com
|
||||||
|
|
||||||
|
Index: gcc-5.3.0/libiberty/cplus-dem.c
|
||||||
|
===================================================================
|
||||||
|
--- gcc-5.3.0.orig/libiberty/cplus-dem.c
|
||||||
|
+++ gcc-5.3.0/libiberty/cplus-dem.c
|
||||||
|
@@ -3001,6 +3001,11 @@ gnu_special (struct work_stuff *work, co
|
||||||
|
success = 1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
+ else if (n == -1)
|
||||||
|
+ {
|
||||||
|
+ success = 0;
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user