From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/9460 Path: news.gmane.org!not-for-mail From: Rich Felker Newsgroups: gmane.linux.lib.musl.general,gmane.comp.hardware.lowrisc.devel Subject: musl risc-v port & gsoc - resources & ideas Date: Thu, 3 Mar 2016 22:58:12 -0500 Message-ID: <20160304035811.GA10218@brightrain.aerifal.cx> Reply-To: musl@lists.openwall.com NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: ger.gmane.org 1457063924 11753 80.91.229.3 (4 Mar 2016 03:58:44 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Fri, 4 Mar 2016 03:58:44 +0000 (UTC) Cc: lowrisc-dev@lists.lowrisc.org To: musl@lists.openwall.com Original-X-From: musl-return-9473-gllmg-musl=m.gmane.org@lists.openwall.com Fri Mar 04 04:58:32 2016 Return-path: Envelope-to: gllmg-musl@m.gmane.org Original-Received: from mother.openwall.net ([195.42.179.200]) by plane.gmane.org with smtp (Exim 4.69) (envelope-from ) id 1abgsq-0002LA-Ay for gllmg-musl@m.gmane.org; Fri, 04 Mar 2016 04:58:32 +0100 Original-Received: (qmail 17748 invoked by uid 550); 4 Mar 2016 03:58:30 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-ID: Original-Received: (qmail 17687 invoked from network); 4 Mar 2016 03:58:24 -0000 Content-Disposition: inline User-Agent: Mutt/1.5.21 (2010-09-15) Original-Sender: Rich Felker Xref: news.gmane.org gmane.linux.lib.musl.general:9460 gmane.comp.hardware.lowrisc.devel:298 Archived-At: lowrisc.org has been accepted into Google Summer of Code 2016, and has porting musl to risc-v as one of the suggested projects: http://www.lowrisc.org/docs/gsoc-2016-ideas/ I'm very hopeful that we'll make the port happen this year. In this email I'd like to go over some resources that may be helpful to students interested in applying, and some ideas for other tasks that could be included in proposals. The musl wiki contains a porting page with some useful but not-entirely-up-to-date information on porting musl to a new arch. This is a good starting point, and updating it could actually be part of the gsoc project. See http://wiki.musl-libc.org/wiki/Porting Some information on recent changes can be found in the mailing list archives. These threads pertain to changes to how ports are expected to provide atomic primitives: http://www.openwall.com/lists/musl/2015/05/17/2 http://www.openwall.com/lists/musl/2015/05/20/1 http://www.openwall.com/lists/musl/2016/01/10/6 which was committed here: http://git.musl-libc.org/cgit/musl/commit/?id=1315596b510189b5159e742110b504177bdd4932 and other subsequent commits with per-arch improvements. And these cover the bits deduplication: http://www.openwall.com/lists/musl/2016/01/25/1 http://www.openwall.com/lists/musl/2016/01/27/9 which was committed here: http://git.musl-libc.org/cgit/musl/commit/?id=4dfac11538cb20c848c30d754863800061ee8c81 Threads on the recent mips64 port work, which is almost ready for merging, may also be helpful to read. It's broken up across several threads but you can find most of the content in the January-March 2016 archives. Since a port of musl to a new arch does not actually involve much code, mainly attention to detail to make sure that all of the type definitions/ABI/etc. are correct, I think that for a proposal to be big enough to make a reasonable GSoC project, it should go beyond just the basic porting. Some ideas for things to include would be: - Improvement of porting documentation - Feedback/patches on where there's too much redundancy between ports and how to reduce it (i.e. making improvements to musl that reduce the amount of code/headers needed for a new port). - Patches for musl-cross and/or musl-cross-make (build systems for generating a cross-compiler toolchain) to make it easy to build a musl/riscv cross compiler. - Optimizing performance-critical code like memcpy or floating point math functions for riscv. - Improving test coverage, especially for things that are easy to get wrong in a new port. I'll follow up with more ideas if I think of any. Students interested in the project are welcome (and encouraged!) to ask questions and discuss here on the musl list. Obviously everyone should have in mind writing their own proposals but I want everyone to have access to knowledge/resources/community for ideas. Rich