[llvmlinux] LLVMLinux Meeting 2013-11-07

Behan Webster behanw at converseincode.com
Sat Nov 9 05:01:44 UTC 2013


*

LLVMLinux Project: http://llvm.linuxfoundation.org/


<http://llvm.linuxfoundation.org/>

This week the meeting will be on Thursday, November 07 2013 on Google
Plus Hangout at 17:00
UTC.<https://www.google.com/calendar/embed?src=su5vu85fj58ncfrgalmq4vbbf0%40group.calendar.google.com&ctz=GMT>


<https://www.google.com/calendar/embed?src=su5vu85fj58ncfrgalmq4vbbf0%40group.calendar.google.com&ctz=GMT>


If you haven't use G+ Hangouts before, make sure you have the
appropriate Chrome or Firefox plugin installed, and tested before the
time of the meeting. You can try a test hangout with me today before the
meeting if you want to. G+ recently changed, so hopefully that won't be
an issue for our meeting.


-------------------------------------------------------------------------------------------------------------------------

Previous meeting's top 2-3 work items:

  *

    This is what people said they'd be working on at the end of the last
    meeting:

      o

        Behan

          +

            LLVMLinux BoF at LCE

          +

            LLVMLinux talk at ELCE

          +

            LLVMLinux patch work (ARM, cc-option, VLAIS patch, Named
            registers)

          +

            patch cleanup

          +

            Follow up with people from conferences

      o

        Jan-Simon

          +

            cc-option solution for both 3.3 and 3.4

              #

                warning/error switch

              #

                ", " issue

          +

            cleanup for x86 side

          +

            unbreak i586

-------------------------------------------------------------------------------------------------------------------------

Agenda for this week:


  *

    (5 mins total) Everyone shared a quick summary of the progress
    they've made from the last 4 weeks

      o

        Behan

          +

            Followup from LinuxConEurope and ELCE

          +

            Named register patches

              #

                New __builtin_stack_pointer() patch submission

          +

            Taught course/Course preparation

      o

        Jan-Simon

          +

            LConE, ELCE, ALS

          +

            Vacation

      o

        Vinicius Tinti

          +

            Work with Tim on merged globals issue.

          +

            Create LLVMLinux video list on Youtube.

              #

                http://www.youtube.com/watch?v=v8QgNhPMRJo&list=PLB0smnRgT1yARbkuMqg5kXeUYoHOTBBl0

      o

        Mark

          +

            Worked on building AArch64 (deleted arm64)

              #

                vexpress64 target is now building successfully

              #

                One patch for AArch64 is concerning as clang optimizes
                code to invalid inline assembly and then the compilation
                fails

          +

            Looked for uses of GCC style assigned registers in the kernel

              #

                There are a lot of them and not just SP

              #

                Does this actually work?:

                  *

                    register unsigned long rnv asm("r2") = regs->uregs[rn];

          +

            Helped with MergedGlobals issue

              #

                creduced Vicinius' files to a minimal example

              #

                Created a unit test to compare GCC compiled file with
                clang compiled version, and added scripts used to
                creduce the code

              #

                Read over modpost code to start to understand what it is
                doing

  *

    (45 mins) General meeting discussions:

      o

        LinuxCon Europe, ELCE, ALS, Kernel Summit

          +

            BoF at LCE

              #

                About 30-40 people showed up

              #

                Everyone in the Bof knew what LLVM was and was aware of
                the project (which is a first)

              #

                Lots of relevant questions.

              #

                One of the things discovered in this BoF is that the
                netfilter VLAIS patch will be a non-issue once nftables
                is adopted everywhere and iptables is dropped (though
                iptables is sticking around for a while yet)

              #

                Also met Al Grant from ARM who is interesting in helping
                enable our aarch64 port.

          +

            Talk at ELCE

              #

                About 40-50 people showed up

              #

                Lots of great questions and general interest

              #

                Many of the same questions we often get (is
                smaller/better/fast/etc)

              #

                Very well received. The questions took the talk into
                overtime

      o

        Merged global work (Vicinius and Tim)

          +

            Tim claimed (along with Renato) that is modpost that doing
            some sort of hack and expecting a GCC behavior. Probably
            modpost would need to be updated.

          +

            "... 1. GCC makes the symbol private rather than internal
            (in LLVM-speak).
            It's called ".LANCHOR0". "private" is basically an even more
            restrictive ("hands off, it's mine!") class than internal.
            "Fixing"
            this in LLVM would be reasonably easy and probably sail
            through review
            since it actually does have benefits.
            2. GCC gives the merged symbol a size of 0 rather than an
            accurate
            size in the ELF file. Good luck with convincing LLVM that
            they really
            want to emulate that bug.
            I actually suspect it's the latter that's causing the
            problem, since
            modpost seems to have no knowledge of private symbols. But
            as I say
            I've not been able to actually find out. ..."

      o

        lkml acceptance

          +

            Several posts on lkml now referencing llvm and clang static
            analyzer (Behn posted them to the LLVMLinux mailing list).
            Various kernel devs including Linus are now explicitly
            talking about LLVM

          +

            Kernel devs at conferences have shown interest seeing our
            patches. Making a patched kernel tree available to lkml may
            well get us more reviews of our patches.

      o

        Linaro Connect and Android

          +

            Renato and Bernhard have exciting news!

          +

            The Android team has decided to use clang exclusively in the
            next version of Android

          +

            Each part of Android will be moved over to clang (existing
            patches available inside Google, and fro Linaro)

          +

            Ultimately the LLVMLinux patches will be used to compile the
            Android kernel with clang

          +

            Linaro will test AOSP along with our kernel in their LAVA
            test suite

      o

        Named Registers in Clang

          +

            Discussed asm hack with Måns Rullgård
            <https://plus.google.com/u/0/101083367758063442977>at ELCE

          +

            He explained how the following works (the solution suggested
            on the the LLVM mailing list)

              #

                register unsigned long current_sp asm ("sp");

              #

                asm("" : "=r(current_sp));

          +

            It isn't pretty, but seems to work for llvm 3.3

          +

            Most everyone agreed that __builtin_stack_pointer() is a
            better solution

          +

            Submitted __builtin_stack_pointer() to llvm-dev and then to
            cfe-dev (which was a better place to post in the first place)

          +

            Still discussing things there, but minimally Chris Lattner
            seems to like it (just not our implementation)

      o

        Still have an issue with "-target" not being set

          +

            means some command line options aren't recognized.

          +

            Presented as clang looking like it doesn't understand
            command line options

          +

            Turns out its trying to use x86 compiler with ARM options (FAIL)

          +

            Mark may have fix

          +

            Still needs more investigation why it failed

      o

        CC-option breakage

          +

            patch still needs to be reworked

          +

            clang now returns an error (like gcc) when an option is
            unrecognized, so the original cc-option should work clang
            (but not with LLVM 3.3)

          +

            The idea is to push the existing patch, and pull it out when
            llvm 3.4 is available

      o

        X86 breakage with clang/llvm on master

          +

            also cc-options bail out with clang TIP

          +

            boot broken on clang TIP

              #

                XMM instruction in boot code (observed from llvm asm_in)

              #

                turn out "-mno-sse" seems not to turn off "SSE3/4 & AVX"
                opts.

              #

                got kernel to boot if adding "-mno-" for sse3/4/avx for
                the bootup code.

              #

                This needs more verification.

              #

                Could be that there is a disable switch missing for the
                high-level options if -no-sse is set. Actual fix in
                clang might be one-liner.

          +

            vxlan.c  compiler ICE  -
             http://llvm.org/bugs/show_bug.cgi?id=17210

      o

        VLAIS code

          +

            USB Gadget code seems to have made it upstream (the gadget
            maintainer is pushing it up for us now in his ffs/congfigfs
            patch stream)

          +

            Netfilter patch (still) needs to be upstreamed next

      o

        Yocto update

          +

            Seems we're pretty close to being able to build a recipe for
            building the LLVMLinux kernel with yocto.

          +

            Randy introduced us to his co-op student (Muhammad) which is
            doing oe-core work for him

          +

            Muhammad will help with this recipe and upstreaming it to
            oe-core (the lowest layer in yocto)

  *

    (5 mins) Each meeting attendee listed the top 2 items to be worked
    on for the next 2 weeks

          +

            Behan

              #

                Followup from LinuxConEurope and ELCE

              #

                LLVMLinux patch work (ARM, cc-option, VLAIS patch, Named
                registers)

              #

                LLVM/clang mailing list work for __builtin_stack_pointer()

              #

                Course preparation

              #

                Initial yocto kernel recipe

              #

                Will push an up to date version of our patches to our
                kernel tree and post to lkml for review

          +

            Jan-Simon

              #

                cc-option solution for both 3.3 and 3.4

                  *

                    warning/error switch

                  *

                    ", " issue

              #

                cleanup for x86 side

              #

                unbreak i586

              #

                Course prep

          +

            Vinicius Tinti

              #

                Work on merged globals

              #

                Try Raspberry Pi build and see if USB was "magically fixed"

          +

            Mark

              #

                Gadget patch comment review (Done)

              #

                __builtin_stack_pointer patch comment review

              #

                Test whether other names registers via ASM in kernel
                actually work

                  *

                    It actually seems to work except for the stack pointer


Next meeting in 3-ish weeks. doodle poll to follow.

*

-- 
Behan Webster
behanw at converseincode.com

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.linuxfoundation.org/pipermail/llvmlinux/attachments/20131108/eb05303e/attachment-0001.html>


More information about the LLVMLinux mailing list