GSoC idea - porting and patching of userland for lld, the LLVM linker

Ed Maste emaste at freebsd.org
Sun Mar 15 21:03:20 UTC 2015


On 9 March 2015 at 11:36, Brooks Davis <brooks at freebsd.org> wrote:
> On Fri, Mar 06, 2015 at 01:20:07PM -0500, Jonathon McDaniels wrote:
>> Hey guys,
>>
>> After giving it some thought, I was thinking of porting ( as in, make it
>> a port of ) and patching the userland so a make buildworld can go
>> through on x86/AMD64 on lld, the LLVM linker, and if time permits,
>> patching the kernel to make use of it.. As the binutils included in base
>> is over 7 years old, and is unlikely to be updated due to the GPLv3, it
>> would make sense to assist with removing dependence of the FreeBSD
>> platforms now using LLVM/Clang for compiling.
>>
>> Before I go contact the mentors that would be within the scope of this
>> project, I wanted to make sure of the following:
>>
>>   * That this would be a good use of GSoC
>>   * That it is narrow enough in scope to be feasible, but broad enough
>>     that it would prove a beneficial project.
>>
>> Considering the environment we have now, I think it would allow me to
>> further my knowledge of C beyond what I already know ( currently working
>> on learning about dynamic linking of libraries, and I already know about
>> data structures, stacks, pointers etc. and plan to be much farther along
>> by the time of the start of the project and deliverables. ).
>>
>> And since lld is compatible with the BSD license terms, and is
>> interoperable with LLVM, it seems a viable and good project to undertake.
>>
>> Thoughts from you guys?
>
> Not to be too discouraging, I want lld in the base soon, but I'm not
> convinced there's a good GSoC project here.  Creating a port of lld is
> probably a week's work even starting with no knowledge of the ports
> system.  There may be some FreeBSD specific changes to lld required,
> but they should be small.
>
> Resolving compatibility issues with FreeBSD and ports might be a good
> project, but being able to work on that depends on the completion of
> linker script support.  I think that's an unacceptably large external
> dependency for a GSoC project given that there's no public timeline for
> that work.

There's certainly enough to be done with lld on FreeBSD to find a good
GSoC project. But I agree that we'd have to be very careful with
scoping and pay particular attention to the external dependencies.

Jonathon, if you're still really interested in trying to move ahead
with an lld GSoC, I'd suggest getting a build environment set up,
explore lld's current limitations, and try your hand at a small change
(maybe there's some relocation type to be added, for example). I think
this would help give you a sense of the scale of various projects
here.

I know that might seem like lot to ask prior to a proposal submission,
but we'd need to plan very carefully to go ahead with an lld project
as other parts are still changing so rapidly.

-Ed


More information about the freebsd-hackers mailing list