[OE-core] [PATCH] gcc-cross: Fix linker and fortran symlinks

Khem Raj raj.khem at gmail.com
Tue Jul 11 14:27:32 UTC 2017


On Tue, Jul 11, 2017 at 7:16 AM, Martin Jansa <martin.jansa at gmail.com> wrote:
> Shouldn't the symlink be created in ${D}${STAGING_DIR_NATIVE} as suggested
> in:
> http://lists.openembedded.org/pipermail/openembedded-core/2014-April/091480.html

unrelated to this change but I agree, probably we can get by creating relative
symlink in ${D}${STAGING_DIR_NATIVE}${prefix_native}/bin

>
> On Tue, Jul 11, 2017 at 3:05 PM, Khem Raj <raj.khem at gmail.com> wrote:
>>
>> If we used -fuse-ld gcc option, then it does not work
>> ending in
>>
>> collect2: fatal error: cannot find 'ld'
>> compilation terminated.
>>
>> This is because we are not creating proper symlinks for BFD
>> and Gold linker in gcc installation
>>
>> Secondly, we end up with dangling fortran compiler symlinks
>> if fortran is not enabled when confguring gcc, therefore
>> create these symlinks only when fortran support is enabled
>> in gcc
>>
>> Signed-off-by: Khem Raj <raj.khem at gmail.com>
>> ---
>>  meta/recipes-devtools/gcc/gcc-cross.inc | 10 ++++++----
>>  1 file changed, 6 insertions(+), 4 deletions(-)
>>
>> diff --git a/meta/recipes-devtools/gcc/gcc-cross.inc
>> b/meta/recipes-devtools/gcc/gcc-cross.inc
>> index b08bc197ba..1e184a60db 100644
>> --- a/meta/recipes-devtools/gcc/gcc-cross.inc
>> +++ b/meta/recipes-devtools/gcc/gcc-cross.inc
>> @@ -161,17 +161,19 @@ do_install () {
>>
>>         install -d ${D}${target_base_libdir}
>>         install -d ${D}${target_libdir}
>> -
>> +
>>         # 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 [ -n "${@d.getVar('FORTRAN')}" ]; then
>> +               ln -sf
>> ${STAGING_DIR_NATIVE}${prefix_native}/bin/${TARGET_PREFIX}gfortran
>> ${STAGING_DIR_NATIVE}${prefix_native}/bin/${TARGET_PREFIX}g77 || true
>> +               fortsymlinks="g77 gfortran"
>> +       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 ar as ld ld.bfd ld.gold nm objcopy objdump ranlib strip
>> gcc cpp $fortsymlinks; do
>>                 ln -sf ${BINRELPATH}/${TARGET_PREFIX}$t $dest$t
>>                 ln -sf ${BINRELPATH}/${TARGET_PREFIX}$t
>> ${dest}${TARGET_PREFIX}$t
>>         done
>> --
>> 2.13.2
>>
>> --
>> _______________________________________________
>> Openembedded-core mailing list
>> Openembedded-core at lists.openembedded.org
>> http://lists.openembedded.org/mailman/listinfo/openembedded-core
>
>



More information about the Openembedded-core mailing list