* RFC only, because it maybe doesn't fix any real issue (I've noticed
only because I was comparing 2 sysroots debuging some other issues and
was wondering why we have so many dangling symlinks).
* first symlink is bypassing sstate (created in
${STAGING_DIR_NATIVE} instead of ${D}${STAGING_DIR_NATIVE}) this is
maybe worth fixing
* was g++ omitted intentionally from symlinks?
* should binutils provided tools be created by binutils recipes? Or was
it simplified like this, so that binutils don't need to know gcc's BINV?
* the same does apply to gcc-cross-initial and gcc-cross-canadian, so if
we decide to implement this or something similar it should cover all 3
* g77 and gfortran aren't created by default, so it was creating dangling
symlinks, which probably doesn't hurt
* I've tested that resulting image/ looks the same before and after this
patch with exception of g++ link (and possibly gfortran one when
enabled).
Signed-off-by: Martin Jansa <[email protected]>
---
meta/recipes-devtools/gcc/gcc-cross.inc | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/meta/recipes-devtools/gcc/gcc-cross.inc
b/meta/recipes-devtools/gcc/gcc-cross.inc
index 777c970..c99923f 100644
--- a/meta/recipes-devtools/gcc/gcc-cross.inc
+++ b/meta/recipes-devtools/gcc/gcc-cross.inc
@@ -148,14 +148,22 @@ do_install () {
# Link gfortran to g77 to satisfy not-so-smart configure or hard coded
g77
# gfortran is fully backwards compatible. This is a safe and practical
solution.
- ln -sf
${STAGING_DIR_NATIVE}${prefix_native}/bin/${TARGET_PREFIX}gfortran
${STAGING_DIR_NATIVE}${prefix_native}/bin/${TARGET_PREFIX}g77 || true
-
+ if [ -f
${D}${STAGING_DIR_NATIVE}${prefix_native}/bin/${MULTIMACH_TARGET_SYS}/${TARGET_PREFIX}gfortran
] ; then
+ ln -sf
${STAGING_DIR_NATIVE}${prefix_native}/bin/${TARGET_PREFIX}gfortran
${D}${STAGING_DIR_NATIVE}${prefix_native}/bin/${TARGET_PREFIX}g77 || true
+ fi
# Insert symlinks into libexec so when tools without a prefix are
searched for, the correct ones are
# found. These need to be relative paths so they work in different
locations.
dest=${D}${libexecdir}/gcc/${TARGET_SYS}/${BINV}/
install -d $dest
- for t in ar as ld nm objcopy objdump ranlib strip g77 gcc cpp gfortran;
do
+ for t in g77 gcc g++ cpp gfortran; do
+ if [ -f
${D}${STAGING_DIR_NATIVE}${prefix_native}/bin/${MULTIMACH_TARGET_SYS}/${TARGET_PREFIX}$t
] ; then
+ ln -sf ${BINRELPATH}/${TARGET_PREFIX}$t $dest$t
+ ln -sf ${BINRELPATH}/${TARGET_PREFIX}$t
${dest}${TARGET_PREFIX}$t
+ fi
+ done
+ # these aren't provided by gcc, so add them without existence check
+ for t in ar as ld nm objcopy objdump ranlib strip; do
ln -sf ${BINRELPATH}/${TARGET_PREFIX}$t $dest$t
ln -sf ${BINRELPATH}/${TARGET_PREFIX}$t
${dest}${TARGET_PREFIX}$t
done
--
1.9.1
--
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core