[meta-xilinx] [PATCH] xilinx-versions: Change default main version

Nathan Rossi nathan at nathanrossi.com
Mon Dec 21 19:41:01 PST 2015


On Tue, Dec 22, 2015 at 4:19 AM, Manjukumar Harthikote Matha
<manjukumar.harthikote-matha at xilinx.com> wrote:
>
>
> On 12/20/2015 08:17 PM, Nathan Rossi wrote:
>>
>> On Sat, Dec 19, 2015 at 11:21 AM, Manjukumar Matha
>> <manjukumar.harthikote-matha at xilinx.com> wrote:
>>>
>>> Allow CSL_VER_MAIN to be defined in local.conf.
>>> Fetch libc version correctly from toolchain path
>>
>>
>> This should be split into two patches. Please also provide a bit more
>> info in the commit message for the reasons for these changes.
>>
> Ok will separate patches
>
>>>
>>> Signed-off-by: Manjukumar Matha <manjukumar.harthikote-matha at xilinx.com>
>>> ---
>>
>>
>> What is the exact reason for this other than just allowing it to be
>> defined in local.conf? If you are trying to support toolchains which
>> have a version that cannot be detected by
>> csl_get_version/csl_get_main_version, please update those functions
>> instead so it can just auto detect the different scheme. If this is
>> really only needed for obscure testing scenarios it would be simpler
>> to manually override the PV of the recipe (since that is the instance
>> where CSL_VER_MAIN is used), that can easily be done in local.conf
>> with something like 'PV_pn-external-xilinx-toolchain = "<version>"'.
>>
>
> Xilinx toolchain currently does not provide the version info (like v2015.4
> etc). This scheme will allow to define the version of the toolchain till we
> get a function which can report Xilinx toolchain version.

Ok, so why would this be needed over the
PV_pn-external-xilinx-toolchain = "<version>" approach?

Also if you want to have it reporting the correct Vivado release
version this could be implemented as a lookup table based on the code
sourcery version or just build info that is embedded in gcc (e.g. for
microblaze gcc -v -> 'Configured with:
/proj/sdk/gnu/microblaze/builds/HEAD/nightly/2015_05_22' use that
date?). And when the build info is actually embedded correctly use
that instead.

>
>> Also this change causes breakages when CSL_VER_MAIN is not set in
>> local.conf:
>>
>
> It is defined in the glibc-xlnx.bb. I didnt see this error while building
> the master branch for core-image-minimal.

glibc-xlnx.bb does not exist in meta-xilinx. I think you are mixing
this in with some other layers/changes which hide the issue. Try
building with with just oe-core/meta + meta-xilinx, you will see this
issue during the recipe parsing stage.

Regards,
Nathan

>
>>>   def xilinx_get_libc_version(d):
>>> +       import fnmatch
>>> +
>>>          syspath = d.expand('${EXTERNAL_TOOLCHAIN_SYSROOT}')
>>>          if not syspath:
>>>                  return 'UNKNOWN'
>>> @@ -51,9 +54,9 @@ def xilinx_get_libc_version(d):
>>>                  libpath = syspath + '/sgxx-glibc/lib/'
>>>
>>>          if os.path.exists(libpath):
>>> -               for file in os.listdir(libpath):
>>> -                       if file.find('libc-') == 0:
>>> -                               return file[5:-3]
>>> +               for root,dirs,files in os.walk(libpath):
>>> +                       for filename in
>>> fnmatch.filter(files,'libc-*.so'):
>>> +                               return filename[5:-3]
>>
>>
>> Same here, what is the reason? if libc-*.so is not in <sys-root>/lib/
>> then isn't the rest of the toolchain recipe broken also? since it
>> won't be able to find it and populate it into the packages/oe sysroot.
>>
>
> aarch64 toolchain libc-* is under a different directory under
> <sys-root>/lib/. This change will fix getting the version number instead of
> returning it as UKNOWN.
>
>
>> Regards,
>> Nathan
>>
>>>          return 'UNKNOWN'
>>>
>>>   def xilinx_get_kernel_version(d):
>>> --
>>> 2.1.4
>>>
>>> --
>>> _______________________________________________
>>> meta-xilinx mailing list
>>> meta-xilinx at yoctoproject.org
>>> https://lists.yoctoproject.org/listinfo/meta-xilinx



More information about the meta-xilinx mailing list