[cfe-dev] Cross-compiling Clang on Gentoo Linux

Jakov Smolic via cfe-dev cfe-dev at lists.llvm.org
Tue Jul 14 01:42:22 PDT 2020


On 7/10/20 3:41 PM, Neil Nelson via cfe-dev wrote:
> Keeping cfe-dev in the loop.
> 
> Just emailed clang-tblgen to Jakov Smolic.
> 
> Neil Nelson
> 
> On 7/10/20 3:25 AM, Jakov Smolic via cfe-dev wrote:
>> On Thu, Jul 9, 2020 at 6:42 PM Neil Nelson via cfe-dev
>> <cfe-dev at lists.llvm.org> wrote:
>>> Just noticed a clang-tblgen after a compile of llvm and clang using the clang-llvm documented method.
>>>
>>> /home/nnelson/Documents/llvm-project/build/bin/clang-tblgen
>>>
>>> It is apparently not copied to /usr/bin/local during the install after a local build, but if you have that file, you could manually copy it and it might be found for your purpose.
>> Ok, so that is likely the issue here, the fact that this file is not
>> copied to the directory.
>>
>>> If you do not have that file, we may need to come up with a different plan. The first one that comes to mind is to build clang-llvm using the documented method and then do the copy and continue with what you are doing. The second one, in a stretch, might > be to get the file from a download, depending on the hardware you are using. There is a reasonably good chance I could copy the file I have here to you from this x86_64.
>> I don't have that file now on my local system now. Copying the file
>> should work as I am currently building the image for x86_64 platform,
>> but I think the best solution for my use-case would be to patch the
>> Gentoo package so that the `tblgen` binary is installed along with
>> other clang components. I am building Gentoo-based images for embedded
>> devices inside of a dockerized build system and use Gentoo packaging
>> to add software to the images, so maybe the simplest solution would be
>> to patch the Gentoo package.
>> I suspect that there is a CMake option missing from the Gentoo ebuild
>> or something else that prevents the `tblgen` binary from being
>> installed. I've also inquired about this to the Gentoo upstream but I
>> haven't received any input from Gentoo developers yet.
>>
>> Could you provide me with the steps you performed to install the
>> `tblgen` binary, I can compare it then and see if there is something
>> missing from the Gentoo package.
>>
>> Thank you for helping me!
>> Regards,
>> Jakov Smolic
>>
>>
>>
>>> Neil Nelson
>>>
>>> On 7/9/20 9:48 AM, Jakov Smolic via cfe-dev wrote:
>>>
>>> On Ubuntu 20.04 I have
>>>
>>> /usr/bin/llvm-tblgen
>>> /usr/bin/llvm-tblgen-10
>>> /usr/lib/llvm-10/bin/llvm-tblgen
>>> /usr/local/bin/llvm-tblgen
>>>
>>> Yes, I have those binaries as well. `llvm-tblgen` is, unlike
>>> `clang-tblgen`, installed as part of the llvm package in Gentoo. I can
>>> successfully cross-compile llvm. Likewise as clang, llvm requires the
>>> `tblgen` binary for cross-compiling, but it's not an issue as it is
>>> installed along with other llvm components.
>>>
>>> The first three were installed from the distribution. The last was
>>> compiled from the llvm-project at github. I do not have a
>>> clang- tblgen.
>>>
>>> Is your sequence something like this?
>>>
>>> https://github.com/llvm/llvm-project
>>> git clone https://github.com/llvm/llvm-project.git
>>> cd llvm-project
>>>
>>> And then what do you do?
>>>
>>> I did not perform it directly like that, rather as part of the
>>> packaging, but Gentoo, being source-based distribution, downaloads the
>>> source and compiles the components from there, and sets some CMake
>>> options [1].
>>>
>>> Regards,
>>> Jakov Smolic
>>>
>>>
>>> [1] https://gitweb.gentoo.org/repo/gentoo.git/tree/sys-devel/llvm/llvm-10.0.0.ebuild#n249
>>> _______________________________________________
>>> cfe-dev mailing list
>>> cfe-dev at lists.llvm.org
>>> https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
>>>
>>> _______________________________________________
>>> cfe-dev mailing list
>>> cfe-dev at lists.llvm.org
>>> https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
>> On Thu, Jul 9, 2020 at 6:42 PM Neil Nelson via cfe-dev
>> <cfe-dev at lists.llvm.org> wrote:
>>> Just noticed a clang-tblgen after a compile of llvm and clang using the clang-llvm documented method.
>>>
>>> /home/nnelson/Documents/llvm-project/build/bin/clang-tblgen
>>>
>>> It is apparently not copied to /usr/bin/local during the install after a local build, but if you have that file, you could manually copy it and it might be found for your purpose.
>>>
>>> If you do not have that file, we may need to come up with a different plan. The first one that comes to mind is to build clang-llvm using the documented method and then do the copy and continue with what you are doing. The second one, in a stretch, might be to get the file from a download, depending on the hardware you are using. There is a reasonably good chance I could copy the file I have here to you from this x86_64.
>>>
>>> Neil Nelson
>>>
>>> On 7/9/20 9:48 AM, Jakov Smolic via cfe-dev wrote:
>>>
>>> On Ubuntu 20.04 I have
>>>
>>> /usr/bin/llvm-tblgen
>>> /usr/bin/llvm-tblgen-10
>>> /usr/lib/llvm-10/bin/llvm-tblgen
>>> /usr/local/bin/llvm-tblgen
>>>
>>> Yes, I have those binaries as well. `llvm-tblgen` is, unlike
>>> `clang-tblgen`, installed as part of the llvm package in Gentoo. I can
>>> successfully cross-compile llvm. Likewise as clang, llvm requires the
>>> `tblgen` binary for cross-compiling, but it's not an issue as it is
>>> installed along with other llvm components.
>>>
>>> The first three were installed from the distribution. The last was
>>> compiled from the llvm-project at github. I do not have a
>>> clang- tblgen.
>>>
>>> Is your sequence something like this?
>>>
>>> https://github.com/llvm/llvm-project
>>> git clone https://github.com/llvm/llvm-project.git
>>> cd llvm-project
>>>
>>> And then what do you do?
>>>
>>> I did not perform it directly like that, rather as part of the
>>> packaging, but Gentoo, being source-based distribution, downaloads the
>>> source and compiles the components from there, and sets some CMake
>>> options [1].
>>>
>>> Regards,
>>> Jakov Smolic
>>>
>>>
>>> [1] https://gitweb.gentoo.org/repo/gentoo.git/tree/sys-devel/llvm/llvm-10.0.0.ebuild#n249
>>> _______________________________________________
>>> cfe-dev mailing list
>>> cfe-dev at lists.llvm.org
>>> https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
>>>
>>> _______________________________________________
>>> cfe-dev mailing list
>>> cfe-dev at lists.llvm.org
>>> https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
>> _______________________________________________
>> cfe-dev mailing list
>> cfe-dev at lists.llvm.org
>> https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
> 
> _______________________________________________
> cfe-dev mailing list
> cfe-dev at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
> 
Thank you for sending me the binary.

I think this should be patched at the source to allow easier
cross-compiling.
Would it be possible to include the patch that would enable automatic
build of the clang-tblgen?

-- 
Best regards,
Jakov Smolic

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20200714/945321e0/attachment.sig>


More information about the cfe-dev mailing list