Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 09 Mar 2015 14:09:05 -0400
From:      Jonathon McDaniels <mcdanielsjr@mymail.vcu.edu>
To:        Brooks Davis <brooks@freebsd.org>
Cc:        freebsd-hackers@freebsd.org
Subject:   Re: GSoC idea - porting and patching of userland for lld, the LLVM linker
Message-ID:  <54FDE1C1.90304@mymail.vcu.edu>
In-Reply-To: <20150309153622.GB72806@spindle.one-eyed-alien.net>
References:  <54F9EFD7.7030803@mymail.vcu.edu> <20150309153622.GB72806@spindle.one-eyed-alien.net>

next in thread | previous in thread | raw e-mail | index | archive | help
Good points Brooks,

Instead of lld I'm actually considering doing the idea of making a new 
linker from scratch to work with FreeBSD on all architectures, but 
that's dependent on my study and comprehension of all of the things GNU 
ld does, and furthermore that I get enough experience to take on such a 
daunting task. Luckily this week is spring break for me, so I'll have 
time to brain storm and look more into this. The good thing is that any 
changes I make I can test on almost all major architectures supported by 
FreeBSD, excluding SPARC, PC-98 and a few others since I own a large 
variety of hardware.

If you've any advice or other ideas that would involve leveraging us off 
of binutils, I'm all ears. As it stands though I'm not interested or 
experienced enough to do either gdb or gas, since assembler isn't my 
primary interest.

On 03/09/2015 11:36, Brooks Davis 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.
>
> -- Brooks




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?54FDE1C1.90304>