Commit Graph

7 Commits

Author SHA1 Message Date
Ross Burton
ebf34d5b25 libtool: don't prefix the installed binary
Typically libtool installs the binary to 'libtool' in the source tree,
but we've got patches to rename this to ${host_sys}-libtool. As this
isn't standard any upstream that don't respect the LIBTOOL variable need
to be told explicitly where libtool is, which is a long-term maintenance
burden for us on top of the initial libtool patches.

The reasoning for this renaming appears to stem from the design to be
sure that we're using our new/patched libtool and not the host's binary.
However, now that we have HOSTTOOLS, there's no way to run the host
libtool so this argument is moot.

This patch removes the libtool renaming, follow-up patches remove the
required modifications from the rest of the recipes.

[RP: Remove commented patch lines]
(From OE-Core rev: 4b308773eca7570ce5007e8f953b56252c17fdb1)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-12-12 18:10:22 +00:00
Richard Purdie
bb6ddc3691 Convert to new override syntax
This is the result of automated script conversion:

scripts/contrib/convert-overrides.py <oe-core directory>

converting the metadata to use ":" as the override character instead of "_".

(From OE-Core rev: 42344347be29f0997cc2f7636d9603b1fe1875ae)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-08-02 15:44:10 +01:00
Richard Purdie
ea79ef5897 libtools-cross/shadow-sysroot: Use nopackages inherit
When testing pseudo changes I realised these recipes have packaging tasks
but don't generate packages. Drop the packages tasks for cleanliness.

(From OE-Core rev: ef9c11797b5d626bdb40b4509d8b2b0d461ff9ea)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-10-06 23:14:25 +01:00
Richard Purdie
0472cc2368 libtool-cross: Handle ccache sstate 'infection' issues
On a system without ccache, f you:

INHERIT += "ccache"
bitbake libtool-cross
<remove INHERIT>
bitbake apmd

then it fails due to being unable to find ccache. The references to ccache are
coded into libtool-cross but the sstate checksum doesn't reflect this due to the
way the class is coded (output should be the same regardless).

The simplest solution is to remove references to ccache from the libtool script.
The output then works regardless of whether ccache is present or not. The
libtool-cross script is only used in a handful of cases (most of the time its
dynamically generated by autoconf) so any performance issue is minor.

(From OE-Core rev: ed550a49d2114c56e5bc033ecd0e83073d2d4067)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-08-14 11:36:31 +01:00
Peter Kjellerstedt
dad93163a6 libtool-cross: Use SYSROOT_DIRS to add dirs to stage in sysroot
(From OE-Core rev: 8f0c872a496fe70ac02cd745aef36d2f36cf0d49)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-05-13 13:41:27 +01:00
Khem Raj
64089c6ae6 libtool-cross: Unset pre|post dep objects
predep_objects and postdep_objects are specifying the duplicate objects
which are better computed by gcc/g++ driver, since we want to generate
PIE, PIC and non-PIC combinations, let gcc decide on this, since it
knows best about linker options to use in each of these situations.
When we defer the linker options to driver, we also need to remove
-nostdlib from linker commandline options.

Remove duplicate directory creation for ${D}${bindir_crossscripts}/

This fixes a frequent problem we see during -fpie links e.g.

|
/home/ubuntu/work/oe/openembedded-core/build/tmp-glibc/sysroots/qemux86-64/usr/include/c++/5.3.0/iostream:74:
undefined reference to `__dso_handle'
|
/home/ubuntu/work/oe/openembedded-core/build/tmp-glibc/sysroots/x86_64-linux/usr/libexec/x86_64-oe-linux/gcc/x86_64-oe-linux/5.3.0/ld:
.libs/cxx_channel.o: relocation R_X86_64_PC32 against undefined hidden
symbol `__dso_handle' can not be used when making a shared object
|
/home/ubuntu/work/oe/openembedded-core/build/tmp-glibc/sysroots/x86_64-linux/usr/libexec/x86_64-oe-linux/gcc/x86_64-oe-linux/5.3.0/ld:
final link failed: Bad value

After this change libtool gets changed as below

 old_archive_from_expsyms_cmds=""

 # Commands used to build a shared archive.
-archive_cmds="\$CC \$pic_flag -shared -nostdlib \$predep_objects
\$libobjs \$deplibs \$postdep_objects \$compiler_flags \$wl-soname
\$wl\$soname -o \$lib"
-archive_expsym_cmds="\$CC \$pic_flag -shared -nostdlib \$predep_objects
\$libobjs \$deplibs \$postdep_objects \$compiler_flags \$wl-soname
\$wl\$soname \$wl-retain-symbols-file \$wl\$export_symbols -o \$lib"
+archive_cmds="\$CC \$pic_flag -shared  \$predep_objects \$libobjs
\$deplibs \$postdep_objects \$compiler_flags \$wl-soname \$wl\$soname -o
\$lib"
+archive_expsym_cmds="\$CC \$pic_flag -shared  \$predep_objects
\$libobjs \$deplibs \$postdep_objects \$compiler_flags \$wl-soname
\$wl\$soname \$wl-retain-symbols-file \$wl\$export_symbols -o \$lib"

 # Commands used to build a loadable module if different from building
 # a shared archive.
@@ -11908,8 +11908,8 @@

 # Dependencies to place before and after the objects being linked to
 # create a shared library.
-predep_objects="/home/ubuntu/work/oe/openembedded-core/build/tmp-glibc/sysroots/qemux86-64/usr/lib/../lib/Scrt1.o
/home/ubuntu/work/oe/openembedded-core/build/tmp-glibc/sysroots/qemux86-64/usr/lib/../lib/crti.o
/home/ubuntu/work/oe/openembedded-core/build/tmp-glibc/sysroots/qemux86-64/usr/lib/../lib/x86_64-oe-linux/5.3.0/crtbeginS.o"
-postdep_objects="/home/ubuntu/work/oe/openembedded-core/build/tmp-glibc/sysroots/qemux86-64/usr/lib/../lib/x86_64-oe-linux/5.3.0/crtendS.o
/home/ubuntu/work/oe/openembedded-core/build/tmp-glibc/sysroots/qemux86-64/usr/lib/../lib/crtn.o"
+predep_objects=""
+postdep_objects=""
 predeps=""
 postdeps="-lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc"

(From OE-Core rev: e1b45cb8e15458dde21f5e86ea1cbb619fb5c4cf)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-02-02 14:44:16 +00:00
Richard Purdie
69c5e0992d libtool: 2.4.5 -> 2.4.6
Drop patch merged upstream.

(From OE-Core rev: cd03ef79b50ed42b9d407ee45fc3e3321385281c)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-02-17 13:43:38 +00:00