[llvmlinux] Quick build against stable versions of toolchain (llvm and clang) and Linux-kernel?

Sedat Dilek sedat.dilek at gmail.com
Mon Jan 21 14:39:29 UTC 2013


On Mon, Jan 21, 2013 at 3:24 PM, Sedat Dilek <sedat.dilek at gmail.com> wrote:
> n Mon, Jan 21, 2013 at 2:42 PM, Tinti <viniciustinti at gmail.com> wrote:
>>>> Hi Sedat,
>>>>
>>>> I have reimplemented the checkpoint feature this weekend and I would like
>>>> to
>>>> test it with your settings too.
>>>>
>>>> Can you send me it? Also would be great to see other people trying to use
>>>> it. If you have time, please checkout my branch and read
>>>> Documentation/settings_file.txt.
>>>>
>>>
>>> We should stop top-posting, eh?
>>
>> Yes. Thanks.
>>
>>
>>> With my (llvmlinux-patched) LLVM/CLANG toolchain I hit many
>>> non-toolchain issues this weekend when trying to build LIBDRM/MESA in
>>> an /opt/xorg installation.
>>>
>>> Following all daily upstream changes in LLVMLinux is NOT possible and
>>> NOT wanted by me.
>>>
>>> I think people are interested in "stable" work against stable releases.
>>>
>>> I was planning to push my adapted/refreshed LLVMLinux patches against
>>> v3.2-stable of llvm/clang/compiler-rt.
>>> Are you interested in them?
>>
>> Yes. But I don't know where to place it. Maybe we could have stable work
>> and stable releases at the same time. Honestly, I don't know (even how).
>>
>
> *** Some ideas (may be incomplete and untested!) ***
>
> Use (and create) "patches" (upstream) VS. "patches-3.2" (v3.2-stable)
> directories (incomplete list here for arch and toolchain only):
>
> [ arch ]
>
> arch/x86_64/patches
> arch/x86_64/patches-3.2 <--- NEW
>
> [ toolchain ]
>
> toolchain/clang/patches
> toolchain/clang/patches-3.2 <--- NEW (preferred!)
>
> ...or...
>
> toolchain/clang/patches/clang
> toolchain/clang/patches/clang-3.2 <--- NEW
> toolchain/clang/patches/llvm
> toolchain/clang/patches/llvm-3.2 <--- NEW
>
> Personally, I would highly appreciate the usage of a $PATCHES_DIR in
> $TOP_SRC_DIR!
>
> TOP_SRC_DIR
> |
> |--- arch
> |--- common.mk
> |--- COPYING
> |--- Documentation
> |--- Makefile
> |--- patches <--- NEW: All patches are located at one single place!
>      |--- arch <--- or simple put the $archnames here directly (x86_64 etc.)
>      |--- toolchain
>      |--- etc.

[...]
|--- patches
     |--- linux <--- UPSTREAM (formerly known as "arch")
          |--- all
          |--- x86-64
          |--- etc.
     |--- linux-3.8 <--- STABLE: Linux v3.8
          |--- all
          |--- x86-64
          |--- etc.
     |--- toolchain <--- UPSTREAM
          |--- clang
          |--- llvm
     |--- toolchain-3.2 <--- STABLE: LLVM/CLANG v3.2
          |--- clang
          |--- llvm
[...]

Here, someone could also use symlinked files to save disc-space and
patch-management.

- Sedat -

> |--- README
> |--- targets
> |--- test
> |--- toolchain
> |--- tools
>
> NOTE: I am not familiar with the build-system of LLVMLinux and can't
> say if this is hacked in a few minutes or needs a lot of rework :-).
>
> HINT:
> All the patches which are regularly adapted should get rid of any crap
> like "diff git" or "Index" lines (see for example patch-handling of
> OpenWrt). Simply use --- a/ and +++ /b!
> The git-diff-stats line are in some patches are after getting
> refreshed simply wrong.
> All this would make refreshing of patches for upstream a bit easier.
>
> My EUR00.2 (aka 2 cents).
>
> - Sedat -
>
>>> I had a look into your settings_file.txt file but did not get wiser,
>>> sorry.
>>>
>>> I am still trying to track a Linux-Next issue with JBD2 (or LOOP).
>>> Let's see if linux-fsdevel people can help.
>>>
>>> Hope this helps you.
>>
>> For sure it will.
>>
>> Regards,
>> Tinti
>>
>> - Sedat -
>>
>>
>> On Mon, Jan 21, 2013 at 10:39 AM, Sedat Dilek <sedat.dilek at gmail.com> wrote:
>>>
>>> On Mon, Jan 21, 2013 at 1:29 PM, Tinti <viniciustinti at gmail.com> wrote:
>>> > Hi Sedat,
>>> >
>>> > I have reimplemented the checkpoint feature this weekend and I would
>>> > like to
>>> > test it with your settings too.
>>> >
>>> > Can you send me it? Also would be great to see other people trying to
>>> > use
>>> > it. If you have time, please checkout my branch and read
>>> > Documentation/settings_file.txt.
>>> >
>>>
>>> We should stop top-posting, eh?
>>>
>>> With my (llvmlinux-patched) LLVM/CLANG toolchain I hit many
>>> non-toolchain issues this weekend when trying to build LIBDRM/MESA in
>>> an /opt/xorg installation.
>>>
>>> Following all daily upstream changes in LLVMLinux is NOT possible and
>>> NOT wanted by me.
>>>
>>> I think people are interested in "stable" work against stable releases.
>>>
>>> I was planning to push my adapted/refreshed LLVMLinux patches against
>>> v3.2-stable of llvm/clang/compiler-rt.
>>> Are you interested in them?
>>>
>>> I had a look into your settings_file.txt file but did not get wiser,
>>> sorry.
>>>
>>> I am still trying to track a Linux-Next issue with JBD2 (or LOOP).
>>> Let's see if linux-fsdevel people can help.
>>>
>>> Hope this helps you.
>>>
>>> - Sedat -
>>>
>>> > Best regards,
>>> > Tinti
>>> >
>>> >
>>> > On Thu, Jan 17, 2013 at 11:45 PM, Sedat Dilek <sedat.dilek at gmail.com>
>>> > wrote:
>>> >>
>>> >> Hi Tinti,
>>> >>
>>> >> I have adapted the LLVM/CLANG patches from LLVMLinux project against
>>> >> v3.2-stable.
>>> >>
>>> >> Toolchain is fine...
>>> >> Just (mis)used build of mesa-8.x as a test-case [1].
>>> >>
>>> >> Will look tomorrow into the Linux x86_64 patches.
>>> >>
>>> >> - Sedat -
>>> >>
>>> >> [1]
>>> >>
>>> >> http://lists.freedesktop.org/archives/dri-devel/2013-January/033614.html
>>> >>
>>> >> On Fri, Jan 18, 2013 at 2:35 AM, Tinti <viniciustinti at gmail.com> wrote:
>>> >> > Hi Sedat,
>>> >> >
>>> >> > About stable versions please check my branch. I have just uploaded
>>> >> > the
>>> >> > documentation about it (Documentation/settings_file.txt) and an
>>> >> > example
>>> >> > in
>>> >> > rpi target. I think it fits for your purposes.
>>> >> > I have not applied on master because I would like to have some
>>> >> > reviews
>>> >> > and
>>> >> > feedbacks. Is anything else that you would like to add?
>>> >> >
>>> >> > Best regards,
>>> >> > Tinti
>>> >> >>
>>> >> >> What is {the | your | a good} base for the Linux-kernel (speaking of
>>> >> >> x86_64)?
>>> >> >> v3.7.y (latest stable version)?
>>> >> >
>>> >> > The LLVMLinux project works from the HEAD of LLVM and the Linux
>>> >> > project.
>>> >> > Since the goal is to upstream patches to both projects, we really
>>> >> > have
>>> >> > to
>>> >> > work from HEAD.
>>> >> >
>>> >> > As far as saving checkpoints that work with a particular version of a
>>> >> > kernel, somebody merely needs to create a settings file which details
>>> >> > the
>>> >> > versions of all SW involved. The settings file is described in
>>> >> > Documentation/settings_file.txt
>>> >> >
>>> >> > Tinti is using this to create a checkpoint for the rpi community so
>>> >> > that
>>> >> > people can play with a stable kernel there for instance. You are
>>> >> > welcome
>>> >> > to
>>> >> > do the same for x86_64.
>>> >> >
>>> >> >
>>> >> >
>>> >> > On Thu, Jan 17, 2013 at 2:53 PM, Behan Webster
>>> >> > <behanw at converseincode.com>
>>> >> > wrote:
>>> >> >>
>>> >> >> On 13-01-17 09:11 AM, Sedat Dilek wrote:
>>> >> >>>
>>> >> >>> Hi,
>>> >> >>>
>>> >> >>> first of all I wish all people from the LLVMLinux project a happy
>>> >> >>> new
>>> >> >>> year!
>>> >> >>
>>> >> >> Same to you! :)
>>> >> >>
>>> >> >>
>>> >> >>> After a case of death in my family I dropped all my OSS activities
>>> >> >>> for
>>> >> >>> a
>>> >> >>> while.
>>> >> >>
>>> >> >> I'm very sorry to hear that.
>>> >> >>
>>> >> >>
>>> >> >>> The last weeks I started to build again mainline and Linux-Next
>>> >> >>> kernels.
>>> >> >>> ...and playing with Linux Test Project (LTP).
>>> >> >>> I would like also to test a llvmlinux-compiled Linux-kernel with
>>> >> >>> LTP!
>>> >> >>
>>> >> >> We are already running LTP with a clang compiled kernel, but
>>> >> >> currently
>>> >> >> only for the vexpress (ARM based) kernel. It's just a matter of
>>> >> >> somebody
>>> >> >> porting the code. I too would like to see an automated x86 LTP test
>>> >> >> run.
>>> >> >>
>>> >> >>
>>> >> >>> Today, I remembered the $JOBS variable
>>> >> >>
>>> >> >> "make help" has details about a lot of things, including the $JOBS
>>> >> >> variable. The default value of JOBS likely will be close to optimum.
>>> >> >> On
>>> >> >> my
>>> >> >> machine (at least) if I ingrease JOBS much higher than the
>>> >> >> calculated
>>> >> >> default, it actually slows down the compile.
>>> >> >>
>>> >> >>
>>> >> >>> What is {the | your | a good} base for the Linux-kernel (speaking
>>> >> >>> of
>>> >> >>> x86_64)?
>>> >> >>> v3.7.y (latest stable version)?
>>> >> >>
>>> >> >> The LLVMLinux project works from the HEAD of LLVM and the Linux
>>> >> >> project.
>>> >> >> Since the goal is to upstream patches to both projects, we really
>>> >> >> have
>>> >> >> to
>>> >> >> work from HEAD.
>>> >> >>
>>> >> >> As far as saving checkpoints that work with a particular version of
>>> >> >> a
>>> >> >> kernel, somebody merely needs to create a settings file which
>>> >> >> details
>>> >> >> the
>>> >> >> versions of all SW involved. The settings file is described in
>>> >> >> Documentation/settings_file.txt
>>> >> >>
>>> >> >> Tinti is using this to create a checkpoint for the rpi community so
>>> >> >> that
>>> >> >> people can play with a stable kernel there for instance. You are
>>> >> >> welcome to
>>> >> >> do the same for x86_64.
>>> >> >>
>>> >> >>
>>> >> >>> $ grep "Kernel Configuration" -nr ./
>>> >> >>> ./targets/x86_64/config_x86_64:3:# Linux/x86_64 3.7.0 Kernel
>>> >> >>> Configuration
>>> >> >>> ./targets/x86_64/config_x86_64_default:3:# Linux/x86_64 3.7.0-rc5
>>> >> >>> Kernel Configuration
>>> >> >>> ./targets/i586/config_i586:3:# Linux/x86_64 3.7.0 Kernel
>>> >> >>> Configuration
>>> >> >>
>>> >> >> That's merely the version of the kernel that was being used when
>>> >> >> that
>>> >> >> config file was last updated. It doesn't indicate a stable version
>>> >> >> of
>>> >> >> the
>>> >> >> kernel source.
>>> >> >>
>>> >> >>
>>> >> >>> Is the listed kernel-config a good base?
>>> >> >>
>>> >> >> It is the one we are currently testing with. This file is intended
>>> >> >> to
>>> >> >> create a bootable kernel on an average x86_64 computer.
>>> >> >>
>>> >> >>
>>> >> >>> Same question to llvm and clang.
>>> >> >>> v3.2 (latest stable version)?
>>> >> >>
>>> >> >> Again, we don't use stable versions of the toolchain. We use HEAD.
>>> >> >> Until
>>> >> >> our patches are in we have to keep developing and testing with the
>>> >> >> latest/greatest code.
>>> >> >>
>>> >> >>
>>> >> >>> Personally, I wanted to test against ***stable*** versions of all 3
>>> >> >>> components.
>>> >> >>
>>> >> >> Great! That would be very helpful.
>>> >> >>
>>> >> >>
>>> >> >>> Some patches are not listed in the appropriate series files
>>> >> >>> (so-to-say
>>> >> >>> UNUSED).
>>> >> >>
>>> >> >> The existence of a patch file doesn't mean it's actually being used.
>>> >> >> The
>>> >> >> series file lists which patches are currently in use.
>>> >> >>
>>> >> >> Patches which aren't in a series file usually are left in place
>>> >> >> until
>>> >> >> we're sure we don't need them anymore (or at all).
>>> >> >>
>>> >> >>
>>> >> >>> I am still against all this uncommon naming of patches (speaking
>>> >> >>> mostly of the ones for the Linux-kernel).
>>> >> >>
>>> >> >> In this case many of the patch names for x86_64 have been created
>>> >> >> from
>>> >> >> the
>>> >> >> commit comments by "git format-patch".
>>> >> >>
>>> >> >> I would encourage you to work within our build framework if you can.
>>> >> >> If
>>> >> >> we
>>> >> >> all work on the same code base, with the same test framework, we can
>>> >> >> much
>>> >> >> more easily share work and accelerate our efforts.
>>> >> >>
>>> >> >> Thanks!
>>> >> >>
>>> >> >> Behan
>>> >> >>
>>> >> >> --
>>> >> >> Behan Webster
>>> >> >> behanw at converseincode.com
>>> >> >>
>>> >> >>
>>> >> >> _______________________________________________
>>> >> >> LLVMLinux mailing list
>>> >> >> LLVMLinux at lists.linuxfoundation.org
>>> >> >> https://lists.linuxfoundation.org/mailman/listinfo/llvmlinux
>>> >> >
>>> >> >
>>> >> >
>>> >> >
>>> >> > --
>>> >> > Vinicius Tinti
>>> >> > mail => {viniciustinti at gmail.com, tinti at comp.eng.br}
>>> >> > skype => {viniciustinti}
>>> >> >
>>> >> > _______________________________________________
>>> >> > LLVMLinux mailing list
>>> >> > LLVMLinux at lists.linuxfoundation.org
>>> >> > https://lists.linuxfoundation.org/mailman/listinfo/llvmlinux
>>> >> _______________________________________________
>>> >> LLVMLinux mailing list
>>> >> LLVMLinux at lists.linuxfoundation.org
>>> >> https://lists.linuxfoundation.org/mailman/listinfo/llvmlinux
>>> >
>>> >
>>> >
>>> >
>>> > --
>>> > Vinicius Tinti
>>> > mail => {viniciustinti at gmail.com, tinti at comp.eng.br}
>>> > skype => {viniciustinti}
>>
>>
>>
>>
>> --
>> Vinicius Tinti
>> mail => {viniciustinti at gmail.com, tinti at comp.eng.br}
>> skype => {viniciustinti}


More information about the LLVMLinux mailing list