<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/poky.git/meta/recipes-devtools/gcc/gcc-cross.inc, branch master-test</title>
<subtitle>Mirror of git.yoctoproject.org/poky</subtitle>
<id>https://git.enea.com/cgit/linux/poky.git/atom?h=master-test</id>
<link rel='self' href='https://git.enea.com/cgit/linux/poky.git/atom?h=master-test'/>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/'/>
<updated>2020-04-26T13:00:50+00:00</updated>
<entry>
<title>gcc: Configure all gccs with --disable-install-libiberty</title>
<updated>2020-04-26T13:00:50+00:00</updated>
<author>
<name>Khem Raj</name>
<email>raj.khem@gmail.com</email>
</author>
<published>2020-04-15T23:18:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=43b340fb2718245a45503772ab95d1b383cba4d5'/>
<id>urn:sha1:43b340fb2718245a45503772ab95d1b383cba4d5</id>
<content type='text'>
OE uses libiberty from binutils, since its properly compiled as pic
archive and applications and other libraries needing libiberty can
properly link with it.

With this option applied, explicit delete of libiberty headers and
libraries is not required in install step, since they wont get installed
in first place.

(From OE-Core rev: fa8a205c69770d23323c9a06373db958af4b34d3)

Signed-off-by: Khem Raj &lt;raj.khem@gmail.com&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>gcc-cross.inc: Remove test runner script generation</title>
<updated>2019-12-06T14:41:28+00:00</updated>
<author>
<name>Nathan Rossi</name>
<email>nathan@nathanrossi.com</email>
</author>
<published>2019-11-30T10:48:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=4e166a5a1ff212b182a4212ffb01b3a97fdfa809'/>
<id>urn:sha1:4e166a5a1ff212b182a4212ffb01b3a97fdfa809</id>
<content type='text'>
Remove the generation of the testgcc script which could be used to run
the gcc test suite against a cross compiler with a remote execution
target. The same functionality can now be achieved with the 'do_check'
task of gcc-runtime or with oe-selftest (for automation of execution
against qemu-user/qemu-system targets).

(From OE-Core rev: 1a6801c4d0850e9f1b6d993f1d6a2492f5bbea85)

Signed-off-by: Nathan Rossi &lt;nathan@nathanrossi.com&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>gcc: Improve build reproduciblity</title>
<updated>2019-12-06T14:41:28+00:00</updated>
<author>
<name>Nathan Rossi</name>
<email>nathan@nathanrossi.com</email>
</author>
<published>2019-11-30T10:47:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=098ef4f019f8fdaba9da08119eddbb12f6cc9b6a'/>
<id>urn:sha1:098ef4f019f8fdaba9da08119eddbb12f6cc9b6a</id>
<content type='text'>
Prevent the gcc embedded checksum from containing a checksum that was
computed with build specific paths. The checksum-options file included
the value of LINKER/LDFLAGS which contains DEBUG_PREFIX_MAP and
STAGING_DIR_TARGET.

(From OE-Core rev: 0ead8cbdfb96c4fcbefd24c6647d0f50599f45b3)

Signed-off-by: Nathan Rossi &lt;nathan@nathanrossi.com&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>gcc-cross.inc: Prevent native sysroot from leaking into configargs.h</title>
<updated>2019-11-29T17:43:40+00:00</updated>
<author>
<name>Nathan Rossi</name>
<email>nathan@nathanrossi.com</email>
</author>
<published>2019-11-25T06:58:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=decb74d362849ece8f93f40c1c36cbcbcd188927'/>
<id>urn:sha1:decb74d362849ece8f93f40c1c36cbcbcd188927</id>
<content type='text'>
Prevent the native(sdk) sysroot path from leaking into configargs.h. The
configargs.h header is intended to be static and unchanged as the
content is used as a means of determining that a gcc plugin is built for
the same gcc. This also effects the output of 'gcc --version'. Due to
per recipe sysroots and staging, the sysroot path would be replaced with
the sysroot local to the recipe thus changing the content of
configargs.h.

The sysroot path is replaced with a generic "/host" prefix which
represents the host sysroot (e.g. native or nativesdk).

(From OE-Core rev: 84a78f46d59447eeec3d69532a7506148f64c979)

Signed-off-by: Nathan Rossi &lt;nathan@nathanrossi.com&gt;
Signed-off-by: Ross Burton &lt;ross.burton@intel.com&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>gcc-cross.inc: Process binaries in build dir to be relocatable</title>
<updated>2019-09-16T22:02:43+00:00</updated>
<author>
<name>Nathan Rossi</name>
<email>nathan@nathanrossi.com</email>
</author>
<published>2019-09-11T14:13:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=0c19c093358fa65d93c86cc8978fa50b5bd97026'/>
<id>urn:sha1:0c19c093358fa65d93c86cc8978fa50b5bd97026</id>
<content type='text'>
Process binaries within the build directory before stashing to be
relocatable with ORIGIN relative rpaths. This corrects issues with
rpaths being invalid when trying to use the binaries from an unstashed
build directory (e.g. gcc-runtime).

(From OE-Core rev: 34d9f60a8c2e98fdacbb799af11ec015bc5700f4)

Signed-off-by: Nathan Rossi &lt;nathan@nathanrossi.com&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>gcc-cross: Fix header file corruption problems</title>
<updated>2019-09-06T07:24:41+00:00</updated>
<author>
<name>Richard Purdie</name>
<email>richard.purdie@linuxfoundation.org</email>
</author>
<published>2019-09-04T10:22:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=3f8d0969d12f42da636929b8e406b0a227eae0e1'/>
<id>urn:sha1:3f8d0969d12f42da636929b8e406b0a227eae0e1</id>
<content type='text'>
gcc's makefile can move files, replacing with the contents "timestamp". This
corrupts the headers and breaks things like the gcc testsuite.

Add in a fix to ensure the headers are not corrupted through their hardlink copies.

(From OE-Core rev: 7e75ed5aec86b94fe7fadbed606619f84a2e58e7)

Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>gcc-cross: Clean up fixed-includes</title>
<updated>2019-09-01T21:33:07+00:00</updated>
<author>
<name>Richard Purdie</name>
<email>richard.purdie@linuxfoundation.org</email>
</author>
<published>2019-08-30T15:50:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=77a8ddd87c20a1736d9777f94f42f349b8a7d7ff'/>
<id>urn:sha1:77a8ddd87c20a1736d9777f94f42f349b8a7d7ff</id>
<content type='text'>
We had interesting failures where building gcc-cross-powerpc with 5.0 kernel
headers, then building eudev after moving to 5.2 headers failed.

gcc-cross doesn't rebuild when linux-libc-headers changes due to its
listing in SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS. This shouldn't matter but
fixincludes as adding asm-generic/socket.h to its filtered list which
was then replacing the real header with an older version. This mismatch
lead to build failures.

We trust the Linux kernel headers to be ANSI safe so lets just clear out
any headers and trust the originals to be correct.

(From OE-Core rev: f0fcaa88b7b2977c2cb35b060747442ee9ff3dcd)

Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>recipes: Drop virtual/libc-for-gcc</title>
<updated>2018-12-26T11:19:54+00:00</updated>
<author>
<name>Richard Purdie</name>
<email>richard.purdie@linuxfoundation.org</email>
</author>
<published>2018-12-19T22:29:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=1867965acd5291725069346eda9b239e60af2694'/>
<id>urn:sha1:1867965acd5291725069346eda9b239e60af2694</id>
<content type='text'>
We no longer have special "libc" for gcc so we can rely on plain
virtual/libc and reduce the complexity in the dependencies.

(From OE-Core rev: 122217b421f749b5fef52bea44ad6e04bc8f8d3a)

Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>gcc: Drop the -initial versions of the compiler</title>
<updated>2018-12-26T11:19:54+00:00</updated>
<author>
<name>Richard Purdie</name>
<email>richard.purdie@linuxfoundation.org</email>
</author>
<published>2018-12-19T10:37:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=3436264a32d025f44aecacb8b7498c1157fe80e5'/>
<id>urn:sha1:3436264a32d025f44aecacb8b7498c1157fe80e5</id>
<content type='text'>
Separated out from the previous commit for clarity, this simply drops
all the -inital pieces of gcc which are no longer needed after the
previous commit.

(From OE-Core rev: d84971928b68efddbdb6344b1021d998c9e26adb)

Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>gcc: Drop gcc-cross-initial and use gcc-cross instead</title>
<updated>2018-12-26T11:19:54+00:00</updated>
<author>
<name>Richard Purdie</name>
<email>richard.purdie@linuxfoundation.org</email>
</author>
<published>2018-12-19T00:09:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=0afd3ac3ada35dd986aaf3be41d7177dc6b71ade'/>
<id>urn:sha1:0afd3ac3ada35dd986aaf3be41d7177dc6b71ade</id>
<content type='text'>
We need a libgcc to build glibc. Tranditionally we therefore build
a non-threaded and non-shared compiler (gcc-cross-initial), then use
that to build libgcc-initial which is used to build glibc which we can
then build gcc-cross and libgcc against.

Firstly, we can drop the glibc dependency from gcc-cross, *if* we make
two changes:

a) specify the minimum glibc version to support in a configure option
b) create a dummy limits.h file so that later when glibc creates one,
   the headers structure has support for it. We can do this with a simple
   empty file

Once gcc-cross is libc independent, we can use it to build both
libgcc-initial and then later libgcc.

libgcc-initial is tricky as we need to imitate the non-threaded and
non-shared case. We can do that by hacking the threading mode back to
"single" even if gcc reports "posix" and disable libc presence for the
libgcc-intial build. We have to create the dummy limits.h to avoid
compiler errors from a missing header.

glibc will fail to link with libgcc-initial due to a missing "exception
handler" capable libgcc (libgcc_eh.a). Since we know glibc doesn't need
any exception handler, we can safely symlink to libgcc.a.

With those changes, gcc-cross can be used in all places and we only need
one build of gcc for each architecture.

For some reason ifunc was being disabled on mips prior to these changes
but afterwards became enabled but caused assertion failures. This is
therefore disabled until we can debug that.

(From OE-Core rev: 62b7308b8c4d2b439a15a4f7cbc6f823077bb0be)

Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
</feed>
